From 2c924dc8d55a3266b17be973a9ce6fdda2387e16 Mon Sep 17 00:00:00 2001
From: Ilja Rotar
Date: Mon, 31 Aug 2026 14:29:03 +0200
Subject: [PATCH 1/5] Add partition for network external members query
---
doc/index.html | 7 +++++
go/metalstack/api/v2/network.pb.go | 20 ++++++++++---
js/metalstack/api/v2/network_pb.d.ts | 6 ++++
js/metalstack/api/v2/network_pb.js | 2 +-
js/metalstack/api/v2/network_pb.ts | 9 +++++-
proto/metalstack/api/v2/network.proto | 2 ++
python/metalstack/api/v2/network_pb2.py | 38 +++++++++++++-----------
python/metalstack/api/v2/network_pb2.pyi | 6 ++--
8 files changed, 64 insertions(+), 26 deletions(-)
diff --git a/doc/index.html b/doc/index.html
index c427c1d6..3a592e11 100644
--- a/doc/index.html
+++ b/doc/index.html
@@ -8612,6 +8612,13 @@
- NetworkServiceAddExternalMemberRequest
+ NetworkServiceAddExternalMembersRequest
NetworkServiceAddExternalMemberRequest is the request payload for adding an external member to a network.
@@ -14597,7 +14597,7 @@ NetworkServi
- NetworkServiceAddExternalMemberResponse
+ NetworkServiceAddExternalMembersResponse
NetworkServiceAddExternalMemberResponse is the response payload for adding an external member to a network.
@@ -14980,7 +14980,7 @@ NetworkServiceListRespon
- NetworkServiceRemoveExternalMemberRequest
+ NetworkServiceRemoveExternalMembersRequest
NetworkServiceRemoveExternalMemberRequest is the request payload for removing an external member from a network.
@@ -15011,7 +15011,7 @@ NetworkSe
- NetworkServiceRemoveExternalMemberResponse
+ NetworkServiceRemoveExternalMembersResponse
NetworkServiceRemoveExternalMemberResponse is the response payload for removing an external member from a network.
@@ -15217,16 +15217,16 @@ NetworkService
- | AddExternalMember |
- NetworkServiceAddExternalMemberRequest |
- NetworkServiceAddExternalMemberResponse |
+ AddExternalMembers |
+ NetworkServiceAddExternalMembersRequest |
+ NetworkServiceAddExternalMembersResponse |
Adds an external member to a network. |
- | RemoveExternalMember |
- NetworkServiceRemoveExternalMemberRequest |
- NetworkServiceRemoveExternalMemberResponse |
+ RemoveExternalMembers |
+ NetworkServiceRemoveExternalMembersRequest |
+ NetworkServiceRemoveExternalMembersResponse |
Removes an external member from a network. |
diff --git a/go/metalstack/admin/v2/adminv2connect/network.connect.go b/go/metalstack/admin/v2/adminv2connect/network.connect.go
index 7a45c08a..da813153 100644
--- a/go/metalstack/admin/v2/adminv2connect/network.connect.go
+++ b/go/metalstack/admin/v2/adminv2connect/network.connect.go
@@ -46,12 +46,12 @@ const (
// NetworkServiceListExternalMembersProcedure is the fully-qualified name of the NetworkService's
// ListExternalMembers RPC.
NetworkServiceListExternalMembersProcedure = "/metalstack.admin.v2.NetworkService/ListExternalMembers"
- // NetworkServiceAddExternalMemberProcedure is the fully-qualified name of the NetworkService's
- // AddExternalMember RPC.
- NetworkServiceAddExternalMemberProcedure = "/metalstack.admin.v2.NetworkService/AddExternalMember"
- // NetworkServiceRemoveExternalMemberProcedure is the fully-qualified name of the NetworkService's
- // RemoveExternalMember RPC.
- NetworkServiceRemoveExternalMemberProcedure = "/metalstack.admin.v2.NetworkService/RemoveExternalMember"
+ // NetworkServiceAddExternalMembersProcedure is the fully-qualified name of the NetworkService's
+ // AddExternalMembers RPC.
+ NetworkServiceAddExternalMembersProcedure = "/metalstack.admin.v2.NetworkService/AddExternalMembers"
+ // NetworkServiceRemoveExternalMembersProcedure is the fully-qualified name of the NetworkService's
+ // RemoveExternalMembers RPC.
+ NetworkServiceRemoveExternalMembersProcedure = "/metalstack.admin.v2.NetworkService/RemoveExternalMembers"
)
// NetworkServiceClient is a client for the metalstack.admin.v2.NetworkService service.
@@ -69,9 +69,9 @@ type NetworkServiceClient interface {
// Lists external members of a network.
ListExternalMembers(context.Context, *v2.NetworkServiceListExternalMembersRequest) (*v2.NetworkServiceListExternalMembersResponse, error)
// Adds an external member to a network.
- AddExternalMember(context.Context, *v2.NetworkServiceAddExternalMemberRequest) (*v2.NetworkServiceAddExternalMemberResponse, error)
+ AddExternalMembers(context.Context, *v2.NetworkServiceAddExternalMembersRequest) (*v2.NetworkServiceAddExternalMembersResponse, error)
// Removes an external member from a network.
- RemoveExternalMember(context.Context, *v2.NetworkServiceRemoveExternalMemberRequest) (*v2.NetworkServiceRemoveExternalMemberResponse, error)
+ RemoveExternalMembers(context.Context, *v2.NetworkServiceRemoveExternalMembersRequest) (*v2.NetworkServiceRemoveExternalMembersResponse, error)
}
// NewNetworkServiceClient constructs a client for the metalstack.admin.v2.NetworkService service.
@@ -121,16 +121,16 @@ func NewNetworkServiceClient(httpClient connect.HTTPClient, baseURL string, opts
connect.WithSchema(networkServiceMethods.ByName("ListExternalMembers")),
connect.WithClientOptions(opts...),
),
- addExternalMember: connect.NewClient[v2.NetworkServiceAddExternalMemberRequest, v2.NetworkServiceAddExternalMemberResponse](
+ addExternalMembers: connect.NewClient[v2.NetworkServiceAddExternalMembersRequest, v2.NetworkServiceAddExternalMembersResponse](
httpClient,
- baseURL+NetworkServiceAddExternalMemberProcedure,
- connect.WithSchema(networkServiceMethods.ByName("AddExternalMember")),
+ baseURL+NetworkServiceAddExternalMembersProcedure,
+ connect.WithSchema(networkServiceMethods.ByName("AddExternalMembers")),
connect.WithClientOptions(opts...),
),
- removeExternalMember: connect.NewClient[v2.NetworkServiceRemoveExternalMemberRequest, v2.NetworkServiceRemoveExternalMemberResponse](
+ removeExternalMembers: connect.NewClient[v2.NetworkServiceRemoveExternalMembersRequest, v2.NetworkServiceRemoveExternalMembersResponse](
httpClient,
- baseURL+NetworkServiceRemoveExternalMemberProcedure,
- connect.WithSchema(networkServiceMethods.ByName("RemoveExternalMember")),
+ baseURL+NetworkServiceRemoveExternalMembersProcedure,
+ connect.WithSchema(networkServiceMethods.ByName("RemoveExternalMembers")),
connect.WithClientOptions(opts...),
),
}
@@ -138,14 +138,14 @@ func NewNetworkServiceClient(httpClient connect.HTTPClient, baseURL string, opts
// networkServiceClient implements NetworkServiceClient.
type networkServiceClient struct {
- get *connect.Client[v2.NetworkServiceGetRequest, v2.NetworkServiceGetResponse]
- create *connect.Client[v2.NetworkServiceCreateRequest, v2.NetworkServiceCreateResponse]
- update *connect.Client[v2.NetworkServiceUpdateRequest, v2.NetworkServiceUpdateResponse]
- delete *connect.Client[v2.NetworkServiceDeleteRequest, v2.NetworkServiceDeleteResponse]
- list *connect.Client[v2.NetworkServiceListRequest, v2.NetworkServiceListResponse]
- listExternalMembers *connect.Client[v2.NetworkServiceListExternalMembersRequest, v2.NetworkServiceListExternalMembersResponse]
- addExternalMember *connect.Client[v2.NetworkServiceAddExternalMemberRequest, v2.NetworkServiceAddExternalMemberResponse]
- removeExternalMember *connect.Client[v2.NetworkServiceRemoveExternalMemberRequest, v2.NetworkServiceRemoveExternalMemberResponse]
+ get *connect.Client[v2.NetworkServiceGetRequest, v2.NetworkServiceGetResponse]
+ create *connect.Client[v2.NetworkServiceCreateRequest, v2.NetworkServiceCreateResponse]
+ update *connect.Client[v2.NetworkServiceUpdateRequest, v2.NetworkServiceUpdateResponse]
+ delete *connect.Client[v2.NetworkServiceDeleteRequest, v2.NetworkServiceDeleteResponse]
+ list *connect.Client[v2.NetworkServiceListRequest, v2.NetworkServiceListResponse]
+ listExternalMembers *connect.Client[v2.NetworkServiceListExternalMembersRequest, v2.NetworkServiceListExternalMembersResponse]
+ addExternalMembers *connect.Client[v2.NetworkServiceAddExternalMembersRequest, v2.NetworkServiceAddExternalMembersResponse]
+ removeExternalMembers *connect.Client[v2.NetworkServiceRemoveExternalMembersRequest, v2.NetworkServiceRemoveExternalMembersResponse]
}
// Get calls metalstack.admin.v2.NetworkService.Get.
@@ -202,18 +202,18 @@ func (c *networkServiceClient) ListExternalMembers(ctx context.Context, req *v2.
return nil, err
}
-// AddExternalMember calls metalstack.admin.v2.NetworkService.AddExternalMember.
-func (c *networkServiceClient) AddExternalMember(ctx context.Context, req *v2.NetworkServiceAddExternalMemberRequest) (*v2.NetworkServiceAddExternalMemberResponse, error) {
- response, err := c.addExternalMember.CallUnary(ctx, connect.NewRequest(req))
+// AddExternalMembers calls metalstack.admin.v2.NetworkService.AddExternalMembers.
+func (c *networkServiceClient) AddExternalMembers(ctx context.Context, req *v2.NetworkServiceAddExternalMembersRequest) (*v2.NetworkServiceAddExternalMembersResponse, error) {
+ response, err := c.addExternalMembers.CallUnary(ctx, connect.NewRequest(req))
if response != nil {
return response.Msg, err
}
return nil, err
}
-// RemoveExternalMember calls metalstack.admin.v2.NetworkService.RemoveExternalMember.
-func (c *networkServiceClient) RemoveExternalMember(ctx context.Context, req *v2.NetworkServiceRemoveExternalMemberRequest) (*v2.NetworkServiceRemoveExternalMemberResponse, error) {
- response, err := c.removeExternalMember.CallUnary(ctx, connect.NewRequest(req))
+// RemoveExternalMembers calls metalstack.admin.v2.NetworkService.RemoveExternalMembers.
+func (c *networkServiceClient) RemoveExternalMembers(ctx context.Context, req *v2.NetworkServiceRemoveExternalMembersRequest) (*v2.NetworkServiceRemoveExternalMembersResponse, error) {
+ response, err := c.removeExternalMembers.CallUnary(ctx, connect.NewRequest(req))
if response != nil {
return response.Msg, err
}
@@ -235,9 +235,9 @@ type NetworkServiceHandler interface {
// Lists external members of a network.
ListExternalMembers(context.Context, *v2.NetworkServiceListExternalMembersRequest) (*v2.NetworkServiceListExternalMembersResponse, error)
// Adds an external member to a network.
- AddExternalMember(context.Context, *v2.NetworkServiceAddExternalMemberRequest) (*v2.NetworkServiceAddExternalMemberResponse, error)
+ AddExternalMembers(context.Context, *v2.NetworkServiceAddExternalMembersRequest) (*v2.NetworkServiceAddExternalMembersResponse, error)
// Removes an external member from a network.
- RemoveExternalMember(context.Context, *v2.NetworkServiceRemoveExternalMemberRequest) (*v2.NetworkServiceRemoveExternalMemberResponse, error)
+ RemoveExternalMembers(context.Context, *v2.NetworkServiceRemoveExternalMembersRequest) (*v2.NetworkServiceRemoveExternalMembersResponse, error)
}
// NewNetworkServiceHandler builds an HTTP handler from the service implementation. It returns the
@@ -283,16 +283,16 @@ func NewNetworkServiceHandler(svc NetworkServiceHandler, opts ...connect.Handler
connect.WithSchema(networkServiceMethods.ByName("ListExternalMembers")),
connect.WithHandlerOptions(opts...),
)
- networkServiceAddExternalMemberHandler := connect.NewUnaryHandlerSimple(
- NetworkServiceAddExternalMemberProcedure,
- svc.AddExternalMember,
- connect.WithSchema(networkServiceMethods.ByName("AddExternalMember")),
+ networkServiceAddExternalMembersHandler := connect.NewUnaryHandlerSimple(
+ NetworkServiceAddExternalMembersProcedure,
+ svc.AddExternalMembers,
+ connect.WithSchema(networkServiceMethods.ByName("AddExternalMembers")),
connect.WithHandlerOptions(opts...),
)
- networkServiceRemoveExternalMemberHandler := connect.NewUnaryHandlerSimple(
- NetworkServiceRemoveExternalMemberProcedure,
- svc.RemoveExternalMember,
- connect.WithSchema(networkServiceMethods.ByName("RemoveExternalMember")),
+ networkServiceRemoveExternalMembersHandler := connect.NewUnaryHandlerSimple(
+ NetworkServiceRemoveExternalMembersProcedure,
+ svc.RemoveExternalMembers,
+ connect.WithSchema(networkServiceMethods.ByName("RemoveExternalMembers")),
connect.WithHandlerOptions(opts...),
)
return "/metalstack.admin.v2.NetworkService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
@@ -309,10 +309,10 @@ func NewNetworkServiceHandler(svc NetworkServiceHandler, opts ...connect.Handler
networkServiceListHandler.ServeHTTP(w, r)
case NetworkServiceListExternalMembersProcedure:
networkServiceListExternalMembersHandler.ServeHTTP(w, r)
- case NetworkServiceAddExternalMemberProcedure:
- networkServiceAddExternalMemberHandler.ServeHTTP(w, r)
- case NetworkServiceRemoveExternalMemberProcedure:
- networkServiceRemoveExternalMemberHandler.ServeHTTP(w, r)
+ case NetworkServiceAddExternalMembersProcedure:
+ networkServiceAddExternalMembersHandler.ServeHTTP(w, r)
+ case NetworkServiceRemoveExternalMembersProcedure:
+ networkServiceRemoveExternalMembersHandler.ServeHTTP(w, r)
default:
http.NotFound(w, r)
}
@@ -346,10 +346,10 @@ func (UnimplementedNetworkServiceHandler) ListExternalMembers(context.Context, *
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.admin.v2.NetworkService.ListExternalMembers is not implemented"))
}
-func (UnimplementedNetworkServiceHandler) AddExternalMember(context.Context, *v2.NetworkServiceAddExternalMemberRequest) (*v2.NetworkServiceAddExternalMemberResponse, error) {
- return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.admin.v2.NetworkService.AddExternalMember is not implemented"))
+func (UnimplementedNetworkServiceHandler) AddExternalMembers(context.Context, *v2.NetworkServiceAddExternalMembersRequest) (*v2.NetworkServiceAddExternalMembersResponse, error) {
+ return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.admin.v2.NetworkService.AddExternalMembers is not implemented"))
}
-func (UnimplementedNetworkServiceHandler) RemoveExternalMember(context.Context, *v2.NetworkServiceRemoveExternalMemberRequest) (*v2.NetworkServiceRemoveExternalMemberResponse, error) {
- return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.admin.v2.NetworkService.RemoveExternalMember is not implemented"))
+func (UnimplementedNetworkServiceHandler) RemoveExternalMembers(context.Context, *v2.NetworkServiceRemoveExternalMembersRequest) (*v2.NetworkServiceRemoveExternalMembersResponse, error) {
+ return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.admin.v2.NetworkService.RemoveExternalMembers is not implemented"))
}
diff --git a/go/metalstack/admin/v2/network.pb.go b/go/metalstack/admin/v2/network.pb.go
index 2df52560..2e792fe6 100644
--- a/go/metalstack/admin/v2/network.pb.go
+++ b/go/metalstack/admin/v2/network.pb.go
@@ -598,7 +598,7 @@ func (x *NetworkServiceListExternalMembersRequest) GetQuery() *v2.ExternalNetwor
}
// NetworkServiceAddExternalMemberRequest is the request payload for adding an external member to a network.
-type NetworkServiceAddExternalMemberRequest struct {
+type NetworkServiceAddExternalMembersRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
// Network to add the member to.
Network string `protobuf:"bytes,1,opt,name=network,proto3" json:"network,omitempty"`
@@ -609,20 +609,20 @@ type NetworkServiceAddExternalMemberRequest struct {
sizeCache protoimpl.SizeCache
}
-func (x *NetworkServiceAddExternalMemberRequest) Reset() {
- *x = NetworkServiceAddExternalMemberRequest{}
+func (x *NetworkServiceAddExternalMembersRequest) Reset() {
+ *x = NetworkServiceAddExternalMembersRequest{}
mi := &file_metalstack_admin_v2_network_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
-func (x *NetworkServiceAddExternalMemberRequest) String() string {
+func (x *NetworkServiceAddExternalMembersRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*NetworkServiceAddExternalMemberRequest) ProtoMessage() {}
+func (*NetworkServiceAddExternalMembersRequest) ProtoMessage() {}
-func (x *NetworkServiceAddExternalMemberRequest) ProtoReflect() protoreflect.Message {
+func (x *NetworkServiceAddExternalMembersRequest) ProtoReflect() protoreflect.Message {
mi := &file_metalstack_admin_v2_network_proto_msgTypes[7]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -634,19 +634,19 @@ func (x *NetworkServiceAddExternalMemberRequest) ProtoReflect() protoreflect.Mes
return mi.MessageOf(x)
}
-// Deprecated: Use NetworkServiceAddExternalMemberRequest.ProtoReflect.Descriptor instead.
-func (*NetworkServiceAddExternalMemberRequest) Descriptor() ([]byte, []int) {
+// Deprecated: Use NetworkServiceAddExternalMembersRequest.ProtoReflect.Descriptor instead.
+func (*NetworkServiceAddExternalMembersRequest) Descriptor() ([]byte, []int) {
return file_metalstack_admin_v2_network_proto_rawDescGZIP(), []int{7}
}
-func (x *NetworkServiceAddExternalMemberRequest) GetNetwork() string {
+func (x *NetworkServiceAddExternalMembersRequest) GetNetwork() string {
if x != nil {
return x.Network
}
return ""
}
-func (x *NetworkServiceAddExternalMemberRequest) GetSwitchPorts() []*v2.ExternalNetworkMember {
+func (x *NetworkServiceAddExternalMembersRequest) GetSwitchPorts() []*v2.ExternalNetworkMember {
if x != nil {
return x.SwitchPorts
}
@@ -654,7 +654,7 @@ func (x *NetworkServiceAddExternalMemberRequest) GetSwitchPorts() []*v2.External
}
// NetworkServiceRemoveExternalMemberRequest is the request payload for removing an external member from a network.
-type NetworkServiceRemoveExternalMemberRequest struct {
+type NetworkServiceRemoveExternalMembersRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
// Network to remove the member from.
Network string `protobuf:"bytes,1,opt,name=network,proto3" json:"network,omitempty"`
@@ -664,20 +664,20 @@ type NetworkServiceRemoveExternalMemberRequest struct {
sizeCache protoimpl.SizeCache
}
-func (x *NetworkServiceRemoveExternalMemberRequest) Reset() {
- *x = NetworkServiceRemoveExternalMemberRequest{}
+func (x *NetworkServiceRemoveExternalMembersRequest) Reset() {
+ *x = NetworkServiceRemoveExternalMembersRequest{}
mi := &file_metalstack_admin_v2_network_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
-func (x *NetworkServiceRemoveExternalMemberRequest) String() string {
+func (x *NetworkServiceRemoveExternalMembersRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*NetworkServiceRemoveExternalMemberRequest) ProtoMessage() {}
+func (*NetworkServiceRemoveExternalMembersRequest) ProtoMessage() {}
-func (x *NetworkServiceRemoveExternalMemberRequest) ProtoReflect() protoreflect.Message {
+func (x *NetworkServiceRemoveExternalMembersRequest) ProtoReflect() protoreflect.Message {
mi := &file_metalstack_admin_v2_network_proto_msgTypes[8]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -689,19 +689,19 @@ func (x *NetworkServiceRemoveExternalMemberRequest) ProtoReflect() protoreflect.
return mi.MessageOf(x)
}
-// Deprecated: Use NetworkServiceRemoveExternalMemberRequest.ProtoReflect.Descriptor instead.
-func (*NetworkServiceRemoveExternalMemberRequest) Descriptor() ([]byte, []int) {
+// Deprecated: Use NetworkServiceRemoveExternalMembersRequest.ProtoReflect.Descriptor instead.
+func (*NetworkServiceRemoveExternalMembersRequest) Descriptor() ([]byte, []int) {
return file_metalstack_admin_v2_network_proto_rawDescGZIP(), []int{8}
}
-func (x *NetworkServiceRemoveExternalMemberRequest) GetNetwork() string {
+func (x *NetworkServiceRemoveExternalMembersRequest) GetNetwork() string {
if x != nil {
return x.Network
}
return ""
}
-func (x *NetworkServiceRemoveExternalMemberRequest) GetSwitchPorts() []*v2.ExternalNetworkMember {
+func (x *NetworkServiceRemoveExternalMembersRequest) GetSwitchPorts() []*v2.ExternalNetworkMember {
if x != nil {
return x.SwitchPorts
}
@@ -939,7 +939,7 @@ func (x *NetworkServiceListExternalMembersResponse) GetMembers() []*v2.ExternalN
}
// NetworkServiceAddExternalMemberResponse is the response payload for adding an external member to a network.
-type NetworkServiceAddExternalMemberResponse struct {
+type NetworkServiceAddExternalMembersResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
// Switch contains the updated switch.
Switch *v2.Switch `protobuf:"bytes,1,opt,name=switch,proto3" json:"switch,omitempty"`
@@ -947,20 +947,20 @@ type NetworkServiceAddExternalMemberResponse struct {
sizeCache protoimpl.SizeCache
}
-func (x *NetworkServiceAddExternalMemberResponse) Reset() {
- *x = NetworkServiceAddExternalMemberResponse{}
+func (x *NetworkServiceAddExternalMembersResponse) Reset() {
+ *x = NetworkServiceAddExternalMembersResponse{}
mi := &file_metalstack_admin_v2_network_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
-func (x *NetworkServiceAddExternalMemberResponse) String() string {
+func (x *NetworkServiceAddExternalMembersResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*NetworkServiceAddExternalMemberResponse) ProtoMessage() {}
+func (*NetworkServiceAddExternalMembersResponse) ProtoMessage() {}
-func (x *NetworkServiceAddExternalMemberResponse) ProtoReflect() protoreflect.Message {
+func (x *NetworkServiceAddExternalMembersResponse) ProtoReflect() protoreflect.Message {
mi := &file_metalstack_admin_v2_network_proto_msgTypes[14]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -972,12 +972,12 @@ func (x *NetworkServiceAddExternalMemberResponse) ProtoReflect() protoreflect.Me
return mi.MessageOf(x)
}
-// Deprecated: Use NetworkServiceAddExternalMemberResponse.ProtoReflect.Descriptor instead.
-func (*NetworkServiceAddExternalMemberResponse) Descriptor() ([]byte, []int) {
+// Deprecated: Use NetworkServiceAddExternalMembersResponse.ProtoReflect.Descriptor instead.
+func (*NetworkServiceAddExternalMembersResponse) Descriptor() ([]byte, []int) {
return file_metalstack_admin_v2_network_proto_rawDescGZIP(), []int{14}
}
-func (x *NetworkServiceAddExternalMemberResponse) GetSwitch() *v2.Switch {
+func (x *NetworkServiceAddExternalMembersResponse) GetSwitch() *v2.Switch {
if x != nil {
return x.Switch
}
@@ -985,7 +985,7 @@ func (x *NetworkServiceAddExternalMemberResponse) GetSwitch() *v2.Switch {
}
// NetworkServiceRemoveExternalMemberResponse is the response payload for removing an external member from a network.
-type NetworkServiceRemoveExternalMemberResponse struct {
+type NetworkServiceRemoveExternalMembersResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
// Switch contains the updated switch.
Switch *v2.Switch `protobuf:"bytes,1,opt,name=switch,proto3" json:"switch,omitempty"`
@@ -993,20 +993,20 @@ type NetworkServiceRemoveExternalMemberResponse struct {
sizeCache protoimpl.SizeCache
}
-func (x *NetworkServiceRemoveExternalMemberResponse) Reset() {
- *x = NetworkServiceRemoveExternalMemberResponse{}
+func (x *NetworkServiceRemoveExternalMembersResponse) Reset() {
+ *x = NetworkServiceRemoveExternalMembersResponse{}
mi := &file_metalstack_admin_v2_network_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
-func (x *NetworkServiceRemoveExternalMemberResponse) String() string {
+func (x *NetworkServiceRemoveExternalMembersResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*NetworkServiceRemoveExternalMemberResponse) ProtoMessage() {}
+func (*NetworkServiceRemoveExternalMembersResponse) ProtoMessage() {}
-func (x *NetworkServiceRemoveExternalMemberResponse) ProtoReflect() protoreflect.Message {
+func (x *NetworkServiceRemoveExternalMembersResponse) ProtoReflect() protoreflect.Message {
mi := &file_metalstack_admin_v2_network_proto_msgTypes[15]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1018,12 +1018,12 @@ func (x *NetworkServiceRemoveExternalMemberResponse) ProtoReflect() protoreflect
return mi.MessageOf(x)
}
-// Deprecated: Use NetworkServiceRemoveExternalMemberResponse.ProtoReflect.Descriptor instead.
-func (*NetworkServiceRemoveExternalMemberResponse) Descriptor() ([]byte, []int) {
+// Deprecated: Use NetworkServiceRemoveExternalMembersResponse.ProtoReflect.Descriptor instead.
+func (*NetworkServiceRemoveExternalMembersResponse) Descriptor() ([]byte, []int) {
return file_metalstack_admin_v2_network_proto_rawDescGZIP(), []int{15}
}
-func (x *NetworkServiceRemoveExternalMemberResponse) GetSwitch() *v2.Switch {
+func (x *NetworkServiceRemoveExternalMembersResponse) GetSwitch() *v2.Switch {
if x != nil {
return x.Switch
}
@@ -1099,11 +1099,11 @@ const file_metalstack_admin_v2_network_proto_rawDesc = "" +
"\x05query\x18\x01 \x01(\v2\x1f.metalstack.api.v2.NetworkQueryR\x05query\"\x96\x01\n" +
"(NetworkServiceListExternalMembersRequest\x12%\n" +
"\anetwork\x18\x01 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01R\anetwork\x12C\n" +
- "\x05query\x18\x02 \x01(\v2-.metalstack.api.v2.ExternalNetworkMemberQueryR\x05query\"\xa6\x01\n" +
- "&NetworkServiceAddExternalMemberRequest\x12%\n" +
+ "\x05query\x18\x02 \x01(\v2-.metalstack.api.v2.ExternalNetworkMemberQueryR\x05query\"\xa7\x01\n" +
+ "'NetworkServiceAddExternalMembersRequest\x12%\n" +
"\anetwork\x18\x01 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01R\anetwork\x12U\n" +
- "\fswitch_ports\x18\x02 \x03(\v2(.metalstack.api.v2.ExternalNetworkMemberB\b\xbaH\x05\x92\x01\x02\x10\bR\vswitchPorts\"\xa9\x01\n" +
- ")NetworkServiceRemoveExternalMemberRequest\x12%\n" +
+ "\fswitch_ports\x18\x02 \x03(\v2(.metalstack.api.v2.ExternalNetworkMemberB\b\xbaH\x05\x92\x01\x02\x10\bR\vswitchPorts\"\xaa\x01\n" +
+ "*NetworkServiceRemoveExternalMembersRequest\x12%\n" +
"\anetwork\x18\x01 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01R\anetwork\x12U\n" +
"\fswitch_ports\x18\x02 \x03(\v2(.metalstack.api.v2.ExternalNetworkMemberB\b\xbaH\x05\x92\x01\x02\x10\bR\vswitchPorts\"T\n" +
"\x1cNetworkServiceCreateResponse\x124\n" +
@@ -1115,11 +1115,11 @@ const file_metalstack_admin_v2_network_proto_rawDesc = "" +
"\x1aNetworkServiceListResponse\x126\n" +
"\bnetworks\x18\x01 \x03(\v2\x1a.metalstack.api.v2.NetworkR\bnetworks\"o\n" +
")NetworkServiceListExternalMembersResponse\x12B\n" +
- "\amembers\x18\x01 \x03(\v2(.metalstack.api.v2.ExternalNetworkMemberR\amembers\"\\\n" +
- "'NetworkServiceAddExternalMemberResponse\x121\n" +
- "\x06switch\x18\x01 \x01(\v2\x19.metalstack.api.v2.SwitchR\x06switch\"_\n" +
- "*NetworkServiceRemoveExternalMemberResponse\x121\n" +
- "\x06switch\x18\x01 \x01(\v2\x19.metalstack.api.v2.SwitchR\x06switch2\xc9\b\n" +
+ "\amembers\x18\x01 \x03(\v2(.metalstack.api.v2.ExternalNetworkMemberR\amembers\"]\n" +
+ "(NetworkServiceAddExternalMembersResponse\x121\n" +
+ "\x06switch\x18\x01 \x01(\v2\x19.metalstack.api.v2.SwitchR\x06switch\"`\n" +
+ "+NetworkServiceRemoveExternalMembersResponse\x121\n" +
+ "\x06switch\x18\x01 \x01(\v2\x19.metalstack.api.v2.SwitchR\x06switch2\xcf\b\n" +
"\x0eNetworkService\x12p\n" +
"\x03Get\x12-.metalstack.admin.v2.NetworkServiceGetRequest\x1a..metalstack.admin.v2.NetworkServiceGetResponse\"\n" +
"\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x12x\n" +
@@ -1129,9 +1129,9 @@ const file_metalstack_admin_v2_network_proto_rawDesc = "" +
"\x04List\x12..metalstack.admin.v2.NetworkServiceListRequest\x1a/.metalstack.admin.v2.NetworkServiceListResponse\"\n" +
"\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x12\xa0\x01\n" +
"\x13ListExternalMembers\x12=.metalstack.admin.v2.NetworkServiceListExternalMembersRequest\x1a>.metalstack.admin.v2.NetworkServiceListExternalMembersResponse\"\n" +
- "\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x12\x99\x01\n" +
- "\x11AddExternalMember\x12;.metalstack.admin.v2.NetworkServiceAddExternalMemberRequest\x1a<.metalstack.admin.v2.NetworkServiceAddExternalMemberResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12\xa2\x01\n" +
- "\x14RemoveExternalMember\x12>.metalstack.admin.v2.NetworkServiceRemoveExternalMemberRequest\x1a?.metalstack.admin.v2.NetworkServiceRemoveExternalMemberResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01B\xd0\x01\n" +
+ "\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x12\x9c\x01\n" +
+ "\x12AddExternalMembers\x12<.metalstack.admin.v2.NetworkServiceAddExternalMembersRequest\x1a=.metalstack.admin.v2.NetworkServiceAddExternalMembersResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12\xa5\x01\n" +
+ "\x15RemoveExternalMembers\x12?.metalstack.admin.v2.NetworkServiceRemoveExternalMembersRequest\x1a@.metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01B\xd0\x01\n" +
"\x17com.metalstack.admin.v2B\fNetworkProtoP\x01Z9github.com/metal-stack/api/go/metalstack/admin/v2;adminv2\xa2\x02\x03MAX\xaa\x02\x13Metalstack.Admin.V2\xca\x02\x13Metalstack\\Admin\\V2\xe2\x02\x1fMetalstack\\Admin\\V2\\GPBMetadata\xea\x02\x15Metalstack::Admin::V2b\x06proto3"
var (
@@ -1148,34 +1148,34 @@ func file_metalstack_admin_v2_network_proto_rawDescGZIP() []byte {
var file_metalstack_admin_v2_network_proto_msgTypes = make([]protoimpl.MessageInfo, 16)
var file_metalstack_admin_v2_network_proto_goTypes = []any{
- (*NetworkServiceGetRequest)(nil), // 0: metalstack.admin.v2.NetworkServiceGetRequest
- (*NetworkServiceGetResponse)(nil), // 1: metalstack.admin.v2.NetworkServiceGetResponse
- (*NetworkServiceCreateRequest)(nil), // 2: metalstack.admin.v2.NetworkServiceCreateRequest
- (*NetworkServiceUpdateRequest)(nil), // 3: metalstack.admin.v2.NetworkServiceUpdateRequest
- (*NetworkServiceDeleteRequest)(nil), // 4: metalstack.admin.v2.NetworkServiceDeleteRequest
- (*NetworkServiceListRequest)(nil), // 5: metalstack.admin.v2.NetworkServiceListRequest
- (*NetworkServiceListExternalMembersRequest)(nil), // 6: metalstack.admin.v2.NetworkServiceListExternalMembersRequest
- (*NetworkServiceAddExternalMemberRequest)(nil), // 7: metalstack.admin.v2.NetworkServiceAddExternalMemberRequest
- (*NetworkServiceRemoveExternalMemberRequest)(nil), // 8: metalstack.admin.v2.NetworkServiceRemoveExternalMemberRequest
- (*NetworkServiceCreateResponse)(nil), // 9: metalstack.admin.v2.NetworkServiceCreateResponse
- (*NetworkServiceUpdateResponse)(nil), // 10: metalstack.admin.v2.NetworkServiceUpdateResponse
- (*NetworkServiceDeleteResponse)(nil), // 11: metalstack.admin.v2.NetworkServiceDeleteResponse
- (*NetworkServiceListResponse)(nil), // 12: metalstack.admin.v2.NetworkServiceListResponse
- (*NetworkServiceListExternalMembersResponse)(nil), // 13: metalstack.admin.v2.NetworkServiceListExternalMembersResponse
- (*NetworkServiceAddExternalMemberResponse)(nil), // 14: metalstack.admin.v2.NetworkServiceAddExternalMemberResponse
- (*NetworkServiceRemoveExternalMemberResponse)(nil), // 15: metalstack.admin.v2.NetworkServiceRemoveExternalMemberResponse
- (*v2.Network)(nil), // 16: metalstack.api.v2.Network
- (v2.NetworkType)(0), // 17: metalstack.api.v2.NetworkType
- (*v2.Labels)(nil), // 18: metalstack.api.v2.Labels
- (*v2.ChildPrefixLength)(nil), // 19: metalstack.api.v2.ChildPrefixLength
- (v2.NATType)(0), // 20: metalstack.api.v2.NATType
- (v2.NetworkAddressFamily)(0), // 21: metalstack.api.v2.NetworkAddressFamily
- (*v2.UpdateMeta)(nil), // 22: metalstack.api.v2.UpdateMeta
- (*v2.UpdateLabels)(nil), // 23: metalstack.api.v2.UpdateLabels
- (*v2.NetworkQuery)(nil), // 24: metalstack.api.v2.NetworkQuery
- (*v2.ExternalNetworkMemberQuery)(nil), // 25: metalstack.api.v2.ExternalNetworkMemberQuery
- (*v2.ExternalNetworkMember)(nil), // 26: metalstack.api.v2.ExternalNetworkMember
- (*v2.Switch)(nil), // 27: metalstack.api.v2.Switch
+ (*NetworkServiceGetRequest)(nil), // 0: metalstack.admin.v2.NetworkServiceGetRequest
+ (*NetworkServiceGetResponse)(nil), // 1: metalstack.admin.v2.NetworkServiceGetResponse
+ (*NetworkServiceCreateRequest)(nil), // 2: metalstack.admin.v2.NetworkServiceCreateRequest
+ (*NetworkServiceUpdateRequest)(nil), // 3: metalstack.admin.v2.NetworkServiceUpdateRequest
+ (*NetworkServiceDeleteRequest)(nil), // 4: metalstack.admin.v2.NetworkServiceDeleteRequest
+ (*NetworkServiceListRequest)(nil), // 5: metalstack.admin.v2.NetworkServiceListRequest
+ (*NetworkServiceListExternalMembersRequest)(nil), // 6: metalstack.admin.v2.NetworkServiceListExternalMembersRequest
+ (*NetworkServiceAddExternalMembersRequest)(nil), // 7: metalstack.admin.v2.NetworkServiceAddExternalMembersRequest
+ (*NetworkServiceRemoveExternalMembersRequest)(nil), // 8: metalstack.admin.v2.NetworkServiceRemoveExternalMembersRequest
+ (*NetworkServiceCreateResponse)(nil), // 9: metalstack.admin.v2.NetworkServiceCreateResponse
+ (*NetworkServiceUpdateResponse)(nil), // 10: metalstack.admin.v2.NetworkServiceUpdateResponse
+ (*NetworkServiceDeleteResponse)(nil), // 11: metalstack.admin.v2.NetworkServiceDeleteResponse
+ (*NetworkServiceListResponse)(nil), // 12: metalstack.admin.v2.NetworkServiceListResponse
+ (*NetworkServiceListExternalMembersResponse)(nil), // 13: metalstack.admin.v2.NetworkServiceListExternalMembersResponse
+ (*NetworkServiceAddExternalMembersResponse)(nil), // 14: metalstack.admin.v2.NetworkServiceAddExternalMembersResponse
+ (*NetworkServiceRemoveExternalMembersResponse)(nil), // 15: metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse
+ (*v2.Network)(nil), // 16: metalstack.api.v2.Network
+ (v2.NetworkType)(0), // 17: metalstack.api.v2.NetworkType
+ (*v2.Labels)(nil), // 18: metalstack.api.v2.Labels
+ (*v2.ChildPrefixLength)(nil), // 19: metalstack.api.v2.ChildPrefixLength
+ (v2.NATType)(0), // 20: metalstack.api.v2.NATType
+ (v2.NetworkAddressFamily)(0), // 21: metalstack.api.v2.NetworkAddressFamily
+ (*v2.UpdateMeta)(nil), // 22: metalstack.api.v2.UpdateMeta
+ (*v2.UpdateLabels)(nil), // 23: metalstack.api.v2.UpdateLabels
+ (*v2.NetworkQuery)(nil), // 24: metalstack.api.v2.NetworkQuery
+ (*v2.ExternalNetworkMemberQuery)(nil), // 25: metalstack.api.v2.ExternalNetworkMemberQuery
+ (*v2.ExternalNetworkMember)(nil), // 26: metalstack.api.v2.ExternalNetworkMember
+ (*v2.Switch)(nil), // 27: metalstack.api.v2.Switch
}
var file_metalstack_admin_v2_network_proto_depIdxs = []int32{
16, // 0: metalstack.admin.v2.NetworkServiceGetResponse.network:type_name -> metalstack.api.v2.Network
@@ -1193,31 +1193,31 @@ var file_metalstack_admin_v2_network_proto_depIdxs = []int32{
20, // 12: metalstack.admin.v2.NetworkServiceUpdateRequest.nat_type:type_name -> metalstack.api.v2.NATType
24, // 13: metalstack.admin.v2.NetworkServiceListRequest.query:type_name -> metalstack.api.v2.NetworkQuery
25, // 14: metalstack.admin.v2.NetworkServiceListExternalMembersRequest.query:type_name -> metalstack.api.v2.ExternalNetworkMemberQuery
- 26, // 15: metalstack.admin.v2.NetworkServiceAddExternalMemberRequest.switch_ports:type_name -> metalstack.api.v2.ExternalNetworkMember
- 26, // 16: metalstack.admin.v2.NetworkServiceRemoveExternalMemberRequest.switch_ports:type_name -> metalstack.api.v2.ExternalNetworkMember
+ 26, // 15: metalstack.admin.v2.NetworkServiceAddExternalMembersRequest.switch_ports:type_name -> metalstack.api.v2.ExternalNetworkMember
+ 26, // 16: metalstack.admin.v2.NetworkServiceRemoveExternalMembersRequest.switch_ports:type_name -> metalstack.api.v2.ExternalNetworkMember
16, // 17: metalstack.admin.v2.NetworkServiceCreateResponse.network:type_name -> metalstack.api.v2.Network
16, // 18: metalstack.admin.v2.NetworkServiceUpdateResponse.network:type_name -> metalstack.api.v2.Network
16, // 19: metalstack.admin.v2.NetworkServiceDeleteResponse.network:type_name -> metalstack.api.v2.Network
16, // 20: metalstack.admin.v2.NetworkServiceListResponse.networks:type_name -> metalstack.api.v2.Network
26, // 21: metalstack.admin.v2.NetworkServiceListExternalMembersResponse.members:type_name -> metalstack.api.v2.ExternalNetworkMember
- 27, // 22: metalstack.admin.v2.NetworkServiceAddExternalMemberResponse.switch:type_name -> metalstack.api.v2.Switch
- 27, // 23: metalstack.admin.v2.NetworkServiceRemoveExternalMemberResponse.switch:type_name -> metalstack.api.v2.Switch
+ 27, // 22: metalstack.admin.v2.NetworkServiceAddExternalMembersResponse.switch:type_name -> metalstack.api.v2.Switch
+ 27, // 23: metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse.switch:type_name -> metalstack.api.v2.Switch
0, // 24: metalstack.admin.v2.NetworkService.Get:input_type -> metalstack.admin.v2.NetworkServiceGetRequest
2, // 25: metalstack.admin.v2.NetworkService.Create:input_type -> metalstack.admin.v2.NetworkServiceCreateRequest
3, // 26: metalstack.admin.v2.NetworkService.Update:input_type -> metalstack.admin.v2.NetworkServiceUpdateRequest
4, // 27: metalstack.admin.v2.NetworkService.Delete:input_type -> metalstack.admin.v2.NetworkServiceDeleteRequest
5, // 28: metalstack.admin.v2.NetworkService.List:input_type -> metalstack.admin.v2.NetworkServiceListRequest
6, // 29: metalstack.admin.v2.NetworkService.ListExternalMembers:input_type -> metalstack.admin.v2.NetworkServiceListExternalMembersRequest
- 7, // 30: metalstack.admin.v2.NetworkService.AddExternalMember:input_type -> metalstack.admin.v2.NetworkServiceAddExternalMemberRequest
- 8, // 31: metalstack.admin.v2.NetworkService.RemoveExternalMember:input_type -> metalstack.admin.v2.NetworkServiceRemoveExternalMemberRequest
+ 7, // 30: metalstack.admin.v2.NetworkService.AddExternalMembers:input_type -> metalstack.admin.v2.NetworkServiceAddExternalMembersRequest
+ 8, // 31: metalstack.admin.v2.NetworkService.RemoveExternalMembers:input_type -> metalstack.admin.v2.NetworkServiceRemoveExternalMembersRequest
1, // 32: metalstack.admin.v2.NetworkService.Get:output_type -> metalstack.admin.v2.NetworkServiceGetResponse
9, // 33: metalstack.admin.v2.NetworkService.Create:output_type -> metalstack.admin.v2.NetworkServiceCreateResponse
10, // 34: metalstack.admin.v2.NetworkService.Update:output_type -> metalstack.admin.v2.NetworkServiceUpdateResponse
11, // 35: metalstack.admin.v2.NetworkService.Delete:output_type -> metalstack.admin.v2.NetworkServiceDeleteResponse
12, // 36: metalstack.admin.v2.NetworkService.List:output_type -> metalstack.admin.v2.NetworkServiceListResponse
13, // 37: metalstack.admin.v2.NetworkService.ListExternalMembers:output_type -> metalstack.admin.v2.NetworkServiceListExternalMembersResponse
- 14, // 38: metalstack.admin.v2.NetworkService.AddExternalMember:output_type -> metalstack.admin.v2.NetworkServiceAddExternalMemberResponse
- 15, // 39: metalstack.admin.v2.NetworkService.RemoveExternalMember:output_type -> metalstack.admin.v2.NetworkServiceRemoveExternalMemberResponse
+ 14, // 38: metalstack.admin.v2.NetworkService.AddExternalMembers:output_type -> metalstack.admin.v2.NetworkServiceAddExternalMembersResponse
+ 15, // 39: metalstack.admin.v2.NetworkService.RemoveExternalMembers:output_type -> metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse
32, // [32:40] is the sub-list for method output_type
24, // [24:32] is the sub-list for method input_type
24, // [24:24] is the sub-list for extension type_name
diff --git a/go/permissions/servicepermissions.go b/go/permissions/servicepermissions.go
index 74d53ff5..d503829c 100755
--- a/go/permissions/servicepermissions.go
+++ b/go/permissions/servicepermissions.go
@@ -55,74 +55,74 @@ func GetServicePermissions() *ServicePermissions {
Roles: Roles{
Admin: Admin{
apiv2.AdminRole_ADMIN_ROLE_EDITOR: map[string]struct{}{
- "/metalstack.admin.v2.AuditService/Get": {},
- "/metalstack.admin.v2.AuditService/List": {},
- "/metalstack.admin.v2.ComponentService/Delete": {},
- "/metalstack.admin.v2.ComponentService/Get": {},
- "/metalstack.admin.v2.ComponentService/List": {},
- "/metalstack.admin.v2.FilesystemService/Create": {},
- "/metalstack.admin.v2.FilesystemService/Delete": {},
- "/metalstack.admin.v2.FilesystemService/Match": {},
- "/metalstack.admin.v2.FilesystemService/Update": {},
- "/metalstack.admin.v2.IPService/List": {},
- "/metalstack.admin.v2.ImageService/Create": {},
- "/metalstack.admin.v2.ImageService/Delete": {},
- "/metalstack.admin.v2.ImageService/Update": {},
- "/metalstack.admin.v2.ImageService/Usage": {},
- "/metalstack.admin.v2.MachineService/BMCCommand": {},
- "/metalstack.admin.v2.MachineService/ConsolePassword": {},
- "/metalstack.admin.v2.MachineService/Delete": {},
- "/metalstack.admin.v2.MachineService/Get": {},
- "/metalstack.admin.v2.MachineService/GetBMC": {},
- "/metalstack.admin.v2.MachineService/Issues": {},
- "/metalstack.admin.v2.MachineService/List": {},
- "/metalstack.admin.v2.MachineService/ListBMC": {},
- "/metalstack.admin.v2.MachineService/SetState": {},
- "/metalstack.admin.v2.NetworkService/AddExternalMember": {},
- "/metalstack.admin.v2.NetworkService/Create": {},
- "/metalstack.admin.v2.NetworkService/Delete": {},
- "/metalstack.admin.v2.NetworkService/Get": {},
- "/metalstack.admin.v2.NetworkService/List": {},
- "/metalstack.admin.v2.NetworkService/ListExternalMembers": {},
- "/metalstack.admin.v2.NetworkService/RemoveExternalMember": {},
- "/metalstack.admin.v2.NetworkService/Update": {},
- "/metalstack.admin.v2.PartitionService/Capacity": {},
- "/metalstack.admin.v2.PartitionService/Create": {},
- "/metalstack.admin.v2.PartitionService/Delete": {},
- "/metalstack.admin.v2.PartitionService/Update": {},
- "/metalstack.admin.v2.ProjectService/List": {},
- "/metalstack.admin.v2.SizeImageConstraintService/Create": {},
- "/metalstack.admin.v2.SizeImageConstraintService/Delete": {},
- "/metalstack.admin.v2.SizeImageConstraintService/Get": {},
- "/metalstack.admin.v2.SizeImageConstraintService/List": {},
- "/metalstack.admin.v2.SizeImageConstraintService/Update": {},
- "/metalstack.admin.v2.SizeReservationService/Create": {},
- "/metalstack.admin.v2.SizeReservationService/Delete": {},
- "/metalstack.admin.v2.SizeReservationService/List": {},
- "/metalstack.admin.v2.SizeReservationService/Update": {},
- "/metalstack.admin.v2.SizeService/Create": {},
- "/metalstack.admin.v2.SizeService/Delete": {},
- "/metalstack.admin.v2.SizeService/Update": {},
- "/metalstack.admin.v2.SwitchService/ConnectedMachines": {},
- "/metalstack.admin.v2.SwitchService/Delete": {},
- "/metalstack.admin.v2.SwitchService/Get": {},
- "/metalstack.admin.v2.SwitchService/List": {},
- "/metalstack.admin.v2.SwitchService/Migrate": {},
- "/metalstack.admin.v2.SwitchService/Port": {},
- "/metalstack.admin.v2.SwitchService/Update": {},
- "/metalstack.admin.v2.TaskService/Delete": {},
- "/metalstack.admin.v2.TaskService/Get": {},
- "/metalstack.admin.v2.TaskService/List": {},
- "/metalstack.admin.v2.TaskService/Queues": {},
- "/metalstack.admin.v2.TenantService/AddMember": {},
- "/metalstack.admin.v2.TenantService/Create": {},
- "/metalstack.admin.v2.TenantService/List": {},
- "/metalstack.admin.v2.TenantService/RemoveMember": {},
- "/metalstack.admin.v2.TokenService/Create": {},
- "/metalstack.admin.v2.TokenService/List": {},
- "/metalstack.admin.v2.TokenService/Revoke": {},
- "/metalstack.admin.v2.VPNService/AuthKey": {},
- "/metalstack.admin.v2.VPNService/ListNodes": {},
+ "/metalstack.admin.v2.AuditService/Get": {},
+ "/metalstack.admin.v2.AuditService/List": {},
+ "/metalstack.admin.v2.ComponentService/Delete": {},
+ "/metalstack.admin.v2.ComponentService/Get": {},
+ "/metalstack.admin.v2.ComponentService/List": {},
+ "/metalstack.admin.v2.FilesystemService/Create": {},
+ "/metalstack.admin.v2.FilesystemService/Delete": {},
+ "/metalstack.admin.v2.FilesystemService/Match": {},
+ "/metalstack.admin.v2.FilesystemService/Update": {},
+ "/metalstack.admin.v2.IPService/List": {},
+ "/metalstack.admin.v2.ImageService/Create": {},
+ "/metalstack.admin.v2.ImageService/Delete": {},
+ "/metalstack.admin.v2.ImageService/Update": {},
+ "/metalstack.admin.v2.ImageService/Usage": {},
+ "/metalstack.admin.v2.MachineService/BMCCommand": {},
+ "/metalstack.admin.v2.MachineService/ConsolePassword": {},
+ "/metalstack.admin.v2.MachineService/Delete": {},
+ "/metalstack.admin.v2.MachineService/Get": {},
+ "/metalstack.admin.v2.MachineService/GetBMC": {},
+ "/metalstack.admin.v2.MachineService/Issues": {},
+ "/metalstack.admin.v2.MachineService/List": {},
+ "/metalstack.admin.v2.MachineService/ListBMC": {},
+ "/metalstack.admin.v2.MachineService/SetState": {},
+ "/metalstack.admin.v2.NetworkService/AddExternalMembers": {},
+ "/metalstack.admin.v2.NetworkService/Create": {},
+ "/metalstack.admin.v2.NetworkService/Delete": {},
+ "/metalstack.admin.v2.NetworkService/Get": {},
+ "/metalstack.admin.v2.NetworkService/List": {},
+ "/metalstack.admin.v2.NetworkService/ListExternalMembers": {},
+ "/metalstack.admin.v2.NetworkService/RemoveExternalMembers": {},
+ "/metalstack.admin.v2.NetworkService/Update": {},
+ "/metalstack.admin.v2.PartitionService/Capacity": {},
+ "/metalstack.admin.v2.PartitionService/Create": {},
+ "/metalstack.admin.v2.PartitionService/Delete": {},
+ "/metalstack.admin.v2.PartitionService/Update": {},
+ "/metalstack.admin.v2.ProjectService/List": {},
+ "/metalstack.admin.v2.SizeImageConstraintService/Create": {},
+ "/metalstack.admin.v2.SizeImageConstraintService/Delete": {},
+ "/metalstack.admin.v2.SizeImageConstraintService/Get": {},
+ "/metalstack.admin.v2.SizeImageConstraintService/List": {},
+ "/metalstack.admin.v2.SizeImageConstraintService/Update": {},
+ "/metalstack.admin.v2.SizeReservationService/Create": {},
+ "/metalstack.admin.v2.SizeReservationService/Delete": {},
+ "/metalstack.admin.v2.SizeReservationService/List": {},
+ "/metalstack.admin.v2.SizeReservationService/Update": {},
+ "/metalstack.admin.v2.SizeService/Create": {},
+ "/metalstack.admin.v2.SizeService/Delete": {},
+ "/metalstack.admin.v2.SizeService/Update": {},
+ "/metalstack.admin.v2.SwitchService/ConnectedMachines": {},
+ "/metalstack.admin.v2.SwitchService/Delete": {},
+ "/metalstack.admin.v2.SwitchService/Get": {},
+ "/metalstack.admin.v2.SwitchService/List": {},
+ "/metalstack.admin.v2.SwitchService/Migrate": {},
+ "/metalstack.admin.v2.SwitchService/Port": {},
+ "/metalstack.admin.v2.SwitchService/Update": {},
+ "/metalstack.admin.v2.TaskService/Delete": {},
+ "/metalstack.admin.v2.TaskService/Get": {},
+ "/metalstack.admin.v2.TaskService/List": {},
+ "/metalstack.admin.v2.TaskService/Queues": {},
+ "/metalstack.admin.v2.TenantService/AddMember": {},
+ "/metalstack.admin.v2.TenantService/Create": {},
+ "/metalstack.admin.v2.TenantService/List": {},
+ "/metalstack.admin.v2.TenantService/RemoveMember": {},
+ "/metalstack.admin.v2.TokenService/Create": {},
+ "/metalstack.admin.v2.TokenService/List": {},
+ "/metalstack.admin.v2.TokenService/Revoke": {},
+ "/metalstack.admin.v2.VPNService/AuthKey": {},
+ "/metalstack.admin.v2.VPNService/ListNodes": {},
},
apiv2.AdminRole_ADMIN_ROLE_VIEWER: map[string]struct{}{
"/metalstack.admin.v2.AuditService/Get": {},
@@ -309,13 +309,13 @@ func GetServicePermissions() *ServicePermissions {
"/metalstack.admin.v2.MachineService/List": {},
"/metalstack.admin.v2.MachineService/ListBMC": {},
"/metalstack.admin.v2.MachineService/SetState": {},
- "/metalstack.admin.v2.NetworkService/AddExternalMember": {},
+ "/metalstack.admin.v2.NetworkService/AddExternalMembers": {},
"/metalstack.admin.v2.NetworkService/Create": {},
"/metalstack.admin.v2.NetworkService/Delete": {},
"/metalstack.admin.v2.NetworkService/Get": {},
"/metalstack.admin.v2.NetworkService/List": {},
"/metalstack.admin.v2.NetworkService/ListExternalMembers": {},
- "/metalstack.admin.v2.NetworkService/RemoveExternalMember": {},
+ "/metalstack.admin.v2.NetworkService/RemoveExternalMembers": {},
"/metalstack.admin.v2.NetworkService/Update": {},
"/metalstack.admin.v2.PartitionService/Capacity": {},
"/metalstack.admin.v2.PartitionService/Create": {},
@@ -476,74 +476,74 @@ func GetServicePermissions() *ServicePermissions {
"/metalstack.api.v2.UserService/Get": true,
},
Admin: map[string]bool{
- "/metalstack.admin.v2.AuditService/Get": true,
- "/metalstack.admin.v2.AuditService/List": true,
- "/metalstack.admin.v2.ComponentService/Delete": true,
- "/metalstack.admin.v2.ComponentService/Get": true,
- "/metalstack.admin.v2.ComponentService/List": true,
- "/metalstack.admin.v2.FilesystemService/Create": true,
- "/metalstack.admin.v2.FilesystemService/Delete": true,
- "/metalstack.admin.v2.FilesystemService/Match": true,
- "/metalstack.admin.v2.FilesystemService/Update": true,
- "/metalstack.admin.v2.IPService/List": true,
- "/metalstack.admin.v2.ImageService/Create": true,
- "/metalstack.admin.v2.ImageService/Delete": true,
- "/metalstack.admin.v2.ImageService/Update": true,
- "/metalstack.admin.v2.ImageService/Usage": true,
- "/metalstack.admin.v2.MachineService/BMCCommand": true,
- "/metalstack.admin.v2.MachineService/ConsolePassword": true,
- "/metalstack.admin.v2.MachineService/Delete": true,
- "/metalstack.admin.v2.MachineService/Get": true,
- "/metalstack.admin.v2.MachineService/GetBMC": true,
- "/metalstack.admin.v2.MachineService/Issues": true,
- "/metalstack.admin.v2.MachineService/List": true,
- "/metalstack.admin.v2.MachineService/ListBMC": true,
- "/metalstack.admin.v2.MachineService/SetState": true,
- "/metalstack.admin.v2.NetworkService/AddExternalMember": true,
- "/metalstack.admin.v2.NetworkService/Create": true,
- "/metalstack.admin.v2.NetworkService/Delete": true,
- "/metalstack.admin.v2.NetworkService/Get": true,
- "/metalstack.admin.v2.NetworkService/List": true,
- "/metalstack.admin.v2.NetworkService/ListExternalMembers": true,
- "/metalstack.admin.v2.NetworkService/RemoveExternalMember": true,
- "/metalstack.admin.v2.NetworkService/Update": true,
- "/metalstack.admin.v2.PartitionService/Capacity": true,
- "/metalstack.admin.v2.PartitionService/Create": true,
- "/metalstack.admin.v2.PartitionService/Delete": true,
- "/metalstack.admin.v2.PartitionService/Update": true,
- "/metalstack.admin.v2.ProjectService/List": true,
- "/metalstack.admin.v2.SizeImageConstraintService/Create": true,
- "/metalstack.admin.v2.SizeImageConstraintService/Delete": true,
- "/metalstack.admin.v2.SizeImageConstraintService/Get": true,
- "/metalstack.admin.v2.SizeImageConstraintService/List": true,
- "/metalstack.admin.v2.SizeImageConstraintService/Update": true,
- "/metalstack.admin.v2.SizeReservationService/Create": true,
- "/metalstack.admin.v2.SizeReservationService/Delete": true,
- "/metalstack.admin.v2.SizeReservationService/List": true,
- "/metalstack.admin.v2.SizeReservationService/Update": true,
- "/metalstack.admin.v2.SizeService/Create": true,
- "/metalstack.admin.v2.SizeService/Delete": true,
- "/metalstack.admin.v2.SizeService/Update": true,
- "/metalstack.admin.v2.SwitchService/ConnectedMachines": true,
- "/metalstack.admin.v2.SwitchService/Delete": true,
- "/metalstack.admin.v2.SwitchService/Get": true,
- "/metalstack.admin.v2.SwitchService/List": true,
- "/metalstack.admin.v2.SwitchService/Migrate": true,
- "/metalstack.admin.v2.SwitchService/Port": true,
- "/metalstack.admin.v2.SwitchService/Update": true,
- "/metalstack.admin.v2.TaskService/Delete": true,
- "/metalstack.admin.v2.TaskService/Get": true,
- "/metalstack.admin.v2.TaskService/List": true,
- "/metalstack.admin.v2.TaskService/Queues": true,
- "/metalstack.admin.v2.TenantService/AddMember": true,
- "/metalstack.admin.v2.TenantService/Create": true,
- "/metalstack.admin.v2.TenantService/List": true,
- "/metalstack.admin.v2.TenantService/RemoveMember": true,
- "/metalstack.admin.v2.TokenService/Create": true,
- "/metalstack.admin.v2.TokenService/List": true,
- "/metalstack.admin.v2.TokenService/Revoke": true,
- "/metalstack.admin.v2.VPNService/AuthKey": true,
- "/metalstack.admin.v2.VPNService/ListNodes": true,
+ "/metalstack.admin.v2.AuditService/Get": true,
+ "/metalstack.admin.v2.AuditService/List": true,
+ "/metalstack.admin.v2.ComponentService/Delete": true,
+ "/metalstack.admin.v2.ComponentService/Get": true,
+ "/metalstack.admin.v2.ComponentService/List": true,
+ "/metalstack.admin.v2.FilesystemService/Create": true,
+ "/metalstack.admin.v2.FilesystemService/Delete": true,
+ "/metalstack.admin.v2.FilesystemService/Match": true,
+ "/metalstack.admin.v2.FilesystemService/Update": true,
+ "/metalstack.admin.v2.IPService/List": true,
+ "/metalstack.admin.v2.ImageService/Create": true,
+ "/metalstack.admin.v2.ImageService/Delete": true,
+ "/metalstack.admin.v2.ImageService/Update": true,
+ "/metalstack.admin.v2.ImageService/Usage": true,
+ "/metalstack.admin.v2.MachineService/BMCCommand": true,
+ "/metalstack.admin.v2.MachineService/ConsolePassword": true,
+ "/metalstack.admin.v2.MachineService/Delete": true,
+ "/metalstack.admin.v2.MachineService/Get": true,
+ "/metalstack.admin.v2.MachineService/GetBMC": true,
+ "/metalstack.admin.v2.MachineService/Issues": true,
+ "/metalstack.admin.v2.MachineService/List": true,
+ "/metalstack.admin.v2.MachineService/ListBMC": true,
+ "/metalstack.admin.v2.MachineService/SetState": true,
+ "/metalstack.admin.v2.NetworkService/AddExternalMembers": true,
+ "/metalstack.admin.v2.NetworkService/Create": true,
+ "/metalstack.admin.v2.NetworkService/Delete": true,
+ "/metalstack.admin.v2.NetworkService/Get": true,
+ "/metalstack.admin.v2.NetworkService/List": true,
+ "/metalstack.admin.v2.NetworkService/ListExternalMembers": true,
+ "/metalstack.admin.v2.NetworkService/RemoveExternalMembers": true,
+ "/metalstack.admin.v2.NetworkService/Update": true,
+ "/metalstack.admin.v2.PartitionService/Capacity": true,
+ "/metalstack.admin.v2.PartitionService/Create": true,
+ "/metalstack.admin.v2.PartitionService/Delete": true,
+ "/metalstack.admin.v2.PartitionService/Update": true,
+ "/metalstack.admin.v2.ProjectService/List": true,
+ "/metalstack.admin.v2.SizeImageConstraintService/Create": true,
+ "/metalstack.admin.v2.SizeImageConstraintService/Delete": true,
+ "/metalstack.admin.v2.SizeImageConstraintService/Get": true,
+ "/metalstack.admin.v2.SizeImageConstraintService/List": true,
+ "/metalstack.admin.v2.SizeImageConstraintService/Update": true,
+ "/metalstack.admin.v2.SizeReservationService/Create": true,
+ "/metalstack.admin.v2.SizeReservationService/Delete": true,
+ "/metalstack.admin.v2.SizeReservationService/List": true,
+ "/metalstack.admin.v2.SizeReservationService/Update": true,
+ "/metalstack.admin.v2.SizeService/Create": true,
+ "/metalstack.admin.v2.SizeService/Delete": true,
+ "/metalstack.admin.v2.SizeService/Update": true,
+ "/metalstack.admin.v2.SwitchService/ConnectedMachines": true,
+ "/metalstack.admin.v2.SwitchService/Delete": true,
+ "/metalstack.admin.v2.SwitchService/Get": true,
+ "/metalstack.admin.v2.SwitchService/List": true,
+ "/metalstack.admin.v2.SwitchService/Migrate": true,
+ "/metalstack.admin.v2.SwitchService/Port": true,
+ "/metalstack.admin.v2.SwitchService/Update": true,
+ "/metalstack.admin.v2.TaskService/Delete": true,
+ "/metalstack.admin.v2.TaskService/Get": true,
+ "/metalstack.admin.v2.TaskService/List": true,
+ "/metalstack.admin.v2.TaskService/Queues": true,
+ "/metalstack.admin.v2.TenantService/AddMember": true,
+ "/metalstack.admin.v2.TenantService/Create": true,
+ "/metalstack.admin.v2.TenantService/List": true,
+ "/metalstack.admin.v2.TenantService/RemoveMember": true,
+ "/metalstack.admin.v2.TokenService/Create": true,
+ "/metalstack.admin.v2.TokenService/List": true,
+ "/metalstack.admin.v2.TokenService/Revoke": true,
+ "/metalstack.admin.v2.VPNService/AuthKey": true,
+ "/metalstack.admin.v2.VPNService/ListNodes": true,
},
Infra: map[string]bool{
"/metalstack.infra.v2.BMCService/BMCCommandDone": true,
@@ -612,159 +612,159 @@ func GetServicePermissions() *ServicePermissions {
},
},
Auditable: map[string]bool{
- "/metalstack.admin.v2.AuditService/Get": true,
- "/metalstack.admin.v2.AuditService/List": true,
- "/metalstack.admin.v2.ComponentService/Delete": true,
- "/metalstack.admin.v2.ComponentService/Get": false,
- "/metalstack.admin.v2.ComponentService/List": false,
- "/metalstack.admin.v2.FilesystemService/Create": true,
- "/metalstack.admin.v2.FilesystemService/Delete": true,
- "/metalstack.admin.v2.FilesystemService/Match": false,
- "/metalstack.admin.v2.FilesystemService/Update": true,
- "/metalstack.admin.v2.IPService/List": false,
- "/metalstack.admin.v2.ImageService/Create": true,
- "/metalstack.admin.v2.ImageService/Delete": true,
- "/metalstack.admin.v2.ImageService/Update": true,
- "/metalstack.admin.v2.ImageService/Usage": true,
- "/metalstack.admin.v2.MachineService/BMCCommand": true,
- "/metalstack.admin.v2.MachineService/ConsolePassword": true,
- "/metalstack.admin.v2.MachineService/Delete": true,
- "/metalstack.admin.v2.MachineService/Get": false,
- "/metalstack.admin.v2.MachineService/GetBMC": true,
- "/metalstack.admin.v2.MachineService/Issues": false,
- "/metalstack.admin.v2.MachineService/List": false,
- "/metalstack.admin.v2.MachineService/ListBMC": true,
- "/metalstack.admin.v2.MachineService/SetState": true,
- "/metalstack.admin.v2.NetworkService/AddExternalMember": true,
- "/metalstack.admin.v2.NetworkService/Create": true,
- "/metalstack.admin.v2.NetworkService/Delete": true,
- "/metalstack.admin.v2.NetworkService/Get": false,
- "/metalstack.admin.v2.NetworkService/List": false,
- "/metalstack.admin.v2.NetworkService/ListExternalMembers": false,
- "/metalstack.admin.v2.NetworkService/RemoveExternalMember": true,
- "/metalstack.admin.v2.NetworkService/Update": true,
- "/metalstack.admin.v2.PartitionService/Capacity": false,
- "/metalstack.admin.v2.PartitionService/Create": true,
- "/metalstack.admin.v2.PartitionService/Delete": true,
- "/metalstack.admin.v2.PartitionService/Update": true,
- "/metalstack.admin.v2.ProjectService/List": false,
- "/metalstack.admin.v2.SizeImageConstraintService/Create": true,
- "/metalstack.admin.v2.SizeImageConstraintService/Delete": true,
- "/metalstack.admin.v2.SizeImageConstraintService/Get": false,
- "/metalstack.admin.v2.SizeImageConstraintService/List": false,
- "/metalstack.admin.v2.SizeImageConstraintService/Update": true,
- "/metalstack.admin.v2.SizeReservationService/Create": true,
- "/metalstack.admin.v2.SizeReservationService/Delete": true,
- "/metalstack.admin.v2.SizeReservationService/List": false,
- "/metalstack.admin.v2.SizeReservationService/Update": true,
- "/metalstack.admin.v2.SizeService/Create": true,
- "/metalstack.admin.v2.SizeService/Delete": true,
- "/metalstack.admin.v2.SizeService/Update": true,
- "/metalstack.admin.v2.SwitchService/ConnectedMachines": false,
- "/metalstack.admin.v2.SwitchService/Delete": true,
- "/metalstack.admin.v2.SwitchService/Get": false,
- "/metalstack.admin.v2.SwitchService/List": false,
- "/metalstack.admin.v2.SwitchService/Migrate": true,
- "/metalstack.admin.v2.SwitchService/Port": true,
- "/metalstack.admin.v2.SwitchService/Update": true,
- "/metalstack.admin.v2.TaskService/Delete": true,
- "/metalstack.admin.v2.TaskService/Get": true,
- "/metalstack.admin.v2.TaskService/List": true,
- "/metalstack.admin.v2.TaskService/Queues": true,
- "/metalstack.admin.v2.TenantService/AddMember": true,
- "/metalstack.admin.v2.TenantService/Create": true,
- "/metalstack.admin.v2.TenantService/List": true,
- "/metalstack.admin.v2.TenantService/RemoveMember": true,
- "/metalstack.admin.v2.TokenService/Create": true,
- "/metalstack.admin.v2.TokenService/List": true,
- "/metalstack.admin.v2.TokenService/Revoke": true,
- "/metalstack.admin.v2.VPNService/AuthKey": true,
- "/metalstack.admin.v2.VPNService/ListNodes": true,
- "/metalstack.api.v2.AuditService/Get": false,
- "/metalstack.api.v2.AuditService/List": false,
- "/metalstack.api.v2.FilesystemService/Get": false,
- "/metalstack.api.v2.FilesystemService/List": false,
- "/metalstack.api.v2.HealthService/Get": false,
- "/metalstack.api.v2.IPService/Create": true,
- "/metalstack.api.v2.IPService/Delete": true,
- "/metalstack.api.v2.IPService/Get": false,
- "/metalstack.api.v2.IPService/List": false,
- "/metalstack.api.v2.IPService/Update": true,
- "/metalstack.api.v2.ImageService/Get": false,
- "/metalstack.api.v2.ImageService/Latest": false,
- "/metalstack.api.v2.ImageService/List": false,
- "/metalstack.api.v2.MachineService/BMCCommand": true,
- "/metalstack.api.v2.MachineService/Create": true,
- "/metalstack.api.v2.MachineService/Delete": true,
- "/metalstack.api.v2.MachineService/Get": false,
- "/metalstack.api.v2.MachineService/GetBMC": true,
- "/metalstack.api.v2.MachineService/List": false,
- "/metalstack.api.v2.MachineService/Update": true,
- "/metalstack.api.v2.MethodService/List": true,
- "/metalstack.api.v2.MethodService/TokenScopedList": true,
- "/metalstack.api.v2.NetworkService/Create": true,
- "/metalstack.api.v2.NetworkService/Delete": true,
- "/metalstack.api.v2.NetworkService/Get": false,
- "/metalstack.api.v2.NetworkService/List": false,
- "/metalstack.api.v2.NetworkService/ListBaseNetworks": false,
- "/metalstack.api.v2.NetworkService/Update": true,
- "/metalstack.api.v2.PartitionService/Get": false,
- "/metalstack.api.v2.PartitionService/List": false,
- "/metalstack.api.v2.ProjectService/AddMember": true,
- "/metalstack.api.v2.ProjectService/Create": true,
- "/metalstack.api.v2.ProjectService/Delete": true,
- "/metalstack.api.v2.ProjectService/Get": false,
- "/metalstack.api.v2.ProjectService/Invite": true,
- "/metalstack.api.v2.ProjectService/InviteAccept": true,
- "/metalstack.api.v2.ProjectService/InviteDelete": true,
- "/metalstack.api.v2.ProjectService/InviteGet": false,
- "/metalstack.api.v2.ProjectService/InvitesList": false,
- "/metalstack.api.v2.ProjectService/Leave": true,
- "/metalstack.api.v2.ProjectService/List": false,
- "/metalstack.api.v2.ProjectService/RemoveMember": true,
- "/metalstack.api.v2.ProjectService/Update": true,
- "/metalstack.api.v2.ProjectService/UpdateMember": true,
- "/metalstack.api.v2.SizeImageConstraintService/Try": false,
- "/metalstack.api.v2.SizeReservationService/Get": false,
- "/metalstack.api.v2.SizeReservationService/List": false,
- "/metalstack.api.v2.SizeService/Get": false,
- "/metalstack.api.v2.SizeService/List": false,
- "/metalstack.api.v2.TenantService/AddMember": true,
- "/metalstack.api.v2.TenantService/Create": true,
- "/metalstack.api.v2.TenantService/Delete": true,
- "/metalstack.api.v2.TenantService/Get": false,
- "/metalstack.api.v2.TenantService/Invite": true,
- "/metalstack.api.v2.TenantService/InviteAccept": true,
- "/metalstack.api.v2.TenantService/InviteDelete": true,
- "/metalstack.api.v2.TenantService/InviteGet": false,
- "/metalstack.api.v2.TenantService/InvitesList": false,
- "/metalstack.api.v2.TenantService/Leave": true,
- "/metalstack.api.v2.TenantService/List": false,
- "/metalstack.api.v2.TenantService/RemoveMember": true,
- "/metalstack.api.v2.TenantService/Update": true,
- "/metalstack.api.v2.TenantService/UpdateMember": true,
- "/metalstack.api.v2.TokenService/Create": true,
- "/metalstack.api.v2.TokenService/Get": true,
- "/metalstack.api.v2.TokenService/List": true,
- "/metalstack.api.v2.TokenService/Refresh": true,
- "/metalstack.api.v2.TokenService/Revoke": true,
- "/metalstack.api.v2.TokenService/Update": true,
- "/metalstack.api.v2.UserService/Get": true,
- "/metalstack.api.v2.VersionService/Get": false,
- "/metalstack.infra.v2.BMCService/BMCCommandDone": true,
- "/metalstack.infra.v2.BMCService/UpdateBMCInfo": false,
- "/metalstack.infra.v2.BMCService/WaitForBMCCommand": false,
- "/metalstack.infra.v2.BootService/Boot": false,
- "/metalstack.infra.v2.BootService/Dhcp": false,
- "/metalstack.infra.v2.BootService/InstallationSucceeded": false,
- "/metalstack.infra.v2.BootService/Register": false,
- "/metalstack.infra.v2.BootService/SuperUserPassword": false,
- "/metalstack.infra.v2.BootService/Wait": false,
- "/metalstack.infra.v2.ComponentService/Ping": false,
- "/metalstack.infra.v2.EventService/Send": false,
- "/metalstack.infra.v2.SwitchService/Get": false,
- "/metalstack.infra.v2.SwitchService/Heartbeat": false,
- "/metalstack.infra.v2.SwitchService/Register": false,
+ "/metalstack.admin.v2.AuditService/Get": true,
+ "/metalstack.admin.v2.AuditService/List": true,
+ "/metalstack.admin.v2.ComponentService/Delete": true,
+ "/metalstack.admin.v2.ComponentService/Get": false,
+ "/metalstack.admin.v2.ComponentService/List": false,
+ "/metalstack.admin.v2.FilesystemService/Create": true,
+ "/metalstack.admin.v2.FilesystemService/Delete": true,
+ "/metalstack.admin.v2.FilesystemService/Match": false,
+ "/metalstack.admin.v2.FilesystemService/Update": true,
+ "/metalstack.admin.v2.IPService/List": false,
+ "/metalstack.admin.v2.ImageService/Create": true,
+ "/metalstack.admin.v2.ImageService/Delete": true,
+ "/metalstack.admin.v2.ImageService/Update": true,
+ "/metalstack.admin.v2.ImageService/Usage": true,
+ "/metalstack.admin.v2.MachineService/BMCCommand": true,
+ "/metalstack.admin.v2.MachineService/ConsolePassword": true,
+ "/metalstack.admin.v2.MachineService/Delete": true,
+ "/metalstack.admin.v2.MachineService/Get": false,
+ "/metalstack.admin.v2.MachineService/GetBMC": true,
+ "/metalstack.admin.v2.MachineService/Issues": false,
+ "/metalstack.admin.v2.MachineService/List": false,
+ "/metalstack.admin.v2.MachineService/ListBMC": true,
+ "/metalstack.admin.v2.MachineService/SetState": true,
+ "/metalstack.admin.v2.NetworkService/AddExternalMembers": true,
+ "/metalstack.admin.v2.NetworkService/Create": true,
+ "/metalstack.admin.v2.NetworkService/Delete": true,
+ "/metalstack.admin.v2.NetworkService/Get": false,
+ "/metalstack.admin.v2.NetworkService/List": false,
+ "/metalstack.admin.v2.NetworkService/ListExternalMembers": false,
+ "/metalstack.admin.v2.NetworkService/RemoveExternalMembers": true,
+ "/metalstack.admin.v2.NetworkService/Update": true,
+ "/metalstack.admin.v2.PartitionService/Capacity": false,
+ "/metalstack.admin.v2.PartitionService/Create": true,
+ "/metalstack.admin.v2.PartitionService/Delete": true,
+ "/metalstack.admin.v2.PartitionService/Update": true,
+ "/metalstack.admin.v2.ProjectService/List": false,
+ "/metalstack.admin.v2.SizeImageConstraintService/Create": true,
+ "/metalstack.admin.v2.SizeImageConstraintService/Delete": true,
+ "/metalstack.admin.v2.SizeImageConstraintService/Get": false,
+ "/metalstack.admin.v2.SizeImageConstraintService/List": false,
+ "/metalstack.admin.v2.SizeImageConstraintService/Update": true,
+ "/metalstack.admin.v2.SizeReservationService/Create": true,
+ "/metalstack.admin.v2.SizeReservationService/Delete": true,
+ "/metalstack.admin.v2.SizeReservationService/List": false,
+ "/metalstack.admin.v2.SizeReservationService/Update": true,
+ "/metalstack.admin.v2.SizeService/Create": true,
+ "/metalstack.admin.v2.SizeService/Delete": true,
+ "/metalstack.admin.v2.SizeService/Update": true,
+ "/metalstack.admin.v2.SwitchService/ConnectedMachines": false,
+ "/metalstack.admin.v2.SwitchService/Delete": true,
+ "/metalstack.admin.v2.SwitchService/Get": false,
+ "/metalstack.admin.v2.SwitchService/List": false,
+ "/metalstack.admin.v2.SwitchService/Migrate": true,
+ "/metalstack.admin.v2.SwitchService/Port": true,
+ "/metalstack.admin.v2.SwitchService/Update": true,
+ "/metalstack.admin.v2.TaskService/Delete": true,
+ "/metalstack.admin.v2.TaskService/Get": true,
+ "/metalstack.admin.v2.TaskService/List": true,
+ "/metalstack.admin.v2.TaskService/Queues": true,
+ "/metalstack.admin.v2.TenantService/AddMember": true,
+ "/metalstack.admin.v2.TenantService/Create": true,
+ "/metalstack.admin.v2.TenantService/List": true,
+ "/metalstack.admin.v2.TenantService/RemoveMember": true,
+ "/metalstack.admin.v2.TokenService/Create": true,
+ "/metalstack.admin.v2.TokenService/List": true,
+ "/metalstack.admin.v2.TokenService/Revoke": true,
+ "/metalstack.admin.v2.VPNService/AuthKey": true,
+ "/metalstack.admin.v2.VPNService/ListNodes": true,
+ "/metalstack.api.v2.AuditService/Get": false,
+ "/metalstack.api.v2.AuditService/List": false,
+ "/metalstack.api.v2.FilesystemService/Get": false,
+ "/metalstack.api.v2.FilesystemService/List": false,
+ "/metalstack.api.v2.HealthService/Get": false,
+ "/metalstack.api.v2.IPService/Create": true,
+ "/metalstack.api.v2.IPService/Delete": true,
+ "/metalstack.api.v2.IPService/Get": false,
+ "/metalstack.api.v2.IPService/List": false,
+ "/metalstack.api.v2.IPService/Update": true,
+ "/metalstack.api.v2.ImageService/Get": false,
+ "/metalstack.api.v2.ImageService/Latest": false,
+ "/metalstack.api.v2.ImageService/List": false,
+ "/metalstack.api.v2.MachineService/BMCCommand": true,
+ "/metalstack.api.v2.MachineService/Create": true,
+ "/metalstack.api.v2.MachineService/Delete": true,
+ "/metalstack.api.v2.MachineService/Get": false,
+ "/metalstack.api.v2.MachineService/GetBMC": true,
+ "/metalstack.api.v2.MachineService/List": false,
+ "/metalstack.api.v2.MachineService/Update": true,
+ "/metalstack.api.v2.MethodService/List": true,
+ "/metalstack.api.v2.MethodService/TokenScopedList": true,
+ "/metalstack.api.v2.NetworkService/Create": true,
+ "/metalstack.api.v2.NetworkService/Delete": true,
+ "/metalstack.api.v2.NetworkService/Get": false,
+ "/metalstack.api.v2.NetworkService/List": false,
+ "/metalstack.api.v2.NetworkService/ListBaseNetworks": false,
+ "/metalstack.api.v2.NetworkService/Update": true,
+ "/metalstack.api.v2.PartitionService/Get": false,
+ "/metalstack.api.v2.PartitionService/List": false,
+ "/metalstack.api.v2.ProjectService/AddMember": true,
+ "/metalstack.api.v2.ProjectService/Create": true,
+ "/metalstack.api.v2.ProjectService/Delete": true,
+ "/metalstack.api.v2.ProjectService/Get": false,
+ "/metalstack.api.v2.ProjectService/Invite": true,
+ "/metalstack.api.v2.ProjectService/InviteAccept": true,
+ "/metalstack.api.v2.ProjectService/InviteDelete": true,
+ "/metalstack.api.v2.ProjectService/InviteGet": false,
+ "/metalstack.api.v2.ProjectService/InvitesList": false,
+ "/metalstack.api.v2.ProjectService/Leave": true,
+ "/metalstack.api.v2.ProjectService/List": false,
+ "/metalstack.api.v2.ProjectService/RemoveMember": true,
+ "/metalstack.api.v2.ProjectService/Update": true,
+ "/metalstack.api.v2.ProjectService/UpdateMember": true,
+ "/metalstack.api.v2.SizeImageConstraintService/Try": false,
+ "/metalstack.api.v2.SizeReservationService/Get": false,
+ "/metalstack.api.v2.SizeReservationService/List": false,
+ "/metalstack.api.v2.SizeService/Get": false,
+ "/metalstack.api.v2.SizeService/List": false,
+ "/metalstack.api.v2.TenantService/AddMember": true,
+ "/metalstack.api.v2.TenantService/Create": true,
+ "/metalstack.api.v2.TenantService/Delete": true,
+ "/metalstack.api.v2.TenantService/Get": false,
+ "/metalstack.api.v2.TenantService/Invite": true,
+ "/metalstack.api.v2.TenantService/InviteAccept": true,
+ "/metalstack.api.v2.TenantService/InviteDelete": true,
+ "/metalstack.api.v2.TenantService/InviteGet": false,
+ "/metalstack.api.v2.TenantService/InvitesList": false,
+ "/metalstack.api.v2.TenantService/Leave": true,
+ "/metalstack.api.v2.TenantService/List": false,
+ "/metalstack.api.v2.TenantService/RemoveMember": true,
+ "/metalstack.api.v2.TenantService/Update": true,
+ "/metalstack.api.v2.TenantService/UpdateMember": true,
+ "/metalstack.api.v2.TokenService/Create": true,
+ "/metalstack.api.v2.TokenService/Get": true,
+ "/metalstack.api.v2.TokenService/List": true,
+ "/metalstack.api.v2.TokenService/Refresh": true,
+ "/metalstack.api.v2.TokenService/Revoke": true,
+ "/metalstack.api.v2.TokenService/Update": true,
+ "/metalstack.api.v2.UserService/Get": true,
+ "/metalstack.api.v2.VersionService/Get": false,
+ "/metalstack.infra.v2.BMCService/BMCCommandDone": true,
+ "/metalstack.infra.v2.BMCService/UpdateBMCInfo": false,
+ "/metalstack.infra.v2.BMCService/WaitForBMCCommand": false,
+ "/metalstack.infra.v2.BootService/Boot": false,
+ "/metalstack.infra.v2.BootService/Dhcp": false,
+ "/metalstack.infra.v2.BootService/InstallationSucceeded": false,
+ "/metalstack.infra.v2.BootService/Register": false,
+ "/metalstack.infra.v2.BootService/SuperUserPassword": false,
+ "/metalstack.infra.v2.BootService/Wait": false,
+ "/metalstack.infra.v2.ComponentService/Ping": false,
+ "/metalstack.infra.v2.EventService/Send": false,
+ "/metalstack.infra.v2.SwitchService/Get": false,
+ "/metalstack.infra.v2.SwitchService/Heartbeat": false,
+ "/metalstack.infra.v2.SwitchService/Register": false,
},
}
}
diff --git a/js/metalstack/admin/v2/network_pb.d.ts b/js/metalstack/admin/v2/network_pb.d.ts
index 6a911de3..69abe427 100644
--- a/js/metalstack/admin/v2/network_pb.d.ts
+++ b/js/metalstack/admin/v2/network_pb.d.ts
@@ -304,9 +304,9 @@ export declare const NetworkServiceListExternalMembersRequestSchema: GenMessage<
/**
* NetworkServiceAddExternalMemberRequest is the request payload for adding an external member to a network.
*
- * @generated from message metalstack.admin.v2.NetworkServiceAddExternalMemberRequest
+ * @generated from message metalstack.admin.v2.NetworkServiceAddExternalMembersRequest
*/
-export type NetworkServiceAddExternalMemberRequest = Message<"metalstack.admin.v2.NetworkServiceAddExternalMemberRequest"> & {
+export type NetworkServiceAddExternalMembersRequest = Message<"metalstack.admin.v2.NetworkServiceAddExternalMembersRequest"> & {
/**
* Network to add the member to.
*
@@ -322,16 +322,16 @@ export type NetworkServiceAddExternalMemberRequest = Message<"metalstack.admin.v
switchPorts: ExternalNetworkMember[];
};
/**
- * Describes the message metalstack.admin.v2.NetworkServiceAddExternalMemberRequest.
- * Use `create(NetworkServiceAddExternalMemberRequestSchema)` to create a new message.
+ * Describes the message metalstack.admin.v2.NetworkServiceAddExternalMembersRequest.
+ * Use `create(NetworkServiceAddExternalMembersRequestSchema)` to create a new message.
*/
-export declare const NetworkServiceAddExternalMemberRequestSchema: GenMessage;
+export declare const NetworkServiceAddExternalMembersRequestSchema: GenMessage;
/**
* NetworkServiceRemoveExternalMemberRequest is the request payload for removing an external member from a network.
*
- * @generated from message metalstack.admin.v2.NetworkServiceRemoveExternalMemberRequest
+ * @generated from message metalstack.admin.v2.NetworkServiceRemoveExternalMembersRequest
*/
-export type NetworkServiceRemoveExternalMemberRequest = Message<"metalstack.admin.v2.NetworkServiceRemoveExternalMemberRequest"> & {
+export type NetworkServiceRemoveExternalMembersRequest = Message<"metalstack.admin.v2.NetworkServiceRemoveExternalMembersRequest"> & {
/**
* Network to remove the member from.
*
@@ -346,10 +346,10 @@ export type NetworkServiceRemoveExternalMemberRequest = Message<"metalstack.admi
switchPorts: ExternalNetworkMember[];
};
/**
- * Describes the message metalstack.admin.v2.NetworkServiceRemoveExternalMemberRequest.
- * Use `create(NetworkServiceRemoveExternalMemberRequestSchema)` to create a new message.
+ * Describes the message metalstack.admin.v2.NetworkServiceRemoveExternalMembersRequest.
+ * Use `create(NetworkServiceRemoveExternalMembersRequestSchema)` to create a new message.
*/
-export declare const NetworkServiceRemoveExternalMemberRequestSchema: GenMessage;
+export declare const NetworkServiceRemoveExternalMembersRequestSchema: GenMessage;
/**
* NetworkServiceCreateResponse is the response payload for creating a network.
*
@@ -443,9 +443,9 @@ export declare const NetworkServiceListExternalMembersResponseSchema: GenMessage
/**
* NetworkServiceAddExternalMemberResponse is the response payload for adding an external member to a network.
*
- * @generated from message metalstack.admin.v2.NetworkServiceAddExternalMemberResponse
+ * @generated from message metalstack.admin.v2.NetworkServiceAddExternalMembersResponse
*/
-export type NetworkServiceAddExternalMemberResponse = Message<"metalstack.admin.v2.NetworkServiceAddExternalMemberResponse"> & {
+export type NetworkServiceAddExternalMembersResponse = Message<"metalstack.admin.v2.NetworkServiceAddExternalMembersResponse"> & {
/**
* Switch contains the updated switch.
*
@@ -454,16 +454,16 @@ export type NetworkServiceAddExternalMemberResponse = Message<"metalstack.admin.
switch?: Switch | undefined;
};
/**
- * Describes the message metalstack.admin.v2.NetworkServiceAddExternalMemberResponse.
- * Use `create(NetworkServiceAddExternalMemberResponseSchema)` to create a new message.
+ * Describes the message metalstack.admin.v2.NetworkServiceAddExternalMembersResponse.
+ * Use `create(NetworkServiceAddExternalMembersResponseSchema)` to create a new message.
*/
-export declare const NetworkServiceAddExternalMemberResponseSchema: GenMessage;
+export declare const NetworkServiceAddExternalMembersResponseSchema: GenMessage;
/**
* NetworkServiceRemoveExternalMemberResponse is the response payload for removing an external member from a network.
*
- * @generated from message metalstack.admin.v2.NetworkServiceRemoveExternalMemberResponse
+ * @generated from message metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse
*/
-export type NetworkServiceRemoveExternalMemberResponse = Message<"metalstack.admin.v2.NetworkServiceRemoveExternalMemberResponse"> & {
+export type NetworkServiceRemoveExternalMembersResponse = Message<"metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse"> & {
/**
* Switch contains the updated switch.
*
@@ -472,10 +472,10 @@ export type NetworkServiceRemoveExternalMemberResponse = Message<"metalstack.adm
switch?: Switch | undefined;
};
/**
- * Describes the message metalstack.admin.v2.NetworkServiceRemoveExternalMemberResponse.
- * Use `create(NetworkServiceRemoveExternalMemberResponseSchema)` to create a new message.
+ * Describes the message metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse.
+ * Use `create(NetworkServiceRemoveExternalMembersResponseSchema)` to create a new message.
*/
-export declare const NetworkServiceRemoveExternalMemberResponseSchema: GenMessage;
+export declare const NetworkServiceRemoveExternalMembersResponseSchema: GenMessage;
/**
* NetworkService provides network management operations.
*
@@ -545,21 +545,21 @@ export declare const NetworkService: GenService<{
/**
* Adds an external member to a network.
*
- * @generated from rpc metalstack.admin.v2.NetworkService.AddExternalMember
+ * @generated from rpc metalstack.admin.v2.NetworkService.AddExternalMembers
*/
- addExternalMember: {
+ addExternalMembers: {
methodKind: "unary";
- input: typeof NetworkServiceAddExternalMemberRequestSchema;
- output: typeof NetworkServiceAddExternalMemberResponseSchema;
+ input: typeof NetworkServiceAddExternalMembersRequestSchema;
+ output: typeof NetworkServiceAddExternalMembersResponseSchema;
};
/**
* Removes an external member from a network.
*
- * @generated from rpc metalstack.admin.v2.NetworkService.RemoveExternalMember
+ * @generated from rpc metalstack.admin.v2.NetworkService.RemoveExternalMembers
*/
- removeExternalMember: {
+ removeExternalMembers: {
methodKind: "unary";
- input: typeof NetworkServiceRemoveExternalMemberRequestSchema;
- output: typeof NetworkServiceRemoveExternalMemberResponseSchema;
+ input: typeof NetworkServiceRemoveExternalMembersRequestSchema;
+ output: typeof NetworkServiceRemoveExternalMembersResponseSchema;
};
}>;
diff --git a/js/metalstack/admin/v2/network_pb.js b/js/metalstack/admin/v2/network_pb.js
index d459084d..afe9d17b 100644
--- a/js/metalstack/admin/v2/network_pb.js
+++ b/js/metalstack/admin/v2/network_pb.js
@@ -10,7 +10,7 @@ import { file_metalstack_api_v2_switch } from "../../api/v2/switch_pb";
/**
* Describes the file metalstack/admin/v2/network.proto.
*/
-export const file_metalstack_admin_v2_network = /*@__PURE__*/ fileDesc("CiFtZXRhbHN0YWNrL2FkbWluL3YyL25ldHdvcmsucHJvdG8SE21ldGFsc3RhY2suYWRtaW4udjIiMwoYTmV0d29ya1NlcnZpY2VHZXRSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECASJIChlOZXR3b3JrU2VydmljZUdldFJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrItAHChtOZXR3b3JrU2VydmljZUNyZWF0ZVJlcXVlc3QSHAoCaWQYASABKAlCC7pICHIGwLOusQIBSACIAQESHgoEbmFtZRgCIAEoCUILukgIcgbAs66xAgFIAYgBARIlCgtkZXNjcmlwdGlvbhgDIAEoCUILukgIcgbIs66xAgFIAogBARIjCglwYXJ0aXRpb24YBCABKAlCC7pICHIG0LOusQIBSAOIAQESHgoHcHJvamVjdBgFIAEoCUIIukgFcgOwAQFIBIgBARI2CgR0eXBlGAYgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1R5cGVCCLpIBYIBAhABEi4KBmxhYmVscxgHIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVsc0gFiAEBEh4KCHByZWZpeGVzGAggAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCSADKAlCDLpICZIBBriks7ECARJJChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCiABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aBJFChdtaW5fY2hpbGRfcHJlZml4X2xlbmd0aBgLIAEoCzIkLm1ldGFsc3RhY2suYXBpLnYyLkNoaWxkUHJlZml4TGVuZ3RoEjsKCG5hdF90eXBlGAwgASgOMhoubWV0YWxzdGFjay5hcGkudjIuTkFUVHlwZUIIukgFggECEAFIBogBARIQCgN2cmYYDSABKA1IB4gBARIoCg5wYXJlbnRfbmV0d29yaxgOIAEoCUILukgIcgbAs66xAgFICIgBARIyChxhZGRpdGlvbmFsX2Fubm91bmNhYmxlX2NpZHJzGA8gAygJQgy6SAmSAQa4pLOxAgESOQoGbGVuZ3RoGBAgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhICYgBARJOCg5hZGRyZXNzX2ZhbWlseRgRIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgKiAEBQgUKA19pZEIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CDAoKX3BhcnRpdGlvbkIKCghfcHJvamVjdEIJCgdfbGFiZWxzQgsKCV9uYXRfdHlwZUIGCgRfdnJmQhEKD19wYXJlbnRfbmV0d29ya0IJCgdfbGVuZ3RoQhEKD19hZGRyZXNzX2ZhbWlseSLEBQobTmV0d29ya1NlcnZpY2VVcGRhdGVSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECARI6Cgt1cGRhdGVfbWV0YRgCIAEoCzIdLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZU1ldGFCBrpIA8gBARIeCgRuYW1lGAMgASgJQgu6SAhyBsCzrrECAUgAiAEBEiUKC2Rlc2NyaXB0aW9uGAQgASgJQgu6SAhyBsizrrECAUgBiAEBEjQKBmxhYmVscxgFIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZUxhYmVsc0gCiAEBEh4KCHByZWZpeGVzGAYgAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYByADKAlCDLpICZIBBriks7ECARJOChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCCABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aEgDiAEBEkoKF21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoGAkgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhIBIgBARI7CghuYXRfdHlwZRgKIAEoDjIaLm1ldGFsc3RhY2suYXBpLnYyLk5BVFR5cGVCCLpIBYIBAhABSAWIAQESMgocYWRkaXRpb25hbF9hbm5vdW5jYWJsZV9jaWRycxgLIAMoCUIMukgJkgEGuKSzsQIBEg0KBWZvcmNlGAwgASgIQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIJCgdfbGFiZWxzQh4KHF9kZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGhCGgoYX21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoQgsKCV9uYXRfdHlwZSI2ChtOZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBIksKGU5ldHdvcmtTZXJ2aWNlTGlzdFJlcXVlc3QSLgoFcXVlcnkYASABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrUXVlcnkihgEKKE5ldHdvcmtTZXJ2aWNlTGlzdEV4dGVybmFsTWVtYmVyc1JlcXVlc3QSHAoHbmV0d29yaxgBIAEoCUILukgIcgbAs66xAgESPAoFcXVlcnkYAiABKAsyLS5tZXRhbHN0YWNrLmFwaS52Mi5FeHRlcm5hbE5ldHdvcmtNZW1iZXJRdWVyeSKQAQomTmV0d29ya1NlcnZpY2VBZGRFeHRlcm5hbE1lbWJlclJlcXVlc3QSHAoHbmV0d29yaxgBIAEoCUILukgIcgbAs66xAgESSAoMc3dpdGNoX3BvcnRzGAIgAygLMigubWV0YWxzdGFjay5hcGkudjIuRXh0ZXJuYWxOZXR3b3JrTWVtYmVyQgi6SAWSAQIQCCKTAQopTmV0d29ya1NlcnZpY2VSZW1vdmVFeHRlcm5hbE1lbWJlclJlcXVlc3QSHAoHbmV0d29yaxgBIAEoCUILukgIcgbAs66xAgESSAoMc3dpdGNoX3BvcnRzGAIgAygLMigubWV0YWxzdGFjay5hcGkudjIuRXh0ZXJuYWxOZXR3b3JrTWVtYmVyQgi6SAWSAQIQCCJLChxOZXR3b3JrU2VydmljZUNyZWF0ZVJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrIksKHE5ldHdvcmtTZXJ2aWNlVXBkYXRlUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsiSwocTmV0d29ya1NlcnZpY2VEZWxldGVSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJKChpOZXR3b3JrU2VydmljZUxpc3RSZXNwb25zZRIsCghuZXR3b3JrcxgBIAMoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsiZgopTmV0d29ya1NlcnZpY2VMaXN0RXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2USOQoHbWVtYmVycxgBIAMoCzIoLm1ldGFsc3RhY2suYXBpLnYyLkV4dGVybmFsTmV0d29ya01lbWJlciJUCidOZXR3b3JrU2VydmljZUFkZEV4dGVybmFsTWVtYmVyUmVzcG9uc2USKQoGc3dpdGNoGAEgASgLMhkubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoIlcKKk5ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJSZXNwb25zZRIpCgZzd2l0Y2gYASABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2gyyQgKDk5ldHdvcmtTZXJ2aWNlEnAKA0dldBItLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VHZXRSZXF1ZXN0Gi4ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUdldFJlc3BvbnNlIgrS8xgCAQLg8xgCEngKBkNyZWF0ZRIwLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VDcmVhdGVSZXF1ZXN0GjEubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUNyZWF0ZVJlc3BvbnNlIgnS8xgBAeDzGAESeAoGVXBkYXRlEjAubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZVVwZGF0ZVJlcXVlc3QaMS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlVXBkYXRlUmVzcG9uc2UiCdLzGAEB4PMYARJ4CgZEZWxldGUSMC5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVxdWVzdBoxLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VEZWxldGVSZXNwb25zZSIJ0vMYAQHg8xgBEnMKBExpc3QSLi5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdFJlcXVlc3QaLy5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlIgrS8xgCAQLg8xgCEqABChNMaXN0RXh0ZXJuYWxNZW1iZXJzEj0ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUxpc3RFeHRlcm5hbE1lbWJlcnNSZXF1ZXN0Gj4ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUxpc3RFeHRlcm5hbE1lbWJlcnNSZXNwb25zZSIK0vMYAgEC4PMYAhKZAQoRQWRkRXh0ZXJuYWxNZW1iZXISOy5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlQWRkRXh0ZXJuYWxNZW1iZXJSZXF1ZXN0GjwubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUFkZEV4dGVybmFsTWVtYmVyUmVzcG9uc2UiCdLzGAEB4PMYARKiAQoUUmVtb3ZlRXh0ZXJuYWxNZW1iZXISPi5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJSZXF1ZXN0Gj8ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZVJlbW92ZUV4dGVybmFsTWVtYmVyUmVzcG9uc2UiCdLzGAEB4PMYAULQAQoXY29tLm1ldGFsc3RhY2suYWRtaW4udjJCDE5ldHdvcmtQcm90b1ABWjlnaXRodWIuY29tL21ldGFsLXN0YWNrL2FwaS9nby9tZXRhbHN0YWNrL2FkbWluL3YyO2FkbWludjKiAgNNQViqAhNNZXRhbHN0YWNrLkFkbWluLlYyygITTWV0YWxzdGFja1xBZG1pblxWMuICH01ldGFsc3RhY2tcQWRtaW5cVjJcR1BCTWV0YWRhdGHqAhVNZXRhbHN0YWNrOjpBZG1pbjo6VjJiBnByb3RvMw", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_network, file_metalstack_api_v2_predefined_rules, file_metalstack_api_v2_switch]);
+export const file_metalstack_admin_v2_network = /*@__PURE__*/ fileDesc("CiFtZXRhbHN0YWNrL2FkbWluL3YyL25ldHdvcmsucHJvdG8SE21ldGFsc3RhY2suYWRtaW4udjIiMwoYTmV0d29ya1NlcnZpY2VHZXRSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECASJIChlOZXR3b3JrU2VydmljZUdldFJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrItAHChtOZXR3b3JrU2VydmljZUNyZWF0ZVJlcXVlc3QSHAoCaWQYASABKAlCC7pICHIGwLOusQIBSACIAQESHgoEbmFtZRgCIAEoCUILukgIcgbAs66xAgFIAYgBARIlCgtkZXNjcmlwdGlvbhgDIAEoCUILukgIcgbIs66xAgFIAogBARIjCglwYXJ0aXRpb24YBCABKAlCC7pICHIG0LOusQIBSAOIAQESHgoHcHJvamVjdBgFIAEoCUIIukgFcgOwAQFIBIgBARI2CgR0eXBlGAYgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1R5cGVCCLpIBYIBAhABEi4KBmxhYmVscxgHIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVsc0gFiAEBEh4KCHByZWZpeGVzGAggAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCSADKAlCDLpICZIBBriks7ECARJJChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCiABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aBJFChdtaW5fY2hpbGRfcHJlZml4X2xlbmd0aBgLIAEoCzIkLm1ldGFsc3RhY2suYXBpLnYyLkNoaWxkUHJlZml4TGVuZ3RoEjsKCG5hdF90eXBlGAwgASgOMhoubWV0YWxzdGFjay5hcGkudjIuTkFUVHlwZUIIukgFggECEAFIBogBARIQCgN2cmYYDSABKA1IB4gBARIoCg5wYXJlbnRfbmV0d29yaxgOIAEoCUILukgIcgbAs66xAgFICIgBARIyChxhZGRpdGlvbmFsX2Fubm91bmNhYmxlX2NpZHJzGA8gAygJQgy6SAmSAQa4pLOxAgESOQoGbGVuZ3RoGBAgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhICYgBARJOCg5hZGRyZXNzX2ZhbWlseRgRIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgKiAEBQgUKA19pZEIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CDAoKX3BhcnRpdGlvbkIKCghfcHJvamVjdEIJCgdfbGFiZWxzQgsKCV9uYXRfdHlwZUIGCgRfdnJmQhEKD19wYXJlbnRfbmV0d29ya0IJCgdfbGVuZ3RoQhEKD19hZGRyZXNzX2ZhbWlseSLEBQobTmV0d29ya1NlcnZpY2VVcGRhdGVSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECARI6Cgt1cGRhdGVfbWV0YRgCIAEoCzIdLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZU1ldGFCBrpIA8gBARIeCgRuYW1lGAMgASgJQgu6SAhyBsCzrrECAUgAiAEBEiUKC2Rlc2NyaXB0aW9uGAQgASgJQgu6SAhyBsizrrECAUgBiAEBEjQKBmxhYmVscxgFIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZUxhYmVsc0gCiAEBEh4KCHByZWZpeGVzGAYgAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYByADKAlCDLpICZIBBriks7ECARJOChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCCABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aEgDiAEBEkoKF21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoGAkgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhIBIgBARI7CghuYXRfdHlwZRgKIAEoDjIaLm1ldGFsc3RhY2suYXBpLnYyLk5BVFR5cGVCCLpIBYIBAhABSAWIAQESMgocYWRkaXRpb25hbF9hbm5vdW5jYWJsZV9jaWRycxgLIAMoCUIMukgJkgEGuKSzsQIBEg0KBWZvcmNlGAwgASgIQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIJCgdfbGFiZWxzQh4KHF9kZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGhCGgoYX21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoQgsKCV9uYXRfdHlwZSI2ChtOZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBIksKGU5ldHdvcmtTZXJ2aWNlTGlzdFJlcXVlc3QSLgoFcXVlcnkYASABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrUXVlcnkihgEKKE5ldHdvcmtTZXJ2aWNlTGlzdEV4dGVybmFsTWVtYmVyc1JlcXVlc3QSHAoHbmV0d29yaxgBIAEoCUILukgIcgbAs66xAgESPAoFcXVlcnkYAiABKAsyLS5tZXRhbHN0YWNrLmFwaS52Mi5FeHRlcm5hbE5ldHdvcmtNZW1iZXJRdWVyeSKRAQonTmV0d29ya1NlcnZpY2VBZGRFeHRlcm5hbE1lbWJlcnNSZXF1ZXN0EhwKB25ldHdvcmsYASABKAlCC7pICHIGwLOusQIBEkgKDHN3aXRjaF9wb3J0cxgCIAMoCzIoLm1ldGFsc3RhY2suYXBpLnYyLkV4dGVybmFsTmV0d29ya01lbWJlckIIukgFkgECEAgilAEKKk5ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzUmVxdWVzdBIcCgduZXR3b3JrGAEgASgJQgu6SAhyBsCzrrECARJICgxzd2l0Y2hfcG9ydHMYAiADKAsyKC5tZXRhbHN0YWNrLmFwaS52Mi5FeHRlcm5hbE5ldHdvcmtNZW1iZXJCCLpIBZIBAhAIIksKHE5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsiSwocTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJLChxOZXR3b3JrU2VydmljZURlbGV0ZVJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrIkoKGk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJmCilOZXR3b3JrU2VydmljZUxpc3RFeHRlcm5hbE1lbWJlcnNSZXNwb25zZRI5CgdtZW1iZXJzGAEgAygLMigubWV0YWxzdGFjay5hcGkudjIuRXh0ZXJuYWxOZXR3b3JrTWVtYmVyIlUKKE5ldHdvcmtTZXJ2aWNlQWRkRXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2USKQoGc3dpdGNoGAEgASgLMhkubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoIlgKK05ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2USKQoGc3dpdGNoGAEgASgLMhkubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoMs8ICg5OZXR3b3JrU2VydmljZRJwCgNHZXQSLS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlR2V0UmVxdWVzdBouLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VHZXRSZXNwb25zZSIK0vMYAgEC4PMYAhJ4CgZDcmVhdGUSMC5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVxdWVzdBoxLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VDcmVhdGVSZXNwb25zZSIJ0vMYAQHg8xgBEngKBlVwZGF0ZRIwLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VVcGRhdGVSZXF1ZXN0GjEubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZVVwZGF0ZVJlc3BvbnNlIgnS8xgBAeDzGAESeAoGRGVsZXRlEjAubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QaMS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVzcG9uc2UiCdLzGAEB4PMYARJzCgRMaXN0Ei4ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUxpc3RSZXF1ZXN0Gi8ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUxpc3RSZXNwb25zZSIK0vMYAgEC4PMYAhKgAQoTTGlzdEV4dGVybmFsTWVtYmVycxI9Lm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VMaXN0RXh0ZXJuYWxNZW1iZXJzUmVxdWVzdBo+Lm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VMaXN0RXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2UiCtLzGAIBAuDzGAISnAEKEkFkZEV4dGVybmFsTWVtYmVycxI8Lm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VBZGRFeHRlcm5hbE1lbWJlcnNSZXF1ZXN0Gj0ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUFkZEV4dGVybmFsTWVtYmVyc1Jlc3BvbnNlIgnS8xgBAeDzGAESpQEKFVJlbW92ZUV4dGVybmFsTWVtYmVycxI/Lm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VSZW1vdmVFeHRlcm5hbE1lbWJlcnNSZXF1ZXN0GkAubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZVJlbW92ZUV4dGVybmFsTWVtYmVyc1Jlc3BvbnNlIgnS8xgBAeDzGAFC0AEKF2NvbS5tZXRhbHN0YWNrLmFkbWluLnYyQgxOZXR3b3JrUHJvdG9QAVo5Z2l0aHViLmNvbS9tZXRhbC1zdGFjay9hcGkvZ28vbWV0YWxzdGFjay9hZG1pbi92MjthZG1pbnYyogIDTUFYqgITTWV0YWxzdGFjay5BZG1pbi5WMsoCE01ldGFsc3RhY2tcQWRtaW5cVjLiAh9NZXRhbHN0YWNrXEFkbWluXFYyXEdQQk1ldGFkYXRh6gIVTWV0YWxzdGFjazo6QWRtaW46OlYyYgZwcm90bzM", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_network, file_metalstack_api_v2_predefined_rules, file_metalstack_api_v2_switch]);
/**
* Describes the message metalstack.admin.v2.NetworkServiceGetRequest.
* Use `create(NetworkServiceGetRequestSchema)` to create a new message.
@@ -47,15 +47,15 @@ export const NetworkServiceListRequestSchema = /*@__PURE__*/ messageDesc(file_me
*/
export const NetworkServiceListExternalMembersRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_admin_v2_network, 6);
/**
- * Describes the message metalstack.admin.v2.NetworkServiceAddExternalMemberRequest.
- * Use `create(NetworkServiceAddExternalMemberRequestSchema)` to create a new message.
+ * Describes the message metalstack.admin.v2.NetworkServiceAddExternalMembersRequest.
+ * Use `create(NetworkServiceAddExternalMembersRequestSchema)` to create a new message.
*/
-export const NetworkServiceAddExternalMemberRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_admin_v2_network, 7);
+export const NetworkServiceAddExternalMembersRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_admin_v2_network, 7);
/**
- * Describes the message metalstack.admin.v2.NetworkServiceRemoveExternalMemberRequest.
- * Use `create(NetworkServiceRemoveExternalMemberRequestSchema)` to create a new message.
+ * Describes the message metalstack.admin.v2.NetworkServiceRemoveExternalMembersRequest.
+ * Use `create(NetworkServiceRemoveExternalMembersRequestSchema)` to create a new message.
*/
-export const NetworkServiceRemoveExternalMemberRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_admin_v2_network, 8);
+export const NetworkServiceRemoveExternalMembersRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_admin_v2_network, 8);
/**
* Describes the message metalstack.admin.v2.NetworkServiceCreateResponse.
* Use `create(NetworkServiceCreateResponseSchema)` to create a new message.
@@ -82,15 +82,15 @@ export const NetworkServiceListResponseSchema = /*@__PURE__*/ messageDesc(file_m
*/
export const NetworkServiceListExternalMembersResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_admin_v2_network, 13);
/**
- * Describes the message metalstack.admin.v2.NetworkServiceAddExternalMemberResponse.
- * Use `create(NetworkServiceAddExternalMemberResponseSchema)` to create a new message.
+ * Describes the message metalstack.admin.v2.NetworkServiceAddExternalMembersResponse.
+ * Use `create(NetworkServiceAddExternalMembersResponseSchema)` to create a new message.
*/
-export const NetworkServiceAddExternalMemberResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_admin_v2_network, 14);
+export const NetworkServiceAddExternalMembersResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_admin_v2_network, 14);
/**
- * Describes the message metalstack.admin.v2.NetworkServiceRemoveExternalMemberResponse.
- * Use `create(NetworkServiceRemoveExternalMemberResponseSchema)` to create a new message.
+ * Describes the message metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse.
+ * Use `create(NetworkServiceRemoveExternalMembersResponseSchema)` to create a new message.
*/
-export const NetworkServiceRemoveExternalMemberResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_admin_v2_network, 15);
+export const NetworkServiceRemoveExternalMembersResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_admin_v2_network, 15);
/**
* NetworkService provides network management operations.
*
diff --git a/js/metalstack/admin/v2/network_pb.ts b/js/metalstack/admin/v2/network_pb.ts
index d7df24a2..1853919f 100644
--- a/js/metalstack/admin/v2/network_pb.ts
+++ b/js/metalstack/admin/v2/network_pb.ts
@@ -18,7 +18,7 @@ import type { Message } from "@bufbuild/protobuf";
* Describes the file metalstack/admin/v2/network.proto.
*/
export const file_metalstack_admin_v2_network: GenFile = /*@__PURE__*/
- fileDesc("CiFtZXRhbHN0YWNrL2FkbWluL3YyL25ldHdvcmsucHJvdG8SE21ldGFsc3RhY2suYWRtaW4udjIiMwoYTmV0d29ya1NlcnZpY2VHZXRSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECASJIChlOZXR3b3JrU2VydmljZUdldFJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrItAHChtOZXR3b3JrU2VydmljZUNyZWF0ZVJlcXVlc3QSHAoCaWQYASABKAlCC7pICHIGwLOusQIBSACIAQESHgoEbmFtZRgCIAEoCUILukgIcgbAs66xAgFIAYgBARIlCgtkZXNjcmlwdGlvbhgDIAEoCUILukgIcgbIs66xAgFIAogBARIjCglwYXJ0aXRpb24YBCABKAlCC7pICHIG0LOusQIBSAOIAQESHgoHcHJvamVjdBgFIAEoCUIIukgFcgOwAQFIBIgBARI2CgR0eXBlGAYgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1R5cGVCCLpIBYIBAhABEi4KBmxhYmVscxgHIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVsc0gFiAEBEh4KCHByZWZpeGVzGAggAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCSADKAlCDLpICZIBBriks7ECARJJChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCiABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aBJFChdtaW5fY2hpbGRfcHJlZml4X2xlbmd0aBgLIAEoCzIkLm1ldGFsc3RhY2suYXBpLnYyLkNoaWxkUHJlZml4TGVuZ3RoEjsKCG5hdF90eXBlGAwgASgOMhoubWV0YWxzdGFjay5hcGkudjIuTkFUVHlwZUIIukgFggECEAFIBogBARIQCgN2cmYYDSABKA1IB4gBARIoCg5wYXJlbnRfbmV0d29yaxgOIAEoCUILukgIcgbAs66xAgFICIgBARIyChxhZGRpdGlvbmFsX2Fubm91bmNhYmxlX2NpZHJzGA8gAygJQgy6SAmSAQa4pLOxAgESOQoGbGVuZ3RoGBAgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhICYgBARJOCg5hZGRyZXNzX2ZhbWlseRgRIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgKiAEBQgUKA19pZEIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CDAoKX3BhcnRpdGlvbkIKCghfcHJvamVjdEIJCgdfbGFiZWxzQgsKCV9uYXRfdHlwZUIGCgRfdnJmQhEKD19wYXJlbnRfbmV0d29ya0IJCgdfbGVuZ3RoQhEKD19hZGRyZXNzX2ZhbWlseSLEBQobTmV0d29ya1NlcnZpY2VVcGRhdGVSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECARI6Cgt1cGRhdGVfbWV0YRgCIAEoCzIdLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZU1ldGFCBrpIA8gBARIeCgRuYW1lGAMgASgJQgu6SAhyBsCzrrECAUgAiAEBEiUKC2Rlc2NyaXB0aW9uGAQgASgJQgu6SAhyBsizrrECAUgBiAEBEjQKBmxhYmVscxgFIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZUxhYmVsc0gCiAEBEh4KCHByZWZpeGVzGAYgAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYByADKAlCDLpICZIBBriks7ECARJOChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCCABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aEgDiAEBEkoKF21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoGAkgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhIBIgBARI7CghuYXRfdHlwZRgKIAEoDjIaLm1ldGFsc3RhY2suYXBpLnYyLk5BVFR5cGVCCLpIBYIBAhABSAWIAQESMgocYWRkaXRpb25hbF9hbm5vdW5jYWJsZV9jaWRycxgLIAMoCUIMukgJkgEGuKSzsQIBEg0KBWZvcmNlGAwgASgIQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIJCgdfbGFiZWxzQh4KHF9kZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGhCGgoYX21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoQgsKCV9uYXRfdHlwZSI2ChtOZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBIksKGU5ldHdvcmtTZXJ2aWNlTGlzdFJlcXVlc3QSLgoFcXVlcnkYASABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrUXVlcnkihgEKKE5ldHdvcmtTZXJ2aWNlTGlzdEV4dGVybmFsTWVtYmVyc1JlcXVlc3QSHAoHbmV0d29yaxgBIAEoCUILukgIcgbAs66xAgESPAoFcXVlcnkYAiABKAsyLS5tZXRhbHN0YWNrLmFwaS52Mi5FeHRlcm5hbE5ldHdvcmtNZW1iZXJRdWVyeSKQAQomTmV0d29ya1NlcnZpY2VBZGRFeHRlcm5hbE1lbWJlclJlcXVlc3QSHAoHbmV0d29yaxgBIAEoCUILukgIcgbAs66xAgESSAoMc3dpdGNoX3BvcnRzGAIgAygLMigubWV0YWxzdGFjay5hcGkudjIuRXh0ZXJuYWxOZXR3b3JrTWVtYmVyQgi6SAWSAQIQCCKTAQopTmV0d29ya1NlcnZpY2VSZW1vdmVFeHRlcm5hbE1lbWJlclJlcXVlc3QSHAoHbmV0d29yaxgBIAEoCUILukgIcgbAs66xAgESSAoMc3dpdGNoX3BvcnRzGAIgAygLMigubWV0YWxzdGFjay5hcGkudjIuRXh0ZXJuYWxOZXR3b3JrTWVtYmVyQgi6SAWSAQIQCCJLChxOZXR3b3JrU2VydmljZUNyZWF0ZVJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrIksKHE5ldHdvcmtTZXJ2aWNlVXBkYXRlUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsiSwocTmV0d29ya1NlcnZpY2VEZWxldGVSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJKChpOZXR3b3JrU2VydmljZUxpc3RSZXNwb25zZRIsCghuZXR3b3JrcxgBIAMoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsiZgopTmV0d29ya1NlcnZpY2VMaXN0RXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2USOQoHbWVtYmVycxgBIAMoCzIoLm1ldGFsc3RhY2suYXBpLnYyLkV4dGVybmFsTmV0d29ya01lbWJlciJUCidOZXR3b3JrU2VydmljZUFkZEV4dGVybmFsTWVtYmVyUmVzcG9uc2USKQoGc3dpdGNoGAEgASgLMhkubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoIlcKKk5ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJSZXNwb25zZRIpCgZzd2l0Y2gYASABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2gyyQgKDk5ldHdvcmtTZXJ2aWNlEnAKA0dldBItLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VHZXRSZXF1ZXN0Gi4ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUdldFJlc3BvbnNlIgrS8xgCAQLg8xgCEngKBkNyZWF0ZRIwLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VDcmVhdGVSZXF1ZXN0GjEubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUNyZWF0ZVJlc3BvbnNlIgnS8xgBAeDzGAESeAoGVXBkYXRlEjAubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZVVwZGF0ZVJlcXVlc3QaMS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlVXBkYXRlUmVzcG9uc2UiCdLzGAEB4PMYARJ4CgZEZWxldGUSMC5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVxdWVzdBoxLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VEZWxldGVSZXNwb25zZSIJ0vMYAQHg8xgBEnMKBExpc3QSLi5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdFJlcXVlc3QaLy5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlIgrS8xgCAQLg8xgCEqABChNMaXN0RXh0ZXJuYWxNZW1iZXJzEj0ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUxpc3RFeHRlcm5hbE1lbWJlcnNSZXF1ZXN0Gj4ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUxpc3RFeHRlcm5hbE1lbWJlcnNSZXNwb25zZSIK0vMYAgEC4PMYAhKZAQoRQWRkRXh0ZXJuYWxNZW1iZXISOy5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlQWRkRXh0ZXJuYWxNZW1iZXJSZXF1ZXN0GjwubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUFkZEV4dGVybmFsTWVtYmVyUmVzcG9uc2UiCdLzGAEB4PMYARKiAQoUUmVtb3ZlRXh0ZXJuYWxNZW1iZXISPi5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJSZXF1ZXN0Gj8ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZVJlbW92ZUV4dGVybmFsTWVtYmVyUmVzcG9uc2UiCdLzGAEB4PMYAULQAQoXY29tLm1ldGFsc3RhY2suYWRtaW4udjJCDE5ldHdvcmtQcm90b1ABWjlnaXRodWIuY29tL21ldGFsLXN0YWNrL2FwaS9nby9tZXRhbHN0YWNrL2FkbWluL3YyO2FkbWludjKiAgNNQViqAhNNZXRhbHN0YWNrLkFkbWluLlYyygITTWV0YWxzdGFja1xBZG1pblxWMuICH01ldGFsc3RhY2tcQWRtaW5cVjJcR1BCTWV0YWRhdGHqAhVNZXRhbHN0YWNrOjpBZG1pbjo6VjJiBnByb3RvMw", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_network, file_metalstack_api_v2_predefined_rules, file_metalstack_api_v2_switch]);
+ fileDesc("CiFtZXRhbHN0YWNrL2FkbWluL3YyL25ldHdvcmsucHJvdG8SE21ldGFsc3RhY2suYWRtaW4udjIiMwoYTmV0d29ya1NlcnZpY2VHZXRSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECASJIChlOZXR3b3JrU2VydmljZUdldFJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrItAHChtOZXR3b3JrU2VydmljZUNyZWF0ZVJlcXVlc3QSHAoCaWQYASABKAlCC7pICHIGwLOusQIBSACIAQESHgoEbmFtZRgCIAEoCUILukgIcgbAs66xAgFIAYgBARIlCgtkZXNjcmlwdGlvbhgDIAEoCUILukgIcgbIs66xAgFIAogBARIjCglwYXJ0aXRpb24YBCABKAlCC7pICHIG0LOusQIBSAOIAQESHgoHcHJvamVjdBgFIAEoCUIIukgFcgOwAQFIBIgBARI2CgR0eXBlGAYgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1R5cGVCCLpIBYIBAhABEi4KBmxhYmVscxgHIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVsc0gFiAEBEh4KCHByZWZpeGVzGAggAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCSADKAlCDLpICZIBBriks7ECARJJChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCiABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aBJFChdtaW5fY2hpbGRfcHJlZml4X2xlbmd0aBgLIAEoCzIkLm1ldGFsc3RhY2suYXBpLnYyLkNoaWxkUHJlZml4TGVuZ3RoEjsKCG5hdF90eXBlGAwgASgOMhoubWV0YWxzdGFjay5hcGkudjIuTkFUVHlwZUIIukgFggECEAFIBogBARIQCgN2cmYYDSABKA1IB4gBARIoCg5wYXJlbnRfbmV0d29yaxgOIAEoCUILukgIcgbAs66xAgFICIgBARIyChxhZGRpdGlvbmFsX2Fubm91bmNhYmxlX2NpZHJzGA8gAygJQgy6SAmSAQa4pLOxAgESOQoGbGVuZ3RoGBAgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhICYgBARJOCg5hZGRyZXNzX2ZhbWlseRgRIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgKiAEBQgUKA19pZEIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CDAoKX3BhcnRpdGlvbkIKCghfcHJvamVjdEIJCgdfbGFiZWxzQgsKCV9uYXRfdHlwZUIGCgRfdnJmQhEKD19wYXJlbnRfbmV0d29ya0IJCgdfbGVuZ3RoQhEKD19hZGRyZXNzX2ZhbWlseSLEBQobTmV0d29ya1NlcnZpY2VVcGRhdGVSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECARI6Cgt1cGRhdGVfbWV0YRgCIAEoCzIdLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZU1ldGFCBrpIA8gBARIeCgRuYW1lGAMgASgJQgu6SAhyBsCzrrECAUgAiAEBEiUKC2Rlc2NyaXB0aW9uGAQgASgJQgu6SAhyBsizrrECAUgBiAEBEjQKBmxhYmVscxgFIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZUxhYmVsc0gCiAEBEh4KCHByZWZpeGVzGAYgAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYByADKAlCDLpICZIBBriks7ECARJOChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCCABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aEgDiAEBEkoKF21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoGAkgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhIBIgBARI7CghuYXRfdHlwZRgKIAEoDjIaLm1ldGFsc3RhY2suYXBpLnYyLk5BVFR5cGVCCLpIBYIBAhABSAWIAQESMgocYWRkaXRpb25hbF9hbm5vdW5jYWJsZV9jaWRycxgLIAMoCUIMukgJkgEGuKSzsQIBEg0KBWZvcmNlGAwgASgIQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIJCgdfbGFiZWxzQh4KHF9kZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGhCGgoYX21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoQgsKCV9uYXRfdHlwZSI2ChtOZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBIksKGU5ldHdvcmtTZXJ2aWNlTGlzdFJlcXVlc3QSLgoFcXVlcnkYASABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrUXVlcnkihgEKKE5ldHdvcmtTZXJ2aWNlTGlzdEV4dGVybmFsTWVtYmVyc1JlcXVlc3QSHAoHbmV0d29yaxgBIAEoCUILukgIcgbAs66xAgESPAoFcXVlcnkYAiABKAsyLS5tZXRhbHN0YWNrLmFwaS52Mi5FeHRlcm5hbE5ldHdvcmtNZW1iZXJRdWVyeSKRAQonTmV0d29ya1NlcnZpY2VBZGRFeHRlcm5hbE1lbWJlcnNSZXF1ZXN0EhwKB25ldHdvcmsYASABKAlCC7pICHIGwLOusQIBEkgKDHN3aXRjaF9wb3J0cxgCIAMoCzIoLm1ldGFsc3RhY2suYXBpLnYyLkV4dGVybmFsTmV0d29ya01lbWJlckIIukgFkgECEAgilAEKKk5ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzUmVxdWVzdBIcCgduZXR3b3JrGAEgASgJQgu6SAhyBsCzrrECARJICgxzd2l0Y2hfcG9ydHMYAiADKAsyKC5tZXRhbHN0YWNrLmFwaS52Mi5FeHRlcm5hbE5ldHdvcmtNZW1iZXJCCLpIBZIBAhAIIksKHE5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsiSwocTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJLChxOZXR3b3JrU2VydmljZURlbGV0ZVJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrIkoKGk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJmCilOZXR3b3JrU2VydmljZUxpc3RFeHRlcm5hbE1lbWJlcnNSZXNwb25zZRI5CgdtZW1iZXJzGAEgAygLMigubWV0YWxzdGFjay5hcGkudjIuRXh0ZXJuYWxOZXR3b3JrTWVtYmVyIlUKKE5ldHdvcmtTZXJ2aWNlQWRkRXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2USKQoGc3dpdGNoGAEgASgLMhkubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoIlgKK05ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2USKQoGc3dpdGNoGAEgASgLMhkubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoMs8ICg5OZXR3b3JrU2VydmljZRJwCgNHZXQSLS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlR2V0UmVxdWVzdBouLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VHZXRSZXNwb25zZSIK0vMYAgEC4PMYAhJ4CgZDcmVhdGUSMC5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVxdWVzdBoxLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VDcmVhdGVSZXNwb25zZSIJ0vMYAQHg8xgBEngKBlVwZGF0ZRIwLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VVcGRhdGVSZXF1ZXN0GjEubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZVVwZGF0ZVJlc3BvbnNlIgnS8xgBAeDzGAESeAoGRGVsZXRlEjAubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QaMS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVzcG9uc2UiCdLzGAEB4PMYARJzCgRMaXN0Ei4ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUxpc3RSZXF1ZXN0Gi8ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUxpc3RSZXNwb25zZSIK0vMYAgEC4PMYAhKgAQoTTGlzdEV4dGVybmFsTWVtYmVycxI9Lm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VMaXN0RXh0ZXJuYWxNZW1iZXJzUmVxdWVzdBo+Lm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VMaXN0RXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2UiCtLzGAIBAuDzGAISnAEKEkFkZEV4dGVybmFsTWVtYmVycxI8Lm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VBZGRFeHRlcm5hbE1lbWJlcnNSZXF1ZXN0Gj0ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUFkZEV4dGVybmFsTWVtYmVyc1Jlc3BvbnNlIgnS8xgBAeDzGAESpQEKFVJlbW92ZUV4dGVybmFsTWVtYmVycxI/Lm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VSZW1vdmVFeHRlcm5hbE1lbWJlcnNSZXF1ZXN0GkAubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZVJlbW92ZUV4dGVybmFsTWVtYmVyc1Jlc3BvbnNlIgnS8xgBAeDzGAFC0AEKF2NvbS5tZXRhbHN0YWNrLmFkbWluLnYyQgxOZXR3b3JrUHJvdG9QAVo5Z2l0aHViLmNvbS9tZXRhbC1zdGFjay9hcGkvZ28vbWV0YWxzdGFjay9hZG1pbi92MjthZG1pbnYyogIDTUFYqgITTWV0YWxzdGFjay5BZG1pbi5WMsoCE01ldGFsc3RhY2tcQWRtaW5cVjLiAh9NZXRhbHN0YWNrXEFkbWluXFYyXEdQQk1ldGFkYXRh6gIVTWV0YWxzdGFjazo6QWRtaW46OlYyYgZwcm90bzM", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_network, file_metalstack_api_v2_predefined_rules, file_metalstack_api_v2_switch]);
/**
* NetworkServiceGetRequest is the request payload for getting a network.
@@ -366,9 +366,9 @@ export const NetworkServiceListExternalMembersRequestSchema: GenMessage & {
+export type NetworkServiceAddExternalMembersRequest = Message<"metalstack.admin.v2.NetworkServiceAddExternalMembersRequest"> & {
/**
* Network to add the member to.
*
@@ -386,18 +386,18 @@ export type NetworkServiceAddExternalMemberRequest = Message<"metalstack.admin.v
};
/**
- * Describes the message metalstack.admin.v2.NetworkServiceAddExternalMemberRequest.
- * Use `create(NetworkServiceAddExternalMemberRequestSchema)` to create a new message.
+ * Describes the message metalstack.admin.v2.NetworkServiceAddExternalMembersRequest.
+ * Use `create(NetworkServiceAddExternalMembersRequestSchema)` to create a new message.
*/
-export const NetworkServiceAddExternalMemberRequestSchema: GenMessage = /*@__PURE__*/
+export const NetworkServiceAddExternalMembersRequestSchema: GenMessage = /*@__PURE__*/
messageDesc(file_metalstack_admin_v2_network, 7);
/**
* NetworkServiceRemoveExternalMemberRequest is the request payload for removing an external member from a network.
*
- * @generated from message metalstack.admin.v2.NetworkServiceRemoveExternalMemberRequest
+ * @generated from message metalstack.admin.v2.NetworkServiceRemoveExternalMembersRequest
*/
-export type NetworkServiceRemoveExternalMemberRequest = Message<"metalstack.admin.v2.NetworkServiceRemoveExternalMemberRequest"> & {
+export type NetworkServiceRemoveExternalMembersRequest = Message<"metalstack.admin.v2.NetworkServiceRemoveExternalMembersRequest"> & {
/**
* Network to remove the member from.
*
@@ -414,10 +414,10 @@ export type NetworkServiceRemoveExternalMemberRequest = Message<"metalstack.admi
};
/**
- * Describes the message metalstack.admin.v2.NetworkServiceRemoveExternalMemberRequest.
- * Use `create(NetworkServiceRemoveExternalMemberRequestSchema)` to create a new message.
+ * Describes the message metalstack.admin.v2.NetworkServiceRemoveExternalMembersRequest.
+ * Use `create(NetworkServiceRemoveExternalMembersRequestSchema)` to create a new message.
*/
-export const NetworkServiceRemoveExternalMemberRequestSchema: GenMessage = /*@__PURE__*/
+export const NetworkServiceRemoveExternalMembersRequestSchema: GenMessage = /*@__PURE__*/
messageDesc(file_metalstack_admin_v2_network, 8);
/**
@@ -528,9 +528,9 @@ export const NetworkServiceListExternalMembersResponseSchema: GenMessage & {
+export type NetworkServiceAddExternalMembersResponse = Message<"metalstack.admin.v2.NetworkServiceAddExternalMembersResponse"> & {
/**
* Switch contains the updated switch.
*
@@ -540,18 +540,18 @@ export type NetworkServiceAddExternalMemberResponse = Message<"metalstack.admin.
};
/**
- * Describes the message metalstack.admin.v2.NetworkServiceAddExternalMemberResponse.
- * Use `create(NetworkServiceAddExternalMemberResponseSchema)` to create a new message.
+ * Describes the message metalstack.admin.v2.NetworkServiceAddExternalMembersResponse.
+ * Use `create(NetworkServiceAddExternalMembersResponseSchema)` to create a new message.
*/
-export const NetworkServiceAddExternalMemberResponseSchema: GenMessage = /*@__PURE__*/
+export const NetworkServiceAddExternalMembersResponseSchema: GenMessage = /*@__PURE__*/
messageDesc(file_metalstack_admin_v2_network, 14);
/**
* NetworkServiceRemoveExternalMemberResponse is the response payload for removing an external member from a network.
*
- * @generated from message metalstack.admin.v2.NetworkServiceRemoveExternalMemberResponse
+ * @generated from message metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse
*/
-export type NetworkServiceRemoveExternalMemberResponse = Message<"metalstack.admin.v2.NetworkServiceRemoveExternalMemberResponse"> & {
+export type NetworkServiceRemoveExternalMembersResponse = Message<"metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse"> & {
/**
* Switch contains the updated switch.
*
@@ -561,10 +561,10 @@ export type NetworkServiceRemoveExternalMemberResponse = Message<"metalstack.adm
};
/**
- * Describes the message metalstack.admin.v2.NetworkServiceRemoveExternalMemberResponse.
- * Use `create(NetworkServiceRemoveExternalMemberResponseSchema)` to create a new message.
+ * Describes the message metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse.
+ * Use `create(NetworkServiceRemoveExternalMembersResponseSchema)` to create a new message.
*/
-export const NetworkServiceRemoveExternalMemberResponseSchema: GenMessage = /*@__PURE__*/
+export const NetworkServiceRemoveExternalMembersResponseSchema: GenMessage = /*@__PURE__*/
messageDesc(file_metalstack_admin_v2_network, 15);
/**
@@ -636,22 +636,22 @@ export const NetworkService: GenService<{
/**
* Adds an external member to a network.
*
- * @generated from rpc metalstack.admin.v2.NetworkService.AddExternalMember
+ * @generated from rpc metalstack.admin.v2.NetworkService.AddExternalMembers
*/
- addExternalMember: {
+ addExternalMembers: {
methodKind: "unary";
- input: typeof NetworkServiceAddExternalMemberRequestSchema;
- output: typeof NetworkServiceAddExternalMemberResponseSchema;
+ input: typeof NetworkServiceAddExternalMembersRequestSchema;
+ output: typeof NetworkServiceAddExternalMembersResponseSchema;
},
/**
* Removes an external member from a network.
*
- * @generated from rpc metalstack.admin.v2.NetworkService.RemoveExternalMember
+ * @generated from rpc metalstack.admin.v2.NetworkService.RemoveExternalMembers
*/
- removeExternalMember: {
+ removeExternalMembers: {
methodKind: "unary";
- input: typeof NetworkServiceRemoveExternalMemberRequestSchema;
- output: typeof NetworkServiceRemoveExternalMemberResponseSchema;
+ input: typeof NetworkServiceRemoveExternalMembersRequestSchema;
+ output: typeof NetworkServiceRemoveExternalMembersResponseSchema;
},
}> = /*@__PURE__*/
serviceDesc(file_metalstack_admin_v2_network, 0);
diff --git a/proto/metalstack/admin/v2/network.proto b/proto/metalstack/admin/v2/network.proto
index c8aabc5c..7206c744 100644
--- a/proto/metalstack/admin/v2/network.proto
+++ b/proto/metalstack/admin/v2/network.proto
@@ -44,12 +44,12 @@ service NetworkService {
option (metalstack.api.v2.auditing) = AUDITING_EXCLUDED;
}
// Adds an external member to a network.
- rpc AddExternalMember(NetworkServiceAddExternalMemberRequest) returns (NetworkServiceAddExternalMemberResponse) {
+ rpc AddExternalMembers(NetworkServiceAddExternalMembersRequest) returns (NetworkServiceAddExternalMembersResponse) {
option (metalstack.api.v2.admin_roles) = ADMIN_ROLE_EDITOR;
option (metalstack.api.v2.auditing) = AUDITING_INCLUDED;
}
// Removes an external member from a network.
- rpc RemoveExternalMember(NetworkServiceRemoveExternalMemberRequest) returns (NetworkServiceRemoveExternalMemberResponse) {
+ rpc RemoveExternalMembers(NetworkServiceRemoveExternalMembersRequest) returns (NetworkServiceRemoveExternalMembersResponse) {
option (metalstack.api.v2.admin_roles) = ADMIN_ROLE_EDITOR;
option (metalstack.api.v2.auditing) = AUDITING_INCLUDED;
}
@@ -155,7 +155,7 @@ message NetworkServiceListExternalMembersRequest {
}
// NetworkServiceAddExternalMemberRequest is the request payload for adding an external member to a network.
-message NetworkServiceAddExternalMemberRequest {
+message NetworkServiceAddExternalMembersRequest {
// Network to add the member to.
string network = 1 [(buf.validate.field).string.(metalstack.api.v2.is_name) = true];
// SwitchPorts contains the ports of a switch that should be added to the network.
@@ -164,7 +164,7 @@ message NetworkServiceAddExternalMemberRequest {
}
// NetworkServiceRemoveExternalMemberRequest is the request payload for removing an external member from a network.
-message NetworkServiceRemoveExternalMemberRequest {
+message NetworkServiceRemoveExternalMembersRequest {
// Network to remove the member from.
string network = 1 [(buf.validate.field).string.(metalstack.api.v2.is_name) = true];
// SwitchPorts contains the ports of a switch that should be removed from the network.
@@ -202,13 +202,13 @@ message NetworkServiceListExternalMembersResponse {
}
// NetworkServiceAddExternalMemberResponse is the response payload for adding an external member to a network.
-message NetworkServiceAddExternalMemberResponse {
+message NetworkServiceAddExternalMembersResponse {
// Switch contains the updated switch.
metalstack.api.v2.Switch switch = 1;
}
// NetworkServiceRemoveExternalMemberResponse is the response payload for removing an external member from a network.
-message NetworkServiceRemoveExternalMemberResponse {
+message NetworkServiceRemoveExternalMembersResponse {
// Switch contains the updated switch.
metalstack.api.v2.Switch switch = 1;
}
diff --git a/python/metalstack/admin/v2/network_connect.py b/python/metalstack/admin/v2/network_connect.py
index e881d653..3666c6db 100644
--- a/python/metalstack/admin/v2/network_connect.py
+++ b/python/metalstack/admin/v2/network_connect.py
@@ -36,10 +36,10 @@ async def list(self, request: metalstack_dot_admin_dot_v2_dot_network__pb2.Netwo
async def list_external_members(self, request: metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceListExternalMembersRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceListExternalMembersResponse:
raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
- async def add_external_member(self, request: metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceAddExternalMemberRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceAddExternalMemberResponse:
+ async def add_external_members(self, request: metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceAddExternalMembersRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceAddExternalMembersResponse:
raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
- async def remove_external_member(self, request: metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceRemoveExternalMemberRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceRemoveExternalMemberResponse:
+ async def remove_external_members(self, request: metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceRemoveExternalMembersRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceRemoveExternalMembersResponse:
raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
@@ -108,25 +108,25 @@ def __init__(self, service: NetworkService | AsyncGenerator[NetworkService], *,
),
function=svc.list_external_members,
),
- "/metalstack.admin.v2.NetworkService/AddExternalMember": Endpoint.unary(
+ "/metalstack.admin.v2.NetworkService/AddExternalMembers": Endpoint.unary(
method=MethodInfo(
- name="AddExternalMember",
+ name="AddExternalMembers",
service_name="metalstack.admin.v2.NetworkService",
- input=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceAddExternalMemberRequest,
- output=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceAddExternalMemberResponse,
+ input=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceAddExternalMembersRequest,
+ output=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceAddExternalMembersResponse,
idempotency_level=IdempotencyLevel.UNKNOWN,
),
- function=svc.add_external_member,
+ function=svc.add_external_members,
),
- "/metalstack.admin.v2.NetworkService/RemoveExternalMember": Endpoint.unary(
+ "/metalstack.admin.v2.NetworkService/RemoveExternalMembers": Endpoint.unary(
method=MethodInfo(
- name="RemoveExternalMember",
+ name="RemoveExternalMembers",
service_name="metalstack.admin.v2.NetworkService",
- input=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceRemoveExternalMemberRequest,
- output=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceRemoveExternalMemberResponse,
+ input=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceRemoveExternalMembersRequest,
+ output=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceRemoveExternalMembersResponse,
idempotency_level=IdempotencyLevel.UNKNOWN,
),
- function=svc.remove_external_member,
+ function=svc.remove_external_members,
),
},
interceptors=interceptors,
@@ -262,40 +262,40 @@ async def list_external_members(
timeout_ms=timeout_ms,
)
- async def add_external_member(
+ async def add_external_members(
self,
- request: metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceAddExternalMemberRequest,
+ request: metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceAddExternalMembersRequest,
*,
headers: Headers | Mapping[str, str] | None = None,
timeout_ms: int | None = None,
- ) -> metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceAddExternalMemberResponse:
+ ) -> metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceAddExternalMembersResponse:
return await self.execute_unary(
request=request,
method=MethodInfo(
- name="AddExternalMember",
+ name="AddExternalMembers",
service_name="metalstack.admin.v2.NetworkService",
- input=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceAddExternalMemberRequest,
- output=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceAddExternalMemberResponse,
+ input=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceAddExternalMembersRequest,
+ output=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceAddExternalMembersResponse,
idempotency_level=IdempotencyLevel.UNKNOWN,
),
headers=headers,
timeout_ms=timeout_ms,
)
- async def remove_external_member(
+ async def remove_external_members(
self,
- request: metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceRemoveExternalMemberRequest,
+ request: metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceRemoveExternalMembersRequest,
*,
headers: Headers | Mapping[str, str] | None = None,
timeout_ms: int | None = None,
- ) -> metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceRemoveExternalMemberResponse:
+ ) -> metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceRemoveExternalMembersResponse:
return await self.execute_unary(
request=request,
method=MethodInfo(
- name="RemoveExternalMember",
+ name="RemoveExternalMembers",
service_name="metalstack.admin.v2.NetworkService",
- input=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceRemoveExternalMemberRequest,
- output=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceRemoveExternalMemberResponse,
+ input=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceRemoveExternalMembersRequest,
+ output=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceRemoveExternalMembersResponse,
idempotency_level=IdempotencyLevel.UNKNOWN,
),
headers=headers,
@@ -319,9 +319,9 @@ def list(self, request: metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServ
raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
def list_external_members(self, request: metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceListExternalMembersRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceListExternalMembersResponse:
raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
- def add_external_member(self, request: metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceAddExternalMemberRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceAddExternalMemberResponse:
+ def add_external_members(self, request: metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceAddExternalMembersRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceAddExternalMembersResponse:
raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
- def remove_external_member(self, request: metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceRemoveExternalMemberRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceRemoveExternalMemberResponse:
+ def remove_external_members(self, request: metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceRemoveExternalMembersRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceRemoveExternalMembersResponse:
raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
@@ -389,25 +389,25 @@ def __init__(self, service: NetworkServiceSync, interceptors: Iterable[Intercept
),
function=service.list_external_members,
),
- "/metalstack.admin.v2.NetworkService/AddExternalMember": EndpointSync.unary(
+ "/metalstack.admin.v2.NetworkService/AddExternalMembers": EndpointSync.unary(
method=MethodInfo(
- name="AddExternalMember",
+ name="AddExternalMembers",
service_name="metalstack.admin.v2.NetworkService",
- input=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceAddExternalMemberRequest,
- output=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceAddExternalMemberResponse,
+ input=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceAddExternalMembersRequest,
+ output=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceAddExternalMembersResponse,
idempotency_level=IdempotencyLevel.UNKNOWN,
),
- function=service.add_external_member,
+ function=service.add_external_members,
),
- "/metalstack.admin.v2.NetworkService/RemoveExternalMember": EndpointSync.unary(
+ "/metalstack.admin.v2.NetworkService/RemoveExternalMembers": EndpointSync.unary(
method=MethodInfo(
- name="RemoveExternalMember",
+ name="RemoveExternalMembers",
service_name="metalstack.admin.v2.NetworkService",
- input=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceRemoveExternalMemberRequest,
- output=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceRemoveExternalMemberResponse,
+ input=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceRemoveExternalMembersRequest,
+ output=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceRemoveExternalMembersResponse,
idempotency_level=IdempotencyLevel.UNKNOWN,
),
- function=service.remove_external_member,
+ function=service.remove_external_members,
),
},
interceptors=interceptors,
@@ -543,40 +543,40 @@ def list_external_members(
timeout_ms=timeout_ms,
)
- def add_external_member(
+ def add_external_members(
self,
- request: metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceAddExternalMemberRequest,
+ request: metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceAddExternalMembersRequest,
*,
headers: Headers | Mapping[str, str] | None = None,
timeout_ms: int | None = None,
- ) -> metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceAddExternalMemberResponse:
+ ) -> metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceAddExternalMembersResponse:
return self.execute_unary(
request=request,
method=MethodInfo(
- name="AddExternalMember",
+ name="AddExternalMembers",
service_name="metalstack.admin.v2.NetworkService",
- input=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceAddExternalMemberRequest,
- output=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceAddExternalMemberResponse,
+ input=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceAddExternalMembersRequest,
+ output=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceAddExternalMembersResponse,
idempotency_level=IdempotencyLevel.UNKNOWN,
),
headers=headers,
timeout_ms=timeout_ms,
)
- def remove_external_member(
+ def remove_external_members(
self,
- request: metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceRemoveExternalMemberRequest,
+ request: metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceRemoveExternalMembersRequest,
*,
headers: Headers | Mapping[str, str] | None = None,
timeout_ms: int | None = None,
- ) -> metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceRemoveExternalMemberResponse:
+ ) -> metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceRemoveExternalMembersResponse:
return self.execute_unary(
request=request,
method=MethodInfo(
- name="RemoveExternalMember",
+ name="RemoveExternalMembers",
service_name="metalstack.admin.v2.NetworkService",
- input=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceRemoveExternalMemberRequest,
- output=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceRemoveExternalMemberResponse,
+ input=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceRemoveExternalMembersRequest,
+ output=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceRemoveExternalMembersResponse,
idempotency_level=IdempotencyLevel.UNKNOWN,
),
headers=headers,
diff --git a/python/metalstack/admin/v2/network_pb2.py b/python/metalstack/admin/v2/network_pb2.py
index 882dec0c..d4fb2699 100644
--- a/python/metalstack/admin/v2/network_pb2.py
+++ b/python/metalstack/admin/v2/network_pb2.py
@@ -29,7 +29,7 @@
from metalstack.api.v2 import switch_pb2 as metalstack_dot_api_dot_v2_dot_switch__pb2
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!metalstack/admin/v2/network.proto\x12\x13metalstack.admin.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1emetalstack/api/v2/common.proto\x1a\x1fmetalstack/api/v2/network.proto\x1a(metalstack/api/v2/predefined_rules.proto\x1a\x1emetalstack/api/v2/switch.proto\"7\n\x18NetworkServiceGetRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\"Q\n\x19NetworkServiceGetResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"\xa8\t\n\x1bNetworkServiceCreateRequest\x12 \n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x02id\x88\x01\x01\x12$\n\x04name\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x04name\x88\x01\x01\x12\x32\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x02R\x0b\x64\x65scription\x88\x01\x01\x12.\n\tpartition\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x03R\tpartition\x88\x01\x01\x12\'\n\x07project\x18\x05 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x04R\x07project\x88\x01\x01\x12<\n\x04type\x18\x06 \x01(\x0e\x32\x1e.metalstack.api.v2.NetworkTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x04type\x12\x36\n\x06labels\x18\x07 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsH\x05R\x06labels\x88\x01\x01\x12(\n\x08prefixes\x18\x08 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x08prefixes\x12?\n\x14\x64\x65stination_prefixes\x18\t \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x13\x64\x65stinationPrefixes\x12\x63\n\x1b\x64\x65\x66\x61ult_child_prefix_length\x18\n \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthR\x18\x64\x65\x66\x61ultChildPrefixLength\x12[\n\x17min_child_prefix_length\x18\x0b \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthR\x14minChildPrefixLength\x12\x44\n\x08nat_type\x18\x0c \x01(\x0e\x32\x1a.metalstack.api.v2.NATTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x06R\x07natType\x88\x01\x01\x12\x15\n\x03vrf\x18\r \x01(\rH\x07R\x03vrf\x88\x01\x01\x12\x37\n\x0eparent_network\x18\x0e \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x08R\rparentNetwork\x88\x01\x01\x12N\n\x1c\x61\x64\x64itional_announcable_cidrs\x18\x0f \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x1a\x61\x64\x64itionalAnnouncableCidrs\x12\x41\n\x06length\x18\x10 \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthH\tR\x06length\x88\x01\x01\x12]\n\x0e\x61\x64\x64ress_family\x18\x11 \x01(\x0e\x32\'.metalstack.api.v2.NetworkAddressFamilyB\x08\xbaH\x05\x82\x01\x02\x10\x01H\nR\raddressFamily\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0c\n\n_partitionB\n\n\x08_projectB\t\n\x07_labelsB\x0b\n\t_nat_typeB\x06\n\x04_vrfB\x11\n\x0f_parent_networkB\t\n\x07_lengthB\x11\n\x0f_address_family\"\xea\x06\n\x1bNetworkServiceUpdateRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\x12\x46\n\x0bupdate_meta\x18\x02 \x01(\x0b\x32\x1d.metalstack.api.v2.UpdateMetaB\x06\xbaH\x03\xc8\x01\x01R\nupdateMeta\x12$\n\x04name\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x04name\x88\x01\x01\x12\x32\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x01R\x0b\x64\x65scription\x88\x01\x01\x12<\n\x06labels\x18\x05 \x01(\x0b\x32\x1f.metalstack.api.v2.UpdateLabelsH\x02R\x06labels\x88\x01\x01\x12(\n\x08prefixes\x18\x06 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x08prefixes\x12?\n\x14\x64\x65stination_prefixes\x18\x07 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x13\x64\x65stinationPrefixes\x12h\n\x1b\x64\x65\x66\x61ult_child_prefix_length\x18\x08 \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthH\x03R\x18\x64\x65\x66\x61ultChildPrefixLength\x88\x01\x01\x12`\n\x17min_child_prefix_length\x18\t \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthH\x04R\x14minChildPrefixLength\x88\x01\x01\x12\x44\n\x08nat_type\x18\n \x01(\x0e\x32\x1a.metalstack.api.v2.NATTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x05R\x07natType\x88\x01\x01\x12N\n\x1c\x61\x64\x64itional_announcable_cidrs\x18\x0b \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x1a\x61\x64\x64itionalAnnouncableCidrs\x12\x14\n\x05\x66orce\x18\x0c \x01(\x08R\x05\x66orceB\x07\n\x05_nameB\x0e\n\x0c_descriptionB\t\n\x07_labelsB\x1e\n\x1c_default_child_prefix_lengthB\x1a\n\x18_min_child_prefix_lengthB\x0b\n\t_nat_type\":\n\x1bNetworkServiceDeleteRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\"R\n\x19NetworkServiceListRequest\x12\x35\n\x05query\x18\x01 \x01(\x0b\x32\x1f.metalstack.api.v2.NetworkQueryR\x05query\"\x96\x01\n(NetworkServiceListExternalMembersRequest\x12%\n\x07network\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07network\x12\x43\n\x05query\x18\x02 \x01(\x0b\x32-.metalstack.api.v2.ExternalNetworkMemberQueryR\x05query\"\xa6\x01\n&NetworkServiceAddExternalMemberRequest\x12%\n\x07network\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07network\x12U\n\x0cswitch_ports\x18\x02 \x03(\x0b\x32(.metalstack.api.v2.ExternalNetworkMemberB\x08\xbaH\x05\x92\x01\x02\x10\x08R\x0bswitchPorts\"\xa9\x01\n)NetworkServiceRemoveExternalMemberRequest\x12%\n\x07network\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07network\x12U\n\x0cswitch_ports\x18\x02 \x03(\x0b\x32(.metalstack.api.v2.ExternalNetworkMemberB\x08\xbaH\x05\x92\x01\x02\x10\x08R\x0bswitchPorts\"T\n\x1cNetworkServiceCreateResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"T\n\x1cNetworkServiceUpdateResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"T\n\x1cNetworkServiceDeleteResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"T\n\x1aNetworkServiceListResponse\x12\x36\n\x08networks\x18\x01 \x03(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x08networks\"o\n)NetworkServiceListExternalMembersResponse\x12\x42\n\x07members\x18\x01 \x03(\x0b\x32(.metalstack.api.v2.ExternalNetworkMemberR\x07members\"\\\n\'NetworkServiceAddExternalMemberResponse\x12\x31\n\x06switch\x18\x01 \x01(\x0b\x32\x19.metalstack.api.v2.SwitchR\x06switch\"_\n*NetworkServiceRemoveExternalMemberResponse\x12\x31\n\x06switch\x18\x01 \x01(\x0b\x32\x19.metalstack.api.v2.SwitchR\x06switch2\xc9\x08\n\x0eNetworkService\x12p\n\x03Get\x12-.metalstack.admin.v2.NetworkServiceGetRequest\x1a..metalstack.admin.v2.NetworkServiceGetResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x12x\n\x06\x43reate\x12\x30.metalstack.admin.v2.NetworkServiceCreateRequest\x1a\x31.metalstack.admin.v2.NetworkServiceCreateResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12x\n\x06Update\x12\x30.metalstack.admin.v2.NetworkServiceUpdateRequest\x1a\x31.metalstack.admin.v2.NetworkServiceUpdateResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12x\n\x06\x44\x65lete\x12\x30.metalstack.admin.v2.NetworkServiceDeleteRequest\x1a\x31.metalstack.admin.v2.NetworkServiceDeleteResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12s\n\x04List\x12..metalstack.admin.v2.NetworkServiceListRequest\x1a/.metalstack.admin.v2.NetworkServiceListResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x12\xa0\x01\n\x13ListExternalMembers\x12=.metalstack.admin.v2.NetworkServiceListExternalMembersRequest\x1a>.metalstack.admin.v2.NetworkServiceListExternalMembersResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x12\x99\x01\n\x11\x41\x64\x64\x45xternalMember\x12;.metalstack.admin.v2.NetworkServiceAddExternalMemberRequest\x1a<.metalstack.admin.v2.NetworkServiceAddExternalMemberResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12\xa2\x01\n\x14RemoveExternalMember\x12>.metalstack.admin.v2.NetworkServiceRemoveExternalMemberRequest\x1a?.metalstack.admin.v2.NetworkServiceRemoveExternalMemberResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x42\xd0\x01\n\x17\x63om.metalstack.admin.v2B\x0cNetworkProtoP\x01Z9github.com/metal-stack/api/go/metalstack/admin/v2;adminv2\xa2\x02\x03MAX\xaa\x02\x13Metalstack.Admin.V2\xca\x02\x13Metalstack\\Admin\\V2\xe2\x02\x1fMetalstack\\Admin\\V2\\GPBMetadata\xea\x02\x15Metalstack::Admin::V2b\x06proto3')
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!metalstack/admin/v2/network.proto\x12\x13metalstack.admin.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1emetalstack/api/v2/common.proto\x1a\x1fmetalstack/api/v2/network.proto\x1a(metalstack/api/v2/predefined_rules.proto\x1a\x1emetalstack/api/v2/switch.proto\"7\n\x18NetworkServiceGetRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\"Q\n\x19NetworkServiceGetResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"\xa8\t\n\x1bNetworkServiceCreateRequest\x12 \n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x02id\x88\x01\x01\x12$\n\x04name\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x04name\x88\x01\x01\x12\x32\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x02R\x0b\x64\x65scription\x88\x01\x01\x12.\n\tpartition\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x03R\tpartition\x88\x01\x01\x12\'\n\x07project\x18\x05 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x04R\x07project\x88\x01\x01\x12<\n\x04type\x18\x06 \x01(\x0e\x32\x1e.metalstack.api.v2.NetworkTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x04type\x12\x36\n\x06labels\x18\x07 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsH\x05R\x06labels\x88\x01\x01\x12(\n\x08prefixes\x18\x08 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x08prefixes\x12?\n\x14\x64\x65stination_prefixes\x18\t \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x13\x64\x65stinationPrefixes\x12\x63\n\x1b\x64\x65\x66\x61ult_child_prefix_length\x18\n \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthR\x18\x64\x65\x66\x61ultChildPrefixLength\x12[\n\x17min_child_prefix_length\x18\x0b \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthR\x14minChildPrefixLength\x12\x44\n\x08nat_type\x18\x0c \x01(\x0e\x32\x1a.metalstack.api.v2.NATTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x06R\x07natType\x88\x01\x01\x12\x15\n\x03vrf\x18\r \x01(\rH\x07R\x03vrf\x88\x01\x01\x12\x37\n\x0eparent_network\x18\x0e \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x08R\rparentNetwork\x88\x01\x01\x12N\n\x1c\x61\x64\x64itional_announcable_cidrs\x18\x0f \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x1a\x61\x64\x64itionalAnnouncableCidrs\x12\x41\n\x06length\x18\x10 \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthH\tR\x06length\x88\x01\x01\x12]\n\x0e\x61\x64\x64ress_family\x18\x11 \x01(\x0e\x32\'.metalstack.api.v2.NetworkAddressFamilyB\x08\xbaH\x05\x82\x01\x02\x10\x01H\nR\raddressFamily\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0c\n\n_partitionB\n\n\x08_projectB\t\n\x07_labelsB\x0b\n\t_nat_typeB\x06\n\x04_vrfB\x11\n\x0f_parent_networkB\t\n\x07_lengthB\x11\n\x0f_address_family\"\xea\x06\n\x1bNetworkServiceUpdateRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\x12\x46\n\x0bupdate_meta\x18\x02 \x01(\x0b\x32\x1d.metalstack.api.v2.UpdateMetaB\x06\xbaH\x03\xc8\x01\x01R\nupdateMeta\x12$\n\x04name\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x04name\x88\x01\x01\x12\x32\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x01R\x0b\x64\x65scription\x88\x01\x01\x12<\n\x06labels\x18\x05 \x01(\x0b\x32\x1f.metalstack.api.v2.UpdateLabelsH\x02R\x06labels\x88\x01\x01\x12(\n\x08prefixes\x18\x06 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x08prefixes\x12?\n\x14\x64\x65stination_prefixes\x18\x07 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x13\x64\x65stinationPrefixes\x12h\n\x1b\x64\x65\x66\x61ult_child_prefix_length\x18\x08 \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthH\x03R\x18\x64\x65\x66\x61ultChildPrefixLength\x88\x01\x01\x12`\n\x17min_child_prefix_length\x18\t \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthH\x04R\x14minChildPrefixLength\x88\x01\x01\x12\x44\n\x08nat_type\x18\n \x01(\x0e\x32\x1a.metalstack.api.v2.NATTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x05R\x07natType\x88\x01\x01\x12N\n\x1c\x61\x64\x64itional_announcable_cidrs\x18\x0b \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x1a\x61\x64\x64itionalAnnouncableCidrs\x12\x14\n\x05\x66orce\x18\x0c \x01(\x08R\x05\x66orceB\x07\n\x05_nameB\x0e\n\x0c_descriptionB\t\n\x07_labelsB\x1e\n\x1c_default_child_prefix_lengthB\x1a\n\x18_min_child_prefix_lengthB\x0b\n\t_nat_type\":\n\x1bNetworkServiceDeleteRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\"R\n\x19NetworkServiceListRequest\x12\x35\n\x05query\x18\x01 \x01(\x0b\x32\x1f.metalstack.api.v2.NetworkQueryR\x05query\"\x96\x01\n(NetworkServiceListExternalMembersRequest\x12%\n\x07network\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07network\x12\x43\n\x05query\x18\x02 \x01(\x0b\x32-.metalstack.api.v2.ExternalNetworkMemberQueryR\x05query\"\xa7\x01\n\'NetworkServiceAddExternalMembersRequest\x12%\n\x07network\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07network\x12U\n\x0cswitch_ports\x18\x02 \x03(\x0b\x32(.metalstack.api.v2.ExternalNetworkMemberB\x08\xbaH\x05\x92\x01\x02\x10\x08R\x0bswitchPorts\"\xaa\x01\n*NetworkServiceRemoveExternalMembersRequest\x12%\n\x07network\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07network\x12U\n\x0cswitch_ports\x18\x02 \x03(\x0b\x32(.metalstack.api.v2.ExternalNetworkMemberB\x08\xbaH\x05\x92\x01\x02\x10\x08R\x0bswitchPorts\"T\n\x1cNetworkServiceCreateResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"T\n\x1cNetworkServiceUpdateResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"T\n\x1cNetworkServiceDeleteResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"T\n\x1aNetworkServiceListResponse\x12\x36\n\x08networks\x18\x01 \x03(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x08networks\"o\n)NetworkServiceListExternalMembersResponse\x12\x42\n\x07members\x18\x01 \x03(\x0b\x32(.metalstack.api.v2.ExternalNetworkMemberR\x07members\"]\n(NetworkServiceAddExternalMembersResponse\x12\x31\n\x06switch\x18\x01 \x01(\x0b\x32\x19.metalstack.api.v2.SwitchR\x06switch\"`\n+NetworkServiceRemoveExternalMembersResponse\x12\x31\n\x06switch\x18\x01 \x01(\x0b\x32\x19.metalstack.api.v2.SwitchR\x06switch2\xcf\x08\n\x0eNetworkService\x12p\n\x03Get\x12-.metalstack.admin.v2.NetworkServiceGetRequest\x1a..metalstack.admin.v2.NetworkServiceGetResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x12x\n\x06\x43reate\x12\x30.metalstack.admin.v2.NetworkServiceCreateRequest\x1a\x31.metalstack.admin.v2.NetworkServiceCreateResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12x\n\x06Update\x12\x30.metalstack.admin.v2.NetworkServiceUpdateRequest\x1a\x31.metalstack.admin.v2.NetworkServiceUpdateResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12x\n\x06\x44\x65lete\x12\x30.metalstack.admin.v2.NetworkServiceDeleteRequest\x1a\x31.metalstack.admin.v2.NetworkServiceDeleteResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12s\n\x04List\x12..metalstack.admin.v2.NetworkServiceListRequest\x1a/.metalstack.admin.v2.NetworkServiceListResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x12\xa0\x01\n\x13ListExternalMembers\x12=.metalstack.admin.v2.NetworkServiceListExternalMembersRequest\x1a>.metalstack.admin.v2.NetworkServiceListExternalMembersResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x12\x9c\x01\n\x12\x41\x64\x64\x45xternalMembers\x12<.metalstack.admin.v2.NetworkServiceAddExternalMembersRequest\x1a=.metalstack.admin.v2.NetworkServiceAddExternalMembersResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12\xa5\x01\n\x15RemoveExternalMembers\x12?.metalstack.admin.v2.NetworkServiceRemoveExternalMembersRequest\x1a@.metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x42\xd0\x01\n\x17\x63om.metalstack.admin.v2B\x0cNetworkProtoP\x01Z9github.com/metal-stack/api/go/metalstack/admin/v2;adminv2\xa2\x02\x03MAX\xaa\x02\x13Metalstack.Admin.V2\xca\x02\x13Metalstack\\Admin\\V2\xe2\x02\x1fMetalstack\\Admin\\V2\\GPBMetadata\xea\x02\x15Metalstack::Admin::V2b\x06proto3')
_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -83,14 +83,14 @@
_globals['_NETWORKSERVICEDELETEREQUEST'].fields_by_name['id']._serialized_options = b'\272H\010r\006\300\263\256\261\002\001'
_globals['_NETWORKSERVICELISTEXTERNALMEMBERSREQUEST'].fields_by_name['network']._loaded_options = None
_globals['_NETWORKSERVICELISTEXTERNALMEMBERSREQUEST'].fields_by_name['network']._serialized_options = b'\272H\010r\006\300\263\256\261\002\001'
- _globals['_NETWORKSERVICEADDEXTERNALMEMBERREQUEST'].fields_by_name['network']._loaded_options = None
- _globals['_NETWORKSERVICEADDEXTERNALMEMBERREQUEST'].fields_by_name['network']._serialized_options = b'\272H\010r\006\300\263\256\261\002\001'
- _globals['_NETWORKSERVICEADDEXTERNALMEMBERREQUEST'].fields_by_name['switch_ports']._loaded_options = None
- _globals['_NETWORKSERVICEADDEXTERNALMEMBERREQUEST'].fields_by_name['switch_ports']._serialized_options = b'\272H\005\222\001\002\020\010'
- _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERREQUEST'].fields_by_name['network']._loaded_options = None
- _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERREQUEST'].fields_by_name['network']._serialized_options = b'\272H\010r\006\300\263\256\261\002\001'
- _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERREQUEST'].fields_by_name['switch_ports']._loaded_options = None
- _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERREQUEST'].fields_by_name['switch_ports']._serialized_options = b'\272H\005\222\001\002\020\010'
+ _globals['_NETWORKSERVICEADDEXTERNALMEMBERSREQUEST'].fields_by_name['network']._loaded_options = None
+ _globals['_NETWORKSERVICEADDEXTERNALMEMBERSREQUEST'].fields_by_name['network']._serialized_options = b'\272H\010r\006\300\263\256\261\002\001'
+ _globals['_NETWORKSERVICEADDEXTERNALMEMBERSREQUEST'].fields_by_name['switch_ports']._loaded_options = None
+ _globals['_NETWORKSERVICEADDEXTERNALMEMBERSREQUEST'].fields_by_name['switch_ports']._serialized_options = b'\272H\005\222\001\002\020\010'
+ _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSREQUEST'].fields_by_name['network']._loaded_options = None
+ _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSREQUEST'].fields_by_name['network']._serialized_options = b'\272H\010r\006\300\263\256\261\002\001'
+ _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSREQUEST'].fields_by_name['switch_ports']._loaded_options = None
+ _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSREQUEST'].fields_by_name['switch_ports']._serialized_options = b'\272H\005\222\001\002\020\010'
_globals['_NETWORKSERVICE'].methods_by_name['Get']._loaded_options = None
_globals['_NETWORKSERVICE'].methods_by_name['Get']._serialized_options = b'\322\363\030\002\001\002\340\363\030\002'
_globals['_NETWORKSERVICE'].methods_by_name['Create']._loaded_options = None
@@ -103,10 +103,10 @@
_globals['_NETWORKSERVICE'].methods_by_name['List']._serialized_options = b'\322\363\030\002\001\002\340\363\030\002'
_globals['_NETWORKSERVICE'].methods_by_name['ListExternalMembers']._loaded_options = None
_globals['_NETWORKSERVICE'].methods_by_name['ListExternalMembers']._serialized_options = b'\322\363\030\002\001\002\340\363\030\002'
- _globals['_NETWORKSERVICE'].methods_by_name['AddExternalMember']._loaded_options = None
- _globals['_NETWORKSERVICE'].methods_by_name['AddExternalMember']._serialized_options = b'\322\363\030\001\001\340\363\030\001'
- _globals['_NETWORKSERVICE'].methods_by_name['RemoveExternalMember']._loaded_options = None
- _globals['_NETWORKSERVICE'].methods_by_name['RemoveExternalMember']._serialized_options = b'\322\363\030\001\001\340\363\030\001'
+ _globals['_NETWORKSERVICE'].methods_by_name['AddExternalMembers']._loaded_options = None
+ _globals['_NETWORKSERVICE'].methods_by_name['AddExternalMembers']._serialized_options = b'\322\363\030\001\001\340\363\030\001'
+ _globals['_NETWORKSERVICE'].methods_by_name['RemoveExternalMembers']._loaded_options = None
+ _globals['_NETWORKSERVICE'].methods_by_name['RemoveExternalMembers']._serialized_options = b'\322\363\030\001\001\340\363\030\001'
_globals['_NETWORKSERVICEGETREQUEST']._serialized_start=226
_globals['_NETWORKSERVICEGETREQUEST']._serialized_end=281
_globals['_NETWORKSERVICEGETRESPONSE']._serialized_start=283
@@ -121,24 +121,24 @@
_globals['_NETWORKSERVICELISTREQUEST']._serialized_end=2580
_globals['_NETWORKSERVICELISTEXTERNALMEMBERSREQUEST']._serialized_start=2583
_globals['_NETWORKSERVICELISTEXTERNALMEMBERSREQUEST']._serialized_end=2733
- _globals['_NETWORKSERVICEADDEXTERNALMEMBERREQUEST']._serialized_start=2736
- _globals['_NETWORKSERVICEADDEXTERNALMEMBERREQUEST']._serialized_end=2902
- _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERREQUEST']._serialized_start=2905
- _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERREQUEST']._serialized_end=3074
- _globals['_NETWORKSERVICECREATERESPONSE']._serialized_start=3076
- _globals['_NETWORKSERVICECREATERESPONSE']._serialized_end=3160
- _globals['_NETWORKSERVICEUPDATERESPONSE']._serialized_start=3162
- _globals['_NETWORKSERVICEUPDATERESPONSE']._serialized_end=3246
- _globals['_NETWORKSERVICEDELETERESPONSE']._serialized_start=3248
- _globals['_NETWORKSERVICEDELETERESPONSE']._serialized_end=3332
- _globals['_NETWORKSERVICELISTRESPONSE']._serialized_start=3334
- _globals['_NETWORKSERVICELISTRESPONSE']._serialized_end=3418
- _globals['_NETWORKSERVICELISTEXTERNALMEMBERSRESPONSE']._serialized_start=3420
- _globals['_NETWORKSERVICELISTEXTERNALMEMBERSRESPONSE']._serialized_end=3531
- _globals['_NETWORKSERVICEADDEXTERNALMEMBERRESPONSE']._serialized_start=3533
- _globals['_NETWORKSERVICEADDEXTERNALMEMBERRESPONSE']._serialized_end=3625
- _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERRESPONSE']._serialized_start=3627
- _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERRESPONSE']._serialized_end=3722
- _globals['_NETWORKSERVICE']._serialized_start=3725
- _globals['_NETWORKSERVICE']._serialized_end=4822
+ _globals['_NETWORKSERVICEADDEXTERNALMEMBERSREQUEST']._serialized_start=2736
+ _globals['_NETWORKSERVICEADDEXTERNALMEMBERSREQUEST']._serialized_end=2903
+ _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSREQUEST']._serialized_start=2906
+ _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSREQUEST']._serialized_end=3076
+ _globals['_NETWORKSERVICECREATERESPONSE']._serialized_start=3078
+ _globals['_NETWORKSERVICECREATERESPONSE']._serialized_end=3162
+ _globals['_NETWORKSERVICEUPDATERESPONSE']._serialized_start=3164
+ _globals['_NETWORKSERVICEUPDATERESPONSE']._serialized_end=3248
+ _globals['_NETWORKSERVICEDELETERESPONSE']._serialized_start=3250
+ _globals['_NETWORKSERVICEDELETERESPONSE']._serialized_end=3334
+ _globals['_NETWORKSERVICELISTRESPONSE']._serialized_start=3336
+ _globals['_NETWORKSERVICELISTRESPONSE']._serialized_end=3420
+ _globals['_NETWORKSERVICELISTEXTERNALMEMBERSRESPONSE']._serialized_start=3422
+ _globals['_NETWORKSERVICELISTEXTERNALMEMBERSRESPONSE']._serialized_end=3533
+ _globals['_NETWORKSERVICEADDEXTERNALMEMBERSRESPONSE']._serialized_start=3535
+ _globals['_NETWORKSERVICEADDEXTERNALMEMBERSRESPONSE']._serialized_end=3628
+ _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSRESPONSE']._serialized_start=3630
+ _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSRESPONSE']._serialized_end=3726
+ _globals['_NETWORKSERVICE']._serialized_start=3729
+ _globals['_NETWORKSERVICE']._serialized_end=4832
# @@protoc_insertion_point(module_scope)
diff --git a/python/metalstack/admin/v2/network_pb2.pyi b/python/metalstack/admin/v2/network_pb2.pyi
index e2c8a08f..66be3370 100644
--- a/python/metalstack/admin/v2/network_pb2.pyi
+++ b/python/metalstack/admin/v2/network_pb2.pyi
@@ -109,7 +109,7 @@ class NetworkServiceListExternalMembersRequest(_message.Message):
query: _network_pb2.ExternalNetworkMemberQuery
def __init__(self, network: _Optional[str] = ..., query: _Optional[_Union[_network_pb2.ExternalNetworkMemberQuery, _Mapping]] = ...) -> None: ...
-class NetworkServiceAddExternalMemberRequest(_message.Message):
+class NetworkServiceAddExternalMembersRequest(_message.Message):
__slots__ = ("network", "switch_ports")
NETWORK_FIELD_NUMBER: _ClassVar[int]
SWITCH_PORTS_FIELD_NUMBER: _ClassVar[int]
@@ -117,7 +117,7 @@ class NetworkServiceAddExternalMemberRequest(_message.Message):
switch_ports: _containers.RepeatedCompositeFieldContainer[_network_pb2.ExternalNetworkMember]
def __init__(self, network: _Optional[str] = ..., switch_ports: _Optional[_Iterable[_Union[_network_pb2.ExternalNetworkMember, _Mapping]]] = ...) -> None: ...
-class NetworkServiceRemoveExternalMemberRequest(_message.Message):
+class NetworkServiceRemoveExternalMembersRequest(_message.Message):
__slots__ = ("network", "switch_ports")
NETWORK_FIELD_NUMBER: _ClassVar[int]
SWITCH_PORTS_FIELD_NUMBER: _ClassVar[int]
@@ -155,13 +155,13 @@ class NetworkServiceListExternalMembersResponse(_message.Message):
members: _containers.RepeatedCompositeFieldContainer[_network_pb2.ExternalNetworkMember]
def __init__(self, members: _Optional[_Iterable[_Union[_network_pb2.ExternalNetworkMember, _Mapping]]] = ...) -> None: ...
-class NetworkServiceAddExternalMemberResponse(_message.Message):
+class NetworkServiceAddExternalMembersResponse(_message.Message):
__slots__ = ("switch",)
SWITCH_FIELD_NUMBER: _ClassVar[int]
switch: _switch_pb2.Switch
def __init__(self, switch: _Optional[_Union[_switch_pb2.Switch, _Mapping]] = ...) -> None: ...
-class NetworkServiceRemoveExternalMemberResponse(_message.Message):
+class NetworkServiceRemoveExternalMembersResponse(_message.Message):
__slots__ = ("switch",)
SWITCH_FIELD_NUMBER: _ClassVar[int]
switch: _switch_pb2.Switch
From b7c1cf418cfd216577dece718d2bf00383d42763 Mon Sep 17 00:00:00 2001
From: Ilja Rotar
Date: Mon, 31 Aug 2026 15:19:49 +0200
Subject: [PATCH 3/5] remove breaking check for now
---
proto/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/proto/Makefile b/proto/Makefile
index ef600128..254443ef 100644
--- a/proto/Makefile
+++ b/proto/Makefile
@@ -13,7 +13,7 @@ _buf:
protolint:
@$(MAKE) _buf CMD="format -w"
@$(MAKE) _buf CMD="lint -v"
- @$(MAKE) _buf CMD="breaking --against 'https://github.com/metal-stack/api.git#branch=main,subdir=proto'"
+ # @$(MAKE) _buf CMD="breaking --against 'https://github.com/metal-stack/api.git#branch=main,subdir=proto'"
.PHONY: protoc
protoc:
From 63484ce293654643fb62f5b7b86aa8c0c0c4d19b Mon Sep 17 00:00:00 2001
From: Ilja Rotar
Date: Mon, 31 Aug 2026 15:50:26 +0200
Subject: [PATCH 4/5] add and remove returns multiple switches
---
doc/index.html | 12 ++++-----
go/metalstack/admin/v2/network.pb.go | 30 +++++++++++-----------
js/metalstack/admin/v2/network_pb.d.ts | 12 ++++-----
js/metalstack/admin/v2/network_pb.js | 2 +-
js/metalstack/admin/v2/network_pb.ts | 14 +++++-----
proto/metalstack/admin/v2/network.proto | 8 +++---
python/metalstack/admin/v2/network_pb2.py | 12 ++++-----
python/metalstack/admin/v2/network_pb2.pyi | 16 ++++++------
8 files changed, 53 insertions(+), 53 deletions(-)
diff --git a/doc/index.html b/doc/index.html
index 61eb9ad6..7e2240ec 100644
--- a/doc/index.html
+++ b/doc/index.html
@@ -14608,10 +14608,10 @@ NetworkSer
- | switch |
+ switches |
metalstack.api.v2.Switch |
- |
- Switch contains the updated switch. |
+ repeated |
+ Switch contains the updated switches. |
@@ -15022,10 +15022,10 @@ Network
- | switch |
+ switches |
metalstack.api.v2.Switch |
- |
- Switch contains the updated switch. |
+ repeated |
+ Switch contains the updated switches. |
diff --git a/go/metalstack/admin/v2/network.pb.go b/go/metalstack/admin/v2/network.pb.go
index 2e792fe6..1e91f4e7 100644
--- a/go/metalstack/admin/v2/network.pb.go
+++ b/go/metalstack/admin/v2/network.pb.go
@@ -941,8 +941,8 @@ func (x *NetworkServiceListExternalMembersResponse) GetMembers() []*v2.ExternalN
// NetworkServiceAddExternalMemberResponse is the response payload for adding an external member to a network.
type NetworkServiceAddExternalMembersResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
- // Switch contains the updated switch.
- Switch *v2.Switch `protobuf:"bytes,1,opt,name=switch,proto3" json:"switch,omitempty"`
+ // Switch contains the updated switches.
+ Switches []*v2.Switch `protobuf:"bytes,1,rep,name=switches,proto3" json:"switches,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@@ -977,9 +977,9 @@ func (*NetworkServiceAddExternalMembersResponse) Descriptor() ([]byte, []int) {
return file_metalstack_admin_v2_network_proto_rawDescGZIP(), []int{14}
}
-func (x *NetworkServiceAddExternalMembersResponse) GetSwitch() *v2.Switch {
+func (x *NetworkServiceAddExternalMembersResponse) GetSwitches() []*v2.Switch {
if x != nil {
- return x.Switch
+ return x.Switches
}
return nil
}
@@ -987,8 +987,8 @@ func (x *NetworkServiceAddExternalMembersResponse) GetSwitch() *v2.Switch {
// NetworkServiceRemoveExternalMemberResponse is the response payload for removing an external member from a network.
type NetworkServiceRemoveExternalMembersResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
- // Switch contains the updated switch.
- Switch *v2.Switch `protobuf:"bytes,1,opt,name=switch,proto3" json:"switch,omitempty"`
+ // Switch contains the updated switches.
+ Switches []*v2.Switch `protobuf:"bytes,1,rep,name=switches,proto3" json:"switches,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@@ -1023,9 +1023,9 @@ func (*NetworkServiceRemoveExternalMembersResponse) Descriptor() ([]byte, []int)
return file_metalstack_admin_v2_network_proto_rawDescGZIP(), []int{15}
}
-func (x *NetworkServiceRemoveExternalMembersResponse) GetSwitch() *v2.Switch {
+func (x *NetworkServiceRemoveExternalMembersResponse) GetSwitches() []*v2.Switch {
if x != nil {
- return x.Switch
+ return x.Switches
}
return nil
}
@@ -1115,11 +1115,11 @@ const file_metalstack_admin_v2_network_proto_rawDesc = "" +
"\x1aNetworkServiceListResponse\x126\n" +
"\bnetworks\x18\x01 \x03(\v2\x1a.metalstack.api.v2.NetworkR\bnetworks\"o\n" +
")NetworkServiceListExternalMembersResponse\x12B\n" +
- "\amembers\x18\x01 \x03(\v2(.metalstack.api.v2.ExternalNetworkMemberR\amembers\"]\n" +
- "(NetworkServiceAddExternalMembersResponse\x121\n" +
- "\x06switch\x18\x01 \x01(\v2\x19.metalstack.api.v2.SwitchR\x06switch\"`\n" +
- "+NetworkServiceRemoveExternalMembersResponse\x121\n" +
- "\x06switch\x18\x01 \x01(\v2\x19.metalstack.api.v2.SwitchR\x06switch2\xcf\b\n" +
+ "\amembers\x18\x01 \x03(\v2(.metalstack.api.v2.ExternalNetworkMemberR\amembers\"a\n" +
+ "(NetworkServiceAddExternalMembersResponse\x125\n" +
+ "\bswitches\x18\x01 \x03(\v2\x19.metalstack.api.v2.SwitchR\bswitches\"d\n" +
+ "+NetworkServiceRemoveExternalMembersResponse\x125\n" +
+ "\bswitches\x18\x01 \x03(\v2\x19.metalstack.api.v2.SwitchR\bswitches2\xcf\b\n" +
"\x0eNetworkService\x12p\n" +
"\x03Get\x12-.metalstack.admin.v2.NetworkServiceGetRequest\x1a..metalstack.admin.v2.NetworkServiceGetResponse\"\n" +
"\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x12x\n" +
@@ -1200,8 +1200,8 @@ var file_metalstack_admin_v2_network_proto_depIdxs = []int32{
16, // 19: metalstack.admin.v2.NetworkServiceDeleteResponse.network:type_name -> metalstack.api.v2.Network
16, // 20: metalstack.admin.v2.NetworkServiceListResponse.networks:type_name -> metalstack.api.v2.Network
26, // 21: metalstack.admin.v2.NetworkServiceListExternalMembersResponse.members:type_name -> metalstack.api.v2.ExternalNetworkMember
- 27, // 22: metalstack.admin.v2.NetworkServiceAddExternalMembersResponse.switch:type_name -> metalstack.api.v2.Switch
- 27, // 23: metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse.switch:type_name -> metalstack.api.v2.Switch
+ 27, // 22: metalstack.admin.v2.NetworkServiceAddExternalMembersResponse.switches:type_name -> metalstack.api.v2.Switch
+ 27, // 23: metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse.switches:type_name -> metalstack.api.v2.Switch
0, // 24: metalstack.admin.v2.NetworkService.Get:input_type -> metalstack.admin.v2.NetworkServiceGetRequest
2, // 25: metalstack.admin.v2.NetworkService.Create:input_type -> metalstack.admin.v2.NetworkServiceCreateRequest
3, // 26: metalstack.admin.v2.NetworkService.Update:input_type -> metalstack.admin.v2.NetworkServiceUpdateRequest
diff --git a/js/metalstack/admin/v2/network_pb.d.ts b/js/metalstack/admin/v2/network_pb.d.ts
index 69abe427..4f46523f 100644
--- a/js/metalstack/admin/v2/network_pb.d.ts
+++ b/js/metalstack/admin/v2/network_pb.d.ts
@@ -447,11 +447,11 @@ export declare const NetworkServiceListExternalMembersResponseSchema: GenMessage
*/
export type NetworkServiceAddExternalMembersResponse = Message<"metalstack.admin.v2.NetworkServiceAddExternalMembersResponse"> & {
/**
- * Switch contains the updated switch.
+ * Switch contains the updated switches.
*
- * @generated from field: metalstack.api.v2.Switch switch = 1;
+ * @generated from field: repeated metalstack.api.v2.Switch switches = 1;
*/
- switch?: Switch | undefined;
+ switches: Switch[];
};
/**
* Describes the message metalstack.admin.v2.NetworkServiceAddExternalMembersResponse.
@@ -465,11 +465,11 @@ export declare const NetworkServiceAddExternalMembersResponseSchema: GenMessage<
*/
export type NetworkServiceRemoveExternalMembersResponse = Message<"metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse"> & {
/**
- * Switch contains the updated switch.
+ * Switch contains the updated switches.
*
- * @generated from field: metalstack.api.v2.Switch switch = 1;
+ * @generated from field: repeated metalstack.api.v2.Switch switches = 1;
*/
- switch?: Switch | undefined;
+ switches: Switch[];
};
/**
* Describes the message metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse.
diff --git a/js/metalstack/admin/v2/network_pb.js b/js/metalstack/admin/v2/network_pb.js
index afe9d17b..6977c1fa 100644
--- a/js/metalstack/admin/v2/network_pb.js
+++ b/js/metalstack/admin/v2/network_pb.js
@@ -10,7 +10,7 @@ import { file_metalstack_api_v2_switch } from "../../api/v2/switch_pb";
/**
* Describes the file metalstack/admin/v2/network.proto.
*/
-export const file_metalstack_admin_v2_network = /*@__PURE__*/ fileDesc("CiFtZXRhbHN0YWNrL2FkbWluL3YyL25ldHdvcmsucHJvdG8SE21ldGFsc3RhY2suYWRtaW4udjIiMwoYTmV0d29ya1NlcnZpY2VHZXRSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECASJIChlOZXR3b3JrU2VydmljZUdldFJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrItAHChtOZXR3b3JrU2VydmljZUNyZWF0ZVJlcXVlc3QSHAoCaWQYASABKAlCC7pICHIGwLOusQIBSACIAQESHgoEbmFtZRgCIAEoCUILukgIcgbAs66xAgFIAYgBARIlCgtkZXNjcmlwdGlvbhgDIAEoCUILukgIcgbIs66xAgFIAogBARIjCglwYXJ0aXRpb24YBCABKAlCC7pICHIG0LOusQIBSAOIAQESHgoHcHJvamVjdBgFIAEoCUIIukgFcgOwAQFIBIgBARI2CgR0eXBlGAYgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1R5cGVCCLpIBYIBAhABEi4KBmxhYmVscxgHIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVsc0gFiAEBEh4KCHByZWZpeGVzGAggAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCSADKAlCDLpICZIBBriks7ECARJJChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCiABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aBJFChdtaW5fY2hpbGRfcHJlZml4X2xlbmd0aBgLIAEoCzIkLm1ldGFsc3RhY2suYXBpLnYyLkNoaWxkUHJlZml4TGVuZ3RoEjsKCG5hdF90eXBlGAwgASgOMhoubWV0YWxzdGFjay5hcGkudjIuTkFUVHlwZUIIukgFggECEAFIBogBARIQCgN2cmYYDSABKA1IB4gBARIoCg5wYXJlbnRfbmV0d29yaxgOIAEoCUILukgIcgbAs66xAgFICIgBARIyChxhZGRpdGlvbmFsX2Fubm91bmNhYmxlX2NpZHJzGA8gAygJQgy6SAmSAQa4pLOxAgESOQoGbGVuZ3RoGBAgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhICYgBARJOCg5hZGRyZXNzX2ZhbWlseRgRIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgKiAEBQgUKA19pZEIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CDAoKX3BhcnRpdGlvbkIKCghfcHJvamVjdEIJCgdfbGFiZWxzQgsKCV9uYXRfdHlwZUIGCgRfdnJmQhEKD19wYXJlbnRfbmV0d29ya0IJCgdfbGVuZ3RoQhEKD19hZGRyZXNzX2ZhbWlseSLEBQobTmV0d29ya1NlcnZpY2VVcGRhdGVSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECARI6Cgt1cGRhdGVfbWV0YRgCIAEoCzIdLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZU1ldGFCBrpIA8gBARIeCgRuYW1lGAMgASgJQgu6SAhyBsCzrrECAUgAiAEBEiUKC2Rlc2NyaXB0aW9uGAQgASgJQgu6SAhyBsizrrECAUgBiAEBEjQKBmxhYmVscxgFIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZUxhYmVsc0gCiAEBEh4KCHByZWZpeGVzGAYgAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYByADKAlCDLpICZIBBriks7ECARJOChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCCABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aEgDiAEBEkoKF21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoGAkgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhIBIgBARI7CghuYXRfdHlwZRgKIAEoDjIaLm1ldGFsc3RhY2suYXBpLnYyLk5BVFR5cGVCCLpIBYIBAhABSAWIAQESMgocYWRkaXRpb25hbF9hbm5vdW5jYWJsZV9jaWRycxgLIAMoCUIMukgJkgEGuKSzsQIBEg0KBWZvcmNlGAwgASgIQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIJCgdfbGFiZWxzQh4KHF9kZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGhCGgoYX21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoQgsKCV9uYXRfdHlwZSI2ChtOZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBIksKGU5ldHdvcmtTZXJ2aWNlTGlzdFJlcXVlc3QSLgoFcXVlcnkYASABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrUXVlcnkihgEKKE5ldHdvcmtTZXJ2aWNlTGlzdEV4dGVybmFsTWVtYmVyc1JlcXVlc3QSHAoHbmV0d29yaxgBIAEoCUILukgIcgbAs66xAgESPAoFcXVlcnkYAiABKAsyLS5tZXRhbHN0YWNrLmFwaS52Mi5FeHRlcm5hbE5ldHdvcmtNZW1iZXJRdWVyeSKRAQonTmV0d29ya1NlcnZpY2VBZGRFeHRlcm5hbE1lbWJlcnNSZXF1ZXN0EhwKB25ldHdvcmsYASABKAlCC7pICHIGwLOusQIBEkgKDHN3aXRjaF9wb3J0cxgCIAMoCzIoLm1ldGFsc3RhY2suYXBpLnYyLkV4dGVybmFsTmV0d29ya01lbWJlckIIukgFkgECEAgilAEKKk5ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzUmVxdWVzdBIcCgduZXR3b3JrGAEgASgJQgu6SAhyBsCzrrECARJICgxzd2l0Y2hfcG9ydHMYAiADKAsyKC5tZXRhbHN0YWNrLmFwaS52Mi5FeHRlcm5hbE5ldHdvcmtNZW1iZXJCCLpIBZIBAhAIIksKHE5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsiSwocTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJLChxOZXR3b3JrU2VydmljZURlbGV0ZVJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrIkoKGk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJmCilOZXR3b3JrU2VydmljZUxpc3RFeHRlcm5hbE1lbWJlcnNSZXNwb25zZRI5CgdtZW1iZXJzGAEgAygLMigubWV0YWxzdGFjay5hcGkudjIuRXh0ZXJuYWxOZXR3b3JrTWVtYmVyIlUKKE5ldHdvcmtTZXJ2aWNlQWRkRXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2USKQoGc3dpdGNoGAEgASgLMhkubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoIlgKK05ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2USKQoGc3dpdGNoGAEgASgLMhkubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoMs8ICg5OZXR3b3JrU2VydmljZRJwCgNHZXQSLS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlR2V0UmVxdWVzdBouLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VHZXRSZXNwb25zZSIK0vMYAgEC4PMYAhJ4CgZDcmVhdGUSMC5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVxdWVzdBoxLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VDcmVhdGVSZXNwb25zZSIJ0vMYAQHg8xgBEngKBlVwZGF0ZRIwLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VVcGRhdGVSZXF1ZXN0GjEubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZVVwZGF0ZVJlc3BvbnNlIgnS8xgBAeDzGAESeAoGRGVsZXRlEjAubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QaMS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVzcG9uc2UiCdLzGAEB4PMYARJzCgRMaXN0Ei4ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUxpc3RSZXF1ZXN0Gi8ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUxpc3RSZXNwb25zZSIK0vMYAgEC4PMYAhKgAQoTTGlzdEV4dGVybmFsTWVtYmVycxI9Lm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VMaXN0RXh0ZXJuYWxNZW1iZXJzUmVxdWVzdBo+Lm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VMaXN0RXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2UiCtLzGAIBAuDzGAISnAEKEkFkZEV4dGVybmFsTWVtYmVycxI8Lm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VBZGRFeHRlcm5hbE1lbWJlcnNSZXF1ZXN0Gj0ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUFkZEV4dGVybmFsTWVtYmVyc1Jlc3BvbnNlIgnS8xgBAeDzGAESpQEKFVJlbW92ZUV4dGVybmFsTWVtYmVycxI/Lm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VSZW1vdmVFeHRlcm5hbE1lbWJlcnNSZXF1ZXN0GkAubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZVJlbW92ZUV4dGVybmFsTWVtYmVyc1Jlc3BvbnNlIgnS8xgBAeDzGAFC0AEKF2NvbS5tZXRhbHN0YWNrLmFkbWluLnYyQgxOZXR3b3JrUHJvdG9QAVo5Z2l0aHViLmNvbS9tZXRhbC1zdGFjay9hcGkvZ28vbWV0YWxzdGFjay9hZG1pbi92MjthZG1pbnYyogIDTUFYqgITTWV0YWxzdGFjay5BZG1pbi5WMsoCE01ldGFsc3RhY2tcQWRtaW5cVjLiAh9NZXRhbHN0YWNrXEFkbWluXFYyXEdQQk1ldGFkYXRh6gIVTWV0YWxzdGFjazo6QWRtaW46OlYyYgZwcm90bzM", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_network, file_metalstack_api_v2_predefined_rules, file_metalstack_api_v2_switch]);
+export const file_metalstack_admin_v2_network = /*@__PURE__*/ fileDesc("CiFtZXRhbHN0YWNrL2FkbWluL3YyL25ldHdvcmsucHJvdG8SE21ldGFsc3RhY2suYWRtaW4udjIiMwoYTmV0d29ya1NlcnZpY2VHZXRSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECASJIChlOZXR3b3JrU2VydmljZUdldFJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrItAHChtOZXR3b3JrU2VydmljZUNyZWF0ZVJlcXVlc3QSHAoCaWQYASABKAlCC7pICHIGwLOusQIBSACIAQESHgoEbmFtZRgCIAEoCUILukgIcgbAs66xAgFIAYgBARIlCgtkZXNjcmlwdGlvbhgDIAEoCUILukgIcgbIs66xAgFIAogBARIjCglwYXJ0aXRpb24YBCABKAlCC7pICHIG0LOusQIBSAOIAQESHgoHcHJvamVjdBgFIAEoCUIIukgFcgOwAQFIBIgBARI2CgR0eXBlGAYgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1R5cGVCCLpIBYIBAhABEi4KBmxhYmVscxgHIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVsc0gFiAEBEh4KCHByZWZpeGVzGAggAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCSADKAlCDLpICZIBBriks7ECARJJChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCiABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aBJFChdtaW5fY2hpbGRfcHJlZml4X2xlbmd0aBgLIAEoCzIkLm1ldGFsc3RhY2suYXBpLnYyLkNoaWxkUHJlZml4TGVuZ3RoEjsKCG5hdF90eXBlGAwgASgOMhoubWV0YWxzdGFjay5hcGkudjIuTkFUVHlwZUIIukgFggECEAFIBogBARIQCgN2cmYYDSABKA1IB4gBARIoCg5wYXJlbnRfbmV0d29yaxgOIAEoCUILukgIcgbAs66xAgFICIgBARIyChxhZGRpdGlvbmFsX2Fubm91bmNhYmxlX2NpZHJzGA8gAygJQgy6SAmSAQa4pLOxAgESOQoGbGVuZ3RoGBAgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhICYgBARJOCg5hZGRyZXNzX2ZhbWlseRgRIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgKiAEBQgUKA19pZEIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CDAoKX3BhcnRpdGlvbkIKCghfcHJvamVjdEIJCgdfbGFiZWxzQgsKCV9uYXRfdHlwZUIGCgRfdnJmQhEKD19wYXJlbnRfbmV0d29ya0IJCgdfbGVuZ3RoQhEKD19hZGRyZXNzX2ZhbWlseSLEBQobTmV0d29ya1NlcnZpY2VVcGRhdGVSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECARI6Cgt1cGRhdGVfbWV0YRgCIAEoCzIdLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZU1ldGFCBrpIA8gBARIeCgRuYW1lGAMgASgJQgu6SAhyBsCzrrECAUgAiAEBEiUKC2Rlc2NyaXB0aW9uGAQgASgJQgu6SAhyBsizrrECAUgBiAEBEjQKBmxhYmVscxgFIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZUxhYmVsc0gCiAEBEh4KCHByZWZpeGVzGAYgAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYByADKAlCDLpICZIBBriks7ECARJOChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCCABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aEgDiAEBEkoKF21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoGAkgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhIBIgBARI7CghuYXRfdHlwZRgKIAEoDjIaLm1ldGFsc3RhY2suYXBpLnYyLk5BVFR5cGVCCLpIBYIBAhABSAWIAQESMgocYWRkaXRpb25hbF9hbm5vdW5jYWJsZV9jaWRycxgLIAMoCUIMukgJkgEGuKSzsQIBEg0KBWZvcmNlGAwgASgIQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIJCgdfbGFiZWxzQh4KHF9kZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGhCGgoYX21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoQgsKCV9uYXRfdHlwZSI2ChtOZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBIksKGU5ldHdvcmtTZXJ2aWNlTGlzdFJlcXVlc3QSLgoFcXVlcnkYASABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrUXVlcnkihgEKKE5ldHdvcmtTZXJ2aWNlTGlzdEV4dGVybmFsTWVtYmVyc1JlcXVlc3QSHAoHbmV0d29yaxgBIAEoCUILukgIcgbAs66xAgESPAoFcXVlcnkYAiABKAsyLS5tZXRhbHN0YWNrLmFwaS52Mi5FeHRlcm5hbE5ldHdvcmtNZW1iZXJRdWVyeSKRAQonTmV0d29ya1NlcnZpY2VBZGRFeHRlcm5hbE1lbWJlcnNSZXF1ZXN0EhwKB25ldHdvcmsYASABKAlCC7pICHIGwLOusQIBEkgKDHN3aXRjaF9wb3J0cxgCIAMoCzIoLm1ldGFsc3RhY2suYXBpLnYyLkV4dGVybmFsTmV0d29ya01lbWJlckIIukgFkgECEAgilAEKKk5ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzUmVxdWVzdBIcCgduZXR3b3JrGAEgASgJQgu6SAhyBsCzrrECARJICgxzd2l0Y2hfcG9ydHMYAiADKAsyKC5tZXRhbHN0YWNrLmFwaS52Mi5FeHRlcm5hbE5ldHdvcmtNZW1iZXJCCLpIBZIBAhAIIksKHE5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsiSwocTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJLChxOZXR3b3JrU2VydmljZURlbGV0ZVJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrIkoKGk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJmCilOZXR3b3JrU2VydmljZUxpc3RFeHRlcm5hbE1lbWJlcnNSZXNwb25zZRI5CgdtZW1iZXJzGAEgAygLMigubWV0YWxzdGFjay5hcGkudjIuRXh0ZXJuYWxOZXR3b3JrTWVtYmVyIlcKKE5ldHdvcmtTZXJ2aWNlQWRkRXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2USKwoIc3dpdGNoZXMYASADKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2giWgorTmV0d29ya1NlcnZpY2VSZW1vdmVFeHRlcm5hbE1lbWJlcnNSZXNwb25zZRIrCghzd2l0Y2hlcxgBIAMoCzIZLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaDLPCAoOTmV0d29ya1NlcnZpY2UScAoDR2V0Ei0ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUdldFJlcXVlc3QaLi5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlR2V0UmVzcG9uc2UiCtLzGAIBAuDzGAISeAoGQ3JlYXRlEjAubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUNyZWF0ZVJlcXVlc3QaMS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVzcG9uc2UiCdLzGAEB4PMYARJ4CgZVcGRhdGUSMC5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlVXBkYXRlUmVxdWVzdBoxLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZSIJ0vMYAQHg8xgBEngKBkRlbGV0ZRIwLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VEZWxldGVSZXF1ZXN0GjEubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZURlbGV0ZVJlc3BvbnNlIgnS8xgBAeDzGAEScwoETGlzdBIuLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VMaXN0UmVxdWVzdBovLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VMaXN0UmVzcG9uc2UiCtLzGAIBAuDzGAISoAEKE0xpc3RFeHRlcm5hbE1lbWJlcnMSPS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdEV4dGVybmFsTWVtYmVyc1JlcXVlc3QaPi5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdEV4dGVybmFsTWVtYmVyc1Jlc3BvbnNlIgrS8xgCAQLg8xgCEpwBChJBZGRFeHRlcm5hbE1lbWJlcnMSPC5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlQWRkRXh0ZXJuYWxNZW1iZXJzUmVxdWVzdBo9Lm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VBZGRFeHRlcm5hbE1lbWJlcnNSZXNwb25zZSIJ0vMYAQHg8xgBEqUBChVSZW1vdmVFeHRlcm5hbE1lbWJlcnMSPy5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzUmVxdWVzdBpALm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VSZW1vdmVFeHRlcm5hbE1lbWJlcnNSZXNwb25zZSIJ0vMYAQHg8xgBQtABChdjb20ubWV0YWxzdGFjay5hZG1pbi52MkIMTmV0d29ya1Byb3RvUAFaOWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYWRtaW4vdjI7YWRtaW52MqICA01BWKoCE01ldGFsc3RhY2suQWRtaW4uVjLKAhNNZXRhbHN0YWNrXEFkbWluXFYy4gIfTWV0YWxzdGFja1xBZG1pblxWMlxHUEJNZXRhZGF0YeoCFU1ldGFsc3RhY2s6OkFkbWluOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_network, file_metalstack_api_v2_predefined_rules, file_metalstack_api_v2_switch]);
/**
* Describes the message metalstack.admin.v2.NetworkServiceGetRequest.
* Use `create(NetworkServiceGetRequestSchema)` to create a new message.
diff --git a/js/metalstack/admin/v2/network_pb.ts b/js/metalstack/admin/v2/network_pb.ts
index 1853919f..bbf16050 100644
--- a/js/metalstack/admin/v2/network_pb.ts
+++ b/js/metalstack/admin/v2/network_pb.ts
@@ -18,7 +18,7 @@ import type { Message } from "@bufbuild/protobuf";
* Describes the file metalstack/admin/v2/network.proto.
*/
export const file_metalstack_admin_v2_network: GenFile = /*@__PURE__*/
- fileDesc("CiFtZXRhbHN0YWNrL2FkbWluL3YyL25ldHdvcmsucHJvdG8SE21ldGFsc3RhY2suYWRtaW4udjIiMwoYTmV0d29ya1NlcnZpY2VHZXRSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECASJIChlOZXR3b3JrU2VydmljZUdldFJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrItAHChtOZXR3b3JrU2VydmljZUNyZWF0ZVJlcXVlc3QSHAoCaWQYASABKAlCC7pICHIGwLOusQIBSACIAQESHgoEbmFtZRgCIAEoCUILukgIcgbAs66xAgFIAYgBARIlCgtkZXNjcmlwdGlvbhgDIAEoCUILukgIcgbIs66xAgFIAogBARIjCglwYXJ0aXRpb24YBCABKAlCC7pICHIG0LOusQIBSAOIAQESHgoHcHJvamVjdBgFIAEoCUIIukgFcgOwAQFIBIgBARI2CgR0eXBlGAYgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1R5cGVCCLpIBYIBAhABEi4KBmxhYmVscxgHIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVsc0gFiAEBEh4KCHByZWZpeGVzGAggAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCSADKAlCDLpICZIBBriks7ECARJJChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCiABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aBJFChdtaW5fY2hpbGRfcHJlZml4X2xlbmd0aBgLIAEoCzIkLm1ldGFsc3RhY2suYXBpLnYyLkNoaWxkUHJlZml4TGVuZ3RoEjsKCG5hdF90eXBlGAwgASgOMhoubWV0YWxzdGFjay5hcGkudjIuTkFUVHlwZUIIukgFggECEAFIBogBARIQCgN2cmYYDSABKA1IB4gBARIoCg5wYXJlbnRfbmV0d29yaxgOIAEoCUILukgIcgbAs66xAgFICIgBARIyChxhZGRpdGlvbmFsX2Fubm91bmNhYmxlX2NpZHJzGA8gAygJQgy6SAmSAQa4pLOxAgESOQoGbGVuZ3RoGBAgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhICYgBARJOCg5hZGRyZXNzX2ZhbWlseRgRIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgKiAEBQgUKA19pZEIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CDAoKX3BhcnRpdGlvbkIKCghfcHJvamVjdEIJCgdfbGFiZWxzQgsKCV9uYXRfdHlwZUIGCgRfdnJmQhEKD19wYXJlbnRfbmV0d29ya0IJCgdfbGVuZ3RoQhEKD19hZGRyZXNzX2ZhbWlseSLEBQobTmV0d29ya1NlcnZpY2VVcGRhdGVSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECARI6Cgt1cGRhdGVfbWV0YRgCIAEoCzIdLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZU1ldGFCBrpIA8gBARIeCgRuYW1lGAMgASgJQgu6SAhyBsCzrrECAUgAiAEBEiUKC2Rlc2NyaXB0aW9uGAQgASgJQgu6SAhyBsizrrECAUgBiAEBEjQKBmxhYmVscxgFIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZUxhYmVsc0gCiAEBEh4KCHByZWZpeGVzGAYgAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYByADKAlCDLpICZIBBriks7ECARJOChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCCABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aEgDiAEBEkoKF21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoGAkgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhIBIgBARI7CghuYXRfdHlwZRgKIAEoDjIaLm1ldGFsc3RhY2suYXBpLnYyLk5BVFR5cGVCCLpIBYIBAhABSAWIAQESMgocYWRkaXRpb25hbF9hbm5vdW5jYWJsZV9jaWRycxgLIAMoCUIMukgJkgEGuKSzsQIBEg0KBWZvcmNlGAwgASgIQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIJCgdfbGFiZWxzQh4KHF9kZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGhCGgoYX21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoQgsKCV9uYXRfdHlwZSI2ChtOZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBIksKGU5ldHdvcmtTZXJ2aWNlTGlzdFJlcXVlc3QSLgoFcXVlcnkYASABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrUXVlcnkihgEKKE5ldHdvcmtTZXJ2aWNlTGlzdEV4dGVybmFsTWVtYmVyc1JlcXVlc3QSHAoHbmV0d29yaxgBIAEoCUILukgIcgbAs66xAgESPAoFcXVlcnkYAiABKAsyLS5tZXRhbHN0YWNrLmFwaS52Mi5FeHRlcm5hbE5ldHdvcmtNZW1iZXJRdWVyeSKRAQonTmV0d29ya1NlcnZpY2VBZGRFeHRlcm5hbE1lbWJlcnNSZXF1ZXN0EhwKB25ldHdvcmsYASABKAlCC7pICHIGwLOusQIBEkgKDHN3aXRjaF9wb3J0cxgCIAMoCzIoLm1ldGFsc3RhY2suYXBpLnYyLkV4dGVybmFsTmV0d29ya01lbWJlckIIukgFkgECEAgilAEKKk5ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzUmVxdWVzdBIcCgduZXR3b3JrGAEgASgJQgu6SAhyBsCzrrECARJICgxzd2l0Y2hfcG9ydHMYAiADKAsyKC5tZXRhbHN0YWNrLmFwaS52Mi5FeHRlcm5hbE5ldHdvcmtNZW1iZXJCCLpIBZIBAhAIIksKHE5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsiSwocTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJLChxOZXR3b3JrU2VydmljZURlbGV0ZVJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrIkoKGk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJmCilOZXR3b3JrU2VydmljZUxpc3RFeHRlcm5hbE1lbWJlcnNSZXNwb25zZRI5CgdtZW1iZXJzGAEgAygLMigubWV0YWxzdGFjay5hcGkudjIuRXh0ZXJuYWxOZXR3b3JrTWVtYmVyIlUKKE5ldHdvcmtTZXJ2aWNlQWRkRXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2USKQoGc3dpdGNoGAEgASgLMhkubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoIlgKK05ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2USKQoGc3dpdGNoGAEgASgLMhkubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoMs8ICg5OZXR3b3JrU2VydmljZRJwCgNHZXQSLS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlR2V0UmVxdWVzdBouLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VHZXRSZXNwb25zZSIK0vMYAgEC4PMYAhJ4CgZDcmVhdGUSMC5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVxdWVzdBoxLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VDcmVhdGVSZXNwb25zZSIJ0vMYAQHg8xgBEngKBlVwZGF0ZRIwLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VVcGRhdGVSZXF1ZXN0GjEubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZVVwZGF0ZVJlc3BvbnNlIgnS8xgBAeDzGAESeAoGRGVsZXRlEjAubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QaMS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVzcG9uc2UiCdLzGAEB4PMYARJzCgRMaXN0Ei4ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUxpc3RSZXF1ZXN0Gi8ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUxpc3RSZXNwb25zZSIK0vMYAgEC4PMYAhKgAQoTTGlzdEV4dGVybmFsTWVtYmVycxI9Lm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VMaXN0RXh0ZXJuYWxNZW1iZXJzUmVxdWVzdBo+Lm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VMaXN0RXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2UiCtLzGAIBAuDzGAISnAEKEkFkZEV4dGVybmFsTWVtYmVycxI8Lm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VBZGRFeHRlcm5hbE1lbWJlcnNSZXF1ZXN0Gj0ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUFkZEV4dGVybmFsTWVtYmVyc1Jlc3BvbnNlIgnS8xgBAeDzGAESpQEKFVJlbW92ZUV4dGVybmFsTWVtYmVycxI/Lm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VSZW1vdmVFeHRlcm5hbE1lbWJlcnNSZXF1ZXN0GkAubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZVJlbW92ZUV4dGVybmFsTWVtYmVyc1Jlc3BvbnNlIgnS8xgBAeDzGAFC0AEKF2NvbS5tZXRhbHN0YWNrLmFkbWluLnYyQgxOZXR3b3JrUHJvdG9QAVo5Z2l0aHViLmNvbS9tZXRhbC1zdGFjay9hcGkvZ28vbWV0YWxzdGFjay9hZG1pbi92MjthZG1pbnYyogIDTUFYqgITTWV0YWxzdGFjay5BZG1pbi5WMsoCE01ldGFsc3RhY2tcQWRtaW5cVjLiAh9NZXRhbHN0YWNrXEFkbWluXFYyXEdQQk1ldGFkYXRh6gIVTWV0YWxzdGFjazo6QWRtaW46OlYyYgZwcm90bzM", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_network, file_metalstack_api_v2_predefined_rules, file_metalstack_api_v2_switch]);
+ fileDesc("CiFtZXRhbHN0YWNrL2FkbWluL3YyL25ldHdvcmsucHJvdG8SE21ldGFsc3RhY2suYWRtaW4udjIiMwoYTmV0d29ya1NlcnZpY2VHZXRSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECASJIChlOZXR3b3JrU2VydmljZUdldFJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrItAHChtOZXR3b3JrU2VydmljZUNyZWF0ZVJlcXVlc3QSHAoCaWQYASABKAlCC7pICHIGwLOusQIBSACIAQESHgoEbmFtZRgCIAEoCUILukgIcgbAs66xAgFIAYgBARIlCgtkZXNjcmlwdGlvbhgDIAEoCUILukgIcgbIs66xAgFIAogBARIjCglwYXJ0aXRpb24YBCABKAlCC7pICHIG0LOusQIBSAOIAQESHgoHcHJvamVjdBgFIAEoCUIIukgFcgOwAQFIBIgBARI2CgR0eXBlGAYgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1R5cGVCCLpIBYIBAhABEi4KBmxhYmVscxgHIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVsc0gFiAEBEh4KCHByZWZpeGVzGAggAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCSADKAlCDLpICZIBBriks7ECARJJChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCiABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aBJFChdtaW5fY2hpbGRfcHJlZml4X2xlbmd0aBgLIAEoCzIkLm1ldGFsc3RhY2suYXBpLnYyLkNoaWxkUHJlZml4TGVuZ3RoEjsKCG5hdF90eXBlGAwgASgOMhoubWV0YWxzdGFjay5hcGkudjIuTkFUVHlwZUIIukgFggECEAFIBogBARIQCgN2cmYYDSABKA1IB4gBARIoCg5wYXJlbnRfbmV0d29yaxgOIAEoCUILukgIcgbAs66xAgFICIgBARIyChxhZGRpdGlvbmFsX2Fubm91bmNhYmxlX2NpZHJzGA8gAygJQgy6SAmSAQa4pLOxAgESOQoGbGVuZ3RoGBAgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhICYgBARJOCg5hZGRyZXNzX2ZhbWlseRgRIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgKiAEBQgUKA19pZEIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CDAoKX3BhcnRpdGlvbkIKCghfcHJvamVjdEIJCgdfbGFiZWxzQgsKCV9uYXRfdHlwZUIGCgRfdnJmQhEKD19wYXJlbnRfbmV0d29ya0IJCgdfbGVuZ3RoQhEKD19hZGRyZXNzX2ZhbWlseSLEBQobTmV0d29ya1NlcnZpY2VVcGRhdGVSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECARI6Cgt1cGRhdGVfbWV0YRgCIAEoCzIdLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZU1ldGFCBrpIA8gBARIeCgRuYW1lGAMgASgJQgu6SAhyBsCzrrECAUgAiAEBEiUKC2Rlc2NyaXB0aW9uGAQgASgJQgu6SAhyBsizrrECAUgBiAEBEjQKBmxhYmVscxgFIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZUxhYmVsc0gCiAEBEh4KCHByZWZpeGVzGAYgAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYByADKAlCDLpICZIBBriks7ECARJOChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCCABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aEgDiAEBEkoKF21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoGAkgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhIBIgBARI7CghuYXRfdHlwZRgKIAEoDjIaLm1ldGFsc3RhY2suYXBpLnYyLk5BVFR5cGVCCLpIBYIBAhABSAWIAQESMgocYWRkaXRpb25hbF9hbm5vdW5jYWJsZV9jaWRycxgLIAMoCUIMukgJkgEGuKSzsQIBEg0KBWZvcmNlGAwgASgIQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIJCgdfbGFiZWxzQh4KHF9kZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGhCGgoYX21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoQgsKCV9uYXRfdHlwZSI2ChtOZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBIksKGU5ldHdvcmtTZXJ2aWNlTGlzdFJlcXVlc3QSLgoFcXVlcnkYASABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrUXVlcnkihgEKKE5ldHdvcmtTZXJ2aWNlTGlzdEV4dGVybmFsTWVtYmVyc1JlcXVlc3QSHAoHbmV0d29yaxgBIAEoCUILukgIcgbAs66xAgESPAoFcXVlcnkYAiABKAsyLS5tZXRhbHN0YWNrLmFwaS52Mi5FeHRlcm5hbE5ldHdvcmtNZW1iZXJRdWVyeSKRAQonTmV0d29ya1NlcnZpY2VBZGRFeHRlcm5hbE1lbWJlcnNSZXF1ZXN0EhwKB25ldHdvcmsYASABKAlCC7pICHIGwLOusQIBEkgKDHN3aXRjaF9wb3J0cxgCIAMoCzIoLm1ldGFsc3RhY2suYXBpLnYyLkV4dGVybmFsTmV0d29ya01lbWJlckIIukgFkgECEAgilAEKKk5ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzUmVxdWVzdBIcCgduZXR3b3JrGAEgASgJQgu6SAhyBsCzrrECARJICgxzd2l0Y2hfcG9ydHMYAiADKAsyKC5tZXRhbHN0YWNrLmFwaS52Mi5FeHRlcm5hbE5ldHdvcmtNZW1iZXJCCLpIBZIBAhAIIksKHE5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsiSwocTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJLChxOZXR3b3JrU2VydmljZURlbGV0ZVJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrIkoKGk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJmCilOZXR3b3JrU2VydmljZUxpc3RFeHRlcm5hbE1lbWJlcnNSZXNwb25zZRI5CgdtZW1iZXJzGAEgAygLMigubWV0YWxzdGFjay5hcGkudjIuRXh0ZXJuYWxOZXR3b3JrTWVtYmVyIlcKKE5ldHdvcmtTZXJ2aWNlQWRkRXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2USKwoIc3dpdGNoZXMYASADKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2giWgorTmV0d29ya1NlcnZpY2VSZW1vdmVFeHRlcm5hbE1lbWJlcnNSZXNwb25zZRIrCghzd2l0Y2hlcxgBIAMoCzIZLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaDLPCAoOTmV0d29ya1NlcnZpY2UScAoDR2V0Ei0ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUdldFJlcXVlc3QaLi5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlR2V0UmVzcG9uc2UiCtLzGAIBAuDzGAISeAoGQ3JlYXRlEjAubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUNyZWF0ZVJlcXVlc3QaMS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVzcG9uc2UiCdLzGAEB4PMYARJ4CgZVcGRhdGUSMC5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlVXBkYXRlUmVxdWVzdBoxLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZSIJ0vMYAQHg8xgBEngKBkRlbGV0ZRIwLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VEZWxldGVSZXF1ZXN0GjEubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZURlbGV0ZVJlc3BvbnNlIgnS8xgBAeDzGAEScwoETGlzdBIuLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VMaXN0UmVxdWVzdBovLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VMaXN0UmVzcG9uc2UiCtLzGAIBAuDzGAISoAEKE0xpc3RFeHRlcm5hbE1lbWJlcnMSPS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdEV4dGVybmFsTWVtYmVyc1JlcXVlc3QaPi5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdEV4dGVybmFsTWVtYmVyc1Jlc3BvbnNlIgrS8xgCAQLg8xgCEpwBChJBZGRFeHRlcm5hbE1lbWJlcnMSPC5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlQWRkRXh0ZXJuYWxNZW1iZXJzUmVxdWVzdBo9Lm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VBZGRFeHRlcm5hbE1lbWJlcnNSZXNwb25zZSIJ0vMYAQHg8xgBEqUBChVSZW1vdmVFeHRlcm5hbE1lbWJlcnMSPy5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzUmVxdWVzdBpALm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VSZW1vdmVFeHRlcm5hbE1lbWJlcnNSZXNwb25zZSIJ0vMYAQHg8xgBQtABChdjb20ubWV0YWxzdGFjay5hZG1pbi52MkIMTmV0d29ya1Byb3RvUAFaOWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYWRtaW4vdjI7YWRtaW52MqICA01BWKoCE01ldGFsc3RhY2suQWRtaW4uVjLKAhNNZXRhbHN0YWNrXEFkbWluXFYy4gIfTWV0YWxzdGFja1xBZG1pblxWMlxHUEJNZXRhZGF0YeoCFU1ldGFsc3RhY2s6OkFkbWluOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_network, file_metalstack_api_v2_predefined_rules, file_metalstack_api_v2_switch]);
/**
* NetworkServiceGetRequest is the request payload for getting a network.
@@ -532,11 +532,11 @@ export const NetworkServiceListExternalMembersResponseSchema: GenMessage & {
/**
- * Switch contains the updated switch.
+ * Switch contains the updated switches.
*
- * @generated from field: metalstack.api.v2.Switch switch = 1;
+ * @generated from field: repeated metalstack.api.v2.Switch switches = 1;
*/
- switch?: Switch | undefined;
+ switches: Switch[];
};
/**
@@ -553,11 +553,11 @@ export const NetworkServiceAddExternalMembersResponseSchema: GenMessage & {
/**
- * Switch contains the updated switch.
+ * Switch contains the updated switches.
*
- * @generated from field: metalstack.api.v2.Switch switch = 1;
+ * @generated from field: repeated metalstack.api.v2.Switch switches = 1;
*/
- switch?: Switch | undefined;
+ switches: Switch[];
};
/**
diff --git a/proto/metalstack/admin/v2/network.proto b/proto/metalstack/admin/v2/network.proto
index 7206c744..5ed3e269 100644
--- a/proto/metalstack/admin/v2/network.proto
+++ b/proto/metalstack/admin/v2/network.proto
@@ -203,12 +203,12 @@ message NetworkServiceListExternalMembersResponse {
// NetworkServiceAddExternalMemberResponse is the response payload for adding an external member to a network.
message NetworkServiceAddExternalMembersResponse {
- // Switch contains the updated switch.
- metalstack.api.v2.Switch switch = 1;
+ // Switch contains the updated switches.
+ repeated metalstack.api.v2.Switch switches = 1;
}
// NetworkServiceRemoveExternalMemberResponse is the response payload for removing an external member from a network.
message NetworkServiceRemoveExternalMembersResponse {
- // Switch contains the updated switch.
- metalstack.api.v2.Switch switch = 1;
+ // Switch contains the updated switches.
+ repeated metalstack.api.v2.Switch switches = 1;
}
diff --git a/python/metalstack/admin/v2/network_pb2.py b/python/metalstack/admin/v2/network_pb2.py
index d4fb2699..45e7bd07 100644
--- a/python/metalstack/admin/v2/network_pb2.py
+++ b/python/metalstack/admin/v2/network_pb2.py
@@ -29,7 +29,7 @@
from metalstack.api.v2 import switch_pb2 as metalstack_dot_api_dot_v2_dot_switch__pb2
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!metalstack/admin/v2/network.proto\x12\x13metalstack.admin.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1emetalstack/api/v2/common.proto\x1a\x1fmetalstack/api/v2/network.proto\x1a(metalstack/api/v2/predefined_rules.proto\x1a\x1emetalstack/api/v2/switch.proto\"7\n\x18NetworkServiceGetRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\"Q\n\x19NetworkServiceGetResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"\xa8\t\n\x1bNetworkServiceCreateRequest\x12 \n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x02id\x88\x01\x01\x12$\n\x04name\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x04name\x88\x01\x01\x12\x32\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x02R\x0b\x64\x65scription\x88\x01\x01\x12.\n\tpartition\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x03R\tpartition\x88\x01\x01\x12\'\n\x07project\x18\x05 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x04R\x07project\x88\x01\x01\x12<\n\x04type\x18\x06 \x01(\x0e\x32\x1e.metalstack.api.v2.NetworkTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x04type\x12\x36\n\x06labels\x18\x07 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsH\x05R\x06labels\x88\x01\x01\x12(\n\x08prefixes\x18\x08 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x08prefixes\x12?\n\x14\x64\x65stination_prefixes\x18\t \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x13\x64\x65stinationPrefixes\x12\x63\n\x1b\x64\x65\x66\x61ult_child_prefix_length\x18\n \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthR\x18\x64\x65\x66\x61ultChildPrefixLength\x12[\n\x17min_child_prefix_length\x18\x0b \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthR\x14minChildPrefixLength\x12\x44\n\x08nat_type\x18\x0c \x01(\x0e\x32\x1a.metalstack.api.v2.NATTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x06R\x07natType\x88\x01\x01\x12\x15\n\x03vrf\x18\r \x01(\rH\x07R\x03vrf\x88\x01\x01\x12\x37\n\x0eparent_network\x18\x0e \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x08R\rparentNetwork\x88\x01\x01\x12N\n\x1c\x61\x64\x64itional_announcable_cidrs\x18\x0f \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x1a\x61\x64\x64itionalAnnouncableCidrs\x12\x41\n\x06length\x18\x10 \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthH\tR\x06length\x88\x01\x01\x12]\n\x0e\x61\x64\x64ress_family\x18\x11 \x01(\x0e\x32\'.metalstack.api.v2.NetworkAddressFamilyB\x08\xbaH\x05\x82\x01\x02\x10\x01H\nR\raddressFamily\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0c\n\n_partitionB\n\n\x08_projectB\t\n\x07_labelsB\x0b\n\t_nat_typeB\x06\n\x04_vrfB\x11\n\x0f_parent_networkB\t\n\x07_lengthB\x11\n\x0f_address_family\"\xea\x06\n\x1bNetworkServiceUpdateRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\x12\x46\n\x0bupdate_meta\x18\x02 \x01(\x0b\x32\x1d.metalstack.api.v2.UpdateMetaB\x06\xbaH\x03\xc8\x01\x01R\nupdateMeta\x12$\n\x04name\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x04name\x88\x01\x01\x12\x32\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x01R\x0b\x64\x65scription\x88\x01\x01\x12<\n\x06labels\x18\x05 \x01(\x0b\x32\x1f.metalstack.api.v2.UpdateLabelsH\x02R\x06labels\x88\x01\x01\x12(\n\x08prefixes\x18\x06 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x08prefixes\x12?\n\x14\x64\x65stination_prefixes\x18\x07 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x13\x64\x65stinationPrefixes\x12h\n\x1b\x64\x65\x66\x61ult_child_prefix_length\x18\x08 \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthH\x03R\x18\x64\x65\x66\x61ultChildPrefixLength\x88\x01\x01\x12`\n\x17min_child_prefix_length\x18\t \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthH\x04R\x14minChildPrefixLength\x88\x01\x01\x12\x44\n\x08nat_type\x18\n \x01(\x0e\x32\x1a.metalstack.api.v2.NATTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x05R\x07natType\x88\x01\x01\x12N\n\x1c\x61\x64\x64itional_announcable_cidrs\x18\x0b \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x1a\x61\x64\x64itionalAnnouncableCidrs\x12\x14\n\x05\x66orce\x18\x0c \x01(\x08R\x05\x66orceB\x07\n\x05_nameB\x0e\n\x0c_descriptionB\t\n\x07_labelsB\x1e\n\x1c_default_child_prefix_lengthB\x1a\n\x18_min_child_prefix_lengthB\x0b\n\t_nat_type\":\n\x1bNetworkServiceDeleteRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\"R\n\x19NetworkServiceListRequest\x12\x35\n\x05query\x18\x01 \x01(\x0b\x32\x1f.metalstack.api.v2.NetworkQueryR\x05query\"\x96\x01\n(NetworkServiceListExternalMembersRequest\x12%\n\x07network\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07network\x12\x43\n\x05query\x18\x02 \x01(\x0b\x32-.metalstack.api.v2.ExternalNetworkMemberQueryR\x05query\"\xa7\x01\n\'NetworkServiceAddExternalMembersRequest\x12%\n\x07network\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07network\x12U\n\x0cswitch_ports\x18\x02 \x03(\x0b\x32(.metalstack.api.v2.ExternalNetworkMemberB\x08\xbaH\x05\x92\x01\x02\x10\x08R\x0bswitchPorts\"\xaa\x01\n*NetworkServiceRemoveExternalMembersRequest\x12%\n\x07network\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07network\x12U\n\x0cswitch_ports\x18\x02 \x03(\x0b\x32(.metalstack.api.v2.ExternalNetworkMemberB\x08\xbaH\x05\x92\x01\x02\x10\x08R\x0bswitchPorts\"T\n\x1cNetworkServiceCreateResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"T\n\x1cNetworkServiceUpdateResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"T\n\x1cNetworkServiceDeleteResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"T\n\x1aNetworkServiceListResponse\x12\x36\n\x08networks\x18\x01 \x03(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x08networks\"o\n)NetworkServiceListExternalMembersResponse\x12\x42\n\x07members\x18\x01 \x03(\x0b\x32(.metalstack.api.v2.ExternalNetworkMemberR\x07members\"]\n(NetworkServiceAddExternalMembersResponse\x12\x31\n\x06switch\x18\x01 \x01(\x0b\x32\x19.metalstack.api.v2.SwitchR\x06switch\"`\n+NetworkServiceRemoveExternalMembersResponse\x12\x31\n\x06switch\x18\x01 \x01(\x0b\x32\x19.metalstack.api.v2.SwitchR\x06switch2\xcf\x08\n\x0eNetworkService\x12p\n\x03Get\x12-.metalstack.admin.v2.NetworkServiceGetRequest\x1a..metalstack.admin.v2.NetworkServiceGetResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x12x\n\x06\x43reate\x12\x30.metalstack.admin.v2.NetworkServiceCreateRequest\x1a\x31.metalstack.admin.v2.NetworkServiceCreateResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12x\n\x06Update\x12\x30.metalstack.admin.v2.NetworkServiceUpdateRequest\x1a\x31.metalstack.admin.v2.NetworkServiceUpdateResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12x\n\x06\x44\x65lete\x12\x30.metalstack.admin.v2.NetworkServiceDeleteRequest\x1a\x31.metalstack.admin.v2.NetworkServiceDeleteResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12s\n\x04List\x12..metalstack.admin.v2.NetworkServiceListRequest\x1a/.metalstack.admin.v2.NetworkServiceListResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x12\xa0\x01\n\x13ListExternalMembers\x12=.metalstack.admin.v2.NetworkServiceListExternalMembersRequest\x1a>.metalstack.admin.v2.NetworkServiceListExternalMembersResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x12\x9c\x01\n\x12\x41\x64\x64\x45xternalMembers\x12<.metalstack.admin.v2.NetworkServiceAddExternalMembersRequest\x1a=.metalstack.admin.v2.NetworkServiceAddExternalMembersResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12\xa5\x01\n\x15RemoveExternalMembers\x12?.metalstack.admin.v2.NetworkServiceRemoveExternalMembersRequest\x1a@.metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x42\xd0\x01\n\x17\x63om.metalstack.admin.v2B\x0cNetworkProtoP\x01Z9github.com/metal-stack/api/go/metalstack/admin/v2;adminv2\xa2\x02\x03MAX\xaa\x02\x13Metalstack.Admin.V2\xca\x02\x13Metalstack\\Admin\\V2\xe2\x02\x1fMetalstack\\Admin\\V2\\GPBMetadata\xea\x02\x15Metalstack::Admin::V2b\x06proto3')
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!metalstack/admin/v2/network.proto\x12\x13metalstack.admin.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1emetalstack/api/v2/common.proto\x1a\x1fmetalstack/api/v2/network.proto\x1a(metalstack/api/v2/predefined_rules.proto\x1a\x1emetalstack/api/v2/switch.proto\"7\n\x18NetworkServiceGetRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\"Q\n\x19NetworkServiceGetResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"\xa8\t\n\x1bNetworkServiceCreateRequest\x12 \n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x02id\x88\x01\x01\x12$\n\x04name\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x04name\x88\x01\x01\x12\x32\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x02R\x0b\x64\x65scription\x88\x01\x01\x12.\n\tpartition\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x03R\tpartition\x88\x01\x01\x12\'\n\x07project\x18\x05 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x04R\x07project\x88\x01\x01\x12<\n\x04type\x18\x06 \x01(\x0e\x32\x1e.metalstack.api.v2.NetworkTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x04type\x12\x36\n\x06labels\x18\x07 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsH\x05R\x06labels\x88\x01\x01\x12(\n\x08prefixes\x18\x08 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x08prefixes\x12?\n\x14\x64\x65stination_prefixes\x18\t \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x13\x64\x65stinationPrefixes\x12\x63\n\x1b\x64\x65\x66\x61ult_child_prefix_length\x18\n \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthR\x18\x64\x65\x66\x61ultChildPrefixLength\x12[\n\x17min_child_prefix_length\x18\x0b \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthR\x14minChildPrefixLength\x12\x44\n\x08nat_type\x18\x0c \x01(\x0e\x32\x1a.metalstack.api.v2.NATTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x06R\x07natType\x88\x01\x01\x12\x15\n\x03vrf\x18\r \x01(\rH\x07R\x03vrf\x88\x01\x01\x12\x37\n\x0eparent_network\x18\x0e \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x08R\rparentNetwork\x88\x01\x01\x12N\n\x1c\x61\x64\x64itional_announcable_cidrs\x18\x0f \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x1a\x61\x64\x64itionalAnnouncableCidrs\x12\x41\n\x06length\x18\x10 \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthH\tR\x06length\x88\x01\x01\x12]\n\x0e\x61\x64\x64ress_family\x18\x11 \x01(\x0e\x32\'.metalstack.api.v2.NetworkAddressFamilyB\x08\xbaH\x05\x82\x01\x02\x10\x01H\nR\raddressFamily\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0c\n\n_partitionB\n\n\x08_projectB\t\n\x07_labelsB\x0b\n\t_nat_typeB\x06\n\x04_vrfB\x11\n\x0f_parent_networkB\t\n\x07_lengthB\x11\n\x0f_address_family\"\xea\x06\n\x1bNetworkServiceUpdateRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\x12\x46\n\x0bupdate_meta\x18\x02 \x01(\x0b\x32\x1d.metalstack.api.v2.UpdateMetaB\x06\xbaH\x03\xc8\x01\x01R\nupdateMeta\x12$\n\x04name\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x04name\x88\x01\x01\x12\x32\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x01R\x0b\x64\x65scription\x88\x01\x01\x12<\n\x06labels\x18\x05 \x01(\x0b\x32\x1f.metalstack.api.v2.UpdateLabelsH\x02R\x06labels\x88\x01\x01\x12(\n\x08prefixes\x18\x06 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x08prefixes\x12?\n\x14\x64\x65stination_prefixes\x18\x07 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x13\x64\x65stinationPrefixes\x12h\n\x1b\x64\x65\x66\x61ult_child_prefix_length\x18\x08 \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthH\x03R\x18\x64\x65\x66\x61ultChildPrefixLength\x88\x01\x01\x12`\n\x17min_child_prefix_length\x18\t \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthH\x04R\x14minChildPrefixLength\x88\x01\x01\x12\x44\n\x08nat_type\x18\n \x01(\x0e\x32\x1a.metalstack.api.v2.NATTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x05R\x07natType\x88\x01\x01\x12N\n\x1c\x61\x64\x64itional_announcable_cidrs\x18\x0b \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x1a\x61\x64\x64itionalAnnouncableCidrs\x12\x14\n\x05\x66orce\x18\x0c \x01(\x08R\x05\x66orceB\x07\n\x05_nameB\x0e\n\x0c_descriptionB\t\n\x07_labelsB\x1e\n\x1c_default_child_prefix_lengthB\x1a\n\x18_min_child_prefix_lengthB\x0b\n\t_nat_type\":\n\x1bNetworkServiceDeleteRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\"R\n\x19NetworkServiceListRequest\x12\x35\n\x05query\x18\x01 \x01(\x0b\x32\x1f.metalstack.api.v2.NetworkQueryR\x05query\"\x96\x01\n(NetworkServiceListExternalMembersRequest\x12%\n\x07network\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07network\x12\x43\n\x05query\x18\x02 \x01(\x0b\x32-.metalstack.api.v2.ExternalNetworkMemberQueryR\x05query\"\xa7\x01\n\'NetworkServiceAddExternalMembersRequest\x12%\n\x07network\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07network\x12U\n\x0cswitch_ports\x18\x02 \x03(\x0b\x32(.metalstack.api.v2.ExternalNetworkMemberB\x08\xbaH\x05\x92\x01\x02\x10\x08R\x0bswitchPorts\"\xaa\x01\n*NetworkServiceRemoveExternalMembersRequest\x12%\n\x07network\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07network\x12U\n\x0cswitch_ports\x18\x02 \x03(\x0b\x32(.metalstack.api.v2.ExternalNetworkMemberB\x08\xbaH\x05\x92\x01\x02\x10\x08R\x0bswitchPorts\"T\n\x1cNetworkServiceCreateResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"T\n\x1cNetworkServiceUpdateResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"T\n\x1cNetworkServiceDeleteResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"T\n\x1aNetworkServiceListResponse\x12\x36\n\x08networks\x18\x01 \x03(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x08networks\"o\n)NetworkServiceListExternalMembersResponse\x12\x42\n\x07members\x18\x01 \x03(\x0b\x32(.metalstack.api.v2.ExternalNetworkMemberR\x07members\"a\n(NetworkServiceAddExternalMembersResponse\x12\x35\n\x08switches\x18\x01 \x03(\x0b\x32\x19.metalstack.api.v2.SwitchR\x08switches\"d\n+NetworkServiceRemoveExternalMembersResponse\x12\x35\n\x08switches\x18\x01 \x03(\x0b\x32\x19.metalstack.api.v2.SwitchR\x08switches2\xcf\x08\n\x0eNetworkService\x12p\n\x03Get\x12-.metalstack.admin.v2.NetworkServiceGetRequest\x1a..metalstack.admin.v2.NetworkServiceGetResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x12x\n\x06\x43reate\x12\x30.metalstack.admin.v2.NetworkServiceCreateRequest\x1a\x31.metalstack.admin.v2.NetworkServiceCreateResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12x\n\x06Update\x12\x30.metalstack.admin.v2.NetworkServiceUpdateRequest\x1a\x31.metalstack.admin.v2.NetworkServiceUpdateResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12x\n\x06\x44\x65lete\x12\x30.metalstack.admin.v2.NetworkServiceDeleteRequest\x1a\x31.metalstack.admin.v2.NetworkServiceDeleteResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12s\n\x04List\x12..metalstack.admin.v2.NetworkServiceListRequest\x1a/.metalstack.admin.v2.NetworkServiceListResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x12\xa0\x01\n\x13ListExternalMembers\x12=.metalstack.admin.v2.NetworkServiceListExternalMembersRequest\x1a>.metalstack.admin.v2.NetworkServiceListExternalMembersResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x12\x9c\x01\n\x12\x41\x64\x64\x45xternalMembers\x12<.metalstack.admin.v2.NetworkServiceAddExternalMembersRequest\x1a=.metalstack.admin.v2.NetworkServiceAddExternalMembersResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12\xa5\x01\n\x15RemoveExternalMembers\x12?.metalstack.admin.v2.NetworkServiceRemoveExternalMembersRequest\x1a@.metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x42\xd0\x01\n\x17\x63om.metalstack.admin.v2B\x0cNetworkProtoP\x01Z9github.com/metal-stack/api/go/metalstack/admin/v2;adminv2\xa2\x02\x03MAX\xaa\x02\x13Metalstack.Admin.V2\xca\x02\x13Metalstack\\Admin\\V2\xe2\x02\x1fMetalstack\\Admin\\V2\\GPBMetadata\xea\x02\x15Metalstack::Admin::V2b\x06proto3')
_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -136,9 +136,9 @@
_globals['_NETWORKSERVICELISTEXTERNALMEMBERSRESPONSE']._serialized_start=3422
_globals['_NETWORKSERVICELISTEXTERNALMEMBERSRESPONSE']._serialized_end=3533
_globals['_NETWORKSERVICEADDEXTERNALMEMBERSRESPONSE']._serialized_start=3535
- _globals['_NETWORKSERVICEADDEXTERNALMEMBERSRESPONSE']._serialized_end=3628
- _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSRESPONSE']._serialized_start=3630
- _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSRESPONSE']._serialized_end=3726
- _globals['_NETWORKSERVICE']._serialized_start=3729
- _globals['_NETWORKSERVICE']._serialized_end=4832
+ _globals['_NETWORKSERVICEADDEXTERNALMEMBERSRESPONSE']._serialized_end=3632
+ _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSRESPONSE']._serialized_start=3634
+ _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSRESPONSE']._serialized_end=3734
+ _globals['_NETWORKSERVICE']._serialized_start=3737
+ _globals['_NETWORKSERVICE']._serialized_end=4840
# @@protoc_insertion_point(module_scope)
diff --git a/python/metalstack/admin/v2/network_pb2.pyi b/python/metalstack/admin/v2/network_pb2.pyi
index 66be3370..cc76b3ee 100644
--- a/python/metalstack/admin/v2/network_pb2.pyi
+++ b/python/metalstack/admin/v2/network_pb2.pyi
@@ -156,13 +156,13 @@ class NetworkServiceListExternalMembersResponse(_message.Message):
def __init__(self, members: _Optional[_Iterable[_Union[_network_pb2.ExternalNetworkMember, _Mapping]]] = ...) -> None: ...
class NetworkServiceAddExternalMembersResponse(_message.Message):
- __slots__ = ("switch",)
- SWITCH_FIELD_NUMBER: _ClassVar[int]
- switch: _switch_pb2.Switch
- def __init__(self, switch: _Optional[_Union[_switch_pb2.Switch, _Mapping]] = ...) -> None: ...
+ __slots__ = ("switches",)
+ SWITCHES_FIELD_NUMBER: _ClassVar[int]
+ switches: _containers.RepeatedCompositeFieldContainer[_switch_pb2.Switch]
+ def __init__(self, switches: _Optional[_Iterable[_Union[_switch_pb2.Switch, _Mapping]]] = ...) -> None: ...
class NetworkServiceRemoveExternalMembersResponse(_message.Message):
- __slots__ = ("switch",)
- SWITCH_FIELD_NUMBER: _ClassVar[int]
- switch: _switch_pb2.Switch
- def __init__(self, switch: _Optional[_Union[_switch_pb2.Switch, _Mapping]] = ...) -> None: ...
+ __slots__ = ("switches",)
+ SWITCHES_FIELD_NUMBER: _ClassVar[int]
+ switches: _containers.RepeatedCompositeFieldContainer[_switch_pb2.Switch]
+ def __init__(self, switches: _Optional[_Iterable[_Union[_switch_pb2.Switch, _Mapping]]] = ...) -> None: ...
From b85c7f5a5a6241b9693547df3346b1c1b8af972d Mon Sep 17 00:00:00 2001
From: Ilja Rotar
Date: Mon, 31 Aug 2026 16:47:03 +0200
Subject: [PATCH 5/5] add and remove by rack
---
doc/index.html | 27 ++++--
go/metalstack/admin/v2/network.pb.go | 105 ++++++++++++---------
js/metalstack/admin/v2/network_pb.d.ts | 25 +++--
js/metalstack/admin/v2/network_pb.js | 2 +-
js/metalstack/admin/v2/network_pb.ts | 29 ++++--
proto/metalstack/admin/v2/network.proto | 19 +++-
python/metalstack/admin/v2/network_pb2.py | 52 +++++-----
python/metalstack/admin/v2/network_pb2.pyi | 20 ++--
8 files changed, 175 insertions(+), 104 deletions(-)
diff --git a/doc/index.html b/doc/index.html
index 7e2240ec..49147b12 100644
--- a/doc/index.html
+++ b/doc/index.html
@@ -14583,11 +14583,17 @@ NetworkServ
- | switch_ports |
- metalstack.api.v2.ExternalNetworkMember |
+ rack |
+ string |
+ |
+ Rack the members are connected to. |
+
+
+
+ | ports |
+ string |
repeated |
- SwitchPorts contains the ports of a switch that should be added to the network.
-Make sure to add both switches of a rack and the same ports of both in the same request. |
+ Ports of the switches to add to the network. |
@@ -14998,10 +15004,17 @@ NetworkS
- | switch_ports |
- metalstack.api.v2.ExternalNetworkMember |
+ rack |
+ string |
+ |
+ Rack the members are connected to. |
+
+
+
+ | ports |
+ string |
repeated |
- SwitchPorts contains the ports of a switch that should be removed from the network. |
+ Ports of the switches to remove from the network. |
diff --git a/go/metalstack/admin/v2/network.pb.go b/go/metalstack/admin/v2/network.pb.go
index 1e91f4e7..0035b979 100644
--- a/go/metalstack/admin/v2/network.pb.go
+++ b/go/metalstack/admin/v2/network.pb.go
@@ -602,9 +602,10 @@ type NetworkServiceAddExternalMembersRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
// Network to add the member to.
Network string `protobuf:"bytes,1,opt,name=network,proto3" json:"network,omitempty"`
- // SwitchPorts contains the ports of a switch that should be added to the network.
- // Make sure to add both switches of a rack and the same ports of both in the same request.
- SwitchPorts []*v2.ExternalNetworkMember `protobuf:"bytes,2,rep,name=switch_ports,json=switchPorts,proto3" json:"switch_ports,omitempty"`
+ // Rack the members are connected to.
+ Rack string `protobuf:"bytes,2,opt,name=rack,proto3" json:"rack,omitempty"`
+ // Ports of the switches to add to the network.
+ Ports []string `protobuf:"bytes,3,rep,name=ports,proto3" json:"ports,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@@ -646,9 +647,16 @@ func (x *NetworkServiceAddExternalMembersRequest) GetNetwork() string {
return ""
}
-func (x *NetworkServiceAddExternalMembersRequest) GetSwitchPorts() []*v2.ExternalNetworkMember {
+func (x *NetworkServiceAddExternalMembersRequest) GetRack() string {
if x != nil {
- return x.SwitchPorts
+ return x.Rack
+ }
+ return ""
+}
+
+func (x *NetworkServiceAddExternalMembersRequest) GetPorts() []string {
+ if x != nil {
+ return x.Ports
}
return nil
}
@@ -658,8 +666,10 @@ type NetworkServiceRemoveExternalMembersRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
// Network to remove the member from.
Network string `protobuf:"bytes,1,opt,name=network,proto3" json:"network,omitempty"`
- // SwitchPorts contains the ports of a switch that should be removed from the network.
- SwitchPorts []*v2.ExternalNetworkMember `protobuf:"bytes,2,rep,name=switch_ports,json=switchPorts,proto3" json:"switch_ports,omitempty"`
+ // Rack the members are connected to.
+ Rack string `protobuf:"bytes,2,opt,name=rack,proto3" json:"rack,omitempty"`
+ // Ports of the switches to remove from the network.
+ Ports []string `protobuf:"bytes,3,rep,name=ports,proto3" json:"ports,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@@ -701,9 +711,16 @@ func (x *NetworkServiceRemoveExternalMembersRequest) GetNetwork() string {
return ""
}
-func (x *NetworkServiceRemoveExternalMembersRequest) GetSwitchPorts() []*v2.ExternalNetworkMember {
+func (x *NetworkServiceRemoveExternalMembersRequest) GetRack() string {
+ if x != nil {
+ return x.Rack
+ }
+ return ""
+}
+
+func (x *NetworkServiceRemoveExternalMembersRequest) GetPorts() []string {
if x != nil {
- return x.SwitchPorts
+ return x.Ports
}
return nil
}
@@ -1099,13 +1116,15 @@ const file_metalstack_admin_v2_network_proto_rawDesc = "" +
"\x05query\x18\x01 \x01(\v2\x1f.metalstack.api.v2.NetworkQueryR\x05query\"\x96\x01\n" +
"(NetworkServiceListExternalMembersRequest\x12%\n" +
"\anetwork\x18\x01 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01R\anetwork\x12C\n" +
- "\x05query\x18\x02 \x01(\v2-.metalstack.api.v2.ExternalNetworkMemberQueryR\x05query\"\xa7\x01\n" +
+ "\x05query\x18\x02 \x01(\v2-.metalstack.api.v2.ExternalNetworkMemberQueryR\x05query\"\x98\x01\n" +
"'NetworkServiceAddExternalMembersRequest\x12%\n" +
- "\anetwork\x18\x01 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01R\anetwork\x12U\n" +
- "\fswitch_ports\x18\x02 \x03(\v2(.metalstack.api.v2.ExternalNetworkMemberB\b\xbaH\x05\x92\x01\x02\x10\bR\vswitchPorts\"\xaa\x01\n" +
+ "\anetwork\x18\x01 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01R\anetwork\x12\x1f\n" +
+ "\x04rack\x18\x02 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01R\x04rack\x12%\n" +
+ "\x05ports\x18\x03 \x03(\tB\x0f\xbaH\f\x92\x01\tФ\xb3\xb1\x02\x01\x10\x80\x10R\x05ports\"\x9b\x01\n" +
"*NetworkServiceRemoveExternalMembersRequest\x12%\n" +
- "\anetwork\x18\x01 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01R\anetwork\x12U\n" +
- "\fswitch_ports\x18\x02 \x03(\v2(.metalstack.api.v2.ExternalNetworkMemberB\b\xbaH\x05\x92\x01\x02\x10\bR\vswitchPorts\"T\n" +
+ "\anetwork\x18\x01 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01R\anetwork\x12\x1f\n" +
+ "\x04rack\x18\x02 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01R\x04rack\x12%\n" +
+ "\x05ports\x18\x03 \x03(\tB\x0f\xbaH\f\x92\x01\tФ\xb3\xb1\x02\x01\x10\x80\x10R\x05ports\"T\n" +
"\x1cNetworkServiceCreateResponse\x124\n" +
"\anetwork\x18\x01 \x01(\v2\x1a.metalstack.api.v2.NetworkR\anetwork\"T\n" +
"\x1cNetworkServiceUpdateResponse\x124\n" +
@@ -1193,36 +1212,34 @@ var file_metalstack_admin_v2_network_proto_depIdxs = []int32{
20, // 12: metalstack.admin.v2.NetworkServiceUpdateRequest.nat_type:type_name -> metalstack.api.v2.NATType
24, // 13: metalstack.admin.v2.NetworkServiceListRequest.query:type_name -> metalstack.api.v2.NetworkQuery
25, // 14: metalstack.admin.v2.NetworkServiceListExternalMembersRequest.query:type_name -> metalstack.api.v2.ExternalNetworkMemberQuery
- 26, // 15: metalstack.admin.v2.NetworkServiceAddExternalMembersRequest.switch_ports:type_name -> metalstack.api.v2.ExternalNetworkMember
- 26, // 16: metalstack.admin.v2.NetworkServiceRemoveExternalMembersRequest.switch_ports:type_name -> metalstack.api.v2.ExternalNetworkMember
- 16, // 17: metalstack.admin.v2.NetworkServiceCreateResponse.network:type_name -> metalstack.api.v2.Network
- 16, // 18: metalstack.admin.v2.NetworkServiceUpdateResponse.network:type_name -> metalstack.api.v2.Network
- 16, // 19: metalstack.admin.v2.NetworkServiceDeleteResponse.network:type_name -> metalstack.api.v2.Network
- 16, // 20: metalstack.admin.v2.NetworkServiceListResponse.networks:type_name -> metalstack.api.v2.Network
- 26, // 21: metalstack.admin.v2.NetworkServiceListExternalMembersResponse.members:type_name -> metalstack.api.v2.ExternalNetworkMember
- 27, // 22: metalstack.admin.v2.NetworkServiceAddExternalMembersResponse.switches:type_name -> metalstack.api.v2.Switch
- 27, // 23: metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse.switches:type_name -> metalstack.api.v2.Switch
- 0, // 24: metalstack.admin.v2.NetworkService.Get:input_type -> metalstack.admin.v2.NetworkServiceGetRequest
- 2, // 25: metalstack.admin.v2.NetworkService.Create:input_type -> metalstack.admin.v2.NetworkServiceCreateRequest
- 3, // 26: metalstack.admin.v2.NetworkService.Update:input_type -> metalstack.admin.v2.NetworkServiceUpdateRequest
- 4, // 27: metalstack.admin.v2.NetworkService.Delete:input_type -> metalstack.admin.v2.NetworkServiceDeleteRequest
- 5, // 28: metalstack.admin.v2.NetworkService.List:input_type -> metalstack.admin.v2.NetworkServiceListRequest
- 6, // 29: metalstack.admin.v2.NetworkService.ListExternalMembers:input_type -> metalstack.admin.v2.NetworkServiceListExternalMembersRequest
- 7, // 30: metalstack.admin.v2.NetworkService.AddExternalMembers:input_type -> metalstack.admin.v2.NetworkServiceAddExternalMembersRequest
- 8, // 31: metalstack.admin.v2.NetworkService.RemoveExternalMembers:input_type -> metalstack.admin.v2.NetworkServiceRemoveExternalMembersRequest
- 1, // 32: metalstack.admin.v2.NetworkService.Get:output_type -> metalstack.admin.v2.NetworkServiceGetResponse
- 9, // 33: metalstack.admin.v2.NetworkService.Create:output_type -> metalstack.admin.v2.NetworkServiceCreateResponse
- 10, // 34: metalstack.admin.v2.NetworkService.Update:output_type -> metalstack.admin.v2.NetworkServiceUpdateResponse
- 11, // 35: metalstack.admin.v2.NetworkService.Delete:output_type -> metalstack.admin.v2.NetworkServiceDeleteResponse
- 12, // 36: metalstack.admin.v2.NetworkService.List:output_type -> metalstack.admin.v2.NetworkServiceListResponse
- 13, // 37: metalstack.admin.v2.NetworkService.ListExternalMembers:output_type -> metalstack.admin.v2.NetworkServiceListExternalMembersResponse
- 14, // 38: metalstack.admin.v2.NetworkService.AddExternalMembers:output_type -> metalstack.admin.v2.NetworkServiceAddExternalMembersResponse
- 15, // 39: metalstack.admin.v2.NetworkService.RemoveExternalMembers:output_type -> metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse
- 32, // [32:40] is the sub-list for method output_type
- 24, // [24:32] is the sub-list for method input_type
- 24, // [24:24] is the sub-list for extension type_name
- 24, // [24:24] is the sub-list for extension extendee
- 0, // [0:24] is the sub-list for field type_name
+ 16, // 15: metalstack.admin.v2.NetworkServiceCreateResponse.network:type_name -> metalstack.api.v2.Network
+ 16, // 16: metalstack.admin.v2.NetworkServiceUpdateResponse.network:type_name -> metalstack.api.v2.Network
+ 16, // 17: metalstack.admin.v2.NetworkServiceDeleteResponse.network:type_name -> metalstack.api.v2.Network
+ 16, // 18: metalstack.admin.v2.NetworkServiceListResponse.networks:type_name -> metalstack.api.v2.Network
+ 26, // 19: metalstack.admin.v2.NetworkServiceListExternalMembersResponse.members:type_name -> metalstack.api.v2.ExternalNetworkMember
+ 27, // 20: metalstack.admin.v2.NetworkServiceAddExternalMembersResponse.switches:type_name -> metalstack.api.v2.Switch
+ 27, // 21: metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse.switches:type_name -> metalstack.api.v2.Switch
+ 0, // 22: metalstack.admin.v2.NetworkService.Get:input_type -> metalstack.admin.v2.NetworkServiceGetRequest
+ 2, // 23: metalstack.admin.v2.NetworkService.Create:input_type -> metalstack.admin.v2.NetworkServiceCreateRequest
+ 3, // 24: metalstack.admin.v2.NetworkService.Update:input_type -> metalstack.admin.v2.NetworkServiceUpdateRequest
+ 4, // 25: metalstack.admin.v2.NetworkService.Delete:input_type -> metalstack.admin.v2.NetworkServiceDeleteRequest
+ 5, // 26: metalstack.admin.v2.NetworkService.List:input_type -> metalstack.admin.v2.NetworkServiceListRequest
+ 6, // 27: metalstack.admin.v2.NetworkService.ListExternalMembers:input_type -> metalstack.admin.v2.NetworkServiceListExternalMembersRequest
+ 7, // 28: metalstack.admin.v2.NetworkService.AddExternalMembers:input_type -> metalstack.admin.v2.NetworkServiceAddExternalMembersRequest
+ 8, // 29: metalstack.admin.v2.NetworkService.RemoveExternalMembers:input_type -> metalstack.admin.v2.NetworkServiceRemoveExternalMembersRequest
+ 1, // 30: metalstack.admin.v2.NetworkService.Get:output_type -> metalstack.admin.v2.NetworkServiceGetResponse
+ 9, // 31: metalstack.admin.v2.NetworkService.Create:output_type -> metalstack.admin.v2.NetworkServiceCreateResponse
+ 10, // 32: metalstack.admin.v2.NetworkService.Update:output_type -> metalstack.admin.v2.NetworkServiceUpdateResponse
+ 11, // 33: metalstack.admin.v2.NetworkService.Delete:output_type -> metalstack.admin.v2.NetworkServiceDeleteResponse
+ 12, // 34: metalstack.admin.v2.NetworkService.List:output_type -> metalstack.admin.v2.NetworkServiceListResponse
+ 13, // 35: metalstack.admin.v2.NetworkService.ListExternalMembers:output_type -> metalstack.admin.v2.NetworkServiceListExternalMembersResponse
+ 14, // 36: metalstack.admin.v2.NetworkService.AddExternalMembers:output_type -> metalstack.admin.v2.NetworkServiceAddExternalMembersResponse
+ 15, // 37: metalstack.admin.v2.NetworkService.RemoveExternalMembers:output_type -> metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse
+ 30, // [30:38] is the sub-list for method output_type
+ 22, // [22:30] is the sub-list for method input_type
+ 22, // [22:22] is the sub-list for extension type_name
+ 22, // [22:22] is the sub-list for extension extendee
+ 0, // [0:22] is the sub-list for field type_name
}
func init() { file_metalstack_admin_v2_network_proto_init() }
diff --git a/js/metalstack/admin/v2/network_pb.d.ts b/js/metalstack/admin/v2/network_pb.d.ts
index 4f46523f..f49c7a2f 100644
--- a/js/metalstack/admin/v2/network_pb.d.ts
+++ b/js/metalstack/admin/v2/network_pb.d.ts
@@ -314,12 +314,17 @@ export type NetworkServiceAddExternalMembersRequest = Message<"metalstack.admin.
*/
network: string;
/**
- * SwitchPorts contains the ports of a switch that should be added to the network.
- * Make sure to add both switches of a rack and the same ports of both in the same request.
+ * Rack the members are connected to.
*
- * @generated from field: repeated metalstack.api.v2.ExternalNetworkMember switch_ports = 2;
+ * @generated from field: string rack = 2;
*/
- switchPorts: ExternalNetworkMember[];
+ rack: string;
+ /**
+ * Ports of the switches to add to the network.
+ *
+ * @generated from field: repeated string ports = 3;
+ */
+ ports: string[];
};
/**
* Describes the message metalstack.admin.v2.NetworkServiceAddExternalMembersRequest.
@@ -339,11 +344,17 @@ export type NetworkServiceRemoveExternalMembersRequest = Message<"metalstack.adm
*/
network: string;
/**
- * SwitchPorts contains the ports of a switch that should be removed from the network.
+ * Rack the members are connected to.
+ *
+ * @generated from field: string rack = 2;
+ */
+ rack: string;
+ /**
+ * Ports of the switches to remove from the network.
*
- * @generated from field: repeated metalstack.api.v2.ExternalNetworkMember switch_ports = 2;
+ * @generated from field: repeated string ports = 3;
*/
- switchPorts: ExternalNetworkMember[];
+ ports: string[];
};
/**
* Describes the message metalstack.admin.v2.NetworkServiceRemoveExternalMembersRequest.
diff --git a/js/metalstack/admin/v2/network_pb.js b/js/metalstack/admin/v2/network_pb.js
index 6977c1fa..97a568d9 100644
--- a/js/metalstack/admin/v2/network_pb.js
+++ b/js/metalstack/admin/v2/network_pb.js
@@ -10,7 +10,7 @@ import { file_metalstack_api_v2_switch } from "../../api/v2/switch_pb";
/**
* Describes the file metalstack/admin/v2/network.proto.
*/
-export const file_metalstack_admin_v2_network = /*@__PURE__*/ fileDesc("CiFtZXRhbHN0YWNrL2FkbWluL3YyL25ldHdvcmsucHJvdG8SE21ldGFsc3RhY2suYWRtaW4udjIiMwoYTmV0d29ya1NlcnZpY2VHZXRSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECASJIChlOZXR3b3JrU2VydmljZUdldFJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrItAHChtOZXR3b3JrU2VydmljZUNyZWF0ZVJlcXVlc3QSHAoCaWQYASABKAlCC7pICHIGwLOusQIBSACIAQESHgoEbmFtZRgCIAEoCUILukgIcgbAs66xAgFIAYgBARIlCgtkZXNjcmlwdGlvbhgDIAEoCUILukgIcgbIs66xAgFIAogBARIjCglwYXJ0aXRpb24YBCABKAlCC7pICHIG0LOusQIBSAOIAQESHgoHcHJvamVjdBgFIAEoCUIIukgFcgOwAQFIBIgBARI2CgR0eXBlGAYgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1R5cGVCCLpIBYIBAhABEi4KBmxhYmVscxgHIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVsc0gFiAEBEh4KCHByZWZpeGVzGAggAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCSADKAlCDLpICZIBBriks7ECARJJChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCiABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aBJFChdtaW5fY2hpbGRfcHJlZml4X2xlbmd0aBgLIAEoCzIkLm1ldGFsc3RhY2suYXBpLnYyLkNoaWxkUHJlZml4TGVuZ3RoEjsKCG5hdF90eXBlGAwgASgOMhoubWV0YWxzdGFjay5hcGkudjIuTkFUVHlwZUIIukgFggECEAFIBogBARIQCgN2cmYYDSABKA1IB4gBARIoCg5wYXJlbnRfbmV0d29yaxgOIAEoCUILukgIcgbAs66xAgFICIgBARIyChxhZGRpdGlvbmFsX2Fubm91bmNhYmxlX2NpZHJzGA8gAygJQgy6SAmSAQa4pLOxAgESOQoGbGVuZ3RoGBAgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhICYgBARJOCg5hZGRyZXNzX2ZhbWlseRgRIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgKiAEBQgUKA19pZEIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CDAoKX3BhcnRpdGlvbkIKCghfcHJvamVjdEIJCgdfbGFiZWxzQgsKCV9uYXRfdHlwZUIGCgRfdnJmQhEKD19wYXJlbnRfbmV0d29ya0IJCgdfbGVuZ3RoQhEKD19hZGRyZXNzX2ZhbWlseSLEBQobTmV0d29ya1NlcnZpY2VVcGRhdGVSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECARI6Cgt1cGRhdGVfbWV0YRgCIAEoCzIdLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZU1ldGFCBrpIA8gBARIeCgRuYW1lGAMgASgJQgu6SAhyBsCzrrECAUgAiAEBEiUKC2Rlc2NyaXB0aW9uGAQgASgJQgu6SAhyBsizrrECAUgBiAEBEjQKBmxhYmVscxgFIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZUxhYmVsc0gCiAEBEh4KCHByZWZpeGVzGAYgAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYByADKAlCDLpICZIBBriks7ECARJOChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCCABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aEgDiAEBEkoKF21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoGAkgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhIBIgBARI7CghuYXRfdHlwZRgKIAEoDjIaLm1ldGFsc3RhY2suYXBpLnYyLk5BVFR5cGVCCLpIBYIBAhABSAWIAQESMgocYWRkaXRpb25hbF9hbm5vdW5jYWJsZV9jaWRycxgLIAMoCUIMukgJkgEGuKSzsQIBEg0KBWZvcmNlGAwgASgIQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIJCgdfbGFiZWxzQh4KHF9kZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGhCGgoYX21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoQgsKCV9uYXRfdHlwZSI2ChtOZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBIksKGU5ldHdvcmtTZXJ2aWNlTGlzdFJlcXVlc3QSLgoFcXVlcnkYASABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrUXVlcnkihgEKKE5ldHdvcmtTZXJ2aWNlTGlzdEV4dGVybmFsTWVtYmVyc1JlcXVlc3QSHAoHbmV0d29yaxgBIAEoCUILukgIcgbAs66xAgESPAoFcXVlcnkYAiABKAsyLS5tZXRhbHN0YWNrLmFwaS52Mi5FeHRlcm5hbE5ldHdvcmtNZW1iZXJRdWVyeSKRAQonTmV0d29ya1NlcnZpY2VBZGRFeHRlcm5hbE1lbWJlcnNSZXF1ZXN0EhwKB25ldHdvcmsYASABKAlCC7pICHIGwLOusQIBEkgKDHN3aXRjaF9wb3J0cxgCIAMoCzIoLm1ldGFsc3RhY2suYXBpLnYyLkV4dGVybmFsTmV0d29ya01lbWJlckIIukgFkgECEAgilAEKKk5ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzUmVxdWVzdBIcCgduZXR3b3JrGAEgASgJQgu6SAhyBsCzrrECARJICgxzd2l0Y2hfcG9ydHMYAiADKAsyKC5tZXRhbHN0YWNrLmFwaS52Mi5FeHRlcm5hbE5ldHdvcmtNZW1iZXJCCLpIBZIBAhAIIksKHE5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsiSwocTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJLChxOZXR3b3JrU2VydmljZURlbGV0ZVJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrIkoKGk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJmCilOZXR3b3JrU2VydmljZUxpc3RFeHRlcm5hbE1lbWJlcnNSZXNwb25zZRI5CgdtZW1iZXJzGAEgAygLMigubWV0YWxzdGFjay5hcGkudjIuRXh0ZXJuYWxOZXR3b3JrTWVtYmVyIlcKKE5ldHdvcmtTZXJ2aWNlQWRkRXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2USKwoIc3dpdGNoZXMYASADKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2giWgorTmV0d29ya1NlcnZpY2VSZW1vdmVFeHRlcm5hbE1lbWJlcnNSZXNwb25zZRIrCghzd2l0Y2hlcxgBIAMoCzIZLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaDLPCAoOTmV0d29ya1NlcnZpY2UScAoDR2V0Ei0ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUdldFJlcXVlc3QaLi5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlR2V0UmVzcG9uc2UiCtLzGAIBAuDzGAISeAoGQ3JlYXRlEjAubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUNyZWF0ZVJlcXVlc3QaMS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVzcG9uc2UiCdLzGAEB4PMYARJ4CgZVcGRhdGUSMC5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlVXBkYXRlUmVxdWVzdBoxLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZSIJ0vMYAQHg8xgBEngKBkRlbGV0ZRIwLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VEZWxldGVSZXF1ZXN0GjEubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZURlbGV0ZVJlc3BvbnNlIgnS8xgBAeDzGAEScwoETGlzdBIuLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VMaXN0UmVxdWVzdBovLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VMaXN0UmVzcG9uc2UiCtLzGAIBAuDzGAISoAEKE0xpc3RFeHRlcm5hbE1lbWJlcnMSPS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdEV4dGVybmFsTWVtYmVyc1JlcXVlc3QaPi5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdEV4dGVybmFsTWVtYmVyc1Jlc3BvbnNlIgrS8xgCAQLg8xgCEpwBChJBZGRFeHRlcm5hbE1lbWJlcnMSPC5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlQWRkRXh0ZXJuYWxNZW1iZXJzUmVxdWVzdBo9Lm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VBZGRFeHRlcm5hbE1lbWJlcnNSZXNwb25zZSIJ0vMYAQHg8xgBEqUBChVSZW1vdmVFeHRlcm5hbE1lbWJlcnMSPy5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzUmVxdWVzdBpALm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VSZW1vdmVFeHRlcm5hbE1lbWJlcnNSZXNwb25zZSIJ0vMYAQHg8xgBQtABChdjb20ubWV0YWxzdGFjay5hZG1pbi52MkIMTmV0d29ya1Byb3RvUAFaOWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYWRtaW4vdjI7YWRtaW52MqICA01BWKoCE01ldGFsc3RhY2suQWRtaW4uVjLKAhNNZXRhbHN0YWNrXEFkbWluXFYy4gIfTWV0YWxzdGFja1xBZG1pblxWMlxHUEJNZXRhZGF0YeoCFU1ldGFsc3RhY2s6OkFkbWluOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_network, file_metalstack_api_v2_predefined_rules, file_metalstack_api_v2_switch]);
+export const file_metalstack_admin_v2_network = /*@__PURE__*/ fileDesc("CiFtZXRhbHN0YWNrL2FkbWluL3YyL25ldHdvcmsucHJvdG8SE21ldGFsc3RhY2suYWRtaW4udjIiMwoYTmV0d29ya1NlcnZpY2VHZXRSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECASJIChlOZXR3b3JrU2VydmljZUdldFJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrItAHChtOZXR3b3JrU2VydmljZUNyZWF0ZVJlcXVlc3QSHAoCaWQYASABKAlCC7pICHIGwLOusQIBSACIAQESHgoEbmFtZRgCIAEoCUILukgIcgbAs66xAgFIAYgBARIlCgtkZXNjcmlwdGlvbhgDIAEoCUILukgIcgbIs66xAgFIAogBARIjCglwYXJ0aXRpb24YBCABKAlCC7pICHIG0LOusQIBSAOIAQESHgoHcHJvamVjdBgFIAEoCUIIukgFcgOwAQFIBIgBARI2CgR0eXBlGAYgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1R5cGVCCLpIBYIBAhABEi4KBmxhYmVscxgHIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVsc0gFiAEBEh4KCHByZWZpeGVzGAggAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCSADKAlCDLpICZIBBriks7ECARJJChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCiABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aBJFChdtaW5fY2hpbGRfcHJlZml4X2xlbmd0aBgLIAEoCzIkLm1ldGFsc3RhY2suYXBpLnYyLkNoaWxkUHJlZml4TGVuZ3RoEjsKCG5hdF90eXBlGAwgASgOMhoubWV0YWxzdGFjay5hcGkudjIuTkFUVHlwZUIIukgFggECEAFIBogBARIQCgN2cmYYDSABKA1IB4gBARIoCg5wYXJlbnRfbmV0d29yaxgOIAEoCUILukgIcgbAs66xAgFICIgBARIyChxhZGRpdGlvbmFsX2Fubm91bmNhYmxlX2NpZHJzGA8gAygJQgy6SAmSAQa4pLOxAgESOQoGbGVuZ3RoGBAgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhICYgBARJOCg5hZGRyZXNzX2ZhbWlseRgRIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgKiAEBQgUKA19pZEIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CDAoKX3BhcnRpdGlvbkIKCghfcHJvamVjdEIJCgdfbGFiZWxzQgsKCV9uYXRfdHlwZUIGCgRfdnJmQhEKD19wYXJlbnRfbmV0d29ya0IJCgdfbGVuZ3RoQhEKD19hZGRyZXNzX2ZhbWlseSLEBQobTmV0d29ya1NlcnZpY2VVcGRhdGVSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECARI6Cgt1cGRhdGVfbWV0YRgCIAEoCzIdLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZU1ldGFCBrpIA8gBARIeCgRuYW1lGAMgASgJQgu6SAhyBsCzrrECAUgAiAEBEiUKC2Rlc2NyaXB0aW9uGAQgASgJQgu6SAhyBsizrrECAUgBiAEBEjQKBmxhYmVscxgFIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZUxhYmVsc0gCiAEBEh4KCHByZWZpeGVzGAYgAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYByADKAlCDLpICZIBBriks7ECARJOChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCCABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aEgDiAEBEkoKF21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoGAkgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhIBIgBARI7CghuYXRfdHlwZRgKIAEoDjIaLm1ldGFsc3RhY2suYXBpLnYyLk5BVFR5cGVCCLpIBYIBAhABSAWIAQESMgocYWRkaXRpb25hbF9hbm5vdW5jYWJsZV9jaWRycxgLIAMoCUIMukgJkgEGuKSzsQIBEg0KBWZvcmNlGAwgASgIQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIJCgdfbGFiZWxzQh4KHF9kZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGhCGgoYX21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoQgsKCV9uYXRfdHlwZSI2ChtOZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBIksKGU5ldHdvcmtTZXJ2aWNlTGlzdFJlcXVlc3QSLgoFcXVlcnkYASABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrUXVlcnkihgEKKE5ldHdvcmtTZXJ2aWNlTGlzdEV4dGVybmFsTWVtYmVyc1JlcXVlc3QSHAoHbmV0d29yaxgBIAEoCUILukgIcgbAs66xAgESPAoFcXVlcnkYAiABKAsyLS5tZXRhbHN0YWNrLmFwaS52Mi5FeHRlcm5hbE5ldHdvcmtNZW1iZXJRdWVyeSKCAQonTmV0d29ya1NlcnZpY2VBZGRFeHRlcm5hbE1lbWJlcnNSZXF1ZXN0EhwKB25ldHdvcmsYASABKAlCC7pICHIGwLOusQIBEhkKBHJhY2sYAiABKAlCC7pICHIGwLOusQIBEh4KBXBvcnRzGAMgAygJQg+6SAySAQnQpLOxAgEQgBAihQEKKk5ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzUmVxdWVzdBIcCgduZXR3b3JrGAEgASgJQgu6SAhyBsCzrrECARIZCgRyYWNrGAIgASgJQgu6SAhyBsCzrrECARIeCgVwb3J0cxgDIAMoCUIPukgMkgEJ0KSzsQIBEIAQIksKHE5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsiSwocTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJLChxOZXR3b3JrU2VydmljZURlbGV0ZVJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrIkoKGk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJmCilOZXR3b3JrU2VydmljZUxpc3RFeHRlcm5hbE1lbWJlcnNSZXNwb25zZRI5CgdtZW1iZXJzGAEgAygLMigubWV0YWxzdGFjay5hcGkudjIuRXh0ZXJuYWxOZXR3b3JrTWVtYmVyIlcKKE5ldHdvcmtTZXJ2aWNlQWRkRXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2USKwoIc3dpdGNoZXMYASADKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2giWgorTmV0d29ya1NlcnZpY2VSZW1vdmVFeHRlcm5hbE1lbWJlcnNSZXNwb25zZRIrCghzd2l0Y2hlcxgBIAMoCzIZLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaDLPCAoOTmV0d29ya1NlcnZpY2UScAoDR2V0Ei0ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUdldFJlcXVlc3QaLi5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlR2V0UmVzcG9uc2UiCtLzGAIBAuDzGAISeAoGQ3JlYXRlEjAubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUNyZWF0ZVJlcXVlc3QaMS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVzcG9uc2UiCdLzGAEB4PMYARJ4CgZVcGRhdGUSMC5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlVXBkYXRlUmVxdWVzdBoxLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZSIJ0vMYAQHg8xgBEngKBkRlbGV0ZRIwLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VEZWxldGVSZXF1ZXN0GjEubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZURlbGV0ZVJlc3BvbnNlIgnS8xgBAeDzGAEScwoETGlzdBIuLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VMaXN0UmVxdWVzdBovLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VMaXN0UmVzcG9uc2UiCtLzGAIBAuDzGAISoAEKE0xpc3RFeHRlcm5hbE1lbWJlcnMSPS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdEV4dGVybmFsTWVtYmVyc1JlcXVlc3QaPi5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdEV4dGVybmFsTWVtYmVyc1Jlc3BvbnNlIgrS8xgCAQLg8xgCEpwBChJBZGRFeHRlcm5hbE1lbWJlcnMSPC5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlQWRkRXh0ZXJuYWxNZW1iZXJzUmVxdWVzdBo9Lm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VBZGRFeHRlcm5hbE1lbWJlcnNSZXNwb25zZSIJ0vMYAQHg8xgBEqUBChVSZW1vdmVFeHRlcm5hbE1lbWJlcnMSPy5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzUmVxdWVzdBpALm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VSZW1vdmVFeHRlcm5hbE1lbWJlcnNSZXNwb25zZSIJ0vMYAQHg8xgBQtABChdjb20ubWV0YWxzdGFjay5hZG1pbi52MkIMTmV0d29ya1Byb3RvUAFaOWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYWRtaW4vdjI7YWRtaW52MqICA01BWKoCE01ldGFsc3RhY2suQWRtaW4uVjLKAhNNZXRhbHN0YWNrXEFkbWluXFYy4gIfTWV0YWxzdGFja1xBZG1pblxWMlxHUEJNZXRhZGF0YeoCFU1ldGFsc3RhY2s6OkFkbWluOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_network, file_metalstack_api_v2_predefined_rules, file_metalstack_api_v2_switch]);
/**
* Describes the message metalstack.admin.v2.NetworkServiceGetRequest.
* Use `create(NetworkServiceGetRequestSchema)` to create a new message.
diff --git a/js/metalstack/admin/v2/network_pb.ts b/js/metalstack/admin/v2/network_pb.ts
index bbf16050..ca362448 100644
--- a/js/metalstack/admin/v2/network_pb.ts
+++ b/js/metalstack/admin/v2/network_pb.ts
@@ -18,7 +18,7 @@ import type { Message } from "@bufbuild/protobuf";
* Describes the file metalstack/admin/v2/network.proto.
*/
export const file_metalstack_admin_v2_network: GenFile = /*@__PURE__*/
- fileDesc("CiFtZXRhbHN0YWNrL2FkbWluL3YyL25ldHdvcmsucHJvdG8SE21ldGFsc3RhY2suYWRtaW4udjIiMwoYTmV0d29ya1NlcnZpY2VHZXRSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECASJIChlOZXR3b3JrU2VydmljZUdldFJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrItAHChtOZXR3b3JrU2VydmljZUNyZWF0ZVJlcXVlc3QSHAoCaWQYASABKAlCC7pICHIGwLOusQIBSACIAQESHgoEbmFtZRgCIAEoCUILukgIcgbAs66xAgFIAYgBARIlCgtkZXNjcmlwdGlvbhgDIAEoCUILukgIcgbIs66xAgFIAogBARIjCglwYXJ0aXRpb24YBCABKAlCC7pICHIG0LOusQIBSAOIAQESHgoHcHJvamVjdBgFIAEoCUIIukgFcgOwAQFIBIgBARI2CgR0eXBlGAYgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1R5cGVCCLpIBYIBAhABEi4KBmxhYmVscxgHIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVsc0gFiAEBEh4KCHByZWZpeGVzGAggAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCSADKAlCDLpICZIBBriks7ECARJJChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCiABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aBJFChdtaW5fY2hpbGRfcHJlZml4X2xlbmd0aBgLIAEoCzIkLm1ldGFsc3RhY2suYXBpLnYyLkNoaWxkUHJlZml4TGVuZ3RoEjsKCG5hdF90eXBlGAwgASgOMhoubWV0YWxzdGFjay5hcGkudjIuTkFUVHlwZUIIukgFggECEAFIBogBARIQCgN2cmYYDSABKA1IB4gBARIoCg5wYXJlbnRfbmV0d29yaxgOIAEoCUILukgIcgbAs66xAgFICIgBARIyChxhZGRpdGlvbmFsX2Fubm91bmNhYmxlX2NpZHJzGA8gAygJQgy6SAmSAQa4pLOxAgESOQoGbGVuZ3RoGBAgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhICYgBARJOCg5hZGRyZXNzX2ZhbWlseRgRIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgKiAEBQgUKA19pZEIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CDAoKX3BhcnRpdGlvbkIKCghfcHJvamVjdEIJCgdfbGFiZWxzQgsKCV9uYXRfdHlwZUIGCgRfdnJmQhEKD19wYXJlbnRfbmV0d29ya0IJCgdfbGVuZ3RoQhEKD19hZGRyZXNzX2ZhbWlseSLEBQobTmV0d29ya1NlcnZpY2VVcGRhdGVSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECARI6Cgt1cGRhdGVfbWV0YRgCIAEoCzIdLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZU1ldGFCBrpIA8gBARIeCgRuYW1lGAMgASgJQgu6SAhyBsCzrrECAUgAiAEBEiUKC2Rlc2NyaXB0aW9uGAQgASgJQgu6SAhyBsizrrECAUgBiAEBEjQKBmxhYmVscxgFIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZUxhYmVsc0gCiAEBEh4KCHByZWZpeGVzGAYgAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYByADKAlCDLpICZIBBriks7ECARJOChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCCABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aEgDiAEBEkoKF21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoGAkgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhIBIgBARI7CghuYXRfdHlwZRgKIAEoDjIaLm1ldGFsc3RhY2suYXBpLnYyLk5BVFR5cGVCCLpIBYIBAhABSAWIAQESMgocYWRkaXRpb25hbF9hbm5vdW5jYWJsZV9jaWRycxgLIAMoCUIMukgJkgEGuKSzsQIBEg0KBWZvcmNlGAwgASgIQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIJCgdfbGFiZWxzQh4KHF9kZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGhCGgoYX21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoQgsKCV9uYXRfdHlwZSI2ChtOZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBIksKGU5ldHdvcmtTZXJ2aWNlTGlzdFJlcXVlc3QSLgoFcXVlcnkYASABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrUXVlcnkihgEKKE5ldHdvcmtTZXJ2aWNlTGlzdEV4dGVybmFsTWVtYmVyc1JlcXVlc3QSHAoHbmV0d29yaxgBIAEoCUILukgIcgbAs66xAgESPAoFcXVlcnkYAiABKAsyLS5tZXRhbHN0YWNrLmFwaS52Mi5FeHRlcm5hbE5ldHdvcmtNZW1iZXJRdWVyeSKRAQonTmV0d29ya1NlcnZpY2VBZGRFeHRlcm5hbE1lbWJlcnNSZXF1ZXN0EhwKB25ldHdvcmsYASABKAlCC7pICHIGwLOusQIBEkgKDHN3aXRjaF9wb3J0cxgCIAMoCzIoLm1ldGFsc3RhY2suYXBpLnYyLkV4dGVybmFsTmV0d29ya01lbWJlckIIukgFkgECEAgilAEKKk5ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzUmVxdWVzdBIcCgduZXR3b3JrGAEgASgJQgu6SAhyBsCzrrECARJICgxzd2l0Y2hfcG9ydHMYAiADKAsyKC5tZXRhbHN0YWNrLmFwaS52Mi5FeHRlcm5hbE5ldHdvcmtNZW1iZXJCCLpIBZIBAhAIIksKHE5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsiSwocTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJLChxOZXR3b3JrU2VydmljZURlbGV0ZVJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrIkoKGk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJmCilOZXR3b3JrU2VydmljZUxpc3RFeHRlcm5hbE1lbWJlcnNSZXNwb25zZRI5CgdtZW1iZXJzGAEgAygLMigubWV0YWxzdGFjay5hcGkudjIuRXh0ZXJuYWxOZXR3b3JrTWVtYmVyIlcKKE5ldHdvcmtTZXJ2aWNlQWRkRXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2USKwoIc3dpdGNoZXMYASADKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2giWgorTmV0d29ya1NlcnZpY2VSZW1vdmVFeHRlcm5hbE1lbWJlcnNSZXNwb25zZRIrCghzd2l0Y2hlcxgBIAMoCzIZLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaDLPCAoOTmV0d29ya1NlcnZpY2UScAoDR2V0Ei0ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUdldFJlcXVlc3QaLi5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlR2V0UmVzcG9uc2UiCtLzGAIBAuDzGAISeAoGQ3JlYXRlEjAubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUNyZWF0ZVJlcXVlc3QaMS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVzcG9uc2UiCdLzGAEB4PMYARJ4CgZVcGRhdGUSMC5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlVXBkYXRlUmVxdWVzdBoxLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZSIJ0vMYAQHg8xgBEngKBkRlbGV0ZRIwLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VEZWxldGVSZXF1ZXN0GjEubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZURlbGV0ZVJlc3BvbnNlIgnS8xgBAeDzGAEScwoETGlzdBIuLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VMaXN0UmVxdWVzdBovLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VMaXN0UmVzcG9uc2UiCtLzGAIBAuDzGAISoAEKE0xpc3RFeHRlcm5hbE1lbWJlcnMSPS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdEV4dGVybmFsTWVtYmVyc1JlcXVlc3QaPi5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdEV4dGVybmFsTWVtYmVyc1Jlc3BvbnNlIgrS8xgCAQLg8xgCEpwBChJBZGRFeHRlcm5hbE1lbWJlcnMSPC5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlQWRkRXh0ZXJuYWxNZW1iZXJzUmVxdWVzdBo9Lm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VBZGRFeHRlcm5hbE1lbWJlcnNSZXNwb25zZSIJ0vMYAQHg8xgBEqUBChVSZW1vdmVFeHRlcm5hbE1lbWJlcnMSPy5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzUmVxdWVzdBpALm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VSZW1vdmVFeHRlcm5hbE1lbWJlcnNSZXNwb25zZSIJ0vMYAQHg8xgBQtABChdjb20ubWV0YWxzdGFjay5hZG1pbi52MkIMTmV0d29ya1Byb3RvUAFaOWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYWRtaW4vdjI7YWRtaW52MqICA01BWKoCE01ldGFsc3RhY2suQWRtaW4uVjLKAhNNZXRhbHN0YWNrXEFkbWluXFYy4gIfTWV0YWxzdGFja1xBZG1pblxWMlxHUEJNZXRhZGF0YeoCFU1ldGFsc3RhY2s6OkFkbWluOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_network, file_metalstack_api_v2_predefined_rules, file_metalstack_api_v2_switch]);
+ fileDesc("CiFtZXRhbHN0YWNrL2FkbWluL3YyL25ldHdvcmsucHJvdG8SE21ldGFsc3RhY2suYWRtaW4udjIiMwoYTmV0d29ya1NlcnZpY2VHZXRSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECASJIChlOZXR3b3JrU2VydmljZUdldFJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrItAHChtOZXR3b3JrU2VydmljZUNyZWF0ZVJlcXVlc3QSHAoCaWQYASABKAlCC7pICHIGwLOusQIBSACIAQESHgoEbmFtZRgCIAEoCUILukgIcgbAs66xAgFIAYgBARIlCgtkZXNjcmlwdGlvbhgDIAEoCUILukgIcgbIs66xAgFIAogBARIjCglwYXJ0aXRpb24YBCABKAlCC7pICHIG0LOusQIBSAOIAQESHgoHcHJvamVjdBgFIAEoCUIIukgFcgOwAQFIBIgBARI2CgR0eXBlGAYgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1R5cGVCCLpIBYIBAhABEi4KBmxhYmVscxgHIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVsc0gFiAEBEh4KCHByZWZpeGVzGAggAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCSADKAlCDLpICZIBBriks7ECARJJChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCiABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aBJFChdtaW5fY2hpbGRfcHJlZml4X2xlbmd0aBgLIAEoCzIkLm1ldGFsc3RhY2suYXBpLnYyLkNoaWxkUHJlZml4TGVuZ3RoEjsKCG5hdF90eXBlGAwgASgOMhoubWV0YWxzdGFjay5hcGkudjIuTkFUVHlwZUIIukgFggECEAFIBogBARIQCgN2cmYYDSABKA1IB4gBARIoCg5wYXJlbnRfbmV0d29yaxgOIAEoCUILukgIcgbAs66xAgFICIgBARIyChxhZGRpdGlvbmFsX2Fubm91bmNhYmxlX2NpZHJzGA8gAygJQgy6SAmSAQa4pLOxAgESOQoGbGVuZ3RoGBAgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhICYgBARJOCg5hZGRyZXNzX2ZhbWlseRgRIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgKiAEBQgUKA19pZEIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CDAoKX3BhcnRpdGlvbkIKCghfcHJvamVjdEIJCgdfbGFiZWxzQgsKCV9uYXRfdHlwZUIGCgRfdnJmQhEKD19wYXJlbnRfbmV0d29ya0IJCgdfbGVuZ3RoQhEKD19hZGRyZXNzX2ZhbWlseSLEBQobTmV0d29ya1NlcnZpY2VVcGRhdGVSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECARI6Cgt1cGRhdGVfbWV0YRgCIAEoCzIdLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZU1ldGFCBrpIA8gBARIeCgRuYW1lGAMgASgJQgu6SAhyBsCzrrECAUgAiAEBEiUKC2Rlc2NyaXB0aW9uGAQgASgJQgu6SAhyBsizrrECAUgBiAEBEjQKBmxhYmVscxgFIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZUxhYmVsc0gCiAEBEh4KCHByZWZpeGVzGAYgAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYByADKAlCDLpICZIBBriks7ECARJOChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCCABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aEgDiAEBEkoKF21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoGAkgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhIBIgBARI7CghuYXRfdHlwZRgKIAEoDjIaLm1ldGFsc3RhY2suYXBpLnYyLk5BVFR5cGVCCLpIBYIBAhABSAWIAQESMgocYWRkaXRpb25hbF9hbm5vdW5jYWJsZV9jaWRycxgLIAMoCUIMukgJkgEGuKSzsQIBEg0KBWZvcmNlGAwgASgIQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIJCgdfbGFiZWxzQh4KHF9kZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGhCGgoYX21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoQgsKCV9uYXRfdHlwZSI2ChtOZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBIksKGU5ldHdvcmtTZXJ2aWNlTGlzdFJlcXVlc3QSLgoFcXVlcnkYASABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrUXVlcnkihgEKKE5ldHdvcmtTZXJ2aWNlTGlzdEV4dGVybmFsTWVtYmVyc1JlcXVlc3QSHAoHbmV0d29yaxgBIAEoCUILukgIcgbAs66xAgESPAoFcXVlcnkYAiABKAsyLS5tZXRhbHN0YWNrLmFwaS52Mi5FeHRlcm5hbE5ldHdvcmtNZW1iZXJRdWVyeSKCAQonTmV0d29ya1NlcnZpY2VBZGRFeHRlcm5hbE1lbWJlcnNSZXF1ZXN0EhwKB25ldHdvcmsYASABKAlCC7pICHIGwLOusQIBEhkKBHJhY2sYAiABKAlCC7pICHIGwLOusQIBEh4KBXBvcnRzGAMgAygJQg+6SAySAQnQpLOxAgEQgBAihQEKKk5ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzUmVxdWVzdBIcCgduZXR3b3JrGAEgASgJQgu6SAhyBsCzrrECARIZCgRyYWNrGAIgASgJQgu6SAhyBsCzrrECARIeCgVwb3J0cxgDIAMoCUIPukgMkgEJ0KSzsQIBEIAQIksKHE5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsiSwocTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJLChxOZXR3b3JrU2VydmljZURlbGV0ZVJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrIkoKGk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJmCilOZXR3b3JrU2VydmljZUxpc3RFeHRlcm5hbE1lbWJlcnNSZXNwb25zZRI5CgdtZW1iZXJzGAEgAygLMigubWV0YWxzdGFjay5hcGkudjIuRXh0ZXJuYWxOZXR3b3JrTWVtYmVyIlcKKE5ldHdvcmtTZXJ2aWNlQWRkRXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2USKwoIc3dpdGNoZXMYASADKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2giWgorTmV0d29ya1NlcnZpY2VSZW1vdmVFeHRlcm5hbE1lbWJlcnNSZXNwb25zZRIrCghzd2l0Y2hlcxgBIAMoCzIZLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaDLPCAoOTmV0d29ya1NlcnZpY2UScAoDR2V0Ei0ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUdldFJlcXVlc3QaLi5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlR2V0UmVzcG9uc2UiCtLzGAIBAuDzGAISeAoGQ3JlYXRlEjAubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUNyZWF0ZVJlcXVlc3QaMS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVzcG9uc2UiCdLzGAEB4PMYARJ4CgZVcGRhdGUSMC5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlVXBkYXRlUmVxdWVzdBoxLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZSIJ0vMYAQHg8xgBEngKBkRlbGV0ZRIwLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VEZWxldGVSZXF1ZXN0GjEubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZURlbGV0ZVJlc3BvbnNlIgnS8xgBAeDzGAEScwoETGlzdBIuLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VMaXN0UmVxdWVzdBovLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VMaXN0UmVzcG9uc2UiCtLzGAIBAuDzGAISoAEKE0xpc3RFeHRlcm5hbE1lbWJlcnMSPS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdEV4dGVybmFsTWVtYmVyc1JlcXVlc3QaPi5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdEV4dGVybmFsTWVtYmVyc1Jlc3BvbnNlIgrS8xgCAQLg8xgCEpwBChJBZGRFeHRlcm5hbE1lbWJlcnMSPC5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlQWRkRXh0ZXJuYWxNZW1iZXJzUmVxdWVzdBo9Lm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VBZGRFeHRlcm5hbE1lbWJlcnNSZXNwb25zZSIJ0vMYAQHg8xgBEqUBChVSZW1vdmVFeHRlcm5hbE1lbWJlcnMSPy5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzUmVxdWVzdBpALm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VSZW1vdmVFeHRlcm5hbE1lbWJlcnNSZXNwb25zZSIJ0vMYAQHg8xgBQtABChdjb20ubWV0YWxzdGFjay5hZG1pbi52MkIMTmV0d29ya1Byb3RvUAFaOWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYWRtaW4vdjI7YWRtaW52MqICA01BWKoCE01ldGFsc3RhY2suQWRtaW4uVjLKAhNNZXRhbHN0YWNrXEFkbWluXFYy4gIfTWV0YWxzdGFja1xBZG1pblxWMlxHUEJNZXRhZGF0YeoCFU1ldGFsc3RhY2s6OkFkbWluOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_network, file_metalstack_api_v2_predefined_rules, file_metalstack_api_v2_switch]);
/**
* NetworkServiceGetRequest is the request payload for getting a network.
@@ -377,12 +377,18 @@ export type NetworkServiceAddExternalMembersRequest = Message<"metalstack.admin.
network: string;
/**
- * SwitchPorts contains the ports of a switch that should be added to the network.
- * Make sure to add both switches of a rack and the same ports of both in the same request.
+ * Rack the members are connected to.
*
- * @generated from field: repeated metalstack.api.v2.ExternalNetworkMember switch_ports = 2;
+ * @generated from field: string rack = 2;
*/
- switchPorts: ExternalNetworkMember[];
+ rack: string;
+
+ /**
+ * Ports of the switches to add to the network.
+ *
+ * @generated from field: repeated string ports = 3;
+ */
+ ports: string[];
};
/**
@@ -406,11 +412,18 @@ export type NetworkServiceRemoveExternalMembersRequest = Message<"metalstack.adm
network: string;
/**
- * SwitchPorts contains the ports of a switch that should be removed from the network.
+ * Rack the members are connected to.
+ *
+ * @generated from field: string rack = 2;
+ */
+ rack: string;
+
+ /**
+ * Ports of the switches to remove from the network.
*
- * @generated from field: repeated metalstack.api.v2.ExternalNetworkMember switch_ports = 2;
+ * @generated from field: repeated string ports = 3;
*/
- switchPorts: ExternalNetworkMember[];
+ ports: string[];
};
/**
diff --git a/proto/metalstack/admin/v2/network.proto b/proto/metalstack/admin/v2/network.proto
index 5ed3e269..fa309397 100644
--- a/proto/metalstack/admin/v2/network.proto
+++ b/proto/metalstack/admin/v2/network.proto
@@ -158,17 +158,26 @@ message NetworkServiceListExternalMembersRequest {
message NetworkServiceAddExternalMembersRequest {
// Network to add the member to.
string network = 1 [(buf.validate.field).string.(metalstack.api.v2.is_name) = true];
- // SwitchPorts contains the ports of a switch that should be added to the network.
- // Make sure to add both switches of a rack and the same ports of both in the same request.
- repeated metalstack.api.v2.ExternalNetworkMember switch_ports = 2 [(buf.validate.field).repeated.max_items = 8];
+ // Rack the members are connected to.
+ string rack = 2 [(buf.validate.field).string.(metalstack.api.v2.is_name) = true];
+ // Ports of the switches to add to the network.
+ repeated string ports = 3 [
+ (buf.validate.field).repeated.max_items = 2048,
+ (buf.validate.field).repeated.(metalstack.api.v2.all_trimmed) = true
+ ];
}
// NetworkServiceRemoveExternalMemberRequest is the request payload for removing an external member from a network.
message NetworkServiceRemoveExternalMembersRequest {
// Network to remove the member from.
string network = 1 [(buf.validate.field).string.(metalstack.api.v2.is_name) = true];
- // SwitchPorts contains the ports of a switch that should be removed from the network.
- repeated metalstack.api.v2.ExternalNetworkMember switch_ports = 2 [(buf.validate.field).repeated.max_items = 8];
+ // Rack the members are connected to.
+ string rack = 2 [(buf.validate.field).string.(metalstack.api.v2.is_name) = true];
+ // Ports of the switches to remove from the network.
+ repeated string ports = 3 [
+ (buf.validate.field).repeated.max_items = 2048,
+ (buf.validate.field).repeated.(metalstack.api.v2.all_trimmed) = true
+ ];
}
// NetworkServiceCreateResponse is the response payload for creating a network.
diff --git a/python/metalstack/admin/v2/network_pb2.py b/python/metalstack/admin/v2/network_pb2.py
index 45e7bd07..694a3e53 100644
--- a/python/metalstack/admin/v2/network_pb2.py
+++ b/python/metalstack/admin/v2/network_pb2.py
@@ -29,7 +29,7 @@
from metalstack.api.v2 import switch_pb2 as metalstack_dot_api_dot_v2_dot_switch__pb2
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!metalstack/admin/v2/network.proto\x12\x13metalstack.admin.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1emetalstack/api/v2/common.proto\x1a\x1fmetalstack/api/v2/network.proto\x1a(metalstack/api/v2/predefined_rules.proto\x1a\x1emetalstack/api/v2/switch.proto\"7\n\x18NetworkServiceGetRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\"Q\n\x19NetworkServiceGetResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"\xa8\t\n\x1bNetworkServiceCreateRequest\x12 \n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x02id\x88\x01\x01\x12$\n\x04name\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x04name\x88\x01\x01\x12\x32\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x02R\x0b\x64\x65scription\x88\x01\x01\x12.\n\tpartition\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x03R\tpartition\x88\x01\x01\x12\'\n\x07project\x18\x05 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x04R\x07project\x88\x01\x01\x12<\n\x04type\x18\x06 \x01(\x0e\x32\x1e.metalstack.api.v2.NetworkTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x04type\x12\x36\n\x06labels\x18\x07 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsH\x05R\x06labels\x88\x01\x01\x12(\n\x08prefixes\x18\x08 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x08prefixes\x12?\n\x14\x64\x65stination_prefixes\x18\t \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x13\x64\x65stinationPrefixes\x12\x63\n\x1b\x64\x65\x66\x61ult_child_prefix_length\x18\n \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthR\x18\x64\x65\x66\x61ultChildPrefixLength\x12[\n\x17min_child_prefix_length\x18\x0b \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthR\x14minChildPrefixLength\x12\x44\n\x08nat_type\x18\x0c \x01(\x0e\x32\x1a.metalstack.api.v2.NATTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x06R\x07natType\x88\x01\x01\x12\x15\n\x03vrf\x18\r \x01(\rH\x07R\x03vrf\x88\x01\x01\x12\x37\n\x0eparent_network\x18\x0e \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x08R\rparentNetwork\x88\x01\x01\x12N\n\x1c\x61\x64\x64itional_announcable_cidrs\x18\x0f \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x1a\x61\x64\x64itionalAnnouncableCidrs\x12\x41\n\x06length\x18\x10 \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthH\tR\x06length\x88\x01\x01\x12]\n\x0e\x61\x64\x64ress_family\x18\x11 \x01(\x0e\x32\'.metalstack.api.v2.NetworkAddressFamilyB\x08\xbaH\x05\x82\x01\x02\x10\x01H\nR\raddressFamily\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0c\n\n_partitionB\n\n\x08_projectB\t\n\x07_labelsB\x0b\n\t_nat_typeB\x06\n\x04_vrfB\x11\n\x0f_parent_networkB\t\n\x07_lengthB\x11\n\x0f_address_family\"\xea\x06\n\x1bNetworkServiceUpdateRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\x12\x46\n\x0bupdate_meta\x18\x02 \x01(\x0b\x32\x1d.metalstack.api.v2.UpdateMetaB\x06\xbaH\x03\xc8\x01\x01R\nupdateMeta\x12$\n\x04name\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x04name\x88\x01\x01\x12\x32\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x01R\x0b\x64\x65scription\x88\x01\x01\x12<\n\x06labels\x18\x05 \x01(\x0b\x32\x1f.metalstack.api.v2.UpdateLabelsH\x02R\x06labels\x88\x01\x01\x12(\n\x08prefixes\x18\x06 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x08prefixes\x12?\n\x14\x64\x65stination_prefixes\x18\x07 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x13\x64\x65stinationPrefixes\x12h\n\x1b\x64\x65\x66\x61ult_child_prefix_length\x18\x08 \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthH\x03R\x18\x64\x65\x66\x61ultChildPrefixLength\x88\x01\x01\x12`\n\x17min_child_prefix_length\x18\t \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthH\x04R\x14minChildPrefixLength\x88\x01\x01\x12\x44\n\x08nat_type\x18\n \x01(\x0e\x32\x1a.metalstack.api.v2.NATTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x05R\x07natType\x88\x01\x01\x12N\n\x1c\x61\x64\x64itional_announcable_cidrs\x18\x0b \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x1a\x61\x64\x64itionalAnnouncableCidrs\x12\x14\n\x05\x66orce\x18\x0c \x01(\x08R\x05\x66orceB\x07\n\x05_nameB\x0e\n\x0c_descriptionB\t\n\x07_labelsB\x1e\n\x1c_default_child_prefix_lengthB\x1a\n\x18_min_child_prefix_lengthB\x0b\n\t_nat_type\":\n\x1bNetworkServiceDeleteRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\"R\n\x19NetworkServiceListRequest\x12\x35\n\x05query\x18\x01 \x01(\x0b\x32\x1f.metalstack.api.v2.NetworkQueryR\x05query\"\x96\x01\n(NetworkServiceListExternalMembersRequest\x12%\n\x07network\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07network\x12\x43\n\x05query\x18\x02 \x01(\x0b\x32-.metalstack.api.v2.ExternalNetworkMemberQueryR\x05query\"\xa7\x01\n\'NetworkServiceAddExternalMembersRequest\x12%\n\x07network\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07network\x12U\n\x0cswitch_ports\x18\x02 \x03(\x0b\x32(.metalstack.api.v2.ExternalNetworkMemberB\x08\xbaH\x05\x92\x01\x02\x10\x08R\x0bswitchPorts\"\xaa\x01\n*NetworkServiceRemoveExternalMembersRequest\x12%\n\x07network\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07network\x12U\n\x0cswitch_ports\x18\x02 \x03(\x0b\x32(.metalstack.api.v2.ExternalNetworkMemberB\x08\xbaH\x05\x92\x01\x02\x10\x08R\x0bswitchPorts\"T\n\x1cNetworkServiceCreateResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"T\n\x1cNetworkServiceUpdateResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"T\n\x1cNetworkServiceDeleteResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"T\n\x1aNetworkServiceListResponse\x12\x36\n\x08networks\x18\x01 \x03(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x08networks\"o\n)NetworkServiceListExternalMembersResponse\x12\x42\n\x07members\x18\x01 \x03(\x0b\x32(.metalstack.api.v2.ExternalNetworkMemberR\x07members\"a\n(NetworkServiceAddExternalMembersResponse\x12\x35\n\x08switches\x18\x01 \x03(\x0b\x32\x19.metalstack.api.v2.SwitchR\x08switches\"d\n+NetworkServiceRemoveExternalMembersResponse\x12\x35\n\x08switches\x18\x01 \x03(\x0b\x32\x19.metalstack.api.v2.SwitchR\x08switches2\xcf\x08\n\x0eNetworkService\x12p\n\x03Get\x12-.metalstack.admin.v2.NetworkServiceGetRequest\x1a..metalstack.admin.v2.NetworkServiceGetResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x12x\n\x06\x43reate\x12\x30.metalstack.admin.v2.NetworkServiceCreateRequest\x1a\x31.metalstack.admin.v2.NetworkServiceCreateResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12x\n\x06Update\x12\x30.metalstack.admin.v2.NetworkServiceUpdateRequest\x1a\x31.metalstack.admin.v2.NetworkServiceUpdateResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12x\n\x06\x44\x65lete\x12\x30.metalstack.admin.v2.NetworkServiceDeleteRequest\x1a\x31.metalstack.admin.v2.NetworkServiceDeleteResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12s\n\x04List\x12..metalstack.admin.v2.NetworkServiceListRequest\x1a/.metalstack.admin.v2.NetworkServiceListResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x12\xa0\x01\n\x13ListExternalMembers\x12=.metalstack.admin.v2.NetworkServiceListExternalMembersRequest\x1a>.metalstack.admin.v2.NetworkServiceListExternalMembersResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x12\x9c\x01\n\x12\x41\x64\x64\x45xternalMembers\x12<.metalstack.admin.v2.NetworkServiceAddExternalMembersRequest\x1a=.metalstack.admin.v2.NetworkServiceAddExternalMembersResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12\xa5\x01\n\x15RemoveExternalMembers\x12?.metalstack.admin.v2.NetworkServiceRemoveExternalMembersRequest\x1a@.metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x42\xd0\x01\n\x17\x63om.metalstack.admin.v2B\x0cNetworkProtoP\x01Z9github.com/metal-stack/api/go/metalstack/admin/v2;adminv2\xa2\x02\x03MAX\xaa\x02\x13Metalstack.Admin.V2\xca\x02\x13Metalstack\\Admin\\V2\xe2\x02\x1fMetalstack\\Admin\\V2\\GPBMetadata\xea\x02\x15Metalstack::Admin::V2b\x06proto3')
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!metalstack/admin/v2/network.proto\x12\x13metalstack.admin.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1emetalstack/api/v2/common.proto\x1a\x1fmetalstack/api/v2/network.proto\x1a(metalstack/api/v2/predefined_rules.proto\x1a\x1emetalstack/api/v2/switch.proto\"7\n\x18NetworkServiceGetRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\"Q\n\x19NetworkServiceGetResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"\xa8\t\n\x1bNetworkServiceCreateRequest\x12 \n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x02id\x88\x01\x01\x12$\n\x04name\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x04name\x88\x01\x01\x12\x32\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x02R\x0b\x64\x65scription\x88\x01\x01\x12.\n\tpartition\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x03R\tpartition\x88\x01\x01\x12\'\n\x07project\x18\x05 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x04R\x07project\x88\x01\x01\x12<\n\x04type\x18\x06 \x01(\x0e\x32\x1e.metalstack.api.v2.NetworkTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x04type\x12\x36\n\x06labels\x18\x07 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsH\x05R\x06labels\x88\x01\x01\x12(\n\x08prefixes\x18\x08 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x08prefixes\x12?\n\x14\x64\x65stination_prefixes\x18\t \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x13\x64\x65stinationPrefixes\x12\x63\n\x1b\x64\x65\x66\x61ult_child_prefix_length\x18\n \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthR\x18\x64\x65\x66\x61ultChildPrefixLength\x12[\n\x17min_child_prefix_length\x18\x0b \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthR\x14minChildPrefixLength\x12\x44\n\x08nat_type\x18\x0c \x01(\x0e\x32\x1a.metalstack.api.v2.NATTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x06R\x07natType\x88\x01\x01\x12\x15\n\x03vrf\x18\r \x01(\rH\x07R\x03vrf\x88\x01\x01\x12\x37\n\x0eparent_network\x18\x0e \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x08R\rparentNetwork\x88\x01\x01\x12N\n\x1c\x61\x64\x64itional_announcable_cidrs\x18\x0f \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x1a\x61\x64\x64itionalAnnouncableCidrs\x12\x41\n\x06length\x18\x10 \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthH\tR\x06length\x88\x01\x01\x12]\n\x0e\x61\x64\x64ress_family\x18\x11 \x01(\x0e\x32\'.metalstack.api.v2.NetworkAddressFamilyB\x08\xbaH\x05\x82\x01\x02\x10\x01H\nR\raddressFamily\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0c\n\n_partitionB\n\n\x08_projectB\t\n\x07_labelsB\x0b\n\t_nat_typeB\x06\n\x04_vrfB\x11\n\x0f_parent_networkB\t\n\x07_lengthB\x11\n\x0f_address_family\"\xea\x06\n\x1bNetworkServiceUpdateRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\x12\x46\n\x0bupdate_meta\x18\x02 \x01(\x0b\x32\x1d.metalstack.api.v2.UpdateMetaB\x06\xbaH\x03\xc8\x01\x01R\nupdateMeta\x12$\n\x04name\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x04name\x88\x01\x01\x12\x32\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x01R\x0b\x64\x65scription\x88\x01\x01\x12<\n\x06labels\x18\x05 \x01(\x0b\x32\x1f.metalstack.api.v2.UpdateLabelsH\x02R\x06labels\x88\x01\x01\x12(\n\x08prefixes\x18\x06 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x08prefixes\x12?\n\x14\x64\x65stination_prefixes\x18\x07 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x13\x64\x65stinationPrefixes\x12h\n\x1b\x64\x65\x66\x61ult_child_prefix_length\x18\x08 \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthH\x03R\x18\x64\x65\x66\x61ultChildPrefixLength\x88\x01\x01\x12`\n\x17min_child_prefix_length\x18\t \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthH\x04R\x14minChildPrefixLength\x88\x01\x01\x12\x44\n\x08nat_type\x18\n \x01(\x0e\x32\x1a.metalstack.api.v2.NATTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x05R\x07natType\x88\x01\x01\x12N\n\x1c\x61\x64\x64itional_announcable_cidrs\x18\x0b \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x1a\x61\x64\x64itionalAnnouncableCidrs\x12\x14\n\x05\x66orce\x18\x0c \x01(\x08R\x05\x66orceB\x07\n\x05_nameB\x0e\n\x0c_descriptionB\t\n\x07_labelsB\x1e\n\x1c_default_child_prefix_lengthB\x1a\n\x18_min_child_prefix_lengthB\x0b\n\t_nat_type\":\n\x1bNetworkServiceDeleteRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\"R\n\x19NetworkServiceListRequest\x12\x35\n\x05query\x18\x01 \x01(\x0b\x32\x1f.metalstack.api.v2.NetworkQueryR\x05query\"\x96\x01\n(NetworkServiceListExternalMembersRequest\x12%\n\x07network\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07network\x12\x43\n\x05query\x18\x02 \x01(\x0b\x32-.metalstack.api.v2.ExternalNetworkMemberQueryR\x05query\"\x98\x01\n\'NetworkServiceAddExternalMembersRequest\x12%\n\x07network\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07network\x12\x1f\n\x04rack\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x04rack\x12%\n\x05ports\x18\x03 \x03(\tB\x0f\xbaH\x0c\x92\x01\t\x10\x80\x10\xd0\xa4\xb3\xb1\x02\x01R\x05ports\"\x9b\x01\n*NetworkServiceRemoveExternalMembersRequest\x12%\n\x07network\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07network\x12\x1f\n\x04rack\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x04rack\x12%\n\x05ports\x18\x03 \x03(\tB\x0f\xbaH\x0c\x92\x01\t\x10\x80\x10\xd0\xa4\xb3\xb1\x02\x01R\x05ports\"T\n\x1cNetworkServiceCreateResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"T\n\x1cNetworkServiceUpdateResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"T\n\x1cNetworkServiceDeleteResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"T\n\x1aNetworkServiceListResponse\x12\x36\n\x08networks\x18\x01 \x03(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x08networks\"o\n)NetworkServiceListExternalMembersResponse\x12\x42\n\x07members\x18\x01 \x03(\x0b\x32(.metalstack.api.v2.ExternalNetworkMemberR\x07members\"a\n(NetworkServiceAddExternalMembersResponse\x12\x35\n\x08switches\x18\x01 \x03(\x0b\x32\x19.metalstack.api.v2.SwitchR\x08switches\"d\n+NetworkServiceRemoveExternalMembersResponse\x12\x35\n\x08switches\x18\x01 \x03(\x0b\x32\x19.metalstack.api.v2.SwitchR\x08switches2\xcf\x08\n\x0eNetworkService\x12p\n\x03Get\x12-.metalstack.admin.v2.NetworkServiceGetRequest\x1a..metalstack.admin.v2.NetworkServiceGetResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x12x\n\x06\x43reate\x12\x30.metalstack.admin.v2.NetworkServiceCreateRequest\x1a\x31.metalstack.admin.v2.NetworkServiceCreateResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12x\n\x06Update\x12\x30.metalstack.admin.v2.NetworkServiceUpdateRequest\x1a\x31.metalstack.admin.v2.NetworkServiceUpdateResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12x\n\x06\x44\x65lete\x12\x30.metalstack.admin.v2.NetworkServiceDeleteRequest\x1a\x31.metalstack.admin.v2.NetworkServiceDeleteResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12s\n\x04List\x12..metalstack.admin.v2.NetworkServiceListRequest\x1a/.metalstack.admin.v2.NetworkServiceListResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x12\xa0\x01\n\x13ListExternalMembers\x12=.metalstack.admin.v2.NetworkServiceListExternalMembersRequest\x1a>.metalstack.admin.v2.NetworkServiceListExternalMembersResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x12\x9c\x01\n\x12\x41\x64\x64\x45xternalMembers\x12<.metalstack.admin.v2.NetworkServiceAddExternalMembersRequest\x1a=.metalstack.admin.v2.NetworkServiceAddExternalMembersResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12\xa5\x01\n\x15RemoveExternalMembers\x12?.metalstack.admin.v2.NetworkServiceRemoveExternalMembersRequest\x1a@.metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x42\xd0\x01\n\x17\x63om.metalstack.admin.v2B\x0cNetworkProtoP\x01Z9github.com/metal-stack/api/go/metalstack/admin/v2;adminv2\xa2\x02\x03MAX\xaa\x02\x13Metalstack.Admin.V2\xca\x02\x13Metalstack\\Admin\\V2\xe2\x02\x1fMetalstack\\Admin\\V2\\GPBMetadata\xea\x02\x15Metalstack::Admin::V2b\x06proto3')
_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -85,12 +85,16 @@
_globals['_NETWORKSERVICELISTEXTERNALMEMBERSREQUEST'].fields_by_name['network']._serialized_options = b'\272H\010r\006\300\263\256\261\002\001'
_globals['_NETWORKSERVICEADDEXTERNALMEMBERSREQUEST'].fields_by_name['network']._loaded_options = None
_globals['_NETWORKSERVICEADDEXTERNALMEMBERSREQUEST'].fields_by_name['network']._serialized_options = b'\272H\010r\006\300\263\256\261\002\001'
- _globals['_NETWORKSERVICEADDEXTERNALMEMBERSREQUEST'].fields_by_name['switch_ports']._loaded_options = None
- _globals['_NETWORKSERVICEADDEXTERNALMEMBERSREQUEST'].fields_by_name['switch_ports']._serialized_options = b'\272H\005\222\001\002\020\010'
+ _globals['_NETWORKSERVICEADDEXTERNALMEMBERSREQUEST'].fields_by_name['rack']._loaded_options = None
+ _globals['_NETWORKSERVICEADDEXTERNALMEMBERSREQUEST'].fields_by_name['rack']._serialized_options = b'\272H\010r\006\300\263\256\261\002\001'
+ _globals['_NETWORKSERVICEADDEXTERNALMEMBERSREQUEST'].fields_by_name['ports']._loaded_options = None
+ _globals['_NETWORKSERVICEADDEXTERNALMEMBERSREQUEST'].fields_by_name['ports']._serialized_options = b'\272H\014\222\001\t\020\200\020\320\244\263\261\002\001'
_globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSREQUEST'].fields_by_name['network']._loaded_options = None
_globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSREQUEST'].fields_by_name['network']._serialized_options = b'\272H\010r\006\300\263\256\261\002\001'
- _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSREQUEST'].fields_by_name['switch_ports']._loaded_options = None
- _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSREQUEST'].fields_by_name['switch_ports']._serialized_options = b'\272H\005\222\001\002\020\010'
+ _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSREQUEST'].fields_by_name['rack']._loaded_options = None
+ _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSREQUEST'].fields_by_name['rack']._serialized_options = b'\272H\010r\006\300\263\256\261\002\001'
+ _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSREQUEST'].fields_by_name['ports']._loaded_options = None
+ _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSREQUEST'].fields_by_name['ports']._serialized_options = b'\272H\014\222\001\t\020\200\020\320\244\263\261\002\001'
_globals['_NETWORKSERVICE'].methods_by_name['Get']._loaded_options = None
_globals['_NETWORKSERVICE'].methods_by_name['Get']._serialized_options = b'\322\363\030\002\001\002\340\363\030\002'
_globals['_NETWORKSERVICE'].methods_by_name['Create']._loaded_options = None
@@ -122,23 +126,23 @@
_globals['_NETWORKSERVICELISTEXTERNALMEMBERSREQUEST']._serialized_start=2583
_globals['_NETWORKSERVICELISTEXTERNALMEMBERSREQUEST']._serialized_end=2733
_globals['_NETWORKSERVICEADDEXTERNALMEMBERSREQUEST']._serialized_start=2736
- _globals['_NETWORKSERVICEADDEXTERNALMEMBERSREQUEST']._serialized_end=2903
- _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSREQUEST']._serialized_start=2906
- _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSREQUEST']._serialized_end=3076
- _globals['_NETWORKSERVICECREATERESPONSE']._serialized_start=3078
- _globals['_NETWORKSERVICECREATERESPONSE']._serialized_end=3162
- _globals['_NETWORKSERVICEUPDATERESPONSE']._serialized_start=3164
- _globals['_NETWORKSERVICEUPDATERESPONSE']._serialized_end=3248
- _globals['_NETWORKSERVICEDELETERESPONSE']._serialized_start=3250
- _globals['_NETWORKSERVICEDELETERESPONSE']._serialized_end=3334
- _globals['_NETWORKSERVICELISTRESPONSE']._serialized_start=3336
- _globals['_NETWORKSERVICELISTRESPONSE']._serialized_end=3420
- _globals['_NETWORKSERVICELISTEXTERNALMEMBERSRESPONSE']._serialized_start=3422
- _globals['_NETWORKSERVICELISTEXTERNALMEMBERSRESPONSE']._serialized_end=3533
- _globals['_NETWORKSERVICEADDEXTERNALMEMBERSRESPONSE']._serialized_start=3535
- _globals['_NETWORKSERVICEADDEXTERNALMEMBERSRESPONSE']._serialized_end=3632
- _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSRESPONSE']._serialized_start=3634
- _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSRESPONSE']._serialized_end=3734
- _globals['_NETWORKSERVICE']._serialized_start=3737
- _globals['_NETWORKSERVICE']._serialized_end=4840
+ _globals['_NETWORKSERVICEADDEXTERNALMEMBERSREQUEST']._serialized_end=2888
+ _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSREQUEST']._serialized_start=2891
+ _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSREQUEST']._serialized_end=3046
+ _globals['_NETWORKSERVICECREATERESPONSE']._serialized_start=3048
+ _globals['_NETWORKSERVICECREATERESPONSE']._serialized_end=3132
+ _globals['_NETWORKSERVICEUPDATERESPONSE']._serialized_start=3134
+ _globals['_NETWORKSERVICEUPDATERESPONSE']._serialized_end=3218
+ _globals['_NETWORKSERVICEDELETERESPONSE']._serialized_start=3220
+ _globals['_NETWORKSERVICEDELETERESPONSE']._serialized_end=3304
+ _globals['_NETWORKSERVICELISTRESPONSE']._serialized_start=3306
+ _globals['_NETWORKSERVICELISTRESPONSE']._serialized_end=3390
+ _globals['_NETWORKSERVICELISTEXTERNALMEMBERSRESPONSE']._serialized_start=3392
+ _globals['_NETWORKSERVICELISTEXTERNALMEMBERSRESPONSE']._serialized_end=3503
+ _globals['_NETWORKSERVICEADDEXTERNALMEMBERSRESPONSE']._serialized_start=3505
+ _globals['_NETWORKSERVICEADDEXTERNALMEMBERSRESPONSE']._serialized_end=3602
+ _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSRESPONSE']._serialized_start=3604
+ _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSRESPONSE']._serialized_end=3704
+ _globals['_NETWORKSERVICE']._serialized_start=3707
+ _globals['_NETWORKSERVICE']._serialized_end=4810
# @@protoc_insertion_point(module_scope)
diff --git a/python/metalstack/admin/v2/network_pb2.pyi b/python/metalstack/admin/v2/network_pb2.pyi
index cc76b3ee..04be00b3 100644
--- a/python/metalstack/admin/v2/network_pb2.pyi
+++ b/python/metalstack/admin/v2/network_pb2.pyi
@@ -110,20 +110,24 @@ class NetworkServiceListExternalMembersRequest(_message.Message):
def __init__(self, network: _Optional[str] = ..., query: _Optional[_Union[_network_pb2.ExternalNetworkMemberQuery, _Mapping]] = ...) -> None: ...
class NetworkServiceAddExternalMembersRequest(_message.Message):
- __slots__ = ("network", "switch_ports")
+ __slots__ = ("network", "rack", "ports")
NETWORK_FIELD_NUMBER: _ClassVar[int]
- SWITCH_PORTS_FIELD_NUMBER: _ClassVar[int]
+ RACK_FIELD_NUMBER: _ClassVar[int]
+ PORTS_FIELD_NUMBER: _ClassVar[int]
network: str
- switch_ports: _containers.RepeatedCompositeFieldContainer[_network_pb2.ExternalNetworkMember]
- def __init__(self, network: _Optional[str] = ..., switch_ports: _Optional[_Iterable[_Union[_network_pb2.ExternalNetworkMember, _Mapping]]] = ...) -> None: ...
+ rack: str
+ ports: _containers.RepeatedScalarFieldContainer[str]
+ def __init__(self, network: _Optional[str] = ..., rack: _Optional[str] = ..., ports: _Optional[_Iterable[str]] = ...) -> None: ...
class NetworkServiceRemoveExternalMembersRequest(_message.Message):
- __slots__ = ("network", "switch_ports")
+ __slots__ = ("network", "rack", "ports")
NETWORK_FIELD_NUMBER: _ClassVar[int]
- SWITCH_PORTS_FIELD_NUMBER: _ClassVar[int]
+ RACK_FIELD_NUMBER: _ClassVar[int]
+ PORTS_FIELD_NUMBER: _ClassVar[int]
network: str
- switch_ports: _containers.RepeatedCompositeFieldContainer[_network_pb2.ExternalNetworkMember]
- def __init__(self, network: _Optional[str] = ..., switch_ports: _Optional[_Iterable[_Union[_network_pb2.ExternalNetworkMember, _Mapping]]] = ...) -> None: ...
+ rack: str
+ ports: _containers.RepeatedScalarFieldContainer[str]
+ def __init__(self, network: _Optional[str] = ..., rack: _Optional[str] = ..., ports: _Optional[_Iterable[str]] = ...) -> None: ...
class NetworkServiceCreateResponse(_message.Message):
__slots__ = ("network",)