From a245dcc0a0795832a994f0c32093d7bda6be2d29 Mon Sep 17 00:00:00 2001 From: Dimitrios Markou Date: Mon, 8 Jan 2024 15:14:06 +0000 Subject: [PATCH] feat: (EVPN GW API) Add "components" field to each API object's status This is an API enhancement for the EVPN GW use case. The addition of a "components" field in the status sector of each API object will enable the capture of the state and details that are generated by the different subscribed components (FRR component, Linux component, etc...) which are realizing the configuration for each API object. Signed-off-by: Dimitrios Markou --- network/evpn-gw/component.proto | 42 + network/evpn-gw/l2_xpu_infra_mgr.proto | 22 +- network/evpn-gw/l3_xpu_infra_mgr.proto | 41 +- network/evpn-gw/v1alpha1/autogen.md | 70 +- .../evpn-gw/v1alpha1/gen/go/component.pb.go | 259 ++++++ .../v1alpha1/gen/go/l2_xpu_infra_mgr.pb.go | 773 ++++++++++-------- .../v1alpha1/gen/go/l2_xpu_infra_mgr.pb.gw.go | 36 +- .../gen/go/l2_xpu_infra_mgr_grpc.pb.go | 1 + .../v1alpha1/gen/go/l3_xpu_infra_mgr.pb.go | 590 +++++++------ .../v1alpha1/gen/go/l3_xpu_infra_mgr.pb.gw.go | 36 +- .../gen/go/l3_xpu_infra_mgr_grpc.pb.go | 1 + .../v1alpha1/gen/python/component_pb2.py | 36 + .../v1alpha1/gen/python/component_pb2_grpc.py | 4 + .../gen/python/l2_xpu_infra_mgr_pb2.py | 99 +-- .../gen/python/l3_xpu_infra_mgr_pb2.py | 109 ++- 15 files changed, 1246 insertions(+), 873 deletions(-) create mode 100644 network/evpn-gw/component.proto create mode 100644 network/evpn-gw/v1alpha1/gen/go/component.pb.go create mode 100644 network/evpn-gw/v1alpha1/gen/python/component_pb2.py create mode 100644 network/evpn-gw/v1alpha1/gen/python/component_pb2_grpc.py diff --git a/network/evpn-gw/component.proto b/network/evpn-gw/component.proto new file mode 100644 index 00000000..26a5b890 --- /dev/null +++ b/network/evpn-gw/component.proto @@ -0,0 +1,42 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright (C) 2023 Nordix Foundation. +// Copyright (c) 2024 Ericsson AB. + +// (-- api-linter: core::0216::synonyms=disabled +// aip.dev/not-precedent: Word "Status" will be used instead of "State". --) + +syntax = "proto3"; + +package opi_api.network.evpn_gw.v1alpha1; + +option go_package = "github.com/opiproject/opi-api/network/evpn-gw/v1alpha1/gen/go"; +option java_package = "opi_api.network.evpn_gw.v1alpha1"; +option java_multiple_files = true; +option java_outer_classname = "ComponentProto"; + +import "google/api/field_behavior.proto"; + +// Component represents a subscribed component (e.g. FRR component, Linux component etc...) +// (-- api-linter: core::0123::resource-annotation=disabled +// aip.dev/not-precedent: The name here is not the unique identifier of a DB object +// just the name of the component that is subscribed. --) +message Component { + // Component's name + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Component's status + CompStatus status = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Component's details in the form of json string + string details = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// CompStatus reflects the status of a component +enum CompStatus { + // component status is "unspecified" + COMP_STATUS_UNSPECIFIED = 0; + // component status is "pending" + COMP_STATUS_PENDING = 1; + // component status is "success" + COMP_STATUS_SUCCESS = 2; + // component status is "error" + COMP_STATUS_ERROR = 3; +} diff --git a/network/evpn-gw/l2_xpu_infra_mgr.proto b/network/evpn-gw/l2_xpu_infra_mgr.proto index d18f1d16..9b1ae6a3 100644 --- a/network/evpn-gw/l2_xpu_infra_mgr.proto +++ b/network/evpn-gw/l2_xpu_infra_mgr.proto @@ -1,5 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 // Copyright (C) 2023 Nordix Foundation. +// Copyright (c) 2024 Ericsson AB. // (-- api-linter: core::0132::request-parent-required=disabled // aip.dev/not-precedent: All the resources are top level. --) @@ -20,6 +21,7 @@ option java_multiple_files = true; option java_outer_classname = "L2XpuInfraMgrProto"; import "networktypes.proto"; +import "component.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; @@ -147,6 +149,8 @@ message LogicalBridgeSpec { message LogicalBridgeStatus { // operational state of a Logical Bridge LBOperStatus oper_status = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + // status of the components + repeated Component components = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } // CreateLogicalBridgeRequest structure @@ -249,6 +253,8 @@ message BridgePortSpec { message BridgePortStatus { // operational status of a Bridge Port BPOperStatus oper_status = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + // status of the components + repeated Component components = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } // CreateBridgePortRequest structure @@ -317,21 +323,25 @@ message UpdateBridgePortRequest { // LBOperStatus status reflects the operational status of a Logical Bridge enum LBOperStatus { // unknown - LB_OPER_STATUS_UNSPECIFIED = 0; + LB_OPER_STATUS_UNSPECIFIED = 0; // Logical Bridge is up - LB_OPER_STATUS_UP = 1; + LB_OPER_STATUS_UP = 1; // Logical Bridge is down - LB_OPER_STATUS_DOWN = 2; + LB_OPER_STATUS_DOWN = 2; + // Logical Bridge is to be deleted + LB_OPER_STATUS_TO_BE_DELETED = 3; } // BPOperStatus status reflects the operational status of a Bridge Port enum BPOperStatus { // unknown - BP_OPER_STATUS_UNSPECIFIED = 0; + BP_OPER_STATUS_UNSPECIFIED = 0; // Bridge Port is up - BP_OPER_STATUS_UP = 1; + BP_OPER_STATUS_UP = 1; // Bridge Port is down - BP_OPER_STATUS_DOWN = 2; + BP_OPER_STATUS_DOWN = 2; + // Bridge Port is to be deleted + BP_OPER_STATUS_TO_BE_DELETED = 3; } // BridgePortType reflects the different types of a Bridge Port diff --git a/network/evpn-gw/l3_xpu_infra_mgr.proto b/network/evpn-gw/l3_xpu_infra_mgr.proto index 3a5e8632..0ed63b0e 100644 --- a/network/evpn-gw/l3_xpu_infra_mgr.proto +++ b/network/evpn-gw/l3_xpu_infra_mgr.proto @@ -1,5 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 // Copyright (C) 2023 Nordix Foundation. +// Copyright (c) 2024 Ericsson AB. // (-- api-linter: core::0132::request-parent-required=disabled // aip.dev/not-precedent: All the resources are top level. --) @@ -20,6 +21,7 @@ option java_multiple_files = true; option java_outer_classname = "L3XpuInfraMgrProto"; import "networktypes.proto"; +import "component.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; @@ -144,27 +146,10 @@ message VrfSpec { // operational status of a Vrf message VrfStatus { - // Routing table number - // (-- api-linter: core::0141::forbidden-types=disabled - // aip.dev/not-precedent: routing_table cannot be negative number. --) - uint32 routing_table = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Local AS configured for VRF - // (-- api-linter: core::0141::forbidden-types=disabled - // aip.dev/not-precedent: local_as cannot be negative number. --) - uint32 local_as = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Route distinguisher - string rd = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - // Router MAC address of the Vrf - bytes rmac = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - // List of import RTs - repeated string import_rts = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - // List of export RTs - repeated string export_rts = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - // List of connected Logical Bridges to Vrf - // This defines the VLANs that are connected to the Vrf - repeated string logical_bridges = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; // operational status of a Vrf VRFOperStatus oper_status = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + // status of the components + repeated Component components = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; } // CreateVrfRequest structure @@ -282,6 +267,8 @@ message SviSpec { message SviStatus { // operational status of a Svi SVIOperStatus oper_status = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + // status of the components + repeated Component components = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; } // CreateSviRequest structure @@ -350,19 +337,23 @@ message UpdateSviRequest { // VRFOperStatus status reflects the operational status of a Vrf enum VRFOperStatus { // unknown - VRF_OPER_STATUS_UNSPECIFIED = 0; + VRF_OPER_STATUS_UNSPECIFIED = 0; // Vrf is up - VRF_OPER_STATUS_UP = 1; + VRF_OPER_STATUS_UP = 1; // Vrf is down - VRF_OPER_STATUS_DOWN = 2; + VRF_OPER_STATUS_DOWN = 2; + // Vrf is to be deleted + VRF_OPER_STATUS_TO_BE_DELETED = 3; } // SVIOperStatus status reflects the operational status of a Svi enum SVIOperStatus { // unknown - SVI_OPER_STATUS_UNSPECIFIED = 0; + SVI_OPER_STATUS_UNSPECIFIED = 0; // Svi is up - SVI_OPER_STATUS_UP = 1; + SVI_OPER_STATUS_UP = 1; // Svi is down - SVI_OPER_STATUS_DOWN = 2; + SVI_OPER_STATUS_DOWN = 2; + // Svi is to be deleted + SVI_OPER_STATUS_TO_BE_DELETED = 3; } diff --git a/network/evpn-gw/v1alpha1/autogen.md b/network/evpn-gw/v1alpha1/autogen.md index 566926de..cfeda364 100644 --- a/network/evpn-gw/v1alpha1/autogen.md +++ b/network/evpn-gw/v1alpha1/autogen.md @@ -3,6 +3,11 @@ ## Table of Contents +- [component.proto](#component-proto) + - [Component](#opi_api-network-evpn_gw-v1alpha1-Component) + + - [CompStatus](#opi_api-network-evpn_gw-v1alpha1-CompStatus) + - [l2_xpu_infra_mgr.proto](#l2_xpu_infra_mgr-proto) - [BridgePort](#opi_api-network-evpn_gw-v1alpha1-BridgePort) - [BridgePortSpec](#opi_api-network-evpn_gw-v1alpha1-BridgePortSpec) @@ -60,6 +65,56 @@ + +

Top

+ +## component.proto + + + + + +### Component +Component represents a subscribed component (e.g. FRR component, Linux component etc...) +(-- api-linter: core::0123::resource-annotation=disabled + aip.dev/not-precedent: The name here is not the unique identifier of a DB object + just the name of the component that is subscribed. --) + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| name | [string](#string) | | Component's name | +| status | [CompStatus](#opi_api-network-evpn_gw-v1alpha1-CompStatus) | | Component's status | +| details | [string](#string) | | Component's details in the form of json string | + + + + + + + + + + +### CompStatus +CompStatus reflects the status of a component + +| Name | Number | Description | +| ---- | ------ | ----------- | +| COMP_STATUS_UNSPECIFIED | 0 | component status is "unspecified" | +| COMP_STATUS_PENDING | 1 | component status is "pending" | +| COMP_STATUS_SUCCESS | 2 | component status is "success" | +| COMP_STATUS_ERROR | 3 | component status is "error" | + + + + + + + + + +

Top

@@ -110,6 +165,7 @@ operational status of a Bridge Port | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | oper_status | [BPOperStatus](#opi_api-network-evpn_gw-v1alpha1-BPOperStatus) | | operational status of a Bridge Port | +| components | [Component](#opi_api-network-evpn_gw-v1alpha1-Component) | repeated | status of the components | @@ -321,6 +377,7 @@ operational status of a Logical Bridge | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | oper_status | [LBOperStatus](#opi_api-network-evpn_gw-v1alpha1-LBOperStatus) | | operational state of a Logical Bridge | +| components | [Component](#opi_api-network-evpn_gw-v1alpha1-Component) | repeated | status of the components | @@ -373,6 +430,7 @@ BPOperStatus status reflects the operational status of a Bridge Port | BP_OPER_STATUS_UNSPECIFIED | 0 | unknown | | BP_OPER_STATUS_UP | 1 | Bridge Port is up | | BP_OPER_STATUS_DOWN | 2 | Bridge Port is down | +| BP_OPER_STATUS_TO_BE_DELETED | 3 | Bridge Port is to be deleted | @@ -399,6 +457,7 @@ LBOperStatus status reflects the operational status of a Logical Bridge | LB_OPER_STATUS_UNSPECIFIED | 0 | unknown | | LB_OPER_STATUS_UP | 1 | Logical Bridge is up | | LB_OPER_STATUS_DOWN | 2 | Logical Bridge is down | +| LB_OPER_STATUS_TO_BE_DELETED | 3 | Logical Bridge is to be deleted | @@ -652,6 +711,7 @@ operational status of a Svi | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | oper_status | [SVIOperStatus](#opi_api-network-evpn_gw-v1alpha1-SVIOperStatus) | | operational status of a Svi | +| components | [Component](#opi_api-network-evpn_gw-v1alpha1-Component) | repeated | status of the components | @@ -734,14 +794,8 @@ operational status of a Vrf | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| routing_table | [uint32](#uint32) | | Routing table number (-- api-linter: core::0141::forbidden-types=disabled aip.dev/not-precedent: routing_table cannot be negative number. --) | -| local_as | [uint32](#uint32) | | Local AS configured for VRF (-- api-linter: core::0141::forbidden-types=disabled aip.dev/not-precedent: local_as cannot be negative number. --) | -| rd | [string](#string) | | Route distinguisher | -| rmac | [bytes](#bytes) | | Router MAC address of the Vrf | -| import_rts | [string](#string) | repeated | List of import RTs | -| export_rts | [string](#string) | repeated | List of export RTs | -| logical_bridges | [string](#string) | repeated | List of connected Logical Bridges to Vrf This defines the VLANs that are connected to the Vrf | | oper_status | [VRFOperStatus](#opi_api-network-evpn_gw-v1alpha1-VRFOperStatus) | | operational status of a Vrf | +| components | [Component](#opi_api-network-evpn_gw-v1alpha1-Component) | repeated | status of the components | @@ -760,6 +814,7 @@ SVIOperStatus status reflects the operational status of a Svi | SVI_OPER_STATUS_UNSPECIFIED | 0 | unknown | | SVI_OPER_STATUS_UP | 1 | Svi is up | | SVI_OPER_STATUS_DOWN | 2 | Svi is down | +| SVI_OPER_STATUS_TO_BE_DELETED | 3 | Svi is to be deleted | @@ -773,6 +828,7 @@ VRFOperStatus status reflects the operational status of a Vrf | VRF_OPER_STATUS_UNSPECIFIED | 0 | unknown | | VRF_OPER_STATUS_UP | 1 | Vrf is up | | VRF_OPER_STATUS_DOWN | 2 | Vrf is down | +| VRF_OPER_STATUS_TO_BE_DELETED | 3 | Vrf is to be deleted | diff --git a/network/evpn-gw/v1alpha1/gen/go/component.pb.go b/network/evpn-gw/v1alpha1/gen/go/component.pb.go new file mode 100644 index 00000000..f3a376ae --- /dev/null +++ b/network/evpn-gw/v1alpha1/gen/go/component.pb.go @@ -0,0 +1,259 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright (C) 2023 Nordix Foundation. +// Copyright (c) 2024 Ericsson AB. + +// (-- api-linter: core::0216::synonyms=disabled +// aip.dev/not-precedent: Word "Status" will be used instead of "State". --) + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: component.proto + +package _go + +import ( + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// CompStatus reflects the status of a component +type CompStatus int32 + +const ( + // component status is "unspecified" + CompStatus_COMP_STATUS_UNSPECIFIED CompStatus = 0 + // component status is "pending" + CompStatus_COMP_STATUS_PENDING CompStatus = 1 + // component status is "success" + CompStatus_COMP_STATUS_SUCCESS CompStatus = 2 + // component status is "error" + CompStatus_COMP_STATUS_ERROR CompStatus = 3 +) + +// Enum value maps for CompStatus. +var ( + CompStatus_name = map[int32]string{ + 0: "COMP_STATUS_UNSPECIFIED", + 1: "COMP_STATUS_PENDING", + 2: "COMP_STATUS_SUCCESS", + 3: "COMP_STATUS_ERROR", + } + CompStatus_value = map[string]int32{ + "COMP_STATUS_UNSPECIFIED": 0, + "COMP_STATUS_PENDING": 1, + "COMP_STATUS_SUCCESS": 2, + "COMP_STATUS_ERROR": 3, + } +) + +func (x CompStatus) Enum() *CompStatus { + p := new(CompStatus) + *p = x + return p +} + +func (x CompStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CompStatus) Descriptor() protoreflect.EnumDescriptor { + return file_component_proto_enumTypes[0].Descriptor() +} + +func (CompStatus) Type() protoreflect.EnumType { + return &file_component_proto_enumTypes[0] +} + +func (x CompStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use CompStatus.Descriptor instead. +func (CompStatus) EnumDescriptor() ([]byte, []int) { + return file_component_proto_rawDescGZIP(), []int{0} +} + +// Component represents a subscribed component (e.g. FRR component, Linux component etc...) +// (-- api-linter: core::0123::resource-annotation=disabled +// +// aip.dev/not-precedent: The name here is not the unique identifier of a DB object +// just the name of the component that is subscribed. --) +type Component struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Component's name + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Component's status + Status CompStatus `protobuf:"varint,2,opt,name=status,proto3,enum=opi_api.network.evpn_gw.v1alpha1.CompStatus" json:"status,omitempty"` + // Component's details in the form of json string + Details string `protobuf:"bytes,3,opt,name=details,proto3" json:"details,omitempty"` +} + +func (x *Component) Reset() { + *x = Component{} + if protoimpl.UnsafeEnabled { + mi := &file_component_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Component) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Component) ProtoMessage() {} + +func (x *Component) ProtoReflect() protoreflect.Message { + mi := &file_component_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Component.ProtoReflect.Descriptor instead. +func (*Component) Descriptor() ([]byte, []int) { + return file_component_proto_rawDescGZIP(), []int{0} +} + +func (x *Component) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Component) GetStatus() CompStatus { + if x != nil { + return x.Status + } + return CompStatus_COMP_STATUS_UNSPECIFIED +} + +func (x *Component) GetDetails() string { + if x != nil { + return x.Details + } + return "" +} + +var File_component_proto protoreflect.FileDescriptor + +var file_component_proto_rawDesc = []byte{ + 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x20, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8e, 0x01, 0x0a, 0x09, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, + 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x49, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x70, + 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, + 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, + 0x6f, 0x6d, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x64, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2a, 0x72, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x70, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x4f, 0x4d, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x17, 0x0a, 0x13, 0x43, 0x4f, 0x4d, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, + 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x4f, 0x4d, + 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, + 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x4f, 0x4d, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, + 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x42, 0x73, 0x0a, 0x20, 0x6f, 0x70, 0x69, + 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, + 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x0e, 0x43, + 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, + 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x69, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x6f, 0x70, 0x69, 0x2d, 0x61, 0x70, 0x69, 0x2f, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x65, 0x76, 0x70, 0x6e, 0x2d, 0x67, 0x77, 0x2f, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_component_proto_rawDescOnce sync.Once + file_component_proto_rawDescData = file_component_proto_rawDesc +) + +func file_component_proto_rawDescGZIP() []byte { + file_component_proto_rawDescOnce.Do(func() { + file_component_proto_rawDescData = protoimpl.X.CompressGZIP(file_component_proto_rawDescData) + }) + return file_component_proto_rawDescData +} + +var file_component_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_component_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_component_proto_goTypes = []interface{}{ + (CompStatus)(0), // 0: opi_api.network.evpn_gw.v1alpha1.CompStatus + (*Component)(nil), // 1: opi_api.network.evpn_gw.v1alpha1.Component +} +var file_component_proto_depIdxs = []int32{ + 0, // 0: opi_api.network.evpn_gw.v1alpha1.Component.status:type_name -> opi_api.network.evpn_gw.v1alpha1.CompStatus + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_component_proto_init() } +func file_component_proto_init() { + if File_component_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_component_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Component); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_component_proto_rawDesc, + NumEnums: 1, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_component_proto_goTypes, + DependencyIndexes: file_component_proto_depIdxs, + EnumInfos: file_component_proto_enumTypes, + MessageInfos: file_component_proto_msgTypes, + }.Build() + File_component_proto = out.File + file_component_proto_rawDesc = nil + file_component_proto_goTypes = nil + file_component_proto_depIdxs = nil +} diff --git a/network/evpn-gw/v1alpha1/gen/go/l2_xpu_infra_mgr.pb.go b/network/evpn-gw/v1alpha1/gen/go/l2_xpu_infra_mgr.pb.go index 586d5fd6..84fef168 100644 --- a/network/evpn-gw/v1alpha1/gen/go/l2_xpu_infra_mgr.pb.go +++ b/network/evpn-gw/v1alpha1/gen/go/l2_xpu_infra_mgr.pb.go @@ -1,5 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 // Copyright (C) 2023 Nordix Foundation. +// Copyright (c) 2024 Ericsson AB. // (-- api-linter: core::0132::request-parent-required=disabled // aip.dev/not-precedent: All the resources are top level. --) @@ -46,6 +47,8 @@ const ( LBOperStatus_LB_OPER_STATUS_UP LBOperStatus = 1 // Logical Bridge is down LBOperStatus_LB_OPER_STATUS_DOWN LBOperStatus = 2 + // Logical Bridge is to be deleted + LBOperStatus_LB_OPER_STATUS_TO_BE_DELETED LBOperStatus = 3 ) // Enum value maps for LBOperStatus. @@ -54,11 +57,13 @@ var ( 0: "LB_OPER_STATUS_UNSPECIFIED", 1: "LB_OPER_STATUS_UP", 2: "LB_OPER_STATUS_DOWN", + 3: "LB_OPER_STATUS_TO_BE_DELETED", } LBOperStatus_value = map[string]int32{ - "LB_OPER_STATUS_UNSPECIFIED": 0, - "LB_OPER_STATUS_UP": 1, - "LB_OPER_STATUS_DOWN": 2, + "LB_OPER_STATUS_UNSPECIFIED": 0, + "LB_OPER_STATUS_UP": 1, + "LB_OPER_STATUS_DOWN": 2, + "LB_OPER_STATUS_TO_BE_DELETED": 3, } ) @@ -99,6 +104,8 @@ const ( BPOperStatus_BP_OPER_STATUS_UP BPOperStatus = 1 // Bridge Port is down BPOperStatus_BP_OPER_STATUS_DOWN BPOperStatus = 2 + // Bridge Port is to be deleted + BPOperStatus_BP_OPER_STATUS_TO_BE_DELETED BPOperStatus = 3 ) // Enum value maps for BPOperStatus. @@ -107,11 +114,13 @@ var ( 0: "BP_OPER_STATUS_UNSPECIFIED", 1: "BP_OPER_STATUS_UP", 2: "BP_OPER_STATUS_DOWN", + 3: "BP_OPER_STATUS_TO_BE_DELETED", } BPOperStatus_value = map[string]int32{ - "BP_OPER_STATUS_UNSPECIFIED": 0, - "BP_OPER_STATUS_UP": 1, - "BP_OPER_STATUS_DOWN": 2, + "BP_OPER_STATUS_UNSPECIFIED": 0, + "BP_OPER_STATUS_UP": 1, + "BP_OPER_STATUS_DOWN": 2, + "BP_OPER_STATUS_TO_BE_DELETED": 3, } ) @@ -347,6 +356,8 @@ type LogicalBridgeStatus struct { // operational state of a Logical Bridge OperStatus LBOperStatus `protobuf:"varint,1,opt,name=oper_status,json=operStatus,proto3,enum=opi_api.network.evpn_gw.v1alpha1.LBOperStatus" json:"oper_status,omitempty"` + // status of the components + Components []*Component `protobuf:"bytes,2,rep,name=components,proto3" json:"components,omitempty"` } func (x *LogicalBridgeStatus) Reset() { @@ -388,6 +399,13 @@ func (x *LogicalBridgeStatus) GetOperStatus() LBOperStatus { return LBOperStatus_LB_OPER_STATUS_UNSPECIFIED } +func (x *LogicalBridgeStatus) GetComponents() []*Component { + if x != nil { + return x.Components + } + return nil +} + // CreateLogicalBridgeRequest structure type CreateLogicalBridgeRequest struct { state protoimpl.MessageState @@ -892,6 +910,8 @@ type BridgePortStatus struct { // operational status of a Bridge Port OperStatus BPOperStatus `protobuf:"varint,1,opt,name=oper_status,json=operStatus,proto3,enum=opi_api.network.evpn_gw.v1alpha1.BPOperStatus" json:"oper_status,omitempty"` + // status of the components + Components []*Component `protobuf:"bytes,2,rep,name=components,proto3" json:"components,omitempty"` } func (x *BridgePortStatus) Reset() { @@ -933,6 +953,13 @@ func (x *BridgePortStatus) GetOperStatus() BPOperStatus { return BPOperStatus_BP_OPER_STATUS_UNSPECIFIED } +func (x *BridgePortStatus) GetComponents() []*Component { + if x != nil { + return x.Components + } + return nil +} + // CreateBridgePortRequest structure type CreateBridgePortRequest struct { state protoimpl.MessageState @@ -1297,348 +1324,364 @@ var file_l2_xpu_infra_mgr_proto_rawDesc = []byte{ 0x67, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x20, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x1a, 0x12, 0x6e, 0x65, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 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, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x22, 0xbf, 0x02, 0x0a, 0x0d, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4c, 0x0a, 0x04, 0x73, - 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x70, 0x69, 0x5f, - 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, - 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x6f, 0x67, - 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x52, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6f, 0x70, 0x69, 0x5f, - 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, - 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x6f, 0x67, - 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x3a, 0x73, 0xea, - 0x41, 0x70, 0x0a, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2f, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x12, 0x1f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x7d, 0x2a, 0x0e, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x73, 0x32, 0x0d, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x22, 0xb1, 0x01, 0x0a, 0x11, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, - 0x69, 0x64, 0x67, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1c, 0x0a, 0x07, 0x76, 0x6c, 0x61, 0x6e, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, - 0x76, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x03, 0x76, 0x6e, 0x69, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x03, 0x76, 0x6e, 0x69, 0x88, - 0x01, 0x01, 0x12, 0x5a, 0x0a, 0x0e, 0x76, 0x74, 0x65, 0x70, 0x5f, 0x69, 0x70, 0x5f, 0x70, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x70, 0x69, - 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x6f, 0x70, 0x69, - 0x6e, 0x65, 0x74, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x49, 0x50, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x03, 0xe0, 0x41, 0x01, - 0x52, 0x0c, 0x76, 0x74, 0x65, 0x70, 0x49, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x06, - 0x0a, 0x04, 0x5f, 0x76, 0x6e, 0x69, 0x22, 0x6b, 0x0a, 0x13, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, - 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x54, 0x0a, - 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, + 0x6f, 0x72, 0x6b, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0f, + 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 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, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x22, 0xbf, 0x02, 0x0a, 0x0d, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, + 0x64, 0x67, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4c, 0x0a, 0x04, + 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x70, 0x69, + 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, + 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x6f, + 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x53, 0x70, 0x65, 0x63, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x52, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6f, 0x70, 0x69, + 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, + 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x6f, + 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x3a, 0x73, + 0xea, 0x41, 0x70, 0x0a, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x42, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x22, 0xaa, 0x01, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x6f, - 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x72, - 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x52, 0x0f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x49, 0x64, 0x12, 0x5b, 0x0a, 0x0e, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x62, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x70, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, + 0x64, 0x67, 0x65, 0x12, 0x1f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, + 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x72, 0x69, + 0x64, 0x67, 0x65, 0x7d, 0x2a, 0x0e, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, + 0x64, 0x67, 0x65, 0x73, 0x32, 0x0d, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, + 0x64, 0x67, 0x65, 0x22, 0xb1, 0x01, 0x0a, 0x11, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1c, 0x0a, 0x07, 0x76, 0x6c, 0x61, + 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x06, 0x76, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x03, 0x76, 0x6e, 0x69, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x03, 0x76, 0x6e, 0x69, + 0x88, 0x01, 0x01, 0x12, 0x5a, 0x0a, 0x0e, 0x76, 0x74, 0x65, 0x70, 0x5f, 0x69, 0x70, 0x5f, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x70, + 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x6f, 0x70, + 0x69, 0x6e, 0x65, 0x74, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x49, 0x50, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x0c, 0x76, 0x74, 0x65, 0x70, 0x49, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, + 0x06, 0x0a, 0x04, 0x5f, 0x76, 0x6e, 0x69, 0x22, 0xbd, 0x01, 0x0a, 0x13, 0x4c, 0x6f, 0x67, 0x69, + 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x54, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x42, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x50, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, + 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x70, 0x69, 0x5f, + 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, + 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, + 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x6f, 0x6d, + 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xaa, 0x01, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, + 0x6c, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x12, 0x5b, 0x0a, 0x0e, 0x6c, 0x6f, 0x67, 0x69, 0x63, + 0x61, 0x6c, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, + 0x69, 0x64, 0x67, 0x65, 0x22, 0x61, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, + 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, + 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x9e, 0x01, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, + 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x0f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, + 0x6c, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, + 0x52, 0x0e, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, + 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, + 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x65, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4c, + 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x4a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x36, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x30, 0x0a, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, + 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, + 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x4c, 0x6f, 0x67, 0x69, + 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0x92, 0x01, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, + 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4a, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x36, 0xe0, 0x41, + 0x02, 0xfa, 0x41, 0x30, 0x0a, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, + 0x69, 0x64, 0x67, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x73, + 0x73, 0x69, 0x6e, 0x67, 0x22, 0xe5, 0x01, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, + 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x5b, 0x0a, 0x0e, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x62, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, - 0x22, 0x61, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, - 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, - 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x22, 0x9e, 0x01, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, - 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x58, 0x0a, 0x0f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x72, - 0x69, 0x64, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x70, - 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, - 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, - 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x0e, 0x6c, 0x6f, - 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, - 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x65, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x63, - 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x4a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x36, 0xe0, - 0x41, 0x02, 0xfa, 0x41, 0x30, 0x0a, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x92, 0x01, 0x0a, 0x1a, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, - 0x64, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4a, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x36, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x30, - 0x0a, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2f, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, - 0x22, 0xe5, 0x01, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x63, - 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x5b, 0x0a, 0x0e, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, - 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, - 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x63, - 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x6c, - 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x40, 0x0a, 0x0b, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x28, - 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x22, 0xa7, 0x02, 0x0a, 0x0a, 0x42, 0x72, 0x69, - 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x49, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, - 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x70, 0x65, 0x63, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x4f, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x70, - 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, - 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, - 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x3a, 0x64, 0xea, 0x41, - 0x61, 0x0a, 0x2b, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2f, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x19, - 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x62, 0x72, 0x69, - 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x7d, 0x2a, 0x0b, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x32, 0x0a, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, - 0x72, 0x74, 0x22, 0xb1, 0x01, 0x0a, 0x0e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, - 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x24, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x0a, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x4b, 0x0a, 0x05, 0x70, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6f, 0x70, 0x69, - 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, - 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x72, - 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x05, 0x70, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x0f, 0x6c, 0x6f, 0x67, 0x69, - 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x22, 0x68, 0x0a, 0x10, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, - 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x54, 0x0a, 0x0b, 0x6f, 0x70, - 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2e, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x42, 0x50, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, - 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x22, 0x98, 0x01, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x0e, - 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x52, 0x0a, 0x0b, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, - 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, - 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x0a, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x22, 0x5e, 0x0a, 0x16, 0x4c, - 0x69, 0x73, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, - 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, - 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, - 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x92, 0x01, 0x0a, 0x17, - 0x4c, 0x69, 0x73, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x0c, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, - 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, - 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x0b, 0x62, 0x72, 0x69, - 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, - 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x22, 0x5f, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x33, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2d, 0x0a, 0x2b, - 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, - 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2f, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x33, 0xe0, 0x41, 0x02, - 0xfa, 0x41, 0x2d, 0x0a, 0x2b, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, - 0x22, 0xd9, 0x01, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x52, 0x0a, 0x0b, - 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x28, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x2a, 0x5e, 0x0a, 0x0c, - 0x4c, 0x42, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x1a, - 0x4c, 0x42, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, - 0x4c, 0x42, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, - 0x50, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x42, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x02, 0x2a, 0x5e, 0x0a, 0x0c, - 0x42, 0x50, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x1a, - 0x42, 0x50, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, - 0x42, 0x50, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, - 0x50, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x42, 0x50, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x02, 0x2a, 0x6b, 0x0a, 0x0e, - 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, - 0x0a, 0x1c, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x1b, 0x0a, 0x17, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x1a, 0x0a, - 0x16, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x54, 0x52, 0x55, 0x4e, 0x4b, 0x10, 0x02, 0x32, 0xc9, 0x07, 0x0a, 0x14, 0x4c, 0x6f, - 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x12, 0xd3, 0x01, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x6f, 0x67, - 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x3c, 0x2e, 0x6f, 0x70, 0x69, - 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, - 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, - 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, - 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x69, - 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x22, 0x4d, 0xda, 0x41, 0x20, 0x6c, 0x6f, - 0x67, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2c, 0x6c, 0x6f, 0x67, - 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x24, 0x3a, 0x0e, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x72, - 0x69, 0x64, 0x67, 0x65, 0x22, 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, - 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x12, 0xab, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, - 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x12, - 0x3b, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x22, 0xa7, 0x02, 0x0a, + 0x0a, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x49, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, + 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, + 0x4f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x32, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, - 0x69, 0x64, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x6f, + 0x61, 0x31, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x3a, 0x64, 0xea, 0x41, 0x61, 0x0a, 0x2b, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, + 0x72, 0x74, 0x12, 0x19, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x2f, + 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x7d, 0x2a, 0x0b, 0x62, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x32, 0x0a, 0x62, 0x72, 0x69, 0x64, + 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x22, 0xb1, 0x01, 0x0a, 0x0e, 0x42, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x24, 0x0a, 0x0b, 0x6d, 0x61, 0x63, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x4b, 0x0a, 0x05, 0x70, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, + 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x70, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x0f, + 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6c, 0x6f, 0x67, 0x69, + 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x22, 0xba, 0x01, 0x0a, 0x10, 0x42, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x54, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x50, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x50, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, + 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x70, 0x69, 0x5f, + 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, + 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, + 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x6f, 0x6d, + 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x98, 0x01, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x0e, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x0c, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x52, + 0x0a, 0x0b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, + 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, + 0x72, 0x74, 0x22, 0x5e, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, + 0x50, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, + 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x22, 0x92, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, + 0x0a, 0x0c, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, + 0x72, 0x74, 0x52, 0x0b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, + 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, + 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x5f, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, 0x72, + 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x47, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x33, 0xe0, + 0x41, 0x02, 0xfa, 0x41, 0x2d, 0x0a, 0x2b, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, + 0x72, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x17, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x33, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2d, 0x0a, 0x2b, 0x6f, 0x70, 0x69, 0x5f, + 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, + 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x42, 0x72, 0x69, + 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, + 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x22, 0xd9, 0x01, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x52, 0x0a, 0x0b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, + 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, + 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x72, 0x69, 0x64, + 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x62, 0x72, 0x69, + 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x28, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, + 0x69, 0x6e, 0x67, 0x2a, 0x80, 0x01, 0x0a, 0x0c, 0x4c, 0x42, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x1a, 0x4c, 0x42, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x4c, 0x42, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x4c, + 0x42, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x4f, + 0x57, 0x4e, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x4c, 0x42, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x42, 0x45, 0x5f, 0x44, 0x45, 0x4c, + 0x45, 0x54, 0x45, 0x44, 0x10, 0x03, 0x2a, 0x80, 0x01, 0x0a, 0x0c, 0x42, 0x50, 0x4f, 0x70, 0x65, + 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x1a, 0x42, 0x50, 0x5f, 0x4f, 0x50, + 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x42, 0x50, 0x5f, 0x4f, 0x50, + 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x10, 0x01, 0x12, 0x17, + 0x0a, 0x13, 0x42, 0x50, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, + 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x42, 0x50, 0x5f, 0x4f, 0x50, + 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x42, 0x45, 0x5f, + 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x03, 0x2a, 0x6b, 0x0a, 0x0e, 0x42, 0x72, 0x69, + 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x42, + 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, + 0x17, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x52, + 0x49, 0x44, 0x47, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, + 0x52, 0x55, 0x4e, 0x4b, 0x10, 0x02, 0x32, 0xc9, 0x07, 0x0a, 0x14, 0x4c, 0x6f, 0x67, 0x69, 0x63, + 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, + 0xd3, 0x01, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, + 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x3c, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, + 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, + 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, + 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x22, 0x4d, 0xda, 0x41, 0x20, 0x6c, 0x6f, 0x67, 0x69, 0x63, + 0x61, 0x6c, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2c, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, + 0x6c, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x24, 0x3a, 0x0e, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x22, 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, + 0x69, 0x64, 0x67, 0x65, 0x73, 0x12, 0xab, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x6f, + 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x12, 0x3b, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x14, 0x12, 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x12, 0xaa, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4c, 0x6f, - 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x39, 0x2e, 0x6f, 0x70, - 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, - 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, - 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, - 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x22, 0x2a, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, - 0x2f, 0x2a, 0x7d, 0x12, 0x97, 0x01, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x6f, - 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x3c, 0x2e, 0x6f, 0x70, - 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, - 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x22, 0x2a, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, - 0x2a, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6c, 0x6f, 0x67, 0x69, - 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xe5, 0x01, - 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x3c, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, - 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x6f, 0x70, 0x69, 0x5f, + 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, + 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x12, + 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, + 0x67, 0x65, 0x73, 0x12, 0xaa, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x63, + 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x39, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, + 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, + 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, - 0x69, 0x64, 0x67, 0x65, 0x22, 0x5f, 0xda, 0x41, 0x1a, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, - 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, - 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x3a, 0x0e, 0x6c, 0x6f, 0x67, 0x69, 0x63, - 0x61, 0x6c, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x32, 0x2a, 0x2f, 0x76, 0x31, 0x2f, 0x7b, - 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x32, 0xfb, 0x06, 0x0a, 0x11, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, - 0x50, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xbe, 0x01, 0x0a, 0x10, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, - 0x12, 0x39, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, - 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6f, 0x70, - 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, - 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x22, 0x41, 0xda, 0x41, 0x1a, 0x62, 0x72, - 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x2c, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, - 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x0b, - 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x0f, 0x2f, 0x76, 0x31, - 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x9f, 0x01, 0x0a, - 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, - 0x12, 0x38, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, - 0x72, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x6f, 0x70, 0x69, - 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, - 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x17, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, - 0x76, 0x31, 0x2f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x9e, - 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, - 0x12, 0x36, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x69, 0x64, 0x67, 0x65, 0x22, 0x2a, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6c, + 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x2a, 0x7d, + 0x12, 0x97, 0x01, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x63, + 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x3c, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, + 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, + 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2a, + 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x2a, 0x1b, 0x2f, + 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, + 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xe5, 0x01, 0x0a, 0x13, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, + 0x67, 0x65, 0x12, 0x3c, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x69, + 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, + 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x22, 0x5f, 0xda, 0x41, 0x1a, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x72, + 0x69, 0x64, 0x67, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x3a, 0x0e, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x5f, + 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x32, 0x2a, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6c, 0x6f, 0x67, + 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2e, 0x6e, 0x61, 0x6d, 0x65, + 0x3d, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x2f, + 0x2a, 0x7d, 0x32, 0xfb, 0x06, 0x0a, 0x11, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, + 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xbe, 0x01, 0x0a, 0x10, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x39, 0x2e, + 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, + 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x72, 0x69, 0x64, - 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x22, 0x27, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, - 0x8e, 0x01, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, - 0x50, 0x6f, 0x72, 0x74, 0x12, 0x39, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x72, - 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x27, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x2a, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x2a, 0x7d, - 0x12, 0xd0, 0x01, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x39, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, + 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x22, 0x41, 0xda, 0x41, 0x1a, 0x62, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x2c, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x0b, 0x62, 0x72, 0x69, + 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x0f, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, + 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x9f, 0x01, 0x0a, 0x0f, 0x4c, 0x69, + 0x73, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x38, 0x2e, + 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, + 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, + 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, + 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x17, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x76, 0x31, 0x2f, + 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x9e, 0x01, 0x0a, 0x0d, + 0x47, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x36, 0x2e, + 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, + 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2c, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x22, 0x53, - 0xda, 0x41, 0x17, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x2c, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, - 0x3a, 0x0b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x32, 0x24, 0x2f, - 0x76, 0x31, 0x2f, 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x2e, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, - 0x2f, 0x2a, 0x7d, 0x42, 0x77, 0x0a, 0x20, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x12, 0x4c, 0x32, 0x58, 0x70, 0x75, 0x49, 0x6e, - 0x66, 0x72, 0x61, 0x4d, 0x67, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3d, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x69, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x6f, 0x70, 0x69, 0x2d, 0x61, 0x70, 0x69, 0x2f, 0x6e, 0x65, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x65, 0x76, 0x70, 0x6e, 0x2d, 0x67, 0x77, 0x2f, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, + 0x6f, 0x72, 0x74, 0x22, 0x27, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x1a, 0x12, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x62, 0x72, + 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x8e, 0x01, 0x0a, + 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, + 0x74, 0x12, 0x39, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x22, 0x27, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x1a, 0x2a, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x62, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xd0, 0x01, + 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, + 0x72, 0x74, 0x12, 0x39, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, + 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, + 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, + 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x22, 0x53, 0xda, 0x41, 0x17, + 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x2c, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x3a, 0x0b, 0x62, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x32, 0x24, 0x2f, 0x76, 0x31, 0x2f, + 0x7b, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6e, 0x61, 0x6d, + 0x65, 0x3d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x2a, 0x7d, + 0x42, 0x77, 0x0a, 0x20, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x42, 0x12, 0x4c, 0x32, 0x58, 0x70, 0x75, 0x49, 0x6e, 0x66, 0x72, 0x61, + 0x4d, 0x67, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x69, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x2f, 0x6f, 0x70, 0x69, 0x2d, 0x61, 0x70, 0x69, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x2f, 0x65, 0x76, 0x70, 0x6e, 0x2d, 0x67, 0x77, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -1678,51 +1721,54 @@ var file_l2_xpu_infra_mgr_proto_goTypes = []interface{}{ (*DeleteBridgePortRequest)(nil), // 19: opi_api.network.evpn_gw.v1alpha1.DeleteBridgePortRequest (*UpdateBridgePortRequest)(nil), // 20: opi_api.network.evpn_gw.v1alpha1.UpdateBridgePortRequest (*_go.IPPrefix)(nil), // 21: opi_api.network.opinetcommon.v1alpha1.IPPrefix - (*fieldmaskpb.FieldMask)(nil), // 22: google.protobuf.FieldMask - (*emptypb.Empty)(nil), // 23: google.protobuf.Empty + (*Component)(nil), // 22: opi_api.network.evpn_gw.v1alpha1.Component + (*fieldmaskpb.FieldMask)(nil), // 23: google.protobuf.FieldMask + (*emptypb.Empty)(nil), // 24: google.protobuf.Empty } var file_l2_xpu_infra_mgr_proto_depIdxs = []int32{ 4, // 0: opi_api.network.evpn_gw.v1alpha1.LogicalBridge.spec:type_name -> opi_api.network.evpn_gw.v1alpha1.LogicalBridgeSpec 5, // 1: opi_api.network.evpn_gw.v1alpha1.LogicalBridge.status:type_name -> opi_api.network.evpn_gw.v1alpha1.LogicalBridgeStatus 21, // 2: opi_api.network.evpn_gw.v1alpha1.LogicalBridgeSpec.vtep_ip_prefix:type_name -> opi_api.network.opinetcommon.v1alpha1.IPPrefix 0, // 3: opi_api.network.evpn_gw.v1alpha1.LogicalBridgeStatus.oper_status:type_name -> opi_api.network.evpn_gw.v1alpha1.LBOperStatus - 3, // 4: opi_api.network.evpn_gw.v1alpha1.CreateLogicalBridgeRequest.logical_bridge:type_name -> opi_api.network.evpn_gw.v1alpha1.LogicalBridge - 3, // 5: opi_api.network.evpn_gw.v1alpha1.ListLogicalBridgesResponse.logical_bridges:type_name -> opi_api.network.evpn_gw.v1alpha1.LogicalBridge - 3, // 6: opi_api.network.evpn_gw.v1alpha1.UpdateLogicalBridgeRequest.logical_bridge:type_name -> opi_api.network.evpn_gw.v1alpha1.LogicalBridge - 22, // 7: opi_api.network.evpn_gw.v1alpha1.UpdateLogicalBridgeRequest.update_mask:type_name -> google.protobuf.FieldMask - 13, // 8: opi_api.network.evpn_gw.v1alpha1.BridgePort.spec:type_name -> opi_api.network.evpn_gw.v1alpha1.BridgePortSpec - 14, // 9: opi_api.network.evpn_gw.v1alpha1.BridgePort.status:type_name -> opi_api.network.evpn_gw.v1alpha1.BridgePortStatus - 2, // 10: opi_api.network.evpn_gw.v1alpha1.BridgePortSpec.ptype:type_name -> opi_api.network.evpn_gw.v1alpha1.BridgePortType - 1, // 11: opi_api.network.evpn_gw.v1alpha1.BridgePortStatus.oper_status:type_name -> opi_api.network.evpn_gw.v1alpha1.BPOperStatus - 12, // 12: opi_api.network.evpn_gw.v1alpha1.CreateBridgePortRequest.bridge_port:type_name -> opi_api.network.evpn_gw.v1alpha1.BridgePort - 12, // 13: opi_api.network.evpn_gw.v1alpha1.ListBridgePortsResponse.bridge_ports:type_name -> opi_api.network.evpn_gw.v1alpha1.BridgePort - 12, // 14: opi_api.network.evpn_gw.v1alpha1.UpdateBridgePortRequest.bridge_port:type_name -> opi_api.network.evpn_gw.v1alpha1.BridgePort - 22, // 15: opi_api.network.evpn_gw.v1alpha1.UpdateBridgePortRequest.update_mask:type_name -> google.protobuf.FieldMask - 6, // 16: opi_api.network.evpn_gw.v1alpha1.LogicalBridgeService.CreateLogicalBridge:input_type -> opi_api.network.evpn_gw.v1alpha1.CreateLogicalBridgeRequest - 7, // 17: opi_api.network.evpn_gw.v1alpha1.LogicalBridgeService.ListLogicalBridges:input_type -> opi_api.network.evpn_gw.v1alpha1.ListLogicalBridgesRequest - 9, // 18: opi_api.network.evpn_gw.v1alpha1.LogicalBridgeService.GetLogicalBridge:input_type -> opi_api.network.evpn_gw.v1alpha1.GetLogicalBridgeRequest - 10, // 19: opi_api.network.evpn_gw.v1alpha1.LogicalBridgeService.DeleteLogicalBridge:input_type -> opi_api.network.evpn_gw.v1alpha1.DeleteLogicalBridgeRequest - 11, // 20: opi_api.network.evpn_gw.v1alpha1.LogicalBridgeService.UpdateLogicalBridge:input_type -> opi_api.network.evpn_gw.v1alpha1.UpdateLogicalBridgeRequest - 15, // 21: opi_api.network.evpn_gw.v1alpha1.BridgePortService.CreateBridgePort:input_type -> opi_api.network.evpn_gw.v1alpha1.CreateBridgePortRequest - 16, // 22: opi_api.network.evpn_gw.v1alpha1.BridgePortService.ListBridgePorts:input_type -> opi_api.network.evpn_gw.v1alpha1.ListBridgePortsRequest - 18, // 23: opi_api.network.evpn_gw.v1alpha1.BridgePortService.GetBridgePort:input_type -> opi_api.network.evpn_gw.v1alpha1.GetBridgePortRequest - 19, // 24: opi_api.network.evpn_gw.v1alpha1.BridgePortService.DeleteBridgePort:input_type -> opi_api.network.evpn_gw.v1alpha1.DeleteBridgePortRequest - 20, // 25: opi_api.network.evpn_gw.v1alpha1.BridgePortService.UpdateBridgePort:input_type -> opi_api.network.evpn_gw.v1alpha1.UpdateBridgePortRequest - 3, // 26: opi_api.network.evpn_gw.v1alpha1.LogicalBridgeService.CreateLogicalBridge:output_type -> opi_api.network.evpn_gw.v1alpha1.LogicalBridge - 8, // 27: opi_api.network.evpn_gw.v1alpha1.LogicalBridgeService.ListLogicalBridges:output_type -> opi_api.network.evpn_gw.v1alpha1.ListLogicalBridgesResponse - 3, // 28: opi_api.network.evpn_gw.v1alpha1.LogicalBridgeService.GetLogicalBridge:output_type -> opi_api.network.evpn_gw.v1alpha1.LogicalBridge - 23, // 29: opi_api.network.evpn_gw.v1alpha1.LogicalBridgeService.DeleteLogicalBridge:output_type -> google.protobuf.Empty - 3, // 30: opi_api.network.evpn_gw.v1alpha1.LogicalBridgeService.UpdateLogicalBridge:output_type -> opi_api.network.evpn_gw.v1alpha1.LogicalBridge - 12, // 31: opi_api.network.evpn_gw.v1alpha1.BridgePortService.CreateBridgePort:output_type -> opi_api.network.evpn_gw.v1alpha1.BridgePort - 17, // 32: opi_api.network.evpn_gw.v1alpha1.BridgePortService.ListBridgePorts:output_type -> opi_api.network.evpn_gw.v1alpha1.ListBridgePortsResponse - 12, // 33: opi_api.network.evpn_gw.v1alpha1.BridgePortService.GetBridgePort:output_type -> opi_api.network.evpn_gw.v1alpha1.BridgePort - 23, // 34: opi_api.network.evpn_gw.v1alpha1.BridgePortService.DeleteBridgePort:output_type -> google.protobuf.Empty - 12, // 35: opi_api.network.evpn_gw.v1alpha1.BridgePortService.UpdateBridgePort:output_type -> opi_api.network.evpn_gw.v1alpha1.BridgePort - 26, // [26:36] is the sub-list for method output_type - 16, // [16:26] is the sub-list for method input_type - 16, // [16:16] is the sub-list for extension type_name - 16, // [16:16] is the sub-list for extension extendee - 0, // [0:16] is the sub-list for field type_name + 22, // 4: opi_api.network.evpn_gw.v1alpha1.LogicalBridgeStatus.components:type_name -> opi_api.network.evpn_gw.v1alpha1.Component + 3, // 5: opi_api.network.evpn_gw.v1alpha1.CreateLogicalBridgeRequest.logical_bridge:type_name -> opi_api.network.evpn_gw.v1alpha1.LogicalBridge + 3, // 6: opi_api.network.evpn_gw.v1alpha1.ListLogicalBridgesResponse.logical_bridges:type_name -> opi_api.network.evpn_gw.v1alpha1.LogicalBridge + 3, // 7: opi_api.network.evpn_gw.v1alpha1.UpdateLogicalBridgeRequest.logical_bridge:type_name -> opi_api.network.evpn_gw.v1alpha1.LogicalBridge + 23, // 8: opi_api.network.evpn_gw.v1alpha1.UpdateLogicalBridgeRequest.update_mask:type_name -> google.protobuf.FieldMask + 13, // 9: opi_api.network.evpn_gw.v1alpha1.BridgePort.spec:type_name -> opi_api.network.evpn_gw.v1alpha1.BridgePortSpec + 14, // 10: opi_api.network.evpn_gw.v1alpha1.BridgePort.status:type_name -> opi_api.network.evpn_gw.v1alpha1.BridgePortStatus + 2, // 11: opi_api.network.evpn_gw.v1alpha1.BridgePortSpec.ptype:type_name -> opi_api.network.evpn_gw.v1alpha1.BridgePortType + 1, // 12: opi_api.network.evpn_gw.v1alpha1.BridgePortStatus.oper_status:type_name -> opi_api.network.evpn_gw.v1alpha1.BPOperStatus + 22, // 13: opi_api.network.evpn_gw.v1alpha1.BridgePortStatus.components:type_name -> opi_api.network.evpn_gw.v1alpha1.Component + 12, // 14: opi_api.network.evpn_gw.v1alpha1.CreateBridgePortRequest.bridge_port:type_name -> opi_api.network.evpn_gw.v1alpha1.BridgePort + 12, // 15: opi_api.network.evpn_gw.v1alpha1.ListBridgePortsResponse.bridge_ports:type_name -> opi_api.network.evpn_gw.v1alpha1.BridgePort + 12, // 16: opi_api.network.evpn_gw.v1alpha1.UpdateBridgePortRequest.bridge_port:type_name -> opi_api.network.evpn_gw.v1alpha1.BridgePort + 23, // 17: opi_api.network.evpn_gw.v1alpha1.UpdateBridgePortRequest.update_mask:type_name -> google.protobuf.FieldMask + 6, // 18: opi_api.network.evpn_gw.v1alpha1.LogicalBridgeService.CreateLogicalBridge:input_type -> opi_api.network.evpn_gw.v1alpha1.CreateLogicalBridgeRequest + 7, // 19: opi_api.network.evpn_gw.v1alpha1.LogicalBridgeService.ListLogicalBridges:input_type -> opi_api.network.evpn_gw.v1alpha1.ListLogicalBridgesRequest + 9, // 20: opi_api.network.evpn_gw.v1alpha1.LogicalBridgeService.GetLogicalBridge:input_type -> opi_api.network.evpn_gw.v1alpha1.GetLogicalBridgeRequest + 10, // 21: opi_api.network.evpn_gw.v1alpha1.LogicalBridgeService.DeleteLogicalBridge:input_type -> opi_api.network.evpn_gw.v1alpha1.DeleteLogicalBridgeRequest + 11, // 22: opi_api.network.evpn_gw.v1alpha1.LogicalBridgeService.UpdateLogicalBridge:input_type -> opi_api.network.evpn_gw.v1alpha1.UpdateLogicalBridgeRequest + 15, // 23: opi_api.network.evpn_gw.v1alpha1.BridgePortService.CreateBridgePort:input_type -> opi_api.network.evpn_gw.v1alpha1.CreateBridgePortRequest + 16, // 24: opi_api.network.evpn_gw.v1alpha1.BridgePortService.ListBridgePorts:input_type -> opi_api.network.evpn_gw.v1alpha1.ListBridgePortsRequest + 18, // 25: opi_api.network.evpn_gw.v1alpha1.BridgePortService.GetBridgePort:input_type -> opi_api.network.evpn_gw.v1alpha1.GetBridgePortRequest + 19, // 26: opi_api.network.evpn_gw.v1alpha1.BridgePortService.DeleteBridgePort:input_type -> opi_api.network.evpn_gw.v1alpha1.DeleteBridgePortRequest + 20, // 27: opi_api.network.evpn_gw.v1alpha1.BridgePortService.UpdateBridgePort:input_type -> opi_api.network.evpn_gw.v1alpha1.UpdateBridgePortRequest + 3, // 28: opi_api.network.evpn_gw.v1alpha1.LogicalBridgeService.CreateLogicalBridge:output_type -> opi_api.network.evpn_gw.v1alpha1.LogicalBridge + 8, // 29: opi_api.network.evpn_gw.v1alpha1.LogicalBridgeService.ListLogicalBridges:output_type -> opi_api.network.evpn_gw.v1alpha1.ListLogicalBridgesResponse + 3, // 30: opi_api.network.evpn_gw.v1alpha1.LogicalBridgeService.GetLogicalBridge:output_type -> opi_api.network.evpn_gw.v1alpha1.LogicalBridge + 24, // 31: opi_api.network.evpn_gw.v1alpha1.LogicalBridgeService.DeleteLogicalBridge:output_type -> google.protobuf.Empty + 3, // 32: opi_api.network.evpn_gw.v1alpha1.LogicalBridgeService.UpdateLogicalBridge:output_type -> opi_api.network.evpn_gw.v1alpha1.LogicalBridge + 12, // 33: opi_api.network.evpn_gw.v1alpha1.BridgePortService.CreateBridgePort:output_type -> opi_api.network.evpn_gw.v1alpha1.BridgePort + 17, // 34: opi_api.network.evpn_gw.v1alpha1.BridgePortService.ListBridgePorts:output_type -> opi_api.network.evpn_gw.v1alpha1.ListBridgePortsResponse + 12, // 35: opi_api.network.evpn_gw.v1alpha1.BridgePortService.GetBridgePort:output_type -> opi_api.network.evpn_gw.v1alpha1.BridgePort + 24, // 36: opi_api.network.evpn_gw.v1alpha1.BridgePortService.DeleteBridgePort:output_type -> google.protobuf.Empty + 12, // 37: opi_api.network.evpn_gw.v1alpha1.BridgePortService.UpdateBridgePort:output_type -> opi_api.network.evpn_gw.v1alpha1.BridgePort + 28, // [28:38] is the sub-list for method output_type + 18, // [18:28] is the sub-list for method input_type + 18, // [18:18] is the sub-list for extension type_name + 18, // [18:18] is the sub-list for extension extendee + 0, // [0:18] is the sub-list for field type_name } func init() { file_l2_xpu_infra_mgr_proto_init() } @@ -1730,6 +1776,7 @@ func file_l2_xpu_infra_mgr_proto_init() { if File_l2_xpu_infra_mgr_proto != nil { return } + file_component_proto_init() if !protoimpl.UnsafeEnabled { file_l2_xpu_infra_mgr_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LogicalBridge); i { diff --git a/network/evpn-gw/v1alpha1/gen/go/l2_xpu_infra_mgr.pb.gw.go b/network/evpn-gw/v1alpha1/gen/go/l2_xpu_infra_mgr.pb.gw.go index f6e19fa5..61c06e11 100644 --- a/network/evpn-gw/v1alpha1/gen/go/l2_xpu_infra_mgr.pb.gw.go +++ b/network/evpn-gw/v1alpha1/gen/go/l2_xpu_infra_mgr.pb.gw.go @@ -32,18 +32,14 @@ var _ = utilities.NewDoubleArray var _ = metadata.Join var ( - filter_LogicalBridgeService_CreateLogicalBridge_0 = &utilities.DoubleArray{Encoding: map[string]int{"logical_bridge": 0, "logicalBridge": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} + filter_LogicalBridgeService_CreateLogicalBridge_0 = &utilities.DoubleArray{Encoding: map[string]int{"logical_bridge": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} ) func request_LogicalBridgeService_CreateLogicalBridge_0(ctx context.Context, marshaler runtime.Marshaler, client LogicalBridgeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq CreateLogicalBridgeRequest var metadata runtime.ServerMetadata - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.LogicalBridge); err != nil && err != io.EOF { + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq.LogicalBridge); err != nil && err != io.EOF { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -63,11 +59,7 @@ func local_request_LogicalBridgeService_CreateLogicalBridge_0(ctx context.Contex var protoReq CreateLogicalBridgeRequest var metadata runtime.ServerMetadata - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.LogicalBridge); err != nil && err != io.EOF { + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq.LogicalBridge); err != nil && err != io.EOF { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -172,7 +164,7 @@ func local_request_LogicalBridgeService_GetLogicalBridge_0(ctx context.Context, } var ( - filter_LogicalBridgeService_DeleteLogicalBridge_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} + filter_LogicalBridgeService_DeleteLogicalBridge_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} ) func request_LogicalBridgeService_DeleteLogicalBridge_0(ctx context.Context, marshaler runtime.Marshaler, client LogicalBridgeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { @@ -242,7 +234,7 @@ func local_request_LogicalBridgeService_DeleteLogicalBridge_0(ctx context.Contex } var ( - filter_LogicalBridgeService_UpdateLogicalBridge_0 = &utilities.DoubleArray{Encoding: map[string]int{"logical_bridge": 0, "logicalBridge": 1, "name": 2}, Base: []int{1, 3, 4, 5, 2, 0, 0, 0, 0}, Check: []int{0, 1, 1, 1, 2, 5, 2, 3, 4}} + filter_LogicalBridgeService_UpdateLogicalBridge_0 = &utilities.DoubleArray{Encoding: map[string]int{"logical_bridge": 0, "name": 1}, Base: []int{1, 2, 1, 0, 0}, Check: []int{0, 1, 2, 3, 2}} ) func request_LogicalBridgeService_UpdateLogicalBridge_0(ctx context.Context, marshaler runtime.Marshaler, client LogicalBridgeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { @@ -342,18 +334,14 @@ func local_request_LogicalBridgeService_UpdateLogicalBridge_0(ctx context.Contex } var ( - filter_BridgePortService_CreateBridgePort_0 = &utilities.DoubleArray{Encoding: map[string]int{"bridge_port": 0, "bridgePort": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} + filter_BridgePortService_CreateBridgePort_0 = &utilities.DoubleArray{Encoding: map[string]int{"bridge_port": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} ) func request_BridgePortService_CreateBridgePort_0(ctx context.Context, marshaler runtime.Marshaler, client BridgePortServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq CreateBridgePortRequest var metadata runtime.ServerMetadata - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.BridgePort); err != nil && err != io.EOF { + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq.BridgePort); err != nil && err != io.EOF { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -373,11 +361,7 @@ func local_request_BridgePortService_CreateBridgePort_0(ctx context.Context, mar var protoReq CreateBridgePortRequest var metadata runtime.ServerMetadata - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.BridgePort); err != nil && err != io.EOF { + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq.BridgePort); err != nil && err != io.EOF { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -482,7 +466,7 @@ func local_request_BridgePortService_GetBridgePort_0(ctx context.Context, marsha } var ( - filter_BridgePortService_DeleteBridgePort_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} + filter_BridgePortService_DeleteBridgePort_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} ) func request_BridgePortService_DeleteBridgePort_0(ctx context.Context, marshaler runtime.Marshaler, client BridgePortServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { @@ -552,7 +536,7 @@ func local_request_BridgePortService_DeleteBridgePort_0(ctx context.Context, mar } var ( - filter_BridgePortService_UpdateBridgePort_0 = &utilities.DoubleArray{Encoding: map[string]int{"bridge_port": 0, "bridgePort": 1, "name": 2}, Base: []int{1, 3, 4, 5, 2, 0, 0, 0, 0}, Check: []int{0, 1, 1, 1, 2, 5, 2, 3, 4}} + filter_BridgePortService_UpdateBridgePort_0 = &utilities.DoubleArray{Encoding: map[string]int{"bridge_port": 0, "name": 1}, Base: []int{1, 2, 1, 0, 0}, Check: []int{0, 1, 2, 3, 2}} ) func request_BridgePortService_UpdateBridgePort_0(ctx context.Context, marshaler runtime.Marshaler, client BridgePortServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { diff --git a/network/evpn-gw/v1alpha1/gen/go/l2_xpu_infra_mgr_grpc.pb.go b/network/evpn-gw/v1alpha1/gen/go/l2_xpu_infra_mgr_grpc.pb.go index d4e45ace..fe394a4c 100644 --- a/network/evpn-gw/v1alpha1/gen/go/l2_xpu_infra_mgr_grpc.pb.go +++ b/network/evpn-gw/v1alpha1/gen/go/l2_xpu_infra_mgr_grpc.pb.go @@ -1,5 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 // Copyright (C) 2023 Nordix Foundation. +// Copyright (c) 2024 Ericsson AB. // (-- api-linter: core::0132::request-parent-required=disabled // aip.dev/not-precedent: All the resources are top level. --) diff --git a/network/evpn-gw/v1alpha1/gen/go/l3_xpu_infra_mgr.pb.go b/network/evpn-gw/v1alpha1/gen/go/l3_xpu_infra_mgr.pb.go index 75a0c5de..c5d59980 100644 --- a/network/evpn-gw/v1alpha1/gen/go/l3_xpu_infra_mgr.pb.go +++ b/network/evpn-gw/v1alpha1/gen/go/l3_xpu_infra_mgr.pb.go @@ -1,5 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 // Copyright (C) 2023 Nordix Foundation. +// Copyright (c) 2024 Ericsson AB. // (-- api-linter: core::0132::request-parent-required=disabled // aip.dev/not-precedent: All the resources are top level. --) @@ -46,6 +47,8 @@ const ( VRFOperStatus_VRF_OPER_STATUS_UP VRFOperStatus = 1 // Vrf is down VRFOperStatus_VRF_OPER_STATUS_DOWN VRFOperStatus = 2 + // Vrf is to be deleted + VRFOperStatus_VRF_OPER_STATUS_TO_BE_DELETED VRFOperStatus = 3 ) // Enum value maps for VRFOperStatus. @@ -54,11 +57,13 @@ var ( 0: "VRF_OPER_STATUS_UNSPECIFIED", 1: "VRF_OPER_STATUS_UP", 2: "VRF_OPER_STATUS_DOWN", + 3: "VRF_OPER_STATUS_TO_BE_DELETED", } VRFOperStatus_value = map[string]int32{ - "VRF_OPER_STATUS_UNSPECIFIED": 0, - "VRF_OPER_STATUS_UP": 1, - "VRF_OPER_STATUS_DOWN": 2, + "VRF_OPER_STATUS_UNSPECIFIED": 0, + "VRF_OPER_STATUS_UP": 1, + "VRF_OPER_STATUS_DOWN": 2, + "VRF_OPER_STATUS_TO_BE_DELETED": 3, } ) @@ -99,6 +104,8 @@ const ( SVIOperStatus_SVI_OPER_STATUS_UP SVIOperStatus = 1 // Svi is down SVIOperStatus_SVI_OPER_STATUS_DOWN SVIOperStatus = 2 + // Svi is to be deleted + SVIOperStatus_SVI_OPER_STATUS_TO_BE_DELETED SVIOperStatus = 3 ) // Enum value maps for SVIOperStatus. @@ -107,11 +114,13 @@ var ( 0: "SVI_OPER_STATUS_UNSPECIFIED", 1: "SVI_OPER_STATUS_UP", 2: "SVI_OPER_STATUS_DOWN", + 3: "SVI_OPER_STATUS_TO_BE_DELETED", } SVIOperStatus_value = map[string]int32{ - "SVI_OPER_STATUS_UNSPECIFIED": 0, - "SVI_OPER_STATUS_UP": 1, - "SVI_OPER_STATUS_DOWN": 2, + "SVI_OPER_STATUS_UNSPECIFIED": 0, + "SVI_OPER_STATUS_UP": 1, + "SVI_OPER_STATUS_DOWN": 2, + "SVI_OPER_STATUS_TO_BE_DELETED": 3, } ) @@ -289,29 +298,10 @@ type VrfStatus struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Routing table number - // (-- api-linter: core::0141::forbidden-types=disabled - // - // aip.dev/not-precedent: routing_table cannot be negative number. --) - RoutingTable uint32 `protobuf:"varint,1,opt,name=routing_table,json=routingTable,proto3" json:"routing_table,omitempty"` - // Local AS configured for VRF - // (-- api-linter: core::0141::forbidden-types=disabled - // - // aip.dev/not-precedent: local_as cannot be negative number. --) - LocalAs uint32 `protobuf:"varint,2,opt,name=local_as,json=localAs,proto3" json:"local_as,omitempty"` - // Route distinguisher - Rd string `protobuf:"bytes,3,opt,name=rd,proto3" json:"rd,omitempty"` - // Router MAC address of the Vrf - Rmac []byte `protobuf:"bytes,4,opt,name=rmac,proto3" json:"rmac,omitempty"` - // List of import RTs - ImportRts []string `protobuf:"bytes,5,rep,name=import_rts,json=importRts,proto3" json:"import_rts,omitempty"` - // List of export RTs - ExportRts []string `protobuf:"bytes,6,rep,name=export_rts,json=exportRts,proto3" json:"export_rts,omitempty"` - // List of connected Logical Bridges to Vrf - // This defines the VLANs that are connected to the Vrf - LogicalBridges []string `protobuf:"bytes,7,rep,name=logical_bridges,json=logicalBridges,proto3" json:"logical_bridges,omitempty"` // operational status of a Vrf OperStatus VRFOperStatus `protobuf:"varint,8,opt,name=oper_status,json=operStatus,proto3,enum=opi_api.network.evpn_gw.v1alpha1.VRFOperStatus" json:"oper_status,omitempty"` + // status of the components + Components []*Component `protobuf:"bytes,9,rep,name=components,proto3" json:"components,omitempty"` } func (x *VrfStatus) Reset() { @@ -346,62 +336,20 @@ func (*VrfStatus) Descriptor() ([]byte, []int) { return file_l3_xpu_infra_mgr_proto_rawDescGZIP(), []int{2} } -func (x *VrfStatus) GetRoutingTable() uint32 { - if x != nil { - return x.RoutingTable - } - return 0 -} - -func (x *VrfStatus) GetLocalAs() uint32 { - if x != nil { - return x.LocalAs - } - return 0 -} - -func (x *VrfStatus) GetRd() string { - if x != nil { - return x.Rd - } - return "" -} - -func (x *VrfStatus) GetRmac() []byte { - if x != nil { - return x.Rmac - } - return nil -} - -func (x *VrfStatus) GetImportRts() []string { - if x != nil { - return x.ImportRts - } - return nil -} - -func (x *VrfStatus) GetExportRts() []string { +func (x *VrfStatus) GetOperStatus() VRFOperStatus { if x != nil { - return x.ExportRts + return x.OperStatus } - return nil + return VRFOperStatus_VRF_OPER_STATUS_UNSPECIFIED } -func (x *VrfStatus) GetLogicalBridges() []string { +func (x *VrfStatus) GetComponents() []*Component { if x != nil { - return x.LogicalBridges + return x.Components } return nil } -func (x *VrfStatus) GetOperStatus() VRFOperStatus { - if x != nil { - return x.OperStatus - } - return VRFOperStatus_VRF_OPER_STATUS_UNSPECIFIED -} - // CreateVrfRequest structure type CreateVrfRequest struct { state protoimpl.MessageState @@ -937,6 +885,8 @@ type SviStatus struct { // operational status of a Svi OperStatus SVIOperStatus `protobuf:"varint,1,opt,name=oper_status,json=operStatus,proto3,enum=opi_api.network.evpn_gw.v1alpha1.SVIOperStatus" json:"oper_status,omitempty"` + // status of the components + Components []*Component `protobuf:"bytes,2,rep,name=components,proto3" json:"components,omitempty"` } func (x *SviStatus) Reset() { @@ -978,6 +928,13 @@ func (x *SviStatus) GetOperStatus() SVIOperStatus { return SVIOperStatus_SVI_OPER_STATUS_UNSPECIFIED } +func (x *SviStatus) GetComponents() []*Component { + if x != nil { + return x.Components + } + return nil +} + // CreateSviRequest structure type CreateSviRequest struct { state protoimpl.MessageState @@ -1342,216 +1299,217 @@ var file_l3_xpu_infra_mgr_proto_rawDesc = []byte{ 0x67, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x20, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x1a, 0x12, 0x6e, 0x65, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 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, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x22, 0xee, 0x01, 0x0a, 0x03, 0x56, 0x72, 0x66, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x42, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x56, 0x72, 0x66, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x48, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, + 0x6f, 0x72, 0x6b, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0f, + 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 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, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x22, 0xee, 0x01, 0x0a, 0x03, 0x56, 0x72, 0x66, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x56, 0x72, 0x66, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x48, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, + 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x72, 0x66, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x3a, 0x40, 0xea, 0x41, 0x3d, 0x0a, 0x24, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x56, 0x72, 0x66, 0x12, 0x0a, 0x76, 0x72, 0x66, + 0x73, 0x2f, 0x7b, 0x76, 0x72, 0x66, 0x7d, 0x2a, 0x04, 0x76, 0x72, 0x66, 0x73, 0x32, 0x03, 0x76, + 0x72, 0x66, 0x22, 0xed, 0x01, 0x0a, 0x07, 0x56, 0x72, 0x66, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1a, + 0x0a, 0x03, 0x76, 0x6e, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x48, 0x00, 0x52, 0x03, 0x76, 0x6e, 0x69, 0x88, 0x01, 0x01, 0x12, 0x62, 0x0a, 0x12, 0x6c, 0x6f, + 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, + 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x65, 0x74, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, + 0x50, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x6c, 0x6f, + 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x49, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x5a, + 0x0a, 0x0e, 0x76, 0x74, 0x65, 0x70, 0x5f, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, + 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x65, 0x74, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, + 0x50, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x76, 0x74, + 0x65, 0x70, 0x49, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x76, + 0x6e, 0x69, 0x22, 0xb4, 0x01, 0x0a, 0x09, 0x56, 0x72, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x55, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x72, 0x66, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x3a, - 0x40, 0xea, 0x41, 0x3d, 0x0a, 0x24, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x56, 0x72, 0x66, 0x12, 0x0a, 0x76, 0x72, 0x66, 0x73, - 0x2f, 0x7b, 0x76, 0x72, 0x66, 0x7d, 0x2a, 0x04, 0x76, 0x72, 0x66, 0x73, 0x32, 0x03, 0x76, 0x72, - 0x66, 0x22, 0xed, 0x01, 0x0a, 0x07, 0x56, 0x72, 0x66, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1a, 0x0a, - 0x03, 0x76, 0x6e, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, - 0x00, 0x52, 0x03, 0x76, 0x6e, 0x69, 0x88, 0x01, 0x01, 0x12, 0x62, 0x0a, 0x12, 0x6c, 0x6f, 0x6f, - 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, - 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x65, 0x74, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x50, - 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x6c, 0x6f, 0x6f, - 0x70, 0x62, 0x61, 0x63, 0x6b, 0x49, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x5a, 0x0a, - 0x0e, 0x76, 0x74, 0x65, 0x70, 0x5f, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, - 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x65, 0x74, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x50, - 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x76, 0x74, 0x65, - 0x70, 0x49, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x76, 0x6e, - 0x69, 0x22, 0xd0, 0x02, 0x0a, 0x09, 0x56, 0x72, 0x66, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x28, 0x0a, 0x0d, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x72, 0x6f, 0x75, - 0x74, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x08, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x5f, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x03, - 0x52, 0x07, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x41, 0x73, 0x12, 0x13, 0x0a, 0x02, 0x72, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x02, 0x72, 0x64, 0x12, 0x17, - 0x0a, 0x04, 0x72, 0x6d, 0x61, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x03, 0xe0, 0x41, - 0x03, 0x52, 0x04, 0x72, 0x6d, 0x61, 0x63, 0x12, 0x22, 0x0a, 0x0a, 0x69, 0x6d, 0x70, 0x6f, 0x72, - 0x74, 0x5f, 0x72, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, - 0x52, 0x09, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x74, 0x73, 0x12, 0x22, 0x0a, 0x0a, 0x65, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x74, 0x73, 0x12, - 0x2c, 0x0a, 0x0f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x6c, - 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x73, 0x12, 0x55, 0x0a, - 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x52, 0x46, 0x4f, 0x70, 0x65, 0x72, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x6f, 0x70, 0x65, + 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x50, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, + 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x70, + 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, + 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, + 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, + 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x6c, 0x0a, 0x10, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x56, 0x72, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, + 0x06, 0x76, 0x72, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x05, 0x76, 0x72, 0x66, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x03, 0x76, 0x72, 0x66, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, + 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x72, 0x66, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x03, 0x76, 0x72, 0x66, 0x22, 0x57, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x56, + 0x72, 0x66, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, + 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x22, 0x75, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x72, 0x66, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x04, 0x76, 0x72, 0x66, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x52, 0x46, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x22, 0x6c, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x72, - 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x06, 0x76, 0x72, 0x66, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, 0x76, - 0x72, 0x66, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x03, 0x76, 0x72, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x72, 0x66, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x76, - 0x72, 0x66, 0x22, 0x57, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x72, 0x66, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, - 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, - 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, - 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x75, 0x0a, 0x10, 0x4c, - 0x69, 0x73, 0x74, 0x56, 0x72, 0x66, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x39, 0x0a, 0x04, 0x76, 0x72, 0x66, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x72, 0x66, 0x52, 0x04, 0x76, 0x72, 0x66, 0x73, 0x12, + 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, + 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x51, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x56, 0x72, + 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x56, 0x72, 0x66, 0x52, 0x04, 0x76, 0x72, 0x66, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, - 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x22, 0x51, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x56, 0x72, 0x66, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x6f, 0x70, 0x69, 0x5f, 0x61, + 0x2f, 0x56, 0x72, 0x66, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x7e, 0x0a, 0x10, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x56, 0x72, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, + 0x02, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x56, 0x72, 0x66, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x28, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x22, 0xbc, 0x01, 0x0a, 0x10, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x72, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x3c, 0x0a, 0x03, 0x76, 0x72, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, + 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, + 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x56, 0x72, 0x66, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x76, 0x72, 0x66, 0x12, 0x40, 0x0a, + 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, + 0x28, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x22, 0xee, 0x01, 0x0a, 0x03, 0x53, 0x76, + 0x69, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x08, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x04, 0x73, 0x70, + 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, - 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x56, 0x72, 0x66, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x7e, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, - 0x72, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, 0x0a, - 0x24, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x76, 0x69, 0x53, + 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x48, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, + 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2f, 0x56, 0x72, 0x66, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, - 0x73, 0x73, 0x69, 0x6e, 0x67, 0x22, 0xbc, 0x01, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x56, 0x72, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x03, 0x76, 0x72, - 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, - 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, - 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x72, 0x66, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x03, 0x76, 0x72, 0x66, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x28, 0x0a, 0x0d, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x73, - 0x73, 0x69, 0x6e, 0x67, 0x22, 0xee, 0x01, 0x0a, 0x03, 0x53, 0x76, 0x69, 0x12, 0x17, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x76, 0x69, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x48, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x70, 0x69, 0x5f, - 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, - 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x76, 0x69, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x3a, 0x40, 0xea, 0x41, 0x3d, 0x0a, 0x24, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, - 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, - 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x53, 0x76, 0x69, 0x12, 0x0a, - 0x73, 0x76, 0x69, 0x73, 0x2f, 0x7b, 0x73, 0x76, 0x69, 0x7d, 0x2a, 0x04, 0x73, 0x76, 0x69, 0x73, - 0x32, 0x03, 0x73, 0x76, 0x69, 0x22, 0xec, 0x02, 0x0a, 0x07, 0x53, 0x76, 0x69, 0x53, 0x70, 0x65, - 0x63, 0x12, 0x3e, 0x0a, 0x03, 0x76, 0x72, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, - 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, - 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x56, 0x72, 0x66, 0x52, 0x03, 0x76, 0x72, - 0x66, 0x12, 0x5d, 0x0a, 0x0e, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x72, 0x69, - 0x64, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x36, 0xe0, 0x41, 0x02, 0xfa, 0x41, - 0x30, 0x0a, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2f, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x52, 0x0d, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, - 0x12, 0x24, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x61, 0x63, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x56, 0x0a, 0x0c, 0x67, 0x77, 0x5f, 0x69, 0x70, 0x5f, - 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, - 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x6f, - 0x70, 0x69, 0x6e, 0x65, 0x74, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x50, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x0a, 0x67, 0x77, 0x49, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x22, - 0x0a, 0x0a, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x67, 0x70, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, - 0x67, 0x70, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x72, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x41, 0x73, 0x22, 0x62, 0x0a, 0x09, 0x53, 0x76, 0x69, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x55, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, - 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x56, 0x49, 0x4f, 0x70, 0x65, - 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x6f, 0x70, - 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x6c, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x53, 0x76, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x06, - 0x73, 0x76, 0x69, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x52, 0x05, 0x73, 0x76, 0x69, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x03, 0x73, 0x76, 0x69, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, - 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x76, 0x69, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x03, 0x73, 0x76, 0x69, 0x22, 0x57, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x76, - 0x69, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, - 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, - 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, - 0x75, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x76, 0x69, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x04, 0x73, 0x76, 0x69, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x76, 0x69, 0x52, 0x04, 0x73, 0x76, 0x69, 0x73, 0x12, 0x26, - 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, - 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x51, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x76, 0x69, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x6f, + 0x31, 0x2e, 0x53, 0x76, 0x69, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x3a, 0x40, 0xea, 0x41, 0x3d, 0x0a, 0x24, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, - 0x53, 0x76, 0x69, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x7e, 0x0a, 0x10, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x53, 0x76, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, - 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, + 0x53, 0x76, 0x69, 0x12, 0x0a, 0x73, 0x76, 0x69, 0x73, 0x2f, 0x7b, 0x73, 0x76, 0x69, 0x7d, 0x2a, + 0x04, 0x73, 0x76, 0x69, 0x73, 0x32, 0x03, 0x73, 0x76, 0x69, 0x22, 0xec, 0x02, 0x0a, 0x07, 0x53, + 0x76, 0x69, 0x53, 0x70, 0x65, 0x63, 0x12, 0x3e, 0x0a, 0x03, 0x76, 0x72, 0x66, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x6f, 0x70, 0x69, + 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, + 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x56, 0x72, + 0x66, 0x52, 0x03, 0x76, 0x72, 0x66, 0x12, 0x5d, 0x0a, 0x0e, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, + 0x6c, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x36, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x30, 0x0a, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, + 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x0d, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x42, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0a, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x56, 0x0a, 0x0c, 0x67, + 0x77, 0x5f, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x65, 0x74, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x50, 0x50, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x67, 0x77, 0x49, 0x70, 0x50, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x12, 0x22, 0x0a, 0x0a, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x67, + 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x42, 0x67, 0x70, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x5f, 0x61, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x08, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x73, 0x22, 0xb4, 0x01, 0x0a, 0x09, 0x53, 0x76, + 0x69, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x55, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, + 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, + 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x53, 0x56, 0x49, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x50, + 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x53, 0x76, 0x69, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x28, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x22, 0xbc, 0x01, 0x0a, 0x10, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x53, 0x76, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, - 0x0a, 0x03, 0x73, 0x76, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, - 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, - 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, - 0x76, 0x69, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x73, 0x76, 0x69, 0x12, 0x40, 0x0a, 0x0b, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x28, - 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x2a, 0x62, 0x0a, 0x0d, 0x56, 0x52, 0x46, 0x4f, - 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x1b, 0x56, 0x52, 0x46, - 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x56, 0x52, - 0x46, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x50, - 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x56, 0x52, 0x46, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x02, 0x2a, 0x62, 0x0a, 0x0d, - 0x53, 0x56, 0x49, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, - 0x1b, 0x53, 0x56, 0x49, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, - 0x0a, 0x12, 0x53, 0x56, 0x49, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, - 0x53, 0x5f, 0x55, 0x50, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x56, 0x49, 0x5f, 0x4f, 0x50, - 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x02, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x42, + 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, + 0x22, 0x6c, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x76, 0x69, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x06, 0x73, 0x76, 0x69, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, 0x73, 0x76, 0x69, 0x49, 0x64, + 0x12, 0x3c, 0x0a, 0x03, 0x73, 0x76, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, + 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x53, 0x76, 0x69, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x73, 0x76, 0x69, 0x22, 0x57, + 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x76, 0x69, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, + 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x75, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x53, + 0x76, 0x69, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x04, 0x73, + 0x76, 0x69, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x5f, + 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, + 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x76, 0x69, + 0x52, 0x04, 0x73, 0x76, 0x69, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, + 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x51, + 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x76, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x40, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, + 0x41, 0x02, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x53, 0x76, 0x69, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0x7e, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x76, 0x69, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x6f, 0x70, 0x69, + 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, + 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x53, 0x76, + 0x69, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, + 0x67, 0x22, 0xbc, 0x01, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x76, 0x69, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x03, 0x73, 0x76, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x67, 0x77, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x76, 0x69, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x03, 0x73, 0x76, 0x69, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, + 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x28, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, + 0x2a, 0x85, 0x01, 0x0a, 0x0d, 0x56, 0x52, 0x46, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x1b, 0x56, 0x52, 0x46, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x56, 0x52, 0x46, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x56, + 0x52, 0x46, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, + 0x4f, 0x57, 0x4e, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x56, 0x52, 0x46, 0x5f, 0x4f, 0x50, 0x45, + 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x42, 0x45, 0x5f, 0x44, + 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x03, 0x2a, 0x85, 0x01, 0x0a, 0x0d, 0x53, 0x56, 0x49, + 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x1b, 0x53, 0x56, + 0x49, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x53, + 0x56, 0x49, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, + 0x50, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x56, 0x49, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x02, 0x12, 0x21, 0x0a, + 0x1d, 0x53, 0x56, 0x49, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, + 0x5f, 0x54, 0x4f, 0x5f, 0x42, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x03, 0x32, 0xbe, 0x05, 0x0a, 0x0a, 0x56, 0x72, 0x66, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x8a, 0x01, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x72, 0x66, 0x12, 0x32, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, @@ -1687,8 +1645,9 @@ var file_l3_xpu_infra_mgr_proto_goTypes = []interface{}{ (*DeleteSviRequest)(nil), // 18: opi_api.network.evpn_gw.v1alpha1.DeleteSviRequest (*UpdateSviRequest)(nil), // 19: opi_api.network.evpn_gw.v1alpha1.UpdateSviRequest (*_go.IPPrefix)(nil), // 20: opi_api.network.opinetcommon.v1alpha1.IPPrefix - (*fieldmaskpb.FieldMask)(nil), // 21: google.protobuf.FieldMask - (*emptypb.Empty)(nil), // 22: google.protobuf.Empty + (*Component)(nil), // 21: opi_api.network.evpn_gw.v1alpha1.Component + (*fieldmaskpb.FieldMask)(nil), // 22: google.protobuf.FieldMask + (*emptypb.Empty)(nil), // 23: google.protobuf.Empty } var file_l3_xpu_infra_mgr_proto_depIdxs = []int32{ 3, // 0: opi_api.network.evpn_gw.v1alpha1.Vrf.spec:type_name -> opi_api.network.evpn_gw.v1alpha1.VrfSpec @@ -1696,43 +1655,45 @@ var file_l3_xpu_infra_mgr_proto_depIdxs = []int32{ 20, // 2: opi_api.network.evpn_gw.v1alpha1.VrfSpec.loopback_ip_prefix:type_name -> opi_api.network.opinetcommon.v1alpha1.IPPrefix 20, // 3: opi_api.network.evpn_gw.v1alpha1.VrfSpec.vtep_ip_prefix:type_name -> opi_api.network.opinetcommon.v1alpha1.IPPrefix 0, // 4: opi_api.network.evpn_gw.v1alpha1.VrfStatus.oper_status:type_name -> opi_api.network.evpn_gw.v1alpha1.VRFOperStatus - 2, // 5: opi_api.network.evpn_gw.v1alpha1.CreateVrfRequest.vrf:type_name -> opi_api.network.evpn_gw.v1alpha1.Vrf - 2, // 6: opi_api.network.evpn_gw.v1alpha1.ListVrfsResponse.vrfs:type_name -> opi_api.network.evpn_gw.v1alpha1.Vrf - 2, // 7: opi_api.network.evpn_gw.v1alpha1.UpdateVrfRequest.vrf:type_name -> opi_api.network.evpn_gw.v1alpha1.Vrf - 21, // 8: opi_api.network.evpn_gw.v1alpha1.UpdateVrfRequest.update_mask:type_name -> google.protobuf.FieldMask - 12, // 9: opi_api.network.evpn_gw.v1alpha1.Svi.spec:type_name -> opi_api.network.evpn_gw.v1alpha1.SviSpec - 13, // 10: opi_api.network.evpn_gw.v1alpha1.Svi.status:type_name -> opi_api.network.evpn_gw.v1alpha1.SviStatus - 20, // 11: opi_api.network.evpn_gw.v1alpha1.SviSpec.gw_ip_prefix:type_name -> opi_api.network.opinetcommon.v1alpha1.IPPrefix - 1, // 12: opi_api.network.evpn_gw.v1alpha1.SviStatus.oper_status:type_name -> opi_api.network.evpn_gw.v1alpha1.SVIOperStatus - 11, // 13: opi_api.network.evpn_gw.v1alpha1.CreateSviRequest.svi:type_name -> opi_api.network.evpn_gw.v1alpha1.Svi - 11, // 14: opi_api.network.evpn_gw.v1alpha1.ListSvisResponse.svis:type_name -> opi_api.network.evpn_gw.v1alpha1.Svi - 11, // 15: opi_api.network.evpn_gw.v1alpha1.UpdateSviRequest.svi:type_name -> opi_api.network.evpn_gw.v1alpha1.Svi - 21, // 16: opi_api.network.evpn_gw.v1alpha1.UpdateSviRequest.update_mask:type_name -> google.protobuf.FieldMask - 5, // 17: opi_api.network.evpn_gw.v1alpha1.VrfService.CreateVrf:input_type -> opi_api.network.evpn_gw.v1alpha1.CreateVrfRequest - 6, // 18: opi_api.network.evpn_gw.v1alpha1.VrfService.ListVrfs:input_type -> opi_api.network.evpn_gw.v1alpha1.ListVrfsRequest - 8, // 19: opi_api.network.evpn_gw.v1alpha1.VrfService.GetVrf:input_type -> opi_api.network.evpn_gw.v1alpha1.GetVrfRequest - 9, // 20: opi_api.network.evpn_gw.v1alpha1.VrfService.DeleteVrf:input_type -> opi_api.network.evpn_gw.v1alpha1.DeleteVrfRequest - 10, // 21: opi_api.network.evpn_gw.v1alpha1.VrfService.UpdateVrf:input_type -> opi_api.network.evpn_gw.v1alpha1.UpdateVrfRequest - 14, // 22: opi_api.network.evpn_gw.v1alpha1.SviService.CreateSvi:input_type -> opi_api.network.evpn_gw.v1alpha1.CreateSviRequest - 15, // 23: opi_api.network.evpn_gw.v1alpha1.SviService.ListSvis:input_type -> opi_api.network.evpn_gw.v1alpha1.ListSvisRequest - 17, // 24: opi_api.network.evpn_gw.v1alpha1.SviService.GetSvi:input_type -> opi_api.network.evpn_gw.v1alpha1.GetSviRequest - 18, // 25: opi_api.network.evpn_gw.v1alpha1.SviService.DeleteSvi:input_type -> opi_api.network.evpn_gw.v1alpha1.DeleteSviRequest - 19, // 26: opi_api.network.evpn_gw.v1alpha1.SviService.UpdateSvi:input_type -> opi_api.network.evpn_gw.v1alpha1.UpdateSviRequest - 2, // 27: opi_api.network.evpn_gw.v1alpha1.VrfService.CreateVrf:output_type -> opi_api.network.evpn_gw.v1alpha1.Vrf - 7, // 28: opi_api.network.evpn_gw.v1alpha1.VrfService.ListVrfs:output_type -> opi_api.network.evpn_gw.v1alpha1.ListVrfsResponse - 2, // 29: opi_api.network.evpn_gw.v1alpha1.VrfService.GetVrf:output_type -> opi_api.network.evpn_gw.v1alpha1.Vrf - 22, // 30: opi_api.network.evpn_gw.v1alpha1.VrfService.DeleteVrf:output_type -> google.protobuf.Empty - 2, // 31: opi_api.network.evpn_gw.v1alpha1.VrfService.UpdateVrf:output_type -> opi_api.network.evpn_gw.v1alpha1.Vrf - 11, // 32: opi_api.network.evpn_gw.v1alpha1.SviService.CreateSvi:output_type -> opi_api.network.evpn_gw.v1alpha1.Svi - 16, // 33: opi_api.network.evpn_gw.v1alpha1.SviService.ListSvis:output_type -> opi_api.network.evpn_gw.v1alpha1.ListSvisResponse - 11, // 34: opi_api.network.evpn_gw.v1alpha1.SviService.GetSvi:output_type -> opi_api.network.evpn_gw.v1alpha1.Svi - 22, // 35: opi_api.network.evpn_gw.v1alpha1.SviService.DeleteSvi:output_type -> google.protobuf.Empty - 11, // 36: opi_api.network.evpn_gw.v1alpha1.SviService.UpdateSvi:output_type -> opi_api.network.evpn_gw.v1alpha1.Svi - 27, // [27:37] is the sub-list for method output_type - 17, // [17:27] is the sub-list for method input_type - 17, // [17:17] is the sub-list for extension type_name - 17, // [17:17] is the sub-list for extension extendee - 0, // [0:17] is the sub-list for field type_name + 21, // 5: opi_api.network.evpn_gw.v1alpha1.VrfStatus.components:type_name -> opi_api.network.evpn_gw.v1alpha1.Component + 2, // 6: opi_api.network.evpn_gw.v1alpha1.CreateVrfRequest.vrf:type_name -> opi_api.network.evpn_gw.v1alpha1.Vrf + 2, // 7: opi_api.network.evpn_gw.v1alpha1.ListVrfsResponse.vrfs:type_name -> opi_api.network.evpn_gw.v1alpha1.Vrf + 2, // 8: opi_api.network.evpn_gw.v1alpha1.UpdateVrfRequest.vrf:type_name -> opi_api.network.evpn_gw.v1alpha1.Vrf + 22, // 9: opi_api.network.evpn_gw.v1alpha1.UpdateVrfRequest.update_mask:type_name -> google.protobuf.FieldMask + 12, // 10: opi_api.network.evpn_gw.v1alpha1.Svi.spec:type_name -> opi_api.network.evpn_gw.v1alpha1.SviSpec + 13, // 11: opi_api.network.evpn_gw.v1alpha1.Svi.status:type_name -> opi_api.network.evpn_gw.v1alpha1.SviStatus + 20, // 12: opi_api.network.evpn_gw.v1alpha1.SviSpec.gw_ip_prefix:type_name -> opi_api.network.opinetcommon.v1alpha1.IPPrefix + 1, // 13: opi_api.network.evpn_gw.v1alpha1.SviStatus.oper_status:type_name -> opi_api.network.evpn_gw.v1alpha1.SVIOperStatus + 21, // 14: opi_api.network.evpn_gw.v1alpha1.SviStatus.components:type_name -> opi_api.network.evpn_gw.v1alpha1.Component + 11, // 15: opi_api.network.evpn_gw.v1alpha1.CreateSviRequest.svi:type_name -> opi_api.network.evpn_gw.v1alpha1.Svi + 11, // 16: opi_api.network.evpn_gw.v1alpha1.ListSvisResponse.svis:type_name -> opi_api.network.evpn_gw.v1alpha1.Svi + 11, // 17: opi_api.network.evpn_gw.v1alpha1.UpdateSviRequest.svi:type_name -> opi_api.network.evpn_gw.v1alpha1.Svi + 22, // 18: opi_api.network.evpn_gw.v1alpha1.UpdateSviRequest.update_mask:type_name -> google.protobuf.FieldMask + 5, // 19: opi_api.network.evpn_gw.v1alpha1.VrfService.CreateVrf:input_type -> opi_api.network.evpn_gw.v1alpha1.CreateVrfRequest + 6, // 20: opi_api.network.evpn_gw.v1alpha1.VrfService.ListVrfs:input_type -> opi_api.network.evpn_gw.v1alpha1.ListVrfsRequest + 8, // 21: opi_api.network.evpn_gw.v1alpha1.VrfService.GetVrf:input_type -> opi_api.network.evpn_gw.v1alpha1.GetVrfRequest + 9, // 22: opi_api.network.evpn_gw.v1alpha1.VrfService.DeleteVrf:input_type -> opi_api.network.evpn_gw.v1alpha1.DeleteVrfRequest + 10, // 23: opi_api.network.evpn_gw.v1alpha1.VrfService.UpdateVrf:input_type -> opi_api.network.evpn_gw.v1alpha1.UpdateVrfRequest + 14, // 24: opi_api.network.evpn_gw.v1alpha1.SviService.CreateSvi:input_type -> opi_api.network.evpn_gw.v1alpha1.CreateSviRequest + 15, // 25: opi_api.network.evpn_gw.v1alpha1.SviService.ListSvis:input_type -> opi_api.network.evpn_gw.v1alpha1.ListSvisRequest + 17, // 26: opi_api.network.evpn_gw.v1alpha1.SviService.GetSvi:input_type -> opi_api.network.evpn_gw.v1alpha1.GetSviRequest + 18, // 27: opi_api.network.evpn_gw.v1alpha1.SviService.DeleteSvi:input_type -> opi_api.network.evpn_gw.v1alpha1.DeleteSviRequest + 19, // 28: opi_api.network.evpn_gw.v1alpha1.SviService.UpdateSvi:input_type -> opi_api.network.evpn_gw.v1alpha1.UpdateSviRequest + 2, // 29: opi_api.network.evpn_gw.v1alpha1.VrfService.CreateVrf:output_type -> opi_api.network.evpn_gw.v1alpha1.Vrf + 7, // 30: opi_api.network.evpn_gw.v1alpha1.VrfService.ListVrfs:output_type -> opi_api.network.evpn_gw.v1alpha1.ListVrfsResponse + 2, // 31: opi_api.network.evpn_gw.v1alpha1.VrfService.GetVrf:output_type -> opi_api.network.evpn_gw.v1alpha1.Vrf + 23, // 32: opi_api.network.evpn_gw.v1alpha1.VrfService.DeleteVrf:output_type -> google.protobuf.Empty + 2, // 33: opi_api.network.evpn_gw.v1alpha1.VrfService.UpdateVrf:output_type -> opi_api.network.evpn_gw.v1alpha1.Vrf + 11, // 34: opi_api.network.evpn_gw.v1alpha1.SviService.CreateSvi:output_type -> opi_api.network.evpn_gw.v1alpha1.Svi + 16, // 35: opi_api.network.evpn_gw.v1alpha1.SviService.ListSvis:output_type -> opi_api.network.evpn_gw.v1alpha1.ListSvisResponse + 11, // 36: opi_api.network.evpn_gw.v1alpha1.SviService.GetSvi:output_type -> opi_api.network.evpn_gw.v1alpha1.Svi + 23, // 37: opi_api.network.evpn_gw.v1alpha1.SviService.DeleteSvi:output_type -> google.protobuf.Empty + 11, // 38: opi_api.network.evpn_gw.v1alpha1.SviService.UpdateSvi:output_type -> opi_api.network.evpn_gw.v1alpha1.Svi + 29, // [29:39] is the sub-list for method output_type + 19, // [19:29] is the sub-list for method input_type + 19, // [19:19] is the sub-list for extension type_name + 19, // [19:19] is the sub-list for extension extendee + 0, // [0:19] is the sub-list for field type_name } func init() { file_l3_xpu_infra_mgr_proto_init() } @@ -1740,6 +1701,7 @@ func file_l3_xpu_infra_mgr_proto_init() { if File_l3_xpu_infra_mgr_proto != nil { return } + file_component_proto_init() if !protoimpl.UnsafeEnabled { file_l3_xpu_infra_mgr_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Vrf); i { diff --git a/network/evpn-gw/v1alpha1/gen/go/l3_xpu_infra_mgr.pb.gw.go b/network/evpn-gw/v1alpha1/gen/go/l3_xpu_infra_mgr.pb.gw.go index 191dd3f4..a56c531f 100644 --- a/network/evpn-gw/v1alpha1/gen/go/l3_xpu_infra_mgr.pb.gw.go +++ b/network/evpn-gw/v1alpha1/gen/go/l3_xpu_infra_mgr.pb.gw.go @@ -32,18 +32,14 @@ var _ = utilities.NewDoubleArray var _ = metadata.Join var ( - filter_VrfService_CreateVrf_0 = &utilities.DoubleArray{Encoding: map[string]int{"vrf": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} + filter_VrfService_CreateVrf_0 = &utilities.DoubleArray{Encoding: map[string]int{"vrf": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} ) func request_VrfService_CreateVrf_0(ctx context.Context, marshaler runtime.Marshaler, client VrfServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq CreateVrfRequest var metadata runtime.ServerMetadata - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Vrf); err != nil && err != io.EOF { + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq.Vrf); err != nil && err != io.EOF { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -63,11 +59,7 @@ func local_request_VrfService_CreateVrf_0(ctx context.Context, marshaler runtime var protoReq CreateVrfRequest var metadata runtime.ServerMetadata - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Vrf); err != nil && err != io.EOF { + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq.Vrf); err != nil && err != io.EOF { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -172,7 +164,7 @@ func local_request_VrfService_GetVrf_0(ctx context.Context, marshaler runtime.Ma } var ( - filter_VrfService_DeleteVrf_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} + filter_VrfService_DeleteVrf_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} ) func request_VrfService_DeleteVrf_0(ctx context.Context, marshaler runtime.Marshaler, client VrfServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { @@ -242,7 +234,7 @@ func local_request_VrfService_DeleteVrf_0(ctx context.Context, marshaler runtime } var ( - filter_VrfService_UpdateVrf_0 = &utilities.DoubleArray{Encoding: map[string]int{"vrf": 0, "name": 1}, Base: []int{1, 4, 5, 2, 0, 0, 0, 0}, Check: []int{0, 1, 1, 2, 4, 2, 2, 3}} + filter_VrfService_UpdateVrf_0 = &utilities.DoubleArray{Encoding: map[string]int{"vrf": 0, "name": 1}, Base: []int{1, 2, 1, 0, 0}, Check: []int{0, 1, 2, 3, 2}} ) func request_VrfService_UpdateVrf_0(ctx context.Context, marshaler runtime.Marshaler, client VrfServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { @@ -342,18 +334,14 @@ func local_request_VrfService_UpdateVrf_0(ctx context.Context, marshaler runtime } var ( - filter_SviService_CreateSvi_0 = &utilities.DoubleArray{Encoding: map[string]int{"svi": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} + filter_SviService_CreateSvi_0 = &utilities.DoubleArray{Encoding: map[string]int{"svi": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} ) func request_SviService_CreateSvi_0(ctx context.Context, marshaler runtime.Marshaler, client SviServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq CreateSviRequest var metadata runtime.ServerMetadata - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Svi); err != nil && err != io.EOF { + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq.Svi); err != nil && err != io.EOF { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -373,11 +361,7 @@ func local_request_SviService_CreateSvi_0(ctx context.Context, marshaler runtime var protoReq CreateSviRequest var metadata runtime.ServerMetadata - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Svi); err != nil && err != io.EOF { + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq.Svi); err != nil && err != io.EOF { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -482,7 +466,7 @@ func local_request_SviService_GetSvi_0(ctx context.Context, marshaler runtime.Ma } var ( - filter_SviService_DeleteSvi_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} + filter_SviService_DeleteSvi_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} ) func request_SviService_DeleteSvi_0(ctx context.Context, marshaler runtime.Marshaler, client SviServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { @@ -552,7 +536,7 @@ func local_request_SviService_DeleteSvi_0(ctx context.Context, marshaler runtime } var ( - filter_SviService_UpdateSvi_0 = &utilities.DoubleArray{Encoding: map[string]int{"svi": 0, "name": 1}, Base: []int{1, 4, 5, 2, 0, 0, 0, 0}, Check: []int{0, 1, 1, 2, 4, 2, 2, 3}} + filter_SviService_UpdateSvi_0 = &utilities.DoubleArray{Encoding: map[string]int{"svi": 0, "name": 1}, Base: []int{1, 2, 1, 0, 0}, Check: []int{0, 1, 2, 3, 2}} ) func request_SviService_UpdateSvi_0(ctx context.Context, marshaler runtime.Marshaler, client SviServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { diff --git a/network/evpn-gw/v1alpha1/gen/go/l3_xpu_infra_mgr_grpc.pb.go b/network/evpn-gw/v1alpha1/gen/go/l3_xpu_infra_mgr_grpc.pb.go index fe9aa89e..33f328be 100644 --- a/network/evpn-gw/v1alpha1/gen/go/l3_xpu_infra_mgr_grpc.pb.go +++ b/network/evpn-gw/v1alpha1/gen/go/l3_xpu_infra_mgr_grpc.pb.go @@ -1,5 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 // Copyright (C) 2023 Nordix Foundation. +// Copyright (c) 2024 Ericsson AB. // (-- api-linter: core::0132::request-parent-required=disabled // aip.dev/not-precedent: All the resources are top level. --) diff --git a/network/evpn-gw/v1alpha1/gen/python/component_pb2.py b/network/evpn-gw/v1alpha1/gen/python/component_pb2.py new file mode 100644 index 00000000..43cfc4d3 --- /dev/null +++ b/network/evpn-gw/v1alpha1/gen/python/component_pb2.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: component.proto +# Protobuf Python Version: 4.25.2 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0f\x63omponent.proto\x12 opi_api.network.evpn_gw.v1alpha1\x1a\x1fgoogle/api/field_behavior.proto\"\x91\x01\n\tComponent\x12\x18\n\x04name\x18\x01 \x01(\tB\x04\xe2\x41\x01\x03R\x04name\x12J\n\x06status\x18\x02 \x01(\x0e\x32,.opi_api.network.evpn_gw.v1alpha1.CompStatusB\x04\xe2\x41\x01\x03R\x06status\x12\x1e\n\x07\x64\x65tails\x18\x03 \x01(\tB\x04\xe2\x41\x01\x03R\x07\x64\x65tails*r\n\nCompStatus\x12\x1b\n\x17\x43OMP_STATUS_UNSPECIFIED\x10\x00\x12\x17\n\x13\x43OMP_STATUS_PENDING\x10\x01\x12\x17\n\x13\x43OMP_STATUS_SUCCESS\x10\x02\x12\x15\n\x11\x43OMP_STATUS_ERROR\x10\x03\x42s\n opi_api.network.evpn_gw.v1alpha1B\x0e\x43omponentProtoP\x01Z=github.com/opiproject/opi-api/network/evpn-gw/v1alpha1/gen/gob\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'component_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + _globals['DESCRIPTOR']._options = None + _globals['DESCRIPTOR']._serialized_options = b'\n opi_api.network.evpn_gw.v1alpha1B\016ComponentProtoP\001Z=github.com/opiproject/opi-api/network/evpn-gw/v1alpha1/gen/go' + _globals['_COMPONENT'].fields_by_name['name']._options = None + _globals['_COMPONENT'].fields_by_name['name']._serialized_options = b'\342A\001\003' + _globals['_COMPONENT'].fields_by_name['status']._options = None + _globals['_COMPONENT'].fields_by_name['status']._serialized_options = b'\342A\001\003' + _globals['_COMPONENT'].fields_by_name['details']._options = None + _globals['_COMPONENT'].fields_by_name['details']._serialized_options = b'\342A\001\003' + _globals['_COMPSTATUS']._serialized_start=234 + _globals['_COMPSTATUS']._serialized_end=348 + _globals['_COMPONENT']._serialized_start=87 + _globals['_COMPONENT']._serialized_end=232 +# @@protoc_insertion_point(module_scope) diff --git a/network/evpn-gw/v1alpha1/gen/python/component_pb2_grpc.py b/network/evpn-gw/v1alpha1/gen/python/component_pb2_grpc.py new file mode 100644 index 00000000..2daafffe --- /dev/null +++ b/network/evpn-gw/v1alpha1/gen/python/component_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/network/evpn-gw/v1alpha1/gen/python/l2_xpu_infra_mgr_pb2.py b/network/evpn-gw/v1alpha1/gen/python/l2_xpu_infra_mgr_pb2.py index 3a2c0de9..a8f408ea 100644 --- a/network/evpn-gw/v1alpha1/gen/python/l2_xpu_infra_mgr_pb2.py +++ b/network/evpn-gw/v1alpha1/gen/python/l2_xpu_infra_mgr_pb2.py @@ -13,6 +13,7 @@ import networktypes_pb2 as networktypes__pb2 +import component_pb2 as component__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 from google.api import client_pb2 as google_dot_api_dot_client__pb2 from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 @@ -21,7 +22,7 @@ from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16l2_xpu_infra_mgr.proto\x12 opi_api.network.evpn_gw.v1alpha1\x1a\x12networktypes.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x19google/api/resource.proto\"\xc2\x02\n\rLogicalBridge\x12\x18\n\x04name\x18\x01 \x01(\tB\x04\xe2\x41\x01\x08R\x04name\x12M\n\x04spec\x18\x02 \x01(\x0b\x32\x33.opi_api.network.evpn_gw.v1alpha1.LogicalBridgeSpecB\x04\xe2\x41\x01\x02R\x04spec\x12S\n\x06status\x18\x03 \x01(\x0b\x32\x35.opi_api.network.evpn_gw.v1alpha1.LogicalBridgeStatusB\x04\xe2\x41\x01\x03R\x06status:s\xea\x41p\n.opi_api.network.evpn_gw.v1alpha1/LogicalBridge\x12\x1flogicalBridges/{logical_bridge}*\x0elogicalBridges2\rlogicalBridge\"\xb4\x01\n\x11LogicalBridgeSpec\x12\x1d\n\x07vlan_id\x18\x01 \x01(\rB\x04\xe2\x41\x01\x02R\x06vlanId\x12\x1b\n\x03vni\x18\x02 \x01(\rB\x04\xe2\x41\x01\x01H\x00R\x03vni\x88\x01\x01\x12[\n\x0evtep_ip_prefix\x18\x03 \x01(\x0b\x32/.opi_api.network.opinetcommon.v1alpha1.IPPrefixB\x04\xe2\x41\x01\x01R\x0cvtepIpPrefixB\x06\n\x04_vni\"l\n\x13LogicalBridgeStatus\x12U\n\x0boper_status\x18\x01 \x01(\x0e\x32..opi_api.network.evpn_gw.v1alpha1.LBOperStatusB\x04\xe2\x41\x01\x03R\noperStatus\"\xac\x01\n\x1a\x43reateLogicalBridgeRequest\x12\x30\n\x11logical_bridge_id\x18\x01 \x01(\tB\x04\xe2\x41\x01\x01R\x0flogicalBridgeId\x12\\\n\x0elogical_bridge\x18\x02 \x01(\x0b\x32/.opi_api.network.evpn_gw.v1alpha1.LogicalBridgeB\x04\xe2\x41\x01\x02R\rlogicalBridge\"c\n\x19ListLogicalBridgesRequest\x12!\n\tpage_size\x18\x01 \x01(\x05\x42\x04\xe2\x41\x01\x01R\x08pageSize\x12#\n\npage_token\x18\x02 \x01(\tB\x04\xe2\x41\x01\x01R\tpageToken\"\x9e\x01\n\x1aListLogicalBridgesResponse\x12X\n\x0flogical_bridges\x18\x01 \x03(\x0b\x32/.opi_api.network.evpn_gw.v1alpha1.LogicalBridgeR\x0elogicalBridges\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"f\n\x17GetLogicalBridgeRequest\x12K\n\x04name\x18\x01 \x01(\tB7\xe2\x41\x01\x02\xfa\x41\x30\n.opi_api.network.evpn_gw.v1alpha1/LogicalBridgeR\x04name\"\x94\x01\n\x1a\x44\x65leteLogicalBridgeRequest\x12K\n\x04name\x18\x01 \x01(\tB7\xe2\x41\x01\x02\xfa\x41\x30\n.opi_api.network.evpn_gw.v1alpha1/LogicalBridgeR\x04name\x12)\n\rallow_missing\x18\x02 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"\xe8\x01\n\x1aUpdateLogicalBridgeRequest\x12\\\n\x0elogical_bridge\x18\x01 \x01(\x0b\x32/.opi_api.network.evpn_gw.v1alpha1.LogicalBridgeB\x04\xe2\x41\x01\x02R\rlogicalBridge\x12\x41\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x04\xe2\x41\x01\x01R\nupdateMask\x12)\n\rallow_missing\x18\x03 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"\xaa\x02\n\nBridgePort\x12\x18\n\x04name\x18\x01 \x01(\tB\x04\xe2\x41\x01\x08R\x04name\x12J\n\x04spec\x18\x02 \x01(\x0b\x32\x30.opi_api.network.evpn_gw.v1alpha1.BridgePortSpecB\x04\xe2\x41\x01\x02R\x04spec\x12P\n\x06status\x18\x03 \x01(\x0b\x32\x32.opi_api.network.evpn_gw.v1alpha1.BridgePortStatusB\x04\xe2\x41\x01\x03R\x06status:d\xea\x41\x61\n+opi_api.network.evpn_gw.v1alpha1/BridgePort\x12\x19\x62ridgePorts/{bridge_port}*\x0b\x62ridgePorts2\nbridgePort\"\xb4\x01\n\x0e\x42ridgePortSpec\x12%\n\x0bmac_address\x18\x01 \x01(\x0c\x42\x04\xe2\x41\x01\x02R\nmacAddress\x12L\n\x05ptype\x18\x02 \x01(\x0e\x32\x30.opi_api.network.evpn_gw.v1alpha1.BridgePortTypeB\x04\xe2\x41\x01\x02R\x05ptype\x12-\n\x0flogical_bridges\x18\x03 \x03(\tB\x04\xe2\x41\x01\x01R\x0elogicalBridges\"i\n\x10\x42ridgePortStatus\x12U\n\x0boper_status\x18\x01 \x01(\x0e\x32..opi_api.network.evpn_gw.v1alpha1.BPOperStatusB\x04\xe2\x41\x01\x03R\noperStatus\"\x9a\x01\n\x17\x43reateBridgePortRequest\x12*\n\x0e\x62ridge_port_id\x18\x01 \x01(\tB\x04\xe2\x41\x01\x01R\x0c\x62ridgePortId\x12S\n\x0b\x62ridge_port\x18\x02 \x01(\x0b\x32,.opi_api.network.evpn_gw.v1alpha1.BridgePortB\x04\xe2\x41\x01\x02R\nbridgePort\"`\n\x16ListBridgePortsRequest\x12!\n\tpage_size\x18\x01 \x01(\x05\x42\x04\xe2\x41\x01\x01R\x08pageSize\x12#\n\npage_token\x18\x02 \x01(\tB\x04\xe2\x41\x01\x01R\tpageToken\"\x92\x01\n\x17ListBridgePortsResponse\x12O\n\x0c\x62ridge_ports\x18\x01 \x03(\x0b\x32,.opi_api.network.evpn_gw.v1alpha1.BridgePortR\x0b\x62ridgePorts\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"`\n\x14GetBridgePortRequest\x12H\n\x04name\x18\x01 \x01(\tB4\xe2\x41\x01\x02\xfa\x41-\n+opi_api.network.evpn_gw.v1alpha1/BridgePortR\x04name\"\x8e\x01\n\x17\x44\x65leteBridgePortRequest\x12H\n\x04name\x18\x01 \x01(\tB4\xe2\x41\x01\x02\xfa\x41-\n+opi_api.network.evpn_gw.v1alpha1/BridgePortR\x04name\x12)\n\rallow_missing\x18\x02 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"\xdc\x01\n\x17UpdateBridgePortRequest\x12S\n\x0b\x62ridge_port\x18\x01 \x01(\x0b\x32,.opi_api.network.evpn_gw.v1alpha1.BridgePortB\x04\xe2\x41\x01\x02R\nbridgePort\x12\x41\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x04\xe2\x41\x01\x01R\nupdateMask\x12)\n\rallow_missing\x18\x03 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing*^\n\x0cLBOperStatus\x12\x1e\n\x1aLB_OPER_STATUS_UNSPECIFIED\x10\x00\x12\x15\n\x11LB_OPER_STATUS_UP\x10\x01\x12\x17\n\x13LB_OPER_STATUS_DOWN\x10\x02*^\n\x0c\x42POperStatus\x12\x1e\n\x1a\x42P_OPER_STATUS_UNSPECIFIED\x10\x00\x12\x15\n\x11\x42P_OPER_STATUS_UP\x10\x01\x12\x17\n\x13\x42P_OPER_STATUS_DOWN\x10\x02*k\n\x0e\x42ridgePortType\x12 \n\x1c\x42RIDGE_PORT_TYPE_UNSPECIFIED\x10\x00\x12\x1b\n\x17\x42RIDGE_PORT_TYPE_ACCESS\x10\x01\x12\x1a\n\x16\x42RIDGE_PORT_TYPE_TRUNK\x10\x02\x32\xc9\x07\n\x14LogicalBridgeService\x12\xd3\x01\n\x13\x43reateLogicalBridge\x12<.opi_api.network.evpn_gw.v1alpha1.CreateLogicalBridgeRequest\x1a/.opi_api.network.evpn_gw.v1alpha1.LogicalBridge\"M\xda\x41 logical_bridge,logical_bridge_id\x82\xd3\xe4\x93\x02$\"\x12/v1/logicalBridges:\x0elogical_bridge\x12\xab\x01\n\x12ListLogicalBridges\x12;.opi_api.network.evpn_gw.v1alpha1.ListLogicalBridgesRequest\x1a<.opi_api.network.evpn_gw.v1alpha1.ListLogicalBridgesResponse\"\x1a\x82\xd3\xe4\x93\x02\x14\x12\x12/v1/logicalBridges\x12\xaa\x01\n\x10GetLogicalBridge\x12\x39.opi_api.network.evpn_gw.v1alpha1.GetLogicalBridgeRequest\x1a/.opi_api.network.evpn_gw.v1alpha1.LogicalBridge\"*\xda\x41\x04name\x82\xd3\xe4\x93\x02\x1d\x12\x1b/v1/{name=logicalBridges/*}\x12\x97\x01\n\x13\x44\x65leteLogicalBridge\x12<.opi_api.network.evpn_gw.v1alpha1.DeleteLogicalBridgeRequest\x1a\x16.google.protobuf.Empty\"*\xda\x41\x04name\x82\xd3\xe4\x93\x02\x1d*\x1b/v1/{name=logicalBridges/*}\x12\xe5\x01\n\x13UpdateLogicalBridge\x12<.opi_api.network.evpn_gw.v1alpha1.UpdateLogicalBridgeRequest\x1a/.opi_api.network.evpn_gw.v1alpha1.LogicalBridge\"_\xda\x41\x1alogical_bridge,update_mask\x82\xd3\xe4\x93\x02<2*/v1/{logical_bridge.name=logicalBridges/*}:\x0elogical_bridge2\xfb\x06\n\x11\x42ridgePortService\x12\xbe\x01\n\x10\x43reateBridgePort\x12\x39.opi_api.network.evpn_gw.v1alpha1.CreateBridgePortRequest\x1a,.opi_api.network.evpn_gw.v1alpha1.BridgePort\"A\xda\x41\x1a\x62ridge_port,bridge_port_id\x82\xd3\xe4\x93\x02\x1e\"\x0f/v1/bridgePorts:\x0b\x62ridge_port\x12\x9f\x01\n\x0fListBridgePorts\x12\x38.opi_api.network.evpn_gw.v1alpha1.ListBridgePortsRequest\x1a\x39.opi_api.network.evpn_gw.v1alpha1.ListBridgePortsResponse\"\x17\x82\xd3\xe4\x93\x02\x11\x12\x0f/v1/bridgePorts\x12\x9e\x01\n\rGetBridgePort\x12\x36.opi_api.network.evpn_gw.v1alpha1.GetBridgePortRequest\x1a,.opi_api.network.evpn_gw.v1alpha1.BridgePort\"\'\xda\x41\x04name\x82\xd3\xe4\x93\x02\x1a\x12\x18/v1/{name=bridgePorts/*}\x12\x8e\x01\n\x10\x44\x65leteBridgePort\x12\x39.opi_api.network.evpn_gw.v1alpha1.DeleteBridgePortRequest\x1a\x16.google.protobuf.Empty\"\'\xda\x41\x04name\x82\xd3\xe4\x93\x02\x1a*\x18/v1/{name=bridgePorts/*}\x12\xd0\x01\n\x10UpdateBridgePort\x12\x39.opi_api.network.evpn_gw.v1alpha1.UpdateBridgePortRequest\x1a,.opi_api.network.evpn_gw.v1alpha1.BridgePort\"S\xda\x41\x17\x62ridge_port,update_mask\x82\xd3\xe4\x93\x02\x33\x32$/v1/{bridge_port.name=bridgePorts/*}:\x0b\x62ridge_portBw\n opi_api.network.evpn_gw.v1alpha1B\x12L2XpuInfraMgrProtoP\x01Z=github.com/opiproject/opi-api/network/evpn-gw/v1alpha1/gen/gob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16l2_xpu_infra_mgr.proto\x12 opi_api.network.evpn_gw.v1alpha1\x1a\x12networktypes.proto\x1a\x0f\x63omponent.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x19google/api/resource.proto\"\xc2\x02\n\rLogicalBridge\x12\x18\n\x04name\x18\x01 \x01(\tB\x04\xe2\x41\x01\x08R\x04name\x12M\n\x04spec\x18\x02 \x01(\x0b\x32\x33.opi_api.network.evpn_gw.v1alpha1.LogicalBridgeSpecB\x04\xe2\x41\x01\x02R\x04spec\x12S\n\x06status\x18\x03 \x01(\x0b\x32\x35.opi_api.network.evpn_gw.v1alpha1.LogicalBridgeStatusB\x04\xe2\x41\x01\x03R\x06status:s\xea\x41p\n.opi_api.network.evpn_gw.v1alpha1/LogicalBridge\x12\x1flogicalBridges/{logical_bridge}*\x0elogicalBridges2\rlogicalBridge\"\xb4\x01\n\x11LogicalBridgeSpec\x12\x1d\n\x07vlan_id\x18\x01 \x01(\rB\x04\xe2\x41\x01\x02R\x06vlanId\x12\x1b\n\x03vni\x18\x02 \x01(\rB\x04\xe2\x41\x01\x01H\x00R\x03vni\x88\x01\x01\x12[\n\x0evtep_ip_prefix\x18\x03 \x01(\x0b\x32/.opi_api.network.opinetcommon.v1alpha1.IPPrefixB\x04\xe2\x41\x01\x01R\x0cvtepIpPrefixB\x06\n\x04_vni\"\xbf\x01\n\x13LogicalBridgeStatus\x12U\n\x0boper_status\x18\x01 \x01(\x0e\x32..opi_api.network.evpn_gw.v1alpha1.LBOperStatusB\x04\xe2\x41\x01\x03R\noperStatus\x12Q\n\ncomponents\x18\x02 \x03(\x0b\x32+.opi_api.network.evpn_gw.v1alpha1.ComponentB\x04\xe2\x41\x01\x03R\ncomponents\"\xac\x01\n\x1a\x43reateLogicalBridgeRequest\x12\x30\n\x11logical_bridge_id\x18\x01 \x01(\tB\x04\xe2\x41\x01\x01R\x0flogicalBridgeId\x12\\\n\x0elogical_bridge\x18\x02 \x01(\x0b\x32/.opi_api.network.evpn_gw.v1alpha1.LogicalBridgeB\x04\xe2\x41\x01\x02R\rlogicalBridge\"c\n\x19ListLogicalBridgesRequest\x12!\n\tpage_size\x18\x01 \x01(\x05\x42\x04\xe2\x41\x01\x01R\x08pageSize\x12#\n\npage_token\x18\x02 \x01(\tB\x04\xe2\x41\x01\x01R\tpageToken\"\x9e\x01\n\x1aListLogicalBridgesResponse\x12X\n\x0flogical_bridges\x18\x01 \x03(\x0b\x32/.opi_api.network.evpn_gw.v1alpha1.LogicalBridgeR\x0elogicalBridges\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"f\n\x17GetLogicalBridgeRequest\x12K\n\x04name\x18\x01 \x01(\tB7\xe2\x41\x01\x02\xfa\x41\x30\n.opi_api.network.evpn_gw.v1alpha1/LogicalBridgeR\x04name\"\x94\x01\n\x1a\x44\x65leteLogicalBridgeRequest\x12K\n\x04name\x18\x01 \x01(\tB7\xe2\x41\x01\x02\xfa\x41\x30\n.opi_api.network.evpn_gw.v1alpha1/LogicalBridgeR\x04name\x12)\n\rallow_missing\x18\x02 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"\xe8\x01\n\x1aUpdateLogicalBridgeRequest\x12\\\n\x0elogical_bridge\x18\x01 \x01(\x0b\x32/.opi_api.network.evpn_gw.v1alpha1.LogicalBridgeB\x04\xe2\x41\x01\x02R\rlogicalBridge\x12\x41\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x04\xe2\x41\x01\x01R\nupdateMask\x12)\n\rallow_missing\x18\x03 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"\xaa\x02\n\nBridgePort\x12\x18\n\x04name\x18\x01 \x01(\tB\x04\xe2\x41\x01\x08R\x04name\x12J\n\x04spec\x18\x02 \x01(\x0b\x32\x30.opi_api.network.evpn_gw.v1alpha1.BridgePortSpecB\x04\xe2\x41\x01\x02R\x04spec\x12P\n\x06status\x18\x03 \x01(\x0b\x32\x32.opi_api.network.evpn_gw.v1alpha1.BridgePortStatusB\x04\xe2\x41\x01\x03R\x06status:d\xea\x41\x61\n+opi_api.network.evpn_gw.v1alpha1/BridgePort\x12\x19\x62ridgePorts/{bridge_port}*\x0b\x62ridgePorts2\nbridgePort\"\xb4\x01\n\x0e\x42ridgePortSpec\x12%\n\x0bmac_address\x18\x01 \x01(\x0c\x42\x04\xe2\x41\x01\x02R\nmacAddress\x12L\n\x05ptype\x18\x02 \x01(\x0e\x32\x30.opi_api.network.evpn_gw.v1alpha1.BridgePortTypeB\x04\xe2\x41\x01\x02R\x05ptype\x12-\n\x0flogical_bridges\x18\x03 \x03(\tB\x04\xe2\x41\x01\x01R\x0elogicalBridges\"\xbc\x01\n\x10\x42ridgePortStatus\x12U\n\x0boper_status\x18\x01 \x01(\x0e\x32..opi_api.network.evpn_gw.v1alpha1.BPOperStatusB\x04\xe2\x41\x01\x03R\noperStatus\x12Q\n\ncomponents\x18\x02 \x03(\x0b\x32+.opi_api.network.evpn_gw.v1alpha1.ComponentB\x04\xe2\x41\x01\x03R\ncomponents\"\x9a\x01\n\x17\x43reateBridgePortRequest\x12*\n\x0e\x62ridge_port_id\x18\x01 \x01(\tB\x04\xe2\x41\x01\x01R\x0c\x62ridgePortId\x12S\n\x0b\x62ridge_port\x18\x02 \x01(\x0b\x32,.opi_api.network.evpn_gw.v1alpha1.BridgePortB\x04\xe2\x41\x01\x02R\nbridgePort\"`\n\x16ListBridgePortsRequest\x12!\n\tpage_size\x18\x01 \x01(\x05\x42\x04\xe2\x41\x01\x01R\x08pageSize\x12#\n\npage_token\x18\x02 \x01(\tB\x04\xe2\x41\x01\x01R\tpageToken\"\x92\x01\n\x17ListBridgePortsResponse\x12O\n\x0c\x62ridge_ports\x18\x01 \x03(\x0b\x32,.opi_api.network.evpn_gw.v1alpha1.BridgePortR\x0b\x62ridgePorts\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"`\n\x14GetBridgePortRequest\x12H\n\x04name\x18\x01 \x01(\tB4\xe2\x41\x01\x02\xfa\x41-\n+opi_api.network.evpn_gw.v1alpha1/BridgePortR\x04name\"\x8e\x01\n\x17\x44\x65leteBridgePortRequest\x12H\n\x04name\x18\x01 \x01(\tB4\xe2\x41\x01\x02\xfa\x41-\n+opi_api.network.evpn_gw.v1alpha1/BridgePortR\x04name\x12)\n\rallow_missing\x18\x02 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"\xdc\x01\n\x17UpdateBridgePortRequest\x12S\n\x0b\x62ridge_port\x18\x01 \x01(\x0b\x32,.opi_api.network.evpn_gw.v1alpha1.BridgePortB\x04\xe2\x41\x01\x02R\nbridgePort\x12\x41\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x04\xe2\x41\x01\x01R\nupdateMask\x12)\n\rallow_missing\x18\x03 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing*\x80\x01\n\x0cLBOperStatus\x12\x1e\n\x1aLB_OPER_STATUS_UNSPECIFIED\x10\x00\x12\x15\n\x11LB_OPER_STATUS_UP\x10\x01\x12\x17\n\x13LB_OPER_STATUS_DOWN\x10\x02\x12 \n\x1cLB_OPER_STATUS_TO_BE_DELETED\x10\x03*\x80\x01\n\x0c\x42POperStatus\x12\x1e\n\x1a\x42P_OPER_STATUS_UNSPECIFIED\x10\x00\x12\x15\n\x11\x42P_OPER_STATUS_UP\x10\x01\x12\x17\n\x13\x42P_OPER_STATUS_DOWN\x10\x02\x12 \n\x1c\x42P_OPER_STATUS_TO_BE_DELETED\x10\x03*k\n\x0e\x42ridgePortType\x12 \n\x1c\x42RIDGE_PORT_TYPE_UNSPECIFIED\x10\x00\x12\x1b\n\x17\x42RIDGE_PORT_TYPE_ACCESS\x10\x01\x12\x1a\n\x16\x42RIDGE_PORT_TYPE_TRUNK\x10\x02\x32\xc9\x07\n\x14LogicalBridgeService\x12\xd3\x01\n\x13\x43reateLogicalBridge\x12<.opi_api.network.evpn_gw.v1alpha1.CreateLogicalBridgeRequest\x1a/.opi_api.network.evpn_gw.v1alpha1.LogicalBridge\"M\xda\x41 logical_bridge,logical_bridge_id\x82\xd3\xe4\x93\x02$\"\x12/v1/logicalBridges:\x0elogical_bridge\x12\xab\x01\n\x12ListLogicalBridges\x12;.opi_api.network.evpn_gw.v1alpha1.ListLogicalBridgesRequest\x1a<.opi_api.network.evpn_gw.v1alpha1.ListLogicalBridgesResponse\"\x1a\x82\xd3\xe4\x93\x02\x14\x12\x12/v1/logicalBridges\x12\xaa\x01\n\x10GetLogicalBridge\x12\x39.opi_api.network.evpn_gw.v1alpha1.GetLogicalBridgeRequest\x1a/.opi_api.network.evpn_gw.v1alpha1.LogicalBridge\"*\xda\x41\x04name\x82\xd3\xe4\x93\x02\x1d\x12\x1b/v1/{name=logicalBridges/*}\x12\x97\x01\n\x13\x44\x65leteLogicalBridge\x12<.opi_api.network.evpn_gw.v1alpha1.DeleteLogicalBridgeRequest\x1a\x16.google.protobuf.Empty\"*\xda\x41\x04name\x82\xd3\xe4\x93\x02\x1d*\x1b/v1/{name=logicalBridges/*}\x12\xe5\x01\n\x13UpdateLogicalBridge\x12<.opi_api.network.evpn_gw.v1alpha1.UpdateLogicalBridgeRequest\x1a/.opi_api.network.evpn_gw.v1alpha1.LogicalBridge\"_\xda\x41\x1alogical_bridge,update_mask\x82\xd3\xe4\x93\x02<2*/v1/{logical_bridge.name=logicalBridges/*}:\x0elogical_bridge2\xfb\x06\n\x11\x42ridgePortService\x12\xbe\x01\n\x10\x43reateBridgePort\x12\x39.opi_api.network.evpn_gw.v1alpha1.CreateBridgePortRequest\x1a,.opi_api.network.evpn_gw.v1alpha1.BridgePort\"A\xda\x41\x1a\x62ridge_port,bridge_port_id\x82\xd3\xe4\x93\x02\x1e\"\x0f/v1/bridgePorts:\x0b\x62ridge_port\x12\x9f\x01\n\x0fListBridgePorts\x12\x38.opi_api.network.evpn_gw.v1alpha1.ListBridgePortsRequest\x1a\x39.opi_api.network.evpn_gw.v1alpha1.ListBridgePortsResponse\"\x17\x82\xd3\xe4\x93\x02\x11\x12\x0f/v1/bridgePorts\x12\x9e\x01\n\rGetBridgePort\x12\x36.opi_api.network.evpn_gw.v1alpha1.GetBridgePortRequest\x1a,.opi_api.network.evpn_gw.v1alpha1.BridgePort\"\'\xda\x41\x04name\x82\xd3\xe4\x93\x02\x1a\x12\x18/v1/{name=bridgePorts/*}\x12\x8e\x01\n\x10\x44\x65leteBridgePort\x12\x39.opi_api.network.evpn_gw.v1alpha1.DeleteBridgePortRequest\x1a\x16.google.protobuf.Empty\"\'\xda\x41\x04name\x82\xd3\xe4\x93\x02\x1a*\x18/v1/{name=bridgePorts/*}\x12\xd0\x01\n\x10UpdateBridgePort\x12\x39.opi_api.network.evpn_gw.v1alpha1.UpdateBridgePortRequest\x1a,.opi_api.network.evpn_gw.v1alpha1.BridgePort\"S\xda\x41\x17\x62ridge_port,update_mask\x82\xd3\xe4\x93\x02\x33\x32$/v1/{bridge_port.name=bridgePorts/*}:\x0b\x62ridge_portBw\n opi_api.network.evpn_gw.v1alpha1B\x12L2XpuInfraMgrProtoP\x01Z=github.com/opiproject/opi-api/network/evpn-gw/v1alpha1/gen/gob\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -45,6 +46,8 @@ _globals['_LOGICALBRIDGESPEC'].fields_by_name['vtep_ip_prefix']._serialized_options = b'\342A\001\001' _globals['_LOGICALBRIDGESTATUS'].fields_by_name['oper_status']._options = None _globals['_LOGICALBRIDGESTATUS'].fields_by_name['oper_status']._serialized_options = b'\342A\001\003' + _globals['_LOGICALBRIDGESTATUS'].fields_by_name['components']._options = None + _globals['_LOGICALBRIDGESTATUS'].fields_by_name['components']._serialized_options = b'\342A\001\003' _globals['_CREATELOGICALBRIDGEREQUEST'].fields_by_name['logical_bridge_id']._options = None _globals['_CREATELOGICALBRIDGEREQUEST'].fields_by_name['logical_bridge_id']._serialized_options = b'\342A\001\001' _globals['_CREATELOGICALBRIDGEREQUEST'].fields_by_name['logical_bridge']._options = None @@ -81,6 +84,8 @@ _globals['_BRIDGEPORTSPEC'].fields_by_name['logical_bridges']._serialized_options = b'\342A\001\001' _globals['_BRIDGEPORTSTATUS'].fields_by_name['oper_status']._options = None _globals['_BRIDGEPORTSTATUS'].fields_by_name['oper_status']._serialized_options = b'\342A\001\003' + _globals['_BRIDGEPORTSTATUS'].fields_by_name['components']._options = None + _globals['_BRIDGEPORTSTATUS'].fields_by_name['components']._serialized_options = b'\342A\001\003' _globals['_CREATEBRIDGEPORTREQUEST'].fields_by_name['bridge_port_id']._options = None _globals['_CREATEBRIDGEPORTREQUEST'].fields_by_name['bridge_port_id']._serialized_options = b'\342A\001\001' _globals['_CREATEBRIDGEPORTREQUEST'].fields_by_name['bridge_port']._options = None @@ -121,50 +126,50 @@ _globals['_BRIDGEPORTSERVICE'].methods_by_name['DeleteBridgePort']._serialized_options = b'\332A\004name\202\323\344\223\002\032*\030/v1/{name=bridgePorts/*}' _globals['_BRIDGEPORTSERVICE'].methods_by_name['UpdateBridgePort']._options = None _globals['_BRIDGEPORTSERVICE'].methods_by_name['UpdateBridgePort']._serialized_options = b'\332A\027bridge_port,update_mask\202\323\344\223\00232$/v1/{bridge_port.name=bridgePorts/*}:\013bridge_port' - _globals['_LBOPERSTATUS']._serialized_start=3264 - _globals['_LBOPERSTATUS']._serialized_end=3358 - _globals['_BPOPERSTATUS']._serialized_start=3360 - _globals['_BPOPERSTATUS']._serialized_end=3454 - _globals['_BRIDGEPORTTYPE']._serialized_start=3456 - _globals['_BRIDGEPORTTYPE']._serialized_end=3563 - _globals['_LOGICALBRIDGE']._serialized_start=259 - _globals['_LOGICALBRIDGE']._serialized_end=581 - _globals['_LOGICALBRIDGESPEC']._serialized_start=584 - _globals['_LOGICALBRIDGESPEC']._serialized_end=764 - _globals['_LOGICALBRIDGESTATUS']._serialized_start=766 - _globals['_LOGICALBRIDGESTATUS']._serialized_end=874 - _globals['_CREATELOGICALBRIDGEREQUEST']._serialized_start=877 - _globals['_CREATELOGICALBRIDGEREQUEST']._serialized_end=1049 - _globals['_LISTLOGICALBRIDGESREQUEST']._serialized_start=1051 - _globals['_LISTLOGICALBRIDGESREQUEST']._serialized_end=1150 - _globals['_LISTLOGICALBRIDGESRESPONSE']._serialized_start=1153 - _globals['_LISTLOGICALBRIDGESRESPONSE']._serialized_end=1311 - _globals['_GETLOGICALBRIDGEREQUEST']._serialized_start=1313 - _globals['_GETLOGICALBRIDGEREQUEST']._serialized_end=1415 - _globals['_DELETELOGICALBRIDGEREQUEST']._serialized_start=1418 - _globals['_DELETELOGICALBRIDGEREQUEST']._serialized_end=1566 - _globals['_UPDATELOGICALBRIDGEREQUEST']._serialized_start=1569 - _globals['_UPDATELOGICALBRIDGEREQUEST']._serialized_end=1801 - _globals['_BRIDGEPORT']._serialized_start=1804 - _globals['_BRIDGEPORT']._serialized_end=2102 - _globals['_BRIDGEPORTSPEC']._serialized_start=2105 - _globals['_BRIDGEPORTSPEC']._serialized_end=2285 - _globals['_BRIDGEPORTSTATUS']._serialized_start=2287 - _globals['_BRIDGEPORTSTATUS']._serialized_end=2392 - _globals['_CREATEBRIDGEPORTREQUEST']._serialized_start=2395 - _globals['_CREATEBRIDGEPORTREQUEST']._serialized_end=2549 - _globals['_LISTBRIDGEPORTSREQUEST']._serialized_start=2551 - _globals['_LISTBRIDGEPORTSREQUEST']._serialized_end=2647 - _globals['_LISTBRIDGEPORTSRESPONSE']._serialized_start=2650 - _globals['_LISTBRIDGEPORTSRESPONSE']._serialized_end=2796 - _globals['_GETBRIDGEPORTREQUEST']._serialized_start=2798 - _globals['_GETBRIDGEPORTREQUEST']._serialized_end=2894 - _globals['_DELETEBRIDGEPORTREQUEST']._serialized_start=2897 - _globals['_DELETEBRIDGEPORTREQUEST']._serialized_end=3039 - _globals['_UPDATEBRIDGEPORTREQUEST']._serialized_start=3042 - _globals['_UPDATEBRIDGEPORTREQUEST']._serialized_end=3262 - _globals['_LOGICALBRIDGESERVICE']._serialized_start=3566 - _globals['_LOGICALBRIDGESERVICE']._serialized_end=4535 - _globals['_BRIDGEPORTSERVICE']._serialized_start=4538 - _globals['_BRIDGEPORTSERVICE']._serialized_end=5429 + _globals['_LBOPERSTATUS']._serialized_start=3450 + _globals['_LBOPERSTATUS']._serialized_end=3578 + _globals['_BPOPERSTATUS']._serialized_start=3581 + _globals['_BPOPERSTATUS']._serialized_end=3709 + _globals['_BRIDGEPORTTYPE']._serialized_start=3711 + _globals['_BRIDGEPORTTYPE']._serialized_end=3818 + _globals['_LOGICALBRIDGE']._serialized_start=276 + _globals['_LOGICALBRIDGE']._serialized_end=598 + _globals['_LOGICALBRIDGESPEC']._serialized_start=601 + _globals['_LOGICALBRIDGESPEC']._serialized_end=781 + _globals['_LOGICALBRIDGESTATUS']._serialized_start=784 + _globals['_LOGICALBRIDGESTATUS']._serialized_end=975 + _globals['_CREATELOGICALBRIDGEREQUEST']._serialized_start=978 + _globals['_CREATELOGICALBRIDGEREQUEST']._serialized_end=1150 + _globals['_LISTLOGICALBRIDGESREQUEST']._serialized_start=1152 + _globals['_LISTLOGICALBRIDGESREQUEST']._serialized_end=1251 + _globals['_LISTLOGICALBRIDGESRESPONSE']._serialized_start=1254 + _globals['_LISTLOGICALBRIDGESRESPONSE']._serialized_end=1412 + _globals['_GETLOGICALBRIDGEREQUEST']._serialized_start=1414 + _globals['_GETLOGICALBRIDGEREQUEST']._serialized_end=1516 + _globals['_DELETELOGICALBRIDGEREQUEST']._serialized_start=1519 + _globals['_DELETELOGICALBRIDGEREQUEST']._serialized_end=1667 + _globals['_UPDATELOGICALBRIDGEREQUEST']._serialized_start=1670 + _globals['_UPDATELOGICALBRIDGEREQUEST']._serialized_end=1902 + _globals['_BRIDGEPORT']._serialized_start=1905 + _globals['_BRIDGEPORT']._serialized_end=2203 + _globals['_BRIDGEPORTSPEC']._serialized_start=2206 + _globals['_BRIDGEPORTSPEC']._serialized_end=2386 + _globals['_BRIDGEPORTSTATUS']._serialized_start=2389 + _globals['_BRIDGEPORTSTATUS']._serialized_end=2577 + _globals['_CREATEBRIDGEPORTREQUEST']._serialized_start=2580 + _globals['_CREATEBRIDGEPORTREQUEST']._serialized_end=2734 + _globals['_LISTBRIDGEPORTSREQUEST']._serialized_start=2736 + _globals['_LISTBRIDGEPORTSREQUEST']._serialized_end=2832 + _globals['_LISTBRIDGEPORTSRESPONSE']._serialized_start=2835 + _globals['_LISTBRIDGEPORTSRESPONSE']._serialized_end=2981 + _globals['_GETBRIDGEPORTREQUEST']._serialized_start=2983 + _globals['_GETBRIDGEPORTREQUEST']._serialized_end=3079 + _globals['_DELETEBRIDGEPORTREQUEST']._serialized_start=3082 + _globals['_DELETEBRIDGEPORTREQUEST']._serialized_end=3224 + _globals['_UPDATEBRIDGEPORTREQUEST']._serialized_start=3227 + _globals['_UPDATEBRIDGEPORTREQUEST']._serialized_end=3447 + _globals['_LOGICALBRIDGESERVICE']._serialized_start=3821 + _globals['_LOGICALBRIDGESERVICE']._serialized_end=4790 + _globals['_BRIDGEPORTSERVICE']._serialized_start=4793 + _globals['_BRIDGEPORTSERVICE']._serialized_end=5684 # @@protoc_insertion_point(module_scope) diff --git a/network/evpn-gw/v1alpha1/gen/python/l3_xpu_infra_mgr_pb2.py b/network/evpn-gw/v1alpha1/gen/python/l3_xpu_infra_mgr_pb2.py index 9e7a25f8..b3e74d13 100644 --- a/network/evpn-gw/v1alpha1/gen/python/l3_xpu_infra_mgr_pb2.py +++ b/network/evpn-gw/v1alpha1/gen/python/l3_xpu_infra_mgr_pb2.py @@ -13,6 +13,7 @@ import networktypes_pb2 as networktypes__pb2 +import component_pb2 as component__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 from google.api import client_pb2 as google_dot_api_dot_client__pb2 from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 @@ -21,7 +22,7 @@ from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16l3_xpu_infra_mgr.proto\x12 opi_api.network.evpn_gw.v1alpha1\x1a\x12networktypes.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x19google/api/resource.proto\"\xf1\x01\n\x03Vrf\x12\x18\n\x04name\x18\x01 \x01(\tB\x04\xe2\x41\x01\x08R\x04name\x12\x43\n\x04spec\x18\x02 \x01(\x0b\x32).opi_api.network.evpn_gw.v1alpha1.VrfSpecB\x04\xe2\x41\x01\x02R\x04spec\x12I\n\x06status\x18\x03 \x01(\x0b\x32+.opi_api.network.evpn_gw.v1alpha1.VrfStatusB\x04\xe2\x41\x01\x03R\x06status:@\xea\x41=\n$opi_api.network.evpn_gw.v1alpha1/Vrf\x12\nvrfs/{vrf}*\x04vrfs2\x03vrf\"\xf0\x01\n\x07VrfSpec\x12\x1b\n\x03vni\x18\x01 \x01(\rB\x04\xe2\x41\x01\x01H\x00R\x03vni\x88\x01\x01\x12\x63\n\x12loopback_ip_prefix\x18\x02 \x01(\x0b\x32/.opi_api.network.opinetcommon.v1alpha1.IPPrefixB\x04\xe2\x41\x01\x02R\x10loopbackIpPrefix\x12[\n\x0evtep_ip_prefix\x18\x03 \x01(\x0b\x32/.opi_api.network.opinetcommon.v1alpha1.IPPrefixB\x04\xe2\x41\x01\x01R\x0cvtepIpPrefixB\x06\n\x04_vni\"\xd8\x02\n\tVrfStatus\x12)\n\rrouting_table\x18\x01 \x01(\rB\x04\xe2\x41\x01\x03R\x0croutingTable\x12\x1f\n\x08local_as\x18\x02 \x01(\rB\x04\xe2\x41\x01\x03R\x07localAs\x12\x14\n\x02rd\x18\x03 \x01(\tB\x04\xe2\x41\x01\x03R\x02rd\x12\x18\n\x04rmac\x18\x04 \x01(\x0c\x42\x04\xe2\x41\x01\x03R\x04rmac\x12#\n\nimport_rts\x18\x05 \x03(\tB\x04\xe2\x41\x01\x03R\timportRts\x12#\n\nexport_rts\x18\x06 \x03(\tB\x04\xe2\x41\x01\x03R\texportRts\x12-\n\x0flogical_bridges\x18\x07 \x03(\tB\x04\xe2\x41\x01\x03R\x0elogicalBridges\x12V\n\x0boper_status\x18\x08 \x01(\x0e\x32/.opi_api.network.evpn_gw.v1alpha1.VRFOperStatusB\x04\xe2\x41\x01\x03R\noperStatus\"n\n\x10\x43reateVrfRequest\x12\x1b\n\x06vrf_id\x18\x01 \x01(\tB\x04\xe2\x41\x01\x01R\x05vrfId\x12=\n\x03vrf\x18\x02 \x01(\x0b\x32%.opi_api.network.evpn_gw.v1alpha1.VrfB\x04\xe2\x41\x01\x02R\x03vrf\"Y\n\x0fListVrfsRequest\x12!\n\tpage_size\x18\x01 \x01(\x05\x42\x04\xe2\x41\x01\x01R\x08pageSize\x12#\n\npage_token\x18\x02 \x01(\tB\x04\xe2\x41\x01\x01R\tpageToken\"u\n\x10ListVrfsResponse\x12\x39\n\x04vrfs\x18\x01 \x03(\x0b\x32%.opi_api.network.evpn_gw.v1alpha1.VrfR\x04vrfs\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"R\n\rGetVrfRequest\x12\x41\n\x04name\x18\x01 \x01(\tB-\xe2\x41\x01\x02\xfa\x41&\n$opi_api.network.evpn_gw.v1alpha1/VrfR\x04name\"\x80\x01\n\x10\x44\x65leteVrfRequest\x12\x41\n\x04name\x18\x01 \x01(\tB-\xe2\x41\x01\x02\xfa\x41&\n$opi_api.network.evpn_gw.v1alpha1/VrfR\x04name\x12)\n\rallow_missing\x18\x02 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"\xbf\x01\n\x10UpdateVrfRequest\x12=\n\x03vrf\x18\x01 \x01(\x0b\x32%.opi_api.network.evpn_gw.v1alpha1.VrfB\x04\xe2\x41\x01\x02R\x03vrf\x12\x41\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x04\xe2\x41\x01\x01R\nupdateMask\x12)\n\rallow_missing\x18\x03 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"\xf1\x01\n\x03Svi\x12\x18\n\x04name\x18\x01 \x01(\tB\x04\xe2\x41\x01\x08R\x04name\x12\x43\n\x04spec\x18\x02 \x01(\x0b\x32).opi_api.network.evpn_gw.v1alpha1.SviSpecB\x04\xe2\x41\x01\x02R\x04spec\x12I\n\x06status\x18\x03 \x01(\x0b\x32+.opi_api.network.evpn_gw.v1alpha1.SviStatusB\x04\xe2\x41\x01\x03R\x06status:@\xea\x41=\n$opi_api.network.evpn_gw.v1alpha1/Svi\x12\nsvis/{svi}*\x04svis2\x03svi\"\xf2\x02\n\x07SviSpec\x12?\n\x03vrf\x18\x01 \x01(\tB-\xe2\x41\x01\x02\xfa\x41&\n$opi_api.network.evpn_gw.v1alpha1/VrfR\x03vrf\x12^\n\x0elogical_bridge\x18\x02 \x01(\tB7\xe2\x41\x01\x02\xfa\x41\x30\n.opi_api.network.evpn_gw.v1alpha1/LogicalBridgeR\rlogicalBridge\x12%\n\x0bmac_address\x18\x03 \x01(\x0c\x42\x04\xe2\x41\x01\x02R\nmacAddress\x12W\n\x0cgw_ip_prefix\x18\x04 \x03(\x0b\x32/.opi_api.network.opinetcommon.v1alpha1.IPPrefixB\x04\xe2\x41\x01\x02R\ngwIpPrefix\x12#\n\nenable_bgp\x18\x05 \x01(\x08\x42\x04\xe2\x41\x01\x01R\tenableBgp\x12!\n\tremote_as\x18\x06 \x01(\rB\x04\xe2\x41\x01\x01R\x08remoteAs\"c\n\tSviStatus\x12V\n\x0boper_status\x18\x01 \x01(\x0e\x32/.opi_api.network.evpn_gw.v1alpha1.SVIOperStatusB\x04\xe2\x41\x01\x03R\noperStatus\"n\n\x10\x43reateSviRequest\x12\x1b\n\x06svi_id\x18\x01 \x01(\tB\x04\xe2\x41\x01\x01R\x05sviId\x12=\n\x03svi\x18\x02 \x01(\x0b\x32%.opi_api.network.evpn_gw.v1alpha1.SviB\x04\xe2\x41\x01\x02R\x03svi\"Y\n\x0fListSvisRequest\x12!\n\tpage_size\x18\x01 \x01(\x05\x42\x04\xe2\x41\x01\x01R\x08pageSize\x12#\n\npage_token\x18\x02 \x01(\tB\x04\xe2\x41\x01\x01R\tpageToken\"u\n\x10ListSvisResponse\x12\x39\n\x04svis\x18\x01 \x03(\x0b\x32%.opi_api.network.evpn_gw.v1alpha1.SviR\x04svis\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"R\n\rGetSviRequest\x12\x41\n\x04name\x18\x01 \x01(\tB-\xe2\x41\x01\x02\xfa\x41&\n$opi_api.network.evpn_gw.v1alpha1/SviR\x04name\"\x80\x01\n\x10\x44\x65leteSviRequest\x12\x41\n\x04name\x18\x01 \x01(\tB-\xe2\x41\x01\x02\xfa\x41&\n$opi_api.network.evpn_gw.v1alpha1/SviR\x04name\x12)\n\rallow_missing\x18\x02 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"\xbf\x01\n\x10UpdateSviRequest\x12=\n\x03svi\x18\x01 \x01(\x0b\x32%.opi_api.network.evpn_gw.v1alpha1.SviB\x04\xe2\x41\x01\x02R\x03svi\x12\x41\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x04\xe2\x41\x01\x01R\nupdateMask\x12)\n\rallow_missing\x18\x03 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing*b\n\rVRFOperStatus\x12\x1f\n\x1bVRF_OPER_STATUS_UNSPECIFIED\x10\x00\x12\x16\n\x12VRF_OPER_STATUS_UP\x10\x01\x12\x18\n\x14VRF_OPER_STATUS_DOWN\x10\x02*b\n\rSVIOperStatus\x12\x1f\n\x1bSVI_OPER_STATUS_UNSPECIFIED\x10\x00\x12\x16\n\x12SVI_OPER_STATUS_UP\x10\x01\x12\x18\n\x14SVI_OPER_STATUS_DOWN\x10\x02\x32\xbe\x05\n\nVrfService\x12\x8a\x01\n\tCreateVrf\x12\x32.opi_api.network.evpn_gw.v1alpha1.CreateVrfRequest\x1a%.opi_api.network.evpn_gw.v1alpha1.Vrf\"\"\xda\x41\nvrf,vrf_id\x82\xd3\xe4\x93\x02\x0f\"\x08/v1/vrfs:\x03vrf\x12\x83\x01\n\x08ListVrfs\x12\x31.opi_api.network.evpn_gw.v1alpha1.ListVrfsRequest\x1a\x32.opi_api.network.evpn_gw.v1alpha1.ListVrfsResponse\"\x10\x82\xd3\xe4\x93\x02\n\x12\x08/v1/vrfs\x12\x82\x01\n\x06GetVrf\x12/.opi_api.network.evpn_gw.v1alpha1.GetVrfRequest\x1a%.opi_api.network.evpn_gw.v1alpha1.Vrf\" \xda\x41\x04name\x82\xd3\xe4\x93\x02\x13\x12\x11/v1/{name=vrfs/*}\x12y\n\tDeleteVrf\x12\x32.opi_api.network.evpn_gw.v1alpha1.DeleteVrfRequest\x1a\x16.google.protobuf.Empty\" \xda\x41\x04name\x82\xd3\xe4\x93\x02\x13*\x11/v1/{name=vrfs/*}\x12\x9c\x01\n\tUpdateVrf\x12\x32.opi_api.network.evpn_gw.v1alpha1.UpdateVrfRequest\x1a%.opi_api.network.evpn_gw.v1alpha1.Vrf\"4\xda\x41\x0fvrf,update_mask\x82\xd3\xe4\x93\x02\x1c\x32\x15/v1/{vrf.name=vrfs/*}:\x03vrf2\xbe\x05\n\nSviService\x12\x8a\x01\n\tCreateSvi\x12\x32.opi_api.network.evpn_gw.v1alpha1.CreateSviRequest\x1a%.opi_api.network.evpn_gw.v1alpha1.Svi\"\"\xda\x41\nsvi,svi_id\x82\xd3\xe4\x93\x02\x0f\"\x08/v1/svis:\x03svi\x12\x83\x01\n\x08ListSvis\x12\x31.opi_api.network.evpn_gw.v1alpha1.ListSvisRequest\x1a\x32.opi_api.network.evpn_gw.v1alpha1.ListSvisResponse\"\x10\x82\xd3\xe4\x93\x02\n\x12\x08/v1/svis\x12\x82\x01\n\x06GetSvi\x12/.opi_api.network.evpn_gw.v1alpha1.GetSviRequest\x1a%.opi_api.network.evpn_gw.v1alpha1.Svi\" \xda\x41\x04name\x82\xd3\xe4\x93\x02\x13\x12\x11/v1/{name=svis/*}\x12y\n\tDeleteSvi\x12\x32.opi_api.network.evpn_gw.v1alpha1.DeleteSviRequest\x1a\x16.google.protobuf.Empty\" \xda\x41\x04name\x82\xd3\xe4\x93\x02\x13*\x11/v1/{name=svis/*}\x12\x9c\x01\n\tUpdateSvi\x12\x32.opi_api.network.evpn_gw.v1alpha1.UpdateSviRequest\x1a%.opi_api.network.evpn_gw.v1alpha1.Svi\"4\xda\x41\x0fsvi,update_mask\x82\xd3\xe4\x93\x02\x1c\x32\x15/v1/{svi.name=svis/*}:\x03sviBw\n opi_api.network.evpn_gw.v1alpha1B\x12L3XpuInfraMgrProtoP\x01Z=github.com/opiproject/opi-api/network/evpn-gw/v1alpha1/gen/gob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16l3_xpu_infra_mgr.proto\x12 opi_api.network.evpn_gw.v1alpha1\x1a\x12networktypes.proto\x1a\x0f\x63omponent.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x19google/api/resource.proto\"\xf1\x01\n\x03Vrf\x12\x18\n\x04name\x18\x01 \x01(\tB\x04\xe2\x41\x01\x08R\x04name\x12\x43\n\x04spec\x18\x02 \x01(\x0b\x32).opi_api.network.evpn_gw.v1alpha1.VrfSpecB\x04\xe2\x41\x01\x02R\x04spec\x12I\n\x06status\x18\x03 \x01(\x0b\x32+.opi_api.network.evpn_gw.v1alpha1.VrfStatusB\x04\xe2\x41\x01\x03R\x06status:@\xea\x41=\n$opi_api.network.evpn_gw.v1alpha1/Vrf\x12\nvrfs/{vrf}*\x04vrfs2\x03vrf\"\xf0\x01\n\x07VrfSpec\x12\x1b\n\x03vni\x18\x01 \x01(\rB\x04\xe2\x41\x01\x01H\x00R\x03vni\x88\x01\x01\x12\x63\n\x12loopback_ip_prefix\x18\x02 \x01(\x0b\x32/.opi_api.network.opinetcommon.v1alpha1.IPPrefixB\x04\xe2\x41\x01\x02R\x10loopbackIpPrefix\x12[\n\x0evtep_ip_prefix\x18\x03 \x01(\x0b\x32/.opi_api.network.opinetcommon.v1alpha1.IPPrefixB\x04\xe2\x41\x01\x01R\x0cvtepIpPrefixB\x06\n\x04_vni\"\xb6\x01\n\tVrfStatus\x12V\n\x0boper_status\x18\x08 \x01(\x0e\x32/.opi_api.network.evpn_gw.v1alpha1.VRFOperStatusB\x04\xe2\x41\x01\x03R\noperStatus\x12Q\n\ncomponents\x18\t \x03(\x0b\x32+.opi_api.network.evpn_gw.v1alpha1.ComponentB\x04\xe2\x41\x01\x03R\ncomponents\"n\n\x10\x43reateVrfRequest\x12\x1b\n\x06vrf_id\x18\x01 \x01(\tB\x04\xe2\x41\x01\x01R\x05vrfId\x12=\n\x03vrf\x18\x02 \x01(\x0b\x32%.opi_api.network.evpn_gw.v1alpha1.VrfB\x04\xe2\x41\x01\x02R\x03vrf\"Y\n\x0fListVrfsRequest\x12!\n\tpage_size\x18\x01 \x01(\x05\x42\x04\xe2\x41\x01\x01R\x08pageSize\x12#\n\npage_token\x18\x02 \x01(\tB\x04\xe2\x41\x01\x01R\tpageToken\"u\n\x10ListVrfsResponse\x12\x39\n\x04vrfs\x18\x01 \x03(\x0b\x32%.opi_api.network.evpn_gw.v1alpha1.VrfR\x04vrfs\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"R\n\rGetVrfRequest\x12\x41\n\x04name\x18\x01 \x01(\tB-\xe2\x41\x01\x02\xfa\x41&\n$opi_api.network.evpn_gw.v1alpha1/VrfR\x04name\"\x80\x01\n\x10\x44\x65leteVrfRequest\x12\x41\n\x04name\x18\x01 \x01(\tB-\xe2\x41\x01\x02\xfa\x41&\n$opi_api.network.evpn_gw.v1alpha1/VrfR\x04name\x12)\n\rallow_missing\x18\x02 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"\xbf\x01\n\x10UpdateVrfRequest\x12=\n\x03vrf\x18\x01 \x01(\x0b\x32%.opi_api.network.evpn_gw.v1alpha1.VrfB\x04\xe2\x41\x01\x02R\x03vrf\x12\x41\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x04\xe2\x41\x01\x01R\nupdateMask\x12)\n\rallow_missing\x18\x03 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"\xf1\x01\n\x03Svi\x12\x18\n\x04name\x18\x01 \x01(\tB\x04\xe2\x41\x01\x08R\x04name\x12\x43\n\x04spec\x18\x02 \x01(\x0b\x32).opi_api.network.evpn_gw.v1alpha1.SviSpecB\x04\xe2\x41\x01\x02R\x04spec\x12I\n\x06status\x18\x03 \x01(\x0b\x32+.opi_api.network.evpn_gw.v1alpha1.SviStatusB\x04\xe2\x41\x01\x03R\x06status:@\xea\x41=\n$opi_api.network.evpn_gw.v1alpha1/Svi\x12\nsvis/{svi}*\x04svis2\x03svi\"\xf2\x02\n\x07SviSpec\x12?\n\x03vrf\x18\x01 \x01(\tB-\xe2\x41\x01\x02\xfa\x41&\n$opi_api.network.evpn_gw.v1alpha1/VrfR\x03vrf\x12^\n\x0elogical_bridge\x18\x02 \x01(\tB7\xe2\x41\x01\x02\xfa\x41\x30\n.opi_api.network.evpn_gw.v1alpha1/LogicalBridgeR\rlogicalBridge\x12%\n\x0bmac_address\x18\x03 \x01(\x0c\x42\x04\xe2\x41\x01\x02R\nmacAddress\x12W\n\x0cgw_ip_prefix\x18\x04 \x03(\x0b\x32/.opi_api.network.opinetcommon.v1alpha1.IPPrefixB\x04\xe2\x41\x01\x02R\ngwIpPrefix\x12#\n\nenable_bgp\x18\x05 \x01(\x08\x42\x04\xe2\x41\x01\x01R\tenableBgp\x12!\n\tremote_as\x18\x06 \x01(\rB\x04\xe2\x41\x01\x01R\x08remoteAs\"\xb6\x01\n\tSviStatus\x12V\n\x0boper_status\x18\x01 \x01(\x0e\x32/.opi_api.network.evpn_gw.v1alpha1.SVIOperStatusB\x04\xe2\x41\x01\x03R\noperStatus\x12Q\n\ncomponents\x18\x02 \x03(\x0b\x32+.opi_api.network.evpn_gw.v1alpha1.ComponentB\x04\xe2\x41\x01\x03R\ncomponents\"n\n\x10\x43reateSviRequest\x12\x1b\n\x06svi_id\x18\x01 \x01(\tB\x04\xe2\x41\x01\x01R\x05sviId\x12=\n\x03svi\x18\x02 \x01(\x0b\x32%.opi_api.network.evpn_gw.v1alpha1.SviB\x04\xe2\x41\x01\x02R\x03svi\"Y\n\x0fListSvisRequest\x12!\n\tpage_size\x18\x01 \x01(\x05\x42\x04\xe2\x41\x01\x01R\x08pageSize\x12#\n\npage_token\x18\x02 \x01(\tB\x04\xe2\x41\x01\x01R\tpageToken\"u\n\x10ListSvisResponse\x12\x39\n\x04svis\x18\x01 \x03(\x0b\x32%.opi_api.network.evpn_gw.v1alpha1.SviR\x04svis\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"R\n\rGetSviRequest\x12\x41\n\x04name\x18\x01 \x01(\tB-\xe2\x41\x01\x02\xfa\x41&\n$opi_api.network.evpn_gw.v1alpha1/SviR\x04name\"\x80\x01\n\x10\x44\x65leteSviRequest\x12\x41\n\x04name\x18\x01 \x01(\tB-\xe2\x41\x01\x02\xfa\x41&\n$opi_api.network.evpn_gw.v1alpha1/SviR\x04name\x12)\n\rallow_missing\x18\x02 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"\xbf\x01\n\x10UpdateSviRequest\x12=\n\x03svi\x18\x01 \x01(\x0b\x32%.opi_api.network.evpn_gw.v1alpha1.SviB\x04\xe2\x41\x01\x02R\x03svi\x12\x41\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x04\xe2\x41\x01\x01R\nupdateMask\x12)\n\rallow_missing\x18\x03 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing*\x85\x01\n\rVRFOperStatus\x12\x1f\n\x1bVRF_OPER_STATUS_UNSPECIFIED\x10\x00\x12\x16\n\x12VRF_OPER_STATUS_UP\x10\x01\x12\x18\n\x14VRF_OPER_STATUS_DOWN\x10\x02\x12!\n\x1dVRF_OPER_STATUS_TO_BE_DELETED\x10\x03*\x85\x01\n\rSVIOperStatus\x12\x1f\n\x1bSVI_OPER_STATUS_UNSPECIFIED\x10\x00\x12\x16\n\x12SVI_OPER_STATUS_UP\x10\x01\x12\x18\n\x14SVI_OPER_STATUS_DOWN\x10\x02\x12!\n\x1dSVI_OPER_STATUS_TO_BE_DELETED\x10\x03\x32\xbe\x05\n\nVrfService\x12\x8a\x01\n\tCreateVrf\x12\x32.opi_api.network.evpn_gw.v1alpha1.CreateVrfRequest\x1a%.opi_api.network.evpn_gw.v1alpha1.Vrf\"\"\xda\x41\nvrf,vrf_id\x82\xd3\xe4\x93\x02\x0f\"\x08/v1/vrfs:\x03vrf\x12\x83\x01\n\x08ListVrfs\x12\x31.opi_api.network.evpn_gw.v1alpha1.ListVrfsRequest\x1a\x32.opi_api.network.evpn_gw.v1alpha1.ListVrfsResponse\"\x10\x82\xd3\xe4\x93\x02\n\x12\x08/v1/vrfs\x12\x82\x01\n\x06GetVrf\x12/.opi_api.network.evpn_gw.v1alpha1.GetVrfRequest\x1a%.opi_api.network.evpn_gw.v1alpha1.Vrf\" \xda\x41\x04name\x82\xd3\xe4\x93\x02\x13\x12\x11/v1/{name=vrfs/*}\x12y\n\tDeleteVrf\x12\x32.opi_api.network.evpn_gw.v1alpha1.DeleteVrfRequest\x1a\x16.google.protobuf.Empty\" \xda\x41\x04name\x82\xd3\xe4\x93\x02\x13*\x11/v1/{name=vrfs/*}\x12\x9c\x01\n\tUpdateVrf\x12\x32.opi_api.network.evpn_gw.v1alpha1.UpdateVrfRequest\x1a%.opi_api.network.evpn_gw.v1alpha1.Vrf\"4\xda\x41\x0fvrf,update_mask\x82\xd3\xe4\x93\x02\x1c\x32\x15/v1/{vrf.name=vrfs/*}:\x03vrf2\xbe\x05\n\nSviService\x12\x8a\x01\n\tCreateSvi\x12\x32.opi_api.network.evpn_gw.v1alpha1.CreateSviRequest\x1a%.opi_api.network.evpn_gw.v1alpha1.Svi\"\"\xda\x41\nsvi,svi_id\x82\xd3\xe4\x93\x02\x0f\"\x08/v1/svis:\x03svi\x12\x83\x01\n\x08ListSvis\x12\x31.opi_api.network.evpn_gw.v1alpha1.ListSvisRequest\x1a\x32.opi_api.network.evpn_gw.v1alpha1.ListSvisResponse\"\x10\x82\xd3\xe4\x93\x02\n\x12\x08/v1/svis\x12\x82\x01\n\x06GetSvi\x12/.opi_api.network.evpn_gw.v1alpha1.GetSviRequest\x1a%.opi_api.network.evpn_gw.v1alpha1.Svi\" \xda\x41\x04name\x82\xd3\xe4\x93\x02\x13\x12\x11/v1/{name=svis/*}\x12y\n\tDeleteSvi\x12\x32.opi_api.network.evpn_gw.v1alpha1.DeleteSviRequest\x1a\x16.google.protobuf.Empty\" \xda\x41\x04name\x82\xd3\xe4\x93\x02\x13*\x11/v1/{name=svis/*}\x12\x9c\x01\n\tUpdateSvi\x12\x32.opi_api.network.evpn_gw.v1alpha1.UpdateSviRequest\x1a%.opi_api.network.evpn_gw.v1alpha1.Svi\"4\xda\x41\x0fsvi,update_mask\x82\xd3\xe4\x93\x02\x1c\x32\x15/v1/{svi.name=svis/*}:\x03sviBw\n opi_api.network.evpn_gw.v1alpha1B\x12L3XpuInfraMgrProtoP\x01Z=github.com/opiproject/opi-api/network/evpn-gw/v1alpha1/gen/gob\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -43,22 +44,10 @@ _globals['_VRFSPEC'].fields_by_name['loopback_ip_prefix']._serialized_options = b'\342A\001\002' _globals['_VRFSPEC'].fields_by_name['vtep_ip_prefix']._options = None _globals['_VRFSPEC'].fields_by_name['vtep_ip_prefix']._serialized_options = b'\342A\001\001' - _globals['_VRFSTATUS'].fields_by_name['routing_table']._options = None - _globals['_VRFSTATUS'].fields_by_name['routing_table']._serialized_options = b'\342A\001\003' - _globals['_VRFSTATUS'].fields_by_name['local_as']._options = None - _globals['_VRFSTATUS'].fields_by_name['local_as']._serialized_options = b'\342A\001\003' - _globals['_VRFSTATUS'].fields_by_name['rd']._options = None - _globals['_VRFSTATUS'].fields_by_name['rd']._serialized_options = b'\342A\001\003' - _globals['_VRFSTATUS'].fields_by_name['rmac']._options = None - _globals['_VRFSTATUS'].fields_by_name['rmac']._serialized_options = b'\342A\001\003' - _globals['_VRFSTATUS'].fields_by_name['import_rts']._options = None - _globals['_VRFSTATUS'].fields_by_name['import_rts']._serialized_options = b'\342A\001\003' - _globals['_VRFSTATUS'].fields_by_name['export_rts']._options = None - _globals['_VRFSTATUS'].fields_by_name['export_rts']._serialized_options = b'\342A\001\003' - _globals['_VRFSTATUS'].fields_by_name['logical_bridges']._options = None - _globals['_VRFSTATUS'].fields_by_name['logical_bridges']._serialized_options = b'\342A\001\003' _globals['_VRFSTATUS'].fields_by_name['oper_status']._options = None _globals['_VRFSTATUS'].fields_by_name['oper_status']._serialized_options = b'\342A\001\003' + _globals['_VRFSTATUS'].fields_by_name['components']._options = None + _globals['_VRFSTATUS'].fields_by_name['components']._serialized_options = b'\342A\001\003' _globals['_CREATEVRFREQUEST'].fields_by_name['vrf_id']._options = None _globals['_CREATEVRFREQUEST'].fields_by_name['vrf_id']._serialized_options = b'\342A\001\001' _globals['_CREATEVRFREQUEST'].fields_by_name['vrf']._options = None @@ -101,6 +90,8 @@ _globals['_SVISPEC'].fields_by_name['remote_as']._serialized_options = b'\342A\001\001' _globals['_SVISTATUS'].fields_by_name['oper_status']._options = None _globals['_SVISTATUS'].fields_by_name['oper_status']._serialized_options = b'\342A\001\003' + _globals['_SVISTATUS'].fields_by_name['components']._options = None + _globals['_SVISTATUS'].fields_by_name['components']._serialized_options = b'\342A\001\003' _globals['_CREATESVIREQUEST'].fields_by_name['svi_id']._options = None _globals['_CREATESVIREQUEST'].fields_by_name['svi_id']._serialized_options = b'\342A\001\001' _globals['_CREATESVIREQUEST'].fields_by_name['svi']._options = None @@ -141,48 +132,48 @@ _globals['_SVISERVICE'].methods_by_name['DeleteSvi']._serialized_options = b'\332A\004name\202\323\344\223\002\023*\021/v1/{name=svis/*}' _globals['_SVISERVICE'].methods_by_name['UpdateSvi']._options = None _globals['_SVISERVICE'].methods_by_name['UpdateSvi']._serialized_options = b'\332A\017svi,update_mask\202\323\344\223\002\0342\025/v1/{svi.name=svis/*}:\003svi' - _globals['_VRFOPERSTATUS']._serialized_start=3272 - _globals['_VRFOPERSTATUS']._serialized_end=3370 - _globals['_SVIOPERSTATUS']._serialized_start=3372 - _globals['_SVIOPERSTATUS']._serialized_end=3470 - _globals['_VRF']._serialized_start=259 - _globals['_VRF']._serialized_end=500 - _globals['_VRFSPEC']._serialized_start=503 - _globals['_VRFSPEC']._serialized_end=743 - _globals['_VRFSTATUS']._serialized_start=746 - _globals['_VRFSTATUS']._serialized_end=1090 - _globals['_CREATEVRFREQUEST']._serialized_start=1092 - _globals['_CREATEVRFREQUEST']._serialized_end=1202 - _globals['_LISTVRFSREQUEST']._serialized_start=1204 - _globals['_LISTVRFSREQUEST']._serialized_end=1293 - _globals['_LISTVRFSRESPONSE']._serialized_start=1295 - _globals['_LISTVRFSRESPONSE']._serialized_end=1412 - _globals['_GETVRFREQUEST']._serialized_start=1414 - _globals['_GETVRFREQUEST']._serialized_end=1496 - _globals['_DELETEVRFREQUEST']._serialized_start=1499 - _globals['_DELETEVRFREQUEST']._serialized_end=1627 - _globals['_UPDATEVRFREQUEST']._serialized_start=1630 - _globals['_UPDATEVRFREQUEST']._serialized_end=1821 - _globals['_SVI']._serialized_start=1824 - _globals['_SVI']._serialized_end=2065 - _globals['_SVISPEC']._serialized_start=2068 - _globals['_SVISPEC']._serialized_end=2438 - _globals['_SVISTATUS']._serialized_start=2440 - _globals['_SVISTATUS']._serialized_end=2539 - _globals['_CREATESVIREQUEST']._serialized_start=2541 - _globals['_CREATESVIREQUEST']._serialized_end=2651 - _globals['_LISTSVISREQUEST']._serialized_start=2653 - _globals['_LISTSVISREQUEST']._serialized_end=2742 - _globals['_LISTSVISRESPONSE']._serialized_start=2744 - _globals['_LISTSVISRESPONSE']._serialized_end=2861 - _globals['_GETSVIREQUEST']._serialized_start=2863 - _globals['_GETSVIREQUEST']._serialized_end=2945 - _globals['_DELETESVIREQUEST']._serialized_start=2948 - _globals['_DELETESVIREQUEST']._serialized_end=3076 - _globals['_UPDATESVIREQUEST']._serialized_start=3079 - _globals['_UPDATESVIREQUEST']._serialized_end=3270 - _globals['_VRFSERVICE']._serialized_start=3473 - _globals['_VRFSERVICE']._serialized_end=4175 - _globals['_SVISERVICE']._serialized_start=4178 - _globals['_SVISERVICE']._serialized_end=4880 + _globals['_VRFOPERSTATUS']._serialized_start=3212 + _globals['_VRFOPERSTATUS']._serialized_end=3345 + _globals['_SVIOPERSTATUS']._serialized_start=3348 + _globals['_SVIOPERSTATUS']._serialized_end=3481 + _globals['_VRF']._serialized_start=276 + _globals['_VRF']._serialized_end=517 + _globals['_VRFSPEC']._serialized_start=520 + _globals['_VRFSPEC']._serialized_end=760 + _globals['_VRFSTATUS']._serialized_start=763 + _globals['_VRFSTATUS']._serialized_end=945 + _globals['_CREATEVRFREQUEST']._serialized_start=947 + _globals['_CREATEVRFREQUEST']._serialized_end=1057 + _globals['_LISTVRFSREQUEST']._serialized_start=1059 + _globals['_LISTVRFSREQUEST']._serialized_end=1148 + _globals['_LISTVRFSRESPONSE']._serialized_start=1150 + _globals['_LISTVRFSRESPONSE']._serialized_end=1267 + _globals['_GETVRFREQUEST']._serialized_start=1269 + _globals['_GETVRFREQUEST']._serialized_end=1351 + _globals['_DELETEVRFREQUEST']._serialized_start=1354 + _globals['_DELETEVRFREQUEST']._serialized_end=1482 + _globals['_UPDATEVRFREQUEST']._serialized_start=1485 + _globals['_UPDATEVRFREQUEST']._serialized_end=1676 + _globals['_SVI']._serialized_start=1679 + _globals['_SVI']._serialized_end=1920 + _globals['_SVISPEC']._serialized_start=1923 + _globals['_SVISPEC']._serialized_end=2293 + _globals['_SVISTATUS']._serialized_start=2296 + _globals['_SVISTATUS']._serialized_end=2478 + _globals['_CREATESVIREQUEST']._serialized_start=2480 + _globals['_CREATESVIREQUEST']._serialized_end=2590 + _globals['_LISTSVISREQUEST']._serialized_start=2592 + _globals['_LISTSVISREQUEST']._serialized_end=2681 + _globals['_LISTSVISRESPONSE']._serialized_start=2683 + _globals['_LISTSVISRESPONSE']._serialized_end=2800 + _globals['_GETSVIREQUEST']._serialized_start=2802 + _globals['_GETSVIREQUEST']._serialized_end=2884 + _globals['_DELETESVIREQUEST']._serialized_start=2887 + _globals['_DELETESVIREQUEST']._serialized_end=3015 + _globals['_UPDATESVIREQUEST']._serialized_start=3018 + _globals['_UPDATESVIREQUEST']._serialized_end=3209 + _globals['_VRFSERVICE']._serialized_start=3484 + _globals['_VRFSERVICE']._serialized_end=4186 + _globals['_SVISERVICE']._serialized_start=4189 + _globals['_SVISERVICE']._serialized_end=4891 # @@protoc_insertion_point(module_scope)