From 3d0059da13f2ea60db56384348c2ef6f424d36d7 Mon Sep 17 00:00:00 2001 From: Ilja Rotar Date: Thu, 3 Sep 2026 11:20:06 +0200 Subject: [PATCH 1/9] Add `SwitchPortMembership` to nics --- doc/index.html | 47 +++++++ go/metalstack/api/v2/switch.pb.go | 177 +++++++++++++++++------- js/metalstack/api/v2/switch_pb.d.ts | 42 ++++++ js/metalstack/api/v2/switch_pb.js | 39 +++++- js/metalstack/api/v2/switch_pb.ts | 51 ++++++- proto/Makefile | 2 +- proto/metalstack/api/v2/switch.proto | 15 ++ python/metalstack/api/v2/switch_pb2.py | 58 ++++---- python/metalstack/api/v2/switch_pb2.pyi | 17 ++- 9 files changed, 365 insertions(+), 83 deletions(-) diff --git a/doc/index.html b/doc/index.html index ac60154a..1d5f23fb 100644 --- a/doc/index.html +++ b/doc/index.html @@ -1640,6 +1640,10 @@

Table of Contents

ESwitchOSVendor +
  • + ESwitchPortMembership +
  • +
  • ESwitchPortStatus
  • @@ -14149,6 +14153,13 @@

    SwitchNic

    BGPPortState represents the current BGP status of the port.

    + + membership + SwitchPortMembership + +

    Membership indicates whether the port is connected to an internal or external host.

    + + @@ -14489,6 +14500,42 @@

    SwitchOSVendor

    +

    SwitchPortMembership

    +

    SwitchPortMembership indicates whether a switch port is connected to an internal or an external host.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameNumberDescription
    SWITCH_PORT_MEMBERSHIP_UNSPECIFIED0

    SWITCH_PORT_MEMBERSHIP_UNSPECIFIED is not specified.

    SWITCH_PORT_MEMBERSHIP_UNMANAGED1

    SWITCH_PORT_MEMBERSHIP_UNMANAGED is a port that isn't connected to any host yet.

    SWITCH_PORT_MEMBERSHIP_INTERNAL2

    SWITCH_PORT_MEMBERSHIP_INTERNAL is port that is connected to a host that is registered at the api, e.g. a registered machine.

    SWITCH_PORT_MEMBERSHIP_EXTERNAL3

    SWITCH_PORT_MEMBERSHIP_EXTERNAL is port that is connected to a host that is not registered at the api. +This value allows connecting an external system to a network managed by us.

    +

    SwitchPortStatus

    SwitchPortStatus specifies the state of a switch port.

    diff --git a/go/metalstack/api/v2/switch.pb.go b/go/metalstack/api/v2/switch.pb.go index 50f2cde2..0a00159c 100644 --- a/go/metalstack/api/v2/switch.pb.go +++ b/go/metalstack/api/v2/switch.pb.go @@ -256,6 +256,64 @@ func (SwitchPortStatus) EnumDescriptor() ([]byte, []int) { return file_metalstack_api_v2_switch_proto_rawDescGZIP(), []int{3} } +// SwitchPortMembership indicates whether a switch port is connected to an internal or an external host. +type SwitchPortMembership int32 + +const ( + // SWITCH_PORT_MEMBERSHIP_UNSPECIFIED is not specified. + SwitchPortMembership_SWITCH_PORT_MEMBERSHIP_UNSPECIFIED SwitchPortMembership = 0 + // SWITCH_PORT_MEMBERSHIP_UNMANAGED is a port that isn't connected to any host yet. + SwitchPortMembership_SWITCH_PORT_MEMBERSHIP_UNMANAGED SwitchPortMembership = 1 + // SWITCH_PORT_MEMBERSHIP_INTERNAL is port that is connected to a host that is registered at the api, e.g. a registered machine. + SwitchPortMembership_SWITCH_PORT_MEMBERSHIP_INTERNAL SwitchPortMembership = 2 + // SWITCH_PORT_MEMBERSHIP_EXTERNAL is port that is connected to a host that is not registered at the api. + // This value allows connecting an external system to a network managed by us. + SwitchPortMembership_SWITCH_PORT_MEMBERSHIP_EXTERNAL SwitchPortMembership = 3 +) + +// Enum value maps for SwitchPortMembership. +var ( + SwitchPortMembership_name = map[int32]string{ + 0: "SWITCH_PORT_MEMBERSHIP_UNSPECIFIED", + 1: "SWITCH_PORT_MEMBERSHIP_UNMANAGED", + 2: "SWITCH_PORT_MEMBERSHIP_INTERNAL", + 3: "SWITCH_PORT_MEMBERSHIP_EXTERNAL", + } + SwitchPortMembership_value = map[string]int32{ + "SWITCH_PORT_MEMBERSHIP_UNSPECIFIED": 0, + "SWITCH_PORT_MEMBERSHIP_UNMANAGED": 1, + "SWITCH_PORT_MEMBERSHIP_INTERNAL": 2, + "SWITCH_PORT_MEMBERSHIP_EXTERNAL": 3, + } +) + +func (x SwitchPortMembership) Enum() *SwitchPortMembership { + p := new(SwitchPortMembership) + *p = x + return p +} + +func (x SwitchPortMembership) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SwitchPortMembership) Descriptor() protoreflect.EnumDescriptor { + return file_metalstack_api_v2_switch_proto_enumTypes[4].Descriptor() +} + +func (SwitchPortMembership) Type() protoreflect.EnumType { + return &file_metalstack_api_v2_switch_proto_enumTypes[4] +} + +func (x SwitchPortMembership) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SwitchPortMembership.Descriptor instead. +func (SwitchPortMembership) EnumDescriptor() ([]byte, []int) { + return file_metalstack_api_v2_switch_proto_rawDescGZIP(), []int{4} +} + // Switch represents a network switch. type Switch struct { state protoimpl.MessageState `protogen:"open.v1"` @@ -508,7 +566,9 @@ type SwitchNic struct { // BGPFilter optionally configured on a port. BgpFilter *BGPFilter `protobuf:"bytes,6,opt,name=bgp_filter,json=bgpFilter,proto3,oneof" json:"bgp_filter,omitempty"` // BGPPortState represents the current BGP status of the port. - BgpPortState *SwitchBGPPortState `protobuf:"bytes,7,opt,name=bgp_port_state,json=bgpPortState,proto3,oneof" json:"bgp_port_state,omitempty"` + BgpPortState *SwitchBGPPortState `protobuf:"bytes,7,opt,name=bgp_port_state,json=bgpPortState,proto3,oneof" json:"bgp_port_state,omitempty"` + // Membership indicates whether the port is connected to an internal or external host. + Membership SwitchPortMembership `protobuf:"varint,8,opt,name=membership,proto3,enum=metalstack.api.v2.SwitchPortMembership" json:"membership,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -592,6 +652,13 @@ func (x *SwitchNic) GetBgpPortState() *SwitchBGPPortState { return nil } +func (x *SwitchNic) GetMembership() SwitchPortMembership { + if x != nil { + return x.Membership + } + return SwitchPortMembership_SWITCH_PORT_MEMBERSHIP_UNSPECIFIED +} + // BGPFilter can be used to restrict BGP based on CIDRs and VNIs. type BGPFilter struct { state protoimpl.MessageState `protogen:"open.v1"` @@ -1236,7 +1303,7 @@ const file_metalstack_api_v2_switch_proto_rawDesc = "" + "\bSwitchOS\x12C\n" + "\x06vendor\x18\x01 \x01(\x0e2!.metalstack.api.v2.SwitchOSVendorB\b\xbaH\x05\x82\x01\x02\x10\x01R\x06vendor\x12%\n" + "\aversion\x18\x02 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01R\aversion\x129\n" + - "\x12metal_core_version\x18\x03 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01R\x10metalCoreVersion\"\xa9\x03\n" + + "\x12metal_core_version\x18\x03 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01R\x10metalCoreVersion\"\xf2\x03\n" + "\tSwitchNic\x12\x1f\n" + "\x04name\x18\x01 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01R\x04name\x12+\n" + "\n" + @@ -1247,7 +1314,10 @@ const file_metalstack_api_v2_switch_proto_rawDesc = "" + "\x05state\x18\x05 \x01(\v2\x1b.metalstack.api.v2.NicStateH\x02R\x05state\x88\x01\x01\x12@\n" + "\n" + "bgp_filter\x18\x06 \x01(\v2\x1c.metalstack.api.v2.BGPFilterH\x03R\tbgpFilter\x88\x01\x01\x12P\n" + - "\x0ebgp_port_state\x18\a \x01(\v2%.metalstack.api.v2.SwitchBGPPortStateH\x04R\fbgpPortState\x88\x01\x01B\x06\n" + + "\x0ebgp_port_state\x18\a \x01(\v2%.metalstack.api.v2.SwitchBGPPortStateH\x04R\fbgpPortState\x88\x01\x01\x12G\n" + + "\n" + + "membership\x18\b \x01(\x0e2'.metalstack.api.v2.SwitchPortMembershipR\n" + + "membershipB\x06\n" + "\x04_macB\x06\n" + "\x04_vrfB\b\n" + "\x06_stateB\r\n" + @@ -1331,7 +1401,12 @@ const file_metalstack_api_v2_switch_proto_rawDesc = "" + "\x1eSWITCH_PORT_STATUS_UNSPECIFIED\x10\x00\x12!\n" + "\x15SWITCH_PORT_STATUS_UP\x10\x01\x1a\x06\x82\xb2\x19\x02up\x12%\n" + "\x17SWITCH_PORT_STATUS_DOWN\x10\x02\x1a\b\x82\xb2\x19\x04down\x12+\n" + - "\x1aSWITCH_PORT_STATUS_UNKNOWN\x10\x03\x1a\v\x82\xb2\x19\aunknownB\xc1\x01\n" + + "\x1aSWITCH_PORT_STATUS_UNKNOWN\x10\x03\x1a\v\x82\xb2\x19\aunknown*\xae\x01\n" + + "\x14SwitchPortMembership\x12&\n" + + "\"SWITCH_PORT_MEMBERSHIP_UNSPECIFIED\x10\x00\x12$\n" + + " SWITCH_PORT_MEMBERSHIP_UNMANAGED\x10\x01\x12#\n" + + "\x1fSWITCH_PORT_MEMBERSHIP_INTERNAL\x10\x02\x12#\n" + + "\x1fSWITCH_PORT_MEMBERSHIP_EXTERNAL\x10\x03B\xc1\x01\n" + "\x15com.metalstack.api.v2B\vSwitchProtoP\x01Z5github.com/metal-stack/api/go/metalstack/api/v2;apiv2\xa2\x02\x03MAX\xaa\x02\x11Metalstack.Api.V2\xca\x02\x11Metalstack\\Api\\V2\xe2\x02\x1dMetalstack\\Api\\V2\\GPBMetadata\xea\x02\x13Metalstack::Api::V2b\x06proto3" var ( @@ -1346,61 +1421,63 @@ func file_metalstack_api_v2_switch_proto_rawDescGZIP() []byte { return file_metalstack_api_v2_switch_proto_rawDescData } -var file_metalstack_api_v2_switch_proto_enumTypes = make([]protoimpl.EnumInfo, 4) +var file_metalstack_api_v2_switch_proto_enumTypes = make([]protoimpl.EnumInfo, 5) var file_metalstack_api_v2_switch_proto_msgTypes = make([]protoimpl.MessageInfo, 12) var file_metalstack_api_v2_switch_proto_goTypes = []any{ (BGPState)(0), // 0: metalstack.api.v2.BGPState (SwitchReplaceMode)(0), // 1: metalstack.api.v2.SwitchReplaceMode (SwitchOSVendor)(0), // 2: metalstack.api.v2.SwitchOSVendor (SwitchPortStatus)(0), // 3: metalstack.api.v2.SwitchPortStatus - (*Switch)(nil), // 4: metalstack.api.v2.Switch - (*SwitchOS)(nil), // 5: metalstack.api.v2.SwitchOS - (*SwitchNic)(nil), // 6: metalstack.api.v2.SwitchNic - (*BGPFilter)(nil), // 7: metalstack.api.v2.BGPFilter - (*SwitchBGPPortState)(nil), // 8: metalstack.api.v2.SwitchBGPPortState - (*NicState)(nil), // 9: metalstack.api.v2.NicState - (*MachineConnection)(nil), // 10: metalstack.api.v2.MachineConnection - (*SwitchQuery)(nil), // 11: metalstack.api.v2.SwitchQuery - (*SwitchOSQuery)(nil), // 12: metalstack.api.v2.SwitchOSQuery - (*SwitchSync)(nil), // 13: metalstack.api.v2.SwitchSync - (*SwitchWithMachines)(nil), // 14: metalstack.api.v2.SwitchWithMachines - (*SwitchNicWithMachine)(nil), // 15: metalstack.api.v2.SwitchNicWithMachine - (*Meta)(nil), // 16: metalstack.api.v2.Meta - (*timestamppb.Timestamp)(nil), // 17: google.protobuf.Timestamp - (*durationpb.Duration)(nil), // 18: google.protobuf.Duration - (*Machine)(nil), // 19: metalstack.api.v2.Machine - (*MachineFRU)(nil), // 20: metalstack.api.v2.MachineFRU + (SwitchPortMembership)(0), // 4: metalstack.api.v2.SwitchPortMembership + (*Switch)(nil), // 5: metalstack.api.v2.Switch + (*SwitchOS)(nil), // 6: metalstack.api.v2.SwitchOS + (*SwitchNic)(nil), // 7: metalstack.api.v2.SwitchNic + (*BGPFilter)(nil), // 8: metalstack.api.v2.BGPFilter + (*SwitchBGPPortState)(nil), // 9: metalstack.api.v2.SwitchBGPPortState + (*NicState)(nil), // 10: metalstack.api.v2.NicState + (*MachineConnection)(nil), // 11: metalstack.api.v2.MachineConnection + (*SwitchQuery)(nil), // 12: metalstack.api.v2.SwitchQuery + (*SwitchOSQuery)(nil), // 13: metalstack.api.v2.SwitchOSQuery + (*SwitchSync)(nil), // 14: metalstack.api.v2.SwitchSync + (*SwitchWithMachines)(nil), // 15: metalstack.api.v2.SwitchWithMachines + (*SwitchNicWithMachine)(nil), // 16: metalstack.api.v2.SwitchNicWithMachine + (*Meta)(nil), // 17: metalstack.api.v2.Meta + (*timestamppb.Timestamp)(nil), // 18: google.protobuf.Timestamp + (*durationpb.Duration)(nil), // 19: google.protobuf.Duration + (*Machine)(nil), // 20: metalstack.api.v2.Machine + (*MachineFRU)(nil), // 21: metalstack.api.v2.MachineFRU } var file_metalstack_api_v2_switch_proto_depIdxs = []int32{ - 16, // 0: metalstack.api.v2.Switch.meta:type_name -> metalstack.api.v2.Meta + 17, // 0: metalstack.api.v2.Switch.meta:type_name -> metalstack.api.v2.Meta 1, // 1: metalstack.api.v2.Switch.replace_mode:type_name -> metalstack.api.v2.SwitchReplaceMode - 6, // 2: metalstack.api.v2.Switch.nics:type_name -> metalstack.api.v2.SwitchNic - 5, // 3: metalstack.api.v2.Switch.os:type_name -> metalstack.api.v2.SwitchOS - 10, // 4: metalstack.api.v2.Switch.machine_connections:type_name -> metalstack.api.v2.MachineConnection - 13, // 5: metalstack.api.v2.Switch.last_sync:type_name -> metalstack.api.v2.SwitchSync - 13, // 6: metalstack.api.v2.Switch.last_sync_error:type_name -> metalstack.api.v2.SwitchSync + 7, // 2: metalstack.api.v2.Switch.nics:type_name -> metalstack.api.v2.SwitchNic + 6, // 3: metalstack.api.v2.Switch.os:type_name -> metalstack.api.v2.SwitchOS + 11, // 4: metalstack.api.v2.Switch.machine_connections:type_name -> metalstack.api.v2.MachineConnection + 14, // 5: metalstack.api.v2.Switch.last_sync:type_name -> metalstack.api.v2.SwitchSync + 14, // 6: metalstack.api.v2.Switch.last_sync_error:type_name -> metalstack.api.v2.SwitchSync 2, // 7: metalstack.api.v2.SwitchOS.vendor:type_name -> metalstack.api.v2.SwitchOSVendor - 9, // 8: metalstack.api.v2.SwitchNic.state:type_name -> metalstack.api.v2.NicState - 7, // 9: metalstack.api.v2.SwitchNic.bgp_filter:type_name -> metalstack.api.v2.BGPFilter - 8, // 10: metalstack.api.v2.SwitchNic.bgp_port_state:type_name -> metalstack.api.v2.SwitchBGPPortState - 0, // 11: metalstack.api.v2.SwitchBGPPortState.bgp_state:type_name -> metalstack.api.v2.BGPState - 17, // 12: metalstack.api.v2.SwitchBGPPortState.bgp_timer_up_established:type_name -> google.protobuf.Timestamp - 3, // 13: metalstack.api.v2.NicState.desired:type_name -> metalstack.api.v2.SwitchPortStatus - 3, // 14: metalstack.api.v2.NicState.actual:type_name -> metalstack.api.v2.SwitchPortStatus - 6, // 15: metalstack.api.v2.MachineConnection.nic:type_name -> metalstack.api.v2.SwitchNic - 12, // 16: metalstack.api.v2.SwitchQuery.os:type_name -> metalstack.api.v2.SwitchOSQuery - 2, // 17: metalstack.api.v2.SwitchOSQuery.vendor:type_name -> metalstack.api.v2.SwitchOSVendor - 17, // 18: metalstack.api.v2.SwitchSync.time:type_name -> google.protobuf.Timestamp - 18, // 19: metalstack.api.v2.SwitchSync.duration:type_name -> google.protobuf.Duration - 15, // 20: metalstack.api.v2.SwitchWithMachines.connections:type_name -> metalstack.api.v2.SwitchNicWithMachine - 6, // 21: metalstack.api.v2.SwitchNicWithMachine.nic:type_name -> metalstack.api.v2.SwitchNic - 19, // 22: metalstack.api.v2.SwitchNicWithMachine.machine:type_name -> metalstack.api.v2.Machine - 20, // 23: metalstack.api.v2.SwitchNicWithMachine.fru:type_name -> metalstack.api.v2.MachineFRU - 24, // [24:24] is the sub-list for method output_type - 24, // [24:24] 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 + 10, // 8: metalstack.api.v2.SwitchNic.state:type_name -> metalstack.api.v2.NicState + 8, // 9: metalstack.api.v2.SwitchNic.bgp_filter:type_name -> metalstack.api.v2.BGPFilter + 9, // 10: metalstack.api.v2.SwitchNic.bgp_port_state:type_name -> metalstack.api.v2.SwitchBGPPortState + 4, // 11: metalstack.api.v2.SwitchNic.membership:type_name -> metalstack.api.v2.SwitchPortMembership + 0, // 12: metalstack.api.v2.SwitchBGPPortState.bgp_state:type_name -> metalstack.api.v2.BGPState + 18, // 13: metalstack.api.v2.SwitchBGPPortState.bgp_timer_up_established:type_name -> google.protobuf.Timestamp + 3, // 14: metalstack.api.v2.NicState.desired:type_name -> metalstack.api.v2.SwitchPortStatus + 3, // 15: metalstack.api.v2.NicState.actual:type_name -> metalstack.api.v2.SwitchPortStatus + 7, // 16: metalstack.api.v2.MachineConnection.nic:type_name -> metalstack.api.v2.SwitchNic + 13, // 17: metalstack.api.v2.SwitchQuery.os:type_name -> metalstack.api.v2.SwitchOSQuery + 2, // 18: metalstack.api.v2.SwitchOSQuery.vendor:type_name -> metalstack.api.v2.SwitchOSVendor + 18, // 19: metalstack.api.v2.SwitchSync.time:type_name -> google.protobuf.Timestamp + 19, // 20: metalstack.api.v2.SwitchSync.duration:type_name -> google.protobuf.Duration + 16, // 21: metalstack.api.v2.SwitchWithMachines.connections:type_name -> metalstack.api.v2.SwitchNicWithMachine + 7, // 22: metalstack.api.v2.SwitchNicWithMachine.nic:type_name -> metalstack.api.v2.SwitchNic + 20, // 23: metalstack.api.v2.SwitchNicWithMachine.machine:type_name -> metalstack.api.v2.Machine + 21, // 24: metalstack.api.v2.SwitchNicWithMachine.fru:type_name -> metalstack.api.v2.MachineFRU + 25, // [25:25] is the sub-list for method output_type + 25, // [25:25] is the sub-list for method input_type + 25, // [25:25] is the sub-list for extension type_name + 25, // [25:25] is the sub-list for extension extendee + 0, // [0:25] is the sub-list for field type_name } func init() { file_metalstack_api_v2_switch_proto_init() } @@ -1422,7 +1499,7 @@ func file_metalstack_api_v2_switch_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_metalstack_api_v2_switch_proto_rawDesc), len(file_metalstack_api_v2_switch_proto_rawDesc)), - NumEnums: 4, + NumEnums: 5, NumMessages: 12, NumExtensions: 0, NumServices: 0, diff --git a/js/metalstack/api/v2/switch_pb.d.ts b/js/metalstack/api/v2/switch_pb.d.ts index 64b9e049..93da33fd 100644 --- a/js/metalstack/api/v2/switch_pb.d.ts +++ b/js/metalstack/api/v2/switch_pb.d.ts @@ -187,6 +187,12 @@ export type SwitchNic = Message<"metalstack.api.v2.SwitchNic"> & { * @generated from field: optional metalstack.api.v2.SwitchBGPPortState bgp_port_state = 7; */ bgpPortState?: SwitchBGPPortState | undefined; + /** + * Membership indicates whether the port is connected to an internal or external host. + * + * @generated from field: metalstack.api.v2.SwitchPortMembership membership = 8; + */ + membership: SwitchPortMembership; }; /** * Describes the message metalstack.api.v2.SwitchNic. @@ -633,3 +639,39 @@ export declare enum SwitchPortStatus { * Describes the enum metalstack.api.v2.SwitchPortStatus. */ export declare const SwitchPortStatusSchema: GenEnum; +/** + * SwitchPortMembership indicates whether a switch port is connected to an internal or an external host. + * + * @generated from enum metalstack.api.v2.SwitchPortMembership + */ +export declare enum SwitchPortMembership { + /** + * SWITCH_PORT_MEMBERSHIP_UNSPECIFIED is not specified. + * + * @generated from enum value: SWITCH_PORT_MEMBERSHIP_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, + /** + * SWITCH_PORT_MEMBERSHIP_UNMANAGED is a port that isn't connected to any host yet. + * + * @generated from enum value: SWITCH_PORT_MEMBERSHIP_UNMANAGED = 1; + */ + UNMANAGED = 1, + /** + * SWITCH_PORT_MEMBERSHIP_INTERNAL is port that is connected to a host that is registered at the api, e.g. a registered machine. + * + * @generated from enum value: SWITCH_PORT_MEMBERSHIP_INTERNAL = 2; + */ + INTERNAL = 2, + /** + * SWITCH_PORT_MEMBERSHIP_EXTERNAL is port that is connected to a host that is not registered at the api. + * This value allows connecting an external system to a network managed by us. + * + * @generated from enum value: SWITCH_PORT_MEMBERSHIP_EXTERNAL = 3; + */ + EXTERNAL = 3 +} +/** + * Describes the enum metalstack.api.v2.SwitchPortMembership. + */ +export declare const SwitchPortMembershipSchema: GenEnum; diff --git a/js/metalstack/api/v2/switch_pb.js b/js/metalstack/api/v2/switch_pb.js index 56db191a..d620c171 100644 --- a/js/metalstack/api/v2/switch_pb.js +++ b/js/metalstack/api/v2/switch_pb.js @@ -10,7 +10,7 @@ import { file_metalstack_api_v2_predefined_rules } from "./predefined_rules_pb"; /** * Describes the file metalstack/api/v2/switch.proto. */ -export const file_metalstack_api_v2_switch = /*@__PURE__*/ fileDesc("Ch5tZXRhbHN0YWNrL2FwaS92Mi9zd2l0Y2gucHJvdG8SEW1ldGFsc3RhY2suYXBpLnYyIsIFCgZTd2l0Y2gSGQoCaWQYASABKAlCDbpICnIIwLOusQIBaAESJQoEbWV0YRgCIAEoCzIXLm1ldGFsc3RhY2suYXBpLnYyLk1ldGESIAoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBEh4KBHJhY2sYBCABKAlCC7pICHIGwLOusQIBSACIAQESHgoEcm9vbRgFIAEoCUILukgIcgbAs66xAgFIAYgBARIeCglwYXJ0aXRpb24YBiABKAlCC7pICHIG0LOusQIBEkQKDHJlcGxhY2VfbW9kZRgHIAEoDjIkLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFJlcGxhY2VNb2RlQgi6SAWCAQIQARIeCg1tYW5hZ2VtZW50X2lwGAggASgJQge6SARyAnABEigKD21hbmFnZW1lbnRfdXNlchgJIAEoCUIKukgHcgUQAhiAAUgCiAEBEigKD2NvbnNvbGVfY29tbWFuZBgKIAEoCUIKukgHcgUQAhiAAUgDiAEBEioKBG5pY3MYCyADKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSJwoCb3MYDCABKAsyGy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hPUxJBChNtYWNoaW5lX2Nvbm5lY3Rpb25zGA0gAygLMiQubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUNvbm5lY3Rpb24SMAoJbGFzdF9zeW5jGA4gASgLMh0ubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoU3luYxI2Cg9sYXN0X3N5bmNfZXJyb3IYDyABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hTeW5jQgcKBV9yYWNrQgcKBV9yb29tQhIKEF9tYW5hZ2VtZW50X3VzZXJCEgoQX2NvbnNvbGVfY29tbWFuZCKOAQoIU3dpdGNoT1MSOwoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABEhwKB3ZlcnNpb24YAiABKAlCC7pICHIGwLOusQIBEicKEm1ldGFsX2NvcmVfdmVyc2lvbhgDIAEoCUILukgIcgbAs66xAgEi7QIKCVN3aXRjaE5pYxIZCgRuYW1lGAEgASgJQgu6SAhyBsCzrrECARIfCgppZGVudGlmaWVyGAIgASgJQgu6SAhyBsCzrrECARIdCgNtYWMYAyABKAlCC7pICHIGuLOusQIBSACIAQESHQoDdnJmGAQgASgJQgu6SAhyBsCzrrECAUgBiAEBEi8KBXN0YXRlGAUgASgLMhsubWV0YWxzdGFjay5hcGkudjIuTmljU3RhdGVIAogBARI1CgpiZ3BfZmlsdGVyGAYgASgLMhwubWV0YWxzdGFjay5hcGkudjIuQkdQRmlsdGVySAOIAQESQgoOYmdwX3BvcnRfc3RhdGUYByABKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hCR1BQb3J0U3RhdGVIBIgBAUIGCgRfbWFjQgYKBF92cmZCCAoGX3N0YXRlQg0KC19iZ3BfZmlsdGVyQhEKD19iZ3BfcG9ydF9zdGF0ZSJHCglCR1BGaWx0ZXISGwoFY2lkcnMYASADKAlCDLpICZIBBriks7ECARIdCgR2bmlzGAIgAygJQg+6SAySAQkiB3IFEAIYgAEiqQIKElN3aXRjaEJHUFBvcnRTdGF0ZRIdCghuZWlnaGJvchgBIAEoCUILukgIcgbAs66xAgESHwoKcGVlcl9ncm91cBgCIAEoCUILukgIcgbAs66xAgESHQoIdnJmX25hbWUYAyABKAlCC7pICHIGwLOusQIBEjgKCWJncF9zdGF0ZRgEIAEoDjIbLm1ldGFsc3RhY2suYXBpLnYyLkJHUFN0YXRlQgi6SAWCAQIQARI8ChhiZ3BfdGltZXJfdXBfZXN0YWJsaXNoZWQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhsKE3NlbnRfcHJlZml4X2NvdW50ZXIYBiABKAQSHwoXYWNjZXB0ZWRfcHJlZml4X2NvdW50ZXIYByABKAQimgEKCE5pY1N0YXRlEkMKB2Rlc2lyZWQYASABKA4yIy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hQb3J0U3RhdHVzQgi6SAWCAQIQAUgAiAEBEj0KBmFjdHVhbBgCIAEoDjIjLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFBvcnRTdGF0dXNCCLpIBYIBAhABQgoKCF9kZXNpcmVkIlIKEU1hY2hpbmVDb25uZWN0aW9uEhIKCm1hY2hpbmVfaWQYASABKAkSKQoDbmljGAIgASgLMhwubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoTmljIrkCCgtTd2l0Y2hRdWVyeRIeCgJpZBgBIAEoCUINukgKcgjAs66xAgFoAUgAiAEBEiMKCXBhcnRpdGlvbhgCIAEoCUILukgIcgbQs66xAgFIAYgBARIeCgRyYWNrGAMgASgJQgu6SAhyBsCzrrECAUgCiAEBEh4KBHJvb20YBCABKAlCC7pICHIGwLOusQIBSAOIAQESMQoCb3MYBSABKAsyIC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hPU1F1ZXJ5SASIAQESKwoUY29ubmVjdGVkX21hY2hpbmVfaWQYBiABKAlCCLpIBXIDsAEBSAWIAQFCBQoDX2lkQgwKCl9wYXJ0aXRpb25CBwoFX3JhY2tCBwoFX3Jvb21CBQoDX29zQhcKFV9jb25uZWN0ZWRfbWFjaGluZV9pZCKLAQoNU3dpdGNoT1NRdWVyeRJACgZ2ZW5kb3IYASABKA4yIS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hPU1ZlbmRvckIIukgFggECEAFIAIgBARIhCgd2ZXJzaW9uGAIgASgJQgu6SAhyBsCzrrECAUgBiAEBQgkKB192ZW5kb3JCCgoIX3ZlcnNpb24igQEKClN3aXRjaFN5bmMSKAoEdGltZRgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASKwoIZHVyYXRpb24YAiABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SEgoFZXJyb3IYAyABKAlIAIgBAUIICgZfZXJyb3IifwoSU3dpdGNoV2l0aE1hY2hpbmVzEgoKAmlkGAEgASgJEhEKCXBhcnRpdGlvbhgCIAEoCRIMCgRyYWNrGAMgASgJEjwKC2Nvbm5lY3Rpb25zGAQgAygLMicubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoTmljV2l0aE1hY2hpbmUimgEKFFN3aXRjaE5pY1dpdGhNYWNoaW5lEikKA25pYxgBIAEoCzIcLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pYxIrCgdtYWNoaW5lGAIgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZRIqCgNmcnUYAyABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5NYWNoaW5lRlJVKokCCghCR1BTdGF0ZRIZChVCR1BfU1RBVEVfVU5TUEVDSUZJRUQQABIcCg5CR1BfU1RBVEVfSURMRRABGgiCshkESWRsZRIiChFCR1BfU1RBVEVfQ09OTkVDVBACGguCshkHQ29ubmVjdBIgChBCR1BfU1RBVEVfQUNUSVZFEAMaCoKyGQZBY3RpdmUSJQoTQkdQX1NUQVRFX09QRU5fU0VOVBAEGgyCshkIT3BlblNlbnQSKwoWQkdQX1NUQVRFX09QRU5fQ09ORklSTRAFGg+CshkLT3BlbkNvbmZpcm0SKgoVQkdQX1NUQVRFX0VTVEFCTElTSEVEEAYaD4KyGQtFc3RhYmxpc2hlZCqiAQoRU3dpdGNoUmVwbGFjZU1vZGUSKQofU1dJVENIX1JFUExBQ0VfTU9ERV9VTlNQRUNJRklFRBAAGgSCshkAEiwKG1NXSVRDSF9SRVBMQUNFX01PREVfUkVQTEFDRRABGguCshkHcmVwbGFjZRI0Ch9TV0lUQ0hfUkVQTEFDRV9NT0RFX09QRVJBVElPTkFMEAIaD4KyGQtvcGVyYXRpb25hbCqEAQoOU3dpdGNoT1NWZW5kb3ISIAocU1dJVENIX09TX1ZFTkRPUl9VTlNQRUNJRklFRBAAEikKGFNXSVRDSF9PU19WRU5ET1JfQ1VNVUxVUxABGguCshkHQ3VtdWx1cxIlChZTV0lUQ0hfT1NfVkVORE9SX1NPTklDEAIaCYKyGQVTT05pQyqtAQoQU3dpdGNoUG9ydFN0YXR1cxIiCh5TV0lUQ0hfUE9SVF9TVEFUVVNfVU5TUEVDSUZJRUQQABIhChVTV0lUQ0hfUE9SVF9TVEFUVVNfVVAQARoGgrIZAnVwEiUKF1NXSVRDSF9QT1JUX1NUQVRVU19ET1dOEAIaCIKyGQRkb3duEisKGlNXSVRDSF9QT1JUX1NUQVRVU19VTktOT1dOEAMaC4KyGQd1bmtub3duQsEBChVjb20ubWV0YWxzdGFjay5hcGkudjJCC1N3aXRjaFByb3RvUAFaNWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYXBpL3YyO2FwaXYyogIDTUFYqgIRTWV0YWxzdGFjay5BcGkuVjLKAhFNZXRhbHN0YWNrXEFwaVxWMuICHU1ldGFsc3RhY2tcQXBpXFYyXEdQQk1ldGFkYXRh6gITTWV0YWxzdGFjazo6QXBpOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_google_protobuf_duration, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_machine, file_metalstack_api_v2_predefined_rules]); +export const file_metalstack_api_v2_switch = /*@__PURE__*/ fileDesc("Ch5tZXRhbHN0YWNrL2FwaS92Mi9zd2l0Y2gucHJvdG8SEW1ldGFsc3RhY2suYXBpLnYyIsIFCgZTd2l0Y2gSGQoCaWQYASABKAlCDbpICnIIwLOusQIBaAESJQoEbWV0YRgCIAEoCzIXLm1ldGFsc3RhY2suYXBpLnYyLk1ldGESIAoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBEh4KBHJhY2sYBCABKAlCC7pICHIGwLOusQIBSACIAQESHgoEcm9vbRgFIAEoCUILukgIcgbAs66xAgFIAYgBARIeCglwYXJ0aXRpb24YBiABKAlCC7pICHIG0LOusQIBEkQKDHJlcGxhY2VfbW9kZRgHIAEoDjIkLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFJlcGxhY2VNb2RlQgi6SAWCAQIQARIeCg1tYW5hZ2VtZW50X2lwGAggASgJQge6SARyAnABEigKD21hbmFnZW1lbnRfdXNlchgJIAEoCUIKukgHcgUQAhiAAUgCiAEBEigKD2NvbnNvbGVfY29tbWFuZBgKIAEoCUIKukgHcgUQAhiAAUgDiAEBEioKBG5pY3MYCyADKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSJwoCb3MYDCABKAsyGy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hPUxJBChNtYWNoaW5lX2Nvbm5lY3Rpb25zGA0gAygLMiQubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUNvbm5lY3Rpb24SMAoJbGFzdF9zeW5jGA4gASgLMh0ubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoU3luYxI2Cg9sYXN0X3N5bmNfZXJyb3IYDyABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hTeW5jQgcKBV9yYWNrQgcKBV9yb29tQhIKEF9tYW5hZ2VtZW50X3VzZXJCEgoQX2NvbnNvbGVfY29tbWFuZCKOAQoIU3dpdGNoT1MSOwoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABEhwKB3ZlcnNpb24YAiABKAlCC7pICHIGwLOusQIBEicKEm1ldGFsX2NvcmVfdmVyc2lvbhgDIAEoCUILukgIcgbAs66xAgEiqgMKCVN3aXRjaE5pYxIZCgRuYW1lGAEgASgJQgu6SAhyBsCzrrECARIfCgppZGVudGlmaWVyGAIgASgJQgu6SAhyBsCzrrECARIdCgNtYWMYAyABKAlCC7pICHIGuLOusQIBSACIAQESHQoDdnJmGAQgASgJQgu6SAhyBsCzrrECAUgBiAEBEi8KBXN0YXRlGAUgASgLMhsubWV0YWxzdGFjay5hcGkudjIuTmljU3RhdGVIAogBARI1CgpiZ3BfZmlsdGVyGAYgASgLMhwubWV0YWxzdGFjay5hcGkudjIuQkdQRmlsdGVySAOIAQESQgoOYmdwX3BvcnRfc3RhdGUYByABKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hCR1BQb3J0U3RhdGVIBIgBARI7CgptZW1iZXJzaGlwGAggASgOMicubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydE1lbWJlcnNoaXBCBgoEX21hY0IGCgRfdnJmQggKBl9zdGF0ZUINCgtfYmdwX2ZpbHRlckIRCg9fYmdwX3BvcnRfc3RhdGUiRwoJQkdQRmlsdGVyEhsKBWNpZHJzGAEgAygJQgy6SAmSAQa4pLOxAgESHQoEdm5pcxgCIAMoCUIPukgMkgEJIgdyBRACGIABIqkCChJTd2l0Y2hCR1BQb3J0U3RhdGUSHQoIbmVpZ2hib3IYASABKAlCC7pICHIGwLOusQIBEh8KCnBlZXJfZ3JvdXAYAiABKAlCC7pICHIGwLOusQIBEh0KCHZyZl9uYW1lGAMgASgJQgu6SAhyBsCzrrECARI4CgliZ3Bfc3RhdGUYBCABKA4yGy5tZXRhbHN0YWNrLmFwaS52Mi5CR1BTdGF0ZUIIukgFggECEAESPAoYYmdwX3RpbWVyX3VwX2VzdGFibGlzaGVkGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIbChNzZW50X3ByZWZpeF9jb3VudGVyGAYgASgEEh8KF2FjY2VwdGVkX3ByZWZpeF9jb3VudGVyGAcgASgEIpoBCghOaWNTdGF0ZRJDCgdkZXNpcmVkGAEgASgOMiMubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydFN0YXR1c0IIukgFggECEAFIAIgBARI9CgZhY3R1YWwYAiABKA4yIy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hQb3J0U3RhdHVzQgi6SAWCAQIQAUIKCghfZGVzaXJlZCJSChFNYWNoaW5lQ29ubmVjdGlvbhISCgptYWNoaW5lX2lkGAEgASgJEikKA25pYxgCIAEoCzIcLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pYyK5AgoLU3dpdGNoUXVlcnkSHgoCaWQYASABKAlCDbpICnIIwLOusQIBaAFIAIgBARIjCglwYXJ0aXRpb24YAiABKAlCC7pICHIG0LOusQIBSAGIAQESHgoEcmFjaxgDIAEoCUILukgIcgbAs66xAgFIAogBARIeCgRyb29tGAQgASgJQgu6SAhyBsCzrrECAUgDiAEBEjEKAm9zGAUgASgLMiAubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NRdWVyeUgEiAEBEisKFGNvbm5lY3RlZF9tYWNoaW5lX2lkGAYgASgJQgi6SAVyA7ABAUgFiAEBQgUKA19pZEIMCgpfcGFydGl0aW9uQgcKBV9yYWNrQgcKBV9yb29tQgUKA19vc0IXChVfY29ubmVjdGVkX21hY2hpbmVfaWQiiwEKDVN3aXRjaE9TUXVlcnkSQAoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABSACIAQESIQoHdmVyc2lvbhgCIAEoCUILukgIcgbAs66xAgFIAYgBAUIJCgdfdmVuZG9yQgoKCF92ZXJzaW9uIoEBCgpTd2l0Y2hTeW5jEigKBHRpbWUYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKCGR1cmF0aW9uGAIgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEhIKBWVycm9yGAMgASgJSACIAQFCCAoGX2Vycm9yIn8KElN3aXRjaFdpdGhNYWNoaW5lcxIKCgJpZBgBIAEoCRIRCglwYXJ0aXRpb24YAiABKAkSDAoEcmFjaxgDIAEoCRI8Cgtjb25uZWN0aW9ucxgEIAMoCzInLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pY1dpdGhNYWNoaW5lIpoBChRTd2l0Y2hOaWNXaXRoTWFjaGluZRIpCgNuaWMYASABKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSKwoHbWFjaGluZRgCIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk1hY2hpbmUSKgoDZnJ1GAMgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUZSVSqJAgoIQkdQU3RhdGUSGQoVQkdQX1NUQVRFX1VOU1BFQ0lGSUVEEAASHAoOQkdQX1NUQVRFX0lETEUQARoIgrIZBElkbGUSIgoRQkdQX1NUQVRFX0NPTk5FQ1QQAhoLgrIZB0Nvbm5lY3QSIAoQQkdQX1NUQVRFX0FDVElWRRADGgqCshkGQWN0aXZlEiUKE0JHUF9TVEFURV9PUEVOX1NFTlQQBBoMgrIZCE9wZW5TZW50EisKFkJHUF9TVEFURV9PUEVOX0NPTkZJUk0QBRoPgrIZC09wZW5Db25maXJtEioKFUJHUF9TVEFURV9FU1RBQkxJU0hFRBAGGg+CshkLRXN0YWJsaXNoZWQqogEKEVN3aXRjaFJlcGxhY2VNb2RlEikKH1NXSVRDSF9SRVBMQUNFX01PREVfVU5TUEVDSUZJRUQQABoEgrIZABIsChtTV0lUQ0hfUkVQTEFDRV9NT0RFX1JFUExBQ0UQARoLgrIZB3JlcGxhY2USNAofU1dJVENIX1JFUExBQ0VfTU9ERV9PUEVSQVRJT05BTBACGg+CshkLb3BlcmF0aW9uYWwqhAEKDlN3aXRjaE9TVmVuZG9yEiAKHFNXSVRDSF9PU19WRU5ET1JfVU5TUEVDSUZJRUQQABIpChhTV0lUQ0hfT1NfVkVORE9SX0NVTVVMVVMQARoLgrIZB0N1bXVsdXMSJQoWU1dJVENIX09TX1ZFTkRPUl9TT05JQxACGgmCshkFU09OaUMqrQEKEFN3aXRjaFBvcnRTdGF0dXMSIgoeU1dJVENIX1BPUlRfU1RBVFVTX1VOU1BFQ0lGSUVEEAASIQoVU1dJVENIX1BPUlRfU1RBVFVTX1VQEAEaBoKyGQJ1cBIlChdTV0lUQ0hfUE9SVF9TVEFUVVNfRE9XThACGgiCshkEZG93bhIrChpTV0lUQ0hfUE9SVF9TVEFUVVNfVU5LTk9XThADGguCshkHdW5rbm93biquAQoUU3dpdGNoUG9ydE1lbWJlcnNoaXASJgoiU1dJVENIX1BPUlRfTUVNQkVSU0hJUF9VTlNQRUNJRklFRBAAEiQKIFNXSVRDSF9QT1JUX01FTUJFUlNISVBfVU5NQU5BR0VEEAESIwofU1dJVENIX1BPUlRfTUVNQkVSU0hJUF9JTlRFUk5BTBACEiMKH1NXSVRDSF9QT1JUX01FTUJFUlNISVBfRVhURVJOQUwQA0LBAQoVY29tLm1ldGFsc3RhY2suYXBpLnYyQgtTd2l0Y2hQcm90b1ABWjVnaXRodWIuY29tL21ldGFsLXN0YWNrL2FwaS9nby9tZXRhbHN0YWNrL2FwaS92MjthcGl2MqICA01BWKoCEU1ldGFsc3RhY2suQXBpLlYyygIRTWV0YWxzdGFja1xBcGlcVjLiAh1NZXRhbHN0YWNrXEFwaVxWMlxHUEJNZXRhZGF0YeoCE01ldGFsc3RhY2s6OkFwaTo6VjJiBnByb3RvMw", [file_buf_validate_validate, file_google_protobuf_duration, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_machine, file_metalstack_api_v2_predefined_rules]); /** * Describes the message metalstack.api.v2.Switch. * Use `create(SwitchSchema)` to create a new message. @@ -221,3 +221,40 @@ export var SwitchPortStatus; * Describes the enum metalstack.api.v2.SwitchPortStatus. */ export const SwitchPortStatusSchema = /*@__PURE__*/ enumDesc(file_metalstack_api_v2_switch, 3); +/** + * SwitchPortMembership indicates whether a switch port is connected to an internal or an external host. + * + * @generated from enum metalstack.api.v2.SwitchPortMembership + */ +export var SwitchPortMembership; +(function (SwitchPortMembership) { + /** + * SWITCH_PORT_MEMBERSHIP_UNSPECIFIED is not specified. + * + * @generated from enum value: SWITCH_PORT_MEMBERSHIP_UNSPECIFIED = 0; + */ + SwitchPortMembership[SwitchPortMembership["UNSPECIFIED"] = 0] = "UNSPECIFIED"; + /** + * SWITCH_PORT_MEMBERSHIP_UNMANAGED is a port that isn't connected to any host yet. + * + * @generated from enum value: SWITCH_PORT_MEMBERSHIP_UNMANAGED = 1; + */ + SwitchPortMembership[SwitchPortMembership["UNMANAGED"] = 1] = "UNMANAGED"; + /** + * SWITCH_PORT_MEMBERSHIP_INTERNAL is port that is connected to a host that is registered at the api, e.g. a registered machine. + * + * @generated from enum value: SWITCH_PORT_MEMBERSHIP_INTERNAL = 2; + */ + SwitchPortMembership[SwitchPortMembership["INTERNAL"] = 2] = "INTERNAL"; + /** + * SWITCH_PORT_MEMBERSHIP_EXTERNAL is port that is connected to a host that is not registered at the api. + * This value allows connecting an external system to a network managed by us. + * + * @generated from enum value: SWITCH_PORT_MEMBERSHIP_EXTERNAL = 3; + */ + SwitchPortMembership[SwitchPortMembership["EXTERNAL"] = 3] = "EXTERNAL"; +})(SwitchPortMembership || (SwitchPortMembership = {})); +/** + * Describes the enum metalstack.api.v2.SwitchPortMembership. + */ +export const SwitchPortMembershipSchema = /*@__PURE__*/ enumDesc(file_metalstack_api_v2_switch, 4); diff --git a/js/metalstack/api/v2/switch_pb.ts b/js/metalstack/api/v2/switch_pb.ts index 9a1cadf3..cc4c005e 100644 --- a/js/metalstack/api/v2/switch_pb.ts +++ b/js/metalstack/api/v2/switch_pb.ts @@ -18,7 +18,7 @@ import type { Message } from "@bufbuild/protobuf"; * Describes the file metalstack/api/v2/switch.proto. */ export const file_metalstack_api_v2_switch: GenFile = /*@__PURE__*/ - fileDesc("Ch5tZXRhbHN0YWNrL2FwaS92Mi9zd2l0Y2gucHJvdG8SEW1ldGFsc3RhY2suYXBpLnYyIsIFCgZTd2l0Y2gSGQoCaWQYASABKAlCDbpICnIIwLOusQIBaAESJQoEbWV0YRgCIAEoCzIXLm1ldGFsc3RhY2suYXBpLnYyLk1ldGESIAoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBEh4KBHJhY2sYBCABKAlCC7pICHIGwLOusQIBSACIAQESHgoEcm9vbRgFIAEoCUILukgIcgbAs66xAgFIAYgBARIeCglwYXJ0aXRpb24YBiABKAlCC7pICHIG0LOusQIBEkQKDHJlcGxhY2VfbW9kZRgHIAEoDjIkLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFJlcGxhY2VNb2RlQgi6SAWCAQIQARIeCg1tYW5hZ2VtZW50X2lwGAggASgJQge6SARyAnABEigKD21hbmFnZW1lbnRfdXNlchgJIAEoCUIKukgHcgUQAhiAAUgCiAEBEigKD2NvbnNvbGVfY29tbWFuZBgKIAEoCUIKukgHcgUQAhiAAUgDiAEBEioKBG5pY3MYCyADKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSJwoCb3MYDCABKAsyGy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hPUxJBChNtYWNoaW5lX2Nvbm5lY3Rpb25zGA0gAygLMiQubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUNvbm5lY3Rpb24SMAoJbGFzdF9zeW5jGA4gASgLMh0ubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoU3luYxI2Cg9sYXN0X3N5bmNfZXJyb3IYDyABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hTeW5jQgcKBV9yYWNrQgcKBV9yb29tQhIKEF9tYW5hZ2VtZW50X3VzZXJCEgoQX2NvbnNvbGVfY29tbWFuZCKOAQoIU3dpdGNoT1MSOwoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABEhwKB3ZlcnNpb24YAiABKAlCC7pICHIGwLOusQIBEicKEm1ldGFsX2NvcmVfdmVyc2lvbhgDIAEoCUILukgIcgbAs66xAgEi7QIKCVN3aXRjaE5pYxIZCgRuYW1lGAEgASgJQgu6SAhyBsCzrrECARIfCgppZGVudGlmaWVyGAIgASgJQgu6SAhyBsCzrrECARIdCgNtYWMYAyABKAlCC7pICHIGuLOusQIBSACIAQESHQoDdnJmGAQgASgJQgu6SAhyBsCzrrECAUgBiAEBEi8KBXN0YXRlGAUgASgLMhsubWV0YWxzdGFjay5hcGkudjIuTmljU3RhdGVIAogBARI1CgpiZ3BfZmlsdGVyGAYgASgLMhwubWV0YWxzdGFjay5hcGkudjIuQkdQRmlsdGVySAOIAQESQgoOYmdwX3BvcnRfc3RhdGUYByABKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hCR1BQb3J0U3RhdGVIBIgBAUIGCgRfbWFjQgYKBF92cmZCCAoGX3N0YXRlQg0KC19iZ3BfZmlsdGVyQhEKD19iZ3BfcG9ydF9zdGF0ZSJHCglCR1BGaWx0ZXISGwoFY2lkcnMYASADKAlCDLpICZIBBriks7ECARIdCgR2bmlzGAIgAygJQg+6SAySAQkiB3IFEAIYgAEiqQIKElN3aXRjaEJHUFBvcnRTdGF0ZRIdCghuZWlnaGJvchgBIAEoCUILukgIcgbAs66xAgESHwoKcGVlcl9ncm91cBgCIAEoCUILukgIcgbAs66xAgESHQoIdnJmX25hbWUYAyABKAlCC7pICHIGwLOusQIBEjgKCWJncF9zdGF0ZRgEIAEoDjIbLm1ldGFsc3RhY2suYXBpLnYyLkJHUFN0YXRlQgi6SAWCAQIQARI8ChhiZ3BfdGltZXJfdXBfZXN0YWJsaXNoZWQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhsKE3NlbnRfcHJlZml4X2NvdW50ZXIYBiABKAQSHwoXYWNjZXB0ZWRfcHJlZml4X2NvdW50ZXIYByABKAQimgEKCE5pY1N0YXRlEkMKB2Rlc2lyZWQYASABKA4yIy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hQb3J0U3RhdHVzQgi6SAWCAQIQAUgAiAEBEj0KBmFjdHVhbBgCIAEoDjIjLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFBvcnRTdGF0dXNCCLpIBYIBAhABQgoKCF9kZXNpcmVkIlIKEU1hY2hpbmVDb25uZWN0aW9uEhIKCm1hY2hpbmVfaWQYASABKAkSKQoDbmljGAIgASgLMhwubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoTmljIrkCCgtTd2l0Y2hRdWVyeRIeCgJpZBgBIAEoCUINukgKcgjAs66xAgFoAUgAiAEBEiMKCXBhcnRpdGlvbhgCIAEoCUILukgIcgbQs66xAgFIAYgBARIeCgRyYWNrGAMgASgJQgu6SAhyBsCzrrECAUgCiAEBEh4KBHJvb20YBCABKAlCC7pICHIGwLOusQIBSAOIAQESMQoCb3MYBSABKAsyIC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hPU1F1ZXJ5SASIAQESKwoUY29ubmVjdGVkX21hY2hpbmVfaWQYBiABKAlCCLpIBXIDsAEBSAWIAQFCBQoDX2lkQgwKCl9wYXJ0aXRpb25CBwoFX3JhY2tCBwoFX3Jvb21CBQoDX29zQhcKFV9jb25uZWN0ZWRfbWFjaGluZV9pZCKLAQoNU3dpdGNoT1NRdWVyeRJACgZ2ZW5kb3IYASABKA4yIS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hPU1ZlbmRvckIIukgFggECEAFIAIgBARIhCgd2ZXJzaW9uGAIgASgJQgu6SAhyBsCzrrECAUgBiAEBQgkKB192ZW5kb3JCCgoIX3ZlcnNpb24igQEKClN3aXRjaFN5bmMSKAoEdGltZRgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASKwoIZHVyYXRpb24YAiABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SEgoFZXJyb3IYAyABKAlIAIgBAUIICgZfZXJyb3IifwoSU3dpdGNoV2l0aE1hY2hpbmVzEgoKAmlkGAEgASgJEhEKCXBhcnRpdGlvbhgCIAEoCRIMCgRyYWNrGAMgASgJEjwKC2Nvbm5lY3Rpb25zGAQgAygLMicubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoTmljV2l0aE1hY2hpbmUimgEKFFN3aXRjaE5pY1dpdGhNYWNoaW5lEikKA25pYxgBIAEoCzIcLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pYxIrCgdtYWNoaW5lGAIgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZRIqCgNmcnUYAyABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5NYWNoaW5lRlJVKokCCghCR1BTdGF0ZRIZChVCR1BfU1RBVEVfVU5TUEVDSUZJRUQQABIcCg5CR1BfU1RBVEVfSURMRRABGgiCshkESWRsZRIiChFCR1BfU1RBVEVfQ09OTkVDVBACGguCshkHQ29ubmVjdBIgChBCR1BfU1RBVEVfQUNUSVZFEAMaCoKyGQZBY3RpdmUSJQoTQkdQX1NUQVRFX09QRU5fU0VOVBAEGgyCshkIT3BlblNlbnQSKwoWQkdQX1NUQVRFX09QRU5fQ09ORklSTRAFGg+CshkLT3BlbkNvbmZpcm0SKgoVQkdQX1NUQVRFX0VTVEFCTElTSEVEEAYaD4KyGQtFc3RhYmxpc2hlZCqiAQoRU3dpdGNoUmVwbGFjZU1vZGUSKQofU1dJVENIX1JFUExBQ0VfTU9ERV9VTlNQRUNJRklFRBAAGgSCshkAEiwKG1NXSVRDSF9SRVBMQUNFX01PREVfUkVQTEFDRRABGguCshkHcmVwbGFjZRI0Ch9TV0lUQ0hfUkVQTEFDRV9NT0RFX09QRVJBVElPTkFMEAIaD4KyGQtvcGVyYXRpb25hbCqEAQoOU3dpdGNoT1NWZW5kb3ISIAocU1dJVENIX09TX1ZFTkRPUl9VTlNQRUNJRklFRBAAEikKGFNXSVRDSF9PU19WRU5ET1JfQ1VNVUxVUxABGguCshkHQ3VtdWx1cxIlChZTV0lUQ0hfT1NfVkVORE9SX1NPTklDEAIaCYKyGQVTT05pQyqtAQoQU3dpdGNoUG9ydFN0YXR1cxIiCh5TV0lUQ0hfUE9SVF9TVEFUVVNfVU5TUEVDSUZJRUQQABIhChVTV0lUQ0hfUE9SVF9TVEFUVVNfVVAQARoGgrIZAnVwEiUKF1NXSVRDSF9QT1JUX1NUQVRVU19ET1dOEAIaCIKyGQRkb3duEisKGlNXSVRDSF9QT1JUX1NUQVRVU19VTktOT1dOEAMaC4KyGQd1bmtub3duQsEBChVjb20ubWV0YWxzdGFjay5hcGkudjJCC1N3aXRjaFByb3RvUAFaNWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYXBpL3YyO2FwaXYyogIDTUFYqgIRTWV0YWxzdGFjay5BcGkuVjLKAhFNZXRhbHN0YWNrXEFwaVxWMuICHU1ldGFsc3RhY2tcQXBpXFYyXEdQQk1ldGFkYXRh6gITTWV0YWxzdGFjazo6QXBpOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_google_protobuf_duration, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_machine, file_metalstack_api_v2_predefined_rules]); + fileDesc("Ch5tZXRhbHN0YWNrL2FwaS92Mi9zd2l0Y2gucHJvdG8SEW1ldGFsc3RhY2suYXBpLnYyIsIFCgZTd2l0Y2gSGQoCaWQYASABKAlCDbpICnIIwLOusQIBaAESJQoEbWV0YRgCIAEoCzIXLm1ldGFsc3RhY2suYXBpLnYyLk1ldGESIAoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBEh4KBHJhY2sYBCABKAlCC7pICHIGwLOusQIBSACIAQESHgoEcm9vbRgFIAEoCUILukgIcgbAs66xAgFIAYgBARIeCglwYXJ0aXRpb24YBiABKAlCC7pICHIG0LOusQIBEkQKDHJlcGxhY2VfbW9kZRgHIAEoDjIkLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFJlcGxhY2VNb2RlQgi6SAWCAQIQARIeCg1tYW5hZ2VtZW50X2lwGAggASgJQge6SARyAnABEigKD21hbmFnZW1lbnRfdXNlchgJIAEoCUIKukgHcgUQAhiAAUgCiAEBEigKD2NvbnNvbGVfY29tbWFuZBgKIAEoCUIKukgHcgUQAhiAAUgDiAEBEioKBG5pY3MYCyADKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSJwoCb3MYDCABKAsyGy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hPUxJBChNtYWNoaW5lX2Nvbm5lY3Rpb25zGA0gAygLMiQubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUNvbm5lY3Rpb24SMAoJbGFzdF9zeW5jGA4gASgLMh0ubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoU3luYxI2Cg9sYXN0X3N5bmNfZXJyb3IYDyABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hTeW5jQgcKBV9yYWNrQgcKBV9yb29tQhIKEF9tYW5hZ2VtZW50X3VzZXJCEgoQX2NvbnNvbGVfY29tbWFuZCKOAQoIU3dpdGNoT1MSOwoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABEhwKB3ZlcnNpb24YAiABKAlCC7pICHIGwLOusQIBEicKEm1ldGFsX2NvcmVfdmVyc2lvbhgDIAEoCUILukgIcgbAs66xAgEiqgMKCVN3aXRjaE5pYxIZCgRuYW1lGAEgASgJQgu6SAhyBsCzrrECARIfCgppZGVudGlmaWVyGAIgASgJQgu6SAhyBsCzrrECARIdCgNtYWMYAyABKAlCC7pICHIGuLOusQIBSACIAQESHQoDdnJmGAQgASgJQgu6SAhyBsCzrrECAUgBiAEBEi8KBXN0YXRlGAUgASgLMhsubWV0YWxzdGFjay5hcGkudjIuTmljU3RhdGVIAogBARI1CgpiZ3BfZmlsdGVyGAYgASgLMhwubWV0YWxzdGFjay5hcGkudjIuQkdQRmlsdGVySAOIAQESQgoOYmdwX3BvcnRfc3RhdGUYByABKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hCR1BQb3J0U3RhdGVIBIgBARI7CgptZW1iZXJzaGlwGAggASgOMicubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydE1lbWJlcnNoaXBCBgoEX21hY0IGCgRfdnJmQggKBl9zdGF0ZUINCgtfYmdwX2ZpbHRlckIRCg9fYmdwX3BvcnRfc3RhdGUiRwoJQkdQRmlsdGVyEhsKBWNpZHJzGAEgAygJQgy6SAmSAQa4pLOxAgESHQoEdm5pcxgCIAMoCUIPukgMkgEJIgdyBRACGIABIqkCChJTd2l0Y2hCR1BQb3J0U3RhdGUSHQoIbmVpZ2hib3IYASABKAlCC7pICHIGwLOusQIBEh8KCnBlZXJfZ3JvdXAYAiABKAlCC7pICHIGwLOusQIBEh0KCHZyZl9uYW1lGAMgASgJQgu6SAhyBsCzrrECARI4CgliZ3Bfc3RhdGUYBCABKA4yGy5tZXRhbHN0YWNrLmFwaS52Mi5CR1BTdGF0ZUIIukgFggECEAESPAoYYmdwX3RpbWVyX3VwX2VzdGFibGlzaGVkGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIbChNzZW50X3ByZWZpeF9jb3VudGVyGAYgASgEEh8KF2FjY2VwdGVkX3ByZWZpeF9jb3VudGVyGAcgASgEIpoBCghOaWNTdGF0ZRJDCgdkZXNpcmVkGAEgASgOMiMubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydFN0YXR1c0IIukgFggECEAFIAIgBARI9CgZhY3R1YWwYAiABKA4yIy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hQb3J0U3RhdHVzQgi6SAWCAQIQAUIKCghfZGVzaXJlZCJSChFNYWNoaW5lQ29ubmVjdGlvbhISCgptYWNoaW5lX2lkGAEgASgJEikKA25pYxgCIAEoCzIcLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pYyK5AgoLU3dpdGNoUXVlcnkSHgoCaWQYASABKAlCDbpICnIIwLOusQIBaAFIAIgBARIjCglwYXJ0aXRpb24YAiABKAlCC7pICHIG0LOusQIBSAGIAQESHgoEcmFjaxgDIAEoCUILukgIcgbAs66xAgFIAogBARIeCgRyb29tGAQgASgJQgu6SAhyBsCzrrECAUgDiAEBEjEKAm9zGAUgASgLMiAubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NRdWVyeUgEiAEBEisKFGNvbm5lY3RlZF9tYWNoaW5lX2lkGAYgASgJQgi6SAVyA7ABAUgFiAEBQgUKA19pZEIMCgpfcGFydGl0aW9uQgcKBV9yYWNrQgcKBV9yb29tQgUKA19vc0IXChVfY29ubmVjdGVkX21hY2hpbmVfaWQiiwEKDVN3aXRjaE9TUXVlcnkSQAoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABSACIAQESIQoHdmVyc2lvbhgCIAEoCUILukgIcgbAs66xAgFIAYgBAUIJCgdfdmVuZG9yQgoKCF92ZXJzaW9uIoEBCgpTd2l0Y2hTeW5jEigKBHRpbWUYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKCGR1cmF0aW9uGAIgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEhIKBWVycm9yGAMgASgJSACIAQFCCAoGX2Vycm9yIn8KElN3aXRjaFdpdGhNYWNoaW5lcxIKCgJpZBgBIAEoCRIRCglwYXJ0aXRpb24YAiABKAkSDAoEcmFjaxgDIAEoCRI8Cgtjb25uZWN0aW9ucxgEIAMoCzInLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pY1dpdGhNYWNoaW5lIpoBChRTd2l0Y2hOaWNXaXRoTWFjaGluZRIpCgNuaWMYASABKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSKwoHbWFjaGluZRgCIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk1hY2hpbmUSKgoDZnJ1GAMgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUZSVSqJAgoIQkdQU3RhdGUSGQoVQkdQX1NUQVRFX1VOU1BFQ0lGSUVEEAASHAoOQkdQX1NUQVRFX0lETEUQARoIgrIZBElkbGUSIgoRQkdQX1NUQVRFX0NPTk5FQ1QQAhoLgrIZB0Nvbm5lY3QSIAoQQkdQX1NUQVRFX0FDVElWRRADGgqCshkGQWN0aXZlEiUKE0JHUF9TVEFURV9PUEVOX1NFTlQQBBoMgrIZCE9wZW5TZW50EisKFkJHUF9TVEFURV9PUEVOX0NPTkZJUk0QBRoPgrIZC09wZW5Db25maXJtEioKFUJHUF9TVEFURV9FU1RBQkxJU0hFRBAGGg+CshkLRXN0YWJsaXNoZWQqogEKEVN3aXRjaFJlcGxhY2VNb2RlEikKH1NXSVRDSF9SRVBMQUNFX01PREVfVU5TUEVDSUZJRUQQABoEgrIZABIsChtTV0lUQ0hfUkVQTEFDRV9NT0RFX1JFUExBQ0UQARoLgrIZB3JlcGxhY2USNAofU1dJVENIX1JFUExBQ0VfTU9ERV9PUEVSQVRJT05BTBACGg+CshkLb3BlcmF0aW9uYWwqhAEKDlN3aXRjaE9TVmVuZG9yEiAKHFNXSVRDSF9PU19WRU5ET1JfVU5TUEVDSUZJRUQQABIpChhTV0lUQ0hfT1NfVkVORE9SX0NVTVVMVVMQARoLgrIZB0N1bXVsdXMSJQoWU1dJVENIX09TX1ZFTkRPUl9TT05JQxACGgmCshkFU09OaUMqrQEKEFN3aXRjaFBvcnRTdGF0dXMSIgoeU1dJVENIX1BPUlRfU1RBVFVTX1VOU1BFQ0lGSUVEEAASIQoVU1dJVENIX1BPUlRfU1RBVFVTX1VQEAEaBoKyGQJ1cBIlChdTV0lUQ0hfUE9SVF9TVEFUVVNfRE9XThACGgiCshkEZG93bhIrChpTV0lUQ0hfUE9SVF9TVEFUVVNfVU5LTk9XThADGguCshkHdW5rbm93biquAQoUU3dpdGNoUG9ydE1lbWJlcnNoaXASJgoiU1dJVENIX1BPUlRfTUVNQkVSU0hJUF9VTlNQRUNJRklFRBAAEiQKIFNXSVRDSF9QT1JUX01FTUJFUlNISVBfVU5NQU5BR0VEEAESIwofU1dJVENIX1BPUlRfTUVNQkVSU0hJUF9JTlRFUk5BTBACEiMKH1NXSVRDSF9QT1JUX01FTUJFUlNISVBfRVhURVJOQUwQA0LBAQoVY29tLm1ldGFsc3RhY2suYXBpLnYyQgtTd2l0Y2hQcm90b1ABWjVnaXRodWIuY29tL21ldGFsLXN0YWNrL2FwaS9nby9tZXRhbHN0YWNrL2FwaS92MjthcGl2MqICA01BWKoCEU1ldGFsc3RhY2suQXBpLlYyygIRTWV0YWxzdGFja1xBcGlcVjLiAh1NZXRhbHN0YWNrXEFwaVxWMlxHUEJNZXRhZGF0YeoCE01ldGFsc3RhY2s6OkFwaTo6VjJiBnByb3RvMw", [file_buf_validate_validate, file_google_protobuf_duration, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_machine, file_metalstack_api_v2_predefined_rules]); /** * Switch represents a network switch. @@ -228,6 +228,13 @@ export type SwitchNic = Message<"metalstack.api.v2.SwitchNic"> & { * @generated from field: optional metalstack.api.v2.SwitchBGPPortState bgp_port_state = 7; */ bgpPortState?: SwitchBGPPortState | undefined; + + /** + * Membership indicates whether the port is connected to an internal or external host. + * + * @generated from field: metalstack.api.v2.SwitchPortMembership membership = 8; + */ + membership: SwitchPortMembership; }; /** @@ -751,3 +758,45 @@ export enum SwitchPortStatus { export const SwitchPortStatusSchema: GenEnum = /*@__PURE__*/ enumDesc(file_metalstack_api_v2_switch, 3); +/** + * SwitchPortMembership indicates whether a switch port is connected to an internal or an external host. + * + * @generated from enum metalstack.api.v2.SwitchPortMembership + */ +export enum SwitchPortMembership { + /** + * SWITCH_PORT_MEMBERSHIP_UNSPECIFIED is not specified. + * + * @generated from enum value: SWITCH_PORT_MEMBERSHIP_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, + + /** + * SWITCH_PORT_MEMBERSHIP_UNMANAGED is a port that isn't connected to any host yet. + * + * @generated from enum value: SWITCH_PORT_MEMBERSHIP_UNMANAGED = 1; + */ + UNMANAGED = 1, + + /** + * SWITCH_PORT_MEMBERSHIP_INTERNAL is port that is connected to a host that is registered at the api, e.g. a registered machine. + * + * @generated from enum value: SWITCH_PORT_MEMBERSHIP_INTERNAL = 2; + */ + INTERNAL = 2, + + /** + * SWITCH_PORT_MEMBERSHIP_EXTERNAL is port that is connected to a host that is not registered at the api. + * This value allows connecting an external system to a network managed by us. + * + * @generated from enum value: SWITCH_PORT_MEMBERSHIP_EXTERNAL = 3; + */ + EXTERNAL = 3, +} + +/** + * Describes the enum metalstack.api.v2.SwitchPortMembership. + */ +export const SwitchPortMembershipSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_metalstack_api_v2_switch, 4); + diff --git a/proto/Makefile b/proto/Makefile index 254443ef..ef600128 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: diff --git a/proto/metalstack/api/v2/switch.proto b/proto/metalstack/api/v2/switch.proto index 6882cdb1..b9b97c09 100644 --- a/proto/metalstack/api/v2/switch.proto +++ b/proto/metalstack/api/v2/switch.proto @@ -78,6 +78,8 @@ message SwitchNic { optional BGPFilter bgp_filter = 6; // BGPPortState represents the current BGP status of the port. optional SwitchBGPPortState bgp_port_state = 7; + // Membership indicates whether the port is connected to an internal or external host. + SwitchPortMembership membership = 8; } // BGPFilter can be used to restrict BGP based on CIDRs and VNIs. @@ -233,3 +235,16 @@ enum SwitchPortStatus { // SWITCH_PORT_STATUS_UNKNOWN means the status of this port is unknown. SWITCH_PORT_STATUS_UNKNOWN = 3 [(enum_string_value) = "unknown"]; } + +// SwitchPortMembership indicates whether a switch port is connected to an internal or an external host. +enum SwitchPortMembership { + // SWITCH_PORT_MEMBERSHIP_UNSPECIFIED is not specified. + SWITCH_PORT_MEMBERSHIP_UNSPECIFIED = 0; + // SWITCH_PORT_MEMBERSHIP_UNMANAGED is a port that isn't connected to any host yet. + SWITCH_PORT_MEMBERSHIP_UNMANAGED = 1; + // SWITCH_PORT_MEMBERSHIP_INTERNAL is port that is connected to a host that is registered at the api, e.g. a registered machine. + SWITCH_PORT_MEMBERSHIP_INTERNAL = 2; + // SWITCH_PORT_MEMBERSHIP_EXTERNAL is port that is connected to a host that is not registered at the api. + // This value allows connecting an external system to a network managed by us. + SWITCH_PORT_MEMBERSHIP_EXTERNAL = 3; +} diff --git a/python/metalstack/api/v2/switch_pb2.py b/python/metalstack/api/v2/switch_pb2.py index 01f7e882..b497495e 100644 --- a/python/metalstack/api/v2/switch_pb2.py +++ b/python/metalstack/api/v2/switch_pb2.py @@ -30,7 +30,7 @@ from metalstack.api.v2 import predefined_rules_pb2 as metalstack_dot_api_dot_v2_dot_predefined__rules__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1emetalstack/api/v2/switch.proto\x12\x11metalstack.api.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1emetalstack/api/v2/common.proto\x1a\x1fmetalstack/api/v2/machine.proto\x1a(metalstack/api/v2/predefined_rules.proto\"\xe2\x06\n\x06Switch\x12\x1d\n\x02id\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01R\x02id\x12+\n\x04meta\x18\x02 \x01(\x0b\x32\x17.metalstack.api.v2.MetaR\x04meta\x12-\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01R\x0b\x64\x65scription\x12$\n\x04rack\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x04rack\x88\x01\x01\x12$\n\x04room\x18\x05 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x04room\x88\x01\x01\x12)\n\tpartition\x18\x06 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01R\tpartition\x12Q\n\x0creplace_mode\x18\x07 \x01(\x0e\x32$.metalstack.api.v2.SwitchReplaceModeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x0breplaceMode\x12,\n\rmanagement_ip\x18\x08 \x01(\tB\x07\xbaH\x04r\x02p\x01R\x0cmanagementIp\x12\x38\n\x0fmanagement_user\x18\t \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x02R\x0emanagementUser\x88\x01\x01\x12\x38\n\x0f\x63onsole_command\x18\n \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x03R\x0e\x63onsoleCommand\x88\x01\x01\x12\x30\n\x04nics\x18\x0b \x03(\x0b\x32\x1c.metalstack.api.v2.SwitchNicR\x04nics\x12+\n\x02os\x18\x0c \x01(\x0b\x32\x1b.metalstack.api.v2.SwitchOSR\x02os\x12U\n\x13machine_connections\x18\r \x03(\x0b\x32$.metalstack.api.v2.MachineConnectionR\x12machineConnections\x12:\n\tlast_sync\x18\x0e \x01(\x0b\x32\x1d.metalstack.api.v2.SwitchSyncR\x08lastSync\x12\x45\n\x0flast_sync_error\x18\x0f \x01(\x0b\x32\x1d.metalstack.api.v2.SwitchSyncR\rlastSyncErrorB\x07\n\x05_rackB\x07\n\x05_roomB\x12\n\x10_management_userB\x12\n\x10_console_command\"\xb1\x01\n\x08SwitchOS\x12\x43\n\x06vendor\x18\x01 \x01(\x0e\x32!.metalstack.api.v2.SwitchOSVendorB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x06vendor\x12%\n\x07version\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07version\x12\x39\n\x12metal_core_version\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x10metalCoreVersion\"\xa9\x03\n\tSwitchNic\x12\x1f\n\x04name\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x04name\x12+\n\nidentifier\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\nidentifier\x12\"\n\x03mac\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xb8\xb3\xae\xb1\x02\x01H\x00R\x03mac\x88\x01\x01\x12\"\n\x03vrf\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x03vrf\x88\x01\x01\x12\x36\n\x05state\x18\x05 \x01(\x0b\x32\x1b.metalstack.api.v2.NicStateH\x02R\x05state\x88\x01\x01\x12@\n\nbgp_filter\x18\x06 \x01(\x0b\x32\x1c.metalstack.api.v2.BGPFilterH\x03R\tbgpFilter\x88\x01\x01\x12P\n\x0e\x62gp_port_state\x18\x07 \x01(\x0b\x32%.metalstack.api.v2.SwitchBGPPortStateH\x04R\x0c\x62gpPortState\x88\x01\x01\x42\x06\n\x04_macB\x06\n\x04_vrfB\x08\n\x06_stateB\r\n\x0b_bgp_filterB\x11\n\x0f_bgp_port_state\"T\n\tBGPFilter\x12\"\n\x05\x63idrs\x18\x01 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x05\x63idrs\x12#\n\x04vnis\x18\x02 \x03(\tB\x0f\xbaH\x0c\x92\x01\t\"\x07r\x05\x10\x02\x18\x80\x01R\x04vnis\"\x92\x03\n\x12SwitchBGPPortState\x12\'\n\x08neighbor\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x08neighbor\x12*\n\npeer_group\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\tpeerGroup\x12&\n\x08vrf_name\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07vrfName\x12\x42\n\tbgp_state\x18\x04 \x01(\x0e\x32\x1b.metalstack.api.v2.BGPStateB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x08\x62gpState\x12S\n\x18\x62gp_timer_up_established\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x15\x62gpTimerUpEstablished\x12.\n\x13sent_prefix_counter\x18\x06 \x01(\x04R\x11sentPrefixCounter\x12\x36\n\x17\x61\x63\x63\x65pted_prefix_counter\x18\x07 \x01(\x04R\x15\x61\x63\x63\x65ptedPrefixCounter\"\xab\x01\n\x08NicState\x12L\n\x07\x64\x65sired\x18\x01 \x01(\x0e\x32#.metalstack.api.v2.SwitchPortStatusB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x00R\x07\x64\x65sired\x88\x01\x01\x12\x45\n\x06\x61\x63tual\x18\x02 \x01(\x0e\x32#.metalstack.api.v2.SwitchPortStatusB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x06\x61\x63tualB\n\n\x08_desired\"b\n\x11MachineConnection\x12\x1d\n\nmachine_id\x18\x01 \x01(\tR\tmachineId\x12.\n\x03nic\x18\x02 \x01(\x0b\x32\x1c.metalstack.api.v2.SwitchNicR\x03nic\"\xec\x02\n\x0bSwitchQuery\x12\"\n\x02id\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01H\x00R\x02id\x88\x01\x01\x12.\n\tpartition\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x01R\tpartition\x88\x01\x01\x12$\n\x04rack\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x02R\x04rack\x88\x01\x01\x12$\n\x04room\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x03R\x04room\x88\x01\x01\x12\x35\n\x02os\x18\x05 \x01(\x0b\x32 .metalstack.api.v2.SwitchOSQueryH\x04R\x02os\x88\x01\x01\x12?\n\x14\x63onnected_machine_id\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x05R\x12\x63onnectedMachineId\x88\x01\x01\x42\x05\n\x03_idB\x0c\n\n_partitionB\x07\n\x05_rackB\x07\n\x05_roomB\x05\n\x03_osB\x17\n\x15_connected_machine_id\"\x9c\x01\n\rSwitchOSQuery\x12H\n\x06vendor\x18\x01 \x01(\x0e\x32!.metalstack.api.v2.SwitchOSVendorB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x00R\x06vendor\x88\x01\x01\x12*\n\x07version\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x07version\x88\x01\x01\x42\t\n\x07_vendorB\n\n\x08_version\"\x98\x01\n\nSwitchSync\x12.\n\x04time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x04time\x12\x35\n\x08\x64uration\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationR\x08\x64uration\x12\x19\n\x05\x65rror\x18\x03 \x01(\tH\x00R\x05\x65rror\x88\x01\x01\x42\x08\n\x06_error\"\xa1\x01\n\x12SwitchWithMachines\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x1c\n\tpartition\x18\x02 \x01(\tR\tpartition\x12\x12\n\x04rack\x18\x03 \x01(\tR\x04rack\x12I\n\x0b\x63onnections\x18\x04 \x03(\x0b\x32\'.metalstack.api.v2.SwitchNicWithMachineR\x0b\x63onnections\"\xad\x01\n\x14SwitchNicWithMachine\x12.\n\x03nic\x18\x01 \x01(\x0b\x32\x1c.metalstack.api.v2.SwitchNicR\x03nic\x12\x34\n\x07machine\x18\x02 \x01(\x0b\x32\x1a.metalstack.api.v2.MachineR\x07machine\x12/\n\x03\x66ru\x18\x03 \x01(\x0b\x32\x1d.metalstack.api.v2.MachineFRUR\x03\x66ru*\x89\x02\n\x08\x42GPState\x12\x19\n\x15\x42GP_STATE_UNSPECIFIED\x10\x00\x12\x1c\n\x0e\x42GP_STATE_IDLE\x10\x01\x1a\x08\x82\xb2\x19\x04Idle\x12\"\n\x11\x42GP_STATE_CONNECT\x10\x02\x1a\x0b\x82\xb2\x19\x07\x43onnect\x12 \n\x10\x42GP_STATE_ACTIVE\x10\x03\x1a\n\x82\xb2\x19\x06\x41\x63tive\x12%\n\x13\x42GP_STATE_OPEN_SENT\x10\x04\x1a\x0c\x82\xb2\x19\x08OpenSent\x12+\n\x16\x42GP_STATE_OPEN_CONFIRM\x10\x05\x1a\x0f\x82\xb2\x19\x0bOpenConfirm\x12*\n\x15\x42GP_STATE_ESTABLISHED\x10\x06\x1a\x0f\x82\xb2\x19\x0b\x45stablished*\xa2\x01\n\x11SwitchReplaceMode\x12)\n\x1fSWITCH_REPLACE_MODE_UNSPECIFIED\x10\x00\x1a\x04\x82\xb2\x19\x00\x12,\n\x1bSWITCH_REPLACE_MODE_REPLACE\x10\x01\x1a\x0b\x82\xb2\x19\x07replace\x12\x34\n\x1fSWITCH_REPLACE_MODE_OPERATIONAL\x10\x02\x1a\x0f\x82\xb2\x19\x0boperational*\x84\x01\n\x0eSwitchOSVendor\x12 \n\x1cSWITCH_OS_VENDOR_UNSPECIFIED\x10\x00\x12)\n\x18SWITCH_OS_VENDOR_CUMULUS\x10\x01\x1a\x0b\x82\xb2\x19\x07\x43umulus\x12%\n\x16SWITCH_OS_VENDOR_SONIC\x10\x02\x1a\t\x82\xb2\x19\x05SONiC*\xad\x01\n\x10SwitchPortStatus\x12\"\n\x1eSWITCH_PORT_STATUS_UNSPECIFIED\x10\x00\x12!\n\x15SWITCH_PORT_STATUS_UP\x10\x01\x1a\x06\x82\xb2\x19\x02up\x12%\n\x17SWITCH_PORT_STATUS_DOWN\x10\x02\x1a\x08\x82\xb2\x19\x04\x64own\x12+\n\x1aSWITCH_PORT_STATUS_UNKNOWN\x10\x03\x1a\x0b\x82\xb2\x19\x07unknownB\xc1\x01\n\x15\x63om.metalstack.api.v2B\x0bSwitchProtoP\x01Z5github.com/metal-stack/api/go/metalstack/api/v2;apiv2\xa2\x02\x03MAX\xaa\x02\x11Metalstack.Api.V2\xca\x02\x11Metalstack\\Api\\V2\xe2\x02\x1dMetalstack\\Api\\V2\\GPBMetadata\xea\x02\x13Metalstack::Api::V2b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1emetalstack/api/v2/switch.proto\x12\x11metalstack.api.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1emetalstack/api/v2/common.proto\x1a\x1fmetalstack/api/v2/machine.proto\x1a(metalstack/api/v2/predefined_rules.proto\"\xe2\x06\n\x06Switch\x12\x1d\n\x02id\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01R\x02id\x12+\n\x04meta\x18\x02 \x01(\x0b\x32\x17.metalstack.api.v2.MetaR\x04meta\x12-\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01R\x0b\x64\x65scription\x12$\n\x04rack\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x04rack\x88\x01\x01\x12$\n\x04room\x18\x05 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x04room\x88\x01\x01\x12)\n\tpartition\x18\x06 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01R\tpartition\x12Q\n\x0creplace_mode\x18\x07 \x01(\x0e\x32$.metalstack.api.v2.SwitchReplaceModeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x0breplaceMode\x12,\n\rmanagement_ip\x18\x08 \x01(\tB\x07\xbaH\x04r\x02p\x01R\x0cmanagementIp\x12\x38\n\x0fmanagement_user\x18\t \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x02R\x0emanagementUser\x88\x01\x01\x12\x38\n\x0f\x63onsole_command\x18\n \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x03R\x0e\x63onsoleCommand\x88\x01\x01\x12\x30\n\x04nics\x18\x0b \x03(\x0b\x32\x1c.metalstack.api.v2.SwitchNicR\x04nics\x12+\n\x02os\x18\x0c \x01(\x0b\x32\x1b.metalstack.api.v2.SwitchOSR\x02os\x12U\n\x13machine_connections\x18\r \x03(\x0b\x32$.metalstack.api.v2.MachineConnectionR\x12machineConnections\x12:\n\tlast_sync\x18\x0e \x01(\x0b\x32\x1d.metalstack.api.v2.SwitchSyncR\x08lastSync\x12\x45\n\x0flast_sync_error\x18\x0f \x01(\x0b\x32\x1d.metalstack.api.v2.SwitchSyncR\rlastSyncErrorB\x07\n\x05_rackB\x07\n\x05_roomB\x12\n\x10_management_userB\x12\n\x10_console_command\"\xb1\x01\n\x08SwitchOS\x12\x43\n\x06vendor\x18\x01 \x01(\x0e\x32!.metalstack.api.v2.SwitchOSVendorB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x06vendor\x12%\n\x07version\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07version\x12\x39\n\x12metal_core_version\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x10metalCoreVersion\"\xf2\x03\n\tSwitchNic\x12\x1f\n\x04name\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x04name\x12+\n\nidentifier\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\nidentifier\x12\"\n\x03mac\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xb8\xb3\xae\xb1\x02\x01H\x00R\x03mac\x88\x01\x01\x12\"\n\x03vrf\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x03vrf\x88\x01\x01\x12\x36\n\x05state\x18\x05 \x01(\x0b\x32\x1b.metalstack.api.v2.NicStateH\x02R\x05state\x88\x01\x01\x12@\n\nbgp_filter\x18\x06 \x01(\x0b\x32\x1c.metalstack.api.v2.BGPFilterH\x03R\tbgpFilter\x88\x01\x01\x12P\n\x0e\x62gp_port_state\x18\x07 \x01(\x0b\x32%.metalstack.api.v2.SwitchBGPPortStateH\x04R\x0c\x62gpPortState\x88\x01\x01\x12G\n\nmembership\x18\x08 \x01(\x0e\x32\'.metalstack.api.v2.SwitchPortMembershipR\nmembershipB\x06\n\x04_macB\x06\n\x04_vrfB\x08\n\x06_stateB\r\n\x0b_bgp_filterB\x11\n\x0f_bgp_port_state\"T\n\tBGPFilter\x12\"\n\x05\x63idrs\x18\x01 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x05\x63idrs\x12#\n\x04vnis\x18\x02 \x03(\tB\x0f\xbaH\x0c\x92\x01\t\"\x07r\x05\x10\x02\x18\x80\x01R\x04vnis\"\x92\x03\n\x12SwitchBGPPortState\x12\'\n\x08neighbor\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x08neighbor\x12*\n\npeer_group\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\tpeerGroup\x12&\n\x08vrf_name\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07vrfName\x12\x42\n\tbgp_state\x18\x04 \x01(\x0e\x32\x1b.metalstack.api.v2.BGPStateB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x08\x62gpState\x12S\n\x18\x62gp_timer_up_established\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x15\x62gpTimerUpEstablished\x12.\n\x13sent_prefix_counter\x18\x06 \x01(\x04R\x11sentPrefixCounter\x12\x36\n\x17\x61\x63\x63\x65pted_prefix_counter\x18\x07 \x01(\x04R\x15\x61\x63\x63\x65ptedPrefixCounter\"\xab\x01\n\x08NicState\x12L\n\x07\x64\x65sired\x18\x01 \x01(\x0e\x32#.metalstack.api.v2.SwitchPortStatusB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x00R\x07\x64\x65sired\x88\x01\x01\x12\x45\n\x06\x61\x63tual\x18\x02 \x01(\x0e\x32#.metalstack.api.v2.SwitchPortStatusB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x06\x61\x63tualB\n\n\x08_desired\"b\n\x11MachineConnection\x12\x1d\n\nmachine_id\x18\x01 \x01(\tR\tmachineId\x12.\n\x03nic\x18\x02 \x01(\x0b\x32\x1c.metalstack.api.v2.SwitchNicR\x03nic\"\xec\x02\n\x0bSwitchQuery\x12\"\n\x02id\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01H\x00R\x02id\x88\x01\x01\x12.\n\tpartition\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x01R\tpartition\x88\x01\x01\x12$\n\x04rack\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x02R\x04rack\x88\x01\x01\x12$\n\x04room\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x03R\x04room\x88\x01\x01\x12\x35\n\x02os\x18\x05 \x01(\x0b\x32 .metalstack.api.v2.SwitchOSQueryH\x04R\x02os\x88\x01\x01\x12?\n\x14\x63onnected_machine_id\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x05R\x12\x63onnectedMachineId\x88\x01\x01\x42\x05\n\x03_idB\x0c\n\n_partitionB\x07\n\x05_rackB\x07\n\x05_roomB\x05\n\x03_osB\x17\n\x15_connected_machine_id\"\x9c\x01\n\rSwitchOSQuery\x12H\n\x06vendor\x18\x01 \x01(\x0e\x32!.metalstack.api.v2.SwitchOSVendorB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x00R\x06vendor\x88\x01\x01\x12*\n\x07version\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x07version\x88\x01\x01\x42\t\n\x07_vendorB\n\n\x08_version\"\x98\x01\n\nSwitchSync\x12.\n\x04time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x04time\x12\x35\n\x08\x64uration\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationR\x08\x64uration\x12\x19\n\x05\x65rror\x18\x03 \x01(\tH\x00R\x05\x65rror\x88\x01\x01\x42\x08\n\x06_error\"\xa1\x01\n\x12SwitchWithMachines\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x1c\n\tpartition\x18\x02 \x01(\tR\tpartition\x12\x12\n\x04rack\x18\x03 \x01(\tR\x04rack\x12I\n\x0b\x63onnections\x18\x04 \x03(\x0b\x32\'.metalstack.api.v2.SwitchNicWithMachineR\x0b\x63onnections\"\xad\x01\n\x14SwitchNicWithMachine\x12.\n\x03nic\x18\x01 \x01(\x0b\x32\x1c.metalstack.api.v2.SwitchNicR\x03nic\x12\x34\n\x07machine\x18\x02 \x01(\x0b\x32\x1a.metalstack.api.v2.MachineR\x07machine\x12/\n\x03\x66ru\x18\x03 \x01(\x0b\x32\x1d.metalstack.api.v2.MachineFRUR\x03\x66ru*\x89\x02\n\x08\x42GPState\x12\x19\n\x15\x42GP_STATE_UNSPECIFIED\x10\x00\x12\x1c\n\x0e\x42GP_STATE_IDLE\x10\x01\x1a\x08\x82\xb2\x19\x04Idle\x12\"\n\x11\x42GP_STATE_CONNECT\x10\x02\x1a\x0b\x82\xb2\x19\x07\x43onnect\x12 \n\x10\x42GP_STATE_ACTIVE\x10\x03\x1a\n\x82\xb2\x19\x06\x41\x63tive\x12%\n\x13\x42GP_STATE_OPEN_SENT\x10\x04\x1a\x0c\x82\xb2\x19\x08OpenSent\x12+\n\x16\x42GP_STATE_OPEN_CONFIRM\x10\x05\x1a\x0f\x82\xb2\x19\x0bOpenConfirm\x12*\n\x15\x42GP_STATE_ESTABLISHED\x10\x06\x1a\x0f\x82\xb2\x19\x0b\x45stablished*\xa2\x01\n\x11SwitchReplaceMode\x12)\n\x1fSWITCH_REPLACE_MODE_UNSPECIFIED\x10\x00\x1a\x04\x82\xb2\x19\x00\x12,\n\x1bSWITCH_REPLACE_MODE_REPLACE\x10\x01\x1a\x0b\x82\xb2\x19\x07replace\x12\x34\n\x1fSWITCH_REPLACE_MODE_OPERATIONAL\x10\x02\x1a\x0f\x82\xb2\x19\x0boperational*\x84\x01\n\x0eSwitchOSVendor\x12 \n\x1cSWITCH_OS_VENDOR_UNSPECIFIED\x10\x00\x12)\n\x18SWITCH_OS_VENDOR_CUMULUS\x10\x01\x1a\x0b\x82\xb2\x19\x07\x43umulus\x12%\n\x16SWITCH_OS_VENDOR_SONIC\x10\x02\x1a\t\x82\xb2\x19\x05SONiC*\xad\x01\n\x10SwitchPortStatus\x12\"\n\x1eSWITCH_PORT_STATUS_UNSPECIFIED\x10\x00\x12!\n\x15SWITCH_PORT_STATUS_UP\x10\x01\x1a\x06\x82\xb2\x19\x02up\x12%\n\x17SWITCH_PORT_STATUS_DOWN\x10\x02\x1a\x08\x82\xb2\x19\x04\x64own\x12+\n\x1aSWITCH_PORT_STATUS_UNKNOWN\x10\x03\x1a\x0b\x82\xb2\x19\x07unknown*\xae\x01\n\x14SwitchPortMembership\x12&\n\"SWITCH_PORT_MEMBERSHIP_UNSPECIFIED\x10\x00\x12$\n SWITCH_PORT_MEMBERSHIP_UNMANAGED\x10\x01\x12#\n\x1fSWITCH_PORT_MEMBERSHIP_INTERNAL\x10\x02\x12#\n\x1fSWITCH_PORT_MEMBERSHIP_EXTERNAL\x10\x03\x42\xc1\x01\n\x15\x63om.metalstack.api.v2B\x0bSwitchProtoP\x01Z5github.com/metal-stack/api/go/metalstack/api/v2;apiv2\xa2\x02\x03MAX\xaa\x02\x11Metalstack.Api.V2\xca\x02\x11Metalstack\\Api\\V2\xe2\x02\x1dMetalstack\\Api\\V2\\GPBMetadata\xea\x02\x13Metalstack::Api::V2b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -128,36 +128,38 @@ _globals['_SWITCHOSQUERY'].fields_by_name['vendor']._serialized_options = b'\272H\005\202\001\002\020\001' _globals['_SWITCHOSQUERY'].fields_by_name['version']._loaded_options = None _globals['_SWITCHOSQUERY'].fields_by_name['version']._serialized_options = b'\272H\010r\006\300\263\256\261\002\001' - _globals['_BGPSTATE']._serialized_start=3518 - _globals['_BGPSTATE']._serialized_end=3783 - _globals['_SWITCHREPLACEMODE']._serialized_start=3786 - _globals['_SWITCHREPLACEMODE']._serialized_end=3948 - _globals['_SWITCHOSVENDOR']._serialized_start=3951 - _globals['_SWITCHOSVENDOR']._serialized_end=4083 - _globals['_SWITCHPORTSTATUS']._serialized_start=4086 - _globals['_SWITCHPORTSTATUS']._serialized_end=4259 + _globals['_BGPSTATE']._serialized_start=3591 + _globals['_BGPSTATE']._serialized_end=3856 + _globals['_SWITCHREPLACEMODE']._serialized_start=3859 + _globals['_SWITCHREPLACEMODE']._serialized_end=4021 + _globals['_SWITCHOSVENDOR']._serialized_start=4024 + _globals['_SWITCHOSVENDOR']._serialized_end=4156 + _globals['_SWITCHPORTSTATUS']._serialized_start=4159 + _globals['_SWITCHPORTSTATUS']._serialized_end=4332 + _globals['_SWITCHPORTMEMBERSHIP']._serialized_start=4335 + _globals['_SWITCHPORTMEMBERSHIP']._serialized_end=4509 _globals['_SWITCH']._serialized_start=255 _globals['_SWITCH']._serialized_end=1121 _globals['_SWITCHOS']._serialized_start=1124 _globals['_SWITCHOS']._serialized_end=1301 _globals['_SWITCHNIC']._serialized_start=1304 - _globals['_SWITCHNIC']._serialized_end=1729 - _globals['_BGPFILTER']._serialized_start=1731 - _globals['_BGPFILTER']._serialized_end=1815 - _globals['_SWITCHBGPPORTSTATE']._serialized_start=1818 - _globals['_SWITCHBGPPORTSTATE']._serialized_end=2220 - _globals['_NICSTATE']._serialized_start=2223 - _globals['_NICSTATE']._serialized_end=2394 - _globals['_MACHINECONNECTION']._serialized_start=2396 - _globals['_MACHINECONNECTION']._serialized_end=2494 - _globals['_SWITCHQUERY']._serialized_start=2497 - _globals['_SWITCHQUERY']._serialized_end=2861 - _globals['_SWITCHOSQUERY']._serialized_start=2864 - _globals['_SWITCHOSQUERY']._serialized_end=3020 - _globals['_SWITCHSYNC']._serialized_start=3023 - _globals['_SWITCHSYNC']._serialized_end=3175 - _globals['_SWITCHWITHMACHINES']._serialized_start=3178 - _globals['_SWITCHWITHMACHINES']._serialized_end=3339 - _globals['_SWITCHNICWITHMACHINE']._serialized_start=3342 - _globals['_SWITCHNICWITHMACHINE']._serialized_end=3515 + _globals['_SWITCHNIC']._serialized_end=1802 + _globals['_BGPFILTER']._serialized_start=1804 + _globals['_BGPFILTER']._serialized_end=1888 + _globals['_SWITCHBGPPORTSTATE']._serialized_start=1891 + _globals['_SWITCHBGPPORTSTATE']._serialized_end=2293 + _globals['_NICSTATE']._serialized_start=2296 + _globals['_NICSTATE']._serialized_end=2467 + _globals['_MACHINECONNECTION']._serialized_start=2469 + _globals['_MACHINECONNECTION']._serialized_end=2567 + _globals['_SWITCHQUERY']._serialized_start=2570 + _globals['_SWITCHQUERY']._serialized_end=2934 + _globals['_SWITCHOSQUERY']._serialized_start=2937 + _globals['_SWITCHOSQUERY']._serialized_end=3093 + _globals['_SWITCHSYNC']._serialized_start=3096 + _globals['_SWITCHSYNC']._serialized_end=3248 + _globals['_SWITCHWITHMACHINES']._serialized_start=3251 + _globals['_SWITCHWITHMACHINES']._serialized_end=3412 + _globals['_SWITCHNICWITHMACHINE']._serialized_start=3415 + _globals['_SWITCHNICWITHMACHINE']._serialized_end=3588 # @@protoc_insertion_point(module_scope) diff --git a/python/metalstack/api/v2/switch_pb2.pyi b/python/metalstack/api/v2/switch_pb2.pyi index 01b86fcb..7c707335 100644 --- a/python/metalstack/api/v2/switch_pb2.pyi +++ b/python/metalstack/api/v2/switch_pb2.pyi @@ -43,6 +43,13 @@ class SwitchPortStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): SWITCH_PORT_STATUS_UP: _ClassVar[SwitchPortStatus] SWITCH_PORT_STATUS_DOWN: _ClassVar[SwitchPortStatus] SWITCH_PORT_STATUS_UNKNOWN: _ClassVar[SwitchPortStatus] + +class SwitchPortMembership(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + SWITCH_PORT_MEMBERSHIP_UNSPECIFIED: _ClassVar[SwitchPortMembership] + SWITCH_PORT_MEMBERSHIP_UNMANAGED: _ClassVar[SwitchPortMembership] + SWITCH_PORT_MEMBERSHIP_INTERNAL: _ClassVar[SwitchPortMembership] + SWITCH_PORT_MEMBERSHIP_EXTERNAL: _ClassVar[SwitchPortMembership] BGP_STATE_UNSPECIFIED: BGPState BGP_STATE_IDLE: BGPState BGP_STATE_CONNECT: BGPState @@ -60,6 +67,10 @@ SWITCH_PORT_STATUS_UNSPECIFIED: SwitchPortStatus SWITCH_PORT_STATUS_UP: SwitchPortStatus SWITCH_PORT_STATUS_DOWN: SwitchPortStatus SWITCH_PORT_STATUS_UNKNOWN: SwitchPortStatus +SWITCH_PORT_MEMBERSHIP_UNSPECIFIED: SwitchPortMembership +SWITCH_PORT_MEMBERSHIP_UNMANAGED: SwitchPortMembership +SWITCH_PORT_MEMBERSHIP_INTERNAL: SwitchPortMembership +SWITCH_PORT_MEMBERSHIP_EXTERNAL: SwitchPortMembership class Switch(_message.Message): __slots__ = ("id", "meta", "description", "rack", "room", "partition", "replace_mode", "management_ip", "management_user", "console_command", "nics", "os", "machine_connections", "last_sync", "last_sync_error") @@ -106,7 +117,7 @@ class SwitchOS(_message.Message): def __init__(self, vendor: _Optional[_Union[SwitchOSVendor, str]] = ..., version: _Optional[str] = ..., metal_core_version: _Optional[str] = ...) -> None: ... class SwitchNic(_message.Message): - __slots__ = ("name", "identifier", "mac", "vrf", "state", "bgp_filter", "bgp_port_state") + __slots__ = ("name", "identifier", "mac", "vrf", "state", "bgp_filter", "bgp_port_state", "membership") NAME_FIELD_NUMBER: _ClassVar[int] IDENTIFIER_FIELD_NUMBER: _ClassVar[int] MAC_FIELD_NUMBER: _ClassVar[int] @@ -114,6 +125,7 @@ class SwitchNic(_message.Message): STATE_FIELD_NUMBER: _ClassVar[int] BGP_FILTER_FIELD_NUMBER: _ClassVar[int] BGP_PORT_STATE_FIELD_NUMBER: _ClassVar[int] + MEMBERSHIP_FIELD_NUMBER: _ClassVar[int] name: str identifier: str mac: str @@ -121,7 +133,8 @@ class SwitchNic(_message.Message): state: NicState bgp_filter: BGPFilter bgp_port_state: SwitchBGPPortState - def __init__(self, name: _Optional[str] = ..., identifier: _Optional[str] = ..., mac: _Optional[str] = ..., vrf: _Optional[str] = ..., state: _Optional[_Union[NicState, _Mapping]] = ..., bgp_filter: _Optional[_Union[BGPFilter, _Mapping]] = ..., bgp_port_state: _Optional[_Union[SwitchBGPPortState, _Mapping]] = ...) -> None: ... + membership: SwitchPortMembership + def __init__(self, name: _Optional[str] = ..., identifier: _Optional[str] = ..., mac: _Optional[str] = ..., vrf: _Optional[str] = ..., state: _Optional[_Union[NicState, _Mapping]] = ..., bgp_filter: _Optional[_Union[BGPFilter, _Mapping]] = ..., bgp_port_state: _Optional[_Union[SwitchBGPPortState, _Mapping]] = ..., membership: _Optional[_Union[SwitchPortMembership, str]] = ...) -> None: ... class BGPFilter(_message.Message): __slots__ = ("cidrs", "vnis") From 72ec4915fc46e253f98ae44e0bf7fb7014f33955 Mon Sep 17 00:00:00 2001 From: Ilja Rotar Date: Thu, 3 Sep 2026 11:34:55 +0200 Subject: [PATCH 2/9] enum string values --- go/metalstack/api/v2/switch.pb.go | 10 +++++----- js/metalstack/api/v2/switch_pb.js | 2 +- js/metalstack/api/v2/switch_pb.ts | 2 +- proto/metalstack/api/v2/switch.proto | 6 +++--- python/metalstack/api/v2/switch_pb2.py | 10 ++++++++-- 5 files changed, 18 insertions(+), 12 deletions(-) diff --git a/go/metalstack/api/v2/switch.pb.go b/go/metalstack/api/v2/switch.pb.go index 0a00159c..448afd8d 100644 --- a/go/metalstack/api/v2/switch.pb.go +++ b/go/metalstack/api/v2/switch.pb.go @@ -1401,12 +1401,12 @@ const file_metalstack_api_v2_switch_proto_rawDesc = "" + "\x1eSWITCH_PORT_STATUS_UNSPECIFIED\x10\x00\x12!\n" + "\x15SWITCH_PORT_STATUS_UP\x10\x01\x1a\x06\x82\xb2\x19\x02up\x12%\n" + "\x17SWITCH_PORT_STATUS_DOWN\x10\x02\x1a\b\x82\xb2\x19\x04down\x12+\n" + - "\x1aSWITCH_PORT_STATUS_UNKNOWN\x10\x03\x1a\v\x82\xb2\x19\aunknown*\xae\x01\n" + + "\x1aSWITCH_PORT_STATUS_UNKNOWN\x10\x03\x1a\v\x82\xb2\x19\aunknown*\xd9\x01\n" + "\x14SwitchPortMembership\x12&\n" + - "\"SWITCH_PORT_MEMBERSHIP_UNSPECIFIED\x10\x00\x12$\n" + - " SWITCH_PORT_MEMBERSHIP_UNMANAGED\x10\x01\x12#\n" + - "\x1fSWITCH_PORT_MEMBERSHIP_INTERNAL\x10\x02\x12#\n" + - "\x1fSWITCH_PORT_MEMBERSHIP_EXTERNAL\x10\x03B\xc1\x01\n" + + "\"SWITCH_PORT_MEMBERSHIP_UNSPECIFIED\x10\x00\x123\n" + + " SWITCH_PORT_MEMBERSHIP_UNMANAGED\x10\x01\x1a\r\x82\xb2\x19\tunmanaged\x121\n" + + "\x1fSWITCH_PORT_MEMBERSHIP_INTERNAL\x10\x02\x1a\f\x82\xb2\x19\binternal\x121\n" + + "\x1fSWITCH_PORT_MEMBERSHIP_EXTERNAL\x10\x03\x1a\f\x82\xb2\x19\bexternalB\xc1\x01\n" + "\x15com.metalstack.api.v2B\vSwitchProtoP\x01Z5github.com/metal-stack/api/go/metalstack/api/v2;apiv2\xa2\x02\x03MAX\xaa\x02\x11Metalstack.Api.V2\xca\x02\x11Metalstack\\Api\\V2\xe2\x02\x1dMetalstack\\Api\\V2\\GPBMetadata\xea\x02\x13Metalstack::Api::V2b\x06proto3" var ( diff --git a/js/metalstack/api/v2/switch_pb.js b/js/metalstack/api/v2/switch_pb.js index d620c171..47812ef7 100644 --- a/js/metalstack/api/v2/switch_pb.js +++ b/js/metalstack/api/v2/switch_pb.js @@ -10,7 +10,7 @@ import { file_metalstack_api_v2_predefined_rules } from "./predefined_rules_pb"; /** * Describes the file metalstack/api/v2/switch.proto. */ -export const file_metalstack_api_v2_switch = /*@__PURE__*/ fileDesc("Ch5tZXRhbHN0YWNrL2FwaS92Mi9zd2l0Y2gucHJvdG8SEW1ldGFsc3RhY2suYXBpLnYyIsIFCgZTd2l0Y2gSGQoCaWQYASABKAlCDbpICnIIwLOusQIBaAESJQoEbWV0YRgCIAEoCzIXLm1ldGFsc3RhY2suYXBpLnYyLk1ldGESIAoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBEh4KBHJhY2sYBCABKAlCC7pICHIGwLOusQIBSACIAQESHgoEcm9vbRgFIAEoCUILukgIcgbAs66xAgFIAYgBARIeCglwYXJ0aXRpb24YBiABKAlCC7pICHIG0LOusQIBEkQKDHJlcGxhY2VfbW9kZRgHIAEoDjIkLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFJlcGxhY2VNb2RlQgi6SAWCAQIQARIeCg1tYW5hZ2VtZW50X2lwGAggASgJQge6SARyAnABEigKD21hbmFnZW1lbnRfdXNlchgJIAEoCUIKukgHcgUQAhiAAUgCiAEBEigKD2NvbnNvbGVfY29tbWFuZBgKIAEoCUIKukgHcgUQAhiAAUgDiAEBEioKBG5pY3MYCyADKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSJwoCb3MYDCABKAsyGy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hPUxJBChNtYWNoaW5lX2Nvbm5lY3Rpb25zGA0gAygLMiQubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUNvbm5lY3Rpb24SMAoJbGFzdF9zeW5jGA4gASgLMh0ubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoU3luYxI2Cg9sYXN0X3N5bmNfZXJyb3IYDyABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hTeW5jQgcKBV9yYWNrQgcKBV9yb29tQhIKEF9tYW5hZ2VtZW50X3VzZXJCEgoQX2NvbnNvbGVfY29tbWFuZCKOAQoIU3dpdGNoT1MSOwoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABEhwKB3ZlcnNpb24YAiABKAlCC7pICHIGwLOusQIBEicKEm1ldGFsX2NvcmVfdmVyc2lvbhgDIAEoCUILukgIcgbAs66xAgEiqgMKCVN3aXRjaE5pYxIZCgRuYW1lGAEgASgJQgu6SAhyBsCzrrECARIfCgppZGVudGlmaWVyGAIgASgJQgu6SAhyBsCzrrECARIdCgNtYWMYAyABKAlCC7pICHIGuLOusQIBSACIAQESHQoDdnJmGAQgASgJQgu6SAhyBsCzrrECAUgBiAEBEi8KBXN0YXRlGAUgASgLMhsubWV0YWxzdGFjay5hcGkudjIuTmljU3RhdGVIAogBARI1CgpiZ3BfZmlsdGVyGAYgASgLMhwubWV0YWxzdGFjay5hcGkudjIuQkdQRmlsdGVySAOIAQESQgoOYmdwX3BvcnRfc3RhdGUYByABKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hCR1BQb3J0U3RhdGVIBIgBARI7CgptZW1iZXJzaGlwGAggASgOMicubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydE1lbWJlcnNoaXBCBgoEX21hY0IGCgRfdnJmQggKBl9zdGF0ZUINCgtfYmdwX2ZpbHRlckIRCg9fYmdwX3BvcnRfc3RhdGUiRwoJQkdQRmlsdGVyEhsKBWNpZHJzGAEgAygJQgy6SAmSAQa4pLOxAgESHQoEdm5pcxgCIAMoCUIPukgMkgEJIgdyBRACGIABIqkCChJTd2l0Y2hCR1BQb3J0U3RhdGUSHQoIbmVpZ2hib3IYASABKAlCC7pICHIGwLOusQIBEh8KCnBlZXJfZ3JvdXAYAiABKAlCC7pICHIGwLOusQIBEh0KCHZyZl9uYW1lGAMgASgJQgu6SAhyBsCzrrECARI4CgliZ3Bfc3RhdGUYBCABKA4yGy5tZXRhbHN0YWNrLmFwaS52Mi5CR1BTdGF0ZUIIukgFggECEAESPAoYYmdwX3RpbWVyX3VwX2VzdGFibGlzaGVkGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIbChNzZW50X3ByZWZpeF9jb3VudGVyGAYgASgEEh8KF2FjY2VwdGVkX3ByZWZpeF9jb3VudGVyGAcgASgEIpoBCghOaWNTdGF0ZRJDCgdkZXNpcmVkGAEgASgOMiMubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydFN0YXR1c0IIukgFggECEAFIAIgBARI9CgZhY3R1YWwYAiABKA4yIy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hQb3J0U3RhdHVzQgi6SAWCAQIQAUIKCghfZGVzaXJlZCJSChFNYWNoaW5lQ29ubmVjdGlvbhISCgptYWNoaW5lX2lkGAEgASgJEikKA25pYxgCIAEoCzIcLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pYyK5AgoLU3dpdGNoUXVlcnkSHgoCaWQYASABKAlCDbpICnIIwLOusQIBaAFIAIgBARIjCglwYXJ0aXRpb24YAiABKAlCC7pICHIG0LOusQIBSAGIAQESHgoEcmFjaxgDIAEoCUILukgIcgbAs66xAgFIAogBARIeCgRyb29tGAQgASgJQgu6SAhyBsCzrrECAUgDiAEBEjEKAm9zGAUgASgLMiAubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NRdWVyeUgEiAEBEisKFGNvbm5lY3RlZF9tYWNoaW5lX2lkGAYgASgJQgi6SAVyA7ABAUgFiAEBQgUKA19pZEIMCgpfcGFydGl0aW9uQgcKBV9yYWNrQgcKBV9yb29tQgUKA19vc0IXChVfY29ubmVjdGVkX21hY2hpbmVfaWQiiwEKDVN3aXRjaE9TUXVlcnkSQAoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABSACIAQESIQoHdmVyc2lvbhgCIAEoCUILukgIcgbAs66xAgFIAYgBAUIJCgdfdmVuZG9yQgoKCF92ZXJzaW9uIoEBCgpTd2l0Y2hTeW5jEigKBHRpbWUYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKCGR1cmF0aW9uGAIgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEhIKBWVycm9yGAMgASgJSACIAQFCCAoGX2Vycm9yIn8KElN3aXRjaFdpdGhNYWNoaW5lcxIKCgJpZBgBIAEoCRIRCglwYXJ0aXRpb24YAiABKAkSDAoEcmFjaxgDIAEoCRI8Cgtjb25uZWN0aW9ucxgEIAMoCzInLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pY1dpdGhNYWNoaW5lIpoBChRTd2l0Y2hOaWNXaXRoTWFjaGluZRIpCgNuaWMYASABKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSKwoHbWFjaGluZRgCIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk1hY2hpbmUSKgoDZnJ1GAMgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUZSVSqJAgoIQkdQU3RhdGUSGQoVQkdQX1NUQVRFX1VOU1BFQ0lGSUVEEAASHAoOQkdQX1NUQVRFX0lETEUQARoIgrIZBElkbGUSIgoRQkdQX1NUQVRFX0NPTk5FQ1QQAhoLgrIZB0Nvbm5lY3QSIAoQQkdQX1NUQVRFX0FDVElWRRADGgqCshkGQWN0aXZlEiUKE0JHUF9TVEFURV9PUEVOX1NFTlQQBBoMgrIZCE9wZW5TZW50EisKFkJHUF9TVEFURV9PUEVOX0NPTkZJUk0QBRoPgrIZC09wZW5Db25maXJtEioKFUJHUF9TVEFURV9FU1RBQkxJU0hFRBAGGg+CshkLRXN0YWJsaXNoZWQqogEKEVN3aXRjaFJlcGxhY2VNb2RlEikKH1NXSVRDSF9SRVBMQUNFX01PREVfVU5TUEVDSUZJRUQQABoEgrIZABIsChtTV0lUQ0hfUkVQTEFDRV9NT0RFX1JFUExBQ0UQARoLgrIZB3JlcGxhY2USNAofU1dJVENIX1JFUExBQ0VfTU9ERV9PUEVSQVRJT05BTBACGg+CshkLb3BlcmF0aW9uYWwqhAEKDlN3aXRjaE9TVmVuZG9yEiAKHFNXSVRDSF9PU19WRU5ET1JfVU5TUEVDSUZJRUQQABIpChhTV0lUQ0hfT1NfVkVORE9SX0NVTVVMVVMQARoLgrIZB0N1bXVsdXMSJQoWU1dJVENIX09TX1ZFTkRPUl9TT05JQxACGgmCshkFU09OaUMqrQEKEFN3aXRjaFBvcnRTdGF0dXMSIgoeU1dJVENIX1BPUlRfU1RBVFVTX1VOU1BFQ0lGSUVEEAASIQoVU1dJVENIX1BPUlRfU1RBVFVTX1VQEAEaBoKyGQJ1cBIlChdTV0lUQ0hfUE9SVF9TVEFUVVNfRE9XThACGgiCshkEZG93bhIrChpTV0lUQ0hfUE9SVF9TVEFUVVNfVU5LTk9XThADGguCshkHdW5rbm93biquAQoUU3dpdGNoUG9ydE1lbWJlcnNoaXASJgoiU1dJVENIX1BPUlRfTUVNQkVSU0hJUF9VTlNQRUNJRklFRBAAEiQKIFNXSVRDSF9QT1JUX01FTUJFUlNISVBfVU5NQU5BR0VEEAESIwofU1dJVENIX1BPUlRfTUVNQkVSU0hJUF9JTlRFUk5BTBACEiMKH1NXSVRDSF9QT1JUX01FTUJFUlNISVBfRVhURVJOQUwQA0LBAQoVY29tLm1ldGFsc3RhY2suYXBpLnYyQgtTd2l0Y2hQcm90b1ABWjVnaXRodWIuY29tL21ldGFsLXN0YWNrL2FwaS9nby9tZXRhbHN0YWNrL2FwaS92MjthcGl2MqICA01BWKoCEU1ldGFsc3RhY2suQXBpLlYyygIRTWV0YWxzdGFja1xBcGlcVjLiAh1NZXRhbHN0YWNrXEFwaVxWMlxHUEJNZXRhZGF0YeoCE01ldGFsc3RhY2s6OkFwaTo6VjJiBnByb3RvMw", [file_buf_validate_validate, file_google_protobuf_duration, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_machine, file_metalstack_api_v2_predefined_rules]); +export const file_metalstack_api_v2_switch = /*@__PURE__*/ fileDesc("Ch5tZXRhbHN0YWNrL2FwaS92Mi9zd2l0Y2gucHJvdG8SEW1ldGFsc3RhY2suYXBpLnYyIsIFCgZTd2l0Y2gSGQoCaWQYASABKAlCDbpICnIIwLOusQIBaAESJQoEbWV0YRgCIAEoCzIXLm1ldGFsc3RhY2suYXBpLnYyLk1ldGESIAoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBEh4KBHJhY2sYBCABKAlCC7pICHIGwLOusQIBSACIAQESHgoEcm9vbRgFIAEoCUILukgIcgbAs66xAgFIAYgBARIeCglwYXJ0aXRpb24YBiABKAlCC7pICHIG0LOusQIBEkQKDHJlcGxhY2VfbW9kZRgHIAEoDjIkLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFJlcGxhY2VNb2RlQgi6SAWCAQIQARIeCg1tYW5hZ2VtZW50X2lwGAggASgJQge6SARyAnABEigKD21hbmFnZW1lbnRfdXNlchgJIAEoCUIKukgHcgUQAhiAAUgCiAEBEigKD2NvbnNvbGVfY29tbWFuZBgKIAEoCUIKukgHcgUQAhiAAUgDiAEBEioKBG5pY3MYCyADKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSJwoCb3MYDCABKAsyGy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hPUxJBChNtYWNoaW5lX2Nvbm5lY3Rpb25zGA0gAygLMiQubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUNvbm5lY3Rpb24SMAoJbGFzdF9zeW5jGA4gASgLMh0ubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoU3luYxI2Cg9sYXN0X3N5bmNfZXJyb3IYDyABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hTeW5jQgcKBV9yYWNrQgcKBV9yb29tQhIKEF9tYW5hZ2VtZW50X3VzZXJCEgoQX2NvbnNvbGVfY29tbWFuZCKOAQoIU3dpdGNoT1MSOwoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABEhwKB3ZlcnNpb24YAiABKAlCC7pICHIGwLOusQIBEicKEm1ldGFsX2NvcmVfdmVyc2lvbhgDIAEoCUILukgIcgbAs66xAgEiqgMKCVN3aXRjaE5pYxIZCgRuYW1lGAEgASgJQgu6SAhyBsCzrrECARIfCgppZGVudGlmaWVyGAIgASgJQgu6SAhyBsCzrrECARIdCgNtYWMYAyABKAlCC7pICHIGuLOusQIBSACIAQESHQoDdnJmGAQgASgJQgu6SAhyBsCzrrECAUgBiAEBEi8KBXN0YXRlGAUgASgLMhsubWV0YWxzdGFjay5hcGkudjIuTmljU3RhdGVIAogBARI1CgpiZ3BfZmlsdGVyGAYgASgLMhwubWV0YWxzdGFjay5hcGkudjIuQkdQRmlsdGVySAOIAQESQgoOYmdwX3BvcnRfc3RhdGUYByABKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hCR1BQb3J0U3RhdGVIBIgBARI7CgptZW1iZXJzaGlwGAggASgOMicubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydE1lbWJlcnNoaXBCBgoEX21hY0IGCgRfdnJmQggKBl9zdGF0ZUINCgtfYmdwX2ZpbHRlckIRCg9fYmdwX3BvcnRfc3RhdGUiRwoJQkdQRmlsdGVyEhsKBWNpZHJzGAEgAygJQgy6SAmSAQa4pLOxAgESHQoEdm5pcxgCIAMoCUIPukgMkgEJIgdyBRACGIABIqkCChJTd2l0Y2hCR1BQb3J0U3RhdGUSHQoIbmVpZ2hib3IYASABKAlCC7pICHIGwLOusQIBEh8KCnBlZXJfZ3JvdXAYAiABKAlCC7pICHIGwLOusQIBEh0KCHZyZl9uYW1lGAMgASgJQgu6SAhyBsCzrrECARI4CgliZ3Bfc3RhdGUYBCABKA4yGy5tZXRhbHN0YWNrLmFwaS52Mi5CR1BTdGF0ZUIIukgFggECEAESPAoYYmdwX3RpbWVyX3VwX2VzdGFibGlzaGVkGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIbChNzZW50X3ByZWZpeF9jb3VudGVyGAYgASgEEh8KF2FjY2VwdGVkX3ByZWZpeF9jb3VudGVyGAcgASgEIpoBCghOaWNTdGF0ZRJDCgdkZXNpcmVkGAEgASgOMiMubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydFN0YXR1c0IIukgFggECEAFIAIgBARI9CgZhY3R1YWwYAiABKA4yIy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hQb3J0U3RhdHVzQgi6SAWCAQIQAUIKCghfZGVzaXJlZCJSChFNYWNoaW5lQ29ubmVjdGlvbhISCgptYWNoaW5lX2lkGAEgASgJEikKA25pYxgCIAEoCzIcLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pYyK5AgoLU3dpdGNoUXVlcnkSHgoCaWQYASABKAlCDbpICnIIwLOusQIBaAFIAIgBARIjCglwYXJ0aXRpb24YAiABKAlCC7pICHIG0LOusQIBSAGIAQESHgoEcmFjaxgDIAEoCUILukgIcgbAs66xAgFIAogBARIeCgRyb29tGAQgASgJQgu6SAhyBsCzrrECAUgDiAEBEjEKAm9zGAUgASgLMiAubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NRdWVyeUgEiAEBEisKFGNvbm5lY3RlZF9tYWNoaW5lX2lkGAYgASgJQgi6SAVyA7ABAUgFiAEBQgUKA19pZEIMCgpfcGFydGl0aW9uQgcKBV9yYWNrQgcKBV9yb29tQgUKA19vc0IXChVfY29ubmVjdGVkX21hY2hpbmVfaWQiiwEKDVN3aXRjaE9TUXVlcnkSQAoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABSACIAQESIQoHdmVyc2lvbhgCIAEoCUILukgIcgbAs66xAgFIAYgBAUIJCgdfdmVuZG9yQgoKCF92ZXJzaW9uIoEBCgpTd2l0Y2hTeW5jEigKBHRpbWUYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKCGR1cmF0aW9uGAIgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEhIKBWVycm9yGAMgASgJSACIAQFCCAoGX2Vycm9yIn8KElN3aXRjaFdpdGhNYWNoaW5lcxIKCgJpZBgBIAEoCRIRCglwYXJ0aXRpb24YAiABKAkSDAoEcmFjaxgDIAEoCRI8Cgtjb25uZWN0aW9ucxgEIAMoCzInLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pY1dpdGhNYWNoaW5lIpoBChRTd2l0Y2hOaWNXaXRoTWFjaGluZRIpCgNuaWMYASABKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSKwoHbWFjaGluZRgCIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk1hY2hpbmUSKgoDZnJ1GAMgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUZSVSqJAgoIQkdQU3RhdGUSGQoVQkdQX1NUQVRFX1VOU1BFQ0lGSUVEEAASHAoOQkdQX1NUQVRFX0lETEUQARoIgrIZBElkbGUSIgoRQkdQX1NUQVRFX0NPTk5FQ1QQAhoLgrIZB0Nvbm5lY3QSIAoQQkdQX1NUQVRFX0FDVElWRRADGgqCshkGQWN0aXZlEiUKE0JHUF9TVEFURV9PUEVOX1NFTlQQBBoMgrIZCE9wZW5TZW50EisKFkJHUF9TVEFURV9PUEVOX0NPTkZJUk0QBRoPgrIZC09wZW5Db25maXJtEioKFUJHUF9TVEFURV9FU1RBQkxJU0hFRBAGGg+CshkLRXN0YWJsaXNoZWQqogEKEVN3aXRjaFJlcGxhY2VNb2RlEikKH1NXSVRDSF9SRVBMQUNFX01PREVfVU5TUEVDSUZJRUQQABoEgrIZABIsChtTV0lUQ0hfUkVQTEFDRV9NT0RFX1JFUExBQ0UQARoLgrIZB3JlcGxhY2USNAofU1dJVENIX1JFUExBQ0VfTU9ERV9PUEVSQVRJT05BTBACGg+CshkLb3BlcmF0aW9uYWwqhAEKDlN3aXRjaE9TVmVuZG9yEiAKHFNXSVRDSF9PU19WRU5ET1JfVU5TUEVDSUZJRUQQABIpChhTV0lUQ0hfT1NfVkVORE9SX0NVTVVMVVMQARoLgrIZB0N1bXVsdXMSJQoWU1dJVENIX09TX1ZFTkRPUl9TT05JQxACGgmCshkFU09OaUMqrQEKEFN3aXRjaFBvcnRTdGF0dXMSIgoeU1dJVENIX1BPUlRfU1RBVFVTX1VOU1BFQ0lGSUVEEAASIQoVU1dJVENIX1BPUlRfU1RBVFVTX1VQEAEaBoKyGQJ1cBIlChdTV0lUQ0hfUE9SVF9TVEFUVVNfRE9XThACGgiCshkEZG93bhIrChpTV0lUQ0hfUE9SVF9TVEFUVVNfVU5LTk9XThADGguCshkHdW5rbm93birZAQoUU3dpdGNoUG9ydE1lbWJlcnNoaXASJgoiU1dJVENIX1BPUlRfTUVNQkVSU0hJUF9VTlNQRUNJRklFRBAAEjMKIFNXSVRDSF9QT1JUX01FTUJFUlNISVBfVU5NQU5BR0VEEAEaDYKyGQl1bm1hbmFnZWQSMQofU1dJVENIX1BPUlRfTUVNQkVSU0hJUF9JTlRFUk5BTBACGgyCshkIaW50ZXJuYWwSMQofU1dJVENIX1BPUlRfTUVNQkVSU0hJUF9FWFRFUk5BTBADGgyCshkIZXh0ZXJuYWxCwQEKFWNvbS5tZXRhbHN0YWNrLmFwaS52MkILU3dpdGNoUHJvdG9QAVo1Z2l0aHViLmNvbS9tZXRhbC1zdGFjay9hcGkvZ28vbWV0YWxzdGFjay9hcGkvdjI7YXBpdjKiAgNNQViqAhFNZXRhbHN0YWNrLkFwaS5WMsoCEU1ldGFsc3RhY2tcQXBpXFYy4gIdTWV0YWxzdGFja1xBcGlcVjJcR1BCTWV0YWRhdGHqAhNNZXRhbHN0YWNrOjpBcGk6OlYyYgZwcm90bzM", [file_buf_validate_validate, file_google_protobuf_duration, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_machine, file_metalstack_api_v2_predefined_rules]); /** * Describes the message metalstack.api.v2.Switch. * Use `create(SwitchSchema)` to create a new message. diff --git a/js/metalstack/api/v2/switch_pb.ts b/js/metalstack/api/v2/switch_pb.ts index cc4c005e..4ef0f91d 100644 --- a/js/metalstack/api/v2/switch_pb.ts +++ b/js/metalstack/api/v2/switch_pb.ts @@ -18,7 +18,7 @@ import type { Message } from "@bufbuild/protobuf"; * Describes the file metalstack/api/v2/switch.proto. */ export const file_metalstack_api_v2_switch: GenFile = /*@__PURE__*/ - fileDesc("Ch5tZXRhbHN0YWNrL2FwaS92Mi9zd2l0Y2gucHJvdG8SEW1ldGFsc3RhY2suYXBpLnYyIsIFCgZTd2l0Y2gSGQoCaWQYASABKAlCDbpICnIIwLOusQIBaAESJQoEbWV0YRgCIAEoCzIXLm1ldGFsc3RhY2suYXBpLnYyLk1ldGESIAoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBEh4KBHJhY2sYBCABKAlCC7pICHIGwLOusQIBSACIAQESHgoEcm9vbRgFIAEoCUILukgIcgbAs66xAgFIAYgBARIeCglwYXJ0aXRpb24YBiABKAlCC7pICHIG0LOusQIBEkQKDHJlcGxhY2VfbW9kZRgHIAEoDjIkLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFJlcGxhY2VNb2RlQgi6SAWCAQIQARIeCg1tYW5hZ2VtZW50X2lwGAggASgJQge6SARyAnABEigKD21hbmFnZW1lbnRfdXNlchgJIAEoCUIKukgHcgUQAhiAAUgCiAEBEigKD2NvbnNvbGVfY29tbWFuZBgKIAEoCUIKukgHcgUQAhiAAUgDiAEBEioKBG5pY3MYCyADKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSJwoCb3MYDCABKAsyGy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hPUxJBChNtYWNoaW5lX2Nvbm5lY3Rpb25zGA0gAygLMiQubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUNvbm5lY3Rpb24SMAoJbGFzdF9zeW5jGA4gASgLMh0ubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoU3luYxI2Cg9sYXN0X3N5bmNfZXJyb3IYDyABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hTeW5jQgcKBV9yYWNrQgcKBV9yb29tQhIKEF9tYW5hZ2VtZW50X3VzZXJCEgoQX2NvbnNvbGVfY29tbWFuZCKOAQoIU3dpdGNoT1MSOwoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABEhwKB3ZlcnNpb24YAiABKAlCC7pICHIGwLOusQIBEicKEm1ldGFsX2NvcmVfdmVyc2lvbhgDIAEoCUILukgIcgbAs66xAgEiqgMKCVN3aXRjaE5pYxIZCgRuYW1lGAEgASgJQgu6SAhyBsCzrrECARIfCgppZGVudGlmaWVyGAIgASgJQgu6SAhyBsCzrrECARIdCgNtYWMYAyABKAlCC7pICHIGuLOusQIBSACIAQESHQoDdnJmGAQgASgJQgu6SAhyBsCzrrECAUgBiAEBEi8KBXN0YXRlGAUgASgLMhsubWV0YWxzdGFjay5hcGkudjIuTmljU3RhdGVIAogBARI1CgpiZ3BfZmlsdGVyGAYgASgLMhwubWV0YWxzdGFjay5hcGkudjIuQkdQRmlsdGVySAOIAQESQgoOYmdwX3BvcnRfc3RhdGUYByABKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hCR1BQb3J0U3RhdGVIBIgBARI7CgptZW1iZXJzaGlwGAggASgOMicubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydE1lbWJlcnNoaXBCBgoEX21hY0IGCgRfdnJmQggKBl9zdGF0ZUINCgtfYmdwX2ZpbHRlckIRCg9fYmdwX3BvcnRfc3RhdGUiRwoJQkdQRmlsdGVyEhsKBWNpZHJzGAEgAygJQgy6SAmSAQa4pLOxAgESHQoEdm5pcxgCIAMoCUIPukgMkgEJIgdyBRACGIABIqkCChJTd2l0Y2hCR1BQb3J0U3RhdGUSHQoIbmVpZ2hib3IYASABKAlCC7pICHIGwLOusQIBEh8KCnBlZXJfZ3JvdXAYAiABKAlCC7pICHIGwLOusQIBEh0KCHZyZl9uYW1lGAMgASgJQgu6SAhyBsCzrrECARI4CgliZ3Bfc3RhdGUYBCABKA4yGy5tZXRhbHN0YWNrLmFwaS52Mi5CR1BTdGF0ZUIIukgFggECEAESPAoYYmdwX3RpbWVyX3VwX2VzdGFibGlzaGVkGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIbChNzZW50X3ByZWZpeF9jb3VudGVyGAYgASgEEh8KF2FjY2VwdGVkX3ByZWZpeF9jb3VudGVyGAcgASgEIpoBCghOaWNTdGF0ZRJDCgdkZXNpcmVkGAEgASgOMiMubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydFN0YXR1c0IIukgFggECEAFIAIgBARI9CgZhY3R1YWwYAiABKA4yIy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hQb3J0U3RhdHVzQgi6SAWCAQIQAUIKCghfZGVzaXJlZCJSChFNYWNoaW5lQ29ubmVjdGlvbhISCgptYWNoaW5lX2lkGAEgASgJEikKA25pYxgCIAEoCzIcLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pYyK5AgoLU3dpdGNoUXVlcnkSHgoCaWQYASABKAlCDbpICnIIwLOusQIBaAFIAIgBARIjCglwYXJ0aXRpb24YAiABKAlCC7pICHIG0LOusQIBSAGIAQESHgoEcmFjaxgDIAEoCUILukgIcgbAs66xAgFIAogBARIeCgRyb29tGAQgASgJQgu6SAhyBsCzrrECAUgDiAEBEjEKAm9zGAUgASgLMiAubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NRdWVyeUgEiAEBEisKFGNvbm5lY3RlZF9tYWNoaW5lX2lkGAYgASgJQgi6SAVyA7ABAUgFiAEBQgUKA19pZEIMCgpfcGFydGl0aW9uQgcKBV9yYWNrQgcKBV9yb29tQgUKA19vc0IXChVfY29ubmVjdGVkX21hY2hpbmVfaWQiiwEKDVN3aXRjaE9TUXVlcnkSQAoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABSACIAQESIQoHdmVyc2lvbhgCIAEoCUILukgIcgbAs66xAgFIAYgBAUIJCgdfdmVuZG9yQgoKCF92ZXJzaW9uIoEBCgpTd2l0Y2hTeW5jEigKBHRpbWUYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKCGR1cmF0aW9uGAIgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEhIKBWVycm9yGAMgASgJSACIAQFCCAoGX2Vycm9yIn8KElN3aXRjaFdpdGhNYWNoaW5lcxIKCgJpZBgBIAEoCRIRCglwYXJ0aXRpb24YAiABKAkSDAoEcmFjaxgDIAEoCRI8Cgtjb25uZWN0aW9ucxgEIAMoCzInLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pY1dpdGhNYWNoaW5lIpoBChRTd2l0Y2hOaWNXaXRoTWFjaGluZRIpCgNuaWMYASABKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSKwoHbWFjaGluZRgCIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk1hY2hpbmUSKgoDZnJ1GAMgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUZSVSqJAgoIQkdQU3RhdGUSGQoVQkdQX1NUQVRFX1VOU1BFQ0lGSUVEEAASHAoOQkdQX1NUQVRFX0lETEUQARoIgrIZBElkbGUSIgoRQkdQX1NUQVRFX0NPTk5FQ1QQAhoLgrIZB0Nvbm5lY3QSIAoQQkdQX1NUQVRFX0FDVElWRRADGgqCshkGQWN0aXZlEiUKE0JHUF9TVEFURV9PUEVOX1NFTlQQBBoMgrIZCE9wZW5TZW50EisKFkJHUF9TVEFURV9PUEVOX0NPTkZJUk0QBRoPgrIZC09wZW5Db25maXJtEioKFUJHUF9TVEFURV9FU1RBQkxJU0hFRBAGGg+CshkLRXN0YWJsaXNoZWQqogEKEVN3aXRjaFJlcGxhY2VNb2RlEikKH1NXSVRDSF9SRVBMQUNFX01PREVfVU5TUEVDSUZJRUQQABoEgrIZABIsChtTV0lUQ0hfUkVQTEFDRV9NT0RFX1JFUExBQ0UQARoLgrIZB3JlcGxhY2USNAofU1dJVENIX1JFUExBQ0VfTU9ERV9PUEVSQVRJT05BTBACGg+CshkLb3BlcmF0aW9uYWwqhAEKDlN3aXRjaE9TVmVuZG9yEiAKHFNXSVRDSF9PU19WRU5ET1JfVU5TUEVDSUZJRUQQABIpChhTV0lUQ0hfT1NfVkVORE9SX0NVTVVMVVMQARoLgrIZB0N1bXVsdXMSJQoWU1dJVENIX09TX1ZFTkRPUl9TT05JQxACGgmCshkFU09OaUMqrQEKEFN3aXRjaFBvcnRTdGF0dXMSIgoeU1dJVENIX1BPUlRfU1RBVFVTX1VOU1BFQ0lGSUVEEAASIQoVU1dJVENIX1BPUlRfU1RBVFVTX1VQEAEaBoKyGQJ1cBIlChdTV0lUQ0hfUE9SVF9TVEFUVVNfRE9XThACGgiCshkEZG93bhIrChpTV0lUQ0hfUE9SVF9TVEFUVVNfVU5LTk9XThADGguCshkHdW5rbm93biquAQoUU3dpdGNoUG9ydE1lbWJlcnNoaXASJgoiU1dJVENIX1BPUlRfTUVNQkVSU0hJUF9VTlNQRUNJRklFRBAAEiQKIFNXSVRDSF9QT1JUX01FTUJFUlNISVBfVU5NQU5BR0VEEAESIwofU1dJVENIX1BPUlRfTUVNQkVSU0hJUF9JTlRFUk5BTBACEiMKH1NXSVRDSF9QT1JUX01FTUJFUlNISVBfRVhURVJOQUwQA0LBAQoVY29tLm1ldGFsc3RhY2suYXBpLnYyQgtTd2l0Y2hQcm90b1ABWjVnaXRodWIuY29tL21ldGFsLXN0YWNrL2FwaS9nby9tZXRhbHN0YWNrL2FwaS92MjthcGl2MqICA01BWKoCEU1ldGFsc3RhY2suQXBpLlYyygIRTWV0YWxzdGFja1xBcGlcVjLiAh1NZXRhbHN0YWNrXEFwaVxWMlxHUEJNZXRhZGF0YeoCE01ldGFsc3RhY2s6OkFwaTo6VjJiBnByb3RvMw", [file_buf_validate_validate, file_google_protobuf_duration, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_machine, file_metalstack_api_v2_predefined_rules]); + fileDesc("Ch5tZXRhbHN0YWNrL2FwaS92Mi9zd2l0Y2gucHJvdG8SEW1ldGFsc3RhY2suYXBpLnYyIsIFCgZTd2l0Y2gSGQoCaWQYASABKAlCDbpICnIIwLOusQIBaAESJQoEbWV0YRgCIAEoCzIXLm1ldGFsc3RhY2suYXBpLnYyLk1ldGESIAoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBEh4KBHJhY2sYBCABKAlCC7pICHIGwLOusQIBSACIAQESHgoEcm9vbRgFIAEoCUILukgIcgbAs66xAgFIAYgBARIeCglwYXJ0aXRpb24YBiABKAlCC7pICHIG0LOusQIBEkQKDHJlcGxhY2VfbW9kZRgHIAEoDjIkLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFJlcGxhY2VNb2RlQgi6SAWCAQIQARIeCg1tYW5hZ2VtZW50X2lwGAggASgJQge6SARyAnABEigKD21hbmFnZW1lbnRfdXNlchgJIAEoCUIKukgHcgUQAhiAAUgCiAEBEigKD2NvbnNvbGVfY29tbWFuZBgKIAEoCUIKukgHcgUQAhiAAUgDiAEBEioKBG5pY3MYCyADKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSJwoCb3MYDCABKAsyGy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hPUxJBChNtYWNoaW5lX2Nvbm5lY3Rpb25zGA0gAygLMiQubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUNvbm5lY3Rpb24SMAoJbGFzdF9zeW5jGA4gASgLMh0ubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoU3luYxI2Cg9sYXN0X3N5bmNfZXJyb3IYDyABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hTeW5jQgcKBV9yYWNrQgcKBV9yb29tQhIKEF9tYW5hZ2VtZW50X3VzZXJCEgoQX2NvbnNvbGVfY29tbWFuZCKOAQoIU3dpdGNoT1MSOwoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABEhwKB3ZlcnNpb24YAiABKAlCC7pICHIGwLOusQIBEicKEm1ldGFsX2NvcmVfdmVyc2lvbhgDIAEoCUILukgIcgbAs66xAgEiqgMKCVN3aXRjaE5pYxIZCgRuYW1lGAEgASgJQgu6SAhyBsCzrrECARIfCgppZGVudGlmaWVyGAIgASgJQgu6SAhyBsCzrrECARIdCgNtYWMYAyABKAlCC7pICHIGuLOusQIBSACIAQESHQoDdnJmGAQgASgJQgu6SAhyBsCzrrECAUgBiAEBEi8KBXN0YXRlGAUgASgLMhsubWV0YWxzdGFjay5hcGkudjIuTmljU3RhdGVIAogBARI1CgpiZ3BfZmlsdGVyGAYgASgLMhwubWV0YWxzdGFjay5hcGkudjIuQkdQRmlsdGVySAOIAQESQgoOYmdwX3BvcnRfc3RhdGUYByABKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hCR1BQb3J0U3RhdGVIBIgBARI7CgptZW1iZXJzaGlwGAggASgOMicubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydE1lbWJlcnNoaXBCBgoEX21hY0IGCgRfdnJmQggKBl9zdGF0ZUINCgtfYmdwX2ZpbHRlckIRCg9fYmdwX3BvcnRfc3RhdGUiRwoJQkdQRmlsdGVyEhsKBWNpZHJzGAEgAygJQgy6SAmSAQa4pLOxAgESHQoEdm5pcxgCIAMoCUIPukgMkgEJIgdyBRACGIABIqkCChJTd2l0Y2hCR1BQb3J0U3RhdGUSHQoIbmVpZ2hib3IYASABKAlCC7pICHIGwLOusQIBEh8KCnBlZXJfZ3JvdXAYAiABKAlCC7pICHIGwLOusQIBEh0KCHZyZl9uYW1lGAMgASgJQgu6SAhyBsCzrrECARI4CgliZ3Bfc3RhdGUYBCABKA4yGy5tZXRhbHN0YWNrLmFwaS52Mi5CR1BTdGF0ZUIIukgFggECEAESPAoYYmdwX3RpbWVyX3VwX2VzdGFibGlzaGVkGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIbChNzZW50X3ByZWZpeF9jb3VudGVyGAYgASgEEh8KF2FjY2VwdGVkX3ByZWZpeF9jb3VudGVyGAcgASgEIpoBCghOaWNTdGF0ZRJDCgdkZXNpcmVkGAEgASgOMiMubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydFN0YXR1c0IIukgFggECEAFIAIgBARI9CgZhY3R1YWwYAiABKA4yIy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hQb3J0U3RhdHVzQgi6SAWCAQIQAUIKCghfZGVzaXJlZCJSChFNYWNoaW5lQ29ubmVjdGlvbhISCgptYWNoaW5lX2lkGAEgASgJEikKA25pYxgCIAEoCzIcLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pYyK5AgoLU3dpdGNoUXVlcnkSHgoCaWQYASABKAlCDbpICnIIwLOusQIBaAFIAIgBARIjCglwYXJ0aXRpb24YAiABKAlCC7pICHIG0LOusQIBSAGIAQESHgoEcmFjaxgDIAEoCUILukgIcgbAs66xAgFIAogBARIeCgRyb29tGAQgASgJQgu6SAhyBsCzrrECAUgDiAEBEjEKAm9zGAUgASgLMiAubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NRdWVyeUgEiAEBEisKFGNvbm5lY3RlZF9tYWNoaW5lX2lkGAYgASgJQgi6SAVyA7ABAUgFiAEBQgUKA19pZEIMCgpfcGFydGl0aW9uQgcKBV9yYWNrQgcKBV9yb29tQgUKA19vc0IXChVfY29ubmVjdGVkX21hY2hpbmVfaWQiiwEKDVN3aXRjaE9TUXVlcnkSQAoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABSACIAQESIQoHdmVyc2lvbhgCIAEoCUILukgIcgbAs66xAgFIAYgBAUIJCgdfdmVuZG9yQgoKCF92ZXJzaW9uIoEBCgpTd2l0Y2hTeW5jEigKBHRpbWUYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKCGR1cmF0aW9uGAIgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEhIKBWVycm9yGAMgASgJSACIAQFCCAoGX2Vycm9yIn8KElN3aXRjaFdpdGhNYWNoaW5lcxIKCgJpZBgBIAEoCRIRCglwYXJ0aXRpb24YAiABKAkSDAoEcmFjaxgDIAEoCRI8Cgtjb25uZWN0aW9ucxgEIAMoCzInLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pY1dpdGhNYWNoaW5lIpoBChRTd2l0Y2hOaWNXaXRoTWFjaGluZRIpCgNuaWMYASABKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSKwoHbWFjaGluZRgCIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk1hY2hpbmUSKgoDZnJ1GAMgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUZSVSqJAgoIQkdQU3RhdGUSGQoVQkdQX1NUQVRFX1VOU1BFQ0lGSUVEEAASHAoOQkdQX1NUQVRFX0lETEUQARoIgrIZBElkbGUSIgoRQkdQX1NUQVRFX0NPTk5FQ1QQAhoLgrIZB0Nvbm5lY3QSIAoQQkdQX1NUQVRFX0FDVElWRRADGgqCshkGQWN0aXZlEiUKE0JHUF9TVEFURV9PUEVOX1NFTlQQBBoMgrIZCE9wZW5TZW50EisKFkJHUF9TVEFURV9PUEVOX0NPTkZJUk0QBRoPgrIZC09wZW5Db25maXJtEioKFUJHUF9TVEFURV9FU1RBQkxJU0hFRBAGGg+CshkLRXN0YWJsaXNoZWQqogEKEVN3aXRjaFJlcGxhY2VNb2RlEikKH1NXSVRDSF9SRVBMQUNFX01PREVfVU5TUEVDSUZJRUQQABoEgrIZABIsChtTV0lUQ0hfUkVQTEFDRV9NT0RFX1JFUExBQ0UQARoLgrIZB3JlcGxhY2USNAofU1dJVENIX1JFUExBQ0VfTU9ERV9PUEVSQVRJT05BTBACGg+CshkLb3BlcmF0aW9uYWwqhAEKDlN3aXRjaE9TVmVuZG9yEiAKHFNXSVRDSF9PU19WRU5ET1JfVU5TUEVDSUZJRUQQABIpChhTV0lUQ0hfT1NfVkVORE9SX0NVTVVMVVMQARoLgrIZB0N1bXVsdXMSJQoWU1dJVENIX09TX1ZFTkRPUl9TT05JQxACGgmCshkFU09OaUMqrQEKEFN3aXRjaFBvcnRTdGF0dXMSIgoeU1dJVENIX1BPUlRfU1RBVFVTX1VOU1BFQ0lGSUVEEAASIQoVU1dJVENIX1BPUlRfU1RBVFVTX1VQEAEaBoKyGQJ1cBIlChdTV0lUQ0hfUE9SVF9TVEFUVVNfRE9XThACGgiCshkEZG93bhIrChpTV0lUQ0hfUE9SVF9TVEFUVVNfVU5LTk9XThADGguCshkHdW5rbm93birZAQoUU3dpdGNoUG9ydE1lbWJlcnNoaXASJgoiU1dJVENIX1BPUlRfTUVNQkVSU0hJUF9VTlNQRUNJRklFRBAAEjMKIFNXSVRDSF9QT1JUX01FTUJFUlNISVBfVU5NQU5BR0VEEAEaDYKyGQl1bm1hbmFnZWQSMQofU1dJVENIX1BPUlRfTUVNQkVSU0hJUF9JTlRFUk5BTBACGgyCshkIaW50ZXJuYWwSMQofU1dJVENIX1BPUlRfTUVNQkVSU0hJUF9FWFRFUk5BTBADGgyCshkIZXh0ZXJuYWxCwQEKFWNvbS5tZXRhbHN0YWNrLmFwaS52MkILU3dpdGNoUHJvdG9QAVo1Z2l0aHViLmNvbS9tZXRhbC1zdGFjay9hcGkvZ28vbWV0YWxzdGFjay9hcGkvdjI7YXBpdjKiAgNNQViqAhFNZXRhbHN0YWNrLkFwaS5WMsoCEU1ldGFsc3RhY2tcQXBpXFYy4gIdTWV0YWxzdGFja1xBcGlcVjJcR1BCTWV0YWRhdGHqAhNNZXRhbHN0YWNrOjpBcGk6OlYyYgZwcm90bzM", [file_buf_validate_validate, file_google_protobuf_duration, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_machine, file_metalstack_api_v2_predefined_rules]); /** * Switch represents a network switch. diff --git a/proto/metalstack/api/v2/switch.proto b/proto/metalstack/api/v2/switch.proto index b9b97c09..17e4c94c 100644 --- a/proto/metalstack/api/v2/switch.proto +++ b/proto/metalstack/api/v2/switch.proto @@ -241,10 +241,10 @@ enum SwitchPortMembership { // SWITCH_PORT_MEMBERSHIP_UNSPECIFIED is not specified. SWITCH_PORT_MEMBERSHIP_UNSPECIFIED = 0; // SWITCH_PORT_MEMBERSHIP_UNMANAGED is a port that isn't connected to any host yet. - SWITCH_PORT_MEMBERSHIP_UNMANAGED = 1; + SWITCH_PORT_MEMBERSHIP_UNMANAGED = 1 [(enum_string_value) = "unmanaged"]; // SWITCH_PORT_MEMBERSHIP_INTERNAL is port that is connected to a host that is registered at the api, e.g. a registered machine. - SWITCH_PORT_MEMBERSHIP_INTERNAL = 2; + SWITCH_PORT_MEMBERSHIP_INTERNAL = 2 [(enum_string_value) = "internal"]; // SWITCH_PORT_MEMBERSHIP_EXTERNAL is port that is connected to a host that is not registered at the api. // This value allows connecting an external system to a network managed by us. - SWITCH_PORT_MEMBERSHIP_EXTERNAL = 3; + SWITCH_PORT_MEMBERSHIP_EXTERNAL = 3 [(enum_string_value) = "external"]; } diff --git a/python/metalstack/api/v2/switch_pb2.py b/python/metalstack/api/v2/switch_pb2.py index b497495e..905dfe70 100644 --- a/python/metalstack/api/v2/switch_pb2.py +++ b/python/metalstack/api/v2/switch_pb2.py @@ -30,7 +30,7 @@ from metalstack.api.v2 import predefined_rules_pb2 as metalstack_dot_api_dot_v2_dot_predefined__rules__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1emetalstack/api/v2/switch.proto\x12\x11metalstack.api.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1emetalstack/api/v2/common.proto\x1a\x1fmetalstack/api/v2/machine.proto\x1a(metalstack/api/v2/predefined_rules.proto\"\xe2\x06\n\x06Switch\x12\x1d\n\x02id\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01R\x02id\x12+\n\x04meta\x18\x02 \x01(\x0b\x32\x17.metalstack.api.v2.MetaR\x04meta\x12-\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01R\x0b\x64\x65scription\x12$\n\x04rack\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x04rack\x88\x01\x01\x12$\n\x04room\x18\x05 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x04room\x88\x01\x01\x12)\n\tpartition\x18\x06 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01R\tpartition\x12Q\n\x0creplace_mode\x18\x07 \x01(\x0e\x32$.metalstack.api.v2.SwitchReplaceModeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x0breplaceMode\x12,\n\rmanagement_ip\x18\x08 \x01(\tB\x07\xbaH\x04r\x02p\x01R\x0cmanagementIp\x12\x38\n\x0fmanagement_user\x18\t \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x02R\x0emanagementUser\x88\x01\x01\x12\x38\n\x0f\x63onsole_command\x18\n \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x03R\x0e\x63onsoleCommand\x88\x01\x01\x12\x30\n\x04nics\x18\x0b \x03(\x0b\x32\x1c.metalstack.api.v2.SwitchNicR\x04nics\x12+\n\x02os\x18\x0c \x01(\x0b\x32\x1b.metalstack.api.v2.SwitchOSR\x02os\x12U\n\x13machine_connections\x18\r \x03(\x0b\x32$.metalstack.api.v2.MachineConnectionR\x12machineConnections\x12:\n\tlast_sync\x18\x0e \x01(\x0b\x32\x1d.metalstack.api.v2.SwitchSyncR\x08lastSync\x12\x45\n\x0flast_sync_error\x18\x0f \x01(\x0b\x32\x1d.metalstack.api.v2.SwitchSyncR\rlastSyncErrorB\x07\n\x05_rackB\x07\n\x05_roomB\x12\n\x10_management_userB\x12\n\x10_console_command\"\xb1\x01\n\x08SwitchOS\x12\x43\n\x06vendor\x18\x01 \x01(\x0e\x32!.metalstack.api.v2.SwitchOSVendorB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x06vendor\x12%\n\x07version\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07version\x12\x39\n\x12metal_core_version\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x10metalCoreVersion\"\xf2\x03\n\tSwitchNic\x12\x1f\n\x04name\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x04name\x12+\n\nidentifier\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\nidentifier\x12\"\n\x03mac\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xb8\xb3\xae\xb1\x02\x01H\x00R\x03mac\x88\x01\x01\x12\"\n\x03vrf\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x03vrf\x88\x01\x01\x12\x36\n\x05state\x18\x05 \x01(\x0b\x32\x1b.metalstack.api.v2.NicStateH\x02R\x05state\x88\x01\x01\x12@\n\nbgp_filter\x18\x06 \x01(\x0b\x32\x1c.metalstack.api.v2.BGPFilterH\x03R\tbgpFilter\x88\x01\x01\x12P\n\x0e\x62gp_port_state\x18\x07 \x01(\x0b\x32%.metalstack.api.v2.SwitchBGPPortStateH\x04R\x0c\x62gpPortState\x88\x01\x01\x12G\n\nmembership\x18\x08 \x01(\x0e\x32\'.metalstack.api.v2.SwitchPortMembershipR\nmembershipB\x06\n\x04_macB\x06\n\x04_vrfB\x08\n\x06_stateB\r\n\x0b_bgp_filterB\x11\n\x0f_bgp_port_state\"T\n\tBGPFilter\x12\"\n\x05\x63idrs\x18\x01 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x05\x63idrs\x12#\n\x04vnis\x18\x02 \x03(\tB\x0f\xbaH\x0c\x92\x01\t\"\x07r\x05\x10\x02\x18\x80\x01R\x04vnis\"\x92\x03\n\x12SwitchBGPPortState\x12\'\n\x08neighbor\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x08neighbor\x12*\n\npeer_group\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\tpeerGroup\x12&\n\x08vrf_name\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07vrfName\x12\x42\n\tbgp_state\x18\x04 \x01(\x0e\x32\x1b.metalstack.api.v2.BGPStateB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x08\x62gpState\x12S\n\x18\x62gp_timer_up_established\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x15\x62gpTimerUpEstablished\x12.\n\x13sent_prefix_counter\x18\x06 \x01(\x04R\x11sentPrefixCounter\x12\x36\n\x17\x61\x63\x63\x65pted_prefix_counter\x18\x07 \x01(\x04R\x15\x61\x63\x63\x65ptedPrefixCounter\"\xab\x01\n\x08NicState\x12L\n\x07\x64\x65sired\x18\x01 \x01(\x0e\x32#.metalstack.api.v2.SwitchPortStatusB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x00R\x07\x64\x65sired\x88\x01\x01\x12\x45\n\x06\x61\x63tual\x18\x02 \x01(\x0e\x32#.metalstack.api.v2.SwitchPortStatusB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x06\x61\x63tualB\n\n\x08_desired\"b\n\x11MachineConnection\x12\x1d\n\nmachine_id\x18\x01 \x01(\tR\tmachineId\x12.\n\x03nic\x18\x02 \x01(\x0b\x32\x1c.metalstack.api.v2.SwitchNicR\x03nic\"\xec\x02\n\x0bSwitchQuery\x12\"\n\x02id\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01H\x00R\x02id\x88\x01\x01\x12.\n\tpartition\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x01R\tpartition\x88\x01\x01\x12$\n\x04rack\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x02R\x04rack\x88\x01\x01\x12$\n\x04room\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x03R\x04room\x88\x01\x01\x12\x35\n\x02os\x18\x05 \x01(\x0b\x32 .metalstack.api.v2.SwitchOSQueryH\x04R\x02os\x88\x01\x01\x12?\n\x14\x63onnected_machine_id\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x05R\x12\x63onnectedMachineId\x88\x01\x01\x42\x05\n\x03_idB\x0c\n\n_partitionB\x07\n\x05_rackB\x07\n\x05_roomB\x05\n\x03_osB\x17\n\x15_connected_machine_id\"\x9c\x01\n\rSwitchOSQuery\x12H\n\x06vendor\x18\x01 \x01(\x0e\x32!.metalstack.api.v2.SwitchOSVendorB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x00R\x06vendor\x88\x01\x01\x12*\n\x07version\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x07version\x88\x01\x01\x42\t\n\x07_vendorB\n\n\x08_version\"\x98\x01\n\nSwitchSync\x12.\n\x04time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x04time\x12\x35\n\x08\x64uration\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationR\x08\x64uration\x12\x19\n\x05\x65rror\x18\x03 \x01(\tH\x00R\x05\x65rror\x88\x01\x01\x42\x08\n\x06_error\"\xa1\x01\n\x12SwitchWithMachines\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x1c\n\tpartition\x18\x02 \x01(\tR\tpartition\x12\x12\n\x04rack\x18\x03 \x01(\tR\x04rack\x12I\n\x0b\x63onnections\x18\x04 \x03(\x0b\x32\'.metalstack.api.v2.SwitchNicWithMachineR\x0b\x63onnections\"\xad\x01\n\x14SwitchNicWithMachine\x12.\n\x03nic\x18\x01 \x01(\x0b\x32\x1c.metalstack.api.v2.SwitchNicR\x03nic\x12\x34\n\x07machine\x18\x02 \x01(\x0b\x32\x1a.metalstack.api.v2.MachineR\x07machine\x12/\n\x03\x66ru\x18\x03 \x01(\x0b\x32\x1d.metalstack.api.v2.MachineFRUR\x03\x66ru*\x89\x02\n\x08\x42GPState\x12\x19\n\x15\x42GP_STATE_UNSPECIFIED\x10\x00\x12\x1c\n\x0e\x42GP_STATE_IDLE\x10\x01\x1a\x08\x82\xb2\x19\x04Idle\x12\"\n\x11\x42GP_STATE_CONNECT\x10\x02\x1a\x0b\x82\xb2\x19\x07\x43onnect\x12 \n\x10\x42GP_STATE_ACTIVE\x10\x03\x1a\n\x82\xb2\x19\x06\x41\x63tive\x12%\n\x13\x42GP_STATE_OPEN_SENT\x10\x04\x1a\x0c\x82\xb2\x19\x08OpenSent\x12+\n\x16\x42GP_STATE_OPEN_CONFIRM\x10\x05\x1a\x0f\x82\xb2\x19\x0bOpenConfirm\x12*\n\x15\x42GP_STATE_ESTABLISHED\x10\x06\x1a\x0f\x82\xb2\x19\x0b\x45stablished*\xa2\x01\n\x11SwitchReplaceMode\x12)\n\x1fSWITCH_REPLACE_MODE_UNSPECIFIED\x10\x00\x1a\x04\x82\xb2\x19\x00\x12,\n\x1bSWITCH_REPLACE_MODE_REPLACE\x10\x01\x1a\x0b\x82\xb2\x19\x07replace\x12\x34\n\x1fSWITCH_REPLACE_MODE_OPERATIONAL\x10\x02\x1a\x0f\x82\xb2\x19\x0boperational*\x84\x01\n\x0eSwitchOSVendor\x12 \n\x1cSWITCH_OS_VENDOR_UNSPECIFIED\x10\x00\x12)\n\x18SWITCH_OS_VENDOR_CUMULUS\x10\x01\x1a\x0b\x82\xb2\x19\x07\x43umulus\x12%\n\x16SWITCH_OS_VENDOR_SONIC\x10\x02\x1a\t\x82\xb2\x19\x05SONiC*\xad\x01\n\x10SwitchPortStatus\x12\"\n\x1eSWITCH_PORT_STATUS_UNSPECIFIED\x10\x00\x12!\n\x15SWITCH_PORT_STATUS_UP\x10\x01\x1a\x06\x82\xb2\x19\x02up\x12%\n\x17SWITCH_PORT_STATUS_DOWN\x10\x02\x1a\x08\x82\xb2\x19\x04\x64own\x12+\n\x1aSWITCH_PORT_STATUS_UNKNOWN\x10\x03\x1a\x0b\x82\xb2\x19\x07unknown*\xae\x01\n\x14SwitchPortMembership\x12&\n\"SWITCH_PORT_MEMBERSHIP_UNSPECIFIED\x10\x00\x12$\n SWITCH_PORT_MEMBERSHIP_UNMANAGED\x10\x01\x12#\n\x1fSWITCH_PORT_MEMBERSHIP_INTERNAL\x10\x02\x12#\n\x1fSWITCH_PORT_MEMBERSHIP_EXTERNAL\x10\x03\x42\xc1\x01\n\x15\x63om.metalstack.api.v2B\x0bSwitchProtoP\x01Z5github.com/metal-stack/api/go/metalstack/api/v2;apiv2\xa2\x02\x03MAX\xaa\x02\x11Metalstack.Api.V2\xca\x02\x11Metalstack\\Api\\V2\xe2\x02\x1dMetalstack\\Api\\V2\\GPBMetadata\xea\x02\x13Metalstack::Api::V2b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1emetalstack/api/v2/switch.proto\x12\x11metalstack.api.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1emetalstack/api/v2/common.proto\x1a\x1fmetalstack/api/v2/machine.proto\x1a(metalstack/api/v2/predefined_rules.proto\"\xe2\x06\n\x06Switch\x12\x1d\n\x02id\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01R\x02id\x12+\n\x04meta\x18\x02 \x01(\x0b\x32\x17.metalstack.api.v2.MetaR\x04meta\x12-\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01R\x0b\x64\x65scription\x12$\n\x04rack\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x04rack\x88\x01\x01\x12$\n\x04room\x18\x05 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x04room\x88\x01\x01\x12)\n\tpartition\x18\x06 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01R\tpartition\x12Q\n\x0creplace_mode\x18\x07 \x01(\x0e\x32$.metalstack.api.v2.SwitchReplaceModeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x0breplaceMode\x12,\n\rmanagement_ip\x18\x08 \x01(\tB\x07\xbaH\x04r\x02p\x01R\x0cmanagementIp\x12\x38\n\x0fmanagement_user\x18\t \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x02R\x0emanagementUser\x88\x01\x01\x12\x38\n\x0f\x63onsole_command\x18\n \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x03R\x0e\x63onsoleCommand\x88\x01\x01\x12\x30\n\x04nics\x18\x0b \x03(\x0b\x32\x1c.metalstack.api.v2.SwitchNicR\x04nics\x12+\n\x02os\x18\x0c \x01(\x0b\x32\x1b.metalstack.api.v2.SwitchOSR\x02os\x12U\n\x13machine_connections\x18\r \x03(\x0b\x32$.metalstack.api.v2.MachineConnectionR\x12machineConnections\x12:\n\tlast_sync\x18\x0e \x01(\x0b\x32\x1d.metalstack.api.v2.SwitchSyncR\x08lastSync\x12\x45\n\x0flast_sync_error\x18\x0f \x01(\x0b\x32\x1d.metalstack.api.v2.SwitchSyncR\rlastSyncErrorB\x07\n\x05_rackB\x07\n\x05_roomB\x12\n\x10_management_userB\x12\n\x10_console_command\"\xb1\x01\n\x08SwitchOS\x12\x43\n\x06vendor\x18\x01 \x01(\x0e\x32!.metalstack.api.v2.SwitchOSVendorB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x06vendor\x12%\n\x07version\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07version\x12\x39\n\x12metal_core_version\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x10metalCoreVersion\"\xf2\x03\n\tSwitchNic\x12\x1f\n\x04name\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x04name\x12+\n\nidentifier\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\nidentifier\x12\"\n\x03mac\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xb8\xb3\xae\xb1\x02\x01H\x00R\x03mac\x88\x01\x01\x12\"\n\x03vrf\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x03vrf\x88\x01\x01\x12\x36\n\x05state\x18\x05 \x01(\x0b\x32\x1b.metalstack.api.v2.NicStateH\x02R\x05state\x88\x01\x01\x12@\n\nbgp_filter\x18\x06 \x01(\x0b\x32\x1c.metalstack.api.v2.BGPFilterH\x03R\tbgpFilter\x88\x01\x01\x12P\n\x0e\x62gp_port_state\x18\x07 \x01(\x0b\x32%.metalstack.api.v2.SwitchBGPPortStateH\x04R\x0c\x62gpPortState\x88\x01\x01\x12G\n\nmembership\x18\x08 \x01(\x0e\x32\'.metalstack.api.v2.SwitchPortMembershipR\nmembershipB\x06\n\x04_macB\x06\n\x04_vrfB\x08\n\x06_stateB\r\n\x0b_bgp_filterB\x11\n\x0f_bgp_port_state\"T\n\tBGPFilter\x12\"\n\x05\x63idrs\x18\x01 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x05\x63idrs\x12#\n\x04vnis\x18\x02 \x03(\tB\x0f\xbaH\x0c\x92\x01\t\"\x07r\x05\x10\x02\x18\x80\x01R\x04vnis\"\x92\x03\n\x12SwitchBGPPortState\x12\'\n\x08neighbor\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x08neighbor\x12*\n\npeer_group\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\tpeerGroup\x12&\n\x08vrf_name\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07vrfName\x12\x42\n\tbgp_state\x18\x04 \x01(\x0e\x32\x1b.metalstack.api.v2.BGPStateB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x08\x62gpState\x12S\n\x18\x62gp_timer_up_established\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x15\x62gpTimerUpEstablished\x12.\n\x13sent_prefix_counter\x18\x06 \x01(\x04R\x11sentPrefixCounter\x12\x36\n\x17\x61\x63\x63\x65pted_prefix_counter\x18\x07 \x01(\x04R\x15\x61\x63\x63\x65ptedPrefixCounter\"\xab\x01\n\x08NicState\x12L\n\x07\x64\x65sired\x18\x01 \x01(\x0e\x32#.metalstack.api.v2.SwitchPortStatusB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x00R\x07\x64\x65sired\x88\x01\x01\x12\x45\n\x06\x61\x63tual\x18\x02 \x01(\x0e\x32#.metalstack.api.v2.SwitchPortStatusB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x06\x61\x63tualB\n\n\x08_desired\"b\n\x11MachineConnection\x12\x1d\n\nmachine_id\x18\x01 \x01(\tR\tmachineId\x12.\n\x03nic\x18\x02 \x01(\x0b\x32\x1c.metalstack.api.v2.SwitchNicR\x03nic\"\xec\x02\n\x0bSwitchQuery\x12\"\n\x02id\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01H\x00R\x02id\x88\x01\x01\x12.\n\tpartition\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x01R\tpartition\x88\x01\x01\x12$\n\x04rack\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x02R\x04rack\x88\x01\x01\x12$\n\x04room\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x03R\x04room\x88\x01\x01\x12\x35\n\x02os\x18\x05 \x01(\x0b\x32 .metalstack.api.v2.SwitchOSQueryH\x04R\x02os\x88\x01\x01\x12?\n\x14\x63onnected_machine_id\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x05R\x12\x63onnectedMachineId\x88\x01\x01\x42\x05\n\x03_idB\x0c\n\n_partitionB\x07\n\x05_rackB\x07\n\x05_roomB\x05\n\x03_osB\x17\n\x15_connected_machine_id\"\x9c\x01\n\rSwitchOSQuery\x12H\n\x06vendor\x18\x01 \x01(\x0e\x32!.metalstack.api.v2.SwitchOSVendorB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x00R\x06vendor\x88\x01\x01\x12*\n\x07version\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x07version\x88\x01\x01\x42\t\n\x07_vendorB\n\n\x08_version\"\x98\x01\n\nSwitchSync\x12.\n\x04time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x04time\x12\x35\n\x08\x64uration\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationR\x08\x64uration\x12\x19\n\x05\x65rror\x18\x03 \x01(\tH\x00R\x05\x65rror\x88\x01\x01\x42\x08\n\x06_error\"\xa1\x01\n\x12SwitchWithMachines\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x1c\n\tpartition\x18\x02 \x01(\tR\tpartition\x12\x12\n\x04rack\x18\x03 \x01(\tR\x04rack\x12I\n\x0b\x63onnections\x18\x04 \x03(\x0b\x32\'.metalstack.api.v2.SwitchNicWithMachineR\x0b\x63onnections\"\xad\x01\n\x14SwitchNicWithMachine\x12.\n\x03nic\x18\x01 \x01(\x0b\x32\x1c.metalstack.api.v2.SwitchNicR\x03nic\x12\x34\n\x07machine\x18\x02 \x01(\x0b\x32\x1a.metalstack.api.v2.MachineR\x07machine\x12/\n\x03\x66ru\x18\x03 \x01(\x0b\x32\x1d.metalstack.api.v2.MachineFRUR\x03\x66ru*\x89\x02\n\x08\x42GPState\x12\x19\n\x15\x42GP_STATE_UNSPECIFIED\x10\x00\x12\x1c\n\x0e\x42GP_STATE_IDLE\x10\x01\x1a\x08\x82\xb2\x19\x04Idle\x12\"\n\x11\x42GP_STATE_CONNECT\x10\x02\x1a\x0b\x82\xb2\x19\x07\x43onnect\x12 \n\x10\x42GP_STATE_ACTIVE\x10\x03\x1a\n\x82\xb2\x19\x06\x41\x63tive\x12%\n\x13\x42GP_STATE_OPEN_SENT\x10\x04\x1a\x0c\x82\xb2\x19\x08OpenSent\x12+\n\x16\x42GP_STATE_OPEN_CONFIRM\x10\x05\x1a\x0f\x82\xb2\x19\x0bOpenConfirm\x12*\n\x15\x42GP_STATE_ESTABLISHED\x10\x06\x1a\x0f\x82\xb2\x19\x0b\x45stablished*\xa2\x01\n\x11SwitchReplaceMode\x12)\n\x1fSWITCH_REPLACE_MODE_UNSPECIFIED\x10\x00\x1a\x04\x82\xb2\x19\x00\x12,\n\x1bSWITCH_REPLACE_MODE_REPLACE\x10\x01\x1a\x0b\x82\xb2\x19\x07replace\x12\x34\n\x1fSWITCH_REPLACE_MODE_OPERATIONAL\x10\x02\x1a\x0f\x82\xb2\x19\x0boperational*\x84\x01\n\x0eSwitchOSVendor\x12 \n\x1cSWITCH_OS_VENDOR_UNSPECIFIED\x10\x00\x12)\n\x18SWITCH_OS_VENDOR_CUMULUS\x10\x01\x1a\x0b\x82\xb2\x19\x07\x43umulus\x12%\n\x16SWITCH_OS_VENDOR_SONIC\x10\x02\x1a\t\x82\xb2\x19\x05SONiC*\xad\x01\n\x10SwitchPortStatus\x12\"\n\x1eSWITCH_PORT_STATUS_UNSPECIFIED\x10\x00\x12!\n\x15SWITCH_PORT_STATUS_UP\x10\x01\x1a\x06\x82\xb2\x19\x02up\x12%\n\x17SWITCH_PORT_STATUS_DOWN\x10\x02\x1a\x08\x82\xb2\x19\x04\x64own\x12+\n\x1aSWITCH_PORT_STATUS_UNKNOWN\x10\x03\x1a\x0b\x82\xb2\x19\x07unknown*\xd9\x01\n\x14SwitchPortMembership\x12&\n\"SWITCH_PORT_MEMBERSHIP_UNSPECIFIED\x10\x00\x12\x33\n SWITCH_PORT_MEMBERSHIP_UNMANAGED\x10\x01\x1a\r\x82\xb2\x19\tunmanaged\x12\x31\n\x1fSWITCH_PORT_MEMBERSHIP_INTERNAL\x10\x02\x1a\x0c\x82\xb2\x19\x08internal\x12\x31\n\x1fSWITCH_PORT_MEMBERSHIP_EXTERNAL\x10\x03\x1a\x0c\x82\xb2\x19\x08\x65xternalB\xc1\x01\n\x15\x63om.metalstack.api.v2B\x0bSwitchProtoP\x01Z5github.com/metal-stack/api/go/metalstack/api/v2;apiv2\xa2\x02\x03MAX\xaa\x02\x11Metalstack.Api.V2\xca\x02\x11Metalstack\\Api\\V2\xe2\x02\x1dMetalstack\\Api\\V2\\GPBMetadata\xea\x02\x13Metalstack::Api::V2b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -66,6 +66,12 @@ _globals['_SWITCHPORTSTATUS'].values_by_name["SWITCH_PORT_STATUS_DOWN"]._serialized_options = b'\202\262\031\004down' _globals['_SWITCHPORTSTATUS'].values_by_name["SWITCH_PORT_STATUS_UNKNOWN"]._loaded_options = None _globals['_SWITCHPORTSTATUS'].values_by_name["SWITCH_PORT_STATUS_UNKNOWN"]._serialized_options = b'\202\262\031\007unknown' + _globals['_SWITCHPORTMEMBERSHIP'].values_by_name["SWITCH_PORT_MEMBERSHIP_UNMANAGED"]._loaded_options = None + _globals['_SWITCHPORTMEMBERSHIP'].values_by_name["SWITCH_PORT_MEMBERSHIP_UNMANAGED"]._serialized_options = b'\202\262\031\tunmanaged' + _globals['_SWITCHPORTMEMBERSHIP'].values_by_name["SWITCH_PORT_MEMBERSHIP_INTERNAL"]._loaded_options = None + _globals['_SWITCHPORTMEMBERSHIP'].values_by_name["SWITCH_PORT_MEMBERSHIP_INTERNAL"]._serialized_options = b'\202\262\031\010internal' + _globals['_SWITCHPORTMEMBERSHIP'].values_by_name["SWITCH_PORT_MEMBERSHIP_EXTERNAL"]._loaded_options = None + _globals['_SWITCHPORTMEMBERSHIP'].values_by_name["SWITCH_PORT_MEMBERSHIP_EXTERNAL"]._serialized_options = b'\202\262\031\010external' _globals['_SWITCH'].fields_by_name['id']._loaded_options = None _globals['_SWITCH'].fields_by_name['id']._serialized_options = b'\272H\nr\010h\001\300\263\256\261\002\001' _globals['_SWITCH'].fields_by_name['description']._loaded_options = None @@ -137,7 +143,7 @@ _globals['_SWITCHPORTSTATUS']._serialized_start=4159 _globals['_SWITCHPORTSTATUS']._serialized_end=4332 _globals['_SWITCHPORTMEMBERSHIP']._serialized_start=4335 - _globals['_SWITCHPORTMEMBERSHIP']._serialized_end=4509 + _globals['_SWITCHPORTMEMBERSHIP']._serialized_end=4552 _globals['_SWITCH']._serialized_start=255 _globals['_SWITCH']._serialized_end=1121 _globals['_SWITCHOS']._serialized_start=1124 From 4f21dc44d84fc02e6010203e8e27a55f2b75151b Mon Sep 17 00:00:00 2001 From: Ilja Rotar Date: Tue, 8 Sep 2026 15:08:02 +0200 Subject: [PATCH 3/9] return network and members in each response --- doc/index.html | 4334 ++++++++++---------- go/metalstack/admin/v2/network.pb.go | 94 +- js/metalstack/admin/v2/network_pb.d.ts | 17 +- js/metalstack/admin/v2/network_pb.js | 3 +- js/metalstack/admin/v2/network_pb.ts | 20 +- js/package.json | 4 +- proto/Makefile | 2 +- proto/metalstack/admin/v2/network.proto | 11 +- python/metalstack/admin/v2/network_pb2.py | 71 +- python/metalstack/admin/v2/network_pb2.pyi | 21 +- 10 files changed, 2285 insertions(+), 2292 deletions(-) diff --git a/doc/index.html b/doc/index.html index 1d5f23fb..4b921896 100644 --- a/doc/index.html +++ b/doc/index.html @@ -1579,85 +1579,6 @@

    Table of Contents

    -
  • - metalstack/api/v2/switch.proto - -
  • - -
  • metalstack/admin/v2/network.proto
  • @@ -13824,48 +13824,24 @@

    BGPFilter

    - - - - - - - - + - - + + - -
    cidrsstringrepeated

    CIDRs for which to allow BGP.

    vnisnetwork stringrepeated

    VNIs for which to allow BGP.

    Network to add the member to.

    - - - - - -

    MachineConnection

    -

    MachineConnection associates a machine with the corresponding switch nic.

    - - - - - - - - - + - + - - - - + + + + @@ -13875,8 +13851,8 @@

    MachineConnection

    -

    NicState

    -

    NicState represents the current state of a switch port.

    +

    NetworkServiceAddExternalMembersResponse

    +

    NetworkServiceAddExternalMemberResponse is the response payload for adding an external member to a network.

    FieldTypeLabelDescription
    machine_idrack string

    MachineId of the machine connected to the nic.

    Rack the members are connected to.

    nicSwitchNic

    Nic the machine is connected to.

    portsstringrepeated

    Ports of the switches to add to the network.

    @@ -13886,17 +13862,17 @@

    NicState

    - - - - + + + + - - - - + + + + @@ -13906,8 +13882,8 @@

    NicState

    -

    Switch

    -

    Switch represents a network switch.

    +

    NetworkServiceCreateRequest

    +

    NetworkServiceCreateRequest is the request payload for creating a network.

    desiredSwitchPortStatusoptional

    Desired is the desired port state.

    networkmetalstack.api.v2.Network

    Network the members were added to.

    actualSwitchPortStatus

    Actual is the actual port state.

    membersmetalstack.api.v2.ExternalNetworkMemberrepeated

    Members are the updated external members of the network.

    @@ -13919,106 +13895,120 @@

    Switch

    - - + + - - - - + + + + - - + + - + - + - + - + - - - - + + + + - - - - + + + + - + - - + + - + - - + + - - + + + + + + + + + + + + + + + + - + - - - - + + + + - - - - + + + + - - + + - + - - - - + + + + - - - - + + + + @@ -14028,8 +14018,8 @@

    Switch

    -

    SwitchBGPPortState

    -

    SwitchBGPPortState holds information about the BGP state of a port.

    +

    NetworkServiceCreateResponse

    +

    NetworkServiceCreateResponse is the response payload for creating a network.

    id string

    Id of the switch.

    optional

    Id of this network.

    metaMeta

    Meta for this switch.

    namestringoptional

    Name of this network.

    description string

    Description of the switch.

    optional

    Description of this network.

    rackpartition string optional

    Rack ID if the switch resides in a rack.

    Partition where this network will be created.

    roomproject string optional

    Room ID if the switch resides in a room.

    Project where this network belongs to.

    partitionstring

    Partition the switch belongs to.

    typemetalstack.api.v2.NetworkType

    Type of the network to create.

    replace_modeSwitchReplaceMode

    ReplaceMode is used to mark a switch ready for replacement.

    labelsmetalstack.api.v2.Labelsoptional

    Labels on this network.

    management_ipprefixes string

    ManagementIp is the switch's IP for management access.

    repeated

    Prefixes in this network.

    management_userdestination_prefixes stringoptional

    ManagementUser is the user name to use for management access.

    repeated

    Destination Prefixes in this network.

    console_commandstringdefault_child_prefix_lengthmetalstack.api.v2.ChildPrefixLength

    Default Child Prefix length defines the bitlength of a child network created per addressfamily, if not specified during the allocate request.

    min_child_prefix_lengthmetalstack.api.v2.ChildPrefixLength

    Min Child Prefix length asserts that during child network creation the requested bit length is greater or equal the min child prefix length.

    nat_typemetalstack.api.v2.NATType optional

    ConsoleCommand is the command for accessing the switch's console.

    NATType of this network.

    nicsSwitchNicrepeated

    Nics are the front panel ports of the switch.

    vrfuint32optional

    VRF of this network has this VNI.

    osSwitchOS

    SwitchOs is the OS running on the switch.

    parent_networkstringoptional

    Parent Network points to the id of the parent network if any.

    machine_connectionsMachineConnectionadditional_announcable_cidrsstring repeated

    MachineConnections map machines to the nics they are connected to.

    AdditionalAnnouncableCidrs will be added to the allow list on the switch which prefixes might be announced.

    last_syncSwitchSync

    LastSync contains information about the last heartbeat of the switch.

    lengthmetalstack.api.v2.ChildPrefixLengthoptional

    Length per addressfamily.

    last_sync_errorSwitchSync

    LastSyncError contains information about the last unsuccessful heartbeat of the switch.

    address_familymetalstack.api.v2.NetworkAddressFamilyoptional

    AddressFamily to create, defaults to the same as the parent.

    @@ -14039,52 +14029,10 @@

    SwitchBGPPortState

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + @@ -14094,8 +14042,8 @@

    SwitchBGPPortState

    -

    SwitchNic

    -

    SwitchNic represents a front panel port and its configuration.

    +

    NetworkServiceDeleteRequest

    +

    NetworkServiceDeleteRequest is the request payload for deleting a network.

    neighborstring

    Neighbor of this port.

    peer_groupstring

    PeerGroup of this port.

    vrf_namestring

    VrfName of the VRF this port is bound to.

    bgp_stateBGPState

    BgpState of the connection on this port.

    bgp_timer_up_establishedgoogle.protobuf.Timestamp

    BgpTimerUpEstablished reports when this port's BGP connection was established.

    sent_prefix_counteruint64

    SentPrefixCounter counts the prefixes sent by the switch on this port.

    accepted_prefix_counteruint64networkmetalstack.api.v2.Network

    AcceptedPrefixCounter counts the prefixes received on this port.

    Network contains the created network.

    @@ -14105,59 +14053,10 @@

    SwitchNic

    - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -14167,8 +14066,8 @@

    SwitchNic

    -

    SwitchNicWithMachine

    -

    SwitchNicWithMachine associates a switch port with its connected machine.

    +

    NetworkServiceDeleteResponse

    +

    NetworkServiceDeleteResponse is the response payload for deleting a network.

    namestring

    Name of the switch port.

    identifierstring

    Identifier of the port.

    macstringoptional

    MAC address of the port.

    vrfid stringoptional

    VRF name if the port is bound in one.

    stateNicStateoptional

    NicState describes the current state of the switch port.

    bgp_filterBGPFilteroptional

    BGPFilter optionally configured on a port.

    bgp_port_stateSwitchBGPPortStateoptional

    BGPPortState represents the current BGP status of the port.

    membershipSwitchPortMembership

    Membership indicates whether the port is connected to an internal or external host.

    ID of the network to get.

    @@ -14178,24 +14077,10 @@

    SwitchNicWithMachine

    - - - - - - - - - - - - - - - - + + - + @@ -14205,8 +14090,8 @@

    SwitchNicWithMachine

    -

    SwitchOS

    -

    SwitchOS holds information about the NOS and versions running on the switch.

    +

    NetworkServiceGetRequest

    +

    NetworkServiceGetRequest is the request payload for getting a network.

    nicSwitchNic

    Nic is the switch nic the machine is connected to.

    machineMachine

    Machine connected to this nic.

    fruMachineFRUnetworkmetalstack.api.v2.Network

    FRU of the connected machine.

    Network contains the deleted network.

    @@ -14216,24 +14101,10 @@

    SwitchOS

    - - - - - - - - - - - - - - - + - + @@ -14243,8 +14114,8 @@

    SwitchOS

    -

    SwitchOSQuery

    -

    SwitchOSQuery holds OS specific query parameters.

    +

    NetworkServiceGetResponse

    +

    NetworkServiceGetResponse is the response payload for getting a network.

    vendorSwitchOSVendor

    Vendor identifies what NOS distribution is running on the switch, e.g. SONiC.

    versionstring

    Version specifies what NOS version is currently installed on the switch.

    metal_core_versionid string

    MetalCoreVersion is the currently running version of the metal-core.

    ID of the network to get.

    @@ -14254,17 +14125,10 @@

    SwitchOSQuery

    - - - - - - - - - - - + + + + @@ -14274,8 +14138,8 @@

    SwitchOSQuery

    -

    SwitchQuery

    -

    SwitchQuery can be used to query a switch or a list of switches.

    +

    NetworkServiceListExternalMembersRequest

    +

    NetworkServiceListExternalMembersRequest is the request payload for listing external members of a network.

    vendorSwitchOSVendoroptional

    OsVendor of the switch OS by which to filter the switches.

    versionstringoptional

    OsVersion of the OS by which to filter the switches.

    networkmetalstack.api.v2.Network

    Network contains the requested network.

    @@ -14285,45 +14149,96 @@

    SwitchQuery

    - + - - + + - - - - + + + + + +
    idnetwork stringoptional

    Id of the switch to list.

    Network to list the members for.

    partitionstringoptional

    Partition of the switches to list.

    querymetalstack.api.v2.ExternalNetworkMemberQuery

    Query specifies additional filters for the list request.

    + + + + + +

    NetworkServiceListExternalMembersResponse

    +

    NetworkServiceListExternalMembersResponse is the response payload for listing external members of a network.

    + + + + + + + + - - - - + + + + - - - - + + + + + +
    FieldTypeLabelDescription
    rackstringoptional

    Rack of the switches to list.

    networkmetalstack.api.v2.Network

    Network whose members are queried.

    roomstringoptional

    Room ID if the switch resides in a room.

    membersmetalstack.api.v2.ExternalNetworkMemberrepeated

    Members are the queried external members of the network.

    + + + + + +

    NetworkServiceListRequest

    +

    NetworkServiceListRequest is the request payload for listing networks.

    + + + + + + + + - - - - + + + + + +
    FieldTypeLabelDescription
    osSwitchOSQueryoptional

    Switch OS specific queries.

    querymetalstack.api.v2.NetworkQuery

    Query specifies which networks to return.

    + + + + + +

    NetworkServiceListResponse

    +

    NetworkServiceListResponse is the response payload for listing networks.

    + + + + + + + + - - - - + + + + @@ -14333,8 +14248,8 @@

    SwitchQuery

    -

    SwitchSync

    -

    SwitchSync summarizes information about a switch sync.

    +

    NetworkServiceRemoveExternalMembersRequest

    +

    NetworkServiceRemoveExternalMemberRequest is the request payload for removing an external member from a network.

    FieldTypeLabelDescription
    connected_machine_idstringoptional

    ConnectedMachineID lists the switches which have the given machine id in the connected machines map.

    networksmetalstack.api.v2.Networkrepeated

    Networks contains the list of networks.

    @@ -14344,24 +14259,24 @@

    SwitchSync

    - - + + - + - - + + - + - + - - + + @@ -14371,8 +14286,39 @@

    SwitchSync

    -

    SwitchWithMachines

    -

    SwitchWithMachines contains a mapping from switch ports to connected machines.

    +

    NetworkServiceRemoveExternalMembersResponse

    +

    NetworkServiceRemoveExternalMemberResponse is the response payload for removing an external member from a network.

    + + +
    timegoogle.protobuf.Timestampnetworkstring

    Time of the sync.

    Network to remove the member from.

    durationgoogle.protobuf.Durationrackstring

    Duration of the sync.

    Rack the members are connected to.

    errorports stringoptional

    Error if any occurred.

    repeated

    Ports of the switches to remove from the network.

    + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    networkmetalstack.api.v2.Network

    Network the members were removed from.

    membersmetalstack.api.v2.ExternalNetworkMemberrepeated

    Members are the updated external members of the network.

    + + + + + +

    NetworkServiceUpdateRequest

    +

    NetworkServiceUpdateRequest is the request payload for updating a network.

    @@ -14385,28 +14331,84 @@

    SwitchWithMachines

    - + - - + + - + - + - - + + - - + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -14416,204 +14418,114 @@

    SwitchWithMachines

    +

    NetworkServiceUpdateResponse

    +

    NetworkServiceUpdateResponse is the response payload for updating a network.

    + + +
    id string

    Id of the switch.

    Id of this network.

    partitionstringupdate_metametalstack.api.v2.UpdateMeta

    Partition of the switch.

    UpdateMeta contains the timestamp and strategy to be used in this update request.

    rackname string

    Rack of the switch.

    optional

    Name of this network.

    connectionsSwitchNicWithMachinedescriptionstringoptional

    Description of this network.

    labelsmetalstack.api.v2.UpdateLabelsoptional

    Labels to update on this network.

    prefixesstring repeated

    Connections associates switch ports with the machines connected to them.

    Prefixes in this network.

    destination_prefixesstringrepeated

    Destination Prefixes in this network.

    default_child_prefix_lengthmetalstack.api.v2.ChildPrefixLengthoptional

    Default Child Prefix length defines the bit length of a child network created per addressfamily, if not specified during the allocate request.

    min_child_prefix_lengthmetalstack.api.v2.ChildPrefixLengthoptional

    Min Child Prefix length asserts that during child network creation the requested bit length is greater or equal the min child prefix length.

    nat_typemetalstack.api.v2.NATTypeoptional

    NATType of this network.

    additional_announcable_cidrsstringrepeated

    AdditionalAnnouncableCidrs will be added to the allow list on the switch which prefixes might be announced.

    forcebool

    Force update, prevents accidental removal of additional_announcable_cidrs which will destroy your dataplane.

    + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    networkmetalstack.api.v2.Network

    Network contains the updated network.

    + + + -

    BGPState

    -

    BGPState represents the state of a BGP session.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameNumberDescription
    BGP_STATE_UNSPECIFIED0

    BGP_STATE_UNSPECIFIED is not specified.

    BGP_STATE_IDLE1

    BGP_STATE_IDLE is the Idle state of a BGP session.

    BGP_STATE_CONNECT2

    BGP_STATE_CONNECT is the Connect state of a BGP session.

    BGP_STATE_ACTIVE3

    BGP_STATE_ACTIVE is the Active state of a BGP session.

    BGP_STATE_OPEN_SENT4

    BGP_STATE_OPEN_SENT is the OpenSent state of a BGP session.

    BGP_STATE_OPEN_CONFIRM5

    BGP_STATE_OPEN_CONFIRM is the OpenConfirm state of a BGP session.

    BGP_STATE_ESTABLISHED6

    BGP_STATE_ESTABLISHED is the Established state of a BGP session.

    + -

    SwitchOSVendor

    -

    SwitchOSVendor represents a NOS distribution.

    - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameNumberDescription
    SWITCH_OS_VENDOR_UNSPECIFIED0

    SWITCH_OS_VENDOR_UNSPECIFIED is not specified.

    SWITCH_OS_VENDOR_CUMULUS1

    SWITCH_OS_VENDOR_CUMULUS means this switch is running on Cumulus Linux.

    SWITCH_OS_VENDOR_SONIC2

    SWITCH_OS_VENDOR_SONIC means this switch is running on SONiC NOS.

    + -

    SwitchPortMembership

    -

    SwitchPortMembership indicates whether a switch port is connected to an internal or an external host.

    + + +

    NetworkService

    +

    NetworkService provides network management operations.

    - + - - - - - - - - - - - - - - - - - - - - - + + + + - -
    NameNumberDescription
    Method NameRequest TypeResponse TypeDescription
    SWITCH_PORT_MEMBERSHIP_UNSPECIFIED0

    SWITCH_PORT_MEMBERSHIP_UNSPECIFIED is not specified.

    SWITCH_PORT_MEMBERSHIP_UNMANAGED1

    SWITCH_PORT_MEMBERSHIP_UNMANAGED is a port that isn't connected to any host yet.

    SWITCH_PORT_MEMBERSHIP_INTERNAL2

    SWITCH_PORT_MEMBERSHIP_INTERNAL is port that is connected to a host that is registered at the api, e.g. a registered machine.

    SWITCH_PORT_MEMBERSHIP_EXTERNAL3

    SWITCH_PORT_MEMBERSHIP_EXTERNAL is port that is connected to a host that is not registered at the api. -This value allows connecting an external system to a network managed by us.

    GetNetworkServiceGetRequestNetworkServiceGetResponse

    Returns the network with the specified ID.

    - -

    SwitchPortStatus

    -

    SwitchPortStatus specifies the state of a switch port.

    - - - - - - - - - + + + + - - - + + + + - - - + + + + - - - + + + + - -
    NameNumberDescription
    SWITCH_PORT_STATUS_UNSPECIFIED0

    SWITCH_PORT_STATUS_UNSPECIFIED is not specified.

    CreateNetworkServiceCreateRequestNetworkServiceCreateResponse

    Creates a new network.

    SWITCH_PORT_STATUS_UP1

    SWITCH_PORT_STATUS_UP means this port is up.

    UpdateNetworkServiceUpdateRequestNetworkServiceUpdateResponse

    Updates a network.

    SWITCH_PORT_STATUS_DOWN2

    SWITCH_PORT_STATUS_DOWN means this port is down.

    DeleteNetworkServiceDeleteRequestNetworkServiceDeleteResponse

    Deletes a network.

    SWITCH_PORT_STATUS_UNKNOWN3

    SWITCH_PORT_STATUS_UNKNOWN means the status of this port is unknown.

    ListNetworkServiceListRequestNetworkServiceListResponse

    Returns the list of all networks.

    - -

    SwitchReplaceMode

    -

    SwitchReplaceMode is used to mark a switch ready for replacement.

    - - - - - - - - - + + + + - - - + + + + - - - + + + +
    NameNumberDescription
    SWITCH_REPLACE_MODE_UNSPECIFIED0

    SWITCH_REPLACE_MODE_UNSPECIFIED is not specified.

    ListExternalMembersNetworkServiceListExternalMembersRequestNetworkServiceListExternalMembersResponse

    Lists external members of a network.

    SWITCH_REPLACE_MODE_REPLACE1

    SWITCH_REPLACE_MODE_REPLACE means this switch is waiting to be replaced.

    AddExternalMembersNetworkServiceAddExternalMembersRequestNetworkServiceAddExternalMembersResponse

    Adds an external member to a network.

    SWITCH_REPLACE_MODE_OPERATIONAL2

    SWITCH_REPLACE_MODE_OPERATIONAL means this switch is operational and cannot be replaced.

    RemoveExternalMembersNetworkServiceRemoveExternalMembersRequestNetworkServiceRemoveExternalMembersResponse

    Removes an external member from a network.

    - - - - +
    -

    metalstack/admin/v2/network.proto

    Top +

    metalstack/admin/v2/partition.proto

    Top

    -

    NetworkServiceAddExternalMembersRequest

    -

    NetworkServiceAddExternalMemberRequest is the request payload for adding an external member to a network.

    +

    MachineSizeCapacity

    +

    ServerCapacity is the capacity of one server type, eg machine size.

    @@ -14623,191 +14535,111 @@

    NetworkServ

    - + - + - - + + - + - - - - + + + + - -
    networksize string

    Network to add the member to.

    Size is the size id correlating to all counts in this server capacity.

    rackstringtotalint64

    Rack the members are connected to.

    Total is the total amount of machines for this size.

    portsstringrepeated

    Ports of the switches to add to the network.

    phoned_homeint64

    PhonedHome is the amount of machines that are currently in the provisioning state "phoned home".

    - - - - - -

    NetworkServiceAddExternalMembersResponse

    -

    NetworkServiceAddExternalMemberResponse is the response payload for adding an external member to a network.

    - - - - - - - + + + + + + - - + + - + - - + + - - - - -
    FieldTypeLabelDescription
    waitingint64

    Waiting is the amount of machines that are currently in the provisioning state "waiting".

    networkmetalstack.api.v2.Networkotherint64

    Network the members were added to.

    Other is the amount of machines that are neither in the provisioning state waiting nor in phoned home but in another provisioning state.

    switchesmetalstack.api.v2.Switchother_machinesstring repeated

    Switch contains the updated switches.

    - - - - - -

    NetworkServiceCreateRequest

    -

    NetworkServiceCreateRequest is the request payload for creating a network.

    - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - + + + + - - - - + + + + - - + + - + - - - - + + + + - - - - + + + + - + - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - + + + + @@ -14817,8 +14649,8 @@

    NetworkServiceCreateReq -

    NetworkServiceCreateResponse

    -

    NetworkServiceCreateResponse is the response payload for creating a network.

    +

    PartitionCapacity

    +

    PartitionCapacity is the capacity of one partition.

    FieldTypeLabelDescription
    idstringoptional

    Id of this network.

    namestringoptional

    Name of this network.

    OtherMachines contains the machine IDs for machines that were classified into "Other".

    descriptionstringoptional

    Description of this network.

    partitionstringoptional

    Partition where this network will be created.

    allocatedint64

    Allocated is the amount of machines that are currently allocated.

    projectstringoptional

    Project where this network belongs to.

    allocatableint64

    Allocatable is the amount of machines in a partition is the amount of machines that can be allocated. +Effectively this is the amount of waiting machines minus the machines that are unavailable due to machine state or un-allocatable. Size reservations are not considered in this count.

    typemetalstack.api.v2.NetworkTypefreeint64

    Type of the network to create.

    Free is the amount of machines in a partition that can be freely allocated at any given moment by a project. +Effectively this is the amount of waiting machines minus the machines that are unavailable due to machine state or un-allocatable due to size reservations.

    labelsmetalstack.api.v2.Labelsoptional

    Labels on this network.

    unavailableint64

    Unavailable is the amount of machine in a partition that are currently not allocatable because they are not waiting or. +not in the machine state "available", e.g. locked or reserved.

    prefixesstringrepeated

    Prefixes in this network.

    faultyint64

    Faulty is the amount of machines that are neither allocated nor in the pool of available machines because they report an error.

    destination_prefixesfaulty_machines string repeated

    Destination Prefixes in this network.

    FaultyMachines contains the machine IDs for machines that were classified into "Faulty".

    default_child_prefix_lengthmetalstack.api.v2.ChildPrefixLengthreservationsint64

    Default Child Prefix length defines the bitlength of a child network created per addressfamily, if not specified during the allocate request.

    Reservations is the amount of reservations made for this size.

    min_child_prefix_lengthmetalstack.api.v2.ChildPrefixLengthused_reservationsint64

    Min Child Prefix length asserts that during child network creation the requested bit length is greater or equal the min child prefix length.

    nat_typemetalstack.api.v2.NATTypeoptional

    NATType of this network.

    vrfuint32optional

    VRF of this network has this VNI.

    parent_networkstringoptional

    Parent Network points to the id of the parent network if any.

    additional_announcable_cidrsstringrepeated

    AdditionalAnnouncableCidrs will be added to the allow list on the switch which prefixes might be announced.

    lengthmetalstack.api.v2.ChildPrefixLengthoptional

    Length per addressfamily.

    UsedReservations is the amount of reservations already used up for this size.

    address_familymetalstack.api.v2.NetworkAddressFamilyoptional

    AddressFamily to create, defaults to the same as the parent.

    remaining_reservationsint64

    RemainingReservations is the amount of reservations remaining for this size.

    @@ -14828,10 +14660,17 @@

    NetworkServiceCreateRe

    - - + + - + + + + + + + + @@ -14841,8 +14680,8 @@

    NetworkServiceCreateRe -

    NetworkServiceDeleteRequest

    -

    NetworkServiceDeleteRequest is the request payload for deleting a network.

    +

    PartitionServiceCapacityRequest

    +

    PartitionServiceCapacityRequest is the request payload for getting partition capacity.

    networkmetalstack.api.v2.Networkpartitionstring

    Network contains the created network.

    Partition of which this capacity is reported.

    machine_size_capacitiesMachineSizeCapacityrepeated

    MachineSizeCapacities is the capacity per machine size.

    @@ -14854,32 +14693,22 @@

    NetworkServiceDeleteReq

    - - + + - -
    id string

    ID of the network to get.

    optional

    ID of the partition to get.

    - - - - - -

    NetworkServiceDeleteResponse

    -

    NetworkServiceDeleteResponse is the response payload for deleting a network.

    - - - - - - - + + + + + + - - - - + + + + @@ -14889,8 +14718,8 @@

    NetworkServiceDeleteRe -

    NetworkServiceGetRequest

    -

    NetworkServiceGetRequest is the request payload for getting a network.

    +

    PartitionServiceCapacityResponse

    +

    PartitionServiceCapacityResponse is the response payload for a partition capacity request.

    FieldTypeLabelDescription
    sizestringoptional

    Size of machines to show the capacity.

    networkmetalstack.api.v2.Network

    Network contains the deleted network.

    projectstringoptional

    Project of machines to show the capacity.

    @@ -14900,10 +14729,10 @@

    NetworkServiceGetRequest

    - - - - + + + + @@ -14913,8 +14742,8 @@

    NetworkServiceGetRequestNetworkServiceGetResponse

    -

    NetworkServiceGetResponse is the response payload for getting a network.

    +

    PartitionServiceCreateRequest

    +

    PartitionServiceCreateRequest is the request payload for a partition create request.

    idstring

    ID of the network to get.

    partition_capacityPartitionCapacityrepeated

    PartitionCapacity is a capacity report per partition.

    @@ -14924,10 +14753,10 @@

    NetworkServiceGetResponse

    - - + + - + @@ -14937,8 +14766,8 @@

    NetworkServiceGetResponse -

    NetworkServiceListExternalMembersRequest

    -

    NetworkServiceListExternalMembersRequest is the request payload for listing external members of a network.

    +

    PartitionServiceCreateResponse

    +

    PartitionServiceCreateResponse is the response payload for a partition create request.

    networkmetalstack.api.v2.Networkpartitionmetalstack.api.v2.Partition

    Network contains the requested network.

    Partition the partition.

    @@ -14948,17 +14777,10 @@

    NetworkSer

    - - - - - - - - - + + - + @@ -14968,8 +14790,8 @@

    NetworkSer -

    NetworkServiceListExternalMembersResponse

    -

    NetworkServiceListExternalMembersResponse is the response payload for listing external members of a network.

    +

    PartitionServiceDeleteRequest

    +

    PartitionServiceDeleteRequest is the request payload for a partition delete request.

    networkstring

    Network to list the members for.

    querymetalstack.api.v2.ExternalNetworkMemberQuerypartitionmetalstack.api.v2.Partition

    Query specifies additional filters for the list request.

    Partition the partition.

    @@ -14979,17 +14801,10 @@

    NetworkSe

    - + - - - - - - - - + @@ -14999,8 +14814,8 @@

    NetworkSe -

    NetworkServiceListRequest

    -

    NetworkServiceListRequest is the request payload for listing networks.

    +

    PartitionServiceDeleteResponse

    +

    PartitionServiceDeleteResponse is the response payload for deleting a partition.

    networkid string

    Network whose members are queried.

    membersmetalstack.api.v2.ExternalNetworkMemberrepeated

    Members are the queried external members of the network.

    ID of the partition to delete.

    @@ -15010,10 +14825,10 @@

    NetworkServiceListRequest

    - - + + - + @@ -15023,101 +14838,8 @@

    NetworkServiceListRequest -

    NetworkServiceListResponse

    -

    NetworkServiceListResponse is the response payload for listing networks.

    - - -
    querymetalstack.api.v2.NetworkQuerypartitionmetalstack.api.v2.Partition

    Query specifies which networks to return.

    Partition contains the deleted partition.

    - - - - - - - - - - - - - -
    FieldTypeLabelDescription
    networksmetalstack.api.v2.Networkrepeated

    Networks contains the list of networks.

    - - - - - -

    NetworkServiceRemoveExternalMembersRequest

    -

    NetworkServiceRemoveExternalMemberRequest is the request payload for removing an external member from a network.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    FieldTypeLabelDescription
    networkstring

    Network to remove the member from.

    rackstring

    Rack the members are connected to.

    portsstringrepeated

    Ports of the switches to remove from the network.

    - - - - - -

    NetworkServiceRemoveExternalMembersResponse

    -

    NetworkServiceRemoveExternalMemberResponse is the response payload for removing an external member from a network.

    - - - - - - - - - - - - - - - - - - - - - - - -
    FieldTypeLabelDescription
    networkmetalstack.api.v2.Network

    Network the members were removed from.

    switchesmetalstack.api.v2.Switchrepeated

    Switch contains the updated switches.

    - - - - - -

    NetworkServiceUpdateRequest

    -

    NetworkServiceUpdateRequest is the request payload for updating a network.

    +

    PartitionServiceUpdateRequest

    +

    PartitionServiceUpdateRequest is the request payload for updating a partition.

    @@ -15130,7 +14852,7 @@

    NetworkServiceUpdateReq

    - + @@ -15140,74 +14862,47 @@

    NetworkServiceUpdateReq

    - - - - - - - - + - - - - + + + + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - + - + - + - - - - + + + + @@ -15217,8 +14912,8 @@

    NetworkServiceUpdateReq -

    NetworkServiceUpdateResponse

    -

    NetworkServiceUpdateResponse is the response payload for updating a network.

    +

    PartitionServiceUpdateResponse

    +

    PartitionServiceUpdateResponse is the response payload for a partition update request.

    id string

    Id of this network.

    ID of this partition.

    UpdateMeta contains the timestamp and strategy to be used in this update request.

    namestringoptional

    Name of this network.

    description string optional

    Description of this network.

    Description of this partition.

    labelsmetalstack.api.v2.UpdateLabelsoptional

    Labels to update on this network.

    boot_configurationmetalstack.api.v2.PartitionBootConfiguration

    PartitionBootConfiguration defines how metal-hammer boots.

    prefixesstringdns_serversmetalstack.api.v2.DNSServer repeated

    Prefixes in this network.

    DNSServers for this partition.

    destination_prefixesstringntp_serversmetalstack.api.v2.NTPServer repeated

    Destination Prefixes in this network.

    default_child_prefix_lengthmetalstack.api.v2.ChildPrefixLengthoptional

    Default Child Prefix length defines the bit length of a child network created per addressfamily, if not specified during the allocate request.

    min_child_prefix_lengthmetalstack.api.v2.ChildPrefixLengthoptional

    Min Child Prefix length asserts that during child network creation the requested bit length is greater or equal the min child prefix length.

    nat_typemetalstack.api.v2.NATTypeoptional

    NATType of this network.

    NTPServers for this partition.

    additional_announcable_cidrsmgmt_service_addresses string repeated

    AdditionalAnnouncableCidrs will be added to the allow list on the switch which prefixes might be announced.

    ManagementServiceAddresses defines where the management is reachable. +must be in the form <ip|host>:<port>.

    forcebool

    Force update, prevents accidental removal of additional_announcable_cidrs which will destroy your dataplane.

    labelsmetalstack.api.v2.UpdateLabelsoptional

    Labels to update on this network.

    @@ -15228,10 +14923,10 @@

    NetworkServiceUpdateRe

    - - + + - + @@ -15247,68 +14942,40 @@

    NetworkServiceUpdateRe -

    NetworkService

    -

    NetworkService provides network management operations.

    +

    PartitionService

    +

    PartitionService provides partition management operations.

    networkmetalstack.api.v2.Networkpartitionmetalstack.api.v2.Partition

    Network contains the updated network.

    Partition the partition.

    - - - - - - - - - - + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - + + + + @@ -15318,13 +14985,13 @@

    NetworkService

    -

    metalstack/admin/v2/partition.proto

    Top +

    metalstack/api/v2/project.proto

    Top

    -

    MachineSizeCapacity

    -

    ServerCapacity is the capacity of one server type, eg machine size.

    +

    Project

    +

    Project defines a group of resources belonging to a tenant.

    a tenant can have multiple projects.

    Method NameRequest TypeResponse TypeDescription
    GetNetworkServiceGetRequestNetworkServiceGetResponse

    Returns the network with the specified ID.

    CreateNetworkServiceCreateRequestNetworkServiceCreateResponse

    Creates a new network.

    PartitionServiceCreateRequestPartitionServiceCreateResponse

    Creates a new partition.

    UpdateNetworkServiceUpdateRequestNetworkServiceUpdateResponse

    Updates a network.

    PartitionServiceUpdateRequestPartitionServiceUpdateResponse

    Updates a partition.

    DeleteNetworkServiceDeleteRequestNetworkServiceDeleteResponse

    Deletes a network.

    ListNetworkServiceListRequestNetworkServiceListResponse

    Returns the list of all networks.

    ListExternalMembersNetworkServiceListExternalMembersRequestNetworkServiceListExternalMembersResponse

    Lists external members of a network.

    AddExternalMembersNetworkServiceAddExternalMembersRequestNetworkServiceAddExternalMembersResponse

    Adds an external member to a network.

    PartitionServiceDeleteRequestPartitionServiceDeleteResponse

    Deletes a partition.

    RemoveExternalMembersNetworkServiceRemoveExternalMembersRequestNetworkServiceRemoveExternalMembersResponse

    Removes an external member from a network.

    CapacityPartitionServiceCapacityRequestPartitionServiceCapacityResponse

    Returns the capacity of a partition.

    @@ -15334,111 +15001,125 @@

    MachineSizeCapacity

    - + - + - - + + - + - - + + - + - - + + - + - - + + - + - + - - + + + +
    sizeuuid string

    Size is the size id correlating to all counts in this server capacity.

    Uuid of this project.

    totalint64metaMeta

    Total is the total amount of machines for this size.

    Meta for this project.

    phoned_homeint64namestring

    PhonedHome is the amount of machines that are currently in the provisioning state "phoned home".

    Name of this project must be unique per tenant.

    waitingint64descriptionstring

    Waiting is the amount of machines that are currently in the provisioning state "waiting".

    Description of this project.

    otherint64tenantstring

    Other is the amount of machines that are neither in the provisioning state waiting nor in phoned home but in another provisioning state.

    Tenant this project belongs to.

    other_machinesavatar_url stringrepeated

    OtherMachines contains the machine IDs for machines that were classified into "Other".

    optional

    AvatarUrl of the Project.

    + + + + + +

    ProjectInvite

    +

    ProjectInvite defines invite to project.

    + + + + + + + + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - + - - + + - - + + - + - - + + - + - - + + - + @@ -15448,8 +15129,8 @@

    MachineSizeCapacity

    -

    PartitionCapacity

    -

    PartitionCapacity is the capacity of one partition.

    +

    ProjectMember

    +

    ProjectMember defines a user that participates in a project.

    FieldTypeLabelDescription
    allocatedint64secretstring

    Allocated is the amount of machines that are currently allocated.

    Secret is the secret part of the invite, typically part of the url.

    allocatableint64projectstring

    Allocatable is the amount of machines in a partition is the amount of machines that can be allocated. -Effectively this is the amount of waiting machines minus the machines that are unavailable due to machine state or un-allocatable. Size reservations are not considered in this count.

    Project is the project id for which this invite was created.

    freeint64roleProjectRole

    Free is the amount of machines in a partition that can be freely allocated at any given moment by a project. -Effectively this is the amount of waiting machines minus the machines that are unavailable due to machine state or un-allocatable due to size reservations.

    Role is the role in this project the user will get after accepting the invitation.

    unavailableint64joinedbool

    Unavailable is the amount of machine in a partition that are currently not allocatable because they are not waiting or. -not in the machine state "available", e.g. locked or reserved.

    Joined is false as long as a user has not accepted the invite.

    faultyint64project_namestring

    Faulty is the amount of machines that are neither allocated nor in the pool of available machines because they report an error.

    ProjectName is the project name for which this invite was created.

    faulty_machinestenant stringrepeated

    FaultyMachines contains the machine IDs for machines that were classified into "Faulty".

    Tenant is the login of the tenant inviting another user to join this project.

    reservationsint64tenant_namestring

    Reservations is the amount of reservations made for this size.

    TenantName is the name of the tenant inviting another user to join this project.

    used_reservationsint64expires_atgoogle.protobuf.Timestamp

    UsedReservations is the amount of reservations already used up for this size.

    ExpiresAt the date when this invite expires.

    remaining_reservationsint64joined_atgoogle.protobuf.Timestamp

    RemainingReservations is the amount of reservations remaining for this size.

    JoinedAt the date when the member accepted this invite.

    @@ -15459,17 +15140,40 @@

    PartitionCapacity

    - + - + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + @@ -15479,8 +15183,8 @@

    PartitionCapacity

    -

    PartitionServiceCapacityRequest

    -

    PartitionServiceCapacityRequest is the request payload for getting partition capacity.

    +

    ProjectQuery

    +

    ProjectQuery is used to search projects.

    partitionid string

    Partition of which this capacity is reported.

    Id is the user id of the member.

    machine_size_capacitiesMachineSizeCapacityrepeated

    MachineSizeCapacities is the capacity per machine size.

    roleProjectRole

    Role is the role of the member.

    inherited_membershipbool

    InheritedMembership indicates that this member has implicit permissions on the project through his membership within the tenant. +This member does not have direct project membership but gains permissions on this project from the role he has in the tenant. +Inherited memberships are not included in member lists for users with guest permission but only for direct tenant members.

    created_atgoogle.protobuf.Timestamp

    CreatedAt the date when the member was added to the project.

    metaMeta

    Meta for this project member.

    @@ -15490,24 +15194,31 @@

    PartitionServiceCap

    - + - + - + - + - + - + + + + + + + + @@ -15517,8 +15228,8 @@

    PartitionServiceCap -

    PartitionServiceCapacityResponse

    -

    PartitionServiceCapacityResponse is the response payload for a partition capacity request.

    +

    ProjectServiceAddMemberRequest

    +

    ProjectServiceAddMemberRequest is the request payload for adding a member to a project.

    iduuid string optional

    ID of the partition to get.

    Uuid lists only projects with this uuid.

    sizename string optional

    Size of machines to show the capacity.

    Name lists only projects with this name.

    projecttenant string optional

    Project of machines to show the capacity.

    Tenant lists only projects of this tenant.

    labelsLabelsoptional

    Labels lists only projects containing the given labels.

    @@ -15528,10 +15239,24 @@

    PartitionServiceCa

    - - - - + + + + + + + + + + + + + + + + + + @@ -15541,8 +15266,8 @@

    PartitionServiceCa -

    PartitionServiceCreateRequest

    -

    PartitionServiceCreateRequest is the request payload for a partition create request.

    +

    ProjectServiceAddMemberResponse

    +

    ProjectServiceAddMemberResponse is the response payload for the add member request.

    partition_capacityPartitionCapacityrepeated

    PartitionCapacity is a capacity report per partition.

    projectstring

    Project is the uuid of the project.

    memberstring

    Login of the member to add.

    roleProjectRole

    Role to assign to the new member.

    @@ -15552,10 +15277,10 @@

    PartitionServiceCreat

    - - + + - + @@ -15565,8 +15290,8 @@

    PartitionServiceCreat -

    PartitionServiceCreateResponse

    -

    PartitionServiceCreateResponse is the response payload for a partition create request.

    +

    ProjectServiceCreateRequest

    +

    ProjectServiceCreateRequest is the request payload to Create a project.

    partitionmetalstack.api.v2.Partitionproject_memberProjectRole

    Partition the partition.

    ProjectRole is the added project member.

    @@ -15576,10 +15301,39 @@

    PartitionServiceCrea

    - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -15589,8 +15343,8 @@

    PartitionServiceCrea -

    PartitionServiceDeleteRequest

    -

    PartitionServiceDeleteRequest is the request payload for a partition delete request.

    +

    ProjectServiceCreateResponse

    +

    ProjectServiceCreateResponse is the response payload of creation of a project.

    partitionmetalstack.api.v2.Partitionloginstring

    Partition the partition.

    Login is the tenant of this project. +TODO: is login really a good name?.

    namestring

    Name of this project, unique per tenant.

    descriptionstring

    Description of this project.

    avatar_urlstringoptional

    Avatar URL of the project.

    labelsLabels

    Labels on the project.

    @@ -15600,10 +15354,10 @@

    PartitionServiceDelet

    - - + + - + @@ -15613,8 +15367,8 @@

    PartitionServiceDelet -

    PartitionServiceDeleteResponse

    -

    PartitionServiceDeleteResponse is the response payload for deleting a partition.

    +

    ProjectServiceDeleteRequest

    +

    ProjectServiceDeleteRequest is the request payload to delete a project.

    idstringprojectProject

    ID of the partition to delete.

    Project is the project.

    @@ -15624,10 +15378,10 @@

    PartitionServiceDele

    - - + + - + @@ -15637,8 +15391,8 @@

    PartitionServiceDele -

    PartitionServiceUpdateRequest

    -

    PartitionServiceUpdateRequest is the request payload for updating a partition.

    +

    ProjectServiceDeleteResponse

    +

    ProjectServiceDeleteResponse is the response payload to delete a project.

    partitionmetalstack.api.v2.Partitionprojectstring

    Partition contains the deleted partition.

    Project is the uuid of the project to delete.

    @@ -15648,60 +15402,10 @@

    PartitionServiceUpdat

    - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -15711,8 +15415,8 @@

    PartitionServiceUpdat -

    PartitionServiceUpdateResponse

    -

    PartitionServiceUpdateResponse is the response payload for a partition update request.

    +

    ProjectServiceGetRequest

    +

    ProjectServiceGetRequest is the request payload to get a project.

    idstring

    ID of this partition.

    update_metametalstack.api.v2.UpdateMetaprojectProject

    UpdateMeta contains the timestamp and strategy to be used in this update request.

    descriptionstringoptional

    Description of this partition.

    boot_configurationmetalstack.api.v2.PartitionBootConfiguration

    PartitionBootConfiguration defines how metal-hammer boots.

    dns_serversmetalstack.api.v2.DNSServerrepeated

    DNSServers for this partition.

    ntp_serversmetalstack.api.v2.NTPServerrepeated

    NTPServers for this partition.

    mgmt_service_addressesstringrepeated

    ManagementServiceAddresses defines where the management is reachable. -must be in the form <ip|host>:<port>.

    labelsmetalstack.api.v2.UpdateLabelsoptional

    Labels to update on this network.

    Project is the project.

    @@ -15722,10 +15426,10 @@

    PartitionServiceUpda

    - - + + - + @@ -15735,62 +15439,8 @@

    PartitionServiceUpda - - - - - - -

    PartitionService

    -

    PartitionService provides partition management operations.

    -
    partitionmetalstack.api.v2.Partitionprojectstring

    Partition the partition.

    Project is the uuid of the project to get.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Method NameRequest TypeResponse TypeDescription
    CreatePartitionServiceCreateRequestPartitionServiceCreateResponse

    Creates a new partition.

    UpdatePartitionServiceUpdateRequestPartitionServiceUpdateResponse

    Updates a partition.

    DeletePartitionServiceDeleteRequestPartitionServiceDeleteResponse

    Deletes a partition.

    CapacityPartitionServiceCapacityRequestPartitionServiceCapacityResponse

    Returns the capacity of a partition.

    - - - - -
    -

    metalstack/api/v2/project.proto

    Top -
    -

    - - -

    Project

    -

    Project defines a group of resources belonging to a tenant.

    a tenant can have multiple projects.

    +

    ProjectServiceGetResponse

    +

    ProjectServiceGetResponse is the response payload to get a projects.

    @@ -15800,45 +15450,17 @@

    Project

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - - - - + + + + @@ -15848,8 +15470,8 @@

    Project

    -

    ProjectInvite

    -

    ProjectInvite defines invite to project.

    +

    ProjectServiceInviteAcceptRequest

    +

    ProjectServiceInviteAcceptRequest is the request payload to a accept invite request.

    uuidstring

    Uuid of this project.

    metaMeta

    Meta for this project.

    namestring

    Name of this project must be unique per tenant.

    descriptionstring

    Description of this project.

    tenantstringprojectProject

    Tenant this project belongs to.

    Project is the project.

    avatar_urlstringoptional

    AvatarUrl of the Project.

    project_membersProjectMemberrepeated

    ProjectMembers in this project, projects guests will only see direct project members and not implicit memberships from tenant permissions.

    @@ -15862,63 +15484,69 @@

    ProjectInvite

    - + + +
    secret string

    Secret is the secret part of the invite, typically part of the url.

    Secret is the invitation secret part of the invitation url.

    + + + + + +

    ProjectServiceInviteAcceptResponse

    +

    ProjectServiceInviteAcceptResponse is the response payload to a accept invite request.

    + + + + + + + + - - - - - - - - - - - - - - - + - + - - - - - - + +
    FieldTypeLabelDescription
    project string

    Project is the project id for which this invite was created.

    roleProjectRole

    Role is the role in this project the user will get after accepting the invitation.

    joinedbool

    Joined is false as long as a user has not accepted the invite.

    Project ID of the project joined.

    project_name string

    ProjectName is the project name for which this invite was created.

    ProjectName of the project joined.

    tenantstring

    Tenant is the login of the tenant inviting another user to join this project.

    + + + + + +

    ProjectServiceInviteDeleteRequest

    +

    ProjectServiceInviteDeleteRequest is the request payload to a delete invite.

    + + + + + + + - + - - - - - - - - + - - + + - + @@ -15928,8 +15556,15 @@

    ProjectInvite

    -

    ProjectMember

    -

    ProjectMember defines a user that participates in a project.

    +

    ProjectServiceInviteDeleteResponse

    +

    ProjectServiceInviteDeleteResponse is the response payload of a delete invite request.

    + + + + + +

    ProjectServiceInviteGetRequest

    +

    ProjectServiceInviteGetRequest is the request payload to get a invite.

    FieldTypeLabelDescription
    tenant_nameproject string

    TenantName is the name of the tenant inviting another user to join this project.

    expires_atgoogle.protobuf.Timestamp

    ExpiresAt the date when this invite expires.

    Project is the uuid of the project.

    joined_atgoogle.protobuf.Timestampsecretstring

    JoinedAt the date when the member accepted this invite.

    Secret of the invite to delete.

    @@ -15939,40 +15574,10 @@

    ProjectMember

    - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -15982,8 +15587,8 @@

    ProjectMember

    -

    ProjectQuery

    -

    ProjectQuery is used to search projects.

    +

    ProjectServiceInviteGetResponse

    +

    ProjectServiceInviteGetResponse is the response payload to a get invite request.

    idsecret string

    Id is the user id of the member.

    roleProjectRole

    Role is the role of the member.

    inherited_membershipbool

    InheritedMembership indicates that this member has implicit permissions on the project through his membership within the tenant. -This member does not have direct project membership but gains permissions on this project from the role he has in the tenant. -Inherited memberships are not included in member lists for users with guest permission but only for direct tenant members.

    created_atgoogle.protobuf.Timestamp

    CreatedAt the date when the member was added to the project.

    metaMeta

    Meta for this project member.

    Secret of the invite to list.

    @@ -15993,31 +15598,10 @@

    ProjectQuery

    - - - - - - - - - - - - - - - - - - - - - - - - - + + + + @@ -16027,8 +15611,8 @@

    ProjectQuery

    -

    ProjectServiceAddMemberRequest

    -

    ProjectServiceAddMemberRequest is the request payload for adding a member to a project.

    +

    ProjectServiceInviteRequest

    +

    ProjectServiceInviteRequest is used to invite a member to a project.

    uuidstringoptional

    Uuid lists only projects with this uuid.

    namestringoptional

    Name lists only projects with this name.

    tenantstringoptional

    Tenant lists only projects of this tenant.

    labelsLabelsoptional

    Labels lists only projects containing the given labels.

    inviteProjectInvite

    Invite is the invite.

    @@ -16044,18 +15628,11 @@

    ProjectServiceAddMembe

    - - - - - - - - + @@ -16065,8 +15642,8 @@

    ProjectServiceAddMembe -

    ProjectServiceAddMemberResponse

    -

    ProjectServiceAddMemberResponse is the response payload for the add member request.

    +

    ProjectServiceInviteResponse

    +

    ProjectServiceInviteResponse is the response payload to a invite member request.

    Project is the uuid of the project.

    memberstring

    Login of the member to add.

    role ProjectRole

    Role to assign to the new member.

    Role of this user in this project.

    @@ -16076,10 +15653,12 @@

    ProjectServiceAddMemb

    - - + + - + @@ -16089,8 +15668,8 @@

    ProjectServiceAddMemb -

    ProjectServiceCreateRequest

    -

    ProjectServiceCreateRequest is the request payload to Create a project.

    +

    ProjectServiceInvitesListRequest

    +

    ProjectServiceInvitesListRequest is the request payload to a list invites request.

    project_memberProjectRoleinviteProjectInvite

    ProjectRole is the added project member.

    Inviter contains a secret which can be sent to a potential user. +can be appended to the invitation endpoint at our cloud console like. +console.metalstack.cloud/invite/<secret.

    @@ -16100,39 +15679,10 @@

    ProjectServiceCreateReque

    - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - + @@ -16142,8 +15692,8 @@

    ProjectServiceCreateReque -

    ProjectServiceCreateResponse

    -

    ProjectServiceCreateResponse is the response payload of creation of a project.

    +

    ProjectServiceInvitesListResponse

    +

    ProjectServiceInvitesListResponse is the response payload to a list invites request.

    loginstring

    Login is the tenant of this project. -TODO: is login really a good name?.

    namestring

    Name of this project, unique per tenant.

    descriptionstring

    Description of this project.

    avatar_urlproject stringoptional

    Avatar URL of the project.

    labelsLabels

    Labels on the project.

    Project is the uuid of the project.

    @@ -16153,10 +15703,10 @@

    ProjectServiceCreateResp

    - - - - + + + + @@ -16166,8 +15716,8 @@

    ProjectServiceCreateResp -

    ProjectServiceDeleteRequest

    -

    ProjectServiceDeleteRequest is the request payload to delete a project.

    +

    ProjectServiceLeaveRequest

    +

    ProjectServiceLeaveRequest is used to leave a project.

    projectProject

    Project is the project.

    invitesProjectInviterepeated

    Invites not already accepted the invitation to this project.

    @@ -16180,7 +15730,7 @@

    ProjectServiceDeleteReque

    - + @@ -16190,8 +15740,15 @@

    ProjectServiceDeleteReque -

    ProjectServiceDeleteResponse

    -

    ProjectServiceDeleteResponse is the response payload to delete a project.

    +

    ProjectServiceLeaveResponse

    +

    ProjectServiceLeaveResponse is the response payload to a leave project request.

    + + + + + +

    ProjectServiceListRequest

    +

    ProjectServiceListRequest is the request payload to list all projects.

    project string

    Project is the uuid of the project to delete.

    Project is the uuid of the project.

    @@ -16201,10 +15758,10 @@

    ProjectServiceDeleteResp

    - - + + - + @@ -16214,8 +15771,8 @@

    ProjectServiceDeleteResp -

    ProjectServiceGetRequest

    -

    ProjectServiceGetRequest is the request payload to get a project.

    +

    ProjectServiceListResponse

    +

    ProjectServiceListResponse is the response payload to list all projects.

    projectProjectqueryProjectQuery

    Project is the project.

    Query for projects.

    @@ -16225,10 +15782,10 @@

    ProjectServiceGetRequest

    - - - - + + + + @@ -16238,8 +15795,8 @@

    ProjectServiceGetRequest

    ProjectServiceGetResponse -

    ProjectServiceGetResponse is the response payload to get a projects.

    +

    ProjectServiceRemoveMemberRequest

    +

    ProjectServiceRemoveMemberRequest is used to remove a member from a project.

    projectstring

    Project is the uuid of the project to get.

    projectsProjectrepeated

    Projects is a list of all your projects.

    @@ -16250,16 +15807,16 @@

    ProjectServiceGetResponse

    - + - + - - - - + + + + @@ -16269,32 +15826,15 @@

    ProjectServiceGetResponseProjectServiceInviteAcceptRequest

    -

    ProjectServiceInviteAcceptRequest is the request payload to a accept invite request.

    +

    ProjectServiceRemoveMemberResponse

    +

    ProjectServiceRemoveMemberResponse is the response payload to a remove member request.

    -
    projectProjectstring

    Project is the project.

    Project is the uuid of the project.

    project_membersProjectMemberrepeated

    ProjectMembers in this project, projects guests will only see direct project members and not implicit memberships from tenant permissions.

    memberstring

    Member is the id of the member to remove from this project.

    - - - - - - - - - - - - - -
    FieldTypeLabelDescription
    secretstring

    Secret is the invitation secret part of the invitation url.

    - - -

    ProjectServiceInviteAcceptResponse

    -

    ProjectServiceInviteAcceptResponse is the response payload to a accept invite request.

    +

    ProjectServiceUpdateMemberRequest

    +

    ProjectServiceUpdateMemberRequest is used to update a member of a project.

    @@ -16307,14 +15847,21 @@

    ProjectServiceInvi

    - + - + - + + + + + + + + @@ -16324,8 +15871,8 @@

    ProjectServiceInvi -

    ProjectServiceInviteDeleteRequest

    -

    ProjectServiceInviteDeleteRequest is the request payload to a delete invite.

    +

    ProjectServiceUpdateMemberResponse

    +

    ProjectServiceUpdateMemberResponse is the response payload to a update member request.

    project string

    Project ID of the project joined.

    Project is the uuid of the project.

    project_namemember string

    ProjectName of the project joined.

    Member is the id of the member to remove from this project.

    roleProjectRole

    Role is the role in this project the user will get after the update.

    @@ -16335,17 +15882,10 @@

    ProjectServiceInvit

    - - - - - - - - - + + - + @@ -16355,15 +15895,8 @@

    ProjectServiceInvit -

    ProjectServiceInviteDeleteResponse

    -

    ProjectServiceInviteDeleteResponse is the response payload of a delete invite request.

    - - - - - -

    ProjectServiceInviteGetRequest

    -

    ProjectServiceInviteGetRequest is the request payload to get a invite.

    +

    ProjectServiceUpdateRequest

    +

    ProjectServiceUpdateRequest is the request payload to update a project.

    projectstring

    Project is the uuid of the project.

    secretstringproject_memberProjectMember

    Secret of the invite to delete.

    ProjectMember is the updated project member.

    @@ -16373,34 +15906,45 @@

    ProjectServiceInviteGe

    - + - + - -
    secretproject string

    Secret of the invite to list.

    Project is the uuid of the project to get.

    - - - - - -

    ProjectServiceInviteGetResponse

    -

    ProjectServiceInviteGetResponse is the response payload to a get invite request.

    - - - - - - - - - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -16410,8 +15954,8 @@

    ProjectServiceInviteG -

    ProjectServiceInviteRequest

    -

    ProjectServiceInviteRequest is used to invite a member to a project.

    +

    ProjectServiceUpdateResponse

    +

    ProjectServiceUpdateResponse is the response payload to update a project.

    FieldTypeLabelDescription
    inviteProjectInviteupdate_metaUpdateMeta

    Invite is the invite.

    UpdateMeta contains the timestamp and strategy to be used in this update request.

    namestringoptional

    Name of this project unique per tenant.

    descriptionstringoptional

    Description of this project.

    avatar_urlstringoptional

    Avatar URL of the project.

    labelsUpdateLabelsoptional

    Labels on this project.

    @@ -16422,16 +15966,9 @@

    ProjectServiceInviteReque

    - - - - - - - - + - + @@ -16441,8 +15978,132 @@

    ProjectServiceInviteReque -

    ProjectServiceInviteResponse

    -

    ProjectServiceInviteResponse is the response payload to a invite member request.

    + + + + + + +

    ProjectService

    +

    ProjectService provides project management operations.

    +
    projectstring

    Project is the uuid of the project.

    roleProjectRoleProject

    Role of this user in this project.

    Project is the project.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Method NameRequest TypeResponse TypeDescription
    ListProjectServiceListRequestProjectServiceListResponse

    Returns the list of all accessible projects.

    GetProjectServiceGetRequestProjectServiceGetResponse

    Returns the project with the specified UUID.

    CreateProjectServiceCreateRequestProjectServiceCreateResponse

    Create a project.

    DeleteProjectServiceDeleteRequestProjectServiceDeleteResponse

    Delete a project.

    UpdateProjectServiceUpdateRequestProjectServiceUpdateResponse

    Update a project.

    LeaveProjectServiceLeaveRequestProjectServiceLeaveResponse

    Leave project.

    AddMemberProjectServiceAddMemberRequestProjectServiceAddMemberResponse

    AddMember adds a user to a project.

    RemoveMemberProjectServiceRemoveMemberRequestProjectServiceRemoveMemberResponse

    RemoveMember removes a user from a project.

    UpdateMemberProjectServiceUpdateMemberRequestProjectServiceUpdateMemberResponse

    UpdateMember updates a user for a project.

    InviteProjectServiceInviteRequestProjectServiceInviteResponse

    Invite a user to a project.

    InviteAcceptProjectServiceInviteAcceptRequestProjectServiceInviteAcceptResponse

    InviteAccept is called by a user to accept an invitation.

    InviteDeleteProjectServiceInviteDeleteRequestProjectServiceInviteDeleteResponse

    InviteDelete deletes a pending invitation.

    InvitesListProjectServiceInvitesListRequestProjectServiceInvitesListResponse

    InvitesList list all invites to a project.

    InviteGetProjectServiceInviteGetRequestProjectServiceInviteGetResponse

    InviteGet get an invite.

    + + + + +
    +

    metalstack/admin/v2/project.proto

    Top +
    +

    + + +

    ProjectServiceListRequest

    +

    ProjectServiceListRequest is the request payload for listing projects.

    @@ -16452,12 +16113,10 @@

    ProjectServiceInviteResp

    - - - - + + + + @@ -16467,8 +16126,8 @@

    ProjectServiceInviteResp -

    ProjectServiceInvitesListRequest

    -

    ProjectServiceInvitesListRequest is the request payload to a list invites request.

    +

    ProjectServiceListResponse

    +

    ProjectServiceListResponse is the response payload for listing projects.

    inviteProjectInvite

    Inviter contains a secret which can be sent to a potential user. -can be appended to the invitation endpoint at our cloud console like. -console.metalstack.cloud/invite/<secret.

    querymetalstack.api.v2.ProjectQueryoptional

    Query for projects.

    @@ -16478,10 +16137,10 @@

    ProjectServiceInvite

    - - - - + + + + @@ -16491,8 +16150,41 @@

    ProjectServiceInvite -

    ProjectServiceInvitesListResponse

    -

    ProjectServiceInvitesListResponse is the response payload to a list invites request.

    + + + + + + +

    ProjectService

    +

    ProjectService provides project management operations.

    +
    projectstring

    Project is the uuid of the project.

    projectsmetalstack.api.v2.Projectrepeated

    Projects contains the list of projects.

    + + + + + + + + + + + + + +
    Method NameRequest TypeResponse TypeDescription
    ListProjectServiceListRequestProjectServiceListResponse

    Returns the list of projects matching the filter criteria.

    + + + + +
    +

    metalstack/admin/v2/size.proto

    Top +
    +

    + + +

    SizeServiceCreateRequest

    +

    SizeServiceCreateRequest is the request payload for creating a size.

    @@ -16502,10 +16194,10 @@

    ProjectServiceInvit

    - - - - + + + + @@ -16515,8 +16207,8 @@

    ProjectServiceInvit -

    ProjectServiceLeaveRequest

    -

    ProjectServiceLeaveRequest is used to leave a project.

    +

    SizeServiceCreateResponse

    +

    SizeServiceCreateResponse is the response payload for creating a size.

    invitesProjectInviterepeated

    Invites not already accepted the invitation to this project.

    sizemetalstack.api.v2.Size

    Size is the size to create.

    @@ -16526,10 +16218,10 @@

    ProjectServiceLeaveRequest

    - - + + - + @@ -16539,15 +16231,8 @@

    ProjectServiceLeaveRequest -

    ProjectServiceLeaveResponse

    -

    ProjectServiceLeaveResponse is the response payload to a leave project request.

    - - - - - -

    ProjectServiceListRequest

    -

    ProjectServiceListRequest is the request payload to list all projects.

    +

    SizeServiceDeleteRequest

    +

    SizeServiceDeleteRequest is the request payload for deleting a size.

    projectstringsizemetalstack.api.v2.Size

    Project is the uuid of the project.

    Size contains the created size.

    @@ -16557,10 +16242,10 @@

    ProjectServiceListRequest

    - - + + - + @@ -16570,8 +16255,8 @@

    ProjectServiceListRequestProjectServiceListResponse

    -

    ProjectServiceListResponse is the response payload to list all projects.

    +

    SizeServiceDeleteResponse

    +

    SizeServiceDeleteResponse is the response payload for deleting a size.

    queryProjectQueryidstring

    Query for projects.

    ID of the size to delete.

    @@ -16581,10 +16266,10 @@

    ProjectServiceListResponse

    - - - - + + + + @@ -16594,8 +16279,8 @@

    ProjectServiceListResponse -

    ProjectServiceRemoveMemberRequest

    -

    ProjectServiceRemoveMemberRequest is used to remove a member from a project.

    +

    SizeServiceUpdateRequest

    +

    SizeServiceUpdateRequest is the request payload for updating a size.

    projectsProjectrepeated

    Projects is a list of all your projects.

    sizemetalstack.api.v2.Size

    Size contains the deleted size.

    @@ -16605,17 +16290,45 @@

    ProjectServiceRemov

    - + - + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -16625,15 +16338,8 @@

    ProjectServiceRemov -

    ProjectServiceRemoveMemberResponse

    -

    ProjectServiceRemoveMemberResponse is the response payload to a remove member request.

    - - - - - -

    ProjectServiceUpdateMemberRequest

    -

    ProjectServiceUpdateMemberRequest is used to update a member of a project.

    +

    SizeServiceUpdateResponse

    +

    SizeServiceUpdateResponse is the response payload for updating a size.

    projectid string

    Project is the uuid of the project.

    Id of this size.

    memberstringupdate_metametalstack.api.v2.UpdateMeta

    Member is the id of the member to remove from this project.

    UpdateMeta contains the timestamp and strategy to be used in this update request.

    namestringoptional

    Name of this size.

    descriptionstringoptional

    Description of this size.

    constraintsmetalstack.api.v2.SizeConstraintrepeated

    Constraints which must match that a specific machine is considered of this size.

    labelsmetalstack.api.v2.UpdateLabelsoptional

    Labels to update on this size.

    @@ -16643,24 +16349,10 @@

    ProjectServiceUpdat

    - - - - - - - - - - - - - - - - + + - + @@ -16670,8 +16362,55 @@

    ProjectServiceUpdat -

    ProjectServiceUpdateMemberResponse

    -

    ProjectServiceUpdateMemberResponse is the response payload to a update member request.

    + + + + + + +

    SizeService

    +

    SizeService provides size management operations.

    +
    projectstring

    Project is the uuid of the project.

    memberstring

    Member is the id of the member to remove from this project.

    roleProjectRolesizemetalstack.api.v2.Size

    Role is the role in this project the user will get after the update.

    Size contains the updated size.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Method NameRequest TypeResponse TypeDescription
    CreateSizeServiceCreateRequestSizeServiceCreateResponse

    Creates a new size.

    UpdateSizeServiceUpdateRequestSizeServiceUpdateResponse

    Updates a size.

    DeleteSizeServiceDeleteRequestSizeServiceDeleteResponse

    Deletes a size.

    + + + + +
    +

    metalstack/api/v2/size_imageconstraint.proto

    Top +
    +

    + + +

    ImageConstraint

    +

    ImageConstraint defines a constraint for an image.

    Examples:

    images:

    ubuntu: ">= 20.04.20211011

    debian: ">= 10.0.20210101

    @@ -16681,10 +16420,17 @@

    ProjectServiceUpda

    - - + + - + + + + + + + + @@ -16694,8 +16440,8 @@

    ProjectServiceUpda -

    ProjectServiceUpdateRequest

    -

    ProjectServiceUpdateRequest is the request payload to update a project.

    +

    SizeImageConstraint

    +

    SizeImageConstraint expresses optional restrictions for specific size to image combinations.

    This might be required if the support for a specific hardware in a given size is only supported with a newer version of the image.

    If the size in question is not found, no restrictions apply.

    If the image in question is not found, no restrictions apply as well.

    If the image in question is found, but does not match the given expression, machine creation must be forbidden.

    project_memberProjectMemberimagestring

    ProjectMember is the updated project member.

    Image of the constraint.

    semver_matchstring

    SemverMatch which defines in semver match format which image version should apply.

    @@ -16705,45 +16451,76 @@

    ProjectServiceUpdateReque

    - + - + - - + + + + + + + + + - + - + - + + +
    projectsize string

    Project is the uuid of the project to get.

    Size where this constraint should apply.

    update_metaUpdateMetaimage_constraintsImageConstraintrepeated

    ImageConstraints to apply to this size.

    metaMeta

    UpdateMeta contains the timestamp and strategy to be used in this update request.

    Meta for this size image constraint.

    name string optional

    Name of this project unique per tenant.

    Name of this size image constraint.

    description string optional

    Description of this project.

    Description of this size image constraint.

    + + + + + +

    SizeImageConstraintQuery

    +

    SizeImageConstraintQuery is used to search size image constraints.

    + + + + + + + + - + - + - - + + - + + + + + + + + @@ -16753,8 +16530,8 @@

    ProjectServiceUpdateReque -

    ProjectServiceUpdateResponse

    -

    ProjectServiceUpdateResponse is the response payload to update a project.

    +

    SizeImageConstraintServiceTryRequest

    +

    SizeImageConstraintServiceTryRequest is the request payload for a size image constraint try request.

    FieldTypeLabelDescription
    avatar_urlsize string optional

    Avatar URL of the project.

    Size of the size image constraint.

    labelsUpdateLabelsnamestring optional

    Labels on this project.

    Name of the size image constraint to query.

    descriptionstringoptional

    Description of the size image constraint to query.

    @@ -16764,10 +16541,17 @@

    ProjectServiceUpdateResp

    - - + + - + + + + + + + + @@ -16777,14 +16561,21 @@

    ProjectServiceUpdateResp +

    SizeImageConstraintServiceTryResponse

    +

    SizeImageConstraintServiceTryResponse is the response payload for a size image constraint try request.

    + + + -

    ProjectService

    -

    ProjectService provides project management operations.

    + + +

    SizeImageConstraintService

    +

    SizeImageConstraintService provides size and image constraint validation operations.

    projectProjectsizestring

    Project is the project.

    Size to try.

    imagestring

    Image to try.

    @@ -16792,101 +16583,10 @@

    ProjectService

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + @@ -16896,13 +16596,13 @@

    ProjectService

    -

    metalstack/admin/v2/project.proto

    Top +

    metalstack/admin/v2/size_imageconstraint.proto

    Top

    -

    ProjectServiceListRequest

    -

    ProjectServiceListRequest is the request payload for listing projects.

    +

    SizeImageConstraintServiceCreateRequest

    +

    SizeImageConstraintServiceCreateRequest is the request payload for creating a size image constraint.

    Method NameRequest TypeResponse TypeDescription
    ListProjectServiceListRequestProjectServiceListResponse

    Returns the list of all accessible projects.

    GetProjectServiceGetRequestProjectServiceGetResponse

    Returns the project with the specified UUID.

    CreateProjectServiceCreateRequestProjectServiceCreateResponse

    Create a project.

    DeleteProjectServiceDeleteRequestProjectServiceDeleteResponse

    Delete a project.

    UpdateProjectServiceUpdateRequestProjectServiceUpdateResponse

    Update a project.

    LeaveProjectServiceLeaveRequestProjectServiceLeaveResponse

    Leave project.

    AddMemberProjectServiceAddMemberRequestProjectServiceAddMemberResponse

    AddMember adds a user to a project.

    RemoveMemberProjectServiceRemoveMemberRequestProjectServiceRemoveMemberResponse

    RemoveMember removes a user from a project.

    UpdateMemberProjectServiceUpdateMemberRequestProjectServiceUpdateMemberResponse

    UpdateMember updates a user for a project.

    InviteProjectServiceInviteRequestProjectServiceInviteResponse

    Invite a user to a project.

    InviteAcceptProjectServiceInviteAcceptRequestProjectServiceInviteAcceptResponse

    InviteAccept is called by a user to accept an invitation.

    InviteDeleteProjectServiceInviteDeleteRequestProjectServiceInviteDeleteResponse

    InviteDelete deletes a pending invitation.

    InvitesListProjectServiceInvitesListRequestProjectServiceInvitesListResponse

    InvitesList list all invites to a project.

    InviteGetProjectServiceInviteGetRequestProjectServiceInviteGetResponse

    InviteGet get an invite.

    TrySizeImageConstraintServiceTryRequestSizeImageConstraintServiceTryResponse

    Try validates if a given combination of size and image is possible.

    @@ -16912,10 +16612,38 @@

    ProjectServiceListRequest

    - - + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + @@ -16925,8 +16653,8 @@

    ProjectServiceListRequest -

    ProjectServiceListResponse

    -

    ProjectServiceListResponse is the response payload for listing projects.

    +

    SizeImageConstraintServiceCreateResponse

    +

    SizeImageConstraintServiceCreateResponse is the response payload for creating a size image constraint.

    querymetalstack.api.v2.ProjectQuerysizestring

    Size of the constraint.

    image_constraintsmetalstack.api.v2.ImageConstraintrepeated

    ImageConstraints to apply to this size.

    metametalstack.api.v2.Meta

    Meta for this size image constraint.

    namestring optional

    Query for projects.

    Name of this size image constraint.

    descriptionstringoptional

    Description of this size image constraint.

    @@ -16936,10 +16664,10 @@

    ProjectServiceListRespon

    - - - - + + + + @@ -16949,41 +16677,32 @@

    ProjectServiceListRespon +

    SizeImageConstraintServiceDeleteRequest

    +

    SizeImageConstraintServiceDeleteRequest is the request payload for deleting a size image constraint.

    - - - + +
    projectsmetalstack.api.v2.Projectrepeated

    Projects contains the list of projects.

    size_image_constraintmetalstack.api.v2.SizeImageConstraint

    SizeImageConstraint contains the created constraint.

    + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    sizestring

    Size of the constraint.

    - -

    ProjectService

    -

    ProjectService provides project management operations.

    - - - - - - - - - - - - - - -
    Method NameRequest TypeResponse TypeDescription
    ListProjectServiceListRequestProjectServiceListResponse

    Returns the list of projects matching the filter criteria.

    + - - -
    -

    metalstack/admin/v2/size.proto

    Top -
    -

    - -

    SizeServiceCreateRequest

    -

    SizeServiceCreateRequest is the request payload for creating a size.

    +

    SizeImageConstraintServiceDeleteResponse

    +

    SizeImageConstraintServiceDeleteResponse is the response payload for deleting a size image constraint.

    @@ -16993,10 +16712,10 @@

    SizeServiceCreateRequest

    - - + + - + @@ -17006,8 +16725,8 @@

    SizeServiceCreateRequestSizeServiceCreateResponse

    -

    SizeServiceCreateResponse is the response payload for creating a size.

    +

    SizeImageConstraintServiceGetRequest

    +

    SizeImageConstraintServiceGetRequest is the request payload for getting a size image constraint.

    sizemetalstack.api.v2.Sizesize_image_constraintmetalstack.api.v2.SizeImageConstraint

    Size is the size to create.

    SizeImageConstraint contains the deleted constraint.

    @@ -17018,9 +16737,9 @@

    SizeServiceCreateResponse

    - + - + @@ -17030,8 +16749,8 @@

    SizeServiceCreateResponse -

    SizeServiceDeleteRequest

    -

    SizeServiceDeleteRequest is the request payload for deleting a size.

    +

    SizeImageConstraintServiceGetResponse

    +

    SizeImageConstraintServiceGetResponse is the response payload for getting a size image constraint.

    sizemetalstack.api.v2.Sizestring

    Size contains the created size.

    Size of the constraint.

    @@ -17041,10 +16760,10 @@

    SizeServiceDeleteRequest

    - - + + - + @@ -17054,8 +16773,8 @@

    SizeServiceDeleteRequestSizeServiceDeleteResponse

    -

    SizeServiceDeleteResponse is the response payload for deleting a size.

    +

    SizeImageConstraintServiceListRequest

    +

    SizeImageConstraintServiceListRequest is the request payload for listing size image constraints.

    idstringsize_image_constraintmetalstack.api.v2.SizeImageConstraint

    ID of the size to delete.

    SizeImageConstraint contains the retrieved constraint.

    @@ -17065,10 +16784,10 @@

    SizeServiceDeleteResponse

    - - + + - + @@ -17078,8 +16797,8 @@

    SizeServiceDeleteResponse -

    SizeServiceUpdateRequest

    -

    SizeServiceUpdateRequest is the request payload for updating a size.

    +

    SizeImageConstraintServiceListResponse

    +

    SizeImageConstraintServiceListResponse is the response payload for listing size image constraints.

    sizemetalstack.api.v2.Sizequerymetalstack.api.v2.SizeImageConstraintQuery

    Size contains the deleted size.

    Query for size image constraints.

    @@ -17089,45 +16808,62 @@

    SizeServiceUpdateRequest

    - - - - + + + + - - - - - - + +
    idstring

    Id of this size.

    size_image_constraintsmetalstack.api.v2.SizeImageConstraintrepeated

    SizeImageConstraints contains the list of constraints.

    update_metametalstack.api.v2.UpdateMeta

    UpdateMeta contains the timestamp and strategy to be used in this update request.

    + + + + + +

    SizeImageConstraintServiceUpdateRequest

    +

    SizeImageConstraintServiceUpdateRequest is the request payload for updating a size image constraint.

    + + + + + + + - + - - + + - - - - + + + + - - + + - + - - + + - + + + + + + + + @@ -17137,8 +16873,8 @@

    SizeServiceUpdateRequestSizeServiceUpdateResponse

    -

    SizeServiceUpdateResponse is the response payload for updating a size.

    +

    SizeImageConstraintServiceUpdateResponse

    +

    SizeImageConstraintServiceUpdateResponse is the response payload for updating a size image constraint.

    FieldTypeLabelDescription
    namesize stringoptional

    Name of this size.

    Size of the image constraint to update.

    descriptionstringoptional

    Description of this size.

    update_metametalstack.api.v2.UpdateMeta

    UpdateMeta contains the timestamp and strategy to be used in this update request.

    constraintsmetalstack.api.v2.SizeConstraintimage_constraintsmetalstack.api.v2.ImageConstraint repeated

    Constraints which must match that a specific machine is considered of this size.

    ImageConstraints to apply to this size.

    labelsmetalstack.api.v2.UpdateLabelsnamestring optional

    Labels to update on this size.

    Name of this size image constraint.

    descriptionstringoptional

    Description of this size image constraint.

    @@ -17148,10 +16884,10 @@

    SizeServiceUpdateResponse

    - - + + - + @@ -17167,8 +16903,8 @@

    SizeServiceUpdateResponse -

    SizeService

    -

    SizeService provides size management operations.

    +

    SizeImageConstraintService

    +

    SizeImageConstraintService provides size and image constraint management operations.

    sizemetalstack.api.v2.Sizesize_image_constraintmetalstack.api.v2.SizeImageConstraint

    Size contains the updated size.

    SizeImageConstraint contains the updated constraint.

    @@ -17177,23 +16913,37 @@

    SizeService

    - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + + + @@ -17203,13 +16953,13 @@

    SizeService

    -

    metalstack/api/v2/size_imageconstraint.proto

    Top +

    metalstack/api/v2/size_reservation.proto

    Top

    -

    ImageConstraint

    -

    ImageConstraint defines a constraint for an image.

    Examples:

    images:

    ubuntu: ">= 20.04.20211011

    debian: ">= 10.0.20210101

    +

    SizeReservation

    +

    SizeReservation.

    Method NameRequest TypeResponse TypeDescription
    CreateSizeServiceCreateRequestSizeServiceCreateResponse

    Creates a new size.

    SizeImageConstraintServiceCreateRequestSizeImageConstraintServiceCreateResponse

    Creates a size image constraint.

    UpdateSizeServiceUpdateRequestSizeServiceUpdateResponse

    Updates a size.

    SizeImageConstraintServiceUpdateRequestSizeImageConstraintServiceUpdateResponse

    Updates a size image constraint.

    DeleteSizeServiceDeleteRequestSizeServiceDeleteResponse

    Deletes a size.

    SizeImageConstraintServiceDeleteRequestSizeImageConstraintServiceDeleteResponse

    Deletes a size image constraint.

    GetSizeImageConstraintServiceGetRequestSizeImageConstraintServiceGetResponse

    Returns the size image constraint with the specified size.

    ListSizeImageConstraintServiceListRequestSizeImageConstraintServiceListResponse

    Returns the list of size image constraints.

    @@ -17219,69 +16969,59 @@

    ImageConstraint

    - + - + - - + + - + - -
    imageid string

    Image of the constraint.

    Id of this size reservation, is generated on creation.

    semver_matchstringmetaMeta

    SemverMatch which defines in semver match format which image version should apply.

    Meta for this size reservation.

    - - - - - -

    SizeImageConstraint

    -

    SizeImageConstraint expresses optional restrictions for specific size to image combinations.

    This might be required if the support for a specific hardware in a given size is only supported with a newer version of the image.

    If the size in question is not found, no restrictions apply.

    If the image in question is not found, no restrictions apply as well.

    If the image in question is found, but does not match the given expression, machine creation must be forbidden.

    - - - - - - - - - + - + - - - - + + + + - - + + - + - + - - + + - + - - + + + + + + + + + @@ -17291,8 +17031,8 @@

    SizeImageConstraint

    -

    SizeImageConstraintQuery

    -

    SizeImageConstraintQuery is used to search size image constraints.

    +

    SizeReservationQuery

    +

    SizeReservationQuery is used to search size reservations.

    FieldTypeLabelDescription
    sizename string

    Size where this constraint should apply.

    Name of this size reservation.

    image_constraintsImageConstraintrepeated

    ImageConstraints to apply to this size.

    descriptionstring

    Description of this size reservation.

    metaMetaprojectstring

    Meta for this size image constraint.

    Project of the size reservation.

    namesize stringoptional

    Name of this size image constraint.

    Size id of this size reservation.

    descriptionpartitions stringoptional

    Description of this size image constraint.

    repeated

    Partition ids of this size reservation.

    amountint32

    Amount of reservations of this size reservation.

    @@ -17302,24 +17042,52 @@

    SizeImageConstraintQuery

    - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -17329,8 +17097,8 @@

    SizeImageConstraintQuery

    SizeImageConstraintServiceTryRequest -

    SizeImageConstraintServiceTryRequest is the request payload for a size image constraint try request.

    +

    SizeReservationServiceGetRequest

    +

    SizeReservationServiceGetRequest is the request payload for a size get request.

    sizeid string optional

    Size of the size image constraint.

    ID of the size reservation to get.

    name string optional

    Name of the size image constraint to query.

    Name of this size reservation.

    description string optional

    Description of the size image constraint to query.

    Description of this size reservation.

    sizestringoptional

    Size id of this size reservation.

    projectstringoptional

    Project of the size reservation.

    partitionstringoptional

    Partition of the size reservation.

    labelsLabelsoptional

    Labels lists only size reservations containing the given labels.

    @@ -17340,17 +17108,17 @@

    SizeImageConstra

    - + - + - + - + @@ -17360,48 +17128,32 @@

    SizeImageConstra -

    SizeImageConstraintServiceTryResponse

    -

    SizeImageConstraintServiceTryResponse is the response payload for a size image constraint try request.

    - - +

    SizeReservationServiceGetResponse

    +

    SizeReservationServiceGetResponse is the response payload for a size reservation get request.

    - +
    sizeid string

    Size to try.

    ID of the size reservation to get.

    imageproject string

    Image to try.

    Project of the size reservation.

    + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    size_reservationSizeReservation

    Size reservation.

    - + + - - -

    SizeImageConstraintService

    -

    SizeImageConstraintService provides size and image constraint validation operations.

    - - - - - - - - - - - - - - -
    Method NameRequest TypeResponse TypeDescription
    TrySizeImageConstraintServiceTryRequestSizeImageConstraintServiceTryResponse

    Try validates if a given combination of size and image is possible.

    - - - - -
    -

    metalstack/admin/v2/size_imageconstraint.proto

    Top -
    -

    - - -

    SizeImageConstraintServiceCreateRequest

    -

    SizeImageConstraintServiceCreateRequest is the request payload for creating a size image constraint.

    +

    SizeReservationServiceListRequest

    +

    SizeReservationServiceListRequest is the request payload for a size list request.

    @@ -17411,38 +17163,17 @@

    SizeImageCo

    - + - - - - - - - - + - - + + - - - - - - - - - - - - - - - + @@ -17452,8 +17183,8 @@

    SizeImageCo -

    SizeImageConstraintServiceCreateResponse

    -

    SizeImageConstraintServiceCreateResponse is the response payload for creating a size image constraint.

    +

    SizeReservationServiceListResponse

    +

    SizeReservationServiceListResponse is the response payload for a size reservation list request.

    sizeproject string

    Size of the constraint.

    image_constraintsmetalstack.api.v2.ImageConstraintrepeated

    ImageConstraints to apply to this size.

    Project of the size reservation.

    metametalstack.api.v2.MetaquerySizeReservationQuery

    Meta for this size image constraint.

    namestringoptional

    Name of this size image constraint.

    descriptionstringoptional

    Description of this size image constraint.

    Query for size reservations.

    @@ -17463,10 +17194,10 @@

    SizeImageC

    - - - - + + + + @@ -17476,8 +17207,48 @@

    SizeImageC -

    SizeImageConstraintServiceDeleteRequest

    -

    SizeImageConstraintServiceDeleteRequest is the request payload for deleting a size image constraint.

    + + + + + + +

    SizeReservationService

    +

    SizeReservationService provides size reservation management operations.

    +
    size_image_constraintmetalstack.api.v2.SizeImageConstraint

    SizeImageConstraint contains the created constraint.

    size_reservationsSizeReservationrepeated

    Size reservations.

    + + + + + + + + + + + + + + + + + + + + +
    Method NameRequest TypeResponse TypeDescription
    GetSizeReservationServiceGetRequestSizeReservationServiceGetResponse

    Returns the size reservation with the specified ID.

    ListSizeReservationServiceListRequestSizeReservationServiceListResponse

    Returns the list of size reservations.

    + + + + +
    +

    metalstack/admin/v2/size_reservation.proto

    Top +
    +

    + + +

    SizeReservationServiceCreateRequest

    +

    SizeReservationServiceCreateRequest is the request payload for creating a size reservation.

    @@ -17487,10 +17258,10 @@

    SizeImageCo

    - - + + - + @@ -17500,8 +17271,8 @@

    SizeImageCo -

    SizeImageConstraintServiceDeleteResponse

    -

    SizeImageConstraintServiceDeleteResponse is the response payload for deleting a size image constraint.

    +

    SizeReservationServiceCreateResponse

    +

    SizeReservationServiceCreateResponse is the response payload for creating a size reservation.

    sizestringsize_reservationmetalstack.api.v2.SizeReservation

    Size of the constraint.

    SizeReservation is the size reservation to create.

    @@ -17511,10 +17282,10 @@

    SizeImageC

    - - + + - + @@ -17524,8 +17295,8 @@

    SizeImageC -

    SizeImageConstraintServiceGetRequest

    -

    SizeImageConstraintServiceGetRequest is the request payload for getting a size image constraint.

    +

    SizeReservationServiceDeleteRequest

    +

    SizeReservationServiceDeleteRequest is the request payload for deleting a size reservation.

    size_image_constraintmetalstack.api.v2.SizeImageConstraintsize_reservationmetalstack.api.v2.SizeReservation

    SizeImageConstraint contains the deleted constraint.

    SizeReservation contains the created reservation.

    @@ -17535,10 +17306,10 @@

    SizeImageConst

    - + - + @@ -17548,8 +17319,8 @@

    SizeImageConst -

    SizeImageConstraintServiceGetResponse

    -

    SizeImageConstraintServiceGetResponse is the response payload for getting a size image constraint.

    +

    SizeReservationServiceDeleteResponse

    +

    SizeReservationServiceDeleteResponse is the response payload for deleting a size reservation.

    sizeid string

    Size of the constraint.

    ID of the size reservation to delete.

    @@ -17559,10 +17330,10 @@

    SizeImageCons

    - - + + - + @@ -17572,8 +17343,8 @@

    SizeImageCons -

    SizeImageConstraintServiceListRequest

    -

    SizeImageConstraintServiceListRequest is the request payload for listing size image constraints.

    +

    SizeReservationServiceListRequest

    +

    SizeReservationServiceListRequest is the request payload for listing size reservations.

    size_image_constraintmetalstack.api.v2.SizeImageConstraintsize_reservationmetalstack.api.v2.SizeReservation

    SizeImageConstraint contains the retrieved constraint.

    SizeReservation contains the deleted reservation.

    @@ -17584,9 +17355,9 @@

    SizeImageCons

    - + - + @@ -17596,8 +17367,8 @@

    SizeImageCons -

    SizeImageConstraintServiceListResponse

    -

    SizeImageConstraintServiceListResponse is the response payload for listing size image constraints.

    +

    SizeReservationServiceListResponse

    +

    SizeReservationServiceListResponse is the response payload for listing size reservations.

    querymetalstack.api.v2.SizeImageConstraintQuerymetalstack.api.v2.SizeReservationQuery

    Query for size image constraints.

    Query for size reservations.

    @@ -17607,10 +17378,10 @@

    SizeImageCon

    - - + + - + @@ -17620,8 +17391,8 @@

    SizeImageCon -

    SizeImageConstraintServiceUpdateRequest

    -

    SizeImageConstraintServiceUpdateRequest is the request payload for updating a size image constraint.

    +

    SizeReservationServiceUpdateRequest

    +

    SizeReservationServiceUpdateRequest is the request payload for updating a size reservation.

    size_image_constraintsmetalstack.api.v2.SizeImageConstraintsize_reservationsmetalstack.api.v2.SizeReservation repeated

    SizeImageConstraints contains the list of constraints.

    SizeReservations contains the list of reservations.

    @@ -17631,10 +17402,24 @@

    SizeImageCo

    - + - + + + + + + + + + + + + + + + @@ -17645,24 +17430,24 @@

    SizeImageCo

    - - + + - + - - + + - + - - + + - + @@ -17672,8 +17457,8 @@

    SizeImageCo -

    SizeImageConstraintServiceUpdateResponse

    -

    SizeImageConstraintServiceUpdateResponse is the response payload for updating a size image constraint.

    +

    SizeReservationServiceUpdateResponse

    +

    SizeReservationServiceUpdateResponse is the response payload for updating a size reservation.

    sizeid string

    Size of the image constraint to update.

    Id of this size reservation.

    namestringoptional

    Name of this size reservation.

    descriptionstringoptional

    Description of this size reservation.

    image_constraintsmetalstack.api.v2.ImageConstraintpartitionsstring repeated

    ImageConstraints to apply to this size.

    Partition ids of this size reservation.

    namestringamountint32 optional

    Name of this size image constraint.

    Amount of reservations of this size reservation.

    descriptionstringlabelsmetalstack.api.v2.UpdateLabels optional

    Description of this size image constraint.

    Labels to update of this size reservation.

    @@ -17683,10 +17468,10 @@

    SizeImageC

    - - + + - + @@ -17702,8 +17487,8 @@

    SizeImageC -

    SizeImageConstraintService

    -

    SizeImageConstraintService provides size and image constraint management operations.

    +

    SizeReservationService

    +

    SizeReservationService provides size reservation management operations.

    size_image_constraintmetalstack.api.v2.SizeImageConstraintsize_reservationmetalstack.api.v2.SizeReservation

    SizeImageConstraint contains the updated constraint.

    SizeReservation contains the updated reservation.

    @@ -17712,37 +17497,30 @@

    SizeImageConstraintServi

    - - - + + + - - - + + + - - - - - - - - - - + + + - - - + + + @@ -17752,13 +17530,13 @@

    SizeImageConstraintServi
    -

    metalstack/api/v2/size_reservation.proto

    Top +

    metalstack/api/v2/switch.proto

    Top

    -

    SizeReservation

    -

    SizeReservation.

    +

    BGPFilter

    +

    BGPFilter can be used to restrict BGP based on CIDRs and VNIs.

    Method NameRequest TypeResponse TypeDescription
    CreateSizeImageConstraintServiceCreateRequestSizeImageConstraintServiceCreateResponse

    Creates a size image constraint.

    SizeReservationServiceCreateRequestSizeReservationServiceCreateResponse

    Creates a new size reservation.

    UpdateSizeImageConstraintServiceUpdateRequestSizeImageConstraintServiceUpdateResponse

    Updates a size image constraint.

    SizeReservationServiceUpdateRequestSizeReservationServiceUpdateResponse

    Updates a size reservation.

    DeleteSizeImageConstraintServiceDeleteRequestSizeImageConstraintServiceDeleteResponse

    Deletes a size image constraint.

    GetSizeImageConstraintServiceGetRequestSizeImageConstraintServiceGetResponse

    Returns the size image constraint with the specified size.

    SizeReservationServiceDeleteRequestSizeReservationServiceDeleteResponse

    Deletes a size reservation.

    ListSizeImageConstraintServiceListRequestSizeImageConstraintServiceListResponse

    Returns the list of size image constraints.

    SizeReservationServiceListRequestSizeReservationServiceListResponse

    Returns the list of size reservations.

    @@ -17768,59 +17546,79 @@

    SizeReservation

    - + - - - - - - - - - + + - + - - + + - - - - - - + +
    idcidrs string

    Id of this size reservation, is generated on creation.

    metaMeta

    Meta for this size reservation.

    repeated

    CIDRs for which to allow BGP.

    namevnis string

    Name of this size reservation.

    repeated

    VNIs for which to allow BGP.

    descriptionstring

    Description of this size reservation.

    + + + + + +

    MachineConnection

    +

    MachineConnection associates a machine with the corresponding switch nic.

    + + + + + + + - + - + - - + + - + + +
    FieldTypeLabelDescription
    projectmachine_id string

    Project of the size reservation.

    MachineId of the machine connected to the nic.

    sizestringnicSwitchNic

    Size id of this size reservation.

    Nic the machine is connected to.

    + + + + + +

    NicState

    +

    NicState represents the current state of a switch port.

    + + + + + + + + - - - - + + + + - - + + - + @@ -17830,8 +17628,8 @@

    SizeReservation

    -

    SizeReservationQuery

    -

    SizeReservationQuery is used to search size reservations.

    +

    Switch

    +

    Switch represents a network switch.

    FieldTypeLabelDescription
    partitionsstringrepeated

    Partition ids of this size reservation.

    desiredSwitchPortStatusoptional

    Desired is the desired port state.

    amountint32actualSwitchPortStatus

    Amount of reservations of this size reservation.

    Actual is the actual port state.

    @@ -17843,50 +17641,106 @@

    SizeReservationQuery

    - - + + - - - - + + + + - - + + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + - + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -17896,8 +17750,8 @@

    SizeReservationQuery

    -

    SizeReservationServiceGetRequest

    -

    SizeReservationServiceGetRequest is the request payload for a size get request.

    +

    SwitchBGPPortState

    +

    SwitchBGPPortState holds information about the BGP state of a port.

    id stringoptional

    ID of the size reservation to get.

    Id of the switch.

    namestringoptional

    Name of this size reservation.

    metaMeta

    Meta for this switch.

    description stringoptional

    Description of this size reservation.

    Description of the switch.

    sizerack string optional

    Size id of this size reservation.

    Rack ID if the switch resides in a rack.

    projectroom string optional

    Project of the size reservation.

    Room ID if the switch resides in a room.

    partition string

    Partition the switch belongs to.

    replace_modeSwitchReplaceMode

    ReplaceMode is used to mark a switch ready for replacement.

    management_ipstring

    ManagementIp is the switch's IP for management access.

    management_userstring optional

    Partition of the size reservation.

    ManagementUser is the user name to use for management access.

    labelsLabelsconsole_commandstring optional

    Labels lists only size reservations containing the given labels.

    ConsoleCommand is the command for accessing the switch's console.

    nicsSwitchNicrepeated

    Nics are the front panel ports of the switch.

    osSwitchOS

    SwitchOs is the OS running on the switch.

    machine_connectionsMachineConnectionrepeated

    MachineConnections map machines to the nics they are connected to.

    last_syncSwitchSync

    LastSync contains information about the last heartbeat of the switch.

    last_sync_errorSwitchSync

    LastSyncError contains information about the last unsuccessful heartbeat of the switch.

    @@ -17907,72 +17761,52 @@

    SizeReservationServi

    - + - + - + - + - -
    idneighbor string

    ID of the size reservation to get.

    Neighbor of this port.

    projectpeer_group string

    Project of the size reservation.

    PeerGroup of this port.

    - - - - - -

    SizeReservationServiceGetResponse

    -

    SizeReservationServiceGetResponse is the response payload for a size reservation get request.

    - - - - - - - + + + + + + - - + + - + - -
    FieldTypeLabelDescription
    vrf_namestring

    VrfName of the VRF this port is bound to.

    size_reservationSizeReservationbgp_stateBGPState

    Size reservation.

    BgpState of the connection on this port.

    - - - - - -

    SizeReservationServiceListRequest

    -

    SizeReservationServiceListRequest is the request payload for a size list request.

    - - - - - - - + + + + + + - - + + - + - - + + - + @@ -17982,8 +17816,8 @@

    SizeReservationServ -

    SizeReservationServiceListResponse

    -

    SizeReservationServiceListResponse is the response payload for a size reservation list request.

    +

    SwitchNic

    +

    SwitchNic represents a front panel port and its configuration.

    FieldTypeLabelDescription
    bgp_timer_up_establishedgoogle.protobuf.Timestamp

    BgpTimerUpEstablished reports when this port's BGP connection was established.

    projectstringsent_prefix_counteruint64

    Project of the size reservation.

    SentPrefixCounter counts the prefixes sent by the switch on this port.

    querySizeReservationQueryaccepted_prefix_counteruint64

    Query for size reservations.

    AcceptedPrefixCounter counts the prefixes received on this port.

    @@ -17993,74 +17827,59 @@

    SizeReservationSer

    - - - - + + + + - -
    size_reservationsSizeReservationrepeated

    Size reservations.

    namestring

    Name of the switch port.

    - - - - - - - - - - - -

    SizeReservationService

    -

    SizeReservationService provides size reservation management operations.

    - - - - - - - - - - - - - - - - - - - - - -
    Method NameRequest TypeResponse TypeDescription
    GetSizeReservationServiceGetRequestSizeReservationServiceGetResponse

    Returns the size reservation with the specified ID.

    ListSizeReservationServiceListRequestSizeReservationServiceListResponse

    Returns the list of size reservations.

    - - - - -
    -

    metalstack/admin/v2/size_reservation.proto

    Top -
    -

    - - -

    SizeReservationServiceCreateRequest

    -

    SizeReservationServiceCreateRequest is the request payload for creating a size reservation.

    - - - - - - - + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -18070,8 +17889,8 @@

    SizeReservation -

    SizeReservationServiceCreateResponse

    -

    SizeReservationServiceCreateResponse is the response payload for creating a size reservation.

    +

    SwitchNicWithMachine

    +

    SwitchNicWithMachine associates a switch port with its connected machine.

    FieldTypeLabelDescription
    identifierstring

    Identifier of the port.

    size_reservationmetalstack.api.v2.SizeReservationmacstringoptional

    MAC address of the port.

    vrfstringoptional

    VRF name if the port is bound in one.

    stateNicStateoptional

    NicState describes the current state of the switch port.

    bgp_filterBGPFilteroptional

    BGPFilter optionally configured on a port.

    bgp_port_stateSwitchBGPPortStateoptional

    BGPPortState represents the current BGP status of the port.

    membershipSwitchPortMembership

    SizeReservation is the size reservation to create.

    Membership indicates whether the port is connected to an internal or external host.

    @@ -18081,34 +17900,24 @@

    SizeReservatio

    - - + + - + - -
    size_reservationmetalstack.api.v2.SizeReservationnicSwitchNic

    SizeReservation contains the created reservation.

    Nic is the switch nic the machine is connected to.

    - - - - - -

    SizeReservationServiceDeleteRequest

    -

    SizeReservationServiceDeleteRequest is the request payload for deleting a size reservation.

    - - - - - - - + + + + + + - - + + - + @@ -18118,8 +17927,8 @@

    SizeReservation -

    SizeReservationServiceDeleteResponse

    -

    SizeReservationServiceDeleteResponse is the response payload for deleting a size reservation.

    +

    SwitchOS

    +

    SwitchOS holds information about the NOS and versions running on the switch.

    FieldTypeLabelDescription
    machineMachine

    Machine connected to this nic.

    idstringfruMachineFRU

    ID of the size reservation to delete.

    FRU of the connected machine.

    @@ -18129,34 +17938,24 @@

    SizeReservatio

    - - + + - + - -
    size_reservationmetalstack.api.v2.SizeReservationvendorSwitchOSVendor

    SizeReservation contains the deleted reservation.

    Vendor identifies what NOS distribution is running on the switch, e.g. SONiC.

    - - - - - -

    SizeReservationServiceListRequest

    -

    SizeReservationServiceListRequest is the request payload for listing size reservations.

    - - - - - - - + + + + + + - - + + - + @@ -18166,8 +17965,8 @@

    SizeReservationSe -

    SizeReservationServiceListResponse

    -

    SizeReservationServiceListResponse is the response payload for listing size reservations.

    +

    SwitchOSQuery

    +

    SwitchOSQuery holds OS specific query parameters.

    FieldTypeLabelDescription
    versionstring

    Version specifies what NOS version is currently installed on the switch.

    querymetalstack.api.v2.SizeReservationQuerymetal_core_versionstring

    Query for size reservations.

    MetalCoreVersion is the currently running version of the metal-core.

    @@ -18177,10 +17976,17 @@

    SizeReservationS

    - - - - + + + + + + + + + + + @@ -18190,8 +17996,8 @@

    SizeReservationS -

    SizeReservationServiceUpdateRequest

    -

    SizeReservationServiceUpdateRequest is the request payload for updating a size reservation.

    +

    SwitchQuery

    +

    SwitchQuery can be used to query a switch or a list of switches.

    size_reservationsmetalstack.api.v2.SizeReservationrepeated

    SizeReservations contains the list of reservations.

    vendorSwitchOSVendoroptional

    OsVendor of the switch OS by which to filter the switches.

    versionstringoptional

    OsVersion of the OS by which to filter the switches.

    @@ -18203,50 +18009,81 @@

    SizeReservation

    - - + + - + - + - + - + - - - - + + + + - - - - + + + + - - + + - + + + + +
    id string

    Id of this size reservation.

    optional

    Id of the switch to list.

    namepartition string optional

    Name of this size reservation.

    Partition of the switches to list.

    descriptionrack string optional

    Description of this size reservation.

    Rack of the switches to list.

    update_metametalstack.api.v2.UpdateMeta

    UpdateMeta contains the timestamp and strategy to be used in this update request.

    roomstringoptional

    Room ID if the switch resides in a room.

    partitionsstringrepeated

    Partition ids of this size reservation.

    osSwitchOSQueryoptional

    Switch OS specific queries.

    amountint32connected_machine_idstring optional

    Amount of reservations of this size reservation.

    ConnectedMachineID lists the switches which have the given machine id in the connected machines map.

    + + + + + +

    SwitchSync

    +

    SwitchSync summarizes information about a switch sync.

    + + + + + + + + + + + + + - - + + + + + + + + + - + @@ -18256,8 +18093,8 @@

    SizeReservation -

    SizeReservationServiceUpdateResponse

    -

    SizeReservationServiceUpdateResponse is the response payload for updating a size reservation.

    +

    SwitchWithMachines

    +

    SwitchWithMachines contains a mapping from switch ports to connected machines.

    FieldTypeLabelDescription
    timegoogle.protobuf.Timestamp

    Time of the sync.

    labelsmetalstack.api.v2.UpdateLabelsdurationgoogle.protobuf.Duration

    Duration of the sync.

    errorstring optional

    Labels to update of this size reservation.

    Error if any occurred.

    @@ -18267,10 +18104,31 @@

    SizeReservatio

    - - + + - + + + + + + + + + + + + + + + + + + + + + + @@ -18282,50 +18140,192 @@

    SizeReservatio - +

    BGPState

    +

    BGPState represents the state of a BGP session.

    +
    size_reservationmetalstack.api.v2.SizeReservationidstring

    SizeReservation contains the updated reservation.

    Id of the switch.

    partitionstring

    Partition of the switch.

    rackstring

    Rack of the switch.

    connectionsSwitchNicWithMachinerepeated

    Connections associates switch ports with the machines connected to them.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameNumberDescription
    BGP_STATE_UNSPECIFIED0

    BGP_STATE_UNSPECIFIED is not specified.

    BGP_STATE_IDLE1

    BGP_STATE_IDLE is the Idle state of a BGP session.

    BGP_STATE_CONNECT2

    BGP_STATE_CONNECT is the Connect state of a BGP session.

    BGP_STATE_ACTIVE3

    BGP_STATE_ACTIVE is the Active state of a BGP session.

    BGP_STATE_OPEN_SENT4

    BGP_STATE_OPEN_SENT is the OpenSent state of a BGP session.

    BGP_STATE_OPEN_CONFIRM5

    BGP_STATE_OPEN_CONFIRM is the OpenConfirm state of a BGP session.

    BGP_STATE_ESTABLISHED6

    BGP_STATE_ESTABLISHED is the Established state of a BGP session.

    - +

    SwitchOSVendor

    +

    SwitchOSVendor represents a NOS distribution.

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameNumberDescription
    SWITCH_OS_VENDOR_UNSPECIFIED0

    SWITCH_OS_VENDOR_UNSPECIFIED is not specified.

    SWITCH_OS_VENDOR_CUMULUS1

    SWITCH_OS_VENDOR_CUMULUS means this switch is running on Cumulus Linux.

    SWITCH_OS_VENDOR_SONIC2

    SWITCH_OS_VENDOR_SONIC means this switch is running on SONiC NOS.

    -

    SizeReservationService

    -

    SizeReservationService provides size reservation management operations.

    +

    SwitchPortMembership

    +

    SwitchPortMembership indicates whether a switch port is connected to an internal or an external host.

    - + - - - - + + + - - - - + + + - - - - + + + - - - - + + + + + + +
    Method NameRequest TypeResponse TypeDescription
    NameNumberDescription
    CreateSizeReservationServiceCreateRequestSizeReservationServiceCreateResponse

    Creates a new size reservation.

    SWITCH_PORT_MEMBERSHIP_UNSPECIFIED0

    SWITCH_PORT_MEMBERSHIP_UNSPECIFIED is not specified.

    UpdateSizeReservationServiceUpdateRequestSizeReservationServiceUpdateResponse

    Updates a size reservation.

    SWITCH_PORT_MEMBERSHIP_UNMANAGED1

    SWITCH_PORT_MEMBERSHIP_UNMANAGED is a port that isn't connected to any host yet.

    DeleteSizeReservationServiceDeleteRequestSizeReservationServiceDeleteResponse

    Deletes a size reservation.

    SWITCH_PORT_MEMBERSHIP_INTERNAL2

    SWITCH_PORT_MEMBERSHIP_INTERNAL is port that is connected to a host that is registered at the api, e.g. a registered machine.

    ListSizeReservationServiceListRequestSizeReservationServiceListResponse

    Returns the list of size reservations.

    SWITCH_PORT_MEMBERSHIP_EXTERNAL3

    SWITCH_PORT_MEMBERSHIP_EXTERNAL is port that is connected to a host that is not registered at the api. +This value allows connecting an external system to a network managed by us.

    + +

    SwitchPortStatus

    +

    SwitchPortStatus specifies the state of a switch port.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameNumberDescription
    SWITCH_PORT_STATUS_UNSPECIFIED0

    SWITCH_PORT_STATUS_UNSPECIFIED is not specified.

    SWITCH_PORT_STATUS_UP1

    SWITCH_PORT_STATUS_UP means this port is up.

    SWITCH_PORT_STATUS_DOWN2

    SWITCH_PORT_STATUS_DOWN means this port is down.

    SWITCH_PORT_STATUS_UNKNOWN3

    SWITCH_PORT_STATUS_UNKNOWN means the status of this port is unknown.

    + +

    SwitchReplaceMode

    +

    SwitchReplaceMode is used to mark a switch ready for replacement.

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameNumberDescription
    SWITCH_REPLACE_MODE_UNSPECIFIED0

    SWITCH_REPLACE_MODE_UNSPECIFIED is not specified.

    SWITCH_REPLACE_MODE_REPLACE1

    SWITCH_REPLACE_MODE_REPLACE means this switch is waiting to be replaced.

    SWITCH_REPLACE_MODE_OPERATIONAL2

    SWITCH_REPLACE_MODE_OPERATIONAL means this switch is operational and cannot be replaced.

    + - + + +
    diff --git a/go/metalstack/admin/v2/network.pb.go b/go/metalstack/admin/v2/network.pb.go index eafd9476..06247b7c 100644 --- a/go/metalstack/admin/v2/network.pb.go +++ b/go/metalstack/admin/v2/network.pb.go @@ -913,7 +913,7 @@ func (x *NetworkServiceListResponse) GetNetworks() []*v2.Network { type NetworkServiceListExternalMembersResponse struct { state protoimpl.MessageState `protogen:"open.v1"` // Network whose members are queried. - Network string `protobuf:"bytes,1,opt,name=network,proto3" json:"network,omitempty"` + Network *v2.Network `protobuf:"bytes,1,opt,name=network,proto3" json:"network,omitempty"` // Members are the queried external members of the network. Members []*v2.ExternalNetworkMember `protobuf:"bytes,2,rep,name=members,proto3" json:"members,omitempty"` unknownFields protoimpl.UnknownFields @@ -950,11 +950,11 @@ func (*NetworkServiceListExternalMembersResponse) Descriptor() ([]byte, []int) { return file_metalstack_admin_v2_network_proto_rawDescGZIP(), []int{13} } -func (x *NetworkServiceListExternalMembersResponse) GetNetwork() string { +func (x *NetworkServiceListExternalMembersResponse) GetNetwork() *v2.Network { if x != nil { return x.Network } - return "" + return nil } func (x *NetworkServiceListExternalMembersResponse) GetMembers() []*v2.ExternalNetworkMember { @@ -969,8 +969,8 @@ type NetworkServiceAddExternalMembersResponse struct { state protoimpl.MessageState `protogen:"open.v1"` // Network the members were added to. Network *v2.Network `protobuf:"bytes,1,opt,name=network,proto3" json:"network,omitempty"` - // Switch contains the updated switches. - Switches []*v2.Switch `protobuf:"bytes,2,rep,name=switches,proto3" json:"switches,omitempty"` + // Members are the updated external members of the network. + Members []*v2.ExternalNetworkMember `protobuf:"bytes,2,rep,name=members,proto3" json:"members,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -1012,9 +1012,9 @@ func (x *NetworkServiceAddExternalMembersResponse) GetNetwork() *v2.Network { return nil } -func (x *NetworkServiceAddExternalMembersResponse) GetSwitches() []*v2.Switch { +func (x *NetworkServiceAddExternalMembersResponse) GetMembers() []*v2.ExternalNetworkMember { if x != nil { - return x.Switches + return x.Members } return nil } @@ -1024,8 +1024,8 @@ type NetworkServiceRemoveExternalMembersResponse struct { state protoimpl.MessageState `protogen:"open.v1"` // Network the members were removed from. Network *v2.Network `protobuf:"bytes,1,opt,name=network,proto3" json:"network,omitempty"` - // Switch contains the updated switches. - Switches []*v2.Switch `protobuf:"bytes,2,rep,name=switches,proto3" json:"switches,omitempty"` + // Members are the updated external members of the network. + Members []*v2.ExternalNetworkMember `protobuf:"bytes,2,rep,name=members,proto3" json:"members,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -1067,9 +1067,9 @@ func (x *NetworkServiceRemoveExternalMembersResponse) GetNetwork() *v2.Network { return nil } -func (x *NetworkServiceRemoveExternalMembersResponse) GetSwitches() []*v2.Switch { +func (x *NetworkServiceRemoveExternalMembersResponse) GetMembers() []*v2.ExternalNetworkMember { if x != nil { - return x.Switches + return x.Members } return nil } @@ -1078,7 +1078,7 @@ var File_metalstack_admin_v2_network_proto protoreflect.FileDescriptor const file_metalstack_admin_v2_network_proto_rawDesc = "" + "\n" + - "!metalstack/admin/v2/network.proto\x12\x13metalstack.admin.v2\x1a\x1bbuf/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" + + "!metalstack/admin/v2/network.proto\x12\x13metalstack.admin.v2\x1a\x1bbuf/validate/validate.proto\x1a\x1emetalstack/api/v2/common.proto\x1a\x1fmetalstack/api/v2/network.proto\x1a(metalstack/api/v2/predefined_rules.proto\"7\n" + "\x18NetworkServiceGetRequest\x12\x1b\n" + "\x02id\x18\x01 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\"Q\n" + "\x19NetworkServiceGetResponse\x124\n" + @@ -1159,16 +1159,16 @@ const file_metalstack_admin_v2_network_proto_rawDesc = "" + "\x1cNetworkServiceDeleteResponse\x124\n" + "\anetwork\x18\x01 \x01(\v2\x1a.metalstack.api.v2.NetworkR\anetwork\"T\n" + "\x1aNetworkServiceListResponse\x126\n" + - "\bnetworks\x18\x01 \x03(\v2\x1a.metalstack.api.v2.NetworkR\bnetworks\"\x89\x01\n" + - ")NetworkServiceListExternalMembersResponse\x12\x18\n" + - "\anetwork\x18\x01 \x01(\tR\anetwork\x12B\n" + - "\amembers\x18\x02 \x03(\v2(.metalstack.api.v2.ExternalNetworkMemberR\amembers\"\x97\x01\n" + + "\bnetworks\x18\x01 \x03(\v2\x1a.metalstack.api.v2.NetworkR\bnetworks\"\xa5\x01\n" + + ")NetworkServiceListExternalMembersResponse\x124\n" + + "\anetwork\x18\x01 \x01(\v2\x1a.metalstack.api.v2.NetworkR\anetwork\x12B\n" + + "\amembers\x18\x02 \x03(\v2(.metalstack.api.v2.ExternalNetworkMemberR\amembers\"\xa4\x01\n" + "(NetworkServiceAddExternalMembersResponse\x124\n" + - "\anetwork\x18\x01 \x01(\v2\x1a.metalstack.api.v2.NetworkR\anetwork\x125\n" + - "\bswitches\x18\x02 \x03(\v2\x19.metalstack.api.v2.SwitchR\bswitches\"\x9a\x01\n" + + "\anetwork\x18\x01 \x01(\v2\x1a.metalstack.api.v2.NetworkR\anetwork\x12B\n" + + "\amembers\x18\x02 \x03(\v2(.metalstack.api.v2.ExternalNetworkMemberR\amembers\"\xa7\x01\n" + "+NetworkServiceRemoveExternalMembersResponse\x124\n" + - "\anetwork\x18\x01 \x01(\v2\x1a.metalstack.api.v2.NetworkR\anetwork\x125\n" + - "\bswitches\x18\x02 \x03(\v2\x19.metalstack.api.v2.SwitchR\bswitches2\xcf\b\n" + + "\anetwork\x18\x01 \x01(\v2\x1a.metalstack.api.v2.NetworkR\anetwork\x12B\n" + + "\amembers\x18\x02 \x03(\v2(.metalstack.api.v2.ExternalNetworkMemberR\amembers2\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" + @@ -1224,7 +1224,6 @@ var file_metalstack_admin_v2_network_proto_goTypes = []any{ (*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 @@ -1246,32 +1245,33 @@ var file_metalstack_admin_v2_network_proto_depIdxs = []int32{ 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 - 16, // 20: metalstack.admin.v2.NetworkServiceAddExternalMembersResponse.network:type_name -> metalstack.api.v2.Network - 27, // 21: metalstack.admin.v2.NetworkServiceAddExternalMembersResponse.switches:type_name -> metalstack.api.v2.Switch - 16, // 22: metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse.network:type_name -> metalstack.api.v2.Network - 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, // 19: metalstack.admin.v2.NetworkServiceListExternalMembersResponse.network:type_name -> metalstack.api.v2.Network + 26, // 20: metalstack.admin.v2.NetworkServiceListExternalMembersResponse.members:type_name -> metalstack.api.v2.ExternalNetworkMember + 16, // 21: metalstack.admin.v2.NetworkServiceAddExternalMembersResponse.network:type_name -> metalstack.api.v2.Network + 26, // 22: metalstack.admin.v2.NetworkServiceAddExternalMembersResponse.members:type_name -> metalstack.api.v2.ExternalNetworkMember + 16, // 23: metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse.network:type_name -> metalstack.api.v2.Network + 26, // 24: metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse.members:type_name -> metalstack.api.v2.ExternalNetworkMember + 0, // 25: metalstack.admin.v2.NetworkService.Get:input_type -> metalstack.admin.v2.NetworkServiceGetRequest + 2, // 26: metalstack.admin.v2.NetworkService.Create:input_type -> metalstack.admin.v2.NetworkServiceCreateRequest + 3, // 27: metalstack.admin.v2.NetworkService.Update:input_type -> metalstack.admin.v2.NetworkServiceUpdateRequest + 4, // 28: metalstack.admin.v2.NetworkService.Delete:input_type -> metalstack.admin.v2.NetworkServiceDeleteRequest + 5, // 29: metalstack.admin.v2.NetworkService.List:input_type -> metalstack.admin.v2.NetworkServiceListRequest + 6, // 30: metalstack.admin.v2.NetworkService.ListExternalMembers:input_type -> metalstack.admin.v2.NetworkServiceListExternalMembersRequest + 7, // 31: metalstack.admin.v2.NetworkService.AddExternalMembers:input_type -> metalstack.admin.v2.NetworkServiceAddExternalMembersRequest + 8, // 32: metalstack.admin.v2.NetworkService.RemoveExternalMembers:input_type -> metalstack.admin.v2.NetworkServiceRemoveExternalMembersRequest + 1, // 33: metalstack.admin.v2.NetworkService.Get:output_type -> metalstack.admin.v2.NetworkServiceGetResponse + 9, // 34: metalstack.admin.v2.NetworkService.Create:output_type -> metalstack.admin.v2.NetworkServiceCreateResponse + 10, // 35: metalstack.admin.v2.NetworkService.Update:output_type -> metalstack.admin.v2.NetworkServiceUpdateResponse + 11, // 36: metalstack.admin.v2.NetworkService.Delete:output_type -> metalstack.admin.v2.NetworkServiceDeleteResponse + 12, // 37: metalstack.admin.v2.NetworkService.List:output_type -> metalstack.admin.v2.NetworkServiceListResponse + 13, // 38: metalstack.admin.v2.NetworkService.ListExternalMembers:output_type -> metalstack.admin.v2.NetworkServiceListExternalMembersResponse + 14, // 39: metalstack.admin.v2.NetworkService.AddExternalMembers:output_type -> metalstack.admin.v2.NetworkServiceAddExternalMembersResponse + 15, // 40: metalstack.admin.v2.NetworkService.RemoveExternalMembers:output_type -> metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse + 33, // [33:41] is the sub-list for method output_type + 25, // [25:33] is the sub-list for method input_type + 25, // [25:25] is the sub-list for extension type_name + 25, // [25:25] is the sub-list for extension extendee + 0, // [0:25] 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 09fdeea1..5aa9a4e1 100644 --- a/js/metalstack/admin/v2/network_pb.d.ts +++ b/js/metalstack/admin/v2/network_pb.d.ts @@ -1,7 +1,6 @@ import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2"; import type { Labels, UpdateLabels, UpdateMeta } from "../../api/v2/common_pb"; import type { ChildPrefixLength, ExternalNetworkMember, ExternalNetworkMemberQuery, NATType, Network, NetworkAddressFamily, NetworkQuery, NetworkType } from "../../api/v2/network_pb"; -import type { Switch } from "../../api/v2/switch_pb"; import type { Message } from "@bufbuild/protobuf"; /** * Describes the file metalstack/admin/v2/network.proto. @@ -442,9 +441,9 @@ export type NetworkServiceListExternalMembersResponse = Message<"metalstack.admi /** * Network whose members are queried. * - * @generated from field: string network = 1; + * @generated from field: metalstack.api.v2.Network network = 1; */ - network: string; + network?: Network | undefined; /** * Members are the queried external members of the network. * @@ -470,11 +469,11 @@ export type NetworkServiceAddExternalMembersResponse = Message<"metalstack.admin */ network?: Network | undefined; /** - * Switch contains the updated switches. + * Members are the updated external members of the network. * - * @generated from field: repeated metalstack.api.v2.Switch switches = 2; + * @generated from field: repeated metalstack.api.v2.ExternalNetworkMember members = 2; */ - switches: Switch[]; + members: ExternalNetworkMember[]; }; /** * Describes the message metalstack.admin.v2.NetworkServiceAddExternalMembersResponse. @@ -494,11 +493,11 @@ export type NetworkServiceRemoveExternalMembersResponse = Message<"metalstack.ad */ network?: Network | undefined; /** - * Switch contains the updated switches. + * Members are the updated external members of the network. * - * @generated from field: repeated metalstack.api.v2.Switch switches = 2; + * @generated from field: repeated metalstack.api.v2.ExternalNetworkMember members = 2; */ - switches: Switch[]; + members: ExternalNetworkMember[]; }; /** * 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 c23310bd..76d2fb75 100644 --- a/js/metalstack/admin/v2/network_pb.js +++ b/js/metalstack/admin/v2/network_pb.js @@ -6,11 +6,10 @@ import { file_buf_validate_validate } from "../../../buf/validate/validate_pb"; import { file_metalstack_api_v2_common } from "../../api/v2/common_pb"; import { file_metalstack_api_v2_network } from "../../api/v2/network_pb"; import { file_metalstack_api_v2_predefined_rules } from "../../api/v2/predefined_rules_pb"; -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("CiFtZXRhbHN0YWNrL2FkbWluL3YyL25ldHdvcmsucHJvdG8SE21ldGFsc3RhY2suYWRtaW4udjIiMwoYTmV0d29ya1NlcnZpY2VHZXRSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECASJIChlOZXR3b3JrU2VydmljZUdldFJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrItAHChtOZXR3b3JrU2VydmljZUNyZWF0ZVJlcXVlc3QSHAoCaWQYASABKAlCC7pICHIGwLOusQIBSACIAQESHgoEbmFtZRgCIAEoCUILukgIcgbAs66xAgFIAYgBARIlCgtkZXNjcmlwdGlvbhgDIAEoCUILukgIcgbIs66xAgFIAogBARIjCglwYXJ0aXRpb24YBCABKAlCC7pICHIG0LOusQIBSAOIAQESHgoHcHJvamVjdBgFIAEoCUIIukgFcgOwAQFIBIgBARI2CgR0eXBlGAYgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1R5cGVCCLpIBYIBAhABEi4KBmxhYmVscxgHIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVsc0gFiAEBEh4KCHByZWZpeGVzGAggAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCSADKAlCDLpICZIBBriks7ECARJJChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCiABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aBJFChdtaW5fY2hpbGRfcHJlZml4X2xlbmd0aBgLIAEoCzIkLm1ldGFsc3RhY2suYXBpLnYyLkNoaWxkUHJlZml4TGVuZ3RoEjsKCG5hdF90eXBlGAwgASgOMhoubWV0YWxzdGFjay5hcGkudjIuTkFUVHlwZUIIukgFggECEAFIBogBARIQCgN2cmYYDSABKA1IB4gBARIoCg5wYXJlbnRfbmV0d29yaxgOIAEoCUILukgIcgbAs66xAgFICIgBARIyChxhZGRpdGlvbmFsX2Fubm91bmNhYmxlX2NpZHJzGA8gAygJQgy6SAmSAQa4pLOxAgESOQoGbGVuZ3RoGBAgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhICYgBARJOCg5hZGRyZXNzX2ZhbWlseRgRIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgKiAEBQgUKA19pZEIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CDAoKX3BhcnRpdGlvbkIKCghfcHJvamVjdEIJCgdfbGFiZWxzQgsKCV9uYXRfdHlwZUIGCgRfdnJmQhEKD19wYXJlbnRfbmV0d29ya0IJCgdfbGVuZ3RoQhEKD19hZGRyZXNzX2ZhbWlseSLEBQobTmV0d29ya1NlcnZpY2VVcGRhdGVSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECARI6Cgt1cGRhdGVfbWV0YRgCIAEoCzIdLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZU1ldGFCBrpIA8gBARIeCgRuYW1lGAMgASgJQgu6SAhyBsCzrrECAUgAiAEBEiUKC2Rlc2NyaXB0aW9uGAQgASgJQgu6SAhyBsizrrECAUgBiAEBEjQKBmxhYmVscxgFIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZUxhYmVsc0gCiAEBEh4KCHByZWZpeGVzGAYgAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYByADKAlCDLpICZIBBriks7ECARJOChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCCABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aEgDiAEBEkoKF21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoGAkgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhIBIgBARI7CghuYXRfdHlwZRgKIAEoDjIaLm1ldGFsc3RhY2suYXBpLnYyLk5BVFR5cGVCCLpIBYIBAhABSAWIAQESMgocYWRkaXRpb25hbF9hbm5vdW5jYWJsZV9jaWRycxgLIAMoCUIMukgJkgEGuKSzsQIBEg0KBWZvcmNlGAwgASgIQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIJCgdfbGFiZWxzQh4KHF9kZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGhCGgoYX21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoQgsKCV9uYXRfdHlwZSI2ChtOZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBIksKGU5ldHdvcmtTZXJ2aWNlTGlzdFJlcXVlc3QSLgoFcXVlcnkYASABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrUXVlcnkihgEKKE5ldHdvcmtTZXJ2aWNlTGlzdEV4dGVybmFsTWVtYmVyc1JlcXVlc3QSHAoHbmV0d29yaxgBIAEoCUILukgIcgbAs66xAgESPAoFcXVlcnkYAiABKAsyLS5tZXRhbHN0YWNrLmFwaS52Mi5FeHRlcm5hbE5ldHdvcmtNZW1iZXJRdWVyeSKCAQonTmV0d29ya1NlcnZpY2VBZGRFeHRlcm5hbE1lbWJlcnNSZXF1ZXN0EhwKB25ldHdvcmsYASABKAlCC7pICHIGwLOusQIBEhkKBHJhY2sYAiABKAlCC7pICHIGwLOusQIBEh4KBXBvcnRzGAMgAygJQg+6SAySAQnQpLOxAgEQgBAihQEKKk5ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzUmVxdWVzdBIcCgduZXR3b3JrGAEgASgJQgu6SAhyBsCzrrECARIZCgRyYWNrGAIgASgJQgu6SAhyBsCzrrECARIeCgVwb3J0cxgDIAMoCUIPukgMkgEJ0KSzsQIBEIAQIksKHE5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsiSwocTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJLChxOZXR3b3JrU2VydmljZURlbGV0ZVJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrIkoKGk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJ3CilOZXR3b3JrU2VydmljZUxpc3RFeHRlcm5hbE1lbWJlcnNSZXNwb25zZRIPCgduZXR3b3JrGAEgASgJEjkKB21lbWJlcnMYAiADKAsyKC5tZXRhbHN0YWNrLmFwaS52Mi5FeHRlcm5hbE5ldHdvcmtNZW1iZXIihAEKKE5ldHdvcmtTZXJ2aWNlQWRkRXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsSKwoIc3dpdGNoZXMYAiADKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2gihwEKK05ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsSKwoIc3dpdGNoZXMYAiADKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2gyzwgKDk5ldHdvcmtTZXJ2aWNlEnAKA0dldBItLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VHZXRSZXF1ZXN0Gi4ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUdldFJlc3BvbnNlIgrS8xgCAQLg8xgCEngKBkNyZWF0ZRIwLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VDcmVhdGVSZXF1ZXN0GjEubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUNyZWF0ZVJlc3BvbnNlIgnS8xgBAeDzGAESeAoGVXBkYXRlEjAubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZVVwZGF0ZVJlcXVlc3QaMS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlVXBkYXRlUmVzcG9uc2UiCdLzGAEB4PMYARJ4CgZEZWxldGUSMC5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVxdWVzdBoxLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VEZWxldGVSZXNwb25zZSIJ0vMYAQHg8xgBEnMKBExpc3QSLi5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdFJlcXVlc3QaLy5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlIgrS8xgCAQLg8xgCEqABChNMaXN0RXh0ZXJuYWxNZW1iZXJzEj0ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUxpc3RFeHRlcm5hbE1lbWJlcnNSZXF1ZXN0Gj4ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUxpc3RFeHRlcm5hbE1lbWJlcnNSZXNwb25zZSIK0vMYAgEC4PMYAhKcAQoSQWRkRXh0ZXJuYWxNZW1iZXJzEjwubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUFkZEV4dGVybmFsTWVtYmVyc1JlcXVlc3QaPS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlQWRkRXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2UiCdLzGAEB4PMYARKlAQoVUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzEj8ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZVJlbW92ZUV4dGVybmFsTWVtYmVyc1JlcXVlc3QaQC5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2UiCdLzGAEB4PMYAULQAQoXY29tLm1ldGFsc3RhY2suYWRtaW4udjJCDE5ldHdvcmtQcm90b1ABWjlnaXRodWIuY29tL21ldGFsLXN0YWNrL2FwaS9nby9tZXRhbHN0YWNrL2FkbWluL3YyO2FkbWludjKiAgNNQViqAhNNZXRhbHN0YWNrLkFkbWluLlYyygITTWV0YWxzdGFja1xBZG1pblxWMuICH01ldGFsc3RhY2tcQWRtaW5cVjJcR1BCTWV0YWRhdGHqAhVNZXRhbHN0YWNrOjpBZG1pbjo6VjJiBnByb3RvMw", [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+6SAySAQnQpLOxAgEQgBAihQEKKk5ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzUmVxdWVzdBIcCgduZXR3b3JrGAEgASgJQgu6SAhyBsCzrrECARIZCgRyYWNrGAIgASgJQgu6SAhyBsCzrrECARIeCgVwb3J0cxgDIAMoCUIPukgMkgEJ0KSzsQIBEIAQIksKHE5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsiSwocTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJLChxOZXR3b3JrU2VydmljZURlbGV0ZVJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrIkoKGk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayKTAQopTmV0d29ya1NlcnZpY2VMaXN0RXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsSOQoHbWVtYmVycxgCIAMoCzIoLm1ldGFsc3RhY2suYXBpLnYyLkV4dGVybmFsTmV0d29ya01lbWJlciKSAQooTmV0d29ya1NlcnZpY2VBZGRFeHRlcm5hbE1lbWJlcnNSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yaxI5CgdtZW1iZXJzGAIgAygLMigubWV0YWxzdGFjay5hcGkudjIuRXh0ZXJuYWxOZXR3b3JrTWVtYmVyIpUBCitOZXR3b3JrU2VydmljZVJlbW92ZUV4dGVybmFsTWVtYmVyc1Jlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrEjkKB21lbWJlcnMYAiADKAsyKC5tZXRhbHN0YWNrLmFwaS52Mi5FeHRlcm5hbE5ldHdvcmtNZW1iZXIyzwgKDk5ldHdvcmtTZXJ2aWNlEnAKA0dldBItLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VHZXRSZXF1ZXN0Gi4ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUdldFJlc3BvbnNlIgrS8xgCAQLg8xgCEngKBkNyZWF0ZRIwLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VDcmVhdGVSZXF1ZXN0GjEubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUNyZWF0ZVJlc3BvbnNlIgnS8xgBAeDzGAESeAoGVXBkYXRlEjAubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZVVwZGF0ZVJlcXVlc3QaMS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlVXBkYXRlUmVzcG9uc2UiCdLzGAEB4PMYARJ4CgZEZWxldGUSMC5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVxdWVzdBoxLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VEZWxldGVSZXNwb25zZSIJ0vMYAQHg8xgBEnMKBExpc3QSLi5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdFJlcXVlc3QaLy5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlIgrS8xgCAQLg8xgCEqABChNMaXN0RXh0ZXJuYWxNZW1iZXJzEj0ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUxpc3RFeHRlcm5hbE1lbWJlcnNSZXF1ZXN0Gj4ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUxpc3RFeHRlcm5hbE1lbWJlcnNSZXNwb25zZSIK0vMYAgEC4PMYAhKcAQoSQWRkRXh0ZXJuYWxNZW1iZXJzEjwubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUFkZEV4dGVybmFsTWVtYmVyc1JlcXVlc3QaPS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlQWRkRXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2UiCdLzGAEB4PMYARKlAQoVUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzEj8ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZVJlbW92ZUV4dGVybmFsTWVtYmVyc1JlcXVlc3QaQC5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2UiCdLzGAEB4PMYAULQAQoXY29tLm1ldGFsc3RhY2suYWRtaW4udjJCDE5ldHdvcmtQcm90b1ABWjlnaXRodWIuY29tL21ldGFsLXN0YWNrL2FwaS9nby9tZXRhbHN0YWNrL2FkbWluL3YyO2FkbWludjKiAgNNQViqAhNNZXRhbHN0YWNrLkFkbWluLlYyygITTWV0YWxzdGFja1xBZG1pblxWMuICH01ldGFsc3RhY2tcQWRtaW5cVjJcR1BCTWV0YWRhdGHqAhVNZXRhbHN0YWNrOjpBZG1pbjo6VjJiBnByb3RvMw", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_network, file_metalstack_api_v2_predefined_rules]); /** * 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 53b816ed..e7db10d7 100644 --- a/js/metalstack/admin/v2/network_pb.ts +++ b/js/metalstack/admin/v2/network_pb.ts @@ -10,15 +10,13 @@ import { file_metalstack_api_v2_common } from "../../api/v2/common_pb"; import type { ChildPrefixLength, ExternalNetworkMember, ExternalNetworkMemberQuery, NATType, Network, NetworkAddressFamily, NetworkQuery, NetworkType } from "../../api/v2/network_pb"; import { file_metalstack_api_v2_network } from "../../api/v2/network_pb"; import { file_metalstack_api_v2_predefined_rules } from "../../api/v2/predefined_rules_pb"; -import type { Switch } from "../../api/v2/switch_pb"; -import { file_metalstack_api_v2_switch } from "../../api/v2/switch_pb"; import type { Message } from "@bufbuild/protobuf"; /** * Describes the file metalstack/admin/v2/network.proto. */ export const file_metalstack_admin_v2_network: GenFile = /*@__PURE__*/ - fileDesc("CiFtZXRhbHN0YWNrL2FkbWluL3YyL25ldHdvcmsucHJvdG8SE21ldGFsc3RhY2suYWRtaW4udjIiMwoYTmV0d29ya1NlcnZpY2VHZXRSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECASJIChlOZXR3b3JrU2VydmljZUdldFJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrItAHChtOZXR3b3JrU2VydmljZUNyZWF0ZVJlcXVlc3QSHAoCaWQYASABKAlCC7pICHIGwLOusQIBSACIAQESHgoEbmFtZRgCIAEoCUILukgIcgbAs66xAgFIAYgBARIlCgtkZXNjcmlwdGlvbhgDIAEoCUILukgIcgbIs66xAgFIAogBARIjCglwYXJ0aXRpb24YBCABKAlCC7pICHIG0LOusQIBSAOIAQESHgoHcHJvamVjdBgFIAEoCUIIukgFcgOwAQFIBIgBARI2CgR0eXBlGAYgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1R5cGVCCLpIBYIBAhABEi4KBmxhYmVscxgHIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVsc0gFiAEBEh4KCHByZWZpeGVzGAggAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCSADKAlCDLpICZIBBriks7ECARJJChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCiABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aBJFChdtaW5fY2hpbGRfcHJlZml4X2xlbmd0aBgLIAEoCzIkLm1ldGFsc3RhY2suYXBpLnYyLkNoaWxkUHJlZml4TGVuZ3RoEjsKCG5hdF90eXBlGAwgASgOMhoubWV0YWxzdGFjay5hcGkudjIuTkFUVHlwZUIIukgFggECEAFIBogBARIQCgN2cmYYDSABKA1IB4gBARIoCg5wYXJlbnRfbmV0d29yaxgOIAEoCUILukgIcgbAs66xAgFICIgBARIyChxhZGRpdGlvbmFsX2Fubm91bmNhYmxlX2NpZHJzGA8gAygJQgy6SAmSAQa4pLOxAgESOQoGbGVuZ3RoGBAgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhICYgBARJOCg5hZGRyZXNzX2ZhbWlseRgRIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgKiAEBQgUKA19pZEIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CDAoKX3BhcnRpdGlvbkIKCghfcHJvamVjdEIJCgdfbGFiZWxzQgsKCV9uYXRfdHlwZUIGCgRfdnJmQhEKD19wYXJlbnRfbmV0d29ya0IJCgdfbGVuZ3RoQhEKD19hZGRyZXNzX2ZhbWlseSLEBQobTmV0d29ya1NlcnZpY2VVcGRhdGVSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECARI6Cgt1cGRhdGVfbWV0YRgCIAEoCzIdLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZU1ldGFCBrpIA8gBARIeCgRuYW1lGAMgASgJQgu6SAhyBsCzrrECAUgAiAEBEiUKC2Rlc2NyaXB0aW9uGAQgASgJQgu6SAhyBsizrrECAUgBiAEBEjQKBmxhYmVscxgFIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZUxhYmVsc0gCiAEBEh4KCHByZWZpeGVzGAYgAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYByADKAlCDLpICZIBBriks7ECARJOChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCCABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aEgDiAEBEkoKF21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoGAkgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhIBIgBARI7CghuYXRfdHlwZRgKIAEoDjIaLm1ldGFsc3RhY2suYXBpLnYyLk5BVFR5cGVCCLpIBYIBAhABSAWIAQESMgocYWRkaXRpb25hbF9hbm5vdW5jYWJsZV9jaWRycxgLIAMoCUIMukgJkgEGuKSzsQIBEg0KBWZvcmNlGAwgASgIQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIJCgdfbGFiZWxzQh4KHF9kZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGhCGgoYX21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoQgsKCV9uYXRfdHlwZSI2ChtOZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBIksKGU5ldHdvcmtTZXJ2aWNlTGlzdFJlcXVlc3QSLgoFcXVlcnkYASABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrUXVlcnkihgEKKE5ldHdvcmtTZXJ2aWNlTGlzdEV4dGVybmFsTWVtYmVyc1JlcXVlc3QSHAoHbmV0d29yaxgBIAEoCUILukgIcgbAs66xAgESPAoFcXVlcnkYAiABKAsyLS5tZXRhbHN0YWNrLmFwaS52Mi5FeHRlcm5hbE5ldHdvcmtNZW1iZXJRdWVyeSKCAQonTmV0d29ya1NlcnZpY2VBZGRFeHRlcm5hbE1lbWJlcnNSZXF1ZXN0EhwKB25ldHdvcmsYASABKAlCC7pICHIGwLOusQIBEhkKBHJhY2sYAiABKAlCC7pICHIGwLOusQIBEh4KBXBvcnRzGAMgAygJQg+6SAySAQnQpLOxAgEQgBAihQEKKk5ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzUmVxdWVzdBIcCgduZXR3b3JrGAEgASgJQgu6SAhyBsCzrrECARIZCgRyYWNrGAIgASgJQgu6SAhyBsCzrrECARIeCgVwb3J0cxgDIAMoCUIPukgMkgEJ0KSzsQIBEIAQIksKHE5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsiSwocTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJLChxOZXR3b3JrU2VydmljZURlbGV0ZVJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrIkoKGk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJ3CilOZXR3b3JrU2VydmljZUxpc3RFeHRlcm5hbE1lbWJlcnNSZXNwb25zZRIPCgduZXR3b3JrGAEgASgJEjkKB21lbWJlcnMYAiADKAsyKC5tZXRhbHN0YWNrLmFwaS52Mi5FeHRlcm5hbE5ldHdvcmtNZW1iZXIihAEKKE5ldHdvcmtTZXJ2aWNlQWRkRXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsSKwoIc3dpdGNoZXMYAiADKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2gihwEKK05ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsSKwoIc3dpdGNoZXMYAiADKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2gyzwgKDk5ldHdvcmtTZXJ2aWNlEnAKA0dldBItLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VHZXRSZXF1ZXN0Gi4ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUdldFJlc3BvbnNlIgrS8xgCAQLg8xgCEngKBkNyZWF0ZRIwLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VDcmVhdGVSZXF1ZXN0GjEubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUNyZWF0ZVJlc3BvbnNlIgnS8xgBAeDzGAESeAoGVXBkYXRlEjAubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZVVwZGF0ZVJlcXVlc3QaMS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlVXBkYXRlUmVzcG9uc2UiCdLzGAEB4PMYARJ4CgZEZWxldGUSMC5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVxdWVzdBoxLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VEZWxldGVSZXNwb25zZSIJ0vMYAQHg8xgBEnMKBExpc3QSLi5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdFJlcXVlc3QaLy5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlIgrS8xgCAQLg8xgCEqABChNMaXN0RXh0ZXJuYWxNZW1iZXJzEj0ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUxpc3RFeHRlcm5hbE1lbWJlcnNSZXF1ZXN0Gj4ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUxpc3RFeHRlcm5hbE1lbWJlcnNSZXNwb25zZSIK0vMYAgEC4PMYAhKcAQoSQWRkRXh0ZXJuYWxNZW1iZXJzEjwubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUFkZEV4dGVybmFsTWVtYmVyc1JlcXVlc3QaPS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlQWRkRXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2UiCdLzGAEB4PMYARKlAQoVUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzEj8ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZVJlbW92ZUV4dGVybmFsTWVtYmVyc1JlcXVlc3QaQC5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2UiCdLzGAEB4PMYAULQAQoXY29tLm1ldGFsc3RhY2suYWRtaW4udjJCDE5ldHdvcmtQcm90b1ABWjlnaXRodWIuY29tL21ldGFsLXN0YWNrL2FwaS9nby9tZXRhbHN0YWNrL2FkbWluL3YyO2FkbWludjKiAgNNQViqAhNNZXRhbHN0YWNrLkFkbWluLlYyygITTWV0YWxzdGFja1xBZG1pblxWMuICH01ldGFsc3RhY2tcQWRtaW5cVjJcR1BCTWV0YWRhdGHqAhVNZXRhbHN0YWNrOjpBZG1pbjo6VjJiBnByb3RvMw", [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+6SAySAQnQpLOxAgEQgBAihQEKKk5ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzUmVxdWVzdBIcCgduZXR3b3JrGAEgASgJQgu6SAhyBsCzrrECARIZCgRyYWNrGAIgASgJQgu6SAhyBsCzrrECARIeCgVwb3J0cxgDIAMoCUIPukgMkgEJ0KSzsQIBEIAQIksKHE5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsiSwocTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJLChxOZXR3b3JrU2VydmljZURlbGV0ZVJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrIkoKGk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayKTAQopTmV0d29ya1NlcnZpY2VMaXN0RXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsSOQoHbWVtYmVycxgCIAMoCzIoLm1ldGFsc3RhY2suYXBpLnYyLkV4dGVybmFsTmV0d29ya01lbWJlciKSAQooTmV0d29ya1NlcnZpY2VBZGRFeHRlcm5hbE1lbWJlcnNSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yaxI5CgdtZW1iZXJzGAIgAygLMigubWV0YWxzdGFjay5hcGkudjIuRXh0ZXJuYWxOZXR3b3JrTWVtYmVyIpUBCitOZXR3b3JrU2VydmljZVJlbW92ZUV4dGVybmFsTWVtYmVyc1Jlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrEjkKB21lbWJlcnMYAiADKAsyKC5tZXRhbHN0YWNrLmFwaS52Mi5FeHRlcm5hbE5ldHdvcmtNZW1iZXIyzwgKDk5ldHdvcmtTZXJ2aWNlEnAKA0dldBItLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VHZXRSZXF1ZXN0Gi4ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUdldFJlc3BvbnNlIgrS8xgCAQLg8xgCEngKBkNyZWF0ZRIwLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VDcmVhdGVSZXF1ZXN0GjEubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUNyZWF0ZVJlc3BvbnNlIgnS8xgBAeDzGAESeAoGVXBkYXRlEjAubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZVVwZGF0ZVJlcXVlc3QaMS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlVXBkYXRlUmVzcG9uc2UiCdLzGAEB4PMYARJ4CgZEZWxldGUSMC5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVxdWVzdBoxLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VEZWxldGVSZXNwb25zZSIJ0vMYAQHg8xgBEnMKBExpc3QSLi5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdFJlcXVlc3QaLy5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlIgrS8xgCAQLg8xgCEqABChNMaXN0RXh0ZXJuYWxNZW1iZXJzEj0ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUxpc3RFeHRlcm5hbE1lbWJlcnNSZXF1ZXN0Gj4ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUxpc3RFeHRlcm5hbE1lbWJlcnNSZXNwb25zZSIK0vMYAgEC4PMYAhKcAQoSQWRkRXh0ZXJuYWxNZW1iZXJzEjwubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUFkZEV4dGVybmFsTWVtYmVyc1JlcXVlc3QaPS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlQWRkRXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2UiCdLzGAEB4PMYARKlAQoVUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzEj8ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZVJlbW92ZUV4dGVybmFsTWVtYmVyc1JlcXVlc3QaQC5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2UiCdLzGAEB4PMYAULQAQoXY29tLm1ldGFsc3RhY2suYWRtaW4udjJCDE5ldHdvcmtQcm90b1ABWjlnaXRodWIuY29tL21ldGFsLXN0YWNrL2FwaS9nby9tZXRhbHN0YWNrL2FkbWluL3YyO2FkbWludjKiAgNNQViqAhNNZXRhbHN0YWNrLkFkbWluLlYyygITTWV0YWxzdGFja1xBZG1pblxWMuICH01ldGFsc3RhY2tcQWRtaW5cVjJcR1BCTWV0YWRhdGHqAhVNZXRhbHN0YWNrOjpBZG1pbjo6VjJiBnByb3RvMw", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_network, file_metalstack_api_v2_predefined_rules]); /** * NetworkServiceGetRequest is the request payload for getting a network. @@ -526,9 +524,9 @@ export type NetworkServiceListExternalMembersResponse = Message<"metalstack.admi /** * Network whose members are queried. * - * @generated from field: string network = 1; + * @generated from field: metalstack.api.v2.Network network = 1; */ - network: string; + network?: Network | undefined; /** * Members are the queried external members of the network. @@ -559,11 +557,11 @@ export type NetworkServiceAddExternalMembersResponse = Message<"metalstack.admin network?: Network | undefined; /** - * Switch contains the updated switches. + * Members are the updated external members of the network. * - * @generated from field: repeated metalstack.api.v2.Switch switches = 2; + * @generated from field: repeated metalstack.api.v2.ExternalNetworkMember members = 2; */ - switches: Switch[]; + members: ExternalNetworkMember[]; }; /** @@ -587,11 +585,11 @@ export type NetworkServiceRemoveExternalMembersResponse = Message<"metalstack.ad network?: Network | undefined; /** - * Switch contains the updated switches. + * Members are the updated external members of the network. * - * @generated from field: repeated metalstack.api.v2.Switch switches = 2; + * @generated from field: repeated metalstack.api.v2.ExternalNetworkMember members = 2; */ - switches: Switch[]; + members: ExternalNetworkMember[]; }; /** diff --git a/js/package.json b/js/package.json index 54091740..14e3bff7 100644 --- a/js/package.json +++ b/js/package.json @@ -20,5 +20,5 @@ "files": [ "./*" ], - "version": "0.0.0" -} \ No newline at end of file + "version": "explicit-external-member-field" +} 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: diff --git a/proto/metalstack/admin/v2/network.proto b/proto/metalstack/admin/v2/network.proto index 7f3b58af..74731c6d 100644 --- a/proto/metalstack/admin/v2/network.proto +++ b/proto/metalstack/admin/v2/network.proto @@ -6,7 +6,6 @@ import "buf/validate/validate.proto"; import "metalstack/api/v2/common.proto"; import "metalstack/api/v2/network.proto"; import "metalstack/api/v2/predefined_rules.proto"; -import "metalstack/api/v2/switch.proto"; // NetworkService provides network management operations. service NetworkService { @@ -207,7 +206,7 @@ message NetworkServiceListResponse { // NetworkServiceListExternalMembersResponse is the response payload for listing external members of a network. message NetworkServiceListExternalMembersResponse { // Network whose members are queried. - string network = 1; + metalstack.api.v2.Network network = 1; // Members are the queried external members of the network. repeated metalstack.api.v2.ExternalNetworkMember members = 2; } @@ -216,14 +215,14 @@ message NetworkServiceListExternalMembersResponse { message NetworkServiceAddExternalMembersResponse { // Network the members were added to. metalstack.api.v2.Network network = 1; - // Switch contains the updated switches. - repeated metalstack.api.v2.Switch switches = 2; + // Members are the updated external members of the network. + repeated metalstack.api.v2.ExternalNetworkMember members = 2; } // NetworkServiceRemoveExternalMemberResponse is the response payload for removing an external member from a network. message NetworkServiceRemoveExternalMembersResponse { // Network the members were removed from. metalstack.api.v2.Network network = 1; - // Switch contains the updated switches. - repeated metalstack.api.v2.Switch switches = 2; + // Members are the updated external members of the network. + repeated metalstack.api.v2.ExternalNetworkMember members = 2; } diff --git a/python/metalstack/admin/v2/network_pb2.py b/python/metalstack/admin/v2/network_pb2.py index 26ce531d..c2c0fdae 100644 --- a/python/metalstack/admin/v2/network_pb2.py +++ b/python/metalstack/admin/v2/network_pb2.py @@ -26,10 +26,9 @@ from metalstack.api.v2 import common_pb2 as metalstack_dot_api_dot_v2_dot_common__pb2 from metalstack.api.v2 import network_pb2 as metalstack_dot_api_dot_v2_dot_network__pb2 from metalstack.api.v2 import predefined_rules_pb2 as metalstack_dot_api_dot_v2_dot_predefined__rules__pb2 -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\"\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\"\x89\x01\n)NetworkServiceListExternalMembersResponse\x12\x18\n\x07network\x18\x01 \x01(\tR\x07network\x12\x42\n\x07members\x18\x02 \x03(\x0b\x32(.metalstack.api.v2.ExternalNetworkMemberR\x07members\"\x97\x01\n(NetworkServiceAddExternalMembersResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\x12\x35\n\x08switches\x18\x02 \x03(\x0b\x32\x19.metalstack.api.v2.SwitchR\x08switches\"\x9a\x01\n+NetworkServiceRemoveExternalMembersResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\x12\x35\n\x08switches\x18\x02 \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\"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\"\xa5\x01\n)NetworkServiceListExternalMembersResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\x12\x42\n\x07members\x18\x02 \x03(\x0b\x32(.metalstack.api.v2.ExternalNetworkMemberR\x07members\"\xa4\x01\n(NetworkServiceAddExternalMembersResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\x12\x42\n\x07members\x18\x02 \x03(\x0b\x32(.metalstack.api.v2.ExternalNetworkMemberR\x07members\"\xa7\x01\n+NetworkServiceRemoveExternalMembersResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\x12\x42\n\x07members\x18\x02 \x03(\x0b\x32(.metalstack.api.v2.ExternalNetworkMemberR\x07members2\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) @@ -111,38 +110,38 @@ _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 - _globals['_NETWORKSERVICEGETRESPONSE']._serialized_end=364 - _globals['_NETWORKSERVICECREATEREQUEST']._serialized_start=367 - _globals['_NETWORKSERVICECREATEREQUEST']._serialized_end=1559 - _globals['_NETWORKSERVICEUPDATEREQUEST']._serialized_start=1562 - _globals['_NETWORKSERVICEUPDATEREQUEST']._serialized_end=2436 - _globals['_NETWORKSERVICEDELETEREQUEST']._serialized_start=2438 - _globals['_NETWORKSERVICEDELETEREQUEST']._serialized_end=2496 - _globals['_NETWORKSERVICELISTREQUEST']._serialized_start=2498 - _globals['_NETWORKSERVICELISTREQUEST']._serialized_end=2580 - _globals['_NETWORKSERVICELISTEXTERNALMEMBERSREQUEST']._serialized_start=2583 - _globals['_NETWORKSERVICELISTEXTERNALMEMBERSREQUEST']._serialized_end=2733 - _globals['_NETWORKSERVICEADDEXTERNALMEMBERSREQUEST']._serialized_start=2736 - _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=3393 - _globals['_NETWORKSERVICELISTEXTERNALMEMBERSRESPONSE']._serialized_end=3530 - _globals['_NETWORKSERVICEADDEXTERNALMEMBERSRESPONSE']._serialized_start=3533 - _globals['_NETWORKSERVICEADDEXTERNALMEMBERSRESPONSE']._serialized_end=3684 - _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSRESPONSE']._serialized_start=3687 - _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSRESPONSE']._serialized_end=3841 - _globals['_NETWORKSERVICE']._serialized_start=3844 - _globals['_NETWORKSERVICE']._serialized_end=4947 + _globals['_NETWORKSERVICEGETREQUEST']._serialized_start=194 + _globals['_NETWORKSERVICEGETREQUEST']._serialized_end=249 + _globals['_NETWORKSERVICEGETRESPONSE']._serialized_start=251 + _globals['_NETWORKSERVICEGETRESPONSE']._serialized_end=332 + _globals['_NETWORKSERVICECREATEREQUEST']._serialized_start=335 + _globals['_NETWORKSERVICECREATEREQUEST']._serialized_end=1527 + _globals['_NETWORKSERVICEUPDATEREQUEST']._serialized_start=1530 + _globals['_NETWORKSERVICEUPDATEREQUEST']._serialized_end=2404 + _globals['_NETWORKSERVICEDELETEREQUEST']._serialized_start=2406 + _globals['_NETWORKSERVICEDELETEREQUEST']._serialized_end=2464 + _globals['_NETWORKSERVICELISTREQUEST']._serialized_start=2466 + _globals['_NETWORKSERVICELISTREQUEST']._serialized_end=2548 + _globals['_NETWORKSERVICELISTEXTERNALMEMBERSREQUEST']._serialized_start=2551 + _globals['_NETWORKSERVICELISTEXTERNALMEMBERSREQUEST']._serialized_end=2701 + _globals['_NETWORKSERVICEADDEXTERNALMEMBERSREQUEST']._serialized_start=2704 + _globals['_NETWORKSERVICEADDEXTERNALMEMBERSREQUEST']._serialized_end=2856 + _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSREQUEST']._serialized_start=2859 + _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSREQUEST']._serialized_end=3014 + _globals['_NETWORKSERVICECREATERESPONSE']._serialized_start=3016 + _globals['_NETWORKSERVICECREATERESPONSE']._serialized_end=3100 + _globals['_NETWORKSERVICEUPDATERESPONSE']._serialized_start=3102 + _globals['_NETWORKSERVICEUPDATERESPONSE']._serialized_end=3186 + _globals['_NETWORKSERVICEDELETERESPONSE']._serialized_start=3188 + _globals['_NETWORKSERVICEDELETERESPONSE']._serialized_end=3272 + _globals['_NETWORKSERVICELISTRESPONSE']._serialized_start=3274 + _globals['_NETWORKSERVICELISTRESPONSE']._serialized_end=3358 + _globals['_NETWORKSERVICELISTEXTERNALMEMBERSRESPONSE']._serialized_start=3361 + _globals['_NETWORKSERVICELISTEXTERNALMEMBERSRESPONSE']._serialized_end=3526 + _globals['_NETWORKSERVICEADDEXTERNALMEMBERSRESPONSE']._serialized_start=3529 + _globals['_NETWORKSERVICEADDEXTERNALMEMBERSRESPONSE']._serialized_end=3693 + _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSRESPONSE']._serialized_start=3696 + _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSRESPONSE']._serialized_end=3863 + _globals['_NETWORKSERVICE']._serialized_start=3866 + _globals['_NETWORKSERVICE']._serialized_end=4969 # @@protoc_insertion_point(module_scope) diff --git a/python/metalstack/admin/v2/network_pb2.pyi b/python/metalstack/admin/v2/network_pb2.pyi index 0dc93b49..b9a3e91b 100644 --- a/python/metalstack/admin/v2/network_pb2.pyi +++ b/python/metalstack/admin/v2/network_pb2.pyi @@ -2,7 +2,6 @@ from buf.validate import validate_pb2 as _validate_pb2 from metalstack.api.v2 import common_pb2 as _common_pb2 from metalstack.api.v2 import network_pb2 as _network_pb2 from metalstack.api.v2 import predefined_rules_pb2 as _predefined_rules_pb2 -from metalstack.api.v2 import switch_pb2 as _switch_pb2 from google.protobuf.internal import containers as _containers from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message @@ -157,22 +156,22 @@ class NetworkServiceListExternalMembersResponse(_message.Message): __slots__ = ("network", "members") NETWORK_FIELD_NUMBER: _ClassVar[int] MEMBERS_FIELD_NUMBER: _ClassVar[int] - network: str + network: _network_pb2.Network members: _containers.RepeatedCompositeFieldContainer[_network_pb2.ExternalNetworkMember] - def __init__(self, network: _Optional[str] = ..., members: _Optional[_Iterable[_Union[_network_pb2.ExternalNetworkMember, _Mapping]]] = ...) -> None: ... + def __init__(self, network: _Optional[_Union[_network_pb2.Network, _Mapping]] = ..., members: _Optional[_Iterable[_Union[_network_pb2.ExternalNetworkMember, _Mapping]]] = ...) -> None: ... class NetworkServiceAddExternalMembersResponse(_message.Message): - __slots__ = ("network", "switches") + __slots__ = ("network", "members") NETWORK_FIELD_NUMBER: _ClassVar[int] - SWITCHES_FIELD_NUMBER: _ClassVar[int] + MEMBERS_FIELD_NUMBER: _ClassVar[int] network: _network_pb2.Network - switches: _containers.RepeatedCompositeFieldContainer[_switch_pb2.Switch] - def __init__(self, network: _Optional[_Union[_network_pb2.Network, _Mapping]] = ..., switches: _Optional[_Iterable[_Union[_switch_pb2.Switch, _Mapping]]] = ...) -> None: ... + members: _containers.RepeatedCompositeFieldContainer[_network_pb2.ExternalNetworkMember] + def __init__(self, network: _Optional[_Union[_network_pb2.Network, _Mapping]] = ..., members: _Optional[_Iterable[_Union[_network_pb2.ExternalNetworkMember, _Mapping]]] = ...) -> None: ... class NetworkServiceRemoveExternalMembersResponse(_message.Message): - __slots__ = ("network", "switches") + __slots__ = ("network", "members") NETWORK_FIELD_NUMBER: _ClassVar[int] - SWITCHES_FIELD_NUMBER: _ClassVar[int] + MEMBERS_FIELD_NUMBER: _ClassVar[int] network: _network_pb2.Network - switches: _containers.RepeatedCompositeFieldContainer[_switch_pb2.Switch] - def __init__(self, network: _Optional[_Union[_network_pb2.Network, _Mapping]] = ..., switches: _Optional[_Iterable[_Union[_switch_pb2.Switch, _Mapping]]] = ...) -> None: ... + members: _containers.RepeatedCompositeFieldContainer[_network_pb2.ExternalNetworkMember] + def __init__(self, network: _Optional[_Union[_network_pb2.Network, _Mapping]] = ..., members: _Optional[_Iterable[_Union[_network_pb2.ExternalNetworkMember, _Mapping]]] = ...) -> None: ... From 607c8b05574e30edbc5e4eb4893e589593e8961f Mon Sep 17 00:00:00 2001 From: Ilja Rotar Date: Wed, 9 Sep 2026 09:29:23 +0200 Subject: [PATCH 4/9] remove double dot --- doc/index.html | 2 +- go/metalstack/api/v2/network.pb.go | 2 +- js/metalstack/api/v2/network_pb.d.ts | 2 +- js/metalstack/api/v2/network_pb.ts | 2 +- proto/metalstack/api/v2/network.proto | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/index.html b/doc/index.html index 4b921896..b2f2d234 100644 --- a/doc/index.html +++ b/doc/index.html @@ -8620,7 +8620,7 @@

    ExternalNetworkMemberQuery partition string optional -

    Partition where the members of the network reside..

    +

    Partition where the members of the network reside.

    diff --git a/go/metalstack/api/v2/network.pb.go b/go/metalstack/api/v2/network.pb.go index 415b9d93..94df1ed6 100644 --- a/go/metalstack/api/v2/network.pb.go +++ b/go/metalstack/api/v2/network.pb.go @@ -1281,7 +1281,7 @@ type ExternalNetworkMemberQuery struct { Switch *string `protobuf:"bytes,1,opt,name=switch,proto3,oneof" json:"switch,omitempty"` // Rack for which the members of the network are queried. Rack *string `protobuf:"bytes,2,opt,name=rack,proto3,oneof" json:"rack,omitempty"` - // Partition where the members of the network reside.. + // Partition where the members of the network reside. Partition *string `protobuf:"bytes,3,opt,name=partition,proto3,oneof" json:"partition,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache diff --git a/js/metalstack/api/v2/network_pb.d.ts b/js/metalstack/api/v2/network_pb.d.ts index d03f38e2..cb5a207c 100644 --- a/js/metalstack/api/v2/network_pb.d.ts +++ b/js/metalstack/api/v2/network_pb.d.ts @@ -547,7 +547,7 @@ export type ExternalNetworkMemberQuery = Message<"metalstack.api.v2.ExternalNetw */ rack?: string | undefined; /** - * Partition where the members of the network reside.. + * Partition where the members of the network reside. * * @generated from field: optional string partition = 3; */ diff --git a/js/metalstack/api/v2/network_pb.ts b/js/metalstack/api/v2/network_pb.ts index e7e10ae9..92240e77 100644 --- a/js/metalstack/api/v2/network_pb.ts +++ b/js/metalstack/api/v2/network_pb.ts @@ -647,7 +647,7 @@ export type ExternalNetworkMemberQuery = Message<"metalstack.api.v2.ExternalNetw rack?: string | undefined; /** - * Partition where the members of the network reside.. + * Partition where the members of the network reside. * * @generated from field: optional string partition = 3; */ diff --git a/proto/metalstack/api/v2/network.proto b/proto/metalstack/api/v2/network.proto index 05a86e29..f9688f72 100644 --- a/proto/metalstack/api/v2/network.proto +++ b/proto/metalstack/api/v2/network.proto @@ -242,7 +242,7 @@ message ExternalNetworkMemberQuery { }]; // Rack for which the members of the network are queried. optional string rack = 2 [(buf.validate.field).string.(metalstack.api.v2.is_name) = true]; - // Partition where the members of the network reside.. + // Partition where the members of the network reside. optional string partition = 3 [(buf.validate.field).string.(metalstack.api.v2.is_partition) = true]; } From 631cff602ee02199e3fd5d6abed743979fa60116 Mon Sep 17 00:00:00 2001 From: Ilja Rotar Date: Wed, 9 Sep 2026 10:29:17 +0200 Subject: [PATCH 5/9] add partition and rack to external member message --- doc/index.html | 14 +++++++++++ go/metalstack/api/v2/network.pb.go | 30 ++++++++++++++++++++---- js/metalstack/api/v2/network_pb.d.ts | 14 ++++++++++- js/metalstack/api/v2/network_pb.js | 2 +- js/metalstack/api/v2/network_pb.ts | 18 ++++++++++++-- proto/metalstack/api/v2/network.proto | 6 ++++- python/metalstack/api/v2/network_pb2.py | 26 +++++++++++--------- python/metalstack/api/v2/network_pb2.pyi | 8 +++++-- 8 files changed, 96 insertions(+), 22 deletions(-) diff --git a/doc/index.html b/doc/index.html index b2f2d234..32142afe 100644 --- a/doc/index.html +++ b/doc/index.html @@ -8578,6 +8578,20 @@

    ExternalNetworkMember

    Switch the external members are connected to.

    + + partition + string + +

    Partition of the switch.

    + + + + rack + string + optional +

    Rack of the switch.

    + + ports string diff --git a/go/metalstack/api/v2/network.pb.go b/go/metalstack/api/v2/network.pb.go index 94df1ed6..f845a862 100644 --- a/go/metalstack/api/v2/network.pb.go +++ b/go/metalstack/api/v2/network.pb.go @@ -1526,8 +1526,12 @@ type ExternalNetworkMember struct { state protoimpl.MessageState `protogen:"open.v1"` // Switch the external members are connected to. Switch string `protobuf:"bytes,1,opt,name=switch,proto3" json:"switch,omitempty"` + // Partition of the switch. + Partition string `protobuf:"bytes,2,opt,name=partition,proto3" json:"partition,omitempty"` + // Rack of the switch. + Rack *string `protobuf:"bytes,3,opt,name=rack,proto3,oneof" json:"rack,omitempty"` // Ports of the switch that participate in the network. - Ports []string `protobuf:"bytes,2,rep,name=ports,proto3" json:"ports,omitempty"` + Ports []string `protobuf:"bytes,4,rep,name=ports,proto3" json:"ports,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -1569,6 +1573,20 @@ func (x *ExternalNetworkMember) GetSwitch() string { return "" } +func (x *ExternalNetworkMember) GetPartition() string { + if x != nil { + return x.Partition + } + return "" +} + +func (x *ExternalNetworkMember) GetRack() string { + if x != nil && x.Rack != nil { + return *x.Rack + } + return "" +} + func (x *ExternalNetworkMember) GetPorts() []string { if x != nil { return x.Ports @@ -1715,10 +1733,13 @@ const file_metalstack_api_v2_network_proto_rawDesc = "" + "\ravailable_ips\x18\x01 \x01(\x04R\favailableIps\x12\x19\n" + "\bused_ips\x18\x02 \x01(\x04R\ausedIps\x12-\n" + "\x12available_prefixes\x18\x03 \x01(\x04R\x11availablePrefixes\x12#\n" + - "\rused_prefixes\x18\x04 \x01(\x04R\fusedPrefixes\"c\n" + + "\rused_prefixes\x18\x04 \x01(\x04R\fusedPrefixes\"\xbd\x01\n" + "\x15ExternalNetworkMember\x12#\n" + - "\x06switch\x18\x01 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01R\x06switch\x12%\n" + - "\x05ports\x18\x02 \x03(\tB\x0f\xbaH\f\x92\x01\tФ\xb3\xb1\x02\x01\x10\x80\x10R\x05ports*m\n" + + "\x06switch\x18\x01 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01R\x06switch\x12)\n" + + "\tpartition\x18\x02 \x01(\tB\v\xbaH\br\x06г\xae\xb1\x02\x01R\tpartition\x12$\n" + + "\x04rack\x18\x03 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x04rack\x88\x01\x01\x12%\n" + + "\x05ports\x18\x04 \x03(\tB\x0f\xbaH\f\x92\x01\tФ\xb3\xb1\x02\x01\x10\x80\x10R\x05portsB\a\n" + + "\x05_rack*m\n" + "\aNATType\x12\x18\n" + "\x14NAT_TYPE_UNSPECIFIED\x10\x00\x12\x1b\n" + "\rNAT_TYPE_NONE\x10\x01\x1a\b\x82\xb2\x19\x04none\x12+\n" + @@ -1849,6 +1870,7 @@ func file_metalstack_api_v2_network_proto_init() { file_metalstack_api_v2_network_proto_msgTypes[13].OneofWrappers = []any{} file_metalstack_api_v2_network_proto_msgTypes[14].OneofWrappers = []any{} file_metalstack_api_v2_network_proto_msgTypes[15].OneofWrappers = []any{} + file_metalstack_api_v2_network_proto_msgTypes[18].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/js/metalstack/api/v2/network_pb.d.ts b/js/metalstack/api/v2/network_pb.d.ts index cb5a207c..efde5f08 100644 --- a/js/metalstack/api/v2/network_pb.d.ts +++ b/js/metalstack/api/v2/network_pb.d.ts @@ -654,10 +654,22 @@ export type ExternalNetworkMember = Message<"metalstack.api.v2.ExternalNetworkMe * @generated from field: string switch = 1; */ switch: string; + /** + * Partition of the switch. + * + * @generated from field: string partition = 2; + */ + partition: string; + /** + * Rack of the switch. + * + * @generated from field: optional string rack = 3; + */ + rack?: string | undefined; /** * Ports of the switch that participate in the network. * - * @generated from field: repeated string ports = 2; + * @generated from field: repeated string ports = 4; */ ports: string[]; }; diff --git a/js/metalstack/api/v2/network_pb.js b/js/metalstack/api/v2/network_pb.js index 655a4824..6b35a48b 100644 --- a/js/metalstack/api/v2/network_pb.js +++ b/js/metalstack/api/v2/network_pb.js @@ -8,7 +8,7 @@ import { file_metalstack_api_v2_predefined_rules } from "./predefined_rules_pb"; /** * Describes the file metalstack/api/v2/network.proto. */ -export const file_metalstack_api_v2_network = /*@__PURE__*/ fileDesc("Ch9tZXRhbHN0YWNrL2FwaS92Mi9uZXR3b3JrLnByb3RvEhFtZXRhbHN0YWNrLmFwaS52MiJRChhOZXR3b3JrU2VydmljZUdldFJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEhwKB3Byb2plY3QYAiABKAlCC7pICNgBAXIDsAEBIkgKGU5ldHdvcmtTZXJ2aWNlR2V0UmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsi3AMKG05ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABARIeCgRuYW1lGAIgASgJQgu6SAhyBsCzrrECAUgAiAEBEiUKC2Rlc2NyaXB0aW9uGAMgASgJQgu6SAhyBsizrrECAUgBiAEBEiMKCXBhcnRpdGlvbhgEIAEoCUILukgIcgbQs66xAgFIAogBARIpCgZsYWJlbHMYBSABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5MYWJlbHMSKAoOcGFyZW50X25ldHdvcmsYBiABKAlCC7pICHIGwLOusQIBSAOIAQESOQoGbGVuZ3RoGAcgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhIBIgBARJOCg5hZGRyZXNzX2ZhbWlseRgIIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgFiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIMCgpfcGFydGl0aW9uQhEKD19wYXJlbnRfbmV0d29ya0IJCgdfbGVuZ3RoQhEKD19hZGRyZXNzX2ZhbWlseSJLChxOZXR3b3JrU2VydmljZUNyZWF0ZVJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrIq4CChtOZXR3b3JrU2VydmljZVVwZGF0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEjoKC3VwZGF0ZV9tZXRhGAIgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTWV0YUIGukgDyAEBEhkKB3Byb2plY3QYAyABKAlCCLpIBXIDsAEBEh4KBG5hbWUYBCABKAlCC7pICHIGwLOusQIBSACIAQESJQoLZGVzY3JpcHRpb24YBSABKAlCC7pICHIGyLOusQIBSAGIAQESNAoGbGFiZWxzGAYgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTGFiZWxzSAKIAQFCBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQgkKB19sYWJlbHMiSwocTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJpChlOZXR3b3JrU2VydmljZUxpc3RSZXF1ZXN0EhwKB3Byb2plY3QYASABKAlCC7pICNgBAXIDsAEBEi4KBXF1ZXJ5GAIgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1F1ZXJ5IkoKGk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJ1CiVOZXR3b3JrU2VydmljZUxpc3RCYXNlTmV0d29ya3NSZXF1ZXN0EhwKB3Byb2plY3QYASABKAlCC7pICNgBAXIDsAEBEi4KBXF1ZXJ5GAIgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1F1ZXJ5IlYKJk5ldHdvcmtTZXJ2aWNlTGlzdEJhc2VOZXR3b3Jrc1Jlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJRChtOZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEhkKB3Byb2plY3QYAiABKAlCCLpIBXIDsAEBIksKHE5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsizQYKB05ldHdvcmsSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEiUKBG1ldGEYAiABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhEh4KBG5hbWUYAyABKAlCC7pICHIGwLOusQIBSACIAQESJQoLZGVzY3JpcHRpb24YBCABKAlCC7pICHIGyLOusQIBSAGIAQESIwoJcGFydGl0aW9uGAUgASgJQgu6SAhyBtCzrrECAUgCiAEBEh4KB3Byb2plY3QYBiABKAlCCLpIBXIDsAEBSAOIAQESIAoJbmFtZXNwYWNlGAcgASgJQgi6SAVyA7ABAUgEiAEBEh4KCHByZWZpeGVzGAggAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCSADKAlCDLpICZIBBriks7ECARJJChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCiABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aBJFChdtaW5fY2hpbGRfcHJlZml4X2xlbmd0aBgLIAEoCzIkLm1ldGFsc3RhY2suYXBpLnYyLkNoaWxkUHJlZml4TGVuZ3RoEjYKBHR5cGUYDCABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrVHlwZUIIukgFggECEAESNgoIbmF0X3R5cGUYDSABKA4yGi5tZXRhbHN0YWNrLmFwaS52Mi5OQVRUeXBlQgi6SAWCAQIQARIQCgN2cmYYDiABKA1IBYgBARIoCg5wYXJlbnRfbmV0d29yaxgPIAEoCUILukgIcgbAs66xAgFIBogBARIyChxhZGRpdGlvbmFsX2Fubm91bmNhYmxlX2NpZHJzGBAgAygJQgy6SAmSAQa4pLOxAgESOgoLY29uc3VtcHRpb24YESABKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrQ29uc3VtcHRpb25CBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQgwKCl9wYXJ0aXRpb25CCgoIX3Byb2plY3RCDAoKX25hbWVzcGFjZUIGCgRfdnJmQhEKD19wYXJlbnRfbmV0d29yayLzBQoMTmV0d29ya1F1ZXJ5EhwKAmlkGAEgASgJQgu6SAhyBsCzrrECAUgAiAEBEh4KBG5hbWUYAiABKAlCC7pICHIGwLOusQIBSAGIAQESJQoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBSAKIAQESIwoJcGFydGl0aW9uGAQgASgJQgu6SAhyBtCzrrECAUgDiAEBEh4KB3Byb2plY3QYBSABKAlCCLpIBXIDsAEBSASIAQESIAoJbmFtZXNwYWNlGAYgASgJQgi6SAVyA7ABAUgFiAEBEh4KCHByZWZpeGVzGAcgAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCCADKAlCDLpICZIBBriks7ECARIQCgN2cmYYCSABKA1IBogBARIoCg5wYXJlbnRfbmV0d29yaxgKIAEoCUILukgIcgbAs66xAgFIB4gBARJOCg5hZGRyZXNzX2ZhbWlseRgLIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgIiAEBEjsKBHR5cGUYDCABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrVHlwZUIIukgFggECEAFICYgBARI7CghuYXRfdHlwZRgNIAEoDjIaLm1ldGFsc3RhY2suYXBpLnYyLk5BVFR5cGVCCLpIBYIBAhABSAqIAQESLgoGbGFiZWxzGA4gASgLMhkubWV0YWxzdGFjay5hcGkudjIuTGFiZWxzSAuIAQFCBQoDX2lkQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIMCgpfcGFydGl0aW9uQgoKCF9wcm9qZWN0QgwKCl9uYW1lc3BhY2VCBgoEX3ZyZkIRCg9fcGFyZW50X25ldHdvcmtCEQoPX2FkZHJlc3NfZmFtaWx5QgcKBV90eXBlQgsKCV9uYXRfdHlwZUIJCgdfbGFiZWxzIqcBChpFeHRlcm5hbE5ldHdvcmtNZW1iZXJRdWVyeRIiCgZzd2l0Y2gYASABKAlCDbpICnIIwLOusQIBaAFIAIgBARIeCgRyYWNrGAIgASgJQgu6SAhyBsCzrrECAUgBiAEBEiMKCXBhcnRpdGlvbhgDIAEoCUILukgIcgbQs66xAgFIAogBAUIJCgdfc3dpdGNoQgcKBV9yYWNrQgwKCl9wYXJ0aXRpb24iYgoRQ2hpbGRQcmVmaXhMZW5ndGgSHAoEaXB2NBgBIAEoDUIJukgGKgQYICAASACIAQESHQoEaXB2NhgCIAEoDUIKukgHKgUYgAEgAEgBiAEBQgcKBV9pcHY0QgcKBV9pcHY2InIKEk5ldHdvcmtDb25zdW1wdGlvbhItCgRpcHY0GAEgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1VzYWdlEi0KBGlwdjYYAiABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrVXNhZ2UiagoMTmV0d29ya1VzYWdlEhUKDWF2YWlsYWJsZV9pcHMYASABKAQSEAoIdXNlZF9pcHMYAiABKAQSGgoSYXZhaWxhYmxlX3ByZWZpeGVzGAMgASgEEhUKDXVzZWRfcHJlZml4ZXMYBCABKAQiVAoVRXh0ZXJuYWxOZXR3b3JrTWVtYmVyEhsKBnN3aXRjaBgBIAEoCUILukgIcgbAs66xAgESHgoFcG9ydHMYAiADKAlCD7pIDJIBCdCks7ECARCAECptCgdOQVRUeXBlEhgKFE5BVF9UWVBFX1VOU1BFQ0lGSUVEEAASGwoNTkFUX1RZUEVfTk9ORRABGgiCshkEbm9uZRIrChhOQVRfVFlQRV9JUFY0X01BU1FVRVJBREUQAhoNgrIZCWlwdjQtbWFzcSqtAgoLTmV0d29ya1R5cGUSHAoYTkVUV09SS19UWVBFX1VOU1BFQ0lGSUVEEAASJwoVTkVUV09SS19UWVBFX0VYVEVSTkFMEAEaDIKyGQhleHRlcm5hbBInChVORVRXT1JLX1RZUEVfVU5ERVJMQVkQAhoMgrIZCHVuZGVybGF5EiEKEk5FVFdPUktfVFlQRV9TVVBFUhADGgmCshkFc3VwZXISNwodTkVUV09SS19UWVBFX1NVUEVSX05BTUVTUEFDRUQQBBoUgrIZEHN1cGVyLW5hbWVzcGFjZWQSIQoSTkVUV09SS19UWVBFX0NISUxEEAUaCYKyGQVjaGlsZBIvChlORVRXT1JLX1RZUEVfQ0hJTERfU0hBUkVEEAYaEIKyGQxjaGlsZC1zaGFyZWQqxwEKFE5ldHdvcmtBZGRyZXNzRmFtaWx5EiYKIk5FVFdPUktfQUREUkVTU19GQU1JTFlfVU5TUEVDSUZJRUQQABInChlORVRXT1JLX0FERFJFU1NfRkFNSUxZX1Y0EAEaCIKyGQRpcHY0EicKGU5FVFdPUktfQUREUkVTU19GQU1JTFlfVjYQAhoIgrIZBGlwdjYSNQohTkVUV09SS19BRERSRVNTX0ZBTUlMWV9EVUFMX1NUQUNLEAMaDoKyGQpkdWFsLXN0YWNrMu0FCg5OZXR3b3JrU2VydmljZRJtCgNHZXQSKy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUdldFJlcXVlc3QaLC5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUdldFJlc3BvbnNlIgvK8xgDAQID4PMYAhJ1CgZDcmVhdGUSLi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUNyZWF0ZVJlcXVlc3QaLy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUNyZWF0ZVJlc3BvbnNlIgrK8xgCAQLg8xgBEnUKBlVwZGF0ZRIuLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlVXBkYXRlUmVxdWVzdBovLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlVXBkYXRlUmVzcG9uc2UiCsrzGAIBAuDzGAEScAoETGlzdBIsLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdFJlcXVlc3QaLS5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUxpc3RSZXNwb25zZSILyvMYAwECA+DzGAISlAEKEExpc3RCYXNlTmV0d29ya3MSOC5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUxpc3RCYXNlTmV0d29ya3NSZXF1ZXN0GjkubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VMaXN0QmFzZU5ldHdvcmtzUmVzcG9uc2UiC8rzGAMBAgPg8xgCEnUKBkRlbGV0ZRIuLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVxdWVzdBovLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVzcG9uc2UiCsrzGAIBAuDzGAFCwgEKFWNvbS5tZXRhbHN0YWNrLmFwaS52MkIMTmV0d29ya1Byb3RvUAFaNWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYXBpL3YyO2FwaXYyogIDTUFYqgIRTWV0YWxzdGFjay5BcGkuVjLKAhFNZXRhbHN0YWNrXEFwaVxWMuICHU1ldGFsc3RhY2tcQXBpXFYyXEdQQk1ldGFkYXRh6gITTWV0YWxzdGFjazo6QXBpOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules]); +export const file_metalstack_api_v2_network = /*@__PURE__*/ fileDesc("Ch9tZXRhbHN0YWNrL2FwaS92Mi9uZXR3b3JrLnByb3RvEhFtZXRhbHN0YWNrLmFwaS52MiJRChhOZXR3b3JrU2VydmljZUdldFJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEhwKB3Byb2plY3QYAiABKAlCC7pICNgBAXIDsAEBIkgKGU5ldHdvcmtTZXJ2aWNlR2V0UmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsi3AMKG05ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABARIeCgRuYW1lGAIgASgJQgu6SAhyBsCzrrECAUgAiAEBEiUKC2Rlc2NyaXB0aW9uGAMgASgJQgu6SAhyBsizrrECAUgBiAEBEiMKCXBhcnRpdGlvbhgEIAEoCUILukgIcgbQs66xAgFIAogBARIpCgZsYWJlbHMYBSABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5MYWJlbHMSKAoOcGFyZW50X25ldHdvcmsYBiABKAlCC7pICHIGwLOusQIBSAOIAQESOQoGbGVuZ3RoGAcgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhIBIgBARJOCg5hZGRyZXNzX2ZhbWlseRgIIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgFiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIMCgpfcGFydGl0aW9uQhEKD19wYXJlbnRfbmV0d29ya0IJCgdfbGVuZ3RoQhEKD19hZGRyZXNzX2ZhbWlseSJLChxOZXR3b3JrU2VydmljZUNyZWF0ZVJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrIq4CChtOZXR3b3JrU2VydmljZVVwZGF0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEjoKC3VwZGF0ZV9tZXRhGAIgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTWV0YUIGukgDyAEBEhkKB3Byb2plY3QYAyABKAlCCLpIBXIDsAEBEh4KBG5hbWUYBCABKAlCC7pICHIGwLOusQIBSACIAQESJQoLZGVzY3JpcHRpb24YBSABKAlCC7pICHIGyLOusQIBSAGIAQESNAoGbGFiZWxzGAYgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTGFiZWxzSAKIAQFCBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQgkKB19sYWJlbHMiSwocTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJpChlOZXR3b3JrU2VydmljZUxpc3RSZXF1ZXN0EhwKB3Byb2plY3QYASABKAlCC7pICNgBAXIDsAEBEi4KBXF1ZXJ5GAIgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1F1ZXJ5IkoKGk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJ1CiVOZXR3b3JrU2VydmljZUxpc3RCYXNlTmV0d29ya3NSZXF1ZXN0EhwKB3Byb2plY3QYASABKAlCC7pICNgBAXIDsAEBEi4KBXF1ZXJ5GAIgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1F1ZXJ5IlYKJk5ldHdvcmtTZXJ2aWNlTGlzdEJhc2VOZXR3b3Jrc1Jlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJRChtOZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEhkKB3Byb2plY3QYAiABKAlCCLpIBXIDsAEBIksKHE5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsizQYKB05ldHdvcmsSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEiUKBG1ldGEYAiABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhEh4KBG5hbWUYAyABKAlCC7pICHIGwLOusQIBSACIAQESJQoLZGVzY3JpcHRpb24YBCABKAlCC7pICHIGyLOusQIBSAGIAQESIwoJcGFydGl0aW9uGAUgASgJQgu6SAhyBtCzrrECAUgCiAEBEh4KB3Byb2plY3QYBiABKAlCCLpIBXIDsAEBSAOIAQESIAoJbmFtZXNwYWNlGAcgASgJQgi6SAVyA7ABAUgEiAEBEh4KCHByZWZpeGVzGAggAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCSADKAlCDLpICZIBBriks7ECARJJChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCiABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aBJFChdtaW5fY2hpbGRfcHJlZml4X2xlbmd0aBgLIAEoCzIkLm1ldGFsc3RhY2suYXBpLnYyLkNoaWxkUHJlZml4TGVuZ3RoEjYKBHR5cGUYDCABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrVHlwZUIIukgFggECEAESNgoIbmF0X3R5cGUYDSABKA4yGi5tZXRhbHN0YWNrLmFwaS52Mi5OQVRUeXBlQgi6SAWCAQIQARIQCgN2cmYYDiABKA1IBYgBARIoCg5wYXJlbnRfbmV0d29yaxgPIAEoCUILukgIcgbAs66xAgFIBogBARIyChxhZGRpdGlvbmFsX2Fubm91bmNhYmxlX2NpZHJzGBAgAygJQgy6SAmSAQa4pLOxAgESOgoLY29uc3VtcHRpb24YESABKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrQ29uc3VtcHRpb25CBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQgwKCl9wYXJ0aXRpb25CCgoIX3Byb2plY3RCDAoKX25hbWVzcGFjZUIGCgRfdnJmQhEKD19wYXJlbnRfbmV0d29yayLzBQoMTmV0d29ya1F1ZXJ5EhwKAmlkGAEgASgJQgu6SAhyBsCzrrECAUgAiAEBEh4KBG5hbWUYAiABKAlCC7pICHIGwLOusQIBSAGIAQESJQoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBSAKIAQESIwoJcGFydGl0aW9uGAQgASgJQgu6SAhyBtCzrrECAUgDiAEBEh4KB3Byb2plY3QYBSABKAlCCLpIBXIDsAEBSASIAQESIAoJbmFtZXNwYWNlGAYgASgJQgi6SAVyA7ABAUgFiAEBEh4KCHByZWZpeGVzGAcgAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCCADKAlCDLpICZIBBriks7ECARIQCgN2cmYYCSABKA1IBogBARIoCg5wYXJlbnRfbmV0d29yaxgKIAEoCUILukgIcgbAs66xAgFIB4gBARJOCg5hZGRyZXNzX2ZhbWlseRgLIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgIiAEBEjsKBHR5cGUYDCABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrVHlwZUIIukgFggECEAFICYgBARI7CghuYXRfdHlwZRgNIAEoDjIaLm1ldGFsc3RhY2suYXBpLnYyLk5BVFR5cGVCCLpIBYIBAhABSAqIAQESLgoGbGFiZWxzGA4gASgLMhkubWV0YWxzdGFjay5hcGkudjIuTGFiZWxzSAuIAQFCBQoDX2lkQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIMCgpfcGFydGl0aW9uQgoKCF9wcm9qZWN0QgwKCl9uYW1lc3BhY2VCBgoEX3ZyZkIRCg9fcGFyZW50X25ldHdvcmtCEQoPX2FkZHJlc3NfZmFtaWx5QgcKBV90eXBlQgsKCV9uYXRfdHlwZUIJCgdfbGFiZWxzIqcBChpFeHRlcm5hbE5ldHdvcmtNZW1iZXJRdWVyeRIiCgZzd2l0Y2gYASABKAlCDbpICnIIwLOusQIBaAFIAIgBARIeCgRyYWNrGAIgASgJQgu6SAhyBsCzrrECAUgBiAEBEiMKCXBhcnRpdGlvbhgDIAEoCUILukgIcgbQs66xAgFIAogBAUIJCgdfc3dpdGNoQgcKBV9yYWNrQgwKCl9wYXJ0aXRpb24iYgoRQ2hpbGRQcmVmaXhMZW5ndGgSHAoEaXB2NBgBIAEoDUIJukgGKgQYICAASACIAQESHQoEaXB2NhgCIAEoDUIKukgHKgUYgAEgAEgBiAEBQgcKBV9pcHY0QgcKBV9pcHY2InIKEk5ldHdvcmtDb25zdW1wdGlvbhItCgRpcHY0GAEgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1VzYWdlEi0KBGlwdjYYAiABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrVXNhZ2UiagoMTmV0d29ya1VzYWdlEhUKDWF2YWlsYWJsZV9pcHMYASABKAQSEAoIdXNlZF9pcHMYAiABKAQSGgoSYXZhaWxhYmxlX3ByZWZpeGVzGAMgASgEEhUKDXVzZWRfcHJlZml4ZXMYBCABKAQinQEKFUV4dGVybmFsTmV0d29ya01lbWJlchIbCgZzd2l0Y2gYASABKAlCC7pICHIGwLOusQIBEh4KCXBhcnRpdGlvbhgCIAEoCUILukgIcgbQs66xAgESHgoEcmFjaxgDIAEoCUILukgIcgbAs66xAgFIAIgBARIeCgVwb3J0cxgEIAMoCUIPukgMkgEJ0KSzsQIBEIAQQgcKBV9yYWNrKm0KB05BVFR5cGUSGAoUTkFUX1RZUEVfVU5TUEVDSUZJRUQQABIbCg1OQVRfVFlQRV9OT05FEAEaCIKyGQRub25lEisKGE5BVF9UWVBFX0lQVjRfTUFTUVVFUkFERRACGg2CshkJaXB2NC1tYXNxKq0CCgtOZXR3b3JrVHlwZRIcChhORVRXT1JLX1RZUEVfVU5TUEVDSUZJRUQQABInChVORVRXT1JLX1RZUEVfRVhURVJOQUwQARoMgrIZCGV4dGVybmFsEicKFU5FVFdPUktfVFlQRV9VTkRFUkxBWRACGgyCshkIdW5kZXJsYXkSIQoSTkVUV09SS19UWVBFX1NVUEVSEAMaCYKyGQVzdXBlchI3Ch1ORVRXT1JLX1RZUEVfU1VQRVJfTkFNRVNQQUNFRBAEGhSCshkQc3VwZXItbmFtZXNwYWNlZBIhChJORVRXT1JLX1RZUEVfQ0hJTEQQBRoJgrIZBWNoaWxkEi8KGU5FVFdPUktfVFlQRV9DSElMRF9TSEFSRUQQBhoQgrIZDGNoaWxkLXNoYXJlZCrHAQoUTmV0d29ya0FkZHJlc3NGYW1pbHkSJgoiTkVUV09SS19BRERSRVNTX0ZBTUlMWV9VTlNQRUNJRklFRBAAEicKGU5FVFdPUktfQUREUkVTU19GQU1JTFlfVjQQARoIgrIZBGlwdjQSJwoZTkVUV09SS19BRERSRVNTX0ZBTUlMWV9WNhACGgiCshkEaXB2NhI1CiFORVRXT1JLX0FERFJFU1NfRkFNSUxZX0RVQUxfU1RBQ0sQAxoOgrIZCmR1YWwtc3RhY2sy7QUKDk5ldHdvcmtTZXJ2aWNlEm0KA0dldBIrLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlR2V0UmVxdWVzdBosLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlR2V0UmVzcG9uc2UiC8rzGAMBAgPg8xgCEnUKBkNyZWF0ZRIuLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVxdWVzdBovLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVzcG9uc2UiCsrzGAIBAuDzGAESdQoGVXBkYXRlEi4ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VVcGRhdGVSZXF1ZXN0Gi8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZSIKyvMYAgEC4PMYARJwCgRMaXN0EiwubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VMaXN0UmVxdWVzdBotLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlIgvK8xgDAQID4PMYAhKUAQoQTGlzdEJhc2VOZXR3b3JrcxI4Lm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdEJhc2VOZXR3b3Jrc1JlcXVlc3QaOS5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUxpc3RCYXNlTmV0d29ya3NSZXNwb25zZSILyvMYAwECA+DzGAISdQoGRGVsZXRlEi4ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VEZWxldGVSZXF1ZXN0Gi8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VEZWxldGVSZXNwb25zZSIKyvMYAgEC4PMYAULCAQoVY29tLm1ldGFsc3RhY2suYXBpLnYyQgxOZXR3b3JrUHJvdG9QAVo1Z2l0aHViLmNvbS9tZXRhbC1zdGFjay9hcGkvZ28vbWV0YWxzdGFjay9hcGkvdjI7YXBpdjKiAgNNQViqAhFNZXRhbHN0YWNrLkFwaS5WMsoCEU1ldGFsc3RhY2tcQXBpXFYy4gIdTWV0YWxzdGFja1xBcGlcVjJcR1BCTWV0YWRhdGHqAhNNZXRhbHN0YWNrOjpBcGk6OlYyYgZwcm90bzM", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules]); /** * Describes the message metalstack.api.v2.NetworkServiceGetRequest. * Use `create(NetworkServiceGetRequestSchema)` to create a new message. diff --git a/js/metalstack/api/v2/network_pb.ts b/js/metalstack/api/v2/network_pb.ts index 92240e77..3a0d09fa 100644 --- a/js/metalstack/api/v2/network_pb.ts +++ b/js/metalstack/api/v2/network_pb.ts @@ -14,7 +14,7 @@ import type { Message } from "@bufbuild/protobuf"; * Describes the file metalstack/api/v2/network.proto. */ export const file_metalstack_api_v2_network: GenFile = /*@__PURE__*/ - fileDesc("Ch9tZXRhbHN0YWNrL2FwaS92Mi9uZXR3b3JrLnByb3RvEhFtZXRhbHN0YWNrLmFwaS52MiJRChhOZXR3b3JrU2VydmljZUdldFJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEhwKB3Byb2plY3QYAiABKAlCC7pICNgBAXIDsAEBIkgKGU5ldHdvcmtTZXJ2aWNlR2V0UmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsi3AMKG05ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABARIeCgRuYW1lGAIgASgJQgu6SAhyBsCzrrECAUgAiAEBEiUKC2Rlc2NyaXB0aW9uGAMgASgJQgu6SAhyBsizrrECAUgBiAEBEiMKCXBhcnRpdGlvbhgEIAEoCUILukgIcgbQs66xAgFIAogBARIpCgZsYWJlbHMYBSABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5MYWJlbHMSKAoOcGFyZW50X25ldHdvcmsYBiABKAlCC7pICHIGwLOusQIBSAOIAQESOQoGbGVuZ3RoGAcgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhIBIgBARJOCg5hZGRyZXNzX2ZhbWlseRgIIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgFiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIMCgpfcGFydGl0aW9uQhEKD19wYXJlbnRfbmV0d29ya0IJCgdfbGVuZ3RoQhEKD19hZGRyZXNzX2ZhbWlseSJLChxOZXR3b3JrU2VydmljZUNyZWF0ZVJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrIq4CChtOZXR3b3JrU2VydmljZVVwZGF0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEjoKC3VwZGF0ZV9tZXRhGAIgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTWV0YUIGukgDyAEBEhkKB3Byb2plY3QYAyABKAlCCLpIBXIDsAEBEh4KBG5hbWUYBCABKAlCC7pICHIGwLOusQIBSACIAQESJQoLZGVzY3JpcHRpb24YBSABKAlCC7pICHIGyLOusQIBSAGIAQESNAoGbGFiZWxzGAYgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTGFiZWxzSAKIAQFCBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQgkKB19sYWJlbHMiSwocTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJpChlOZXR3b3JrU2VydmljZUxpc3RSZXF1ZXN0EhwKB3Byb2plY3QYASABKAlCC7pICNgBAXIDsAEBEi4KBXF1ZXJ5GAIgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1F1ZXJ5IkoKGk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJ1CiVOZXR3b3JrU2VydmljZUxpc3RCYXNlTmV0d29ya3NSZXF1ZXN0EhwKB3Byb2plY3QYASABKAlCC7pICNgBAXIDsAEBEi4KBXF1ZXJ5GAIgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1F1ZXJ5IlYKJk5ldHdvcmtTZXJ2aWNlTGlzdEJhc2VOZXR3b3Jrc1Jlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJRChtOZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEhkKB3Byb2plY3QYAiABKAlCCLpIBXIDsAEBIksKHE5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsizQYKB05ldHdvcmsSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEiUKBG1ldGEYAiABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhEh4KBG5hbWUYAyABKAlCC7pICHIGwLOusQIBSACIAQESJQoLZGVzY3JpcHRpb24YBCABKAlCC7pICHIGyLOusQIBSAGIAQESIwoJcGFydGl0aW9uGAUgASgJQgu6SAhyBtCzrrECAUgCiAEBEh4KB3Byb2plY3QYBiABKAlCCLpIBXIDsAEBSAOIAQESIAoJbmFtZXNwYWNlGAcgASgJQgi6SAVyA7ABAUgEiAEBEh4KCHByZWZpeGVzGAggAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCSADKAlCDLpICZIBBriks7ECARJJChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCiABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aBJFChdtaW5fY2hpbGRfcHJlZml4X2xlbmd0aBgLIAEoCzIkLm1ldGFsc3RhY2suYXBpLnYyLkNoaWxkUHJlZml4TGVuZ3RoEjYKBHR5cGUYDCABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrVHlwZUIIukgFggECEAESNgoIbmF0X3R5cGUYDSABKA4yGi5tZXRhbHN0YWNrLmFwaS52Mi5OQVRUeXBlQgi6SAWCAQIQARIQCgN2cmYYDiABKA1IBYgBARIoCg5wYXJlbnRfbmV0d29yaxgPIAEoCUILukgIcgbAs66xAgFIBogBARIyChxhZGRpdGlvbmFsX2Fubm91bmNhYmxlX2NpZHJzGBAgAygJQgy6SAmSAQa4pLOxAgESOgoLY29uc3VtcHRpb24YESABKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrQ29uc3VtcHRpb25CBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQgwKCl9wYXJ0aXRpb25CCgoIX3Byb2plY3RCDAoKX25hbWVzcGFjZUIGCgRfdnJmQhEKD19wYXJlbnRfbmV0d29yayLzBQoMTmV0d29ya1F1ZXJ5EhwKAmlkGAEgASgJQgu6SAhyBsCzrrECAUgAiAEBEh4KBG5hbWUYAiABKAlCC7pICHIGwLOusQIBSAGIAQESJQoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBSAKIAQESIwoJcGFydGl0aW9uGAQgASgJQgu6SAhyBtCzrrECAUgDiAEBEh4KB3Byb2plY3QYBSABKAlCCLpIBXIDsAEBSASIAQESIAoJbmFtZXNwYWNlGAYgASgJQgi6SAVyA7ABAUgFiAEBEh4KCHByZWZpeGVzGAcgAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCCADKAlCDLpICZIBBriks7ECARIQCgN2cmYYCSABKA1IBogBARIoCg5wYXJlbnRfbmV0d29yaxgKIAEoCUILukgIcgbAs66xAgFIB4gBARJOCg5hZGRyZXNzX2ZhbWlseRgLIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgIiAEBEjsKBHR5cGUYDCABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrVHlwZUIIukgFggECEAFICYgBARI7CghuYXRfdHlwZRgNIAEoDjIaLm1ldGFsc3RhY2suYXBpLnYyLk5BVFR5cGVCCLpIBYIBAhABSAqIAQESLgoGbGFiZWxzGA4gASgLMhkubWV0YWxzdGFjay5hcGkudjIuTGFiZWxzSAuIAQFCBQoDX2lkQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIMCgpfcGFydGl0aW9uQgoKCF9wcm9qZWN0QgwKCl9uYW1lc3BhY2VCBgoEX3ZyZkIRCg9fcGFyZW50X25ldHdvcmtCEQoPX2FkZHJlc3NfZmFtaWx5QgcKBV90eXBlQgsKCV9uYXRfdHlwZUIJCgdfbGFiZWxzIqcBChpFeHRlcm5hbE5ldHdvcmtNZW1iZXJRdWVyeRIiCgZzd2l0Y2gYASABKAlCDbpICnIIwLOusQIBaAFIAIgBARIeCgRyYWNrGAIgASgJQgu6SAhyBsCzrrECAUgBiAEBEiMKCXBhcnRpdGlvbhgDIAEoCUILukgIcgbQs66xAgFIAogBAUIJCgdfc3dpdGNoQgcKBV9yYWNrQgwKCl9wYXJ0aXRpb24iYgoRQ2hpbGRQcmVmaXhMZW5ndGgSHAoEaXB2NBgBIAEoDUIJukgGKgQYICAASACIAQESHQoEaXB2NhgCIAEoDUIKukgHKgUYgAEgAEgBiAEBQgcKBV9pcHY0QgcKBV9pcHY2InIKEk5ldHdvcmtDb25zdW1wdGlvbhItCgRpcHY0GAEgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1VzYWdlEi0KBGlwdjYYAiABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrVXNhZ2UiagoMTmV0d29ya1VzYWdlEhUKDWF2YWlsYWJsZV9pcHMYASABKAQSEAoIdXNlZF9pcHMYAiABKAQSGgoSYXZhaWxhYmxlX3ByZWZpeGVzGAMgASgEEhUKDXVzZWRfcHJlZml4ZXMYBCABKAQiVAoVRXh0ZXJuYWxOZXR3b3JrTWVtYmVyEhsKBnN3aXRjaBgBIAEoCUILukgIcgbAs66xAgESHgoFcG9ydHMYAiADKAlCD7pIDJIBCdCks7ECARCAECptCgdOQVRUeXBlEhgKFE5BVF9UWVBFX1VOU1BFQ0lGSUVEEAASGwoNTkFUX1RZUEVfTk9ORRABGgiCshkEbm9uZRIrChhOQVRfVFlQRV9JUFY0X01BU1FVRVJBREUQAhoNgrIZCWlwdjQtbWFzcSqtAgoLTmV0d29ya1R5cGUSHAoYTkVUV09SS19UWVBFX1VOU1BFQ0lGSUVEEAASJwoVTkVUV09SS19UWVBFX0VYVEVSTkFMEAEaDIKyGQhleHRlcm5hbBInChVORVRXT1JLX1RZUEVfVU5ERVJMQVkQAhoMgrIZCHVuZGVybGF5EiEKEk5FVFdPUktfVFlQRV9TVVBFUhADGgmCshkFc3VwZXISNwodTkVUV09SS19UWVBFX1NVUEVSX05BTUVTUEFDRUQQBBoUgrIZEHN1cGVyLW5hbWVzcGFjZWQSIQoSTkVUV09SS19UWVBFX0NISUxEEAUaCYKyGQVjaGlsZBIvChlORVRXT1JLX1RZUEVfQ0hJTERfU0hBUkVEEAYaEIKyGQxjaGlsZC1zaGFyZWQqxwEKFE5ldHdvcmtBZGRyZXNzRmFtaWx5EiYKIk5FVFdPUktfQUREUkVTU19GQU1JTFlfVU5TUEVDSUZJRUQQABInChlORVRXT1JLX0FERFJFU1NfRkFNSUxZX1Y0EAEaCIKyGQRpcHY0EicKGU5FVFdPUktfQUREUkVTU19GQU1JTFlfVjYQAhoIgrIZBGlwdjYSNQohTkVUV09SS19BRERSRVNTX0ZBTUlMWV9EVUFMX1NUQUNLEAMaDoKyGQpkdWFsLXN0YWNrMu0FCg5OZXR3b3JrU2VydmljZRJtCgNHZXQSKy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUdldFJlcXVlc3QaLC5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUdldFJlc3BvbnNlIgvK8xgDAQID4PMYAhJ1CgZDcmVhdGUSLi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUNyZWF0ZVJlcXVlc3QaLy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUNyZWF0ZVJlc3BvbnNlIgrK8xgCAQLg8xgBEnUKBlVwZGF0ZRIuLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlVXBkYXRlUmVxdWVzdBovLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlVXBkYXRlUmVzcG9uc2UiCsrzGAIBAuDzGAEScAoETGlzdBIsLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdFJlcXVlc3QaLS5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUxpc3RSZXNwb25zZSILyvMYAwECA+DzGAISlAEKEExpc3RCYXNlTmV0d29ya3MSOC5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUxpc3RCYXNlTmV0d29ya3NSZXF1ZXN0GjkubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VMaXN0QmFzZU5ldHdvcmtzUmVzcG9uc2UiC8rzGAMBAgPg8xgCEnUKBkRlbGV0ZRIuLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVxdWVzdBovLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVzcG9uc2UiCsrzGAIBAuDzGAFCwgEKFWNvbS5tZXRhbHN0YWNrLmFwaS52MkIMTmV0d29ya1Byb3RvUAFaNWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYXBpL3YyO2FwaXYyogIDTUFYqgIRTWV0YWxzdGFjay5BcGkuVjLKAhFNZXRhbHN0YWNrXEFwaVxWMuICHU1ldGFsc3RhY2tcQXBpXFYyXEdQQk1ldGFkYXRh6gITTWV0YWxzdGFjazo6QXBpOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules]); + fileDesc("Ch9tZXRhbHN0YWNrL2FwaS92Mi9uZXR3b3JrLnByb3RvEhFtZXRhbHN0YWNrLmFwaS52MiJRChhOZXR3b3JrU2VydmljZUdldFJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEhwKB3Byb2plY3QYAiABKAlCC7pICNgBAXIDsAEBIkgKGU5ldHdvcmtTZXJ2aWNlR2V0UmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsi3AMKG05ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABARIeCgRuYW1lGAIgASgJQgu6SAhyBsCzrrECAUgAiAEBEiUKC2Rlc2NyaXB0aW9uGAMgASgJQgu6SAhyBsizrrECAUgBiAEBEiMKCXBhcnRpdGlvbhgEIAEoCUILukgIcgbQs66xAgFIAogBARIpCgZsYWJlbHMYBSABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5MYWJlbHMSKAoOcGFyZW50X25ldHdvcmsYBiABKAlCC7pICHIGwLOusQIBSAOIAQESOQoGbGVuZ3RoGAcgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhIBIgBARJOCg5hZGRyZXNzX2ZhbWlseRgIIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgFiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIMCgpfcGFydGl0aW9uQhEKD19wYXJlbnRfbmV0d29ya0IJCgdfbGVuZ3RoQhEKD19hZGRyZXNzX2ZhbWlseSJLChxOZXR3b3JrU2VydmljZUNyZWF0ZVJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrIq4CChtOZXR3b3JrU2VydmljZVVwZGF0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEjoKC3VwZGF0ZV9tZXRhGAIgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTWV0YUIGukgDyAEBEhkKB3Byb2plY3QYAyABKAlCCLpIBXIDsAEBEh4KBG5hbWUYBCABKAlCC7pICHIGwLOusQIBSACIAQESJQoLZGVzY3JpcHRpb24YBSABKAlCC7pICHIGyLOusQIBSAGIAQESNAoGbGFiZWxzGAYgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTGFiZWxzSAKIAQFCBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQgkKB19sYWJlbHMiSwocTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJpChlOZXR3b3JrU2VydmljZUxpc3RSZXF1ZXN0EhwKB3Byb2plY3QYASABKAlCC7pICNgBAXIDsAEBEi4KBXF1ZXJ5GAIgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1F1ZXJ5IkoKGk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJ1CiVOZXR3b3JrU2VydmljZUxpc3RCYXNlTmV0d29ya3NSZXF1ZXN0EhwKB3Byb2plY3QYASABKAlCC7pICNgBAXIDsAEBEi4KBXF1ZXJ5GAIgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1F1ZXJ5IlYKJk5ldHdvcmtTZXJ2aWNlTGlzdEJhc2VOZXR3b3Jrc1Jlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJRChtOZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEhkKB3Byb2plY3QYAiABKAlCCLpIBXIDsAEBIksKHE5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsizQYKB05ldHdvcmsSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEiUKBG1ldGEYAiABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhEh4KBG5hbWUYAyABKAlCC7pICHIGwLOusQIBSACIAQESJQoLZGVzY3JpcHRpb24YBCABKAlCC7pICHIGyLOusQIBSAGIAQESIwoJcGFydGl0aW9uGAUgASgJQgu6SAhyBtCzrrECAUgCiAEBEh4KB3Byb2plY3QYBiABKAlCCLpIBXIDsAEBSAOIAQESIAoJbmFtZXNwYWNlGAcgASgJQgi6SAVyA7ABAUgEiAEBEh4KCHByZWZpeGVzGAggAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCSADKAlCDLpICZIBBriks7ECARJJChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCiABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aBJFChdtaW5fY2hpbGRfcHJlZml4X2xlbmd0aBgLIAEoCzIkLm1ldGFsc3RhY2suYXBpLnYyLkNoaWxkUHJlZml4TGVuZ3RoEjYKBHR5cGUYDCABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrVHlwZUIIukgFggECEAESNgoIbmF0X3R5cGUYDSABKA4yGi5tZXRhbHN0YWNrLmFwaS52Mi5OQVRUeXBlQgi6SAWCAQIQARIQCgN2cmYYDiABKA1IBYgBARIoCg5wYXJlbnRfbmV0d29yaxgPIAEoCUILukgIcgbAs66xAgFIBogBARIyChxhZGRpdGlvbmFsX2Fubm91bmNhYmxlX2NpZHJzGBAgAygJQgy6SAmSAQa4pLOxAgESOgoLY29uc3VtcHRpb24YESABKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrQ29uc3VtcHRpb25CBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQgwKCl9wYXJ0aXRpb25CCgoIX3Byb2plY3RCDAoKX25hbWVzcGFjZUIGCgRfdnJmQhEKD19wYXJlbnRfbmV0d29yayLzBQoMTmV0d29ya1F1ZXJ5EhwKAmlkGAEgASgJQgu6SAhyBsCzrrECAUgAiAEBEh4KBG5hbWUYAiABKAlCC7pICHIGwLOusQIBSAGIAQESJQoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBSAKIAQESIwoJcGFydGl0aW9uGAQgASgJQgu6SAhyBtCzrrECAUgDiAEBEh4KB3Byb2plY3QYBSABKAlCCLpIBXIDsAEBSASIAQESIAoJbmFtZXNwYWNlGAYgASgJQgi6SAVyA7ABAUgFiAEBEh4KCHByZWZpeGVzGAcgAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCCADKAlCDLpICZIBBriks7ECARIQCgN2cmYYCSABKA1IBogBARIoCg5wYXJlbnRfbmV0d29yaxgKIAEoCUILukgIcgbAs66xAgFIB4gBARJOCg5hZGRyZXNzX2ZhbWlseRgLIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgIiAEBEjsKBHR5cGUYDCABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrVHlwZUIIukgFggECEAFICYgBARI7CghuYXRfdHlwZRgNIAEoDjIaLm1ldGFsc3RhY2suYXBpLnYyLk5BVFR5cGVCCLpIBYIBAhABSAqIAQESLgoGbGFiZWxzGA4gASgLMhkubWV0YWxzdGFjay5hcGkudjIuTGFiZWxzSAuIAQFCBQoDX2lkQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIMCgpfcGFydGl0aW9uQgoKCF9wcm9qZWN0QgwKCl9uYW1lc3BhY2VCBgoEX3ZyZkIRCg9fcGFyZW50X25ldHdvcmtCEQoPX2FkZHJlc3NfZmFtaWx5QgcKBV90eXBlQgsKCV9uYXRfdHlwZUIJCgdfbGFiZWxzIqcBChpFeHRlcm5hbE5ldHdvcmtNZW1iZXJRdWVyeRIiCgZzd2l0Y2gYASABKAlCDbpICnIIwLOusQIBaAFIAIgBARIeCgRyYWNrGAIgASgJQgu6SAhyBsCzrrECAUgBiAEBEiMKCXBhcnRpdGlvbhgDIAEoCUILukgIcgbQs66xAgFIAogBAUIJCgdfc3dpdGNoQgcKBV9yYWNrQgwKCl9wYXJ0aXRpb24iYgoRQ2hpbGRQcmVmaXhMZW5ndGgSHAoEaXB2NBgBIAEoDUIJukgGKgQYICAASACIAQESHQoEaXB2NhgCIAEoDUIKukgHKgUYgAEgAEgBiAEBQgcKBV9pcHY0QgcKBV9pcHY2InIKEk5ldHdvcmtDb25zdW1wdGlvbhItCgRpcHY0GAEgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1VzYWdlEi0KBGlwdjYYAiABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrVXNhZ2UiagoMTmV0d29ya1VzYWdlEhUKDWF2YWlsYWJsZV9pcHMYASABKAQSEAoIdXNlZF9pcHMYAiABKAQSGgoSYXZhaWxhYmxlX3ByZWZpeGVzGAMgASgEEhUKDXVzZWRfcHJlZml4ZXMYBCABKAQinQEKFUV4dGVybmFsTmV0d29ya01lbWJlchIbCgZzd2l0Y2gYASABKAlCC7pICHIGwLOusQIBEh4KCXBhcnRpdGlvbhgCIAEoCUILukgIcgbQs66xAgESHgoEcmFjaxgDIAEoCUILukgIcgbAs66xAgFIAIgBARIeCgVwb3J0cxgEIAMoCUIPukgMkgEJ0KSzsQIBEIAQQgcKBV9yYWNrKm0KB05BVFR5cGUSGAoUTkFUX1RZUEVfVU5TUEVDSUZJRUQQABIbCg1OQVRfVFlQRV9OT05FEAEaCIKyGQRub25lEisKGE5BVF9UWVBFX0lQVjRfTUFTUVVFUkFERRACGg2CshkJaXB2NC1tYXNxKq0CCgtOZXR3b3JrVHlwZRIcChhORVRXT1JLX1RZUEVfVU5TUEVDSUZJRUQQABInChVORVRXT1JLX1RZUEVfRVhURVJOQUwQARoMgrIZCGV4dGVybmFsEicKFU5FVFdPUktfVFlQRV9VTkRFUkxBWRACGgyCshkIdW5kZXJsYXkSIQoSTkVUV09SS19UWVBFX1NVUEVSEAMaCYKyGQVzdXBlchI3Ch1ORVRXT1JLX1RZUEVfU1VQRVJfTkFNRVNQQUNFRBAEGhSCshkQc3VwZXItbmFtZXNwYWNlZBIhChJORVRXT1JLX1RZUEVfQ0hJTEQQBRoJgrIZBWNoaWxkEi8KGU5FVFdPUktfVFlQRV9DSElMRF9TSEFSRUQQBhoQgrIZDGNoaWxkLXNoYXJlZCrHAQoUTmV0d29ya0FkZHJlc3NGYW1pbHkSJgoiTkVUV09SS19BRERSRVNTX0ZBTUlMWV9VTlNQRUNJRklFRBAAEicKGU5FVFdPUktfQUREUkVTU19GQU1JTFlfVjQQARoIgrIZBGlwdjQSJwoZTkVUV09SS19BRERSRVNTX0ZBTUlMWV9WNhACGgiCshkEaXB2NhI1CiFORVRXT1JLX0FERFJFU1NfRkFNSUxZX0RVQUxfU1RBQ0sQAxoOgrIZCmR1YWwtc3RhY2sy7QUKDk5ldHdvcmtTZXJ2aWNlEm0KA0dldBIrLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlR2V0UmVxdWVzdBosLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlR2V0UmVzcG9uc2UiC8rzGAMBAgPg8xgCEnUKBkNyZWF0ZRIuLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVxdWVzdBovLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVzcG9uc2UiCsrzGAIBAuDzGAESdQoGVXBkYXRlEi4ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VVcGRhdGVSZXF1ZXN0Gi8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZSIKyvMYAgEC4PMYARJwCgRMaXN0EiwubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VMaXN0UmVxdWVzdBotLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlIgvK8xgDAQID4PMYAhKUAQoQTGlzdEJhc2VOZXR3b3JrcxI4Lm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdEJhc2VOZXR3b3Jrc1JlcXVlc3QaOS5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUxpc3RCYXNlTmV0d29ya3NSZXNwb25zZSILyvMYAwECA+DzGAISdQoGRGVsZXRlEi4ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VEZWxldGVSZXF1ZXN0Gi8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VEZWxldGVSZXNwb25zZSIKyvMYAgEC4PMYAULCAQoVY29tLm1ldGFsc3RhY2suYXBpLnYyQgxOZXR3b3JrUHJvdG9QAVo1Z2l0aHViLmNvbS9tZXRhbC1zdGFjay9hcGkvZ28vbWV0YWxzdGFjay9hcGkvdjI7YXBpdjKiAgNNQViqAhFNZXRhbHN0YWNrLkFwaS5WMsoCEU1ldGFsc3RhY2tcQXBpXFYy4gIdTWV0YWxzdGFja1xBcGlcVjJcR1BCTWV0YWRhdGHqAhNNZXRhbHN0YWNrOjpBcGk6OlYyYgZwcm90bzM", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules]); /** * NetworkServiceGetRequest. @@ -772,10 +772,24 @@ export type ExternalNetworkMember = Message<"metalstack.api.v2.ExternalNetworkMe */ switch: string; + /** + * Partition of the switch. + * + * @generated from field: string partition = 2; + */ + partition: string; + + /** + * Rack of the switch. + * + * @generated from field: optional string rack = 3; + */ + rack?: string | undefined; + /** * Ports of the switch that participate in the network. * - * @generated from field: repeated string ports = 2; + * @generated from field: repeated string ports = 4; */ ports: string[]; }; diff --git a/proto/metalstack/api/v2/network.proto b/proto/metalstack/api/v2/network.proto index f9688f72..8adfa3fc 100644 --- a/proto/metalstack/api/v2/network.proto +++ b/proto/metalstack/api/v2/network.proto @@ -284,8 +284,12 @@ message NetworkUsage { message ExternalNetworkMember { // Switch the external members are connected to. string switch = 1 [(buf.validate.field).string.(metalstack.api.v2.is_name) = true]; + // Partition of the switch. + string partition = 2 [(buf.validate.field).string.(metalstack.api.v2.is_partition) = true]; + // Rack of the switch. + optional string rack = 3 [(buf.validate.field).string.(metalstack.api.v2.is_name) = true]; // Ports of the switch that participate in the network. - repeated string ports = 2 [ + repeated string ports = 4 [ (buf.validate.field).repeated.max_items = 2048, (buf.validate.field).repeated.(metalstack.api.v2.all_trimmed) = true ]; diff --git a/python/metalstack/api/v2/network_pb2.py b/python/metalstack/api/v2/network_pb2.py index 598ae26e..e863b4f9 100644 --- a/python/metalstack/api/v2/network_pb2.py +++ b/python/metalstack/api/v2/network_pb2.py @@ -27,7 +27,7 @@ from metalstack.api.v2 import predefined_rules_pb2 as metalstack_dot_api_dot_v2_dot_predefined__rules__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fmetalstack/api/v2/network.proto\x12\x11metalstack.api.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1emetalstack/api/v2/common.proto\x1a(metalstack/api/v2/predefined_rules.proto\"^\n\x18NetworkServiceGetRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\x12%\n\x07project\x18\x02 \x01(\tB\x0b\xbaH\x08r\x03\xb0\x01\x01\xd8\x01\x01R\x07project\"Q\n\x19NetworkServiceGetResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"\xb1\x04\n\x1bNetworkServiceCreateRequest\x12\"\n\x07project\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12$\n\x04name\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x04name\x88\x01\x01\x12\x32\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x01R\x0b\x64\x65scription\x88\x01\x01\x12.\n\tpartition\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x02R\tpartition\x88\x01\x01\x12\x31\n\x06labels\x18\x05 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsR\x06labels\x12\x37\n\x0eparent_network\x18\x06 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x03R\rparentNetwork\x88\x01\x01\x12\x41\n\x06length\x18\x07 \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthH\x04R\x06length\x88\x01\x01\x12]\n\x0e\x61\x64\x64ress_family\x18\x08 \x01(\x0e\x32\'.metalstack.api.v2.NetworkAddressFamilyB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x05R\raddressFamily\x88\x01\x01\x42\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0c\n\n_partitionB\x11\n\x0f_parent_networkB\t\n\x07_lengthB\x11\n\x0f_address_family\"T\n\x1cNetworkServiceCreateResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"\xe2\x02\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\x07project\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12$\n\x04name\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x04name\x88\x01\x01\x12\x32\n\x0b\x64\x65scription\x18\x05 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x01R\x0b\x64\x65scription\x88\x01\x01\x12<\n\x06labels\x18\x06 \x01(\x0b\x32\x1f.metalstack.api.v2.UpdateLabelsH\x02R\x06labels\x88\x01\x01\x42\x07\n\x05_nameB\x0e\n\x0c_descriptionB\t\n\x07_labels\"T\n\x1cNetworkServiceUpdateResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"y\n\x19NetworkServiceListRequest\x12%\n\x07project\x18\x01 \x01(\tB\x0b\xbaH\x08r\x03\xb0\x01\x01\xd8\x01\x01R\x07project\x12\x35\n\x05query\x18\x02 \x01(\x0b\x32\x1f.metalstack.api.v2.NetworkQueryR\x05query\"T\n\x1aNetworkServiceListResponse\x12\x36\n\x08networks\x18\x01 \x03(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x08networks\"\x85\x01\n%NetworkServiceListBaseNetworksRequest\x12%\n\x07project\x18\x01 \x01(\tB\x0b\xbaH\x08r\x03\xb0\x01\x01\xd8\x01\x01R\x07project\x12\x35\n\x05query\x18\x02 \x01(\x0b\x32\x1f.metalstack.api.v2.NetworkQueryR\x05query\"`\n&NetworkServiceListBaseNetworksResponse\x12\x36\n\x08networks\x18\x01 \x03(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x08networks\"^\n\x1bNetworkServiceDeleteRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\x12\"\n\x07project\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\"T\n\x1cNetworkServiceDeleteResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"\xa4\x08\n\x07Network\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\x12+\n\x04meta\x18\x02 \x01(\x0b\x32\x17.metalstack.api.v2.MetaR\x04meta\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\tpartition\x18\x05 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x02R\tpartition\x88\x01\x01\x12\'\n\x07project\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x03R\x07project\x88\x01\x01\x12+\n\tnamespace\x18\x07 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x04R\tnamespace\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<\n\x04type\x18\x0c \x01(\x0e\x32\x1e.metalstack.api.v2.NetworkTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x04type\x12?\n\x08nat_type\x18\r \x01(\x0e\x32\x1a.metalstack.api.v2.NATTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x07natType\x12\x15\n\x03vrf\x18\x0e \x01(\rH\x05R\x03vrf\x88\x01\x01\x12\x37\n\x0eparent_network\x18\x0f \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x06R\rparentNetwork\x88\x01\x01\x12N\n\x1c\x61\x64\x64itional_announcable_cidrs\x18\x10 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x1a\x61\x64\x64itionalAnnouncableCidrs\x12G\n\x0b\x63onsumption\x18\x11 \x01(\x0b\x32%.metalstack.api.v2.NetworkConsumptionR\x0b\x63onsumptionB\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0c\n\n_partitionB\n\n\x08_projectB\x0c\n\n_namespaceB\x06\n\x04_vrfB\x11\n\x0f_parent_network\"\x82\x07\n\x0cNetworkQuery\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\tnamespace\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x05R\tnamespace\x88\x01\x01\x12(\n\x08prefixes\x18\x07 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x08prefixes\x12?\n\x14\x64\x65stination_prefixes\x18\x08 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x13\x64\x65stinationPrefixes\x12\x15\n\x03vrf\x18\t \x01(\rH\x06R\x03vrf\x88\x01\x01\x12\x37\n\x0eparent_network\x18\n \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x07R\rparentNetwork\x88\x01\x01\x12]\n\x0e\x61\x64\x64ress_family\x18\x0b \x01(\x0e\x32\'.metalstack.api.v2.NetworkAddressFamilyB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x08R\raddressFamily\x88\x01\x01\x12\x41\n\x04type\x18\x0c \x01(\x0e\x32\x1e.metalstack.api.v2.NetworkTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01H\tR\x04type\x88\x01\x01\x12\x44\n\x08nat_type\x18\r \x01(\x0e\x32\x1a.metalstack.api.v2.NATTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01H\nR\x07natType\x88\x01\x01\x12\x36\n\x06labels\x18\x0e \x01(\x0b\x32\x19.metalstack.api.v2.LabelsH\x0bR\x06labels\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0c\n\n_partitionB\n\n\x08_projectB\x0c\n\n_namespaceB\x06\n\x04_vrfB\x11\n\x0f_parent_networkB\x11\n\x0f_address_familyB\x07\n\x05_typeB\x0b\n\t_nat_typeB\t\n\x07_labels\"\xc0\x01\n\x1a\x45xternalNetworkMemberQuery\x12*\n\x06switch\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01H\x00R\x06switch\x88\x01\x01\x12$\n\x04rack\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x04rack\x88\x01\x01\x12.\n\tpartition\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x02R\tpartition\x88\x01\x01\x42\t\n\x07_switchB\x07\n\x05_rackB\x0c\n\n_partition\"n\n\x11\x43hildPrefixLength\x12\"\n\x04ipv4\x18\x01 \x01(\rB\t\xbaH\x06*\x04\x18 \x00H\x00R\x04ipv4\x88\x01\x01\x12#\n\x04ipv6\x18\x02 \x01(\rB\n\xbaH\x07*\x05\x18\x80\x01 \x00H\x01R\x04ipv6\x88\x01\x01\x42\x07\n\x05_ipv4B\x07\n\x05_ipv6\"~\n\x12NetworkConsumption\x12\x33\n\x04ipv4\x18\x01 \x01(\x0b\x32\x1f.metalstack.api.v2.NetworkUsageR\x04ipv4\x12\x33\n\x04ipv6\x18\x02 \x01(\x0b\x32\x1f.metalstack.api.v2.NetworkUsageR\x04ipv6\"\xa2\x01\n\x0cNetworkUsage\x12#\n\ravailable_ips\x18\x01 \x01(\x04R\x0c\x61vailableIps\x12\x19\n\x08used_ips\x18\x02 \x01(\x04R\x07usedIps\x12-\n\x12\x61vailable_prefixes\x18\x03 \x01(\x04R\x11\x61vailablePrefixes\x12#\n\rused_prefixes\x18\x04 \x01(\x04R\x0cusedPrefixes\"c\n\x15\x45xternalNetworkMember\x12#\n\x06switch\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x06switch\x12%\n\x05ports\x18\x02 \x03(\tB\x0f\xbaH\x0c\x92\x01\t\x10\x80\x10\xd0\xa4\xb3\xb1\x02\x01R\x05ports*m\n\x07NATType\x12\x18\n\x14NAT_TYPE_UNSPECIFIED\x10\x00\x12\x1b\n\rNAT_TYPE_NONE\x10\x01\x1a\x08\x82\xb2\x19\x04none\x12+\n\x18NAT_TYPE_IPV4_MASQUERADE\x10\x02\x1a\r\x82\xb2\x19\tipv4-masq*\xad\x02\n\x0bNetworkType\x12\x1c\n\x18NETWORK_TYPE_UNSPECIFIED\x10\x00\x12\'\n\x15NETWORK_TYPE_EXTERNAL\x10\x01\x1a\x0c\x82\xb2\x19\x08\x65xternal\x12\'\n\x15NETWORK_TYPE_UNDERLAY\x10\x02\x1a\x0c\x82\xb2\x19\x08underlay\x12!\n\x12NETWORK_TYPE_SUPER\x10\x03\x1a\t\x82\xb2\x19\x05super\x12\x37\n\x1dNETWORK_TYPE_SUPER_NAMESPACED\x10\x04\x1a\x14\x82\xb2\x19\x10super-namespaced\x12!\n\x12NETWORK_TYPE_CHILD\x10\x05\x1a\t\x82\xb2\x19\x05\x63hild\x12/\n\x19NETWORK_TYPE_CHILD_SHARED\x10\x06\x1a\x10\x82\xb2\x19\x0c\x63hild-shared*\xc7\x01\n\x14NetworkAddressFamily\x12&\n\"NETWORK_ADDRESS_FAMILY_UNSPECIFIED\x10\x00\x12\'\n\x19NETWORK_ADDRESS_FAMILY_V4\x10\x01\x1a\x08\x82\xb2\x19\x04ipv4\x12\'\n\x19NETWORK_ADDRESS_FAMILY_V6\x10\x02\x1a\x08\x82\xb2\x19\x04ipv6\x12\x35\n!NETWORK_ADDRESS_FAMILY_DUAL_STACK\x10\x03\x1a\x0e\x82\xb2\x19\ndual-stack2\xed\x05\n\x0eNetworkService\x12m\n\x03Get\x12+.metalstack.api.v2.NetworkServiceGetRequest\x1a,.metalstack.api.v2.NetworkServiceGetResponse\"\x0b\xca\xf3\x18\x03\x01\x02\x03\xe0\xf3\x18\x02\x12u\n\x06\x43reate\x12..metalstack.api.v2.NetworkServiceCreateRequest\x1a/.metalstack.api.v2.NetworkServiceCreateResponse\"\n\xca\xf3\x18\x02\x01\x02\xe0\xf3\x18\x01\x12u\n\x06Update\x12..metalstack.api.v2.NetworkServiceUpdateRequest\x1a/.metalstack.api.v2.NetworkServiceUpdateResponse\"\n\xca\xf3\x18\x02\x01\x02\xe0\xf3\x18\x01\x12p\n\x04List\x12,.metalstack.api.v2.NetworkServiceListRequest\x1a-.metalstack.api.v2.NetworkServiceListResponse\"\x0b\xca\xf3\x18\x03\x01\x02\x03\xe0\xf3\x18\x02\x12\x94\x01\n\x10ListBaseNetworks\x12\x38.metalstack.api.v2.NetworkServiceListBaseNetworksRequest\x1a\x39.metalstack.api.v2.NetworkServiceListBaseNetworksResponse\"\x0b\xca\xf3\x18\x03\x01\x02\x03\xe0\xf3\x18\x02\x12u\n\x06\x44\x65lete\x12..metalstack.api.v2.NetworkServiceDeleteRequest\x1a/.metalstack.api.v2.NetworkServiceDeleteResponse\"\n\xca\xf3\x18\x02\x01\x02\xe0\xf3\x18\x01\x42\xc2\x01\n\x15\x63om.metalstack.api.v2B\x0cNetworkProtoP\x01Z5github.com/metal-stack/api/go/metalstack/api/v2;apiv2\xa2\x02\x03MAX\xaa\x02\x11Metalstack.Api.V2\xca\x02\x11Metalstack\\Api\\V2\xe2\x02\x1dMetalstack\\Api\\V2\\GPBMetadata\xea\x02\x13Metalstack::Api::V2b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fmetalstack/api/v2/network.proto\x12\x11metalstack.api.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1emetalstack/api/v2/common.proto\x1a(metalstack/api/v2/predefined_rules.proto\"^\n\x18NetworkServiceGetRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\x12%\n\x07project\x18\x02 \x01(\tB\x0b\xbaH\x08r\x03\xb0\x01\x01\xd8\x01\x01R\x07project\"Q\n\x19NetworkServiceGetResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"\xb1\x04\n\x1bNetworkServiceCreateRequest\x12\"\n\x07project\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12$\n\x04name\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x04name\x88\x01\x01\x12\x32\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x01R\x0b\x64\x65scription\x88\x01\x01\x12.\n\tpartition\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x02R\tpartition\x88\x01\x01\x12\x31\n\x06labels\x18\x05 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsR\x06labels\x12\x37\n\x0eparent_network\x18\x06 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x03R\rparentNetwork\x88\x01\x01\x12\x41\n\x06length\x18\x07 \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthH\x04R\x06length\x88\x01\x01\x12]\n\x0e\x61\x64\x64ress_family\x18\x08 \x01(\x0e\x32\'.metalstack.api.v2.NetworkAddressFamilyB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x05R\raddressFamily\x88\x01\x01\x42\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0c\n\n_partitionB\x11\n\x0f_parent_networkB\t\n\x07_lengthB\x11\n\x0f_address_family\"T\n\x1cNetworkServiceCreateResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"\xe2\x02\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\x07project\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12$\n\x04name\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x04name\x88\x01\x01\x12\x32\n\x0b\x64\x65scription\x18\x05 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x01R\x0b\x64\x65scription\x88\x01\x01\x12<\n\x06labels\x18\x06 \x01(\x0b\x32\x1f.metalstack.api.v2.UpdateLabelsH\x02R\x06labels\x88\x01\x01\x42\x07\n\x05_nameB\x0e\n\x0c_descriptionB\t\n\x07_labels\"T\n\x1cNetworkServiceUpdateResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"y\n\x19NetworkServiceListRequest\x12%\n\x07project\x18\x01 \x01(\tB\x0b\xbaH\x08r\x03\xb0\x01\x01\xd8\x01\x01R\x07project\x12\x35\n\x05query\x18\x02 \x01(\x0b\x32\x1f.metalstack.api.v2.NetworkQueryR\x05query\"T\n\x1aNetworkServiceListResponse\x12\x36\n\x08networks\x18\x01 \x03(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x08networks\"\x85\x01\n%NetworkServiceListBaseNetworksRequest\x12%\n\x07project\x18\x01 \x01(\tB\x0b\xbaH\x08r\x03\xb0\x01\x01\xd8\x01\x01R\x07project\x12\x35\n\x05query\x18\x02 \x01(\x0b\x32\x1f.metalstack.api.v2.NetworkQueryR\x05query\"`\n&NetworkServiceListBaseNetworksResponse\x12\x36\n\x08networks\x18\x01 \x03(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x08networks\"^\n\x1bNetworkServiceDeleteRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\x12\"\n\x07project\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\"T\n\x1cNetworkServiceDeleteResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"\xa4\x08\n\x07Network\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\x12+\n\x04meta\x18\x02 \x01(\x0b\x32\x17.metalstack.api.v2.MetaR\x04meta\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\tpartition\x18\x05 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x02R\tpartition\x88\x01\x01\x12\'\n\x07project\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x03R\x07project\x88\x01\x01\x12+\n\tnamespace\x18\x07 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x04R\tnamespace\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<\n\x04type\x18\x0c \x01(\x0e\x32\x1e.metalstack.api.v2.NetworkTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x04type\x12?\n\x08nat_type\x18\r \x01(\x0e\x32\x1a.metalstack.api.v2.NATTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x07natType\x12\x15\n\x03vrf\x18\x0e \x01(\rH\x05R\x03vrf\x88\x01\x01\x12\x37\n\x0eparent_network\x18\x0f \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x06R\rparentNetwork\x88\x01\x01\x12N\n\x1c\x61\x64\x64itional_announcable_cidrs\x18\x10 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x1a\x61\x64\x64itionalAnnouncableCidrs\x12G\n\x0b\x63onsumption\x18\x11 \x01(\x0b\x32%.metalstack.api.v2.NetworkConsumptionR\x0b\x63onsumptionB\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0c\n\n_partitionB\n\n\x08_projectB\x0c\n\n_namespaceB\x06\n\x04_vrfB\x11\n\x0f_parent_network\"\x82\x07\n\x0cNetworkQuery\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\tnamespace\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x05R\tnamespace\x88\x01\x01\x12(\n\x08prefixes\x18\x07 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x08prefixes\x12?\n\x14\x64\x65stination_prefixes\x18\x08 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x13\x64\x65stinationPrefixes\x12\x15\n\x03vrf\x18\t \x01(\rH\x06R\x03vrf\x88\x01\x01\x12\x37\n\x0eparent_network\x18\n \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x07R\rparentNetwork\x88\x01\x01\x12]\n\x0e\x61\x64\x64ress_family\x18\x0b \x01(\x0e\x32\'.metalstack.api.v2.NetworkAddressFamilyB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x08R\raddressFamily\x88\x01\x01\x12\x41\n\x04type\x18\x0c \x01(\x0e\x32\x1e.metalstack.api.v2.NetworkTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01H\tR\x04type\x88\x01\x01\x12\x44\n\x08nat_type\x18\r \x01(\x0e\x32\x1a.metalstack.api.v2.NATTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01H\nR\x07natType\x88\x01\x01\x12\x36\n\x06labels\x18\x0e \x01(\x0b\x32\x19.metalstack.api.v2.LabelsH\x0bR\x06labels\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0c\n\n_partitionB\n\n\x08_projectB\x0c\n\n_namespaceB\x06\n\x04_vrfB\x11\n\x0f_parent_networkB\x11\n\x0f_address_familyB\x07\n\x05_typeB\x0b\n\t_nat_typeB\t\n\x07_labels\"\xc0\x01\n\x1a\x45xternalNetworkMemberQuery\x12*\n\x06switch\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01H\x00R\x06switch\x88\x01\x01\x12$\n\x04rack\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x04rack\x88\x01\x01\x12.\n\tpartition\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x02R\tpartition\x88\x01\x01\x42\t\n\x07_switchB\x07\n\x05_rackB\x0c\n\n_partition\"n\n\x11\x43hildPrefixLength\x12\"\n\x04ipv4\x18\x01 \x01(\rB\t\xbaH\x06*\x04\x18 \x00H\x00R\x04ipv4\x88\x01\x01\x12#\n\x04ipv6\x18\x02 \x01(\rB\n\xbaH\x07*\x05\x18\x80\x01 \x00H\x01R\x04ipv6\x88\x01\x01\x42\x07\n\x05_ipv4B\x07\n\x05_ipv6\"~\n\x12NetworkConsumption\x12\x33\n\x04ipv4\x18\x01 \x01(\x0b\x32\x1f.metalstack.api.v2.NetworkUsageR\x04ipv4\x12\x33\n\x04ipv6\x18\x02 \x01(\x0b\x32\x1f.metalstack.api.v2.NetworkUsageR\x04ipv6\"\xa2\x01\n\x0cNetworkUsage\x12#\n\ravailable_ips\x18\x01 \x01(\x04R\x0c\x61vailableIps\x12\x19\n\x08used_ips\x18\x02 \x01(\x04R\x07usedIps\x12-\n\x12\x61vailable_prefixes\x18\x03 \x01(\x04R\x11\x61vailablePrefixes\x12#\n\rused_prefixes\x18\x04 \x01(\x04R\x0cusedPrefixes\"\xbd\x01\n\x15\x45xternalNetworkMember\x12#\n\x06switch\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x06switch\x12)\n\tpartition\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01R\tpartition\x12$\n\x04rack\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x04rack\x88\x01\x01\x12%\n\x05ports\x18\x04 \x03(\tB\x0f\xbaH\x0c\x92\x01\t\x10\x80\x10\xd0\xa4\xb3\xb1\x02\x01R\x05portsB\x07\n\x05_rack*m\n\x07NATType\x12\x18\n\x14NAT_TYPE_UNSPECIFIED\x10\x00\x12\x1b\n\rNAT_TYPE_NONE\x10\x01\x1a\x08\x82\xb2\x19\x04none\x12+\n\x18NAT_TYPE_IPV4_MASQUERADE\x10\x02\x1a\r\x82\xb2\x19\tipv4-masq*\xad\x02\n\x0bNetworkType\x12\x1c\n\x18NETWORK_TYPE_UNSPECIFIED\x10\x00\x12\'\n\x15NETWORK_TYPE_EXTERNAL\x10\x01\x1a\x0c\x82\xb2\x19\x08\x65xternal\x12\'\n\x15NETWORK_TYPE_UNDERLAY\x10\x02\x1a\x0c\x82\xb2\x19\x08underlay\x12!\n\x12NETWORK_TYPE_SUPER\x10\x03\x1a\t\x82\xb2\x19\x05super\x12\x37\n\x1dNETWORK_TYPE_SUPER_NAMESPACED\x10\x04\x1a\x14\x82\xb2\x19\x10super-namespaced\x12!\n\x12NETWORK_TYPE_CHILD\x10\x05\x1a\t\x82\xb2\x19\x05\x63hild\x12/\n\x19NETWORK_TYPE_CHILD_SHARED\x10\x06\x1a\x10\x82\xb2\x19\x0c\x63hild-shared*\xc7\x01\n\x14NetworkAddressFamily\x12&\n\"NETWORK_ADDRESS_FAMILY_UNSPECIFIED\x10\x00\x12\'\n\x19NETWORK_ADDRESS_FAMILY_V4\x10\x01\x1a\x08\x82\xb2\x19\x04ipv4\x12\'\n\x19NETWORK_ADDRESS_FAMILY_V6\x10\x02\x1a\x08\x82\xb2\x19\x04ipv6\x12\x35\n!NETWORK_ADDRESS_FAMILY_DUAL_STACK\x10\x03\x1a\x0e\x82\xb2\x19\ndual-stack2\xed\x05\n\x0eNetworkService\x12m\n\x03Get\x12+.metalstack.api.v2.NetworkServiceGetRequest\x1a,.metalstack.api.v2.NetworkServiceGetResponse\"\x0b\xca\xf3\x18\x03\x01\x02\x03\xe0\xf3\x18\x02\x12u\n\x06\x43reate\x12..metalstack.api.v2.NetworkServiceCreateRequest\x1a/.metalstack.api.v2.NetworkServiceCreateResponse\"\n\xca\xf3\x18\x02\x01\x02\xe0\xf3\x18\x01\x12u\n\x06Update\x12..metalstack.api.v2.NetworkServiceUpdateRequest\x1a/.metalstack.api.v2.NetworkServiceUpdateResponse\"\n\xca\xf3\x18\x02\x01\x02\xe0\xf3\x18\x01\x12p\n\x04List\x12,.metalstack.api.v2.NetworkServiceListRequest\x1a-.metalstack.api.v2.NetworkServiceListResponse\"\x0b\xca\xf3\x18\x03\x01\x02\x03\xe0\xf3\x18\x02\x12\x94\x01\n\x10ListBaseNetworks\x12\x38.metalstack.api.v2.NetworkServiceListBaseNetworksRequest\x1a\x39.metalstack.api.v2.NetworkServiceListBaseNetworksResponse\"\x0b\xca\xf3\x18\x03\x01\x02\x03\xe0\xf3\x18\x02\x12u\n\x06\x44\x65lete\x12..metalstack.api.v2.NetworkServiceDeleteRequest\x1a/.metalstack.api.v2.NetworkServiceDeleteResponse\"\n\xca\xf3\x18\x02\x01\x02\xe0\xf3\x18\x01\x42\xc2\x01\n\x15\x63om.metalstack.api.v2B\x0cNetworkProtoP\x01Z5github.com/metal-stack/api/go/metalstack/api/v2;apiv2\xa2\x02\x03MAX\xaa\x02\x11Metalstack.Api.V2\xca\x02\x11Metalstack\\Api\\V2\xe2\x02\x1dMetalstack\\Api\\V2\\GPBMetadata\xea\x02\x13Metalstack::Api::V2b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -151,6 +151,10 @@ _globals['_CHILDPREFIXLENGTH'].fields_by_name['ipv6']._serialized_options = b'\272H\007*\005\030\200\001 \000' _globals['_EXTERNALNETWORKMEMBER'].fields_by_name['switch']._loaded_options = None _globals['_EXTERNALNETWORKMEMBER'].fields_by_name['switch']._serialized_options = b'\272H\010r\006\300\263\256\261\002\001' + _globals['_EXTERNALNETWORKMEMBER'].fields_by_name['partition']._loaded_options = None + _globals['_EXTERNALNETWORKMEMBER'].fields_by_name['partition']._serialized_options = b'\272H\010r\006\320\263\256\261\002\001' + _globals['_EXTERNALNETWORKMEMBER'].fields_by_name['rack']._loaded_options = None + _globals['_EXTERNALNETWORKMEMBER'].fields_by_name['rack']._serialized_options = b'\272H\010r\006\300\263\256\261\002\001' _globals['_EXTERNALNETWORKMEMBER'].fields_by_name['ports']._loaded_options = None _globals['_EXTERNALNETWORKMEMBER'].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 @@ -165,12 +169,12 @@ _globals['_NETWORKSERVICE'].methods_by_name['ListBaseNetworks']._serialized_options = b'\312\363\030\003\001\002\003\340\363\030\002' _globals['_NETWORKSERVICE'].methods_by_name['Delete']._loaded_options = None _globals['_NETWORKSERVICE'].methods_by_name['Delete']._serialized_options = b'\312\363\030\002\001\002\340\363\030\001' - _globals['_NATTYPE']._serialized_start=4719 - _globals['_NATTYPE']._serialized_end=4828 - _globals['_NETWORKTYPE']._serialized_start=4831 - _globals['_NETWORKTYPE']._serialized_end=5132 - _globals['_NETWORKADDRESSFAMILY']._serialized_start=5135 - _globals['_NETWORKADDRESSFAMILY']._serialized_end=5334 + _globals['_NATTYPE']._serialized_start=4810 + _globals['_NATTYPE']._serialized_end=4919 + _globals['_NETWORKTYPE']._serialized_start=4922 + _globals['_NETWORKTYPE']._serialized_end=5223 + _globals['_NETWORKADDRESSFAMILY']._serialized_start=5226 + _globals['_NETWORKADDRESSFAMILY']._serialized_end=5425 _globals['_NETWORKSERVICEGETREQUEST']._serialized_start=157 _globals['_NETWORKSERVICEGETREQUEST']._serialized_end=251 _globals['_NETWORKSERVICEGETRESPONSE']._serialized_start=253 @@ -207,8 +211,8 @@ _globals['_NETWORKCONSUMPTION']._serialized_end=4451 _globals['_NETWORKUSAGE']._serialized_start=4454 _globals['_NETWORKUSAGE']._serialized_end=4616 - _globals['_EXTERNALNETWORKMEMBER']._serialized_start=4618 - _globals['_EXTERNALNETWORKMEMBER']._serialized_end=4717 - _globals['_NETWORKSERVICE']._serialized_start=5337 - _globals['_NETWORKSERVICE']._serialized_end=6086 + _globals['_EXTERNALNETWORKMEMBER']._serialized_start=4619 + _globals['_EXTERNALNETWORKMEMBER']._serialized_end=4808 + _globals['_NETWORKSERVICE']._serialized_start=5428 + _globals['_NETWORKSERVICE']._serialized_end=6177 # @@protoc_insertion_point(module_scope) diff --git a/python/metalstack/api/v2/network_pb2.pyi b/python/metalstack/api/v2/network_pb2.pyi index bd760212..13610805 100644 --- a/python/metalstack/api/v2/network_pb2.pyi +++ b/python/metalstack/api/v2/network_pb2.pyi @@ -260,9 +260,13 @@ class NetworkUsage(_message.Message): def __init__(self, available_ips: _Optional[int] = ..., used_ips: _Optional[int] = ..., available_prefixes: _Optional[int] = ..., used_prefixes: _Optional[int] = ...) -> None: ... class ExternalNetworkMember(_message.Message): - __slots__ = ("switch", "ports") + __slots__ = ("switch", "partition", "rack", "ports") SWITCH_FIELD_NUMBER: _ClassVar[int] + PARTITION_FIELD_NUMBER: _ClassVar[int] + RACK_FIELD_NUMBER: _ClassVar[int] PORTS_FIELD_NUMBER: _ClassVar[int] switch: str + partition: str + rack: str ports: _containers.RepeatedScalarFieldContainer[str] - def __init__(self, switch: _Optional[str] = ..., ports: _Optional[_Iterable[str]] = ...) -> None: ... + def __init__(self, switch: _Optional[str] = ..., partition: _Optional[str] = ..., rack: _Optional[str] = ..., ports: _Optional[_Iterable[str]] = ...) -> None: ... From c58acb0d1dbacdf792adf6952b130ae734e2d2e7 Mon Sep 17 00:00:00 2001 From: Ilja Rotar Date: Wed, 9 Sep 2026 11:03:23 +0200 Subject: [PATCH 6/9] rack is not optional for a member --- doc/index.html | 2 +- go/metalstack/api/v2/network.pb.go | 16 +++++++--------- js/metalstack/api/v2/network_pb.d.ts | 4 ++-- js/metalstack/api/v2/network_pb.js | 2 +- js/metalstack/api/v2/network_pb.ts | 6 +++--- proto/metalstack/api/v2/network.proto | 2 +- python/metalstack/api/v2/network_pb2.py | 20 ++++++++++---------- 7 files changed, 25 insertions(+), 27 deletions(-) diff --git a/doc/index.html b/doc/index.html index 32142afe..25e06c6d 100644 --- a/doc/index.html +++ b/doc/index.html @@ -8588,7 +8588,7 @@

    ExternalNetworkMember

    rack string - optional +

    Rack of the switch.

    diff --git a/go/metalstack/api/v2/network.pb.go b/go/metalstack/api/v2/network.pb.go index f845a862..a0c12503 100644 --- a/go/metalstack/api/v2/network.pb.go +++ b/go/metalstack/api/v2/network.pb.go @@ -1529,7 +1529,7 @@ type ExternalNetworkMember struct { // Partition of the switch. Partition string `protobuf:"bytes,2,opt,name=partition,proto3" json:"partition,omitempty"` // Rack of the switch. - Rack *string `protobuf:"bytes,3,opt,name=rack,proto3,oneof" json:"rack,omitempty"` + Rack string `protobuf:"bytes,3,opt,name=rack,proto3" json:"rack,omitempty"` // Ports of the switch that participate in the network. Ports []string `protobuf:"bytes,4,rep,name=ports,proto3" json:"ports,omitempty"` unknownFields protoimpl.UnknownFields @@ -1581,8 +1581,8 @@ func (x *ExternalNetworkMember) GetPartition() string { } func (x *ExternalNetworkMember) GetRack() string { - if x != nil && x.Rack != nil { - return *x.Rack + if x != nil { + return x.Rack } return "" } @@ -1733,13 +1733,12 @@ const file_metalstack_api_v2_network_proto_rawDesc = "" + "\ravailable_ips\x18\x01 \x01(\x04R\favailableIps\x12\x19\n" + "\bused_ips\x18\x02 \x01(\x04R\ausedIps\x12-\n" + "\x12available_prefixes\x18\x03 \x01(\x04R\x11availablePrefixes\x12#\n" + - "\rused_prefixes\x18\x04 \x01(\x04R\fusedPrefixes\"\xbd\x01\n" + + "\rused_prefixes\x18\x04 \x01(\x04R\fusedPrefixes\"\xaf\x01\n" + "\x15ExternalNetworkMember\x12#\n" + "\x06switch\x18\x01 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01R\x06switch\x12)\n" + - "\tpartition\x18\x02 \x01(\tB\v\xbaH\br\x06г\xae\xb1\x02\x01R\tpartition\x12$\n" + - "\x04rack\x18\x03 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x04rack\x88\x01\x01\x12%\n" + - "\x05ports\x18\x04 \x03(\tB\x0f\xbaH\f\x92\x01\tФ\xb3\xb1\x02\x01\x10\x80\x10R\x05portsB\a\n" + - "\x05_rack*m\n" + + "\tpartition\x18\x02 \x01(\tB\v\xbaH\br\x06г\xae\xb1\x02\x01R\tpartition\x12\x1f\n" + + "\x04rack\x18\x03 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01R\x04rack\x12%\n" + + "\x05ports\x18\x04 \x03(\tB\x0f\xbaH\f\x92\x01\tФ\xb3\xb1\x02\x01\x10\x80\x10R\x05ports*m\n" + "\aNATType\x12\x18\n" + "\x14NAT_TYPE_UNSPECIFIED\x10\x00\x12\x1b\n" + "\rNAT_TYPE_NONE\x10\x01\x1a\b\x82\xb2\x19\x04none\x12+\n" + @@ -1870,7 +1869,6 @@ func file_metalstack_api_v2_network_proto_init() { file_metalstack_api_v2_network_proto_msgTypes[13].OneofWrappers = []any{} file_metalstack_api_v2_network_proto_msgTypes[14].OneofWrappers = []any{} file_metalstack_api_v2_network_proto_msgTypes[15].OneofWrappers = []any{} - file_metalstack_api_v2_network_proto_msgTypes[18].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/js/metalstack/api/v2/network_pb.d.ts b/js/metalstack/api/v2/network_pb.d.ts index efde5f08..df5c4ac0 100644 --- a/js/metalstack/api/v2/network_pb.d.ts +++ b/js/metalstack/api/v2/network_pb.d.ts @@ -663,9 +663,9 @@ export type ExternalNetworkMember = Message<"metalstack.api.v2.ExternalNetworkMe /** * Rack of the switch. * - * @generated from field: optional string rack = 3; + * @generated from field: string rack = 3; */ - rack?: string | undefined; + rack: string; /** * Ports of the switch that participate in the network. * diff --git a/js/metalstack/api/v2/network_pb.js b/js/metalstack/api/v2/network_pb.js index 6b35a48b..2f288c92 100644 --- a/js/metalstack/api/v2/network_pb.js +++ b/js/metalstack/api/v2/network_pb.js @@ -8,7 +8,7 @@ import { file_metalstack_api_v2_predefined_rules } from "./predefined_rules_pb"; /** * Describes the file metalstack/api/v2/network.proto. */ -export const file_metalstack_api_v2_network = /*@__PURE__*/ fileDesc("Ch9tZXRhbHN0YWNrL2FwaS92Mi9uZXR3b3JrLnByb3RvEhFtZXRhbHN0YWNrLmFwaS52MiJRChhOZXR3b3JrU2VydmljZUdldFJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEhwKB3Byb2plY3QYAiABKAlCC7pICNgBAXIDsAEBIkgKGU5ldHdvcmtTZXJ2aWNlR2V0UmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsi3AMKG05ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABARIeCgRuYW1lGAIgASgJQgu6SAhyBsCzrrECAUgAiAEBEiUKC2Rlc2NyaXB0aW9uGAMgASgJQgu6SAhyBsizrrECAUgBiAEBEiMKCXBhcnRpdGlvbhgEIAEoCUILukgIcgbQs66xAgFIAogBARIpCgZsYWJlbHMYBSABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5MYWJlbHMSKAoOcGFyZW50X25ldHdvcmsYBiABKAlCC7pICHIGwLOusQIBSAOIAQESOQoGbGVuZ3RoGAcgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhIBIgBARJOCg5hZGRyZXNzX2ZhbWlseRgIIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgFiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIMCgpfcGFydGl0aW9uQhEKD19wYXJlbnRfbmV0d29ya0IJCgdfbGVuZ3RoQhEKD19hZGRyZXNzX2ZhbWlseSJLChxOZXR3b3JrU2VydmljZUNyZWF0ZVJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrIq4CChtOZXR3b3JrU2VydmljZVVwZGF0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEjoKC3VwZGF0ZV9tZXRhGAIgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTWV0YUIGukgDyAEBEhkKB3Byb2plY3QYAyABKAlCCLpIBXIDsAEBEh4KBG5hbWUYBCABKAlCC7pICHIGwLOusQIBSACIAQESJQoLZGVzY3JpcHRpb24YBSABKAlCC7pICHIGyLOusQIBSAGIAQESNAoGbGFiZWxzGAYgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTGFiZWxzSAKIAQFCBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQgkKB19sYWJlbHMiSwocTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJpChlOZXR3b3JrU2VydmljZUxpc3RSZXF1ZXN0EhwKB3Byb2plY3QYASABKAlCC7pICNgBAXIDsAEBEi4KBXF1ZXJ5GAIgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1F1ZXJ5IkoKGk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJ1CiVOZXR3b3JrU2VydmljZUxpc3RCYXNlTmV0d29ya3NSZXF1ZXN0EhwKB3Byb2plY3QYASABKAlCC7pICNgBAXIDsAEBEi4KBXF1ZXJ5GAIgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1F1ZXJ5IlYKJk5ldHdvcmtTZXJ2aWNlTGlzdEJhc2VOZXR3b3Jrc1Jlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJRChtOZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEhkKB3Byb2plY3QYAiABKAlCCLpIBXIDsAEBIksKHE5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsizQYKB05ldHdvcmsSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEiUKBG1ldGEYAiABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhEh4KBG5hbWUYAyABKAlCC7pICHIGwLOusQIBSACIAQESJQoLZGVzY3JpcHRpb24YBCABKAlCC7pICHIGyLOusQIBSAGIAQESIwoJcGFydGl0aW9uGAUgASgJQgu6SAhyBtCzrrECAUgCiAEBEh4KB3Byb2plY3QYBiABKAlCCLpIBXIDsAEBSAOIAQESIAoJbmFtZXNwYWNlGAcgASgJQgi6SAVyA7ABAUgEiAEBEh4KCHByZWZpeGVzGAggAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCSADKAlCDLpICZIBBriks7ECARJJChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCiABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aBJFChdtaW5fY2hpbGRfcHJlZml4X2xlbmd0aBgLIAEoCzIkLm1ldGFsc3RhY2suYXBpLnYyLkNoaWxkUHJlZml4TGVuZ3RoEjYKBHR5cGUYDCABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrVHlwZUIIukgFggECEAESNgoIbmF0X3R5cGUYDSABKA4yGi5tZXRhbHN0YWNrLmFwaS52Mi5OQVRUeXBlQgi6SAWCAQIQARIQCgN2cmYYDiABKA1IBYgBARIoCg5wYXJlbnRfbmV0d29yaxgPIAEoCUILukgIcgbAs66xAgFIBogBARIyChxhZGRpdGlvbmFsX2Fubm91bmNhYmxlX2NpZHJzGBAgAygJQgy6SAmSAQa4pLOxAgESOgoLY29uc3VtcHRpb24YESABKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrQ29uc3VtcHRpb25CBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQgwKCl9wYXJ0aXRpb25CCgoIX3Byb2plY3RCDAoKX25hbWVzcGFjZUIGCgRfdnJmQhEKD19wYXJlbnRfbmV0d29yayLzBQoMTmV0d29ya1F1ZXJ5EhwKAmlkGAEgASgJQgu6SAhyBsCzrrECAUgAiAEBEh4KBG5hbWUYAiABKAlCC7pICHIGwLOusQIBSAGIAQESJQoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBSAKIAQESIwoJcGFydGl0aW9uGAQgASgJQgu6SAhyBtCzrrECAUgDiAEBEh4KB3Byb2plY3QYBSABKAlCCLpIBXIDsAEBSASIAQESIAoJbmFtZXNwYWNlGAYgASgJQgi6SAVyA7ABAUgFiAEBEh4KCHByZWZpeGVzGAcgAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCCADKAlCDLpICZIBBriks7ECARIQCgN2cmYYCSABKA1IBogBARIoCg5wYXJlbnRfbmV0d29yaxgKIAEoCUILukgIcgbAs66xAgFIB4gBARJOCg5hZGRyZXNzX2ZhbWlseRgLIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgIiAEBEjsKBHR5cGUYDCABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrVHlwZUIIukgFggECEAFICYgBARI7CghuYXRfdHlwZRgNIAEoDjIaLm1ldGFsc3RhY2suYXBpLnYyLk5BVFR5cGVCCLpIBYIBAhABSAqIAQESLgoGbGFiZWxzGA4gASgLMhkubWV0YWxzdGFjay5hcGkudjIuTGFiZWxzSAuIAQFCBQoDX2lkQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIMCgpfcGFydGl0aW9uQgoKCF9wcm9qZWN0QgwKCl9uYW1lc3BhY2VCBgoEX3ZyZkIRCg9fcGFyZW50X25ldHdvcmtCEQoPX2FkZHJlc3NfZmFtaWx5QgcKBV90eXBlQgsKCV9uYXRfdHlwZUIJCgdfbGFiZWxzIqcBChpFeHRlcm5hbE5ldHdvcmtNZW1iZXJRdWVyeRIiCgZzd2l0Y2gYASABKAlCDbpICnIIwLOusQIBaAFIAIgBARIeCgRyYWNrGAIgASgJQgu6SAhyBsCzrrECAUgBiAEBEiMKCXBhcnRpdGlvbhgDIAEoCUILukgIcgbQs66xAgFIAogBAUIJCgdfc3dpdGNoQgcKBV9yYWNrQgwKCl9wYXJ0aXRpb24iYgoRQ2hpbGRQcmVmaXhMZW5ndGgSHAoEaXB2NBgBIAEoDUIJukgGKgQYICAASACIAQESHQoEaXB2NhgCIAEoDUIKukgHKgUYgAEgAEgBiAEBQgcKBV9pcHY0QgcKBV9pcHY2InIKEk5ldHdvcmtDb25zdW1wdGlvbhItCgRpcHY0GAEgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1VzYWdlEi0KBGlwdjYYAiABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrVXNhZ2UiagoMTmV0d29ya1VzYWdlEhUKDWF2YWlsYWJsZV9pcHMYASABKAQSEAoIdXNlZF9pcHMYAiABKAQSGgoSYXZhaWxhYmxlX3ByZWZpeGVzGAMgASgEEhUKDXVzZWRfcHJlZml4ZXMYBCABKAQinQEKFUV4dGVybmFsTmV0d29ya01lbWJlchIbCgZzd2l0Y2gYASABKAlCC7pICHIGwLOusQIBEh4KCXBhcnRpdGlvbhgCIAEoCUILukgIcgbQs66xAgESHgoEcmFjaxgDIAEoCUILukgIcgbAs66xAgFIAIgBARIeCgVwb3J0cxgEIAMoCUIPukgMkgEJ0KSzsQIBEIAQQgcKBV9yYWNrKm0KB05BVFR5cGUSGAoUTkFUX1RZUEVfVU5TUEVDSUZJRUQQABIbCg1OQVRfVFlQRV9OT05FEAEaCIKyGQRub25lEisKGE5BVF9UWVBFX0lQVjRfTUFTUVVFUkFERRACGg2CshkJaXB2NC1tYXNxKq0CCgtOZXR3b3JrVHlwZRIcChhORVRXT1JLX1RZUEVfVU5TUEVDSUZJRUQQABInChVORVRXT1JLX1RZUEVfRVhURVJOQUwQARoMgrIZCGV4dGVybmFsEicKFU5FVFdPUktfVFlQRV9VTkRFUkxBWRACGgyCshkIdW5kZXJsYXkSIQoSTkVUV09SS19UWVBFX1NVUEVSEAMaCYKyGQVzdXBlchI3Ch1ORVRXT1JLX1RZUEVfU1VQRVJfTkFNRVNQQUNFRBAEGhSCshkQc3VwZXItbmFtZXNwYWNlZBIhChJORVRXT1JLX1RZUEVfQ0hJTEQQBRoJgrIZBWNoaWxkEi8KGU5FVFdPUktfVFlQRV9DSElMRF9TSEFSRUQQBhoQgrIZDGNoaWxkLXNoYXJlZCrHAQoUTmV0d29ya0FkZHJlc3NGYW1pbHkSJgoiTkVUV09SS19BRERSRVNTX0ZBTUlMWV9VTlNQRUNJRklFRBAAEicKGU5FVFdPUktfQUREUkVTU19GQU1JTFlfVjQQARoIgrIZBGlwdjQSJwoZTkVUV09SS19BRERSRVNTX0ZBTUlMWV9WNhACGgiCshkEaXB2NhI1CiFORVRXT1JLX0FERFJFU1NfRkFNSUxZX0RVQUxfU1RBQ0sQAxoOgrIZCmR1YWwtc3RhY2sy7QUKDk5ldHdvcmtTZXJ2aWNlEm0KA0dldBIrLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlR2V0UmVxdWVzdBosLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlR2V0UmVzcG9uc2UiC8rzGAMBAgPg8xgCEnUKBkNyZWF0ZRIuLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVxdWVzdBovLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVzcG9uc2UiCsrzGAIBAuDzGAESdQoGVXBkYXRlEi4ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VVcGRhdGVSZXF1ZXN0Gi8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZSIKyvMYAgEC4PMYARJwCgRMaXN0EiwubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VMaXN0UmVxdWVzdBotLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlIgvK8xgDAQID4PMYAhKUAQoQTGlzdEJhc2VOZXR3b3JrcxI4Lm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdEJhc2VOZXR3b3Jrc1JlcXVlc3QaOS5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUxpc3RCYXNlTmV0d29ya3NSZXNwb25zZSILyvMYAwECA+DzGAISdQoGRGVsZXRlEi4ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VEZWxldGVSZXF1ZXN0Gi8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VEZWxldGVSZXNwb25zZSIKyvMYAgEC4PMYAULCAQoVY29tLm1ldGFsc3RhY2suYXBpLnYyQgxOZXR3b3JrUHJvdG9QAVo1Z2l0aHViLmNvbS9tZXRhbC1zdGFjay9hcGkvZ28vbWV0YWxzdGFjay9hcGkvdjI7YXBpdjKiAgNNQViqAhFNZXRhbHN0YWNrLkFwaS5WMsoCEU1ldGFsc3RhY2tcQXBpXFYy4gIdTWV0YWxzdGFja1xBcGlcVjJcR1BCTWV0YWRhdGHqAhNNZXRhbHN0YWNrOjpBcGk6OlYyYgZwcm90bzM", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules]); +export const file_metalstack_api_v2_network = /*@__PURE__*/ fileDesc("Ch9tZXRhbHN0YWNrL2FwaS92Mi9uZXR3b3JrLnByb3RvEhFtZXRhbHN0YWNrLmFwaS52MiJRChhOZXR3b3JrU2VydmljZUdldFJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEhwKB3Byb2plY3QYAiABKAlCC7pICNgBAXIDsAEBIkgKGU5ldHdvcmtTZXJ2aWNlR2V0UmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsi3AMKG05ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABARIeCgRuYW1lGAIgASgJQgu6SAhyBsCzrrECAUgAiAEBEiUKC2Rlc2NyaXB0aW9uGAMgASgJQgu6SAhyBsizrrECAUgBiAEBEiMKCXBhcnRpdGlvbhgEIAEoCUILukgIcgbQs66xAgFIAogBARIpCgZsYWJlbHMYBSABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5MYWJlbHMSKAoOcGFyZW50X25ldHdvcmsYBiABKAlCC7pICHIGwLOusQIBSAOIAQESOQoGbGVuZ3RoGAcgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhIBIgBARJOCg5hZGRyZXNzX2ZhbWlseRgIIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgFiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIMCgpfcGFydGl0aW9uQhEKD19wYXJlbnRfbmV0d29ya0IJCgdfbGVuZ3RoQhEKD19hZGRyZXNzX2ZhbWlseSJLChxOZXR3b3JrU2VydmljZUNyZWF0ZVJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrIq4CChtOZXR3b3JrU2VydmljZVVwZGF0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEjoKC3VwZGF0ZV9tZXRhGAIgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTWV0YUIGukgDyAEBEhkKB3Byb2plY3QYAyABKAlCCLpIBXIDsAEBEh4KBG5hbWUYBCABKAlCC7pICHIGwLOusQIBSACIAQESJQoLZGVzY3JpcHRpb24YBSABKAlCC7pICHIGyLOusQIBSAGIAQESNAoGbGFiZWxzGAYgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTGFiZWxzSAKIAQFCBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQgkKB19sYWJlbHMiSwocTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJpChlOZXR3b3JrU2VydmljZUxpc3RSZXF1ZXN0EhwKB3Byb2plY3QYASABKAlCC7pICNgBAXIDsAEBEi4KBXF1ZXJ5GAIgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1F1ZXJ5IkoKGk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJ1CiVOZXR3b3JrU2VydmljZUxpc3RCYXNlTmV0d29ya3NSZXF1ZXN0EhwKB3Byb2plY3QYASABKAlCC7pICNgBAXIDsAEBEi4KBXF1ZXJ5GAIgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1F1ZXJ5IlYKJk5ldHdvcmtTZXJ2aWNlTGlzdEJhc2VOZXR3b3Jrc1Jlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJRChtOZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEhkKB3Byb2plY3QYAiABKAlCCLpIBXIDsAEBIksKHE5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsizQYKB05ldHdvcmsSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEiUKBG1ldGEYAiABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhEh4KBG5hbWUYAyABKAlCC7pICHIGwLOusQIBSACIAQESJQoLZGVzY3JpcHRpb24YBCABKAlCC7pICHIGyLOusQIBSAGIAQESIwoJcGFydGl0aW9uGAUgASgJQgu6SAhyBtCzrrECAUgCiAEBEh4KB3Byb2plY3QYBiABKAlCCLpIBXIDsAEBSAOIAQESIAoJbmFtZXNwYWNlGAcgASgJQgi6SAVyA7ABAUgEiAEBEh4KCHByZWZpeGVzGAggAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCSADKAlCDLpICZIBBriks7ECARJJChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCiABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aBJFChdtaW5fY2hpbGRfcHJlZml4X2xlbmd0aBgLIAEoCzIkLm1ldGFsc3RhY2suYXBpLnYyLkNoaWxkUHJlZml4TGVuZ3RoEjYKBHR5cGUYDCABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrVHlwZUIIukgFggECEAESNgoIbmF0X3R5cGUYDSABKA4yGi5tZXRhbHN0YWNrLmFwaS52Mi5OQVRUeXBlQgi6SAWCAQIQARIQCgN2cmYYDiABKA1IBYgBARIoCg5wYXJlbnRfbmV0d29yaxgPIAEoCUILukgIcgbAs66xAgFIBogBARIyChxhZGRpdGlvbmFsX2Fubm91bmNhYmxlX2NpZHJzGBAgAygJQgy6SAmSAQa4pLOxAgESOgoLY29uc3VtcHRpb24YESABKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrQ29uc3VtcHRpb25CBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQgwKCl9wYXJ0aXRpb25CCgoIX3Byb2plY3RCDAoKX25hbWVzcGFjZUIGCgRfdnJmQhEKD19wYXJlbnRfbmV0d29yayLzBQoMTmV0d29ya1F1ZXJ5EhwKAmlkGAEgASgJQgu6SAhyBsCzrrECAUgAiAEBEh4KBG5hbWUYAiABKAlCC7pICHIGwLOusQIBSAGIAQESJQoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBSAKIAQESIwoJcGFydGl0aW9uGAQgASgJQgu6SAhyBtCzrrECAUgDiAEBEh4KB3Byb2plY3QYBSABKAlCCLpIBXIDsAEBSASIAQESIAoJbmFtZXNwYWNlGAYgASgJQgi6SAVyA7ABAUgFiAEBEh4KCHByZWZpeGVzGAcgAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCCADKAlCDLpICZIBBriks7ECARIQCgN2cmYYCSABKA1IBogBARIoCg5wYXJlbnRfbmV0d29yaxgKIAEoCUILukgIcgbAs66xAgFIB4gBARJOCg5hZGRyZXNzX2ZhbWlseRgLIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgIiAEBEjsKBHR5cGUYDCABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrVHlwZUIIukgFggECEAFICYgBARI7CghuYXRfdHlwZRgNIAEoDjIaLm1ldGFsc3RhY2suYXBpLnYyLk5BVFR5cGVCCLpIBYIBAhABSAqIAQESLgoGbGFiZWxzGA4gASgLMhkubWV0YWxzdGFjay5hcGkudjIuTGFiZWxzSAuIAQFCBQoDX2lkQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIMCgpfcGFydGl0aW9uQgoKCF9wcm9qZWN0QgwKCl9uYW1lc3BhY2VCBgoEX3ZyZkIRCg9fcGFyZW50X25ldHdvcmtCEQoPX2FkZHJlc3NfZmFtaWx5QgcKBV90eXBlQgsKCV9uYXRfdHlwZUIJCgdfbGFiZWxzIqcBChpFeHRlcm5hbE5ldHdvcmtNZW1iZXJRdWVyeRIiCgZzd2l0Y2gYASABKAlCDbpICnIIwLOusQIBaAFIAIgBARIeCgRyYWNrGAIgASgJQgu6SAhyBsCzrrECAUgBiAEBEiMKCXBhcnRpdGlvbhgDIAEoCUILukgIcgbQs66xAgFIAogBAUIJCgdfc3dpdGNoQgcKBV9yYWNrQgwKCl9wYXJ0aXRpb24iYgoRQ2hpbGRQcmVmaXhMZW5ndGgSHAoEaXB2NBgBIAEoDUIJukgGKgQYICAASACIAQESHQoEaXB2NhgCIAEoDUIKukgHKgUYgAEgAEgBiAEBQgcKBV9pcHY0QgcKBV9pcHY2InIKEk5ldHdvcmtDb25zdW1wdGlvbhItCgRpcHY0GAEgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1VzYWdlEi0KBGlwdjYYAiABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrVXNhZ2UiagoMTmV0d29ya1VzYWdlEhUKDWF2YWlsYWJsZV9pcHMYASABKAQSEAoIdXNlZF9pcHMYAiABKAQSGgoSYXZhaWxhYmxlX3ByZWZpeGVzGAMgASgEEhUKDXVzZWRfcHJlZml4ZXMYBCABKAQijwEKFUV4dGVybmFsTmV0d29ya01lbWJlchIbCgZzd2l0Y2gYASABKAlCC7pICHIGwLOusQIBEh4KCXBhcnRpdGlvbhgCIAEoCUILukgIcgbQs66xAgESGQoEcmFjaxgDIAEoCUILukgIcgbAs66xAgESHgoFcG9ydHMYBCADKAlCD7pIDJIBCdCks7ECARCAECptCgdOQVRUeXBlEhgKFE5BVF9UWVBFX1VOU1BFQ0lGSUVEEAASGwoNTkFUX1RZUEVfTk9ORRABGgiCshkEbm9uZRIrChhOQVRfVFlQRV9JUFY0X01BU1FVRVJBREUQAhoNgrIZCWlwdjQtbWFzcSqtAgoLTmV0d29ya1R5cGUSHAoYTkVUV09SS19UWVBFX1VOU1BFQ0lGSUVEEAASJwoVTkVUV09SS19UWVBFX0VYVEVSTkFMEAEaDIKyGQhleHRlcm5hbBInChVORVRXT1JLX1RZUEVfVU5ERVJMQVkQAhoMgrIZCHVuZGVybGF5EiEKEk5FVFdPUktfVFlQRV9TVVBFUhADGgmCshkFc3VwZXISNwodTkVUV09SS19UWVBFX1NVUEVSX05BTUVTUEFDRUQQBBoUgrIZEHN1cGVyLW5hbWVzcGFjZWQSIQoSTkVUV09SS19UWVBFX0NISUxEEAUaCYKyGQVjaGlsZBIvChlORVRXT1JLX1RZUEVfQ0hJTERfU0hBUkVEEAYaEIKyGQxjaGlsZC1zaGFyZWQqxwEKFE5ldHdvcmtBZGRyZXNzRmFtaWx5EiYKIk5FVFdPUktfQUREUkVTU19GQU1JTFlfVU5TUEVDSUZJRUQQABInChlORVRXT1JLX0FERFJFU1NfRkFNSUxZX1Y0EAEaCIKyGQRpcHY0EicKGU5FVFdPUktfQUREUkVTU19GQU1JTFlfVjYQAhoIgrIZBGlwdjYSNQohTkVUV09SS19BRERSRVNTX0ZBTUlMWV9EVUFMX1NUQUNLEAMaDoKyGQpkdWFsLXN0YWNrMu0FCg5OZXR3b3JrU2VydmljZRJtCgNHZXQSKy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUdldFJlcXVlc3QaLC5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUdldFJlc3BvbnNlIgvK8xgDAQID4PMYAhJ1CgZDcmVhdGUSLi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUNyZWF0ZVJlcXVlc3QaLy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUNyZWF0ZVJlc3BvbnNlIgrK8xgCAQLg8xgBEnUKBlVwZGF0ZRIuLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlVXBkYXRlUmVxdWVzdBovLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlVXBkYXRlUmVzcG9uc2UiCsrzGAIBAuDzGAEScAoETGlzdBIsLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdFJlcXVlc3QaLS5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUxpc3RSZXNwb25zZSILyvMYAwECA+DzGAISlAEKEExpc3RCYXNlTmV0d29ya3MSOC5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUxpc3RCYXNlTmV0d29ya3NSZXF1ZXN0GjkubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VMaXN0QmFzZU5ldHdvcmtzUmVzcG9uc2UiC8rzGAMBAgPg8xgCEnUKBkRlbGV0ZRIuLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVxdWVzdBovLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVzcG9uc2UiCsrzGAIBAuDzGAFCwgEKFWNvbS5tZXRhbHN0YWNrLmFwaS52MkIMTmV0d29ya1Byb3RvUAFaNWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYXBpL3YyO2FwaXYyogIDTUFYqgIRTWV0YWxzdGFjay5BcGkuVjLKAhFNZXRhbHN0YWNrXEFwaVxWMuICHU1ldGFsc3RhY2tcQXBpXFYyXEdQQk1ldGFkYXRh6gITTWV0YWxzdGFjazo6QXBpOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules]); /** * Describes the message metalstack.api.v2.NetworkServiceGetRequest. * Use `create(NetworkServiceGetRequestSchema)` to create a new message. diff --git a/js/metalstack/api/v2/network_pb.ts b/js/metalstack/api/v2/network_pb.ts index 3a0d09fa..f7921afc 100644 --- a/js/metalstack/api/v2/network_pb.ts +++ b/js/metalstack/api/v2/network_pb.ts @@ -14,7 +14,7 @@ import type { Message } from "@bufbuild/protobuf"; * Describes the file metalstack/api/v2/network.proto. */ export const file_metalstack_api_v2_network: GenFile = /*@__PURE__*/ - fileDesc("Ch9tZXRhbHN0YWNrL2FwaS92Mi9uZXR3b3JrLnByb3RvEhFtZXRhbHN0YWNrLmFwaS52MiJRChhOZXR3b3JrU2VydmljZUdldFJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEhwKB3Byb2plY3QYAiABKAlCC7pICNgBAXIDsAEBIkgKGU5ldHdvcmtTZXJ2aWNlR2V0UmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsi3AMKG05ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABARIeCgRuYW1lGAIgASgJQgu6SAhyBsCzrrECAUgAiAEBEiUKC2Rlc2NyaXB0aW9uGAMgASgJQgu6SAhyBsizrrECAUgBiAEBEiMKCXBhcnRpdGlvbhgEIAEoCUILukgIcgbQs66xAgFIAogBARIpCgZsYWJlbHMYBSABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5MYWJlbHMSKAoOcGFyZW50X25ldHdvcmsYBiABKAlCC7pICHIGwLOusQIBSAOIAQESOQoGbGVuZ3RoGAcgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhIBIgBARJOCg5hZGRyZXNzX2ZhbWlseRgIIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgFiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIMCgpfcGFydGl0aW9uQhEKD19wYXJlbnRfbmV0d29ya0IJCgdfbGVuZ3RoQhEKD19hZGRyZXNzX2ZhbWlseSJLChxOZXR3b3JrU2VydmljZUNyZWF0ZVJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrIq4CChtOZXR3b3JrU2VydmljZVVwZGF0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEjoKC3VwZGF0ZV9tZXRhGAIgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTWV0YUIGukgDyAEBEhkKB3Byb2plY3QYAyABKAlCCLpIBXIDsAEBEh4KBG5hbWUYBCABKAlCC7pICHIGwLOusQIBSACIAQESJQoLZGVzY3JpcHRpb24YBSABKAlCC7pICHIGyLOusQIBSAGIAQESNAoGbGFiZWxzGAYgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTGFiZWxzSAKIAQFCBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQgkKB19sYWJlbHMiSwocTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJpChlOZXR3b3JrU2VydmljZUxpc3RSZXF1ZXN0EhwKB3Byb2plY3QYASABKAlCC7pICNgBAXIDsAEBEi4KBXF1ZXJ5GAIgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1F1ZXJ5IkoKGk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJ1CiVOZXR3b3JrU2VydmljZUxpc3RCYXNlTmV0d29ya3NSZXF1ZXN0EhwKB3Byb2plY3QYASABKAlCC7pICNgBAXIDsAEBEi4KBXF1ZXJ5GAIgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1F1ZXJ5IlYKJk5ldHdvcmtTZXJ2aWNlTGlzdEJhc2VOZXR3b3Jrc1Jlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJRChtOZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEhkKB3Byb2plY3QYAiABKAlCCLpIBXIDsAEBIksKHE5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsizQYKB05ldHdvcmsSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEiUKBG1ldGEYAiABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhEh4KBG5hbWUYAyABKAlCC7pICHIGwLOusQIBSACIAQESJQoLZGVzY3JpcHRpb24YBCABKAlCC7pICHIGyLOusQIBSAGIAQESIwoJcGFydGl0aW9uGAUgASgJQgu6SAhyBtCzrrECAUgCiAEBEh4KB3Byb2plY3QYBiABKAlCCLpIBXIDsAEBSAOIAQESIAoJbmFtZXNwYWNlGAcgASgJQgi6SAVyA7ABAUgEiAEBEh4KCHByZWZpeGVzGAggAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCSADKAlCDLpICZIBBriks7ECARJJChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCiABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aBJFChdtaW5fY2hpbGRfcHJlZml4X2xlbmd0aBgLIAEoCzIkLm1ldGFsc3RhY2suYXBpLnYyLkNoaWxkUHJlZml4TGVuZ3RoEjYKBHR5cGUYDCABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrVHlwZUIIukgFggECEAESNgoIbmF0X3R5cGUYDSABKA4yGi5tZXRhbHN0YWNrLmFwaS52Mi5OQVRUeXBlQgi6SAWCAQIQARIQCgN2cmYYDiABKA1IBYgBARIoCg5wYXJlbnRfbmV0d29yaxgPIAEoCUILukgIcgbAs66xAgFIBogBARIyChxhZGRpdGlvbmFsX2Fubm91bmNhYmxlX2NpZHJzGBAgAygJQgy6SAmSAQa4pLOxAgESOgoLY29uc3VtcHRpb24YESABKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrQ29uc3VtcHRpb25CBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQgwKCl9wYXJ0aXRpb25CCgoIX3Byb2plY3RCDAoKX25hbWVzcGFjZUIGCgRfdnJmQhEKD19wYXJlbnRfbmV0d29yayLzBQoMTmV0d29ya1F1ZXJ5EhwKAmlkGAEgASgJQgu6SAhyBsCzrrECAUgAiAEBEh4KBG5hbWUYAiABKAlCC7pICHIGwLOusQIBSAGIAQESJQoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBSAKIAQESIwoJcGFydGl0aW9uGAQgASgJQgu6SAhyBtCzrrECAUgDiAEBEh4KB3Byb2plY3QYBSABKAlCCLpIBXIDsAEBSASIAQESIAoJbmFtZXNwYWNlGAYgASgJQgi6SAVyA7ABAUgFiAEBEh4KCHByZWZpeGVzGAcgAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCCADKAlCDLpICZIBBriks7ECARIQCgN2cmYYCSABKA1IBogBARIoCg5wYXJlbnRfbmV0d29yaxgKIAEoCUILukgIcgbAs66xAgFIB4gBARJOCg5hZGRyZXNzX2ZhbWlseRgLIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgIiAEBEjsKBHR5cGUYDCABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrVHlwZUIIukgFggECEAFICYgBARI7CghuYXRfdHlwZRgNIAEoDjIaLm1ldGFsc3RhY2suYXBpLnYyLk5BVFR5cGVCCLpIBYIBAhABSAqIAQESLgoGbGFiZWxzGA4gASgLMhkubWV0YWxzdGFjay5hcGkudjIuTGFiZWxzSAuIAQFCBQoDX2lkQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIMCgpfcGFydGl0aW9uQgoKCF9wcm9qZWN0QgwKCl9uYW1lc3BhY2VCBgoEX3ZyZkIRCg9fcGFyZW50X25ldHdvcmtCEQoPX2FkZHJlc3NfZmFtaWx5QgcKBV90eXBlQgsKCV9uYXRfdHlwZUIJCgdfbGFiZWxzIqcBChpFeHRlcm5hbE5ldHdvcmtNZW1iZXJRdWVyeRIiCgZzd2l0Y2gYASABKAlCDbpICnIIwLOusQIBaAFIAIgBARIeCgRyYWNrGAIgASgJQgu6SAhyBsCzrrECAUgBiAEBEiMKCXBhcnRpdGlvbhgDIAEoCUILukgIcgbQs66xAgFIAogBAUIJCgdfc3dpdGNoQgcKBV9yYWNrQgwKCl9wYXJ0aXRpb24iYgoRQ2hpbGRQcmVmaXhMZW5ndGgSHAoEaXB2NBgBIAEoDUIJukgGKgQYICAASACIAQESHQoEaXB2NhgCIAEoDUIKukgHKgUYgAEgAEgBiAEBQgcKBV9pcHY0QgcKBV9pcHY2InIKEk5ldHdvcmtDb25zdW1wdGlvbhItCgRpcHY0GAEgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1VzYWdlEi0KBGlwdjYYAiABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrVXNhZ2UiagoMTmV0d29ya1VzYWdlEhUKDWF2YWlsYWJsZV9pcHMYASABKAQSEAoIdXNlZF9pcHMYAiABKAQSGgoSYXZhaWxhYmxlX3ByZWZpeGVzGAMgASgEEhUKDXVzZWRfcHJlZml4ZXMYBCABKAQinQEKFUV4dGVybmFsTmV0d29ya01lbWJlchIbCgZzd2l0Y2gYASABKAlCC7pICHIGwLOusQIBEh4KCXBhcnRpdGlvbhgCIAEoCUILukgIcgbQs66xAgESHgoEcmFjaxgDIAEoCUILukgIcgbAs66xAgFIAIgBARIeCgVwb3J0cxgEIAMoCUIPukgMkgEJ0KSzsQIBEIAQQgcKBV9yYWNrKm0KB05BVFR5cGUSGAoUTkFUX1RZUEVfVU5TUEVDSUZJRUQQABIbCg1OQVRfVFlQRV9OT05FEAEaCIKyGQRub25lEisKGE5BVF9UWVBFX0lQVjRfTUFTUVVFUkFERRACGg2CshkJaXB2NC1tYXNxKq0CCgtOZXR3b3JrVHlwZRIcChhORVRXT1JLX1RZUEVfVU5TUEVDSUZJRUQQABInChVORVRXT1JLX1RZUEVfRVhURVJOQUwQARoMgrIZCGV4dGVybmFsEicKFU5FVFdPUktfVFlQRV9VTkRFUkxBWRACGgyCshkIdW5kZXJsYXkSIQoSTkVUV09SS19UWVBFX1NVUEVSEAMaCYKyGQVzdXBlchI3Ch1ORVRXT1JLX1RZUEVfU1VQRVJfTkFNRVNQQUNFRBAEGhSCshkQc3VwZXItbmFtZXNwYWNlZBIhChJORVRXT1JLX1RZUEVfQ0hJTEQQBRoJgrIZBWNoaWxkEi8KGU5FVFdPUktfVFlQRV9DSElMRF9TSEFSRUQQBhoQgrIZDGNoaWxkLXNoYXJlZCrHAQoUTmV0d29ya0FkZHJlc3NGYW1pbHkSJgoiTkVUV09SS19BRERSRVNTX0ZBTUlMWV9VTlNQRUNJRklFRBAAEicKGU5FVFdPUktfQUREUkVTU19GQU1JTFlfVjQQARoIgrIZBGlwdjQSJwoZTkVUV09SS19BRERSRVNTX0ZBTUlMWV9WNhACGgiCshkEaXB2NhI1CiFORVRXT1JLX0FERFJFU1NfRkFNSUxZX0RVQUxfU1RBQ0sQAxoOgrIZCmR1YWwtc3RhY2sy7QUKDk5ldHdvcmtTZXJ2aWNlEm0KA0dldBIrLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlR2V0UmVxdWVzdBosLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlR2V0UmVzcG9uc2UiC8rzGAMBAgPg8xgCEnUKBkNyZWF0ZRIuLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVxdWVzdBovLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVzcG9uc2UiCsrzGAIBAuDzGAESdQoGVXBkYXRlEi4ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VVcGRhdGVSZXF1ZXN0Gi8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZSIKyvMYAgEC4PMYARJwCgRMaXN0EiwubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VMaXN0UmVxdWVzdBotLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlIgvK8xgDAQID4PMYAhKUAQoQTGlzdEJhc2VOZXR3b3JrcxI4Lm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdEJhc2VOZXR3b3Jrc1JlcXVlc3QaOS5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUxpc3RCYXNlTmV0d29ya3NSZXNwb25zZSILyvMYAwECA+DzGAISdQoGRGVsZXRlEi4ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VEZWxldGVSZXF1ZXN0Gi8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VEZWxldGVSZXNwb25zZSIKyvMYAgEC4PMYAULCAQoVY29tLm1ldGFsc3RhY2suYXBpLnYyQgxOZXR3b3JrUHJvdG9QAVo1Z2l0aHViLmNvbS9tZXRhbC1zdGFjay9hcGkvZ28vbWV0YWxzdGFjay9hcGkvdjI7YXBpdjKiAgNNQViqAhFNZXRhbHN0YWNrLkFwaS5WMsoCEU1ldGFsc3RhY2tcQXBpXFYy4gIdTWV0YWxzdGFja1xBcGlcVjJcR1BCTWV0YWRhdGHqAhNNZXRhbHN0YWNrOjpBcGk6OlYyYgZwcm90bzM", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules]); + fileDesc("Ch9tZXRhbHN0YWNrL2FwaS92Mi9uZXR3b3JrLnByb3RvEhFtZXRhbHN0YWNrLmFwaS52MiJRChhOZXR3b3JrU2VydmljZUdldFJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEhwKB3Byb2plY3QYAiABKAlCC7pICNgBAXIDsAEBIkgKGU5ldHdvcmtTZXJ2aWNlR2V0UmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsi3AMKG05ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABARIeCgRuYW1lGAIgASgJQgu6SAhyBsCzrrECAUgAiAEBEiUKC2Rlc2NyaXB0aW9uGAMgASgJQgu6SAhyBsizrrECAUgBiAEBEiMKCXBhcnRpdGlvbhgEIAEoCUILukgIcgbQs66xAgFIAogBARIpCgZsYWJlbHMYBSABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5MYWJlbHMSKAoOcGFyZW50X25ldHdvcmsYBiABKAlCC7pICHIGwLOusQIBSAOIAQESOQoGbGVuZ3RoGAcgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhIBIgBARJOCg5hZGRyZXNzX2ZhbWlseRgIIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgFiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIMCgpfcGFydGl0aW9uQhEKD19wYXJlbnRfbmV0d29ya0IJCgdfbGVuZ3RoQhEKD19hZGRyZXNzX2ZhbWlseSJLChxOZXR3b3JrU2VydmljZUNyZWF0ZVJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrIq4CChtOZXR3b3JrU2VydmljZVVwZGF0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEjoKC3VwZGF0ZV9tZXRhGAIgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTWV0YUIGukgDyAEBEhkKB3Byb2plY3QYAyABKAlCCLpIBXIDsAEBEh4KBG5hbWUYBCABKAlCC7pICHIGwLOusQIBSACIAQESJQoLZGVzY3JpcHRpb24YBSABKAlCC7pICHIGyLOusQIBSAGIAQESNAoGbGFiZWxzGAYgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTGFiZWxzSAKIAQFCBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQgkKB19sYWJlbHMiSwocTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJpChlOZXR3b3JrU2VydmljZUxpc3RSZXF1ZXN0EhwKB3Byb2plY3QYASABKAlCC7pICNgBAXIDsAEBEi4KBXF1ZXJ5GAIgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1F1ZXJ5IkoKGk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJ1CiVOZXR3b3JrU2VydmljZUxpc3RCYXNlTmV0d29ya3NSZXF1ZXN0EhwKB3Byb2plY3QYASABKAlCC7pICNgBAXIDsAEBEi4KBXF1ZXJ5GAIgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1F1ZXJ5IlYKJk5ldHdvcmtTZXJ2aWNlTGlzdEJhc2VOZXR3b3Jrc1Jlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJRChtOZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEhkKB3Byb2plY3QYAiABKAlCCLpIBXIDsAEBIksKHE5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsizQYKB05ldHdvcmsSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEiUKBG1ldGEYAiABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhEh4KBG5hbWUYAyABKAlCC7pICHIGwLOusQIBSACIAQESJQoLZGVzY3JpcHRpb24YBCABKAlCC7pICHIGyLOusQIBSAGIAQESIwoJcGFydGl0aW9uGAUgASgJQgu6SAhyBtCzrrECAUgCiAEBEh4KB3Byb2plY3QYBiABKAlCCLpIBXIDsAEBSAOIAQESIAoJbmFtZXNwYWNlGAcgASgJQgi6SAVyA7ABAUgEiAEBEh4KCHByZWZpeGVzGAggAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCSADKAlCDLpICZIBBriks7ECARJJChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCiABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aBJFChdtaW5fY2hpbGRfcHJlZml4X2xlbmd0aBgLIAEoCzIkLm1ldGFsc3RhY2suYXBpLnYyLkNoaWxkUHJlZml4TGVuZ3RoEjYKBHR5cGUYDCABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrVHlwZUIIukgFggECEAESNgoIbmF0X3R5cGUYDSABKA4yGi5tZXRhbHN0YWNrLmFwaS52Mi5OQVRUeXBlQgi6SAWCAQIQARIQCgN2cmYYDiABKA1IBYgBARIoCg5wYXJlbnRfbmV0d29yaxgPIAEoCUILukgIcgbAs66xAgFIBogBARIyChxhZGRpdGlvbmFsX2Fubm91bmNhYmxlX2NpZHJzGBAgAygJQgy6SAmSAQa4pLOxAgESOgoLY29uc3VtcHRpb24YESABKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrQ29uc3VtcHRpb25CBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQgwKCl9wYXJ0aXRpb25CCgoIX3Byb2plY3RCDAoKX25hbWVzcGFjZUIGCgRfdnJmQhEKD19wYXJlbnRfbmV0d29yayLzBQoMTmV0d29ya1F1ZXJ5EhwKAmlkGAEgASgJQgu6SAhyBsCzrrECAUgAiAEBEh4KBG5hbWUYAiABKAlCC7pICHIGwLOusQIBSAGIAQESJQoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBSAKIAQESIwoJcGFydGl0aW9uGAQgASgJQgu6SAhyBtCzrrECAUgDiAEBEh4KB3Byb2plY3QYBSABKAlCCLpIBXIDsAEBSASIAQESIAoJbmFtZXNwYWNlGAYgASgJQgi6SAVyA7ABAUgFiAEBEh4KCHByZWZpeGVzGAcgAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCCADKAlCDLpICZIBBriks7ECARIQCgN2cmYYCSABKA1IBogBARIoCg5wYXJlbnRfbmV0d29yaxgKIAEoCUILukgIcgbAs66xAgFIB4gBARJOCg5hZGRyZXNzX2ZhbWlseRgLIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgIiAEBEjsKBHR5cGUYDCABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrVHlwZUIIukgFggECEAFICYgBARI7CghuYXRfdHlwZRgNIAEoDjIaLm1ldGFsc3RhY2suYXBpLnYyLk5BVFR5cGVCCLpIBYIBAhABSAqIAQESLgoGbGFiZWxzGA4gASgLMhkubWV0YWxzdGFjay5hcGkudjIuTGFiZWxzSAuIAQFCBQoDX2lkQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIMCgpfcGFydGl0aW9uQgoKCF9wcm9qZWN0QgwKCl9uYW1lc3BhY2VCBgoEX3ZyZkIRCg9fcGFyZW50X25ldHdvcmtCEQoPX2FkZHJlc3NfZmFtaWx5QgcKBV90eXBlQgsKCV9uYXRfdHlwZUIJCgdfbGFiZWxzIqcBChpFeHRlcm5hbE5ldHdvcmtNZW1iZXJRdWVyeRIiCgZzd2l0Y2gYASABKAlCDbpICnIIwLOusQIBaAFIAIgBARIeCgRyYWNrGAIgASgJQgu6SAhyBsCzrrECAUgBiAEBEiMKCXBhcnRpdGlvbhgDIAEoCUILukgIcgbQs66xAgFIAogBAUIJCgdfc3dpdGNoQgcKBV9yYWNrQgwKCl9wYXJ0aXRpb24iYgoRQ2hpbGRQcmVmaXhMZW5ndGgSHAoEaXB2NBgBIAEoDUIJukgGKgQYICAASACIAQESHQoEaXB2NhgCIAEoDUIKukgHKgUYgAEgAEgBiAEBQgcKBV9pcHY0QgcKBV9pcHY2InIKEk5ldHdvcmtDb25zdW1wdGlvbhItCgRpcHY0GAEgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1VzYWdlEi0KBGlwdjYYAiABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrVXNhZ2UiagoMTmV0d29ya1VzYWdlEhUKDWF2YWlsYWJsZV9pcHMYASABKAQSEAoIdXNlZF9pcHMYAiABKAQSGgoSYXZhaWxhYmxlX3ByZWZpeGVzGAMgASgEEhUKDXVzZWRfcHJlZml4ZXMYBCABKAQijwEKFUV4dGVybmFsTmV0d29ya01lbWJlchIbCgZzd2l0Y2gYASABKAlCC7pICHIGwLOusQIBEh4KCXBhcnRpdGlvbhgCIAEoCUILukgIcgbQs66xAgESGQoEcmFjaxgDIAEoCUILukgIcgbAs66xAgESHgoFcG9ydHMYBCADKAlCD7pIDJIBCdCks7ECARCAECptCgdOQVRUeXBlEhgKFE5BVF9UWVBFX1VOU1BFQ0lGSUVEEAASGwoNTkFUX1RZUEVfTk9ORRABGgiCshkEbm9uZRIrChhOQVRfVFlQRV9JUFY0X01BU1FVRVJBREUQAhoNgrIZCWlwdjQtbWFzcSqtAgoLTmV0d29ya1R5cGUSHAoYTkVUV09SS19UWVBFX1VOU1BFQ0lGSUVEEAASJwoVTkVUV09SS19UWVBFX0VYVEVSTkFMEAEaDIKyGQhleHRlcm5hbBInChVORVRXT1JLX1RZUEVfVU5ERVJMQVkQAhoMgrIZCHVuZGVybGF5EiEKEk5FVFdPUktfVFlQRV9TVVBFUhADGgmCshkFc3VwZXISNwodTkVUV09SS19UWVBFX1NVUEVSX05BTUVTUEFDRUQQBBoUgrIZEHN1cGVyLW5hbWVzcGFjZWQSIQoSTkVUV09SS19UWVBFX0NISUxEEAUaCYKyGQVjaGlsZBIvChlORVRXT1JLX1RZUEVfQ0hJTERfU0hBUkVEEAYaEIKyGQxjaGlsZC1zaGFyZWQqxwEKFE5ldHdvcmtBZGRyZXNzRmFtaWx5EiYKIk5FVFdPUktfQUREUkVTU19GQU1JTFlfVU5TUEVDSUZJRUQQABInChlORVRXT1JLX0FERFJFU1NfRkFNSUxZX1Y0EAEaCIKyGQRpcHY0EicKGU5FVFdPUktfQUREUkVTU19GQU1JTFlfVjYQAhoIgrIZBGlwdjYSNQohTkVUV09SS19BRERSRVNTX0ZBTUlMWV9EVUFMX1NUQUNLEAMaDoKyGQpkdWFsLXN0YWNrMu0FCg5OZXR3b3JrU2VydmljZRJtCgNHZXQSKy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUdldFJlcXVlc3QaLC5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUdldFJlc3BvbnNlIgvK8xgDAQID4PMYAhJ1CgZDcmVhdGUSLi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUNyZWF0ZVJlcXVlc3QaLy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUNyZWF0ZVJlc3BvbnNlIgrK8xgCAQLg8xgBEnUKBlVwZGF0ZRIuLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlVXBkYXRlUmVxdWVzdBovLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlVXBkYXRlUmVzcG9uc2UiCsrzGAIBAuDzGAEScAoETGlzdBIsLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdFJlcXVlc3QaLS5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUxpc3RSZXNwb25zZSILyvMYAwECA+DzGAISlAEKEExpc3RCYXNlTmV0d29ya3MSOC5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUxpc3RCYXNlTmV0d29ya3NSZXF1ZXN0GjkubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VMaXN0QmFzZU5ldHdvcmtzUmVzcG9uc2UiC8rzGAMBAgPg8xgCEnUKBkRlbGV0ZRIuLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVxdWVzdBovLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVzcG9uc2UiCsrzGAIBAuDzGAFCwgEKFWNvbS5tZXRhbHN0YWNrLmFwaS52MkIMTmV0d29ya1Byb3RvUAFaNWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYXBpL3YyO2FwaXYyogIDTUFYqgIRTWV0YWxzdGFjay5BcGkuVjLKAhFNZXRhbHN0YWNrXEFwaVxWMuICHU1ldGFsc3RhY2tcQXBpXFYyXEdQQk1ldGFkYXRh6gITTWV0YWxzdGFjazo6QXBpOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules]); /** * NetworkServiceGetRequest. @@ -782,9 +782,9 @@ export type ExternalNetworkMember = Message<"metalstack.api.v2.ExternalNetworkMe /** * Rack of the switch. * - * @generated from field: optional string rack = 3; + * @generated from field: string rack = 3; */ - rack?: string | undefined; + rack: string; /** * Ports of the switch that participate in the network. diff --git a/proto/metalstack/api/v2/network.proto b/proto/metalstack/api/v2/network.proto index 8adfa3fc..0a3d016d 100644 --- a/proto/metalstack/api/v2/network.proto +++ b/proto/metalstack/api/v2/network.proto @@ -287,7 +287,7 @@ message ExternalNetworkMember { // Partition of the switch. string partition = 2 [(buf.validate.field).string.(metalstack.api.v2.is_partition) = true]; // Rack of the switch. - optional string rack = 3 [(buf.validate.field).string.(metalstack.api.v2.is_name) = true]; + string rack = 3 [(buf.validate.field).string.(metalstack.api.v2.is_name) = true]; // Ports of the switch that participate in the network. repeated string ports = 4 [ (buf.validate.field).repeated.max_items = 2048, diff --git a/python/metalstack/api/v2/network_pb2.py b/python/metalstack/api/v2/network_pb2.py index e863b4f9..9c094c39 100644 --- a/python/metalstack/api/v2/network_pb2.py +++ b/python/metalstack/api/v2/network_pb2.py @@ -27,7 +27,7 @@ from metalstack.api.v2 import predefined_rules_pb2 as metalstack_dot_api_dot_v2_dot_predefined__rules__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fmetalstack/api/v2/network.proto\x12\x11metalstack.api.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1emetalstack/api/v2/common.proto\x1a(metalstack/api/v2/predefined_rules.proto\"^\n\x18NetworkServiceGetRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\x12%\n\x07project\x18\x02 \x01(\tB\x0b\xbaH\x08r\x03\xb0\x01\x01\xd8\x01\x01R\x07project\"Q\n\x19NetworkServiceGetResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"\xb1\x04\n\x1bNetworkServiceCreateRequest\x12\"\n\x07project\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12$\n\x04name\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x04name\x88\x01\x01\x12\x32\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x01R\x0b\x64\x65scription\x88\x01\x01\x12.\n\tpartition\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x02R\tpartition\x88\x01\x01\x12\x31\n\x06labels\x18\x05 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsR\x06labels\x12\x37\n\x0eparent_network\x18\x06 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x03R\rparentNetwork\x88\x01\x01\x12\x41\n\x06length\x18\x07 \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthH\x04R\x06length\x88\x01\x01\x12]\n\x0e\x61\x64\x64ress_family\x18\x08 \x01(\x0e\x32\'.metalstack.api.v2.NetworkAddressFamilyB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x05R\raddressFamily\x88\x01\x01\x42\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0c\n\n_partitionB\x11\n\x0f_parent_networkB\t\n\x07_lengthB\x11\n\x0f_address_family\"T\n\x1cNetworkServiceCreateResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"\xe2\x02\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\x07project\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12$\n\x04name\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x04name\x88\x01\x01\x12\x32\n\x0b\x64\x65scription\x18\x05 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x01R\x0b\x64\x65scription\x88\x01\x01\x12<\n\x06labels\x18\x06 \x01(\x0b\x32\x1f.metalstack.api.v2.UpdateLabelsH\x02R\x06labels\x88\x01\x01\x42\x07\n\x05_nameB\x0e\n\x0c_descriptionB\t\n\x07_labels\"T\n\x1cNetworkServiceUpdateResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"y\n\x19NetworkServiceListRequest\x12%\n\x07project\x18\x01 \x01(\tB\x0b\xbaH\x08r\x03\xb0\x01\x01\xd8\x01\x01R\x07project\x12\x35\n\x05query\x18\x02 \x01(\x0b\x32\x1f.metalstack.api.v2.NetworkQueryR\x05query\"T\n\x1aNetworkServiceListResponse\x12\x36\n\x08networks\x18\x01 \x03(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x08networks\"\x85\x01\n%NetworkServiceListBaseNetworksRequest\x12%\n\x07project\x18\x01 \x01(\tB\x0b\xbaH\x08r\x03\xb0\x01\x01\xd8\x01\x01R\x07project\x12\x35\n\x05query\x18\x02 \x01(\x0b\x32\x1f.metalstack.api.v2.NetworkQueryR\x05query\"`\n&NetworkServiceListBaseNetworksResponse\x12\x36\n\x08networks\x18\x01 \x03(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x08networks\"^\n\x1bNetworkServiceDeleteRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\x12\"\n\x07project\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\"T\n\x1cNetworkServiceDeleteResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"\xa4\x08\n\x07Network\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\x12+\n\x04meta\x18\x02 \x01(\x0b\x32\x17.metalstack.api.v2.MetaR\x04meta\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\tpartition\x18\x05 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x02R\tpartition\x88\x01\x01\x12\'\n\x07project\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x03R\x07project\x88\x01\x01\x12+\n\tnamespace\x18\x07 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x04R\tnamespace\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<\n\x04type\x18\x0c \x01(\x0e\x32\x1e.metalstack.api.v2.NetworkTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x04type\x12?\n\x08nat_type\x18\r \x01(\x0e\x32\x1a.metalstack.api.v2.NATTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x07natType\x12\x15\n\x03vrf\x18\x0e \x01(\rH\x05R\x03vrf\x88\x01\x01\x12\x37\n\x0eparent_network\x18\x0f \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x06R\rparentNetwork\x88\x01\x01\x12N\n\x1c\x61\x64\x64itional_announcable_cidrs\x18\x10 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x1a\x61\x64\x64itionalAnnouncableCidrs\x12G\n\x0b\x63onsumption\x18\x11 \x01(\x0b\x32%.metalstack.api.v2.NetworkConsumptionR\x0b\x63onsumptionB\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0c\n\n_partitionB\n\n\x08_projectB\x0c\n\n_namespaceB\x06\n\x04_vrfB\x11\n\x0f_parent_network\"\x82\x07\n\x0cNetworkQuery\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\tnamespace\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x05R\tnamespace\x88\x01\x01\x12(\n\x08prefixes\x18\x07 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x08prefixes\x12?\n\x14\x64\x65stination_prefixes\x18\x08 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x13\x64\x65stinationPrefixes\x12\x15\n\x03vrf\x18\t \x01(\rH\x06R\x03vrf\x88\x01\x01\x12\x37\n\x0eparent_network\x18\n \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x07R\rparentNetwork\x88\x01\x01\x12]\n\x0e\x61\x64\x64ress_family\x18\x0b \x01(\x0e\x32\'.metalstack.api.v2.NetworkAddressFamilyB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x08R\raddressFamily\x88\x01\x01\x12\x41\n\x04type\x18\x0c \x01(\x0e\x32\x1e.metalstack.api.v2.NetworkTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01H\tR\x04type\x88\x01\x01\x12\x44\n\x08nat_type\x18\r \x01(\x0e\x32\x1a.metalstack.api.v2.NATTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01H\nR\x07natType\x88\x01\x01\x12\x36\n\x06labels\x18\x0e \x01(\x0b\x32\x19.metalstack.api.v2.LabelsH\x0bR\x06labels\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0c\n\n_partitionB\n\n\x08_projectB\x0c\n\n_namespaceB\x06\n\x04_vrfB\x11\n\x0f_parent_networkB\x11\n\x0f_address_familyB\x07\n\x05_typeB\x0b\n\t_nat_typeB\t\n\x07_labels\"\xc0\x01\n\x1a\x45xternalNetworkMemberQuery\x12*\n\x06switch\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01H\x00R\x06switch\x88\x01\x01\x12$\n\x04rack\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x04rack\x88\x01\x01\x12.\n\tpartition\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x02R\tpartition\x88\x01\x01\x42\t\n\x07_switchB\x07\n\x05_rackB\x0c\n\n_partition\"n\n\x11\x43hildPrefixLength\x12\"\n\x04ipv4\x18\x01 \x01(\rB\t\xbaH\x06*\x04\x18 \x00H\x00R\x04ipv4\x88\x01\x01\x12#\n\x04ipv6\x18\x02 \x01(\rB\n\xbaH\x07*\x05\x18\x80\x01 \x00H\x01R\x04ipv6\x88\x01\x01\x42\x07\n\x05_ipv4B\x07\n\x05_ipv6\"~\n\x12NetworkConsumption\x12\x33\n\x04ipv4\x18\x01 \x01(\x0b\x32\x1f.metalstack.api.v2.NetworkUsageR\x04ipv4\x12\x33\n\x04ipv6\x18\x02 \x01(\x0b\x32\x1f.metalstack.api.v2.NetworkUsageR\x04ipv6\"\xa2\x01\n\x0cNetworkUsage\x12#\n\ravailable_ips\x18\x01 \x01(\x04R\x0c\x61vailableIps\x12\x19\n\x08used_ips\x18\x02 \x01(\x04R\x07usedIps\x12-\n\x12\x61vailable_prefixes\x18\x03 \x01(\x04R\x11\x61vailablePrefixes\x12#\n\rused_prefixes\x18\x04 \x01(\x04R\x0cusedPrefixes\"\xbd\x01\n\x15\x45xternalNetworkMember\x12#\n\x06switch\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x06switch\x12)\n\tpartition\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01R\tpartition\x12$\n\x04rack\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x04rack\x88\x01\x01\x12%\n\x05ports\x18\x04 \x03(\tB\x0f\xbaH\x0c\x92\x01\t\x10\x80\x10\xd0\xa4\xb3\xb1\x02\x01R\x05portsB\x07\n\x05_rack*m\n\x07NATType\x12\x18\n\x14NAT_TYPE_UNSPECIFIED\x10\x00\x12\x1b\n\rNAT_TYPE_NONE\x10\x01\x1a\x08\x82\xb2\x19\x04none\x12+\n\x18NAT_TYPE_IPV4_MASQUERADE\x10\x02\x1a\r\x82\xb2\x19\tipv4-masq*\xad\x02\n\x0bNetworkType\x12\x1c\n\x18NETWORK_TYPE_UNSPECIFIED\x10\x00\x12\'\n\x15NETWORK_TYPE_EXTERNAL\x10\x01\x1a\x0c\x82\xb2\x19\x08\x65xternal\x12\'\n\x15NETWORK_TYPE_UNDERLAY\x10\x02\x1a\x0c\x82\xb2\x19\x08underlay\x12!\n\x12NETWORK_TYPE_SUPER\x10\x03\x1a\t\x82\xb2\x19\x05super\x12\x37\n\x1dNETWORK_TYPE_SUPER_NAMESPACED\x10\x04\x1a\x14\x82\xb2\x19\x10super-namespaced\x12!\n\x12NETWORK_TYPE_CHILD\x10\x05\x1a\t\x82\xb2\x19\x05\x63hild\x12/\n\x19NETWORK_TYPE_CHILD_SHARED\x10\x06\x1a\x10\x82\xb2\x19\x0c\x63hild-shared*\xc7\x01\n\x14NetworkAddressFamily\x12&\n\"NETWORK_ADDRESS_FAMILY_UNSPECIFIED\x10\x00\x12\'\n\x19NETWORK_ADDRESS_FAMILY_V4\x10\x01\x1a\x08\x82\xb2\x19\x04ipv4\x12\'\n\x19NETWORK_ADDRESS_FAMILY_V6\x10\x02\x1a\x08\x82\xb2\x19\x04ipv6\x12\x35\n!NETWORK_ADDRESS_FAMILY_DUAL_STACK\x10\x03\x1a\x0e\x82\xb2\x19\ndual-stack2\xed\x05\n\x0eNetworkService\x12m\n\x03Get\x12+.metalstack.api.v2.NetworkServiceGetRequest\x1a,.metalstack.api.v2.NetworkServiceGetResponse\"\x0b\xca\xf3\x18\x03\x01\x02\x03\xe0\xf3\x18\x02\x12u\n\x06\x43reate\x12..metalstack.api.v2.NetworkServiceCreateRequest\x1a/.metalstack.api.v2.NetworkServiceCreateResponse\"\n\xca\xf3\x18\x02\x01\x02\xe0\xf3\x18\x01\x12u\n\x06Update\x12..metalstack.api.v2.NetworkServiceUpdateRequest\x1a/.metalstack.api.v2.NetworkServiceUpdateResponse\"\n\xca\xf3\x18\x02\x01\x02\xe0\xf3\x18\x01\x12p\n\x04List\x12,.metalstack.api.v2.NetworkServiceListRequest\x1a-.metalstack.api.v2.NetworkServiceListResponse\"\x0b\xca\xf3\x18\x03\x01\x02\x03\xe0\xf3\x18\x02\x12\x94\x01\n\x10ListBaseNetworks\x12\x38.metalstack.api.v2.NetworkServiceListBaseNetworksRequest\x1a\x39.metalstack.api.v2.NetworkServiceListBaseNetworksResponse\"\x0b\xca\xf3\x18\x03\x01\x02\x03\xe0\xf3\x18\x02\x12u\n\x06\x44\x65lete\x12..metalstack.api.v2.NetworkServiceDeleteRequest\x1a/.metalstack.api.v2.NetworkServiceDeleteResponse\"\n\xca\xf3\x18\x02\x01\x02\xe0\xf3\x18\x01\x42\xc2\x01\n\x15\x63om.metalstack.api.v2B\x0cNetworkProtoP\x01Z5github.com/metal-stack/api/go/metalstack/api/v2;apiv2\xa2\x02\x03MAX\xaa\x02\x11Metalstack.Api.V2\xca\x02\x11Metalstack\\Api\\V2\xe2\x02\x1dMetalstack\\Api\\V2\\GPBMetadata\xea\x02\x13Metalstack::Api::V2b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fmetalstack/api/v2/network.proto\x12\x11metalstack.api.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1emetalstack/api/v2/common.proto\x1a(metalstack/api/v2/predefined_rules.proto\"^\n\x18NetworkServiceGetRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\x12%\n\x07project\x18\x02 \x01(\tB\x0b\xbaH\x08r\x03\xb0\x01\x01\xd8\x01\x01R\x07project\"Q\n\x19NetworkServiceGetResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"\xb1\x04\n\x1bNetworkServiceCreateRequest\x12\"\n\x07project\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12$\n\x04name\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x04name\x88\x01\x01\x12\x32\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x01R\x0b\x64\x65scription\x88\x01\x01\x12.\n\tpartition\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x02R\tpartition\x88\x01\x01\x12\x31\n\x06labels\x18\x05 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsR\x06labels\x12\x37\n\x0eparent_network\x18\x06 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x03R\rparentNetwork\x88\x01\x01\x12\x41\n\x06length\x18\x07 \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthH\x04R\x06length\x88\x01\x01\x12]\n\x0e\x61\x64\x64ress_family\x18\x08 \x01(\x0e\x32\'.metalstack.api.v2.NetworkAddressFamilyB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x05R\raddressFamily\x88\x01\x01\x42\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0c\n\n_partitionB\x11\n\x0f_parent_networkB\t\n\x07_lengthB\x11\n\x0f_address_family\"T\n\x1cNetworkServiceCreateResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"\xe2\x02\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\x07project\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12$\n\x04name\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x04name\x88\x01\x01\x12\x32\n\x0b\x64\x65scription\x18\x05 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x01R\x0b\x64\x65scription\x88\x01\x01\x12<\n\x06labels\x18\x06 \x01(\x0b\x32\x1f.metalstack.api.v2.UpdateLabelsH\x02R\x06labels\x88\x01\x01\x42\x07\n\x05_nameB\x0e\n\x0c_descriptionB\t\n\x07_labels\"T\n\x1cNetworkServiceUpdateResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"y\n\x19NetworkServiceListRequest\x12%\n\x07project\x18\x01 \x01(\tB\x0b\xbaH\x08r\x03\xb0\x01\x01\xd8\x01\x01R\x07project\x12\x35\n\x05query\x18\x02 \x01(\x0b\x32\x1f.metalstack.api.v2.NetworkQueryR\x05query\"T\n\x1aNetworkServiceListResponse\x12\x36\n\x08networks\x18\x01 \x03(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x08networks\"\x85\x01\n%NetworkServiceListBaseNetworksRequest\x12%\n\x07project\x18\x01 \x01(\tB\x0b\xbaH\x08r\x03\xb0\x01\x01\xd8\x01\x01R\x07project\x12\x35\n\x05query\x18\x02 \x01(\x0b\x32\x1f.metalstack.api.v2.NetworkQueryR\x05query\"`\n&NetworkServiceListBaseNetworksResponse\x12\x36\n\x08networks\x18\x01 \x03(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x08networks\"^\n\x1bNetworkServiceDeleteRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\x12\"\n\x07project\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\"T\n\x1cNetworkServiceDeleteResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"\xa4\x08\n\x07Network\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\x12+\n\x04meta\x18\x02 \x01(\x0b\x32\x17.metalstack.api.v2.MetaR\x04meta\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\tpartition\x18\x05 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x02R\tpartition\x88\x01\x01\x12\'\n\x07project\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x03R\x07project\x88\x01\x01\x12+\n\tnamespace\x18\x07 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x04R\tnamespace\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<\n\x04type\x18\x0c \x01(\x0e\x32\x1e.metalstack.api.v2.NetworkTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x04type\x12?\n\x08nat_type\x18\r \x01(\x0e\x32\x1a.metalstack.api.v2.NATTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x07natType\x12\x15\n\x03vrf\x18\x0e \x01(\rH\x05R\x03vrf\x88\x01\x01\x12\x37\n\x0eparent_network\x18\x0f \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x06R\rparentNetwork\x88\x01\x01\x12N\n\x1c\x61\x64\x64itional_announcable_cidrs\x18\x10 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x1a\x61\x64\x64itionalAnnouncableCidrs\x12G\n\x0b\x63onsumption\x18\x11 \x01(\x0b\x32%.metalstack.api.v2.NetworkConsumptionR\x0b\x63onsumptionB\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0c\n\n_partitionB\n\n\x08_projectB\x0c\n\n_namespaceB\x06\n\x04_vrfB\x11\n\x0f_parent_network\"\x82\x07\n\x0cNetworkQuery\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\tnamespace\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x05R\tnamespace\x88\x01\x01\x12(\n\x08prefixes\x18\x07 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x08prefixes\x12?\n\x14\x64\x65stination_prefixes\x18\x08 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x13\x64\x65stinationPrefixes\x12\x15\n\x03vrf\x18\t \x01(\rH\x06R\x03vrf\x88\x01\x01\x12\x37\n\x0eparent_network\x18\n \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x07R\rparentNetwork\x88\x01\x01\x12]\n\x0e\x61\x64\x64ress_family\x18\x0b \x01(\x0e\x32\'.metalstack.api.v2.NetworkAddressFamilyB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x08R\raddressFamily\x88\x01\x01\x12\x41\n\x04type\x18\x0c \x01(\x0e\x32\x1e.metalstack.api.v2.NetworkTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01H\tR\x04type\x88\x01\x01\x12\x44\n\x08nat_type\x18\r \x01(\x0e\x32\x1a.metalstack.api.v2.NATTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01H\nR\x07natType\x88\x01\x01\x12\x36\n\x06labels\x18\x0e \x01(\x0b\x32\x19.metalstack.api.v2.LabelsH\x0bR\x06labels\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0c\n\n_partitionB\n\n\x08_projectB\x0c\n\n_namespaceB\x06\n\x04_vrfB\x11\n\x0f_parent_networkB\x11\n\x0f_address_familyB\x07\n\x05_typeB\x0b\n\t_nat_typeB\t\n\x07_labels\"\xc0\x01\n\x1a\x45xternalNetworkMemberQuery\x12*\n\x06switch\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01H\x00R\x06switch\x88\x01\x01\x12$\n\x04rack\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x04rack\x88\x01\x01\x12.\n\tpartition\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x02R\tpartition\x88\x01\x01\x42\t\n\x07_switchB\x07\n\x05_rackB\x0c\n\n_partition\"n\n\x11\x43hildPrefixLength\x12\"\n\x04ipv4\x18\x01 \x01(\rB\t\xbaH\x06*\x04\x18 \x00H\x00R\x04ipv4\x88\x01\x01\x12#\n\x04ipv6\x18\x02 \x01(\rB\n\xbaH\x07*\x05\x18\x80\x01 \x00H\x01R\x04ipv6\x88\x01\x01\x42\x07\n\x05_ipv4B\x07\n\x05_ipv6\"~\n\x12NetworkConsumption\x12\x33\n\x04ipv4\x18\x01 \x01(\x0b\x32\x1f.metalstack.api.v2.NetworkUsageR\x04ipv4\x12\x33\n\x04ipv6\x18\x02 \x01(\x0b\x32\x1f.metalstack.api.v2.NetworkUsageR\x04ipv6\"\xa2\x01\n\x0cNetworkUsage\x12#\n\ravailable_ips\x18\x01 \x01(\x04R\x0c\x61vailableIps\x12\x19\n\x08used_ips\x18\x02 \x01(\x04R\x07usedIps\x12-\n\x12\x61vailable_prefixes\x18\x03 \x01(\x04R\x11\x61vailablePrefixes\x12#\n\rused_prefixes\x18\x04 \x01(\x04R\x0cusedPrefixes\"\xaf\x01\n\x15\x45xternalNetworkMember\x12#\n\x06switch\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x06switch\x12)\n\tpartition\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01R\tpartition\x12\x1f\n\x04rack\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x04rack\x12%\n\x05ports\x18\x04 \x03(\tB\x0f\xbaH\x0c\x92\x01\t\x10\x80\x10\xd0\xa4\xb3\xb1\x02\x01R\x05ports*m\n\x07NATType\x12\x18\n\x14NAT_TYPE_UNSPECIFIED\x10\x00\x12\x1b\n\rNAT_TYPE_NONE\x10\x01\x1a\x08\x82\xb2\x19\x04none\x12+\n\x18NAT_TYPE_IPV4_MASQUERADE\x10\x02\x1a\r\x82\xb2\x19\tipv4-masq*\xad\x02\n\x0bNetworkType\x12\x1c\n\x18NETWORK_TYPE_UNSPECIFIED\x10\x00\x12\'\n\x15NETWORK_TYPE_EXTERNAL\x10\x01\x1a\x0c\x82\xb2\x19\x08\x65xternal\x12\'\n\x15NETWORK_TYPE_UNDERLAY\x10\x02\x1a\x0c\x82\xb2\x19\x08underlay\x12!\n\x12NETWORK_TYPE_SUPER\x10\x03\x1a\t\x82\xb2\x19\x05super\x12\x37\n\x1dNETWORK_TYPE_SUPER_NAMESPACED\x10\x04\x1a\x14\x82\xb2\x19\x10super-namespaced\x12!\n\x12NETWORK_TYPE_CHILD\x10\x05\x1a\t\x82\xb2\x19\x05\x63hild\x12/\n\x19NETWORK_TYPE_CHILD_SHARED\x10\x06\x1a\x10\x82\xb2\x19\x0c\x63hild-shared*\xc7\x01\n\x14NetworkAddressFamily\x12&\n\"NETWORK_ADDRESS_FAMILY_UNSPECIFIED\x10\x00\x12\'\n\x19NETWORK_ADDRESS_FAMILY_V4\x10\x01\x1a\x08\x82\xb2\x19\x04ipv4\x12\'\n\x19NETWORK_ADDRESS_FAMILY_V6\x10\x02\x1a\x08\x82\xb2\x19\x04ipv6\x12\x35\n!NETWORK_ADDRESS_FAMILY_DUAL_STACK\x10\x03\x1a\x0e\x82\xb2\x19\ndual-stack2\xed\x05\n\x0eNetworkService\x12m\n\x03Get\x12+.metalstack.api.v2.NetworkServiceGetRequest\x1a,.metalstack.api.v2.NetworkServiceGetResponse\"\x0b\xca\xf3\x18\x03\x01\x02\x03\xe0\xf3\x18\x02\x12u\n\x06\x43reate\x12..metalstack.api.v2.NetworkServiceCreateRequest\x1a/.metalstack.api.v2.NetworkServiceCreateResponse\"\n\xca\xf3\x18\x02\x01\x02\xe0\xf3\x18\x01\x12u\n\x06Update\x12..metalstack.api.v2.NetworkServiceUpdateRequest\x1a/.metalstack.api.v2.NetworkServiceUpdateResponse\"\n\xca\xf3\x18\x02\x01\x02\xe0\xf3\x18\x01\x12p\n\x04List\x12,.metalstack.api.v2.NetworkServiceListRequest\x1a-.metalstack.api.v2.NetworkServiceListResponse\"\x0b\xca\xf3\x18\x03\x01\x02\x03\xe0\xf3\x18\x02\x12\x94\x01\n\x10ListBaseNetworks\x12\x38.metalstack.api.v2.NetworkServiceListBaseNetworksRequest\x1a\x39.metalstack.api.v2.NetworkServiceListBaseNetworksResponse\"\x0b\xca\xf3\x18\x03\x01\x02\x03\xe0\xf3\x18\x02\x12u\n\x06\x44\x65lete\x12..metalstack.api.v2.NetworkServiceDeleteRequest\x1a/.metalstack.api.v2.NetworkServiceDeleteResponse\"\n\xca\xf3\x18\x02\x01\x02\xe0\xf3\x18\x01\x42\xc2\x01\n\x15\x63om.metalstack.api.v2B\x0cNetworkProtoP\x01Z5github.com/metal-stack/api/go/metalstack/api/v2;apiv2\xa2\x02\x03MAX\xaa\x02\x11Metalstack.Api.V2\xca\x02\x11Metalstack\\Api\\V2\xe2\x02\x1dMetalstack\\Api\\V2\\GPBMetadata\xea\x02\x13Metalstack::Api::V2b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -169,12 +169,12 @@ _globals['_NETWORKSERVICE'].methods_by_name['ListBaseNetworks']._serialized_options = b'\312\363\030\003\001\002\003\340\363\030\002' _globals['_NETWORKSERVICE'].methods_by_name['Delete']._loaded_options = None _globals['_NETWORKSERVICE'].methods_by_name['Delete']._serialized_options = b'\312\363\030\002\001\002\340\363\030\001' - _globals['_NATTYPE']._serialized_start=4810 - _globals['_NATTYPE']._serialized_end=4919 - _globals['_NETWORKTYPE']._serialized_start=4922 - _globals['_NETWORKTYPE']._serialized_end=5223 - _globals['_NETWORKADDRESSFAMILY']._serialized_start=5226 - _globals['_NETWORKADDRESSFAMILY']._serialized_end=5425 + _globals['_NATTYPE']._serialized_start=4796 + _globals['_NATTYPE']._serialized_end=4905 + _globals['_NETWORKTYPE']._serialized_start=4908 + _globals['_NETWORKTYPE']._serialized_end=5209 + _globals['_NETWORKADDRESSFAMILY']._serialized_start=5212 + _globals['_NETWORKADDRESSFAMILY']._serialized_end=5411 _globals['_NETWORKSERVICEGETREQUEST']._serialized_start=157 _globals['_NETWORKSERVICEGETREQUEST']._serialized_end=251 _globals['_NETWORKSERVICEGETRESPONSE']._serialized_start=253 @@ -212,7 +212,7 @@ _globals['_NETWORKUSAGE']._serialized_start=4454 _globals['_NETWORKUSAGE']._serialized_end=4616 _globals['_EXTERNALNETWORKMEMBER']._serialized_start=4619 - _globals['_EXTERNALNETWORKMEMBER']._serialized_end=4808 - _globals['_NETWORKSERVICE']._serialized_start=5428 - _globals['_NETWORKSERVICE']._serialized_end=6177 + _globals['_EXTERNALNETWORKMEMBER']._serialized_end=4794 + _globals['_NETWORKSERVICE']._serialized_start=5414 + _globals['_NETWORKSERVICE']._serialized_end=6163 # @@protoc_insertion_point(module_scope) From 42408a5731f8b4e32c2eaa3b74ffde5614a3a15c Mon Sep 17 00:00:00 2001 From: Ilja Rotar Date: Thu, 10 Sep 2026 15:47:09 +0200 Subject: [PATCH 7/9] make bgp neighbor hostname optional --- doc/index.html | 2 +- go/metalstack/api/v2/switch.pb.go | 16 ++++---- js/metalstack/api/v2/switch_pb.d.ts | 4 +- js/metalstack/api/v2/switch_pb.js | 2 +- js/metalstack/api/v2/switch_pb.ts | 6 +-- proto/metalstack/api/v2/switch.proto | 2 +- python/metalstack/api/v2/switch_pb2.py | 52 +++++++++++++------------- 7 files changed, 43 insertions(+), 41 deletions(-) diff --git a/doc/index.html b/doc/index.html index 25e06c6d..876c0823 100644 --- a/doc/index.html +++ b/doc/index.html @@ -17777,7 +17777,7 @@

    SwitchBGPPortState

    neighbor string - + optional

    Neighbor of this port.

    diff --git a/go/metalstack/api/v2/switch.pb.go b/go/metalstack/api/v2/switch.pb.go index 448afd8d..63c1ba10 100644 --- a/go/metalstack/api/v2/switch.pb.go +++ b/go/metalstack/api/v2/switch.pb.go @@ -718,7 +718,7 @@ func (x *BGPFilter) GetVnis() []string { type SwitchBGPPortState struct { state protoimpl.MessageState `protogen:"open.v1"` // Neighbor of this port. - Neighbor string `protobuf:"bytes,1,opt,name=neighbor,proto3" json:"neighbor,omitempty"` + Neighbor *string `protobuf:"bytes,1,opt,name=neighbor,proto3,oneof" json:"neighbor,omitempty"` // PeerGroup of this port. PeerGroup string `protobuf:"bytes,2,opt,name=peer_group,json=peerGroup,proto3" json:"peer_group,omitempty"` // VrfName of the VRF this port is bound to. @@ -766,8 +766,8 @@ func (*SwitchBGPPortState) Descriptor() ([]byte, []int) { } func (x *SwitchBGPPortState) GetNeighbor() string { - if x != nil { - return x.Neighbor + if x != nil && x.Neighbor != nil { + return *x.Neighbor } return "" } @@ -1325,16 +1325,17 @@ const file_metalstack_api_v2_switch_proto_rawDesc = "" + "\x0f_bgp_port_state\"T\n" + "\tBGPFilter\x12\"\n" + "\x05cidrs\x18\x01 \x03(\tB\f\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x05cidrs\x12#\n" + - "\x04vnis\x18\x02 \x03(\tB\x0f\xbaH\f\x92\x01\t\"\ar\x05\x10\x02\x18\x80\x01R\x04vnis\"\x92\x03\n" + - "\x12SwitchBGPPortState\x12'\n" + - "\bneighbor\x18\x01 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01R\bneighbor\x12*\n" + + "\x04vnis\x18\x02 \x03(\tB\x0f\xbaH\f\x92\x01\t\"\ar\x05\x10\x02\x18\x80\x01R\x04vnis\"\xa4\x03\n" + + "\x12SwitchBGPPortState\x12,\n" + + "\bneighbor\x18\x01 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\bneighbor\x88\x01\x01\x12*\n" + "\n" + "peer_group\x18\x02 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01R\tpeerGroup\x12&\n" + "\bvrf_name\x18\x03 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01R\avrfName\x12B\n" + "\tbgp_state\x18\x04 \x01(\x0e2\x1b.metalstack.api.v2.BGPStateB\b\xbaH\x05\x82\x01\x02\x10\x01R\bbgpState\x12S\n" + "\x18bgp_timer_up_established\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\x15bgpTimerUpEstablished\x12.\n" + "\x13sent_prefix_counter\x18\x06 \x01(\x04R\x11sentPrefixCounter\x126\n" + - "\x17accepted_prefix_counter\x18\a \x01(\x04R\x15acceptedPrefixCounter\"\xab\x01\n" + + "\x17accepted_prefix_counter\x18\a \x01(\x04R\x15acceptedPrefixCounterB\v\n" + + "\t_neighbor\"\xab\x01\n" + "\bNicState\x12L\n" + "\adesired\x18\x01 \x01(\x0e2#.metalstack.api.v2.SwitchPortStatusB\b\xbaH\x05\x82\x01\x02\x10\x01H\x00R\adesired\x88\x01\x01\x12E\n" + "\x06actual\x18\x02 \x01(\x0e2#.metalstack.api.v2.SwitchPortStatusB\b\xbaH\x05\x82\x01\x02\x10\x01R\x06actualB\n" + @@ -1490,6 +1491,7 @@ func file_metalstack_api_v2_switch_proto_init() { file_metalstack_api_v2_predefined_rules_proto_init() file_metalstack_api_v2_switch_proto_msgTypes[0].OneofWrappers = []any{} file_metalstack_api_v2_switch_proto_msgTypes[2].OneofWrappers = []any{} + file_metalstack_api_v2_switch_proto_msgTypes[4].OneofWrappers = []any{} file_metalstack_api_v2_switch_proto_msgTypes[5].OneofWrappers = []any{} file_metalstack_api_v2_switch_proto_msgTypes[7].OneofWrappers = []any{} file_metalstack_api_v2_switch_proto_msgTypes[8].OneofWrappers = []any{} diff --git a/js/metalstack/api/v2/switch_pb.d.ts b/js/metalstack/api/v2/switch_pb.d.ts index 93da33fd..ebee4c47 100644 --- a/js/metalstack/api/v2/switch_pb.d.ts +++ b/js/metalstack/api/v2/switch_pb.d.ts @@ -232,9 +232,9 @@ export type SwitchBGPPortState = Message<"metalstack.api.v2.SwitchBGPPortState"> /** * Neighbor of this port. * - * @generated from field: string neighbor = 1; + * @generated from field: optional string neighbor = 1; */ - neighbor: string; + neighbor?: string | undefined; /** * PeerGroup of this port. * diff --git a/js/metalstack/api/v2/switch_pb.js b/js/metalstack/api/v2/switch_pb.js index ee6ad5e6..20b088af 100644 --- a/js/metalstack/api/v2/switch_pb.js +++ b/js/metalstack/api/v2/switch_pb.js @@ -10,7 +10,7 @@ import { file_metalstack_api_v2_predefined_rules } from "./predefined_rules_pb"; /** * Describes the file metalstack/api/v2/switch.proto. */ -export const file_metalstack_api_v2_switch = /*@__PURE__*/ fileDesc("Ch5tZXRhbHN0YWNrL2FwaS92Mi9zd2l0Y2gucHJvdG8SEW1ldGFsc3RhY2suYXBpLnYyIsIFCgZTd2l0Y2gSGQoCaWQYASABKAlCDbpICnIIwLOusQIBaAESJQoEbWV0YRgCIAEoCzIXLm1ldGFsc3RhY2suYXBpLnYyLk1ldGESIAoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBEh4KBHJhY2sYBCABKAlCC7pICHIGwLOusQIBSACIAQESHgoEcm9vbRgFIAEoCUILukgIcgbAs66xAgFIAYgBARIeCglwYXJ0aXRpb24YBiABKAlCC7pICHIG0LOusQIBEkQKDHJlcGxhY2VfbW9kZRgHIAEoDjIkLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFJlcGxhY2VNb2RlQgi6SAWCAQIQARIeCg1tYW5hZ2VtZW50X2lwGAggASgJQge6SARyAnABEigKD21hbmFnZW1lbnRfdXNlchgJIAEoCUIKukgHcgUQAhiAAUgCiAEBEigKD2NvbnNvbGVfY29tbWFuZBgKIAEoCUIKukgHcgUQAhiAAUgDiAEBEioKBG5pY3MYCyADKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSJwoCb3MYDCABKAsyGy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hPUxJBChNtYWNoaW5lX2Nvbm5lY3Rpb25zGA0gAygLMiQubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUNvbm5lY3Rpb24SMAoJbGFzdF9zeW5jGA4gASgLMh0ubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoU3luYxI2Cg9sYXN0X3N5bmNfZXJyb3IYDyABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hTeW5jQgcKBV9yYWNrQgcKBV9yb29tQhIKEF9tYW5hZ2VtZW50X3VzZXJCEgoQX2NvbnNvbGVfY29tbWFuZCKOAQoIU3dpdGNoT1MSOwoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABEhwKB3ZlcnNpb24YAiABKAlCC7pICHIGwLOusQIBEicKEm1ldGFsX2NvcmVfdmVyc2lvbhgDIAEoCUILukgIcgbAs66xAgEiqgMKCVN3aXRjaE5pYxIZCgRuYW1lGAEgASgJQgu6SAhyBsCzrrECARIfCgppZGVudGlmaWVyGAIgASgJQgu6SAhyBsCzrrECARIdCgNtYWMYAyABKAlCC7pICHIGuLOusQIBSACIAQESHQoDdnJmGAQgASgJQgu6SAhyBsCzrrECAUgBiAEBEi8KBXN0YXRlGAUgASgLMhsubWV0YWxzdGFjay5hcGkudjIuTmljU3RhdGVIAogBARI1CgpiZ3BfZmlsdGVyGAYgASgLMhwubWV0YWxzdGFjay5hcGkudjIuQkdQRmlsdGVySAOIAQESQgoOYmdwX3BvcnRfc3RhdGUYByABKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hCR1BQb3J0U3RhdGVIBIgBARI7CgptZW1iZXJzaGlwGAggASgOMicubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydE1lbWJlcnNoaXBCBgoEX21hY0IGCgRfdnJmQggKBl9zdGF0ZUINCgtfYmdwX2ZpbHRlckIRCg9fYmdwX3BvcnRfc3RhdGUiRwoJQkdQRmlsdGVyEhsKBWNpZHJzGAEgAygJQgy6SAmSAQa4pLOxAgESHQoEdm5pcxgCIAMoCUIPukgMkgEJIgdyBRACGIABIqkCChJTd2l0Y2hCR1BQb3J0U3RhdGUSHQoIbmVpZ2hib3IYASABKAlCC7pICHIGwLOusQIBEh8KCnBlZXJfZ3JvdXAYAiABKAlCC7pICHIGwLOusQIBEh0KCHZyZl9uYW1lGAMgASgJQgu6SAhyBsCzrrECARI4CgliZ3Bfc3RhdGUYBCABKA4yGy5tZXRhbHN0YWNrLmFwaS52Mi5CR1BTdGF0ZUIIukgFggECEAESPAoYYmdwX3RpbWVyX3VwX2VzdGFibGlzaGVkGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIbChNzZW50X3ByZWZpeF9jb3VudGVyGAYgASgEEh8KF2FjY2VwdGVkX3ByZWZpeF9jb3VudGVyGAcgASgEIpoBCghOaWNTdGF0ZRJDCgdkZXNpcmVkGAEgASgOMiMubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydFN0YXR1c0IIukgFggECEAFIAIgBARI9CgZhY3R1YWwYAiABKA4yIy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hQb3J0U3RhdHVzQgi6SAWCAQIQAUIKCghfZGVzaXJlZCJSChFNYWNoaW5lQ29ubmVjdGlvbhISCgptYWNoaW5lX2lkGAEgASgJEikKA25pYxgCIAEoCzIcLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pYyK5AgoLU3dpdGNoUXVlcnkSHgoCaWQYASABKAlCDbpICnIIwLOusQIBaAFIAIgBARIjCglwYXJ0aXRpb24YAiABKAlCC7pICHIG0LOusQIBSAGIAQESHgoEcmFjaxgDIAEoCUILukgIcgbAs66xAgFIAogBARIeCgRyb29tGAQgASgJQgu6SAhyBsCzrrECAUgDiAEBEjEKAm9zGAUgASgLMiAubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NRdWVyeUgEiAEBEisKFGNvbm5lY3RlZF9tYWNoaW5lX2lkGAYgASgJQgi6SAVyA7ABAUgFiAEBQgUKA19pZEIMCgpfcGFydGl0aW9uQgcKBV9yYWNrQgcKBV9yb29tQgUKA19vc0IXChVfY29ubmVjdGVkX21hY2hpbmVfaWQiiwEKDVN3aXRjaE9TUXVlcnkSQAoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABSACIAQESIQoHdmVyc2lvbhgCIAEoCUILukgIcgbAs66xAgFIAYgBAUIJCgdfdmVuZG9yQgoKCF92ZXJzaW9uIoEBCgpTd2l0Y2hTeW5jEigKBHRpbWUYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKCGR1cmF0aW9uGAIgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEhIKBWVycm9yGAMgASgJSACIAQFCCAoGX2Vycm9yIn8KElN3aXRjaFdpdGhNYWNoaW5lcxIKCgJpZBgBIAEoCRIRCglwYXJ0aXRpb24YAiABKAkSDAoEcmFjaxgDIAEoCRI8Cgtjb25uZWN0aW9ucxgEIAMoCzInLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pY1dpdGhNYWNoaW5lIpoBChRTd2l0Y2hOaWNXaXRoTWFjaGluZRIpCgNuaWMYASABKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSKwoHbWFjaGluZRgCIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk1hY2hpbmUSKgoDZnJ1GAMgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUZSVSqJAgoIQkdQU3RhdGUSGQoVQkdQX1NUQVRFX1VOU1BFQ0lGSUVEEAASHAoOQkdQX1NUQVRFX0lETEUQARoIgrIZBElkbGUSIgoRQkdQX1NUQVRFX0NPTk5FQ1QQAhoLgrIZB0Nvbm5lY3QSIAoQQkdQX1NUQVRFX0FDVElWRRADGgqCshkGQWN0aXZlEiUKE0JHUF9TVEFURV9PUEVOX1NFTlQQBBoMgrIZCE9wZW5TZW50EisKFkJHUF9TVEFURV9PUEVOX0NPTkZJUk0QBRoPgrIZC09wZW5Db25maXJtEioKFUJHUF9TVEFURV9FU1RBQkxJU0hFRBAGGg+CshkLRXN0YWJsaXNoZWQqogEKEVN3aXRjaFJlcGxhY2VNb2RlEikKH1NXSVRDSF9SRVBMQUNFX01PREVfVU5TUEVDSUZJRUQQABoEgrIZABIsChtTV0lUQ0hfUkVQTEFDRV9NT0RFX1JFUExBQ0UQARoLgrIZB3JlcGxhY2USNAofU1dJVENIX1JFUExBQ0VfTU9ERV9PUEVSQVRJT05BTBACGg+CshkLb3BlcmF0aW9uYWwqhAEKDlN3aXRjaE9TVmVuZG9yEiAKHFNXSVRDSF9PU19WRU5ET1JfVU5TUEVDSUZJRUQQABIpChhTV0lUQ0hfT1NfVkVORE9SX0NVTVVMVVMQARoLgrIZB0N1bXVsdXMSJQoWU1dJVENIX09TX1ZFTkRPUl9TT05JQxACGgmCshkFU09OaUMqrQEKEFN3aXRjaFBvcnRTdGF0dXMSIgoeU1dJVENIX1BPUlRfU1RBVFVTX1VOU1BFQ0lGSUVEEAASIQoVU1dJVENIX1BPUlRfU1RBVFVTX1VQEAEaBoKyGQJ1cBIlChdTV0lUQ0hfUE9SVF9TVEFUVVNfRE9XThACGgiCshkEZG93bhIrChpTV0lUQ0hfUE9SVF9TVEFUVVNfVU5LTk9XThADGguCshkHdW5rbm93birZAQoUU3dpdGNoUG9ydE1lbWJlcnNoaXASJgoiU1dJVENIX1BPUlRfTUVNQkVSU0hJUF9VTlNQRUNJRklFRBAAEjMKIFNXSVRDSF9QT1JUX01FTUJFUlNISVBfVU5NQU5BR0VEEAEaDYKyGQl1bm1hbmFnZWQSMQofU1dJVENIX1BPUlRfTUVNQkVSU0hJUF9JTlRFUk5BTBACGgyCshkIaW50ZXJuYWwSMQofU1dJVENIX1BPUlRfTUVNQkVSU0hJUF9FWFRFUk5BTBADGgyCshkIZXh0ZXJuYWxCwQEKFWNvbS5tZXRhbHN0YWNrLmFwaS52MkILU3dpdGNoUHJvdG9QAVo1Z2l0aHViLmNvbS9tZXRhbC1zdGFjay9hcGkvZ28vbWV0YWxzdGFjay9hcGkvdjI7YXBpdjKiAgNNQViqAhFNZXRhbHN0YWNrLkFwaS5WMsoCEU1ldGFsc3RhY2tcQXBpXFYy4gIdTWV0YWxzdGFja1xBcGlcVjJcR1BCTWV0YWRhdGHqAhNNZXRhbHN0YWNrOjpBcGk6OlYyYgZwcm90bzM", [file_buf_validate_validate, file_google_protobuf_duration, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_machine, file_metalstack_api_v2_predefined_rules]); +export const file_metalstack_api_v2_switch = /*@__PURE__*/ fileDesc("Ch5tZXRhbHN0YWNrL2FwaS92Mi9zd2l0Y2gucHJvdG8SEW1ldGFsc3RhY2suYXBpLnYyIsIFCgZTd2l0Y2gSGQoCaWQYASABKAlCDbpICnIIwLOusQIBaAESJQoEbWV0YRgCIAEoCzIXLm1ldGFsc3RhY2suYXBpLnYyLk1ldGESIAoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBEh4KBHJhY2sYBCABKAlCC7pICHIGwLOusQIBSACIAQESHgoEcm9vbRgFIAEoCUILukgIcgbAs66xAgFIAYgBARIeCglwYXJ0aXRpb24YBiABKAlCC7pICHIG0LOusQIBEkQKDHJlcGxhY2VfbW9kZRgHIAEoDjIkLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFJlcGxhY2VNb2RlQgi6SAWCAQIQARIeCg1tYW5hZ2VtZW50X2lwGAggASgJQge6SARyAnABEigKD21hbmFnZW1lbnRfdXNlchgJIAEoCUIKukgHcgUQAhiAAUgCiAEBEigKD2NvbnNvbGVfY29tbWFuZBgKIAEoCUIKukgHcgUQAhiAAUgDiAEBEioKBG5pY3MYCyADKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSJwoCb3MYDCABKAsyGy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hPUxJBChNtYWNoaW5lX2Nvbm5lY3Rpb25zGA0gAygLMiQubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUNvbm5lY3Rpb24SMAoJbGFzdF9zeW5jGA4gASgLMh0ubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoU3luYxI2Cg9sYXN0X3N5bmNfZXJyb3IYDyABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hTeW5jQgcKBV9yYWNrQgcKBV9yb29tQhIKEF9tYW5hZ2VtZW50X3VzZXJCEgoQX2NvbnNvbGVfY29tbWFuZCKOAQoIU3dpdGNoT1MSOwoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABEhwKB3ZlcnNpb24YAiABKAlCC7pICHIGwLOusQIBEicKEm1ldGFsX2NvcmVfdmVyc2lvbhgDIAEoCUILukgIcgbAs66xAgEiqgMKCVN3aXRjaE5pYxIZCgRuYW1lGAEgASgJQgu6SAhyBsCzrrECARIfCgppZGVudGlmaWVyGAIgASgJQgu6SAhyBsCzrrECARIdCgNtYWMYAyABKAlCC7pICHIGuLOusQIBSACIAQESHQoDdnJmGAQgASgJQgu6SAhyBsCzrrECAUgBiAEBEi8KBXN0YXRlGAUgASgLMhsubWV0YWxzdGFjay5hcGkudjIuTmljU3RhdGVIAogBARI1CgpiZ3BfZmlsdGVyGAYgASgLMhwubWV0YWxzdGFjay5hcGkudjIuQkdQRmlsdGVySAOIAQESQgoOYmdwX3BvcnRfc3RhdGUYByABKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hCR1BQb3J0U3RhdGVIBIgBARI7CgptZW1iZXJzaGlwGAggASgOMicubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydE1lbWJlcnNoaXBCBgoEX21hY0IGCgRfdnJmQggKBl9zdGF0ZUINCgtfYmdwX2ZpbHRlckIRCg9fYmdwX3BvcnRfc3RhdGUiRwoJQkdQRmlsdGVyEhsKBWNpZHJzGAEgAygJQgy6SAmSAQa4pLOxAgESHQoEdm5pcxgCIAMoCUIPukgMkgEJIgdyBRACGIABIrsCChJTd2l0Y2hCR1BQb3J0U3RhdGUSIgoIbmVpZ2hib3IYASABKAlCC7pICHIGwLOusQIBSACIAQESHwoKcGVlcl9ncm91cBgCIAEoCUILukgIcgbAs66xAgESHQoIdnJmX25hbWUYAyABKAlCC7pICHIGwLOusQIBEjgKCWJncF9zdGF0ZRgEIAEoDjIbLm1ldGFsc3RhY2suYXBpLnYyLkJHUFN0YXRlQgi6SAWCAQIQARI8ChhiZ3BfdGltZXJfdXBfZXN0YWJsaXNoZWQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhsKE3NlbnRfcHJlZml4X2NvdW50ZXIYBiABKAQSHwoXYWNjZXB0ZWRfcHJlZml4X2NvdW50ZXIYByABKARCCwoJX25laWdoYm9yIpoBCghOaWNTdGF0ZRJDCgdkZXNpcmVkGAEgASgOMiMubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydFN0YXR1c0IIukgFggECEAFIAIgBARI9CgZhY3R1YWwYAiABKA4yIy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hQb3J0U3RhdHVzQgi6SAWCAQIQAUIKCghfZGVzaXJlZCJSChFNYWNoaW5lQ29ubmVjdGlvbhISCgptYWNoaW5lX2lkGAEgASgJEikKA25pYxgCIAEoCzIcLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pYyK5AgoLU3dpdGNoUXVlcnkSHgoCaWQYASABKAlCDbpICnIIwLOusQIBaAFIAIgBARIjCglwYXJ0aXRpb24YAiABKAlCC7pICHIG0LOusQIBSAGIAQESHgoEcmFjaxgDIAEoCUILukgIcgbAs66xAgFIAogBARIeCgRyb29tGAQgASgJQgu6SAhyBsCzrrECAUgDiAEBEjEKAm9zGAUgASgLMiAubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NRdWVyeUgEiAEBEisKFGNvbm5lY3RlZF9tYWNoaW5lX2lkGAYgASgJQgi6SAVyA7ABAUgFiAEBQgUKA19pZEIMCgpfcGFydGl0aW9uQgcKBV9yYWNrQgcKBV9yb29tQgUKA19vc0IXChVfY29ubmVjdGVkX21hY2hpbmVfaWQiiwEKDVN3aXRjaE9TUXVlcnkSQAoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABSACIAQESIQoHdmVyc2lvbhgCIAEoCUILukgIcgbAs66xAgFIAYgBAUIJCgdfdmVuZG9yQgoKCF92ZXJzaW9uIoEBCgpTd2l0Y2hTeW5jEigKBHRpbWUYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKCGR1cmF0aW9uGAIgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEhIKBWVycm9yGAMgASgJSACIAQFCCAoGX2Vycm9yIn8KElN3aXRjaFdpdGhNYWNoaW5lcxIKCgJpZBgBIAEoCRIRCglwYXJ0aXRpb24YAiABKAkSDAoEcmFjaxgDIAEoCRI8Cgtjb25uZWN0aW9ucxgEIAMoCzInLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pY1dpdGhNYWNoaW5lIpoBChRTd2l0Y2hOaWNXaXRoTWFjaGluZRIpCgNuaWMYASABKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSKwoHbWFjaGluZRgCIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk1hY2hpbmUSKgoDZnJ1GAMgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUZSVSqJAgoIQkdQU3RhdGUSGQoVQkdQX1NUQVRFX1VOU1BFQ0lGSUVEEAASHAoOQkdQX1NUQVRFX0lETEUQARoIgrIZBElkbGUSIgoRQkdQX1NUQVRFX0NPTk5FQ1QQAhoLgrIZB0Nvbm5lY3QSIAoQQkdQX1NUQVRFX0FDVElWRRADGgqCshkGQWN0aXZlEiUKE0JHUF9TVEFURV9PUEVOX1NFTlQQBBoMgrIZCE9wZW5TZW50EisKFkJHUF9TVEFURV9PUEVOX0NPTkZJUk0QBRoPgrIZC09wZW5Db25maXJtEioKFUJHUF9TVEFURV9FU1RBQkxJU0hFRBAGGg+CshkLRXN0YWJsaXNoZWQqogEKEVN3aXRjaFJlcGxhY2VNb2RlEikKH1NXSVRDSF9SRVBMQUNFX01PREVfVU5TUEVDSUZJRUQQABoEgrIZABIsChtTV0lUQ0hfUkVQTEFDRV9NT0RFX1JFUExBQ0UQARoLgrIZB3JlcGxhY2USNAofU1dJVENIX1JFUExBQ0VfTU9ERV9PUEVSQVRJT05BTBACGg+CshkLb3BlcmF0aW9uYWwqhAEKDlN3aXRjaE9TVmVuZG9yEiAKHFNXSVRDSF9PU19WRU5ET1JfVU5TUEVDSUZJRUQQABIpChhTV0lUQ0hfT1NfVkVORE9SX0NVTVVMVVMQARoLgrIZB0N1bXVsdXMSJQoWU1dJVENIX09TX1ZFTkRPUl9TT05JQxACGgmCshkFU09OaUMqrQEKEFN3aXRjaFBvcnRTdGF0dXMSIgoeU1dJVENIX1BPUlRfU1RBVFVTX1VOU1BFQ0lGSUVEEAASIQoVU1dJVENIX1BPUlRfU1RBVFVTX1VQEAEaBoKyGQJ1cBIlChdTV0lUQ0hfUE9SVF9TVEFUVVNfRE9XThACGgiCshkEZG93bhIrChpTV0lUQ0hfUE9SVF9TVEFUVVNfVU5LTk9XThADGguCshkHdW5rbm93birZAQoUU3dpdGNoUG9ydE1lbWJlcnNoaXASJgoiU1dJVENIX1BPUlRfTUVNQkVSU0hJUF9VTlNQRUNJRklFRBAAEjMKIFNXSVRDSF9QT1JUX01FTUJFUlNISVBfVU5NQU5BR0VEEAEaDYKyGQl1bm1hbmFnZWQSMQofU1dJVENIX1BPUlRfTUVNQkVSU0hJUF9JTlRFUk5BTBACGgyCshkIaW50ZXJuYWwSMQofU1dJVENIX1BPUlRfTUVNQkVSU0hJUF9FWFRFUk5BTBADGgyCshkIZXh0ZXJuYWxCwQEKFWNvbS5tZXRhbHN0YWNrLmFwaS52MkILU3dpdGNoUHJvdG9QAVo1Z2l0aHViLmNvbS9tZXRhbC1zdGFjay9hcGkvZ28vbWV0YWxzdGFjay9hcGkvdjI7YXBpdjKiAgNNQViqAhFNZXRhbHN0YWNrLkFwaS5WMsoCEU1ldGFsc3RhY2tcQXBpXFYy4gIdTWV0YWxzdGFja1xBcGlcVjJcR1BCTWV0YWRhdGHqAhNNZXRhbHN0YWNrOjpBcGk6OlYyYgZwcm90bzM", [file_buf_validate_validate, file_google_protobuf_duration, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_machine, file_metalstack_api_v2_predefined_rules]); /** * Describes the message metalstack.api.v2.Switch. * Use `create(SwitchSchema)` to create a new message. diff --git a/js/metalstack/api/v2/switch_pb.ts b/js/metalstack/api/v2/switch_pb.ts index 6b3ba2a2..c2e2a459 100644 --- a/js/metalstack/api/v2/switch_pb.ts +++ b/js/metalstack/api/v2/switch_pb.ts @@ -18,7 +18,7 @@ import type { Message } from "@bufbuild/protobuf"; * Describes the file metalstack/api/v2/switch.proto. */ export const file_metalstack_api_v2_switch: GenFile = /*@__PURE__*/ - fileDesc("Ch5tZXRhbHN0YWNrL2FwaS92Mi9zd2l0Y2gucHJvdG8SEW1ldGFsc3RhY2suYXBpLnYyIsIFCgZTd2l0Y2gSGQoCaWQYASABKAlCDbpICnIIwLOusQIBaAESJQoEbWV0YRgCIAEoCzIXLm1ldGFsc3RhY2suYXBpLnYyLk1ldGESIAoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBEh4KBHJhY2sYBCABKAlCC7pICHIGwLOusQIBSACIAQESHgoEcm9vbRgFIAEoCUILukgIcgbAs66xAgFIAYgBARIeCglwYXJ0aXRpb24YBiABKAlCC7pICHIG0LOusQIBEkQKDHJlcGxhY2VfbW9kZRgHIAEoDjIkLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFJlcGxhY2VNb2RlQgi6SAWCAQIQARIeCg1tYW5hZ2VtZW50X2lwGAggASgJQge6SARyAnABEigKD21hbmFnZW1lbnRfdXNlchgJIAEoCUIKukgHcgUQAhiAAUgCiAEBEigKD2NvbnNvbGVfY29tbWFuZBgKIAEoCUIKukgHcgUQAhiAAUgDiAEBEioKBG5pY3MYCyADKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSJwoCb3MYDCABKAsyGy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hPUxJBChNtYWNoaW5lX2Nvbm5lY3Rpb25zGA0gAygLMiQubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUNvbm5lY3Rpb24SMAoJbGFzdF9zeW5jGA4gASgLMh0ubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoU3luYxI2Cg9sYXN0X3N5bmNfZXJyb3IYDyABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hTeW5jQgcKBV9yYWNrQgcKBV9yb29tQhIKEF9tYW5hZ2VtZW50X3VzZXJCEgoQX2NvbnNvbGVfY29tbWFuZCKOAQoIU3dpdGNoT1MSOwoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABEhwKB3ZlcnNpb24YAiABKAlCC7pICHIGwLOusQIBEicKEm1ldGFsX2NvcmVfdmVyc2lvbhgDIAEoCUILukgIcgbAs66xAgEiqgMKCVN3aXRjaE5pYxIZCgRuYW1lGAEgASgJQgu6SAhyBsCzrrECARIfCgppZGVudGlmaWVyGAIgASgJQgu6SAhyBsCzrrECARIdCgNtYWMYAyABKAlCC7pICHIGuLOusQIBSACIAQESHQoDdnJmGAQgASgJQgu6SAhyBsCzrrECAUgBiAEBEi8KBXN0YXRlGAUgASgLMhsubWV0YWxzdGFjay5hcGkudjIuTmljU3RhdGVIAogBARI1CgpiZ3BfZmlsdGVyGAYgASgLMhwubWV0YWxzdGFjay5hcGkudjIuQkdQRmlsdGVySAOIAQESQgoOYmdwX3BvcnRfc3RhdGUYByABKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hCR1BQb3J0U3RhdGVIBIgBARI7CgptZW1iZXJzaGlwGAggASgOMicubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydE1lbWJlcnNoaXBCBgoEX21hY0IGCgRfdnJmQggKBl9zdGF0ZUINCgtfYmdwX2ZpbHRlckIRCg9fYmdwX3BvcnRfc3RhdGUiRwoJQkdQRmlsdGVyEhsKBWNpZHJzGAEgAygJQgy6SAmSAQa4pLOxAgESHQoEdm5pcxgCIAMoCUIPukgMkgEJIgdyBRACGIABIqkCChJTd2l0Y2hCR1BQb3J0U3RhdGUSHQoIbmVpZ2hib3IYASABKAlCC7pICHIGwLOusQIBEh8KCnBlZXJfZ3JvdXAYAiABKAlCC7pICHIGwLOusQIBEh0KCHZyZl9uYW1lGAMgASgJQgu6SAhyBsCzrrECARI4CgliZ3Bfc3RhdGUYBCABKA4yGy5tZXRhbHN0YWNrLmFwaS52Mi5CR1BTdGF0ZUIIukgFggECEAESPAoYYmdwX3RpbWVyX3VwX2VzdGFibGlzaGVkGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIbChNzZW50X3ByZWZpeF9jb3VudGVyGAYgASgEEh8KF2FjY2VwdGVkX3ByZWZpeF9jb3VudGVyGAcgASgEIpoBCghOaWNTdGF0ZRJDCgdkZXNpcmVkGAEgASgOMiMubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydFN0YXR1c0IIukgFggECEAFIAIgBARI9CgZhY3R1YWwYAiABKA4yIy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hQb3J0U3RhdHVzQgi6SAWCAQIQAUIKCghfZGVzaXJlZCJSChFNYWNoaW5lQ29ubmVjdGlvbhISCgptYWNoaW5lX2lkGAEgASgJEikKA25pYxgCIAEoCzIcLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pYyK5AgoLU3dpdGNoUXVlcnkSHgoCaWQYASABKAlCDbpICnIIwLOusQIBaAFIAIgBARIjCglwYXJ0aXRpb24YAiABKAlCC7pICHIG0LOusQIBSAGIAQESHgoEcmFjaxgDIAEoCUILukgIcgbAs66xAgFIAogBARIeCgRyb29tGAQgASgJQgu6SAhyBsCzrrECAUgDiAEBEjEKAm9zGAUgASgLMiAubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NRdWVyeUgEiAEBEisKFGNvbm5lY3RlZF9tYWNoaW5lX2lkGAYgASgJQgi6SAVyA7ABAUgFiAEBQgUKA19pZEIMCgpfcGFydGl0aW9uQgcKBV9yYWNrQgcKBV9yb29tQgUKA19vc0IXChVfY29ubmVjdGVkX21hY2hpbmVfaWQiiwEKDVN3aXRjaE9TUXVlcnkSQAoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABSACIAQESIQoHdmVyc2lvbhgCIAEoCUILukgIcgbAs66xAgFIAYgBAUIJCgdfdmVuZG9yQgoKCF92ZXJzaW9uIoEBCgpTd2l0Y2hTeW5jEigKBHRpbWUYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKCGR1cmF0aW9uGAIgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEhIKBWVycm9yGAMgASgJSACIAQFCCAoGX2Vycm9yIn8KElN3aXRjaFdpdGhNYWNoaW5lcxIKCgJpZBgBIAEoCRIRCglwYXJ0aXRpb24YAiABKAkSDAoEcmFjaxgDIAEoCRI8Cgtjb25uZWN0aW9ucxgEIAMoCzInLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pY1dpdGhNYWNoaW5lIpoBChRTd2l0Y2hOaWNXaXRoTWFjaGluZRIpCgNuaWMYASABKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSKwoHbWFjaGluZRgCIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk1hY2hpbmUSKgoDZnJ1GAMgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUZSVSqJAgoIQkdQU3RhdGUSGQoVQkdQX1NUQVRFX1VOU1BFQ0lGSUVEEAASHAoOQkdQX1NUQVRFX0lETEUQARoIgrIZBElkbGUSIgoRQkdQX1NUQVRFX0NPTk5FQ1QQAhoLgrIZB0Nvbm5lY3QSIAoQQkdQX1NUQVRFX0FDVElWRRADGgqCshkGQWN0aXZlEiUKE0JHUF9TVEFURV9PUEVOX1NFTlQQBBoMgrIZCE9wZW5TZW50EisKFkJHUF9TVEFURV9PUEVOX0NPTkZJUk0QBRoPgrIZC09wZW5Db25maXJtEioKFUJHUF9TVEFURV9FU1RBQkxJU0hFRBAGGg+CshkLRXN0YWJsaXNoZWQqogEKEVN3aXRjaFJlcGxhY2VNb2RlEikKH1NXSVRDSF9SRVBMQUNFX01PREVfVU5TUEVDSUZJRUQQABoEgrIZABIsChtTV0lUQ0hfUkVQTEFDRV9NT0RFX1JFUExBQ0UQARoLgrIZB3JlcGxhY2USNAofU1dJVENIX1JFUExBQ0VfTU9ERV9PUEVSQVRJT05BTBACGg+CshkLb3BlcmF0aW9uYWwqhAEKDlN3aXRjaE9TVmVuZG9yEiAKHFNXSVRDSF9PU19WRU5ET1JfVU5TUEVDSUZJRUQQABIpChhTV0lUQ0hfT1NfVkVORE9SX0NVTVVMVVMQARoLgrIZB0N1bXVsdXMSJQoWU1dJVENIX09TX1ZFTkRPUl9TT05JQxACGgmCshkFU09OaUMqrQEKEFN3aXRjaFBvcnRTdGF0dXMSIgoeU1dJVENIX1BPUlRfU1RBVFVTX1VOU1BFQ0lGSUVEEAASIQoVU1dJVENIX1BPUlRfU1RBVFVTX1VQEAEaBoKyGQJ1cBIlChdTV0lUQ0hfUE9SVF9TVEFUVVNfRE9XThACGgiCshkEZG93bhIrChpTV0lUQ0hfUE9SVF9TVEFUVVNfVU5LTk9XThADGguCshkHdW5rbm93birZAQoUU3dpdGNoUG9ydE1lbWJlcnNoaXASJgoiU1dJVENIX1BPUlRfTUVNQkVSU0hJUF9VTlNQRUNJRklFRBAAEjMKIFNXSVRDSF9QT1JUX01FTUJFUlNISVBfVU5NQU5BR0VEEAEaDYKyGQl1bm1hbmFnZWQSMQofU1dJVENIX1BPUlRfTUVNQkVSU0hJUF9JTlRFUk5BTBACGgyCshkIaW50ZXJuYWwSMQofU1dJVENIX1BPUlRfTUVNQkVSU0hJUF9FWFRFUk5BTBADGgyCshkIZXh0ZXJuYWxCwQEKFWNvbS5tZXRhbHN0YWNrLmFwaS52MkILU3dpdGNoUHJvdG9QAVo1Z2l0aHViLmNvbS9tZXRhbC1zdGFjay9hcGkvZ28vbWV0YWxzdGFjay9hcGkvdjI7YXBpdjKiAgNNQViqAhFNZXRhbHN0YWNrLkFwaS5WMsoCEU1ldGFsc3RhY2tcQXBpXFYy4gIdTWV0YWxzdGFja1xBcGlcVjJcR1BCTWV0YWRhdGHqAhNNZXRhbHN0YWNrOjpBcGk6OlYyYgZwcm90bzM", [file_buf_validate_validate, file_google_protobuf_duration, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_machine, file_metalstack_api_v2_predefined_rules]); + fileDesc("Ch5tZXRhbHN0YWNrL2FwaS92Mi9zd2l0Y2gucHJvdG8SEW1ldGFsc3RhY2suYXBpLnYyIsIFCgZTd2l0Y2gSGQoCaWQYASABKAlCDbpICnIIwLOusQIBaAESJQoEbWV0YRgCIAEoCzIXLm1ldGFsc3RhY2suYXBpLnYyLk1ldGESIAoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBEh4KBHJhY2sYBCABKAlCC7pICHIGwLOusQIBSACIAQESHgoEcm9vbRgFIAEoCUILukgIcgbAs66xAgFIAYgBARIeCglwYXJ0aXRpb24YBiABKAlCC7pICHIG0LOusQIBEkQKDHJlcGxhY2VfbW9kZRgHIAEoDjIkLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFJlcGxhY2VNb2RlQgi6SAWCAQIQARIeCg1tYW5hZ2VtZW50X2lwGAggASgJQge6SARyAnABEigKD21hbmFnZW1lbnRfdXNlchgJIAEoCUIKukgHcgUQAhiAAUgCiAEBEigKD2NvbnNvbGVfY29tbWFuZBgKIAEoCUIKukgHcgUQAhiAAUgDiAEBEioKBG5pY3MYCyADKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSJwoCb3MYDCABKAsyGy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hPUxJBChNtYWNoaW5lX2Nvbm5lY3Rpb25zGA0gAygLMiQubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUNvbm5lY3Rpb24SMAoJbGFzdF9zeW5jGA4gASgLMh0ubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoU3luYxI2Cg9sYXN0X3N5bmNfZXJyb3IYDyABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hTeW5jQgcKBV9yYWNrQgcKBV9yb29tQhIKEF9tYW5hZ2VtZW50X3VzZXJCEgoQX2NvbnNvbGVfY29tbWFuZCKOAQoIU3dpdGNoT1MSOwoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABEhwKB3ZlcnNpb24YAiABKAlCC7pICHIGwLOusQIBEicKEm1ldGFsX2NvcmVfdmVyc2lvbhgDIAEoCUILukgIcgbAs66xAgEiqgMKCVN3aXRjaE5pYxIZCgRuYW1lGAEgASgJQgu6SAhyBsCzrrECARIfCgppZGVudGlmaWVyGAIgASgJQgu6SAhyBsCzrrECARIdCgNtYWMYAyABKAlCC7pICHIGuLOusQIBSACIAQESHQoDdnJmGAQgASgJQgu6SAhyBsCzrrECAUgBiAEBEi8KBXN0YXRlGAUgASgLMhsubWV0YWxzdGFjay5hcGkudjIuTmljU3RhdGVIAogBARI1CgpiZ3BfZmlsdGVyGAYgASgLMhwubWV0YWxzdGFjay5hcGkudjIuQkdQRmlsdGVySAOIAQESQgoOYmdwX3BvcnRfc3RhdGUYByABKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hCR1BQb3J0U3RhdGVIBIgBARI7CgptZW1iZXJzaGlwGAggASgOMicubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydE1lbWJlcnNoaXBCBgoEX21hY0IGCgRfdnJmQggKBl9zdGF0ZUINCgtfYmdwX2ZpbHRlckIRCg9fYmdwX3BvcnRfc3RhdGUiRwoJQkdQRmlsdGVyEhsKBWNpZHJzGAEgAygJQgy6SAmSAQa4pLOxAgESHQoEdm5pcxgCIAMoCUIPukgMkgEJIgdyBRACGIABIrsCChJTd2l0Y2hCR1BQb3J0U3RhdGUSIgoIbmVpZ2hib3IYASABKAlCC7pICHIGwLOusQIBSACIAQESHwoKcGVlcl9ncm91cBgCIAEoCUILukgIcgbAs66xAgESHQoIdnJmX25hbWUYAyABKAlCC7pICHIGwLOusQIBEjgKCWJncF9zdGF0ZRgEIAEoDjIbLm1ldGFsc3RhY2suYXBpLnYyLkJHUFN0YXRlQgi6SAWCAQIQARI8ChhiZ3BfdGltZXJfdXBfZXN0YWJsaXNoZWQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhsKE3NlbnRfcHJlZml4X2NvdW50ZXIYBiABKAQSHwoXYWNjZXB0ZWRfcHJlZml4X2NvdW50ZXIYByABKARCCwoJX25laWdoYm9yIpoBCghOaWNTdGF0ZRJDCgdkZXNpcmVkGAEgASgOMiMubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydFN0YXR1c0IIukgFggECEAFIAIgBARI9CgZhY3R1YWwYAiABKA4yIy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hQb3J0U3RhdHVzQgi6SAWCAQIQAUIKCghfZGVzaXJlZCJSChFNYWNoaW5lQ29ubmVjdGlvbhISCgptYWNoaW5lX2lkGAEgASgJEikKA25pYxgCIAEoCzIcLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pYyK5AgoLU3dpdGNoUXVlcnkSHgoCaWQYASABKAlCDbpICnIIwLOusQIBaAFIAIgBARIjCglwYXJ0aXRpb24YAiABKAlCC7pICHIG0LOusQIBSAGIAQESHgoEcmFjaxgDIAEoCUILukgIcgbAs66xAgFIAogBARIeCgRyb29tGAQgASgJQgu6SAhyBsCzrrECAUgDiAEBEjEKAm9zGAUgASgLMiAubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NRdWVyeUgEiAEBEisKFGNvbm5lY3RlZF9tYWNoaW5lX2lkGAYgASgJQgi6SAVyA7ABAUgFiAEBQgUKA19pZEIMCgpfcGFydGl0aW9uQgcKBV9yYWNrQgcKBV9yb29tQgUKA19vc0IXChVfY29ubmVjdGVkX21hY2hpbmVfaWQiiwEKDVN3aXRjaE9TUXVlcnkSQAoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABSACIAQESIQoHdmVyc2lvbhgCIAEoCUILukgIcgbAs66xAgFIAYgBAUIJCgdfdmVuZG9yQgoKCF92ZXJzaW9uIoEBCgpTd2l0Y2hTeW5jEigKBHRpbWUYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKCGR1cmF0aW9uGAIgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEhIKBWVycm9yGAMgASgJSACIAQFCCAoGX2Vycm9yIn8KElN3aXRjaFdpdGhNYWNoaW5lcxIKCgJpZBgBIAEoCRIRCglwYXJ0aXRpb24YAiABKAkSDAoEcmFjaxgDIAEoCRI8Cgtjb25uZWN0aW9ucxgEIAMoCzInLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pY1dpdGhNYWNoaW5lIpoBChRTd2l0Y2hOaWNXaXRoTWFjaGluZRIpCgNuaWMYASABKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSKwoHbWFjaGluZRgCIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk1hY2hpbmUSKgoDZnJ1GAMgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUZSVSqJAgoIQkdQU3RhdGUSGQoVQkdQX1NUQVRFX1VOU1BFQ0lGSUVEEAASHAoOQkdQX1NUQVRFX0lETEUQARoIgrIZBElkbGUSIgoRQkdQX1NUQVRFX0NPTk5FQ1QQAhoLgrIZB0Nvbm5lY3QSIAoQQkdQX1NUQVRFX0FDVElWRRADGgqCshkGQWN0aXZlEiUKE0JHUF9TVEFURV9PUEVOX1NFTlQQBBoMgrIZCE9wZW5TZW50EisKFkJHUF9TVEFURV9PUEVOX0NPTkZJUk0QBRoPgrIZC09wZW5Db25maXJtEioKFUJHUF9TVEFURV9FU1RBQkxJU0hFRBAGGg+CshkLRXN0YWJsaXNoZWQqogEKEVN3aXRjaFJlcGxhY2VNb2RlEikKH1NXSVRDSF9SRVBMQUNFX01PREVfVU5TUEVDSUZJRUQQABoEgrIZABIsChtTV0lUQ0hfUkVQTEFDRV9NT0RFX1JFUExBQ0UQARoLgrIZB3JlcGxhY2USNAofU1dJVENIX1JFUExBQ0VfTU9ERV9PUEVSQVRJT05BTBACGg+CshkLb3BlcmF0aW9uYWwqhAEKDlN3aXRjaE9TVmVuZG9yEiAKHFNXSVRDSF9PU19WRU5ET1JfVU5TUEVDSUZJRUQQABIpChhTV0lUQ0hfT1NfVkVORE9SX0NVTVVMVVMQARoLgrIZB0N1bXVsdXMSJQoWU1dJVENIX09TX1ZFTkRPUl9TT05JQxACGgmCshkFU09OaUMqrQEKEFN3aXRjaFBvcnRTdGF0dXMSIgoeU1dJVENIX1BPUlRfU1RBVFVTX1VOU1BFQ0lGSUVEEAASIQoVU1dJVENIX1BPUlRfU1RBVFVTX1VQEAEaBoKyGQJ1cBIlChdTV0lUQ0hfUE9SVF9TVEFUVVNfRE9XThACGgiCshkEZG93bhIrChpTV0lUQ0hfUE9SVF9TVEFUVVNfVU5LTk9XThADGguCshkHdW5rbm93birZAQoUU3dpdGNoUG9ydE1lbWJlcnNoaXASJgoiU1dJVENIX1BPUlRfTUVNQkVSU0hJUF9VTlNQRUNJRklFRBAAEjMKIFNXSVRDSF9QT1JUX01FTUJFUlNISVBfVU5NQU5BR0VEEAEaDYKyGQl1bm1hbmFnZWQSMQofU1dJVENIX1BPUlRfTUVNQkVSU0hJUF9JTlRFUk5BTBACGgyCshkIaW50ZXJuYWwSMQofU1dJVENIX1BPUlRfTUVNQkVSU0hJUF9FWFRFUk5BTBADGgyCshkIZXh0ZXJuYWxCwQEKFWNvbS5tZXRhbHN0YWNrLmFwaS52MkILU3dpdGNoUHJvdG9QAVo1Z2l0aHViLmNvbS9tZXRhbC1zdGFjay9hcGkvZ28vbWV0YWxzdGFjay9hcGkvdjI7YXBpdjKiAgNNQViqAhFNZXRhbHN0YWNrLkFwaS5WMsoCEU1ldGFsc3RhY2tcQXBpXFYy4gIdTWV0YWxzdGFja1xBcGlcVjJcR1BCTWV0YWRhdGHqAhNNZXRhbHN0YWNrOjpBcGk6OlYyYgZwcm90bzM", [file_buf_validate_validate, file_google_protobuf_duration, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_machine, file_metalstack_api_v2_predefined_rules]); /** * Switch represents a network switch. @@ -281,9 +281,9 @@ export type SwitchBGPPortState = Message<"metalstack.api.v2.SwitchBGPPortState"> /** * Neighbor of this port. * - * @generated from field: string neighbor = 1; + * @generated from field: optional string neighbor = 1; */ - neighbor: string; + neighbor?: string | undefined; /** * PeerGroup of this port. diff --git a/proto/metalstack/api/v2/switch.proto b/proto/metalstack/api/v2/switch.proto index 17e4c94c..3048da90 100644 --- a/proto/metalstack/api/v2/switch.proto +++ b/proto/metalstack/api/v2/switch.proto @@ -96,7 +96,7 @@ message BGPFilter { // SwitchBGPPortState holds information about the BGP state of a port. message SwitchBGPPortState { // Neighbor of this port. - string neighbor = 1 [(buf.validate.field).string.(metalstack.api.v2.is_name) = true]; + optional string neighbor = 1 [(buf.validate.field).string.(metalstack.api.v2.is_name) = true]; // PeerGroup of this port. string peer_group = 2 [(buf.validate.field).string.(metalstack.api.v2.is_name) = true]; // VrfName of the VRF this port is bound to. diff --git a/python/metalstack/api/v2/switch_pb2.py b/python/metalstack/api/v2/switch_pb2.py index 7355fed2..cd8a64f8 100644 --- a/python/metalstack/api/v2/switch_pb2.py +++ b/python/metalstack/api/v2/switch_pb2.py @@ -30,7 +30,7 @@ from metalstack.api.v2 import predefined_rules_pb2 as metalstack_dot_api_dot_v2_dot_predefined__rules__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1emetalstack/api/v2/switch.proto\x12\x11metalstack.api.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1emetalstack/api/v2/common.proto\x1a\x1fmetalstack/api/v2/machine.proto\x1a(metalstack/api/v2/predefined_rules.proto\"\xe2\x06\n\x06Switch\x12\x1d\n\x02id\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01R\x02id\x12+\n\x04meta\x18\x02 \x01(\x0b\x32\x17.metalstack.api.v2.MetaR\x04meta\x12-\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01R\x0b\x64\x65scription\x12$\n\x04rack\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x04rack\x88\x01\x01\x12$\n\x04room\x18\x05 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x04room\x88\x01\x01\x12)\n\tpartition\x18\x06 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01R\tpartition\x12Q\n\x0creplace_mode\x18\x07 \x01(\x0e\x32$.metalstack.api.v2.SwitchReplaceModeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x0breplaceMode\x12,\n\rmanagement_ip\x18\x08 \x01(\tB\x07\xbaH\x04r\x02p\x01R\x0cmanagementIp\x12\x38\n\x0fmanagement_user\x18\t \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x02R\x0emanagementUser\x88\x01\x01\x12\x38\n\x0f\x63onsole_command\x18\n \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x03R\x0e\x63onsoleCommand\x88\x01\x01\x12\x30\n\x04nics\x18\x0b \x03(\x0b\x32\x1c.metalstack.api.v2.SwitchNicR\x04nics\x12+\n\x02os\x18\x0c \x01(\x0b\x32\x1b.metalstack.api.v2.SwitchOSR\x02os\x12U\n\x13machine_connections\x18\r \x03(\x0b\x32$.metalstack.api.v2.MachineConnectionR\x12machineConnections\x12:\n\tlast_sync\x18\x0e \x01(\x0b\x32\x1d.metalstack.api.v2.SwitchSyncR\x08lastSync\x12\x45\n\x0flast_sync_error\x18\x0f \x01(\x0b\x32\x1d.metalstack.api.v2.SwitchSyncR\rlastSyncErrorB\x07\n\x05_rackB\x07\n\x05_roomB\x12\n\x10_management_userB\x12\n\x10_console_command\"\xb1\x01\n\x08SwitchOS\x12\x43\n\x06vendor\x18\x01 \x01(\x0e\x32!.metalstack.api.v2.SwitchOSVendorB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x06vendor\x12%\n\x07version\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07version\x12\x39\n\x12metal_core_version\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x10metalCoreVersion\"\xf2\x03\n\tSwitchNic\x12\x1f\n\x04name\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x04name\x12+\n\nidentifier\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\nidentifier\x12\"\n\x03mac\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xb8\xb3\xae\xb1\x02\x01H\x00R\x03mac\x88\x01\x01\x12\"\n\x03vrf\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x03vrf\x88\x01\x01\x12\x36\n\x05state\x18\x05 \x01(\x0b\x32\x1b.metalstack.api.v2.NicStateH\x02R\x05state\x88\x01\x01\x12@\n\nbgp_filter\x18\x06 \x01(\x0b\x32\x1c.metalstack.api.v2.BGPFilterH\x03R\tbgpFilter\x88\x01\x01\x12P\n\x0e\x62gp_port_state\x18\x07 \x01(\x0b\x32%.metalstack.api.v2.SwitchBGPPortStateH\x04R\x0c\x62gpPortState\x88\x01\x01\x12G\n\nmembership\x18\x08 \x01(\x0e\x32\'.metalstack.api.v2.SwitchPortMembershipR\nmembershipB\x06\n\x04_macB\x06\n\x04_vrfB\x08\n\x06_stateB\r\n\x0b_bgp_filterB\x11\n\x0f_bgp_port_state\"T\n\tBGPFilter\x12\"\n\x05\x63idrs\x18\x01 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x05\x63idrs\x12#\n\x04vnis\x18\x02 \x03(\tB\x0f\xbaH\x0c\x92\x01\t\"\x07r\x05\x10\x02\x18\x80\x01R\x04vnis\"\x92\x03\n\x12SwitchBGPPortState\x12\'\n\x08neighbor\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x08neighbor\x12*\n\npeer_group\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\tpeerGroup\x12&\n\x08vrf_name\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07vrfName\x12\x42\n\tbgp_state\x18\x04 \x01(\x0e\x32\x1b.metalstack.api.v2.BGPStateB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x08\x62gpState\x12S\n\x18\x62gp_timer_up_established\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x15\x62gpTimerUpEstablished\x12.\n\x13sent_prefix_counter\x18\x06 \x01(\x04R\x11sentPrefixCounter\x12\x36\n\x17\x61\x63\x63\x65pted_prefix_counter\x18\x07 \x01(\x04R\x15\x61\x63\x63\x65ptedPrefixCounter\"\xab\x01\n\x08NicState\x12L\n\x07\x64\x65sired\x18\x01 \x01(\x0e\x32#.metalstack.api.v2.SwitchPortStatusB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x00R\x07\x64\x65sired\x88\x01\x01\x12\x45\n\x06\x61\x63tual\x18\x02 \x01(\x0e\x32#.metalstack.api.v2.SwitchPortStatusB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x06\x61\x63tualB\n\n\x08_desired\"b\n\x11MachineConnection\x12\x1d\n\nmachine_id\x18\x01 \x01(\tR\tmachineId\x12.\n\x03nic\x18\x02 \x01(\x0b\x32\x1c.metalstack.api.v2.SwitchNicR\x03nic\"\xec\x02\n\x0bSwitchQuery\x12\"\n\x02id\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01H\x00R\x02id\x88\x01\x01\x12.\n\tpartition\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x01R\tpartition\x88\x01\x01\x12$\n\x04rack\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x02R\x04rack\x88\x01\x01\x12$\n\x04room\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x03R\x04room\x88\x01\x01\x12\x35\n\x02os\x18\x05 \x01(\x0b\x32 .metalstack.api.v2.SwitchOSQueryH\x04R\x02os\x88\x01\x01\x12?\n\x14\x63onnected_machine_id\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x05R\x12\x63onnectedMachineId\x88\x01\x01\x42\x05\n\x03_idB\x0c\n\n_partitionB\x07\n\x05_rackB\x07\n\x05_roomB\x05\n\x03_osB\x17\n\x15_connected_machine_id\"\x9c\x01\n\rSwitchOSQuery\x12H\n\x06vendor\x18\x01 \x01(\x0e\x32!.metalstack.api.v2.SwitchOSVendorB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x00R\x06vendor\x88\x01\x01\x12*\n\x07version\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x07version\x88\x01\x01\x42\t\n\x07_vendorB\n\n\x08_version\"\x98\x01\n\nSwitchSync\x12.\n\x04time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x04time\x12\x35\n\x08\x64uration\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationR\x08\x64uration\x12\x19\n\x05\x65rror\x18\x03 \x01(\tH\x00R\x05\x65rror\x88\x01\x01\x42\x08\n\x06_error\"\xa1\x01\n\x12SwitchWithMachines\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x1c\n\tpartition\x18\x02 \x01(\tR\tpartition\x12\x12\n\x04rack\x18\x03 \x01(\tR\x04rack\x12I\n\x0b\x63onnections\x18\x04 \x03(\x0b\x32\'.metalstack.api.v2.SwitchNicWithMachineR\x0b\x63onnections\"\xad\x01\n\x14SwitchNicWithMachine\x12.\n\x03nic\x18\x01 \x01(\x0b\x32\x1c.metalstack.api.v2.SwitchNicR\x03nic\x12\x34\n\x07machine\x18\x02 \x01(\x0b\x32\x1a.metalstack.api.v2.MachineR\x07machine\x12/\n\x03\x66ru\x18\x03 \x01(\x0b\x32\x1d.metalstack.api.v2.MachineFRUR\x03\x66ru*\x89\x02\n\x08\x42GPState\x12\x19\n\x15\x42GP_STATE_UNSPECIFIED\x10\x00\x12\x1c\n\x0e\x42GP_STATE_IDLE\x10\x01\x1a\x08\x82\xb2\x19\x04Idle\x12\"\n\x11\x42GP_STATE_CONNECT\x10\x02\x1a\x0b\x82\xb2\x19\x07\x43onnect\x12 \n\x10\x42GP_STATE_ACTIVE\x10\x03\x1a\n\x82\xb2\x19\x06\x41\x63tive\x12%\n\x13\x42GP_STATE_OPEN_SENT\x10\x04\x1a\x0c\x82\xb2\x19\x08OpenSent\x12+\n\x16\x42GP_STATE_OPEN_CONFIRM\x10\x05\x1a\x0f\x82\xb2\x19\x0bOpenConfirm\x12*\n\x15\x42GP_STATE_ESTABLISHED\x10\x06\x1a\x0f\x82\xb2\x19\x0b\x45stablished*\xa2\x01\n\x11SwitchReplaceMode\x12)\n\x1fSWITCH_REPLACE_MODE_UNSPECIFIED\x10\x00\x1a\x04\x82\xb2\x19\x00\x12,\n\x1bSWITCH_REPLACE_MODE_REPLACE\x10\x01\x1a\x0b\x82\xb2\x19\x07replace\x12\x34\n\x1fSWITCH_REPLACE_MODE_OPERATIONAL\x10\x02\x1a\x0f\x82\xb2\x19\x0boperational*\x84\x01\n\x0eSwitchOSVendor\x12 \n\x1cSWITCH_OS_VENDOR_UNSPECIFIED\x10\x00\x12)\n\x18SWITCH_OS_VENDOR_CUMULUS\x10\x01\x1a\x0b\x82\xb2\x19\x07\x43umulus\x12%\n\x16SWITCH_OS_VENDOR_SONIC\x10\x02\x1a\t\x82\xb2\x19\x05SONiC*\xad\x01\n\x10SwitchPortStatus\x12\"\n\x1eSWITCH_PORT_STATUS_UNSPECIFIED\x10\x00\x12!\n\x15SWITCH_PORT_STATUS_UP\x10\x01\x1a\x06\x82\xb2\x19\x02up\x12%\n\x17SWITCH_PORT_STATUS_DOWN\x10\x02\x1a\x08\x82\xb2\x19\x04\x64own\x12+\n\x1aSWITCH_PORT_STATUS_UNKNOWN\x10\x03\x1a\x0b\x82\xb2\x19\x07unknown*\xd9\x01\n\x14SwitchPortMembership\x12&\n\"SWITCH_PORT_MEMBERSHIP_UNSPECIFIED\x10\x00\x12\x33\n SWITCH_PORT_MEMBERSHIP_UNMANAGED\x10\x01\x1a\r\x82\xb2\x19\tunmanaged\x12\x31\n\x1fSWITCH_PORT_MEMBERSHIP_INTERNAL\x10\x02\x1a\x0c\x82\xb2\x19\x08internal\x12\x31\n\x1fSWITCH_PORT_MEMBERSHIP_EXTERNAL\x10\x03\x1a\x0c\x82\xb2\x19\x08\x65xternalB\xc1\x01\n\x15\x63om.metalstack.api.v2B\x0bSwitchProtoP\x01Z5github.com/metal-stack/api/go/metalstack/api/v2;apiv2\xa2\x02\x03MAX\xaa\x02\x11Metalstack.Api.V2\xca\x02\x11Metalstack\\Api\\V2\xe2\x02\x1dMetalstack\\Api\\V2\\GPBMetadata\xea\x02\x13Metalstack::Api::V2b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1emetalstack/api/v2/switch.proto\x12\x11metalstack.api.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1emetalstack/api/v2/common.proto\x1a\x1fmetalstack/api/v2/machine.proto\x1a(metalstack/api/v2/predefined_rules.proto\"\xe2\x06\n\x06Switch\x12\x1d\n\x02id\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01R\x02id\x12+\n\x04meta\x18\x02 \x01(\x0b\x32\x17.metalstack.api.v2.MetaR\x04meta\x12-\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01R\x0b\x64\x65scription\x12$\n\x04rack\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x04rack\x88\x01\x01\x12$\n\x04room\x18\x05 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x04room\x88\x01\x01\x12)\n\tpartition\x18\x06 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01R\tpartition\x12Q\n\x0creplace_mode\x18\x07 \x01(\x0e\x32$.metalstack.api.v2.SwitchReplaceModeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x0breplaceMode\x12,\n\rmanagement_ip\x18\x08 \x01(\tB\x07\xbaH\x04r\x02p\x01R\x0cmanagementIp\x12\x38\n\x0fmanagement_user\x18\t \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x02R\x0emanagementUser\x88\x01\x01\x12\x38\n\x0f\x63onsole_command\x18\n \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x03R\x0e\x63onsoleCommand\x88\x01\x01\x12\x30\n\x04nics\x18\x0b \x03(\x0b\x32\x1c.metalstack.api.v2.SwitchNicR\x04nics\x12+\n\x02os\x18\x0c \x01(\x0b\x32\x1b.metalstack.api.v2.SwitchOSR\x02os\x12U\n\x13machine_connections\x18\r \x03(\x0b\x32$.metalstack.api.v2.MachineConnectionR\x12machineConnections\x12:\n\tlast_sync\x18\x0e \x01(\x0b\x32\x1d.metalstack.api.v2.SwitchSyncR\x08lastSync\x12\x45\n\x0flast_sync_error\x18\x0f \x01(\x0b\x32\x1d.metalstack.api.v2.SwitchSyncR\rlastSyncErrorB\x07\n\x05_rackB\x07\n\x05_roomB\x12\n\x10_management_userB\x12\n\x10_console_command\"\xb1\x01\n\x08SwitchOS\x12\x43\n\x06vendor\x18\x01 \x01(\x0e\x32!.metalstack.api.v2.SwitchOSVendorB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x06vendor\x12%\n\x07version\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07version\x12\x39\n\x12metal_core_version\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x10metalCoreVersion\"\xf2\x03\n\tSwitchNic\x12\x1f\n\x04name\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x04name\x12+\n\nidentifier\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\nidentifier\x12\"\n\x03mac\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xb8\xb3\xae\xb1\x02\x01H\x00R\x03mac\x88\x01\x01\x12\"\n\x03vrf\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x03vrf\x88\x01\x01\x12\x36\n\x05state\x18\x05 \x01(\x0b\x32\x1b.metalstack.api.v2.NicStateH\x02R\x05state\x88\x01\x01\x12@\n\nbgp_filter\x18\x06 \x01(\x0b\x32\x1c.metalstack.api.v2.BGPFilterH\x03R\tbgpFilter\x88\x01\x01\x12P\n\x0e\x62gp_port_state\x18\x07 \x01(\x0b\x32%.metalstack.api.v2.SwitchBGPPortStateH\x04R\x0c\x62gpPortState\x88\x01\x01\x12G\n\nmembership\x18\x08 \x01(\x0e\x32\'.metalstack.api.v2.SwitchPortMembershipR\nmembershipB\x06\n\x04_macB\x06\n\x04_vrfB\x08\n\x06_stateB\r\n\x0b_bgp_filterB\x11\n\x0f_bgp_port_state\"T\n\tBGPFilter\x12\"\n\x05\x63idrs\x18\x01 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x05\x63idrs\x12#\n\x04vnis\x18\x02 \x03(\tB\x0f\xbaH\x0c\x92\x01\t\"\x07r\x05\x10\x02\x18\x80\x01R\x04vnis\"\xa4\x03\n\x12SwitchBGPPortState\x12,\n\x08neighbor\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x08neighbor\x88\x01\x01\x12*\n\npeer_group\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\tpeerGroup\x12&\n\x08vrf_name\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07vrfName\x12\x42\n\tbgp_state\x18\x04 \x01(\x0e\x32\x1b.metalstack.api.v2.BGPStateB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x08\x62gpState\x12S\n\x18\x62gp_timer_up_established\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x15\x62gpTimerUpEstablished\x12.\n\x13sent_prefix_counter\x18\x06 \x01(\x04R\x11sentPrefixCounter\x12\x36\n\x17\x61\x63\x63\x65pted_prefix_counter\x18\x07 \x01(\x04R\x15\x61\x63\x63\x65ptedPrefixCounterB\x0b\n\t_neighbor\"\xab\x01\n\x08NicState\x12L\n\x07\x64\x65sired\x18\x01 \x01(\x0e\x32#.metalstack.api.v2.SwitchPortStatusB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x00R\x07\x64\x65sired\x88\x01\x01\x12\x45\n\x06\x61\x63tual\x18\x02 \x01(\x0e\x32#.metalstack.api.v2.SwitchPortStatusB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x06\x61\x63tualB\n\n\x08_desired\"b\n\x11MachineConnection\x12\x1d\n\nmachine_id\x18\x01 \x01(\tR\tmachineId\x12.\n\x03nic\x18\x02 \x01(\x0b\x32\x1c.metalstack.api.v2.SwitchNicR\x03nic\"\xec\x02\n\x0bSwitchQuery\x12\"\n\x02id\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01H\x00R\x02id\x88\x01\x01\x12.\n\tpartition\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x01R\tpartition\x88\x01\x01\x12$\n\x04rack\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x02R\x04rack\x88\x01\x01\x12$\n\x04room\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x03R\x04room\x88\x01\x01\x12\x35\n\x02os\x18\x05 \x01(\x0b\x32 .metalstack.api.v2.SwitchOSQueryH\x04R\x02os\x88\x01\x01\x12?\n\x14\x63onnected_machine_id\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x05R\x12\x63onnectedMachineId\x88\x01\x01\x42\x05\n\x03_idB\x0c\n\n_partitionB\x07\n\x05_rackB\x07\n\x05_roomB\x05\n\x03_osB\x17\n\x15_connected_machine_id\"\x9c\x01\n\rSwitchOSQuery\x12H\n\x06vendor\x18\x01 \x01(\x0e\x32!.metalstack.api.v2.SwitchOSVendorB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x00R\x06vendor\x88\x01\x01\x12*\n\x07version\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x07version\x88\x01\x01\x42\t\n\x07_vendorB\n\n\x08_version\"\x98\x01\n\nSwitchSync\x12.\n\x04time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x04time\x12\x35\n\x08\x64uration\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationR\x08\x64uration\x12\x19\n\x05\x65rror\x18\x03 \x01(\tH\x00R\x05\x65rror\x88\x01\x01\x42\x08\n\x06_error\"\xa1\x01\n\x12SwitchWithMachines\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x1c\n\tpartition\x18\x02 \x01(\tR\tpartition\x12\x12\n\x04rack\x18\x03 \x01(\tR\x04rack\x12I\n\x0b\x63onnections\x18\x04 \x03(\x0b\x32\'.metalstack.api.v2.SwitchNicWithMachineR\x0b\x63onnections\"\xad\x01\n\x14SwitchNicWithMachine\x12.\n\x03nic\x18\x01 \x01(\x0b\x32\x1c.metalstack.api.v2.SwitchNicR\x03nic\x12\x34\n\x07machine\x18\x02 \x01(\x0b\x32\x1a.metalstack.api.v2.MachineR\x07machine\x12/\n\x03\x66ru\x18\x03 \x01(\x0b\x32\x1d.metalstack.api.v2.MachineFRUR\x03\x66ru*\x89\x02\n\x08\x42GPState\x12\x19\n\x15\x42GP_STATE_UNSPECIFIED\x10\x00\x12\x1c\n\x0e\x42GP_STATE_IDLE\x10\x01\x1a\x08\x82\xb2\x19\x04Idle\x12\"\n\x11\x42GP_STATE_CONNECT\x10\x02\x1a\x0b\x82\xb2\x19\x07\x43onnect\x12 \n\x10\x42GP_STATE_ACTIVE\x10\x03\x1a\n\x82\xb2\x19\x06\x41\x63tive\x12%\n\x13\x42GP_STATE_OPEN_SENT\x10\x04\x1a\x0c\x82\xb2\x19\x08OpenSent\x12+\n\x16\x42GP_STATE_OPEN_CONFIRM\x10\x05\x1a\x0f\x82\xb2\x19\x0bOpenConfirm\x12*\n\x15\x42GP_STATE_ESTABLISHED\x10\x06\x1a\x0f\x82\xb2\x19\x0b\x45stablished*\xa2\x01\n\x11SwitchReplaceMode\x12)\n\x1fSWITCH_REPLACE_MODE_UNSPECIFIED\x10\x00\x1a\x04\x82\xb2\x19\x00\x12,\n\x1bSWITCH_REPLACE_MODE_REPLACE\x10\x01\x1a\x0b\x82\xb2\x19\x07replace\x12\x34\n\x1fSWITCH_REPLACE_MODE_OPERATIONAL\x10\x02\x1a\x0f\x82\xb2\x19\x0boperational*\x84\x01\n\x0eSwitchOSVendor\x12 \n\x1cSWITCH_OS_VENDOR_UNSPECIFIED\x10\x00\x12)\n\x18SWITCH_OS_VENDOR_CUMULUS\x10\x01\x1a\x0b\x82\xb2\x19\x07\x43umulus\x12%\n\x16SWITCH_OS_VENDOR_SONIC\x10\x02\x1a\t\x82\xb2\x19\x05SONiC*\xad\x01\n\x10SwitchPortStatus\x12\"\n\x1eSWITCH_PORT_STATUS_UNSPECIFIED\x10\x00\x12!\n\x15SWITCH_PORT_STATUS_UP\x10\x01\x1a\x06\x82\xb2\x19\x02up\x12%\n\x17SWITCH_PORT_STATUS_DOWN\x10\x02\x1a\x08\x82\xb2\x19\x04\x64own\x12+\n\x1aSWITCH_PORT_STATUS_UNKNOWN\x10\x03\x1a\x0b\x82\xb2\x19\x07unknown*\xd9\x01\n\x14SwitchPortMembership\x12&\n\"SWITCH_PORT_MEMBERSHIP_UNSPECIFIED\x10\x00\x12\x33\n SWITCH_PORT_MEMBERSHIP_UNMANAGED\x10\x01\x1a\r\x82\xb2\x19\tunmanaged\x12\x31\n\x1fSWITCH_PORT_MEMBERSHIP_INTERNAL\x10\x02\x1a\x0c\x82\xb2\x19\x08internal\x12\x31\n\x1fSWITCH_PORT_MEMBERSHIP_EXTERNAL\x10\x03\x1a\x0c\x82\xb2\x19\x08\x65xternalB\xc1\x01\n\x15\x63om.metalstack.api.v2B\x0bSwitchProtoP\x01Z5github.com/metal-stack/api/go/metalstack/api/v2;apiv2\xa2\x02\x03MAX\xaa\x02\x11Metalstack.Api.V2\xca\x02\x11Metalstack\\Api\\V2\xe2\x02\x1dMetalstack\\Api\\V2\\GPBMetadata\xea\x02\x13Metalstack::Api::V2b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -134,16 +134,16 @@ _globals['_SWITCHOSQUERY'].fields_by_name['vendor']._serialized_options = b'\272H\005\202\001\002\020\001' _globals['_SWITCHOSQUERY'].fields_by_name['version']._loaded_options = None _globals['_SWITCHOSQUERY'].fields_by_name['version']._serialized_options = b'\272H\010r\006\300\263\256\261\002\001' - _globals['_BGPSTATE']._serialized_start=3591 - _globals['_BGPSTATE']._serialized_end=3856 - _globals['_SWITCHREPLACEMODE']._serialized_start=3859 - _globals['_SWITCHREPLACEMODE']._serialized_end=4021 - _globals['_SWITCHOSVENDOR']._serialized_start=4024 - _globals['_SWITCHOSVENDOR']._serialized_end=4156 - _globals['_SWITCHPORTSTATUS']._serialized_start=4159 - _globals['_SWITCHPORTSTATUS']._serialized_end=4332 - _globals['_SWITCHPORTMEMBERSHIP']._serialized_start=4335 - _globals['_SWITCHPORTMEMBERSHIP']._serialized_end=4552 + _globals['_BGPSTATE']._serialized_start=3609 + _globals['_BGPSTATE']._serialized_end=3874 + _globals['_SWITCHREPLACEMODE']._serialized_start=3877 + _globals['_SWITCHREPLACEMODE']._serialized_end=4039 + _globals['_SWITCHOSVENDOR']._serialized_start=4042 + _globals['_SWITCHOSVENDOR']._serialized_end=4174 + _globals['_SWITCHPORTSTATUS']._serialized_start=4177 + _globals['_SWITCHPORTSTATUS']._serialized_end=4350 + _globals['_SWITCHPORTMEMBERSHIP']._serialized_start=4353 + _globals['_SWITCHPORTMEMBERSHIP']._serialized_end=4570 _globals['_SWITCH']._serialized_start=255 _globals['_SWITCH']._serialized_end=1121 _globals['_SWITCHOS']._serialized_start=1124 @@ -153,19 +153,19 @@ _globals['_BGPFILTER']._serialized_start=1804 _globals['_BGPFILTER']._serialized_end=1888 _globals['_SWITCHBGPPORTSTATE']._serialized_start=1891 - _globals['_SWITCHBGPPORTSTATE']._serialized_end=2293 - _globals['_NICSTATE']._serialized_start=2296 - _globals['_NICSTATE']._serialized_end=2467 - _globals['_MACHINECONNECTION']._serialized_start=2469 - _globals['_MACHINECONNECTION']._serialized_end=2567 - _globals['_SWITCHQUERY']._serialized_start=2570 - _globals['_SWITCHQUERY']._serialized_end=2934 - _globals['_SWITCHOSQUERY']._serialized_start=2937 - _globals['_SWITCHOSQUERY']._serialized_end=3093 - _globals['_SWITCHSYNC']._serialized_start=3096 - _globals['_SWITCHSYNC']._serialized_end=3248 - _globals['_SWITCHWITHMACHINES']._serialized_start=3251 - _globals['_SWITCHWITHMACHINES']._serialized_end=3412 - _globals['_SWITCHNICWITHMACHINE']._serialized_start=3415 - _globals['_SWITCHNICWITHMACHINE']._serialized_end=3588 + _globals['_SWITCHBGPPORTSTATE']._serialized_end=2311 + _globals['_NICSTATE']._serialized_start=2314 + _globals['_NICSTATE']._serialized_end=2485 + _globals['_MACHINECONNECTION']._serialized_start=2487 + _globals['_MACHINECONNECTION']._serialized_end=2585 + _globals['_SWITCHQUERY']._serialized_start=2588 + _globals['_SWITCHQUERY']._serialized_end=2952 + _globals['_SWITCHOSQUERY']._serialized_start=2955 + _globals['_SWITCHOSQUERY']._serialized_end=3111 + _globals['_SWITCHSYNC']._serialized_start=3114 + _globals['_SWITCHSYNC']._serialized_end=3266 + _globals['_SWITCHWITHMACHINES']._serialized_start=3269 + _globals['_SWITCHWITHMACHINES']._serialized_end=3430 + _globals['_SWITCHNICWITHMACHINE']._serialized_start=3433 + _globals['_SWITCHNICWITHMACHINE']._serialized_end=3606 # @@protoc_insertion_point(module_scope) From 7c93573061b488cccf6a266e49a22cfe64c7a89a Mon Sep 17 00:00:00 2001 From: Ilja Rotar Date: Fri, 11 Sep 2026 14:28:07 +0200 Subject: [PATCH 8/9] start from scratch --- doc/index.html | 373 +---------- .../v2/adminv2connect/network.connect.go | 115 +--- .../admin/v2/adminv2connect/switch.connect.go | 4 +- go/metalstack/admin/v2/network.pb.go | 531 ++------------- go/metalstack/api/v2/network.pb.go | 216 +----- go/metalstack/api/v2/switch.pb.go | 103 ++- go/permissions/servicepermissions.go | 631 +++++++++--------- js/metalstack/admin/v2/network_pb.d.ts | 188 +----- js/metalstack/admin/v2/network_pb.js | 40 +- js/metalstack/admin/v2/network_pb.ts | 224 +------ js/metalstack/admin/v2/switch_pb.d.ts | 2 +- js/metalstack/admin/v2/switch_pb.ts | 2 +- js/metalstack/api/v2/network_pb.d.ts | 66 -- js/metalstack/api/v2/network_pb.js | 18 +- js/metalstack/api/v2/network_pb.ts | 85 +-- js/metalstack/api/v2/switch_pb.d.ts | 24 + js/metalstack/api/v2/switch_pb.js | 7 +- js/metalstack/api/v2/switch_pb.ts | 30 +- proto/metalstack/admin/v2/network.proto | 74 -- proto/metalstack/admin/v2/switch.proto | 2 +- proto/metalstack/api/v2/network.proto | 28 - proto/metalstack/api/v2/switch.proto | 8 + python/metalstack/admin/v2/network_connect.py | 195 ------ python/metalstack/admin/v2/network_pb2.py | 54 +- python/metalstack/admin/v2/network_pb2.pyi | 52 -- python/metalstack/api/v2/network_pb2.py | 48 +- python/metalstack/api/v2/network_pb2.pyi | 22 - python/metalstack/api/v2/switch_pb2.py | 24 +- python/metalstack/api/v2/switch_pb2.pyi | 8 + 29 files changed, 673 insertions(+), 2501 deletions(-) diff --git a/doc/index.html b/doc/index.html index 7b23ab54..2323a1b6 100644 --- a/doc/index.html +++ b/doc/index.html @@ -1044,14 +1044,6 @@

    Table of Contents

    MChildPrefixLength -
  • - MExternalNetworkMember -
  • - -
  • - MExternalNetworkMemberQuery -
  • -
  • MNetwork
  • @@ -1583,14 +1575,6 @@

    Table of Contents

    metalstack/admin/v2/network.proto
      -
    • - MNetworkServiceAddExternalMembersRequest -
    • - -
    • - MNetworkServiceAddExternalMembersResponse -
    • -
    • MNetworkServiceCreateRequest
    • @@ -1615,14 +1599,6 @@

      Table of Contents

      MNetworkServiceGetResponse -
    • - MNetworkServiceListExternalMembersRequest -
    • - -
    • - MNetworkServiceListExternalMembersResponse -
    • -
    • MNetworkServiceListRequest
    • @@ -1631,14 +1607,6 @@

      Table of Contents

      MNetworkServiceListResponse -
    • - MNetworkServiceRemoveExternalMembersRequest -
    • - -
    • - MNetworkServiceRemoveExternalMembersResponse -
    • -
    • MNetworkServiceUpdateRequest
    • @@ -2110,6 +2078,10 @@

      Table of Contents

      MNicState +
    • + MStaticPortConfig +
    • +
    • MSwitch
    • @@ -8561,89 +8533,6 @@

      ChildPrefixLength

      -

      ExternalNetworkMember

      -

      ExternalNetworkMember contains the ports of a switch that participate in a network and are connected to machines not known to metal-stack.

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      FieldTypeLabelDescription
      switchstring

      Switch the external members are connected to.

      partitionstring

      Partition of the switch.

      rackstring

      Rack of the switch.

      portsstringrepeated

      Ports of the switch that participate in the network.

      - - - - - -

      ExternalNetworkMemberQuery

      -

      ExternalNetworkMemberQuery defines which filters to apply when looking up external network members.

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      FieldTypeLabelDescription
      switchstringoptional

      Switch whose ports are queried.

      rackstringoptional

      Rack for which the members of the network are queried.

      partitionstringoptional

      Partition where the members of the network reside.

      - - - - -

      Network

      Network.

      @@ -13827,75 +13716,6 @@

      metalstack/admin/v2/network.proto

      -

      NetworkServiceAddExternalMembersRequest

      -

      NetworkServiceAddExternalMemberRequest is the request payload for adding an external member to a network.

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      FieldTypeLabelDescription
      networkstring

      Network to add the member to.

      rackstring

      Rack the members are connected to.

      portsstringrepeated

      Ports of the switches to add to the network.

      - - - - - -

      NetworkServiceAddExternalMembersResponse

      -

      NetworkServiceAddExternalMemberResponse is the response payload for adding an external member to a network.

      - - - - - - - - - - - - - - - - - - - - - - - -
      FieldTypeLabelDescription
      networkmetalstack.api.v2.Network

      Network the members were added to.

      membersmetalstack.api.v2.ExternalNetworkMemberrepeated

      Members are the updated external members of the network.

      - - - - -

      NetworkServiceCreateRequest

      NetworkServiceCreateRequest is the request payload for creating a network.

      @@ -14152,68 +13972,6 @@

      NetworkServiceGetResponse -

      NetworkServiceListExternalMembersRequest

      -

      NetworkServiceListExternalMembersRequest is the request payload for listing external members of a network.

      - - - - - - - - - - - - - - - - - - - - - - - -
      FieldTypeLabelDescription
      networkstring

      Network to list the members for.

      querymetalstack.api.v2.ExternalNetworkMemberQuery

      Query specifies additional filters for the list request.

      - - - - - -

      NetworkServiceListExternalMembersResponse

      -

      NetworkServiceListExternalMembersResponse is the response payload for listing external members of a network.

      - - - - - - - - - - - - - - - - - - - - - - - -
      FieldTypeLabelDescription
      networkmetalstack.api.v2.Network

      Network whose members are queried.

      membersmetalstack.api.v2.ExternalNetworkMemberrepeated

      Members are the queried external members of the network.

      - - - - -

      NetworkServiceListRequest

      NetworkServiceListRequest is the request payload for listing networks.

      @@ -14262,75 +14020,6 @@

      NetworkServiceListRespon -

      NetworkServiceRemoveExternalMembersRequest

      -

      NetworkServiceRemoveExternalMemberRequest is the request payload for removing an external member from a network.

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      FieldTypeLabelDescription
      networkstring

      Network to remove the member from.

      rackstring

      Rack the members are connected to.

      portsstringrepeated

      Ports of the switches to remove from the network.

      - - - - - -

      NetworkServiceRemoveExternalMembersResponse

      -

      NetworkServiceRemoveExternalMemberResponse is the response payload for removing an external member from a network.

      - - - - - - - - - - - - - - - - - - - - - - - -
      FieldTypeLabelDescription
      networkmetalstack.api.v2.Network

      Network the members were removed from.

      membersmetalstack.api.v2.ExternalNetworkMemberrepeated

      Members are the updated external members of the network.

      - - - - -

      NetworkServiceUpdateRequest

      NetworkServiceUpdateRequest is the request payload for updating a network.

      @@ -14505,27 +14194,6 @@

      NetworkService

      Returns the list of all networks.

      - - ListExternalMembers - NetworkServiceListExternalMembersRequest - NetworkServiceListExternalMembersResponse -

      Lists external members of a network.

      - - - - AddExternalMembers - NetworkServiceAddExternalMembersRequest - NetworkServiceAddExternalMembersResponse -

      Adds an external member to a network.

      - - - - RemoveExternalMembers - NetworkServiceRemoveExternalMembersRequest - NetworkServiceRemoveExternalMembersResponse -

      Removes an external member from a network.

      - - @@ -17642,6 +17310,37 @@

      NicState

      +

      StaticPortConfig

      +

      StaticPortConfig is a config that is statically applied to a port.

      + + + + + + + + + + + + + + + + + + + + + + + +
      FieldTypeLabelDescription
      membershipSwitchPortMembership

      Membership specifies whether this port is connected to a registered machine or to an external host or if it is unmanaged.

      networkstringoptional

      Network the port is a member of.

      + + + + +

      Switch

      Switch represents a network switch.

      @@ -18857,7 +18556,7 @@

      SwitchService

      Port SwitchServicePortRequest SwitchServicePortResponse -

      Sets the port status of a switch port.

      +

      Sets the port config of a switch port.

      diff --git a/go/metalstack/admin/v2/adminv2connect/network.connect.go b/go/metalstack/admin/v2/adminv2connect/network.connect.go index da813153..039d93d0 100644 --- a/go/metalstack/admin/v2/adminv2connect/network.connect.go +++ b/go/metalstack/admin/v2/adminv2connect/network.connect.go @@ -43,15 +43,6 @@ const ( NetworkServiceDeleteProcedure = "/metalstack.admin.v2.NetworkService/Delete" // NetworkServiceListProcedure is the fully-qualified name of the NetworkService's List RPC. NetworkServiceListProcedure = "/metalstack.admin.v2.NetworkService/List" - // NetworkServiceListExternalMembersProcedure is the fully-qualified name of the NetworkService's - // ListExternalMembers RPC. - NetworkServiceListExternalMembersProcedure = "/metalstack.admin.v2.NetworkService/ListExternalMembers" - // 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. @@ -66,12 +57,6 @@ type NetworkServiceClient interface { Delete(context.Context, *v2.NetworkServiceDeleteRequest) (*v2.NetworkServiceDeleteResponse, error) // Returns the list of all networks. List(context.Context, *v2.NetworkServiceListRequest) (*v2.NetworkServiceListResponse, error) - // Lists external members of a network. - ListExternalMembers(context.Context, *v2.NetworkServiceListExternalMembersRequest) (*v2.NetworkServiceListExternalMembersResponse, error) - // Adds an external member to a network. - AddExternalMembers(context.Context, *v2.NetworkServiceAddExternalMembersRequest) (*v2.NetworkServiceAddExternalMembersResponse, error) - // Removes an external member from a network. - RemoveExternalMembers(context.Context, *v2.NetworkServiceRemoveExternalMembersRequest) (*v2.NetworkServiceRemoveExternalMembersResponse, error) } // NewNetworkServiceClient constructs a client for the metalstack.admin.v2.NetworkService service. @@ -115,37 +100,16 @@ func NewNetworkServiceClient(httpClient connect.HTTPClient, baseURL string, opts connect.WithSchema(networkServiceMethods.ByName("List")), connect.WithClientOptions(opts...), ), - listExternalMembers: connect.NewClient[v2.NetworkServiceListExternalMembersRequest, v2.NetworkServiceListExternalMembersResponse]( - httpClient, - baseURL+NetworkServiceListExternalMembersProcedure, - connect.WithSchema(networkServiceMethods.ByName("ListExternalMembers")), - connect.WithClientOptions(opts...), - ), - addExternalMembers: connect.NewClient[v2.NetworkServiceAddExternalMembersRequest, v2.NetworkServiceAddExternalMembersResponse]( - httpClient, - baseURL+NetworkServiceAddExternalMembersProcedure, - connect.WithSchema(networkServiceMethods.ByName("AddExternalMembers")), - connect.WithClientOptions(opts...), - ), - removeExternalMembers: connect.NewClient[v2.NetworkServiceRemoveExternalMembersRequest, v2.NetworkServiceRemoveExternalMembersResponse]( - httpClient, - baseURL+NetworkServiceRemoveExternalMembersProcedure, - connect.WithSchema(networkServiceMethods.ByName("RemoveExternalMembers")), - connect.WithClientOptions(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] - addExternalMembers *connect.Client[v2.NetworkServiceAddExternalMembersRequest, v2.NetworkServiceAddExternalMembersResponse] - removeExternalMembers *connect.Client[v2.NetworkServiceRemoveExternalMembersRequest, v2.NetworkServiceRemoveExternalMembersResponse] + 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] } // Get calls metalstack.admin.v2.NetworkService.Get. @@ -193,33 +157,6 @@ func (c *networkServiceClient) List(ctx context.Context, req *v2.NetworkServiceL return nil, err } -// ListExternalMembers calls metalstack.admin.v2.NetworkService.ListExternalMembers. -func (c *networkServiceClient) ListExternalMembers(ctx context.Context, req *v2.NetworkServiceListExternalMembersRequest) (*v2.NetworkServiceListExternalMembersResponse, error) { - response, err := c.listExternalMembers.CallUnary(ctx, connect.NewRequest(req)) - if response != nil { - return response.Msg, err - } - return nil, err -} - -// 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 -} - -// 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 - } - return nil, err -} - // NetworkServiceHandler is an implementation of the metalstack.admin.v2.NetworkService service. type NetworkServiceHandler interface { // Returns the network with the specified ID. @@ -232,12 +169,6 @@ type NetworkServiceHandler interface { Delete(context.Context, *v2.NetworkServiceDeleteRequest) (*v2.NetworkServiceDeleteResponse, error) // Returns the list of all networks. List(context.Context, *v2.NetworkServiceListRequest) (*v2.NetworkServiceListResponse, error) - // Lists external members of a network. - ListExternalMembers(context.Context, *v2.NetworkServiceListExternalMembersRequest) (*v2.NetworkServiceListExternalMembersResponse, error) - // Adds an external member to a network. - AddExternalMembers(context.Context, *v2.NetworkServiceAddExternalMembersRequest) (*v2.NetworkServiceAddExternalMembersResponse, error) - // Removes an external member from a network. - RemoveExternalMembers(context.Context, *v2.NetworkServiceRemoveExternalMembersRequest) (*v2.NetworkServiceRemoveExternalMembersResponse, error) } // NewNetworkServiceHandler builds an HTTP handler from the service implementation. It returns the @@ -277,24 +208,6 @@ func NewNetworkServiceHandler(svc NetworkServiceHandler, opts ...connect.Handler connect.WithSchema(networkServiceMethods.ByName("List")), connect.WithHandlerOptions(opts...), ) - networkServiceListExternalMembersHandler := connect.NewUnaryHandlerSimple( - NetworkServiceListExternalMembersProcedure, - svc.ListExternalMembers, - connect.WithSchema(networkServiceMethods.ByName("ListExternalMembers")), - connect.WithHandlerOptions(opts...), - ) - networkServiceAddExternalMembersHandler := connect.NewUnaryHandlerSimple( - NetworkServiceAddExternalMembersProcedure, - svc.AddExternalMembers, - connect.WithSchema(networkServiceMethods.ByName("AddExternalMembers")), - connect.WithHandlerOptions(opts...), - ) - 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) { switch r.URL.Path { case NetworkServiceGetProcedure: @@ -307,12 +220,6 @@ func NewNetworkServiceHandler(svc NetworkServiceHandler, opts ...connect.Handler networkServiceDeleteHandler.ServeHTTP(w, r) case NetworkServiceListProcedure: networkServiceListHandler.ServeHTTP(w, r) - case NetworkServiceListExternalMembersProcedure: - networkServiceListExternalMembersHandler.ServeHTTP(w, r) - case NetworkServiceAddExternalMembersProcedure: - networkServiceAddExternalMembersHandler.ServeHTTP(w, r) - case NetworkServiceRemoveExternalMembersProcedure: - networkServiceRemoveExternalMembersHandler.ServeHTTP(w, r) default: http.NotFound(w, r) } @@ -341,15 +248,3 @@ func (UnimplementedNetworkServiceHandler) Delete(context.Context, *v2.NetworkSer func (UnimplementedNetworkServiceHandler) List(context.Context, *v2.NetworkServiceListRequest) (*v2.NetworkServiceListResponse, error) { return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.admin.v2.NetworkService.List is not implemented")) } - -func (UnimplementedNetworkServiceHandler) ListExternalMembers(context.Context, *v2.NetworkServiceListExternalMembersRequest) (*v2.NetworkServiceListExternalMembersResponse, error) { - return nil, connect.NewError(connect.CodeUnimplemented, errors.New("metalstack.admin.v2.NetworkService.ListExternalMembers 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) 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/adminv2connect/switch.connect.go b/go/metalstack/admin/v2/adminv2connect/switch.connect.go index a44c2320..fc95a5b8 100644 --- a/go/metalstack/admin/v2/adminv2connect/switch.connect.go +++ b/go/metalstack/admin/v2/adminv2connect/switch.connect.go @@ -62,7 +62,7 @@ type SwitchServiceClient interface { Delete(context.Context, *v2.SwitchServiceDeleteRequest) (*v2.SwitchServiceDeleteResponse, error) // Migrates a switch. Migrate(context.Context, *v2.SwitchServiceMigrateRequest) (*v2.SwitchServiceMigrateResponse, error) - // Sets the port status of a switch port. + // Sets the port config of a switch port. Port(context.Context, *v2.SwitchServicePortRequest) (*v2.SwitchServicePortResponse, error) // Returns all switches with their machine connections. ConnectedMachines(context.Context, *v2.SwitchServiceConnectedMachinesRequest) (*v2.SwitchServiceConnectedMachinesResponse, error) @@ -210,7 +210,7 @@ type SwitchServiceHandler interface { Delete(context.Context, *v2.SwitchServiceDeleteRequest) (*v2.SwitchServiceDeleteResponse, error) // Migrates a switch. Migrate(context.Context, *v2.SwitchServiceMigrateRequest) (*v2.SwitchServiceMigrateResponse, error) - // Sets the port status of a switch port. + // Sets the port config of a switch port. Port(context.Context, *v2.SwitchServicePortRequest) (*v2.SwitchServicePortResponse, error) // Returns all switches with their machine connections. ConnectedMachines(context.Context, *v2.SwitchServiceConnectedMachinesRequest) (*v2.SwitchServiceConnectedMachinesResponse, error) diff --git a/go/metalstack/admin/v2/network.pb.go b/go/metalstack/admin/v2/network.pb.go index 06247b7c..e2008401 100644 --- a/go/metalstack/admin/v2/network.pb.go +++ b/go/metalstack/admin/v2/network.pb.go @@ -542,189 +542,6 @@ func (x *NetworkServiceListRequest) GetQuery() *v2.NetworkQuery { return nil } -// NetworkServiceListExternalMembersRequest is the request payload for listing external members of a network. -type NetworkServiceListExternalMembersRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - // Network to list the members for. - Network string `protobuf:"bytes,1,opt,name=network,proto3" json:"network,omitempty"` - // Query specifies additional filters for the list request. - Query *v2.ExternalNetworkMemberQuery `protobuf:"bytes,2,opt,name=query,proto3" json:"query,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *NetworkServiceListExternalMembersRequest) Reset() { - *x = NetworkServiceListExternalMembersRequest{} - mi := &file_metalstack_admin_v2_network_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *NetworkServiceListExternalMembersRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*NetworkServiceListExternalMembersRequest) ProtoMessage() {} - -func (x *NetworkServiceListExternalMembersRequest) ProtoReflect() protoreflect.Message { - mi := &file_metalstack_admin_v2_network_proto_msgTypes[6] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use NetworkServiceListExternalMembersRequest.ProtoReflect.Descriptor instead. -func (*NetworkServiceListExternalMembersRequest) Descriptor() ([]byte, []int) { - return file_metalstack_admin_v2_network_proto_rawDescGZIP(), []int{6} -} - -func (x *NetworkServiceListExternalMembersRequest) GetNetwork() string { - if x != nil { - return x.Network - } - return "" -} - -func (x *NetworkServiceListExternalMembersRequest) GetQuery() *v2.ExternalNetworkMemberQuery { - if x != nil { - return x.Query - } - return nil -} - -// NetworkServiceAddExternalMemberRequest is the request payload for adding an external member to a network. -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"` - // 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 -} - -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 *NetworkServiceAddExternalMembersRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*NetworkServiceAddExternalMembersRequest) ProtoMessage() {} - -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)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use NetworkServiceAddExternalMembersRequest.ProtoReflect.Descriptor instead. -func (*NetworkServiceAddExternalMembersRequest) Descriptor() ([]byte, []int) { - return file_metalstack_admin_v2_network_proto_rawDescGZIP(), []int{7} -} - -func (x *NetworkServiceAddExternalMembersRequest) GetNetwork() string { - if x != nil { - return x.Network - } - return "" -} - -func (x *NetworkServiceAddExternalMembersRequest) GetRack() string { - if x != nil { - return x.Rack - } - return "" -} - -func (x *NetworkServiceAddExternalMembersRequest) GetPorts() []string { - if x != nil { - return x.Ports - } - return nil -} - -// NetworkServiceRemoveExternalMemberRequest is the request payload for removing an external member from a network. -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"` - // 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 -} - -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 *NetworkServiceRemoveExternalMembersRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*NetworkServiceRemoveExternalMembersRequest) ProtoMessage() {} - -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)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use NetworkServiceRemoveExternalMembersRequest.ProtoReflect.Descriptor instead. -func (*NetworkServiceRemoveExternalMembersRequest) Descriptor() ([]byte, []int) { - return file_metalstack_admin_v2_network_proto_rawDescGZIP(), []int{8} -} - -func (x *NetworkServiceRemoveExternalMembersRequest) GetNetwork() string { - if x != nil { - return x.Network - } - return "" -} - -func (x *NetworkServiceRemoveExternalMembersRequest) GetRack() string { - if x != nil { - return x.Rack - } - return "" -} - -func (x *NetworkServiceRemoveExternalMembersRequest) GetPorts() []string { - if x != nil { - return x.Ports - } - return nil -} - // NetworkServiceCreateResponse is the response payload for creating a network. type NetworkServiceCreateResponse struct { state protoimpl.MessageState `protogen:"open.v1"` @@ -736,7 +553,7 @@ type NetworkServiceCreateResponse struct { func (x *NetworkServiceCreateResponse) Reset() { *x = NetworkServiceCreateResponse{} - mi := &file_metalstack_admin_v2_network_proto_msgTypes[9] + mi := &file_metalstack_admin_v2_network_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -748,7 +565,7 @@ func (x *NetworkServiceCreateResponse) String() string { func (*NetworkServiceCreateResponse) ProtoMessage() {} func (x *NetworkServiceCreateResponse) ProtoReflect() protoreflect.Message { - mi := &file_metalstack_admin_v2_network_proto_msgTypes[9] + mi := &file_metalstack_admin_v2_network_proto_msgTypes[6] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -761,7 +578,7 @@ func (x *NetworkServiceCreateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use NetworkServiceCreateResponse.ProtoReflect.Descriptor instead. func (*NetworkServiceCreateResponse) Descriptor() ([]byte, []int) { - return file_metalstack_admin_v2_network_proto_rawDescGZIP(), []int{9} + return file_metalstack_admin_v2_network_proto_rawDescGZIP(), []int{6} } func (x *NetworkServiceCreateResponse) GetNetwork() *v2.Network { @@ -782,7 +599,7 @@ type NetworkServiceUpdateResponse struct { func (x *NetworkServiceUpdateResponse) Reset() { *x = NetworkServiceUpdateResponse{} - mi := &file_metalstack_admin_v2_network_proto_msgTypes[10] + mi := &file_metalstack_admin_v2_network_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -794,7 +611,7 @@ func (x *NetworkServiceUpdateResponse) String() string { func (*NetworkServiceUpdateResponse) ProtoMessage() {} func (x *NetworkServiceUpdateResponse) ProtoReflect() protoreflect.Message { - mi := &file_metalstack_admin_v2_network_proto_msgTypes[10] + mi := &file_metalstack_admin_v2_network_proto_msgTypes[7] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -807,7 +624,7 @@ func (x *NetworkServiceUpdateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use NetworkServiceUpdateResponse.ProtoReflect.Descriptor instead. func (*NetworkServiceUpdateResponse) Descriptor() ([]byte, []int) { - return file_metalstack_admin_v2_network_proto_rawDescGZIP(), []int{10} + return file_metalstack_admin_v2_network_proto_rawDescGZIP(), []int{7} } func (x *NetworkServiceUpdateResponse) GetNetwork() *v2.Network { @@ -828,7 +645,7 @@ type NetworkServiceDeleteResponse struct { func (x *NetworkServiceDeleteResponse) Reset() { *x = NetworkServiceDeleteResponse{} - mi := &file_metalstack_admin_v2_network_proto_msgTypes[11] + mi := &file_metalstack_admin_v2_network_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -840,7 +657,7 @@ func (x *NetworkServiceDeleteResponse) String() string { func (*NetworkServiceDeleteResponse) ProtoMessage() {} func (x *NetworkServiceDeleteResponse) ProtoReflect() protoreflect.Message { - mi := &file_metalstack_admin_v2_network_proto_msgTypes[11] + mi := &file_metalstack_admin_v2_network_proto_msgTypes[8] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -853,7 +670,7 @@ func (x *NetworkServiceDeleteResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use NetworkServiceDeleteResponse.ProtoReflect.Descriptor instead. func (*NetworkServiceDeleteResponse) Descriptor() ([]byte, []int) { - return file_metalstack_admin_v2_network_proto_rawDescGZIP(), []int{11} + return file_metalstack_admin_v2_network_proto_rawDescGZIP(), []int{8} } func (x *NetworkServiceDeleteResponse) GetNetwork() *v2.Network { @@ -874,7 +691,7 @@ type NetworkServiceListResponse struct { func (x *NetworkServiceListResponse) Reset() { *x = NetworkServiceListResponse{} - mi := &file_metalstack_admin_v2_network_proto_msgTypes[12] + mi := &file_metalstack_admin_v2_network_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -886,7 +703,7 @@ func (x *NetworkServiceListResponse) String() string { func (*NetworkServiceListResponse) ProtoMessage() {} func (x *NetworkServiceListResponse) ProtoReflect() protoreflect.Message { - mi := &file_metalstack_admin_v2_network_proto_msgTypes[12] + mi := &file_metalstack_admin_v2_network_proto_msgTypes[9] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -899,7 +716,7 @@ func (x *NetworkServiceListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use NetworkServiceListResponse.ProtoReflect.Descriptor instead. func (*NetworkServiceListResponse) Descriptor() ([]byte, []int) { - return file_metalstack_admin_v2_network_proto_rawDescGZIP(), []int{12} + return file_metalstack_admin_v2_network_proto_rawDescGZIP(), []int{9} } func (x *NetworkServiceListResponse) GetNetworks() []*v2.Network { @@ -909,171 +726,6 @@ func (x *NetworkServiceListResponse) GetNetworks() []*v2.Network { return nil } -// NetworkServiceListExternalMembersResponse is the response payload for listing external members of a network. -type NetworkServiceListExternalMembersResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - // Network whose members are queried. - Network *v2.Network `protobuf:"bytes,1,opt,name=network,proto3" json:"network,omitempty"` - // Members are the queried external members of the network. - Members []*v2.ExternalNetworkMember `protobuf:"bytes,2,rep,name=members,proto3" json:"members,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *NetworkServiceListExternalMembersResponse) Reset() { - *x = NetworkServiceListExternalMembersResponse{} - mi := &file_metalstack_admin_v2_network_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *NetworkServiceListExternalMembersResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*NetworkServiceListExternalMembersResponse) ProtoMessage() {} - -func (x *NetworkServiceListExternalMembersResponse) ProtoReflect() protoreflect.Message { - mi := &file_metalstack_admin_v2_network_proto_msgTypes[13] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use NetworkServiceListExternalMembersResponse.ProtoReflect.Descriptor instead. -func (*NetworkServiceListExternalMembersResponse) Descriptor() ([]byte, []int) { - return file_metalstack_admin_v2_network_proto_rawDescGZIP(), []int{13} -} - -func (x *NetworkServiceListExternalMembersResponse) GetNetwork() *v2.Network { - if x != nil { - return x.Network - } - return nil -} - -func (x *NetworkServiceListExternalMembersResponse) GetMembers() []*v2.ExternalNetworkMember { - if x != nil { - return x.Members - } - return nil -} - -// NetworkServiceAddExternalMemberResponse is the response payload for adding an external member to a network. -type NetworkServiceAddExternalMembersResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - // Network the members were added to. - Network *v2.Network `protobuf:"bytes,1,opt,name=network,proto3" json:"network,omitempty"` - // Members are the updated external members of the network. - Members []*v2.ExternalNetworkMember `protobuf:"bytes,2,rep,name=members,proto3" json:"members,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -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 *NetworkServiceAddExternalMembersResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*NetworkServiceAddExternalMembersResponse) ProtoMessage() {} - -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)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use NetworkServiceAddExternalMembersResponse.ProtoReflect.Descriptor instead. -func (*NetworkServiceAddExternalMembersResponse) Descriptor() ([]byte, []int) { - return file_metalstack_admin_v2_network_proto_rawDescGZIP(), []int{14} -} - -func (x *NetworkServiceAddExternalMembersResponse) GetNetwork() *v2.Network { - if x != nil { - return x.Network - } - return nil -} - -func (x *NetworkServiceAddExternalMembersResponse) GetMembers() []*v2.ExternalNetworkMember { - if x != nil { - return x.Members - } - return nil -} - -// NetworkServiceRemoveExternalMemberResponse is the response payload for removing an external member from a network. -type NetworkServiceRemoveExternalMembersResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - // Network the members were removed from. - Network *v2.Network `protobuf:"bytes,1,opt,name=network,proto3" json:"network,omitempty"` - // Members are the updated external members of the network. - Members []*v2.ExternalNetworkMember `protobuf:"bytes,2,rep,name=members,proto3" json:"members,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -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 *NetworkServiceRemoveExternalMembersResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*NetworkServiceRemoveExternalMembersResponse) ProtoMessage() {} - -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)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use NetworkServiceRemoveExternalMembersResponse.ProtoReflect.Descriptor instead. -func (*NetworkServiceRemoveExternalMembersResponse) Descriptor() ([]byte, []int) { - return file_metalstack_admin_v2_network_proto_rawDescGZIP(), []int{15} -} - -func (x *NetworkServiceRemoveExternalMembersResponse) GetNetwork() *v2.Network { - if x != nil { - return x.Network - } - return nil -} - -func (x *NetworkServiceRemoveExternalMembersResponse) GetMembers() []*v2.ExternalNetworkMember { - if x != nil { - return x.Members - } - return nil -} - var File_metalstack_admin_v2_network_proto protoreflect.FileDescriptor const file_metalstack_admin_v2_network_proto_rawDesc = "" + @@ -1140,18 +792,7 @@ const file_metalstack_admin_v2_network_proto_rawDesc = "" + "\x1bNetworkServiceDeleteRequest\x12\x1b\n" + "\x02id\x18\x01 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\"R\n" + "\x19NetworkServiceListRequest\x125\n" + - "\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\"\x98\x01\n" + - "'NetworkServiceAddExternalMembersRequest\x12%\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\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" + + "\x05query\x18\x01 \x01(\v2\x1f.metalstack.api.v2.NetworkQueryR\x05query\"T\n" + "\x1cNetworkServiceCreateResponse\x124\n" + "\anetwork\x18\x01 \x01(\v2\x1a.metalstack.api.v2.NetworkR\anetwork\"T\n" + "\x1cNetworkServiceUpdateResponse\x124\n" + @@ -1159,16 +800,7 @@ const file_metalstack_admin_v2_network_proto_rawDesc = "" + "\x1cNetworkServiceDeleteResponse\x124\n" + "\anetwork\x18\x01 \x01(\v2\x1a.metalstack.api.v2.NetworkR\anetwork\"T\n" + "\x1aNetworkServiceListResponse\x126\n" + - "\bnetworks\x18\x01 \x03(\v2\x1a.metalstack.api.v2.NetworkR\bnetworks\"\xa5\x01\n" + - ")NetworkServiceListExternalMembersResponse\x124\n" + - "\anetwork\x18\x01 \x01(\v2\x1a.metalstack.api.v2.NetworkR\anetwork\x12B\n" + - "\amembers\x18\x02 \x03(\v2(.metalstack.api.v2.ExternalNetworkMemberR\amembers\"\xa4\x01\n" + - "(NetworkServiceAddExternalMembersResponse\x124\n" + - "\anetwork\x18\x01 \x01(\v2\x1a.metalstack.api.v2.NetworkR\anetwork\x12B\n" + - "\amembers\x18\x02 \x03(\v2(.metalstack.api.v2.ExternalNetworkMemberR\amembers\"\xa7\x01\n" + - "+NetworkServiceRemoveExternalMembersResponse\x124\n" + - "\anetwork\x18\x01 \x01(\v2\x1a.metalstack.api.v2.NetworkR\anetwork\x12B\n" + - "\amembers\x18\x02 \x03(\v2(.metalstack.api.v2.ExternalNetworkMemberR\amembers2\xcf\b\n" + + "\bnetworks\x18\x01 \x03(\v2\x1a.metalstack.api.v2.NetworkR\bnetworks2\xe5\x04\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" + @@ -1176,11 +808,7 @@ const file_metalstack_admin_v2_network_proto_rawDesc = "" + "\x06Update\x120.metalstack.admin.v2.NetworkServiceUpdateRequest\x1a1.metalstack.admin.v2.NetworkServiceUpdateResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12x\n" + "\x06Delete\x120.metalstack.admin.v2.NetworkServiceDeleteRequest\x1a1.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" + - "\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" + + "\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02B\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 ( @@ -1195,83 +823,62 @@ func file_metalstack_admin_v2_network_proto_rawDescGZIP() []byte { return file_metalstack_admin_v2_network_proto_rawDescData } -var file_metalstack_admin_v2_network_proto_msgTypes = make([]protoimpl.MessageInfo, 16) +var file_metalstack_admin_v2_network_proto_msgTypes = make([]protoimpl.MessageInfo, 10) 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 - (*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 + (*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 + (*NetworkServiceCreateResponse)(nil), // 6: metalstack.admin.v2.NetworkServiceCreateResponse + (*NetworkServiceUpdateResponse)(nil), // 7: metalstack.admin.v2.NetworkServiceUpdateResponse + (*NetworkServiceDeleteResponse)(nil), // 8: metalstack.admin.v2.NetworkServiceDeleteResponse + (*NetworkServiceListResponse)(nil), // 9: metalstack.admin.v2.NetworkServiceListResponse + (*v2.Network)(nil), // 10: metalstack.api.v2.Network + (v2.NetworkType)(0), // 11: metalstack.api.v2.NetworkType + (*v2.Labels)(nil), // 12: metalstack.api.v2.Labels + (*v2.ChildPrefixLength)(nil), // 13: metalstack.api.v2.ChildPrefixLength + (v2.NATType)(0), // 14: metalstack.api.v2.NATType + (v2.NetworkAddressFamily)(0), // 15: metalstack.api.v2.NetworkAddressFamily + (*v2.UpdateMeta)(nil), // 16: metalstack.api.v2.UpdateMeta + (*v2.UpdateLabels)(nil), // 17: metalstack.api.v2.UpdateLabels + (*v2.NetworkQuery)(nil), // 18: metalstack.api.v2.NetworkQuery } var file_metalstack_admin_v2_network_proto_depIdxs = []int32{ - 16, // 0: metalstack.admin.v2.NetworkServiceGetResponse.network:type_name -> metalstack.api.v2.Network - 17, // 1: metalstack.admin.v2.NetworkServiceCreateRequest.type:type_name -> metalstack.api.v2.NetworkType - 18, // 2: metalstack.admin.v2.NetworkServiceCreateRequest.labels:type_name -> metalstack.api.v2.Labels - 19, // 3: metalstack.admin.v2.NetworkServiceCreateRequest.default_child_prefix_length:type_name -> metalstack.api.v2.ChildPrefixLength - 19, // 4: metalstack.admin.v2.NetworkServiceCreateRequest.min_child_prefix_length:type_name -> metalstack.api.v2.ChildPrefixLength - 20, // 5: metalstack.admin.v2.NetworkServiceCreateRequest.nat_type:type_name -> metalstack.api.v2.NATType - 19, // 6: metalstack.admin.v2.NetworkServiceCreateRequest.length:type_name -> metalstack.api.v2.ChildPrefixLength - 21, // 7: metalstack.admin.v2.NetworkServiceCreateRequest.address_family:type_name -> metalstack.api.v2.NetworkAddressFamily - 22, // 8: metalstack.admin.v2.NetworkServiceUpdateRequest.update_meta:type_name -> metalstack.api.v2.UpdateMeta - 23, // 9: metalstack.admin.v2.NetworkServiceUpdateRequest.labels:type_name -> metalstack.api.v2.UpdateLabels - 19, // 10: metalstack.admin.v2.NetworkServiceUpdateRequest.default_child_prefix_length:type_name -> metalstack.api.v2.ChildPrefixLength - 19, // 11: metalstack.admin.v2.NetworkServiceUpdateRequest.min_child_prefix_length:type_name -> metalstack.api.v2.ChildPrefixLength - 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 - 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 - 16, // 19: metalstack.admin.v2.NetworkServiceListExternalMembersResponse.network:type_name -> metalstack.api.v2.Network - 26, // 20: metalstack.admin.v2.NetworkServiceListExternalMembersResponse.members:type_name -> metalstack.api.v2.ExternalNetworkMember - 16, // 21: metalstack.admin.v2.NetworkServiceAddExternalMembersResponse.network:type_name -> metalstack.api.v2.Network - 26, // 22: metalstack.admin.v2.NetworkServiceAddExternalMembersResponse.members:type_name -> metalstack.api.v2.ExternalNetworkMember - 16, // 23: metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse.network:type_name -> metalstack.api.v2.Network - 26, // 24: metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse.members:type_name -> metalstack.api.v2.ExternalNetworkMember - 0, // 25: metalstack.admin.v2.NetworkService.Get:input_type -> metalstack.admin.v2.NetworkServiceGetRequest - 2, // 26: metalstack.admin.v2.NetworkService.Create:input_type -> metalstack.admin.v2.NetworkServiceCreateRequest - 3, // 27: metalstack.admin.v2.NetworkService.Update:input_type -> metalstack.admin.v2.NetworkServiceUpdateRequest - 4, // 28: metalstack.admin.v2.NetworkService.Delete:input_type -> metalstack.admin.v2.NetworkServiceDeleteRequest - 5, // 29: metalstack.admin.v2.NetworkService.List:input_type -> metalstack.admin.v2.NetworkServiceListRequest - 6, // 30: metalstack.admin.v2.NetworkService.ListExternalMembers:input_type -> metalstack.admin.v2.NetworkServiceListExternalMembersRequest - 7, // 31: metalstack.admin.v2.NetworkService.AddExternalMembers:input_type -> metalstack.admin.v2.NetworkServiceAddExternalMembersRequest - 8, // 32: metalstack.admin.v2.NetworkService.RemoveExternalMembers:input_type -> metalstack.admin.v2.NetworkServiceRemoveExternalMembersRequest - 1, // 33: metalstack.admin.v2.NetworkService.Get:output_type -> metalstack.admin.v2.NetworkServiceGetResponse - 9, // 34: metalstack.admin.v2.NetworkService.Create:output_type -> metalstack.admin.v2.NetworkServiceCreateResponse - 10, // 35: metalstack.admin.v2.NetworkService.Update:output_type -> metalstack.admin.v2.NetworkServiceUpdateResponse - 11, // 36: metalstack.admin.v2.NetworkService.Delete:output_type -> metalstack.admin.v2.NetworkServiceDeleteResponse - 12, // 37: metalstack.admin.v2.NetworkService.List:output_type -> metalstack.admin.v2.NetworkServiceListResponse - 13, // 38: metalstack.admin.v2.NetworkService.ListExternalMembers:output_type -> metalstack.admin.v2.NetworkServiceListExternalMembersResponse - 14, // 39: metalstack.admin.v2.NetworkService.AddExternalMembers:output_type -> metalstack.admin.v2.NetworkServiceAddExternalMembersResponse - 15, // 40: metalstack.admin.v2.NetworkService.RemoveExternalMembers:output_type -> metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse - 33, // [33:41] is the sub-list for method output_type - 25, // [25:33] is the sub-list for method input_type - 25, // [25:25] is the sub-list for extension type_name - 25, // [25:25] is the sub-list for extension extendee - 0, // [0:25] is the sub-list for field type_name + 10, // 0: metalstack.admin.v2.NetworkServiceGetResponse.network:type_name -> metalstack.api.v2.Network + 11, // 1: metalstack.admin.v2.NetworkServiceCreateRequest.type:type_name -> metalstack.api.v2.NetworkType + 12, // 2: metalstack.admin.v2.NetworkServiceCreateRequest.labels:type_name -> metalstack.api.v2.Labels + 13, // 3: metalstack.admin.v2.NetworkServiceCreateRequest.default_child_prefix_length:type_name -> metalstack.api.v2.ChildPrefixLength + 13, // 4: metalstack.admin.v2.NetworkServiceCreateRequest.min_child_prefix_length:type_name -> metalstack.api.v2.ChildPrefixLength + 14, // 5: metalstack.admin.v2.NetworkServiceCreateRequest.nat_type:type_name -> metalstack.api.v2.NATType + 13, // 6: metalstack.admin.v2.NetworkServiceCreateRequest.length:type_name -> metalstack.api.v2.ChildPrefixLength + 15, // 7: metalstack.admin.v2.NetworkServiceCreateRequest.address_family:type_name -> metalstack.api.v2.NetworkAddressFamily + 16, // 8: metalstack.admin.v2.NetworkServiceUpdateRequest.update_meta:type_name -> metalstack.api.v2.UpdateMeta + 17, // 9: metalstack.admin.v2.NetworkServiceUpdateRequest.labels:type_name -> metalstack.api.v2.UpdateLabels + 13, // 10: metalstack.admin.v2.NetworkServiceUpdateRequest.default_child_prefix_length:type_name -> metalstack.api.v2.ChildPrefixLength + 13, // 11: metalstack.admin.v2.NetworkServiceUpdateRequest.min_child_prefix_length:type_name -> metalstack.api.v2.ChildPrefixLength + 14, // 12: metalstack.admin.v2.NetworkServiceUpdateRequest.nat_type:type_name -> metalstack.api.v2.NATType + 18, // 13: metalstack.admin.v2.NetworkServiceListRequest.query:type_name -> metalstack.api.v2.NetworkQuery + 10, // 14: metalstack.admin.v2.NetworkServiceCreateResponse.network:type_name -> metalstack.api.v2.Network + 10, // 15: metalstack.admin.v2.NetworkServiceUpdateResponse.network:type_name -> metalstack.api.v2.Network + 10, // 16: metalstack.admin.v2.NetworkServiceDeleteResponse.network:type_name -> metalstack.api.v2.Network + 10, // 17: metalstack.admin.v2.NetworkServiceListResponse.networks:type_name -> metalstack.api.v2.Network + 0, // 18: metalstack.admin.v2.NetworkService.Get:input_type -> metalstack.admin.v2.NetworkServiceGetRequest + 2, // 19: metalstack.admin.v2.NetworkService.Create:input_type -> metalstack.admin.v2.NetworkServiceCreateRequest + 3, // 20: metalstack.admin.v2.NetworkService.Update:input_type -> metalstack.admin.v2.NetworkServiceUpdateRequest + 4, // 21: metalstack.admin.v2.NetworkService.Delete:input_type -> metalstack.admin.v2.NetworkServiceDeleteRequest + 5, // 22: metalstack.admin.v2.NetworkService.List:input_type -> metalstack.admin.v2.NetworkServiceListRequest + 1, // 23: metalstack.admin.v2.NetworkService.Get:output_type -> metalstack.admin.v2.NetworkServiceGetResponse + 6, // 24: metalstack.admin.v2.NetworkService.Create:output_type -> metalstack.admin.v2.NetworkServiceCreateResponse + 7, // 25: metalstack.admin.v2.NetworkService.Update:output_type -> metalstack.admin.v2.NetworkServiceUpdateResponse + 8, // 26: metalstack.admin.v2.NetworkService.Delete:output_type -> metalstack.admin.v2.NetworkServiceDeleteResponse + 9, // 27: metalstack.admin.v2.NetworkService.List:output_type -> metalstack.admin.v2.NetworkServiceListResponse + 23, // [23:28] is the sub-list for method output_type + 18, // [18:23] is the sub-list for method input_type + 18, // [18:18] is the sub-list for extension type_name + 18, // [18:18] is the sub-list for extension extendee + 0, // [0:18] is the sub-list for field type_name } func init() { file_metalstack_admin_v2_network_proto_init() } @@ -1287,7 +894,7 @@ func file_metalstack_admin_v2_network_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_metalstack_admin_v2_network_proto_rawDesc), len(file_metalstack_admin_v2_network_proto_rawDesc)), NumEnums: 0, - NumMessages: 16, + NumMessages: 10, NumExtensions: 0, NumServices: 1, }, diff --git a/go/metalstack/api/v2/network.pb.go b/go/metalstack/api/v2/network.pb.go index a0c12503..0dba1c96 100644 --- a/go/metalstack/api/v2/network.pb.go +++ b/go/metalstack/api/v2/network.pb.go @@ -1274,70 +1274,6 @@ func (x *NetworkQuery) GetLabels() *Labels { return nil } -// ExternalNetworkMemberQuery defines which filters to apply when looking up external network members. -type ExternalNetworkMemberQuery struct { - state protoimpl.MessageState `protogen:"open.v1"` - // Switch whose ports are queried. - Switch *string `protobuf:"bytes,1,opt,name=switch,proto3,oneof" json:"switch,omitempty"` - // Rack for which the members of the network are queried. - Rack *string `protobuf:"bytes,2,opt,name=rack,proto3,oneof" json:"rack,omitempty"` - // Partition where the members of the network reside. - Partition *string `protobuf:"bytes,3,opt,name=partition,proto3,oneof" json:"partition,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *ExternalNetworkMemberQuery) Reset() { - *x = ExternalNetworkMemberQuery{} - mi := &file_metalstack_api_v2_network_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *ExternalNetworkMemberQuery) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ExternalNetworkMemberQuery) ProtoMessage() {} - -func (x *ExternalNetworkMemberQuery) ProtoReflect() protoreflect.Message { - mi := &file_metalstack_api_v2_network_proto_msgTypes[14] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ExternalNetworkMemberQuery.ProtoReflect.Descriptor instead. -func (*ExternalNetworkMemberQuery) Descriptor() ([]byte, []int) { - return file_metalstack_api_v2_network_proto_rawDescGZIP(), []int{14} -} - -func (x *ExternalNetworkMemberQuery) GetSwitch() string { - if x != nil && x.Switch != nil { - return *x.Switch - } - return "" -} - -func (x *ExternalNetworkMemberQuery) GetRack() string { - if x != nil && x.Rack != nil { - return *x.Rack - } - return "" -} - -func (x *ExternalNetworkMemberQuery) GetPartition() string { - if x != nil && x.Partition != nil { - return *x.Partition - } - return "" -} - // ChildPrefixLength. type ChildPrefixLength struct { state protoimpl.MessageState `protogen:"open.v1"` @@ -1351,7 +1287,7 @@ type ChildPrefixLength struct { func (x *ChildPrefixLength) Reset() { *x = ChildPrefixLength{} - mi := &file_metalstack_api_v2_network_proto_msgTypes[15] + mi := &file_metalstack_api_v2_network_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1363,7 +1299,7 @@ func (x *ChildPrefixLength) String() string { func (*ChildPrefixLength) ProtoMessage() {} func (x *ChildPrefixLength) ProtoReflect() protoreflect.Message { - mi := &file_metalstack_api_v2_network_proto_msgTypes[15] + mi := &file_metalstack_api_v2_network_proto_msgTypes[14] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1376,7 +1312,7 @@ func (x *ChildPrefixLength) ProtoReflect() protoreflect.Message { // Deprecated: Use ChildPrefixLength.ProtoReflect.Descriptor instead. func (*ChildPrefixLength) Descriptor() ([]byte, []int) { - return file_metalstack_api_v2_network_proto_rawDescGZIP(), []int{15} + return file_metalstack_api_v2_network_proto_rawDescGZIP(), []int{14} } func (x *ChildPrefixLength) GetIpv4() uint32 { @@ -1406,7 +1342,7 @@ type NetworkConsumption struct { func (x *NetworkConsumption) Reset() { *x = NetworkConsumption{} - mi := &file_metalstack_api_v2_network_proto_msgTypes[16] + mi := &file_metalstack_api_v2_network_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1418,7 +1354,7 @@ func (x *NetworkConsumption) String() string { func (*NetworkConsumption) ProtoMessage() {} func (x *NetworkConsumption) ProtoReflect() protoreflect.Message { - mi := &file_metalstack_api_v2_network_proto_msgTypes[16] + mi := &file_metalstack_api_v2_network_proto_msgTypes[15] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1431,7 +1367,7 @@ func (x *NetworkConsumption) ProtoReflect() protoreflect.Message { // Deprecated: Use NetworkConsumption.ProtoReflect.Descriptor instead. func (*NetworkConsumption) Descriptor() ([]byte, []int) { - return file_metalstack_api_v2_network_proto_rawDescGZIP(), []int{16} + return file_metalstack_api_v2_network_proto_rawDescGZIP(), []int{15} } func (x *NetworkConsumption) GetIpv4() *NetworkUsage { @@ -1465,7 +1401,7 @@ type NetworkUsage struct { func (x *NetworkUsage) Reset() { *x = NetworkUsage{} - mi := &file_metalstack_api_v2_network_proto_msgTypes[17] + mi := &file_metalstack_api_v2_network_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1477,7 +1413,7 @@ func (x *NetworkUsage) String() string { func (*NetworkUsage) ProtoMessage() {} func (x *NetworkUsage) ProtoReflect() protoreflect.Message { - mi := &file_metalstack_api_v2_network_proto_msgTypes[17] + mi := &file_metalstack_api_v2_network_proto_msgTypes[16] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1490,7 +1426,7 @@ func (x *NetworkUsage) ProtoReflect() protoreflect.Message { // Deprecated: Use NetworkUsage.ProtoReflect.Descriptor instead. func (*NetworkUsage) Descriptor() ([]byte, []int) { - return file_metalstack_api_v2_network_proto_rawDescGZIP(), []int{17} + return file_metalstack_api_v2_network_proto_rawDescGZIP(), []int{16} } func (x *NetworkUsage) GetAvailableIps() uint64 { @@ -1521,79 +1457,6 @@ func (x *NetworkUsage) GetUsedPrefixes() uint64 { return 0 } -// ExternalNetworkMember contains the ports of a switch that participate in a network and are connected to machines not known to metal-stack. -type ExternalNetworkMember struct { - state protoimpl.MessageState `protogen:"open.v1"` - // Switch the external members are connected to. - Switch string `protobuf:"bytes,1,opt,name=switch,proto3" json:"switch,omitempty"` - // Partition of the switch. - Partition string `protobuf:"bytes,2,opt,name=partition,proto3" json:"partition,omitempty"` - // Rack of the switch. - Rack string `protobuf:"bytes,3,opt,name=rack,proto3" json:"rack,omitempty"` - // Ports of the switch that participate in the network. - Ports []string `protobuf:"bytes,4,rep,name=ports,proto3" json:"ports,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *ExternalNetworkMember) Reset() { - *x = ExternalNetworkMember{} - mi := &file_metalstack_api_v2_network_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *ExternalNetworkMember) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ExternalNetworkMember) ProtoMessage() {} - -func (x *ExternalNetworkMember) ProtoReflect() protoreflect.Message { - mi := &file_metalstack_api_v2_network_proto_msgTypes[18] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ExternalNetworkMember.ProtoReflect.Descriptor instead. -func (*ExternalNetworkMember) Descriptor() ([]byte, []int) { - return file_metalstack_api_v2_network_proto_rawDescGZIP(), []int{18} -} - -func (x *ExternalNetworkMember) GetSwitch() string { - if x != nil { - return x.Switch - } - return "" -} - -func (x *ExternalNetworkMember) GetPartition() string { - if x != nil { - return x.Partition - } - return "" -} - -func (x *ExternalNetworkMember) GetRack() string { - if x != nil { - return x.Rack - } - return "" -} - -func (x *ExternalNetworkMember) GetPorts() []string { - if x != nil { - return x.Ports - } - return nil -} - var File_metalstack_api_v2_network_proto protoreflect.FileDescriptor const file_metalstack_api_v2_network_proto_rawDesc = "" + @@ -1710,16 +1573,7 @@ const file_metalstack_api_v2_network_proto_rawDesc = "" + "\x0f_address_familyB\a\n" + "\x05_typeB\v\n" + "\t_nat_typeB\t\n" + - "\a_labels\"\xc0\x01\n" + - "\x1aExternalNetworkMemberQuery\x12*\n" + - "\x06switch\x18\x01 \x01(\tB\r\xbaH\n" + - "r\b\xc0\xb3\xae\xb1\x02\x01h\x01H\x00R\x06switch\x88\x01\x01\x12$\n" + - "\x04rack\x18\x02 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x04rack\x88\x01\x01\x12.\n" + - "\tpartition\x18\x03 \x01(\tB\v\xbaH\br\x06г\xae\xb1\x02\x01H\x02R\tpartition\x88\x01\x01B\t\n" + - "\a_switchB\a\n" + - "\x05_rackB\f\n" + - "\n" + - "_partition\"n\n" + + "\a_labels\"n\n" + "\x11ChildPrefixLength\x12\"\n" + "\x04ipv4\x18\x01 \x01(\rB\t\xbaH\x06*\x04\x18 \x00H\x00R\x04ipv4\x88\x01\x01\x12#\n" + "\x04ipv6\x18\x02 \x01(\rB\n" + @@ -1733,12 +1587,7 @@ const file_metalstack_api_v2_network_proto_rawDesc = "" + "\ravailable_ips\x18\x01 \x01(\x04R\favailableIps\x12\x19\n" + "\bused_ips\x18\x02 \x01(\x04R\ausedIps\x12-\n" + "\x12available_prefixes\x18\x03 \x01(\x04R\x11availablePrefixes\x12#\n" + - "\rused_prefixes\x18\x04 \x01(\x04R\fusedPrefixes\"\xaf\x01\n" + - "\x15ExternalNetworkMember\x12#\n" + - "\x06switch\x18\x01 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01R\x06switch\x12)\n" + - "\tpartition\x18\x02 \x01(\tB\v\xbaH\br\x06г\xae\xb1\x02\x01R\tpartition\x12\x1f\n" + - "\x04rack\x18\x03 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01R\x04rack\x12%\n" + - "\x05ports\x18\x04 \x03(\tB\x0f\xbaH\f\x92\x01\tФ\xb3\xb1\x02\x01\x10\x80\x10R\x05ports*m\n" + + "\rused_prefixes\x18\x04 \x01(\x04R\fusedPrefixes*m\n" + "\aNATType\x12\x18\n" + "\x14NAT_TYPE_UNSPECIFIED\x10\x00\x12\x1b\n" + "\rNAT_TYPE_NONE\x10\x01\x1a\b\x82\xb2\x19\x04none\x12+\n" + @@ -1782,7 +1631,7 @@ func file_metalstack_api_v2_network_proto_rawDescGZIP() []byte { } var file_metalstack_api_v2_network_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_metalstack_api_v2_network_proto_msgTypes = make([]protoimpl.MessageInfo, 19) +var file_metalstack_api_v2_network_proto_msgTypes = make([]protoimpl.MessageInfo, 17) var file_metalstack_api_v2_network_proto_goTypes = []any{ (NATType)(0), // 0: metalstack.api.v2.NATType (NetworkType)(0), // 1: metalstack.api.v2.NetworkType @@ -1801,42 +1650,40 @@ var file_metalstack_api_v2_network_proto_goTypes = []any{ (*NetworkServiceDeleteResponse)(nil), // 14: metalstack.api.v2.NetworkServiceDeleteResponse (*Network)(nil), // 15: metalstack.api.v2.Network (*NetworkQuery)(nil), // 16: metalstack.api.v2.NetworkQuery - (*ExternalNetworkMemberQuery)(nil), // 17: metalstack.api.v2.ExternalNetworkMemberQuery - (*ChildPrefixLength)(nil), // 18: metalstack.api.v2.ChildPrefixLength - (*NetworkConsumption)(nil), // 19: metalstack.api.v2.NetworkConsumption - (*NetworkUsage)(nil), // 20: metalstack.api.v2.NetworkUsage - (*ExternalNetworkMember)(nil), // 21: metalstack.api.v2.ExternalNetworkMember - (*Labels)(nil), // 22: metalstack.api.v2.Labels - (*UpdateMeta)(nil), // 23: metalstack.api.v2.UpdateMeta - (*UpdateLabels)(nil), // 24: metalstack.api.v2.UpdateLabels - (*Meta)(nil), // 25: metalstack.api.v2.Meta + (*ChildPrefixLength)(nil), // 17: metalstack.api.v2.ChildPrefixLength + (*NetworkConsumption)(nil), // 18: metalstack.api.v2.NetworkConsumption + (*NetworkUsage)(nil), // 19: metalstack.api.v2.NetworkUsage + (*Labels)(nil), // 20: metalstack.api.v2.Labels + (*UpdateMeta)(nil), // 21: metalstack.api.v2.UpdateMeta + (*UpdateLabels)(nil), // 22: metalstack.api.v2.UpdateLabels + (*Meta)(nil), // 23: metalstack.api.v2.Meta } var file_metalstack_api_v2_network_proto_depIdxs = []int32{ 15, // 0: metalstack.api.v2.NetworkServiceGetResponse.network:type_name -> metalstack.api.v2.Network - 22, // 1: metalstack.api.v2.NetworkServiceCreateRequest.labels:type_name -> metalstack.api.v2.Labels - 18, // 2: metalstack.api.v2.NetworkServiceCreateRequest.length:type_name -> metalstack.api.v2.ChildPrefixLength + 20, // 1: metalstack.api.v2.NetworkServiceCreateRequest.labels:type_name -> metalstack.api.v2.Labels + 17, // 2: metalstack.api.v2.NetworkServiceCreateRequest.length:type_name -> metalstack.api.v2.ChildPrefixLength 2, // 3: metalstack.api.v2.NetworkServiceCreateRequest.address_family:type_name -> metalstack.api.v2.NetworkAddressFamily 15, // 4: metalstack.api.v2.NetworkServiceCreateResponse.network:type_name -> metalstack.api.v2.Network - 23, // 5: metalstack.api.v2.NetworkServiceUpdateRequest.update_meta:type_name -> metalstack.api.v2.UpdateMeta - 24, // 6: metalstack.api.v2.NetworkServiceUpdateRequest.labels:type_name -> metalstack.api.v2.UpdateLabels + 21, // 5: metalstack.api.v2.NetworkServiceUpdateRequest.update_meta:type_name -> metalstack.api.v2.UpdateMeta + 22, // 6: metalstack.api.v2.NetworkServiceUpdateRequest.labels:type_name -> metalstack.api.v2.UpdateLabels 15, // 7: metalstack.api.v2.NetworkServiceUpdateResponse.network:type_name -> metalstack.api.v2.Network 16, // 8: metalstack.api.v2.NetworkServiceListRequest.query:type_name -> metalstack.api.v2.NetworkQuery 15, // 9: metalstack.api.v2.NetworkServiceListResponse.networks:type_name -> metalstack.api.v2.Network 16, // 10: metalstack.api.v2.NetworkServiceListBaseNetworksRequest.query:type_name -> metalstack.api.v2.NetworkQuery 15, // 11: metalstack.api.v2.NetworkServiceListBaseNetworksResponse.networks:type_name -> metalstack.api.v2.Network 15, // 12: metalstack.api.v2.NetworkServiceDeleteResponse.network:type_name -> metalstack.api.v2.Network - 25, // 13: metalstack.api.v2.Network.meta:type_name -> metalstack.api.v2.Meta - 18, // 14: metalstack.api.v2.Network.default_child_prefix_length:type_name -> metalstack.api.v2.ChildPrefixLength - 18, // 15: metalstack.api.v2.Network.min_child_prefix_length:type_name -> metalstack.api.v2.ChildPrefixLength + 23, // 13: metalstack.api.v2.Network.meta:type_name -> metalstack.api.v2.Meta + 17, // 14: metalstack.api.v2.Network.default_child_prefix_length:type_name -> metalstack.api.v2.ChildPrefixLength + 17, // 15: metalstack.api.v2.Network.min_child_prefix_length:type_name -> metalstack.api.v2.ChildPrefixLength 1, // 16: metalstack.api.v2.Network.type:type_name -> metalstack.api.v2.NetworkType 0, // 17: metalstack.api.v2.Network.nat_type:type_name -> metalstack.api.v2.NATType - 19, // 18: metalstack.api.v2.Network.consumption:type_name -> metalstack.api.v2.NetworkConsumption + 18, // 18: metalstack.api.v2.Network.consumption:type_name -> metalstack.api.v2.NetworkConsumption 2, // 19: metalstack.api.v2.NetworkQuery.address_family:type_name -> metalstack.api.v2.NetworkAddressFamily 1, // 20: metalstack.api.v2.NetworkQuery.type:type_name -> metalstack.api.v2.NetworkType 0, // 21: metalstack.api.v2.NetworkQuery.nat_type:type_name -> metalstack.api.v2.NATType - 22, // 22: metalstack.api.v2.NetworkQuery.labels:type_name -> metalstack.api.v2.Labels - 20, // 23: metalstack.api.v2.NetworkConsumption.ipv4:type_name -> metalstack.api.v2.NetworkUsage - 20, // 24: metalstack.api.v2.NetworkConsumption.ipv6:type_name -> metalstack.api.v2.NetworkUsage + 20, // 22: metalstack.api.v2.NetworkQuery.labels:type_name -> metalstack.api.v2.Labels + 19, // 23: metalstack.api.v2.NetworkConsumption.ipv4:type_name -> metalstack.api.v2.NetworkUsage + 19, // 24: metalstack.api.v2.NetworkConsumption.ipv6:type_name -> metalstack.api.v2.NetworkUsage 3, // 25: metalstack.api.v2.NetworkService.Get:input_type -> metalstack.api.v2.NetworkServiceGetRequest 5, // 26: metalstack.api.v2.NetworkService.Create:input_type -> metalstack.api.v2.NetworkServiceCreateRequest 7, // 27: metalstack.api.v2.NetworkService.Update:input_type -> metalstack.api.v2.NetworkServiceUpdateRequest @@ -1868,14 +1715,13 @@ func file_metalstack_api_v2_network_proto_init() { file_metalstack_api_v2_network_proto_msgTypes[12].OneofWrappers = []any{} file_metalstack_api_v2_network_proto_msgTypes[13].OneofWrappers = []any{} file_metalstack_api_v2_network_proto_msgTypes[14].OneofWrappers = []any{} - file_metalstack_api_v2_network_proto_msgTypes[15].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_metalstack_api_v2_network_proto_rawDesc), len(file_metalstack_api_v2_network_proto_rawDesc)), NumEnums: 3, - NumMessages: 19, + NumMessages: 17, NumExtensions: 0, NumServices: 1, }, diff --git a/go/metalstack/api/v2/switch.pb.go b/go/metalstack/api/v2/switch.pb.go index 3b819cb6..f8370f60 100644 --- a/go/metalstack/api/v2/switch.pb.go +++ b/go/metalstack/api/v2/switch.pb.go @@ -1274,6 +1274,61 @@ func (x *SwitchNicWithMachine) GetFru() *MachineFRU { return nil } +// StaticPortConfig is a config that is statically applied to a port. +type StaticPortConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Membership specifies whether this port is connected to a registered machine or to an external host or if it is unmanaged. + Membership SwitchPortMembership `protobuf:"varint,1,opt,name=membership,proto3,enum=metalstack.api.v2.SwitchPortMembership" json:"membership,omitempty"` + // Network the port is a member of. + Network *string `protobuf:"bytes,2,opt,name=network,proto3,oneof" json:"network,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *StaticPortConfig) Reset() { + *x = StaticPortConfig{} + mi := &file_metalstack_api_v2_switch_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *StaticPortConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StaticPortConfig) ProtoMessage() {} + +func (x *StaticPortConfig) ProtoReflect() protoreflect.Message { + mi := &file_metalstack_api_v2_switch_proto_msgTypes[12] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StaticPortConfig.ProtoReflect.Descriptor instead. +func (*StaticPortConfig) Descriptor() ([]byte, []int) { + return file_metalstack_api_v2_switch_proto_rawDescGZIP(), []int{12} +} + +func (x *StaticPortConfig) GetMembership() SwitchPortMembership { + if x != nil { + return x.Membership + } + return SwitchPortMembership_SWITCH_PORT_MEMBERSHIP_UNSPECIFIED +} + +func (x *StaticPortConfig) GetNetwork() string { + if x != nil && x.Network != nil { + return *x.Network + } + return "" +} + var File_metalstack_api_v2_switch_proto protoreflect.FileDescriptor const file_metalstack_api_v2_switch_proto_rawDesc = "" + @@ -1383,7 +1438,14 @@ const file_metalstack_api_v2_switch_proto_rawDesc = "" + "\x14SwitchNicWithMachine\x12.\n" + "\x03nic\x18\x01 \x01(\v2\x1c.metalstack.api.v2.SwitchNicR\x03nic\x124\n" + "\amachine\x18\x02 \x01(\v2\x1a.metalstack.api.v2.MachineR\amachine\x12/\n" + - "\x03fru\x18\x03 \x01(\v2\x1d.metalstack.api.v2.MachineFRUR\x03fru*\x89\x02\n" + + "\x03fru\x18\x03 \x01(\v2\x1d.metalstack.api.v2.MachineFRUR\x03fru\"\x86\x01\n" + + "\x10StaticPortConfig\x12G\n" + + "\n" + + "membership\x18\x01 \x01(\x0e2'.metalstack.api.v2.SwitchPortMembershipR\n" + + "membership\x12\x1d\n" + + "\anetwork\x18\x02 \x01(\tH\x00R\anetwork\x88\x01\x01B\n" + + "\n" + + "\b_network*\x89\x02\n" + "\bBGPState\x12\x19\n" + "\x15BGP_STATE_UNSPECIFIED\x10\x00\x12\x1c\n" + "\x0eBGP_STATE_IDLE\x10\x01\x1a\b\x82\xb2\x19\x04Idle\x12\"\n" + @@ -1426,7 +1488,7 @@ func file_metalstack_api_v2_switch_proto_rawDescGZIP() []byte { } var file_metalstack_api_v2_switch_proto_enumTypes = make([]protoimpl.EnumInfo, 5) -var file_metalstack_api_v2_switch_proto_msgTypes = make([]protoimpl.MessageInfo, 12) +var file_metalstack_api_v2_switch_proto_msgTypes = make([]protoimpl.MessageInfo, 13) var file_metalstack_api_v2_switch_proto_goTypes = []any{ (BGPState)(0), // 0: metalstack.api.v2.BGPState (SwitchReplaceMode)(0), // 1: metalstack.api.v2.SwitchReplaceMode @@ -1445,14 +1507,15 @@ var file_metalstack_api_v2_switch_proto_goTypes = []any{ (*SwitchSync)(nil), // 14: metalstack.api.v2.SwitchSync (*SwitchWithMachines)(nil), // 15: metalstack.api.v2.SwitchWithMachines (*SwitchNicWithMachine)(nil), // 16: metalstack.api.v2.SwitchNicWithMachine - (*Meta)(nil), // 17: metalstack.api.v2.Meta - (*timestamppb.Timestamp)(nil), // 18: google.protobuf.Timestamp - (*durationpb.Duration)(nil), // 19: google.protobuf.Duration - (*Machine)(nil), // 20: metalstack.api.v2.Machine - (*MachineFRU)(nil), // 21: metalstack.api.v2.MachineFRU + (*StaticPortConfig)(nil), // 17: metalstack.api.v2.StaticPortConfig + (*Meta)(nil), // 18: metalstack.api.v2.Meta + (*timestamppb.Timestamp)(nil), // 19: google.protobuf.Timestamp + (*durationpb.Duration)(nil), // 20: google.protobuf.Duration + (*Machine)(nil), // 21: metalstack.api.v2.Machine + (*MachineFRU)(nil), // 22: metalstack.api.v2.MachineFRU } var file_metalstack_api_v2_switch_proto_depIdxs = []int32{ - 17, // 0: metalstack.api.v2.Switch.meta:type_name -> metalstack.api.v2.Meta + 18, // 0: metalstack.api.v2.Switch.meta:type_name -> metalstack.api.v2.Meta 1, // 1: metalstack.api.v2.Switch.replace_mode:type_name -> metalstack.api.v2.SwitchReplaceMode 7, // 2: metalstack.api.v2.Switch.nics:type_name -> metalstack.api.v2.SwitchNic 6, // 3: metalstack.api.v2.Switch.os:type_name -> metalstack.api.v2.SwitchOS @@ -1465,23 +1528,24 @@ var file_metalstack_api_v2_switch_proto_depIdxs = []int32{ 9, // 10: metalstack.api.v2.SwitchNic.bgp_port_state:type_name -> metalstack.api.v2.SwitchBGPPortState 4, // 11: metalstack.api.v2.SwitchNic.membership:type_name -> metalstack.api.v2.SwitchPortMembership 0, // 12: metalstack.api.v2.SwitchBGPPortState.bgp_state:type_name -> metalstack.api.v2.BGPState - 18, // 13: metalstack.api.v2.SwitchBGPPortState.bgp_timer_up_established:type_name -> google.protobuf.Timestamp + 19, // 13: metalstack.api.v2.SwitchBGPPortState.bgp_timer_up_established:type_name -> google.protobuf.Timestamp 3, // 14: metalstack.api.v2.NicState.desired:type_name -> metalstack.api.v2.SwitchPortStatus 3, // 15: metalstack.api.v2.NicState.actual:type_name -> metalstack.api.v2.SwitchPortStatus 7, // 16: metalstack.api.v2.MachineConnection.nic:type_name -> metalstack.api.v2.SwitchNic 13, // 17: metalstack.api.v2.SwitchQuery.os:type_name -> metalstack.api.v2.SwitchOSQuery 2, // 18: metalstack.api.v2.SwitchOSQuery.vendor:type_name -> metalstack.api.v2.SwitchOSVendor - 18, // 19: metalstack.api.v2.SwitchSync.time:type_name -> google.protobuf.Timestamp - 19, // 20: metalstack.api.v2.SwitchSync.duration:type_name -> google.protobuf.Duration + 19, // 19: metalstack.api.v2.SwitchSync.time:type_name -> google.protobuf.Timestamp + 20, // 20: metalstack.api.v2.SwitchSync.duration:type_name -> google.protobuf.Duration 16, // 21: metalstack.api.v2.SwitchWithMachines.connections:type_name -> metalstack.api.v2.SwitchNicWithMachine 7, // 22: metalstack.api.v2.SwitchNicWithMachine.nic:type_name -> metalstack.api.v2.SwitchNic - 20, // 23: metalstack.api.v2.SwitchNicWithMachine.machine:type_name -> metalstack.api.v2.Machine - 21, // 24: metalstack.api.v2.SwitchNicWithMachine.fru:type_name -> metalstack.api.v2.MachineFRU - 25, // [25:25] is the sub-list for method output_type - 25, // [25:25] is the sub-list for method input_type - 25, // [25:25] is the sub-list for extension type_name - 25, // [25:25] is the sub-list for extension extendee - 0, // [0:25] is the sub-list for field type_name + 21, // 23: metalstack.api.v2.SwitchNicWithMachine.machine:type_name -> metalstack.api.v2.Machine + 22, // 24: metalstack.api.v2.SwitchNicWithMachine.fru:type_name -> metalstack.api.v2.MachineFRU + 4, // 25: metalstack.api.v2.StaticPortConfig.membership:type_name -> metalstack.api.v2.SwitchPortMembership + 26, // [26:26] is the sub-list for method output_type + 26, // [26:26] is the sub-list for method input_type + 26, // [26:26] is the sub-list for extension type_name + 26, // [26:26] is the sub-list for extension extendee + 0, // [0:26] is the sub-list for field type_name } func init() { file_metalstack_api_v2_switch_proto_init() } @@ -1499,13 +1563,14 @@ func file_metalstack_api_v2_switch_proto_init() { file_metalstack_api_v2_switch_proto_msgTypes[7].OneofWrappers = []any{} file_metalstack_api_v2_switch_proto_msgTypes[8].OneofWrappers = []any{} file_metalstack_api_v2_switch_proto_msgTypes[9].OneofWrappers = []any{} + file_metalstack_api_v2_switch_proto_msgTypes[12].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_metalstack_api_v2_switch_proto_rawDesc), len(file_metalstack_api_v2_switch_proto_rawDesc)), NumEnums: 5, - NumMessages: 12, + NumMessages: 13, NumExtensions: 0, NumServices: 0, }, diff --git a/go/permissions/servicepermissions.go b/go/permissions/servicepermissions.go index d503829c..b81fca5a 100755 --- a/go/permissions/servicepermissions.go +++ b/go/permissions/servicepermissions.go @@ -55,106 +55,102 @@ 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/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": {}, + "/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/Create": {}, + "/metalstack.admin.v2.NetworkService/Delete": {}, + "/metalstack.admin.v2.NetworkService/Get": {}, + "/metalstack.admin.v2.NetworkService/List": {}, + "/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": {}, - "/metalstack.admin.v2.AuditService/List": {}, - "/metalstack.admin.v2.ComponentService/Get": {}, - "/metalstack.admin.v2.ComponentService/List": {}, - "/metalstack.admin.v2.FilesystemService/Match": {}, - "/metalstack.admin.v2.IPService/List": {}, - "/metalstack.admin.v2.ImageService/Usage": {}, - "/metalstack.admin.v2.MachineService/ConsolePassword": {}, - "/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.NetworkService/Get": {}, - "/metalstack.admin.v2.NetworkService/List": {}, - "/metalstack.admin.v2.NetworkService/ListExternalMembers": {}, - "/metalstack.admin.v2.PartitionService/Capacity": {}, - "/metalstack.admin.v2.ProjectService/List": {}, - "/metalstack.admin.v2.SizeImageConstraintService/Get": {}, - "/metalstack.admin.v2.SizeImageConstraintService/List": {}, - "/metalstack.admin.v2.SizeReservationService/List": {}, - "/metalstack.admin.v2.SwitchService/ConnectedMachines": {}, - "/metalstack.admin.v2.SwitchService/Get": {}, - "/metalstack.admin.v2.SwitchService/List": {}, - "/metalstack.admin.v2.TaskService/Get": {}, - "/metalstack.admin.v2.TaskService/List": {}, - "/metalstack.admin.v2.TaskService/Queues": {}, - "/metalstack.admin.v2.TenantService/List": {}, - "/metalstack.admin.v2.TokenService/List": {}, - "/metalstack.admin.v2.VPNService/ListNodes": {}, + "/metalstack.admin.v2.AuditService/Get": {}, + "/metalstack.admin.v2.AuditService/List": {}, + "/metalstack.admin.v2.ComponentService/Get": {}, + "/metalstack.admin.v2.ComponentService/List": {}, + "/metalstack.admin.v2.FilesystemService/Match": {}, + "/metalstack.admin.v2.IPService/List": {}, + "/metalstack.admin.v2.ImageService/Usage": {}, + "/metalstack.admin.v2.MachineService/ConsolePassword": {}, + "/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.NetworkService/Get": {}, + "/metalstack.admin.v2.NetworkService/List": {}, + "/metalstack.admin.v2.PartitionService/Capacity": {}, + "/metalstack.admin.v2.ProjectService/List": {}, + "/metalstack.admin.v2.SizeImageConstraintService/Get": {}, + "/metalstack.admin.v2.SizeImageConstraintService/List": {}, + "/metalstack.admin.v2.SizeReservationService/List": {}, + "/metalstack.admin.v2.SwitchService/ConnectedMachines": {}, + "/metalstack.admin.v2.SwitchService/Get": {}, + "/metalstack.admin.v2.SwitchService/List": {}, + "/metalstack.admin.v2.TaskService/Get": {}, + "/metalstack.admin.v2.TaskService/List": {}, + "/metalstack.admin.v2.TaskService/Queues": {}, + "/metalstack.admin.v2.TenantService/List": {}, + "/metalstack.admin.v2.TokenService/List": {}, + "/metalstack.admin.v2.VPNService/ListNodes": {}, }, }, Infra: Infra{ @@ -309,13 +305,10 @@ func GetServicePermissions() *ServicePermissions { "/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": {}, @@ -476,74 +469,71 @@ 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/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, + "/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/Create": true, + "/metalstack.admin.v2.NetworkService/Delete": true, + "/metalstack.admin.v2.NetworkService/Get": true, + "/metalstack.admin.v2.NetworkService/List": 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 +602,156 @@ 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/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, + "/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/Create": true, + "/metalstack.admin.v2.NetworkService/Delete": true, + "/metalstack.admin.v2.NetworkService/Get": false, + "/metalstack.admin.v2.NetworkService/List": false, + "/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 5aa9a4e1..39031fbf 100644 --- a/js/metalstack/admin/v2/network_pb.d.ts +++ b/js/metalstack/admin/v2/network_pb.d.ts @@ -1,6 +1,6 @@ import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2"; import type { Labels, UpdateLabels, UpdateMeta } from "../../api/v2/common_pb"; -import type { ChildPrefixLength, ExternalNetworkMember, ExternalNetworkMemberQuery, NATType, Network, NetworkAddressFamily, NetworkQuery, NetworkType } from "../../api/v2/network_pb"; +import type { ChildPrefixLength, NATType, Network, NetworkAddressFamily, NetworkQuery, NetworkType } from "../../api/v2/network_pb"; import type { Message } from "@bufbuild/protobuf"; /** * Describes the file metalstack/admin/v2/network.proto. @@ -276,90 +276,6 @@ export type NetworkServiceListRequest = Message<"metalstack.admin.v2.NetworkServ * Use `create(NetworkServiceListRequestSchema)` to create a new message. */ export declare const NetworkServiceListRequestSchema: GenMessage; -/** - * NetworkServiceListExternalMembersRequest is the request payload for listing external members of a network. - * - * @generated from message metalstack.admin.v2.NetworkServiceListExternalMembersRequest - */ -export type NetworkServiceListExternalMembersRequest = Message<"metalstack.admin.v2.NetworkServiceListExternalMembersRequest"> & { - /** - * Network to list the members for. - * - * @generated from field: string network = 1; - */ - network: string; - /** - * Query specifies additional filters for the list request. - * - * @generated from field: metalstack.api.v2.ExternalNetworkMemberQuery query = 2; - */ - query?: ExternalNetworkMemberQuery | undefined; -}; -/** - * Describes the message metalstack.admin.v2.NetworkServiceListExternalMembersRequest. - * Use `create(NetworkServiceListExternalMembersRequestSchema)` to create a new message. - */ -export declare const NetworkServiceListExternalMembersRequestSchema: GenMessage; -/** - * NetworkServiceAddExternalMemberRequest is the request payload for adding an external member to a network. - * - * @generated from message metalstack.admin.v2.NetworkServiceAddExternalMembersRequest - */ -export type NetworkServiceAddExternalMembersRequest = Message<"metalstack.admin.v2.NetworkServiceAddExternalMembersRequest"> & { - /** - * Network to add the member to. - * - * @generated from field: string network = 1; - */ - network: string; - /** - * Rack the members are connected to. - * - * @generated from field: string rack = 2; - */ - 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. - * Use `create(NetworkServiceAddExternalMembersRequestSchema)` to create a new message. - */ -export declare const NetworkServiceAddExternalMembersRequestSchema: GenMessage; -/** - * NetworkServiceRemoveExternalMemberRequest is the request payload for removing an external member from a network. - * - * @generated from message metalstack.admin.v2.NetworkServiceRemoveExternalMembersRequest - */ -export type NetworkServiceRemoveExternalMembersRequest = Message<"metalstack.admin.v2.NetworkServiceRemoveExternalMembersRequest"> & { - /** - * Network to remove the member from. - * - * @generated from field: string network = 1; - */ - network: string; - /** - * 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 string ports = 3; - */ - ports: string[]; -}; -/** - * Describes the message metalstack.admin.v2.NetworkServiceRemoveExternalMembersRequest. - * Use `create(NetworkServiceRemoveExternalMembersRequestSchema)` to create a new message. - */ -export declare const NetworkServiceRemoveExternalMembersRequestSchema: GenMessage; /** * NetworkServiceCreateResponse is the response payload for creating a network. * @@ -432,78 +348,6 @@ export type NetworkServiceListResponse = Message<"metalstack.admin.v2.NetworkSer * Use `create(NetworkServiceListResponseSchema)` to create a new message. */ export declare const NetworkServiceListResponseSchema: GenMessage; -/** - * NetworkServiceListExternalMembersResponse is the response payload for listing external members of a network. - * - * @generated from message metalstack.admin.v2.NetworkServiceListExternalMembersResponse - */ -export type NetworkServiceListExternalMembersResponse = Message<"metalstack.admin.v2.NetworkServiceListExternalMembersResponse"> & { - /** - * Network whose members are queried. - * - * @generated from field: metalstack.api.v2.Network network = 1; - */ - network?: Network | undefined; - /** - * Members are the queried external members of the network. - * - * @generated from field: repeated metalstack.api.v2.ExternalNetworkMember members = 2; - */ - members: ExternalNetworkMember[]; -}; -/** - * Describes the message metalstack.admin.v2.NetworkServiceListExternalMembersResponse. - * Use `create(NetworkServiceListExternalMembersResponseSchema)` to create a new message. - */ -export declare const NetworkServiceListExternalMembersResponseSchema: GenMessage; -/** - * NetworkServiceAddExternalMemberResponse is the response payload for adding an external member to a network. - * - * @generated from message metalstack.admin.v2.NetworkServiceAddExternalMembersResponse - */ -export type NetworkServiceAddExternalMembersResponse = Message<"metalstack.admin.v2.NetworkServiceAddExternalMembersResponse"> & { - /** - * Network the members were added to. - * - * @generated from field: metalstack.api.v2.Network network = 1; - */ - network?: Network | undefined; - /** - * Members are the updated external members of the network. - * - * @generated from field: repeated metalstack.api.v2.ExternalNetworkMember members = 2; - */ - members: ExternalNetworkMember[]; -}; -/** - * Describes the message metalstack.admin.v2.NetworkServiceAddExternalMembersResponse. - * Use `create(NetworkServiceAddExternalMembersResponseSchema)` to create a new message. - */ -export declare const NetworkServiceAddExternalMembersResponseSchema: GenMessage; -/** - * NetworkServiceRemoveExternalMemberResponse is the response payload for removing an external member from a network. - * - * @generated from message metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse - */ -export type NetworkServiceRemoveExternalMembersResponse = Message<"metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse"> & { - /** - * Network the members were removed from. - * - * @generated from field: metalstack.api.v2.Network network = 1; - */ - network?: Network | undefined; - /** - * Members are the updated external members of the network. - * - * @generated from field: repeated metalstack.api.v2.ExternalNetworkMember members = 2; - */ - members: ExternalNetworkMember[]; -}; -/** - * Describes the message metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse. - * Use `create(NetworkServiceRemoveExternalMembersResponseSchema)` to create a new message. - */ -export declare const NetworkServiceRemoveExternalMembersResponseSchema: GenMessage; /** * NetworkService provides network management operations. * @@ -560,34 +404,4 @@ export declare const NetworkService: GenService<{ input: typeof NetworkServiceListRequestSchema; output: typeof NetworkServiceListResponseSchema; }; - /** - * Lists external members of a network. - * - * @generated from rpc metalstack.admin.v2.NetworkService.ListExternalMembers - */ - listExternalMembers: { - methodKind: "unary"; - input: typeof NetworkServiceListExternalMembersRequestSchema; - output: typeof NetworkServiceListExternalMembersResponseSchema; - }; - /** - * Adds an external member to a network. - * - * @generated from rpc metalstack.admin.v2.NetworkService.AddExternalMembers - */ - addExternalMembers: { - methodKind: "unary"; - input: typeof NetworkServiceAddExternalMembersRequestSchema; - output: typeof NetworkServiceAddExternalMembersResponseSchema; - }; - /** - * Removes an external member from a network. - * - * @generated from rpc metalstack.admin.v2.NetworkService.RemoveExternalMembers - */ - removeExternalMembers: { - methodKind: "unary"; - 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 76d2fb75..e0dad1f5 100644 --- a/js/metalstack/admin/v2/network_pb.js +++ b/js/metalstack/admin/v2/network_pb.js @@ -9,7 +9,7 @@ import { file_metalstack_api_v2_predefined_rules } from "../../api/v2/predefined /** * Describes the file metalstack/admin/v2/network.proto. */ -export const file_metalstack_admin_v2_network = /*@__PURE__*/ fileDesc("CiFtZXRhbHN0YWNrL2FkbWluL3YyL25ldHdvcmsucHJvdG8SE21ldGFsc3RhY2suYWRtaW4udjIiMwoYTmV0d29ya1NlcnZpY2VHZXRSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECASJIChlOZXR3b3JrU2VydmljZUdldFJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrItAHChtOZXR3b3JrU2VydmljZUNyZWF0ZVJlcXVlc3QSHAoCaWQYASABKAlCC7pICHIGwLOusQIBSACIAQESHgoEbmFtZRgCIAEoCUILukgIcgbAs66xAgFIAYgBARIlCgtkZXNjcmlwdGlvbhgDIAEoCUILukgIcgbIs66xAgFIAogBARIjCglwYXJ0aXRpb24YBCABKAlCC7pICHIG0LOusQIBSAOIAQESHgoHcHJvamVjdBgFIAEoCUIIukgFcgOwAQFIBIgBARI2CgR0eXBlGAYgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1R5cGVCCLpIBYIBAhABEi4KBmxhYmVscxgHIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVsc0gFiAEBEh4KCHByZWZpeGVzGAggAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCSADKAlCDLpICZIBBriks7ECARJJChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCiABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aBJFChdtaW5fY2hpbGRfcHJlZml4X2xlbmd0aBgLIAEoCzIkLm1ldGFsc3RhY2suYXBpLnYyLkNoaWxkUHJlZml4TGVuZ3RoEjsKCG5hdF90eXBlGAwgASgOMhoubWV0YWxzdGFjay5hcGkudjIuTkFUVHlwZUIIukgFggECEAFIBogBARIQCgN2cmYYDSABKA1IB4gBARIoCg5wYXJlbnRfbmV0d29yaxgOIAEoCUILukgIcgbAs66xAgFICIgBARIyChxhZGRpdGlvbmFsX2Fubm91bmNhYmxlX2NpZHJzGA8gAygJQgy6SAmSAQa4pLOxAgESOQoGbGVuZ3RoGBAgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhICYgBARJOCg5hZGRyZXNzX2ZhbWlseRgRIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgKiAEBQgUKA19pZEIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CDAoKX3BhcnRpdGlvbkIKCghfcHJvamVjdEIJCgdfbGFiZWxzQgsKCV9uYXRfdHlwZUIGCgRfdnJmQhEKD19wYXJlbnRfbmV0d29ya0IJCgdfbGVuZ3RoQhEKD19hZGRyZXNzX2ZhbWlseSLEBQobTmV0d29ya1NlcnZpY2VVcGRhdGVSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECARI6Cgt1cGRhdGVfbWV0YRgCIAEoCzIdLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZU1ldGFCBrpIA8gBARIeCgRuYW1lGAMgASgJQgu6SAhyBsCzrrECAUgAiAEBEiUKC2Rlc2NyaXB0aW9uGAQgASgJQgu6SAhyBsizrrECAUgBiAEBEjQKBmxhYmVscxgFIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZUxhYmVsc0gCiAEBEh4KCHByZWZpeGVzGAYgAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYByADKAlCDLpICZIBBriks7ECARJOChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCCABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aEgDiAEBEkoKF21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoGAkgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhIBIgBARI7CghuYXRfdHlwZRgKIAEoDjIaLm1ldGFsc3RhY2suYXBpLnYyLk5BVFR5cGVCCLpIBYIBAhABSAWIAQESMgocYWRkaXRpb25hbF9hbm5vdW5jYWJsZV9jaWRycxgLIAMoCUIMukgJkgEGuKSzsQIBEg0KBWZvcmNlGAwgASgIQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIJCgdfbGFiZWxzQh4KHF9kZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGhCGgoYX21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoQgsKCV9uYXRfdHlwZSI2ChtOZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBIksKGU5ldHdvcmtTZXJ2aWNlTGlzdFJlcXVlc3QSLgoFcXVlcnkYASABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrUXVlcnkihgEKKE5ldHdvcmtTZXJ2aWNlTGlzdEV4dGVybmFsTWVtYmVyc1JlcXVlc3QSHAoHbmV0d29yaxgBIAEoCUILukgIcgbAs66xAgESPAoFcXVlcnkYAiABKAsyLS5tZXRhbHN0YWNrLmFwaS52Mi5FeHRlcm5hbE5ldHdvcmtNZW1iZXJRdWVyeSKCAQonTmV0d29ya1NlcnZpY2VBZGRFeHRlcm5hbE1lbWJlcnNSZXF1ZXN0EhwKB25ldHdvcmsYASABKAlCC7pICHIGwLOusQIBEhkKBHJhY2sYAiABKAlCC7pICHIGwLOusQIBEh4KBXBvcnRzGAMgAygJQg+6SAySAQnQpLOxAgEQgBAihQEKKk5ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzUmVxdWVzdBIcCgduZXR3b3JrGAEgASgJQgu6SAhyBsCzrrECARIZCgRyYWNrGAIgASgJQgu6SAhyBsCzrrECARIeCgVwb3J0cxgDIAMoCUIPukgMkgEJ0KSzsQIBEIAQIksKHE5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsiSwocTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJLChxOZXR3b3JrU2VydmljZURlbGV0ZVJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrIkoKGk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayKTAQopTmV0d29ya1NlcnZpY2VMaXN0RXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsSOQoHbWVtYmVycxgCIAMoCzIoLm1ldGFsc3RhY2suYXBpLnYyLkV4dGVybmFsTmV0d29ya01lbWJlciKSAQooTmV0d29ya1NlcnZpY2VBZGRFeHRlcm5hbE1lbWJlcnNSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yaxI5CgdtZW1iZXJzGAIgAygLMigubWV0YWxzdGFjay5hcGkudjIuRXh0ZXJuYWxOZXR3b3JrTWVtYmVyIpUBCitOZXR3b3JrU2VydmljZVJlbW92ZUV4dGVybmFsTWVtYmVyc1Jlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrEjkKB21lbWJlcnMYAiADKAsyKC5tZXRhbHN0YWNrLmFwaS52Mi5FeHRlcm5hbE5ldHdvcmtNZW1iZXIyzwgKDk5ldHdvcmtTZXJ2aWNlEnAKA0dldBItLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VHZXRSZXF1ZXN0Gi4ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUdldFJlc3BvbnNlIgrS8xgCAQLg8xgCEngKBkNyZWF0ZRIwLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VDcmVhdGVSZXF1ZXN0GjEubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUNyZWF0ZVJlc3BvbnNlIgnS8xgBAeDzGAESeAoGVXBkYXRlEjAubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZVVwZGF0ZVJlcXVlc3QaMS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlVXBkYXRlUmVzcG9uc2UiCdLzGAEB4PMYARJ4CgZEZWxldGUSMC5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVxdWVzdBoxLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VEZWxldGVSZXNwb25zZSIJ0vMYAQHg8xgBEnMKBExpc3QSLi5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdFJlcXVlc3QaLy5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlIgrS8xgCAQLg8xgCEqABChNMaXN0RXh0ZXJuYWxNZW1iZXJzEj0ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUxpc3RFeHRlcm5hbE1lbWJlcnNSZXF1ZXN0Gj4ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUxpc3RFeHRlcm5hbE1lbWJlcnNSZXNwb25zZSIK0vMYAgEC4PMYAhKcAQoSQWRkRXh0ZXJuYWxNZW1iZXJzEjwubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUFkZEV4dGVybmFsTWVtYmVyc1JlcXVlc3QaPS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlQWRkRXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2UiCdLzGAEB4PMYARKlAQoVUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzEj8ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZVJlbW92ZUV4dGVybmFsTWVtYmVyc1JlcXVlc3QaQC5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2UiCdLzGAEB4PMYAULQAQoXY29tLm1ldGFsc3RhY2suYWRtaW4udjJCDE5ldHdvcmtQcm90b1ABWjlnaXRodWIuY29tL21ldGFsLXN0YWNrL2FwaS9nby9tZXRhbHN0YWNrL2FkbWluL3YyO2FkbWludjKiAgNNQViqAhNNZXRhbHN0YWNrLkFkbWluLlYyygITTWV0YWxzdGFja1xBZG1pblxWMuICH01ldGFsc3RhY2tcQWRtaW5cVjJcR1BCTWV0YWRhdGHqAhVNZXRhbHN0YWNrOjpBZG1pbjo6VjJiBnByb3RvMw", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_network, file_metalstack_api_v2_predefined_rules]); +export const file_metalstack_admin_v2_network = /*@__PURE__*/ fileDesc("CiFtZXRhbHN0YWNrL2FkbWluL3YyL25ldHdvcmsucHJvdG8SE21ldGFsc3RhY2suYWRtaW4udjIiMwoYTmV0d29ya1NlcnZpY2VHZXRSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECASJIChlOZXR3b3JrU2VydmljZUdldFJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrItAHChtOZXR3b3JrU2VydmljZUNyZWF0ZVJlcXVlc3QSHAoCaWQYASABKAlCC7pICHIGwLOusQIBSACIAQESHgoEbmFtZRgCIAEoCUILukgIcgbAs66xAgFIAYgBARIlCgtkZXNjcmlwdGlvbhgDIAEoCUILukgIcgbIs66xAgFIAogBARIjCglwYXJ0aXRpb24YBCABKAlCC7pICHIG0LOusQIBSAOIAQESHgoHcHJvamVjdBgFIAEoCUIIukgFcgOwAQFIBIgBARI2CgR0eXBlGAYgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1R5cGVCCLpIBYIBAhABEi4KBmxhYmVscxgHIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVsc0gFiAEBEh4KCHByZWZpeGVzGAggAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCSADKAlCDLpICZIBBriks7ECARJJChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCiABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aBJFChdtaW5fY2hpbGRfcHJlZml4X2xlbmd0aBgLIAEoCzIkLm1ldGFsc3RhY2suYXBpLnYyLkNoaWxkUHJlZml4TGVuZ3RoEjsKCG5hdF90eXBlGAwgASgOMhoubWV0YWxzdGFjay5hcGkudjIuTkFUVHlwZUIIukgFggECEAFIBogBARIQCgN2cmYYDSABKA1IB4gBARIoCg5wYXJlbnRfbmV0d29yaxgOIAEoCUILukgIcgbAs66xAgFICIgBARIyChxhZGRpdGlvbmFsX2Fubm91bmNhYmxlX2NpZHJzGA8gAygJQgy6SAmSAQa4pLOxAgESOQoGbGVuZ3RoGBAgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhICYgBARJOCg5hZGRyZXNzX2ZhbWlseRgRIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgKiAEBQgUKA19pZEIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CDAoKX3BhcnRpdGlvbkIKCghfcHJvamVjdEIJCgdfbGFiZWxzQgsKCV9uYXRfdHlwZUIGCgRfdnJmQhEKD19wYXJlbnRfbmV0d29ya0IJCgdfbGVuZ3RoQhEKD19hZGRyZXNzX2ZhbWlseSLEBQobTmV0d29ya1NlcnZpY2VVcGRhdGVSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECARI6Cgt1cGRhdGVfbWV0YRgCIAEoCzIdLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZU1ldGFCBrpIA8gBARIeCgRuYW1lGAMgASgJQgu6SAhyBsCzrrECAUgAiAEBEiUKC2Rlc2NyaXB0aW9uGAQgASgJQgu6SAhyBsizrrECAUgBiAEBEjQKBmxhYmVscxgFIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZUxhYmVsc0gCiAEBEh4KCHByZWZpeGVzGAYgAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYByADKAlCDLpICZIBBriks7ECARJOChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCCABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aEgDiAEBEkoKF21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoGAkgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhIBIgBARI7CghuYXRfdHlwZRgKIAEoDjIaLm1ldGFsc3RhY2suYXBpLnYyLk5BVFR5cGVCCLpIBYIBAhABSAWIAQESMgocYWRkaXRpb25hbF9hbm5vdW5jYWJsZV9jaWRycxgLIAMoCUIMukgJkgEGuKSzsQIBEg0KBWZvcmNlGAwgASgIQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIJCgdfbGFiZWxzQh4KHF9kZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGhCGgoYX21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoQgsKCV9uYXRfdHlwZSI2ChtOZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBIksKGU5ldHdvcmtTZXJ2aWNlTGlzdFJlcXVlc3QSLgoFcXVlcnkYASABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrUXVlcnkiSwocTmV0d29ya1NlcnZpY2VDcmVhdGVSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJLChxOZXR3b3JrU2VydmljZVVwZGF0ZVJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrIksKHE5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsiSgoaTmV0d29ya1NlcnZpY2VMaXN0UmVzcG9uc2USLAoIbmV0d29ya3MYASADKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrMuUECg5OZXR3b3JrU2VydmljZRJwCgNHZXQSLS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlR2V0UmVxdWVzdBouLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VHZXRSZXNwb25zZSIK0vMYAgEC4PMYAhJ4CgZDcmVhdGUSMC5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVxdWVzdBoxLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VDcmVhdGVSZXNwb25zZSIJ0vMYAQHg8xgBEngKBlVwZGF0ZRIwLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VVcGRhdGVSZXF1ZXN0GjEubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZVVwZGF0ZVJlc3BvbnNlIgnS8xgBAeDzGAESeAoGRGVsZXRlEjAubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QaMS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVzcG9uc2UiCdLzGAEB4PMYARJzCgRMaXN0Ei4ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUxpc3RSZXF1ZXN0Gi8ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUxpc3RSZXNwb25zZSIK0vMYAgEC4PMYAkLQAQoXY29tLm1ldGFsc3RhY2suYWRtaW4udjJCDE5ldHdvcmtQcm90b1ABWjlnaXRodWIuY29tL21ldGFsLXN0YWNrL2FwaS9nby9tZXRhbHN0YWNrL2FkbWluL3YyO2FkbWludjKiAgNNQViqAhNNZXRhbHN0YWNrLkFkbWluLlYyygITTWV0YWxzdGFja1xBZG1pblxWMuICH01ldGFsc3RhY2tcQWRtaW5cVjJcR1BCTWV0YWRhdGHqAhVNZXRhbHN0YWNrOjpBZG1pbjo6VjJiBnByb3RvMw", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_network, file_metalstack_api_v2_predefined_rules]); /** * Describes the message metalstack.admin.v2.NetworkServiceGetRequest. * Use `create(NetworkServiceGetRequestSchema)` to create a new message. @@ -40,56 +40,26 @@ export const NetworkServiceDeleteRequestSchema = /*@__PURE__*/ messageDesc(file_ * Use `create(NetworkServiceListRequestSchema)` to create a new message. */ export const NetworkServiceListRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_admin_v2_network, 5); -/** - * Describes the message metalstack.admin.v2.NetworkServiceListExternalMembersRequest. - * Use `create(NetworkServiceListExternalMembersRequestSchema)` to create a new message. - */ -export const NetworkServiceListExternalMembersRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_admin_v2_network, 6); -/** - * Describes the message metalstack.admin.v2.NetworkServiceAddExternalMembersRequest. - * Use `create(NetworkServiceAddExternalMembersRequestSchema)` to create a new message. - */ -export const NetworkServiceAddExternalMembersRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_admin_v2_network, 7); -/** - * Describes the message metalstack.admin.v2.NetworkServiceRemoveExternalMembersRequest. - * Use `create(NetworkServiceRemoveExternalMembersRequestSchema)` to create a new message. - */ -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. */ -export const NetworkServiceCreateResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_admin_v2_network, 9); +export const NetworkServiceCreateResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_admin_v2_network, 6); /** * Describes the message metalstack.admin.v2.NetworkServiceUpdateResponse. * Use `create(NetworkServiceUpdateResponseSchema)` to create a new message. */ -export const NetworkServiceUpdateResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_admin_v2_network, 10); +export const NetworkServiceUpdateResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_admin_v2_network, 7); /** * Describes the message metalstack.admin.v2.NetworkServiceDeleteResponse. * Use `create(NetworkServiceDeleteResponseSchema)` to create a new message. */ -export const NetworkServiceDeleteResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_admin_v2_network, 11); +export const NetworkServiceDeleteResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_admin_v2_network, 8); /** * Describes the message metalstack.admin.v2.NetworkServiceListResponse. * Use `create(NetworkServiceListResponseSchema)` to create a new message. */ -export const NetworkServiceListResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_admin_v2_network, 12); -/** - * Describes the message metalstack.admin.v2.NetworkServiceListExternalMembersResponse. - * Use `create(NetworkServiceListExternalMembersResponseSchema)` to create a new message. - */ -export const NetworkServiceListExternalMembersResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_admin_v2_network, 13); -/** - * Describes the message metalstack.admin.v2.NetworkServiceAddExternalMembersResponse. - * Use `create(NetworkServiceAddExternalMembersResponseSchema)` to create a new message. - */ -export const NetworkServiceAddExternalMembersResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_admin_v2_network, 14); -/** - * Describes the message metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse. - * Use `create(NetworkServiceRemoveExternalMembersResponseSchema)` to create a new message. - */ -export const NetworkServiceRemoveExternalMembersResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_admin_v2_network, 15); +export const NetworkServiceListResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_admin_v2_network, 9); /** * NetworkService provides network management operations. * diff --git a/js/metalstack/admin/v2/network_pb.ts b/js/metalstack/admin/v2/network_pb.ts index e7db10d7..284ef1f4 100644 --- a/js/metalstack/admin/v2/network_pb.ts +++ b/js/metalstack/admin/v2/network_pb.ts @@ -7,7 +7,7 @@ import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2 import { file_buf_validate_validate } from "../../../buf/validate/validate_pb"; import type { Labels, UpdateLabels, UpdateMeta } from "../../api/v2/common_pb"; import { file_metalstack_api_v2_common } from "../../api/v2/common_pb"; -import type { ChildPrefixLength, ExternalNetworkMember, ExternalNetworkMemberQuery, NATType, Network, NetworkAddressFamily, NetworkQuery, NetworkType } from "../../api/v2/network_pb"; +import type { ChildPrefixLength, NATType, Network, NetworkAddressFamily, NetworkQuery, NetworkType } from "../../api/v2/network_pb"; import { file_metalstack_api_v2_network } from "../../api/v2/network_pb"; import { file_metalstack_api_v2_predefined_rules } from "../../api/v2/predefined_rules_pb"; import type { Message } from "@bufbuild/protobuf"; @@ -16,7 +16,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("CiFtZXRhbHN0YWNrL2FkbWluL3YyL25ldHdvcmsucHJvdG8SE21ldGFsc3RhY2suYWRtaW4udjIiMwoYTmV0d29ya1NlcnZpY2VHZXRSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECASJIChlOZXR3b3JrU2VydmljZUdldFJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrItAHChtOZXR3b3JrU2VydmljZUNyZWF0ZVJlcXVlc3QSHAoCaWQYASABKAlCC7pICHIGwLOusQIBSACIAQESHgoEbmFtZRgCIAEoCUILukgIcgbAs66xAgFIAYgBARIlCgtkZXNjcmlwdGlvbhgDIAEoCUILukgIcgbIs66xAgFIAogBARIjCglwYXJ0aXRpb24YBCABKAlCC7pICHIG0LOusQIBSAOIAQESHgoHcHJvamVjdBgFIAEoCUIIukgFcgOwAQFIBIgBARI2CgR0eXBlGAYgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1R5cGVCCLpIBYIBAhABEi4KBmxhYmVscxgHIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVsc0gFiAEBEh4KCHByZWZpeGVzGAggAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCSADKAlCDLpICZIBBriks7ECARJJChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCiABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aBJFChdtaW5fY2hpbGRfcHJlZml4X2xlbmd0aBgLIAEoCzIkLm1ldGFsc3RhY2suYXBpLnYyLkNoaWxkUHJlZml4TGVuZ3RoEjsKCG5hdF90eXBlGAwgASgOMhoubWV0YWxzdGFjay5hcGkudjIuTkFUVHlwZUIIukgFggECEAFIBogBARIQCgN2cmYYDSABKA1IB4gBARIoCg5wYXJlbnRfbmV0d29yaxgOIAEoCUILukgIcgbAs66xAgFICIgBARIyChxhZGRpdGlvbmFsX2Fubm91bmNhYmxlX2NpZHJzGA8gAygJQgy6SAmSAQa4pLOxAgESOQoGbGVuZ3RoGBAgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhICYgBARJOCg5hZGRyZXNzX2ZhbWlseRgRIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgKiAEBQgUKA19pZEIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CDAoKX3BhcnRpdGlvbkIKCghfcHJvamVjdEIJCgdfbGFiZWxzQgsKCV9uYXRfdHlwZUIGCgRfdnJmQhEKD19wYXJlbnRfbmV0d29ya0IJCgdfbGVuZ3RoQhEKD19hZGRyZXNzX2ZhbWlseSLEBQobTmV0d29ya1NlcnZpY2VVcGRhdGVSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECARI6Cgt1cGRhdGVfbWV0YRgCIAEoCzIdLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZU1ldGFCBrpIA8gBARIeCgRuYW1lGAMgASgJQgu6SAhyBsCzrrECAUgAiAEBEiUKC2Rlc2NyaXB0aW9uGAQgASgJQgu6SAhyBsizrrECAUgBiAEBEjQKBmxhYmVscxgFIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZUxhYmVsc0gCiAEBEh4KCHByZWZpeGVzGAYgAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYByADKAlCDLpICZIBBriks7ECARJOChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCCABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aEgDiAEBEkoKF21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoGAkgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhIBIgBARI7CghuYXRfdHlwZRgKIAEoDjIaLm1ldGFsc3RhY2suYXBpLnYyLk5BVFR5cGVCCLpIBYIBAhABSAWIAQESMgocYWRkaXRpb25hbF9hbm5vdW5jYWJsZV9jaWRycxgLIAMoCUIMukgJkgEGuKSzsQIBEg0KBWZvcmNlGAwgASgIQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIJCgdfbGFiZWxzQh4KHF9kZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGhCGgoYX21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoQgsKCV9uYXRfdHlwZSI2ChtOZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBIksKGU5ldHdvcmtTZXJ2aWNlTGlzdFJlcXVlc3QSLgoFcXVlcnkYASABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrUXVlcnkihgEKKE5ldHdvcmtTZXJ2aWNlTGlzdEV4dGVybmFsTWVtYmVyc1JlcXVlc3QSHAoHbmV0d29yaxgBIAEoCUILukgIcgbAs66xAgESPAoFcXVlcnkYAiABKAsyLS5tZXRhbHN0YWNrLmFwaS52Mi5FeHRlcm5hbE5ldHdvcmtNZW1iZXJRdWVyeSKCAQonTmV0d29ya1NlcnZpY2VBZGRFeHRlcm5hbE1lbWJlcnNSZXF1ZXN0EhwKB25ldHdvcmsYASABKAlCC7pICHIGwLOusQIBEhkKBHJhY2sYAiABKAlCC7pICHIGwLOusQIBEh4KBXBvcnRzGAMgAygJQg+6SAySAQnQpLOxAgEQgBAihQEKKk5ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzUmVxdWVzdBIcCgduZXR3b3JrGAEgASgJQgu6SAhyBsCzrrECARIZCgRyYWNrGAIgASgJQgu6SAhyBsCzrrECARIeCgVwb3J0cxgDIAMoCUIPukgMkgEJ0KSzsQIBEIAQIksKHE5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsiSwocTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJLChxOZXR3b3JrU2VydmljZURlbGV0ZVJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrIkoKGk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayKTAQopTmV0d29ya1NlcnZpY2VMaXN0RXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsSOQoHbWVtYmVycxgCIAMoCzIoLm1ldGFsc3RhY2suYXBpLnYyLkV4dGVybmFsTmV0d29ya01lbWJlciKSAQooTmV0d29ya1NlcnZpY2VBZGRFeHRlcm5hbE1lbWJlcnNSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yaxI5CgdtZW1iZXJzGAIgAygLMigubWV0YWxzdGFjay5hcGkudjIuRXh0ZXJuYWxOZXR3b3JrTWVtYmVyIpUBCitOZXR3b3JrU2VydmljZVJlbW92ZUV4dGVybmFsTWVtYmVyc1Jlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrEjkKB21lbWJlcnMYAiADKAsyKC5tZXRhbHN0YWNrLmFwaS52Mi5FeHRlcm5hbE5ldHdvcmtNZW1iZXIyzwgKDk5ldHdvcmtTZXJ2aWNlEnAKA0dldBItLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VHZXRSZXF1ZXN0Gi4ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUdldFJlc3BvbnNlIgrS8xgCAQLg8xgCEngKBkNyZWF0ZRIwLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VDcmVhdGVSZXF1ZXN0GjEubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUNyZWF0ZVJlc3BvbnNlIgnS8xgBAeDzGAESeAoGVXBkYXRlEjAubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZVVwZGF0ZVJlcXVlc3QaMS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlVXBkYXRlUmVzcG9uc2UiCdLzGAEB4PMYARJ4CgZEZWxldGUSMC5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVxdWVzdBoxLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VEZWxldGVSZXNwb25zZSIJ0vMYAQHg8xgBEnMKBExpc3QSLi5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdFJlcXVlc3QaLy5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlIgrS8xgCAQLg8xgCEqABChNMaXN0RXh0ZXJuYWxNZW1iZXJzEj0ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUxpc3RFeHRlcm5hbE1lbWJlcnNSZXF1ZXN0Gj4ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUxpc3RFeHRlcm5hbE1lbWJlcnNSZXNwb25zZSIK0vMYAgEC4PMYAhKcAQoSQWRkRXh0ZXJuYWxNZW1iZXJzEjwubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUFkZEV4dGVybmFsTWVtYmVyc1JlcXVlc3QaPS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlQWRkRXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2UiCdLzGAEB4PMYARKlAQoVUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzEj8ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZVJlbW92ZUV4dGVybmFsTWVtYmVyc1JlcXVlc3QaQC5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlUmVtb3ZlRXh0ZXJuYWxNZW1iZXJzUmVzcG9uc2UiCdLzGAEB4PMYAULQAQoXY29tLm1ldGFsc3RhY2suYWRtaW4udjJCDE5ldHdvcmtQcm90b1ABWjlnaXRodWIuY29tL21ldGFsLXN0YWNrL2FwaS9nby9tZXRhbHN0YWNrL2FkbWluL3YyO2FkbWludjKiAgNNQViqAhNNZXRhbHN0YWNrLkFkbWluLlYyygITTWV0YWxzdGFja1xBZG1pblxWMuICH01ldGFsc3RhY2tcQWRtaW5cVjJcR1BCTWV0YWRhdGHqAhVNZXRhbHN0YWNrOjpBZG1pbjo6VjJiBnByb3RvMw", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_network, file_metalstack_api_v2_predefined_rules]); + fileDesc("CiFtZXRhbHN0YWNrL2FkbWluL3YyL25ldHdvcmsucHJvdG8SE21ldGFsc3RhY2suYWRtaW4udjIiMwoYTmV0d29ya1NlcnZpY2VHZXRSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECASJIChlOZXR3b3JrU2VydmljZUdldFJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrItAHChtOZXR3b3JrU2VydmljZUNyZWF0ZVJlcXVlc3QSHAoCaWQYASABKAlCC7pICHIGwLOusQIBSACIAQESHgoEbmFtZRgCIAEoCUILukgIcgbAs66xAgFIAYgBARIlCgtkZXNjcmlwdGlvbhgDIAEoCUILukgIcgbIs66xAgFIAogBARIjCglwYXJ0aXRpb24YBCABKAlCC7pICHIG0LOusQIBSAOIAQESHgoHcHJvamVjdBgFIAEoCUIIukgFcgOwAQFIBIgBARI2CgR0eXBlGAYgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1R5cGVCCLpIBYIBAhABEi4KBmxhYmVscxgHIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVsc0gFiAEBEh4KCHByZWZpeGVzGAggAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCSADKAlCDLpICZIBBriks7ECARJJChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCiABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aBJFChdtaW5fY2hpbGRfcHJlZml4X2xlbmd0aBgLIAEoCzIkLm1ldGFsc3RhY2suYXBpLnYyLkNoaWxkUHJlZml4TGVuZ3RoEjsKCG5hdF90eXBlGAwgASgOMhoubWV0YWxzdGFjay5hcGkudjIuTkFUVHlwZUIIukgFggECEAFIBogBARIQCgN2cmYYDSABKA1IB4gBARIoCg5wYXJlbnRfbmV0d29yaxgOIAEoCUILukgIcgbAs66xAgFICIgBARIyChxhZGRpdGlvbmFsX2Fubm91bmNhYmxlX2NpZHJzGA8gAygJQgy6SAmSAQa4pLOxAgESOQoGbGVuZ3RoGBAgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhICYgBARJOCg5hZGRyZXNzX2ZhbWlseRgRIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgKiAEBQgUKA19pZEIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CDAoKX3BhcnRpdGlvbkIKCghfcHJvamVjdEIJCgdfbGFiZWxzQgsKCV9uYXRfdHlwZUIGCgRfdnJmQhEKD19wYXJlbnRfbmV0d29ya0IJCgdfbGVuZ3RoQhEKD19hZGRyZXNzX2ZhbWlseSLEBQobTmV0d29ya1NlcnZpY2VVcGRhdGVSZXF1ZXN0EhcKAmlkGAEgASgJQgu6SAhyBsCzrrECARI6Cgt1cGRhdGVfbWV0YRgCIAEoCzIdLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZU1ldGFCBrpIA8gBARIeCgRuYW1lGAMgASgJQgu6SAhyBsCzrrECAUgAiAEBEiUKC2Rlc2NyaXB0aW9uGAQgASgJQgu6SAhyBsizrrECAUgBiAEBEjQKBmxhYmVscxgFIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZUxhYmVsc0gCiAEBEh4KCHByZWZpeGVzGAYgAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYByADKAlCDLpICZIBBriks7ECARJOChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCCABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aEgDiAEBEkoKF21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoGAkgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhIBIgBARI7CghuYXRfdHlwZRgKIAEoDjIaLm1ldGFsc3RhY2suYXBpLnYyLk5BVFR5cGVCCLpIBYIBAhABSAWIAQESMgocYWRkaXRpb25hbF9hbm5vdW5jYWJsZV9jaWRycxgLIAMoCUIMukgJkgEGuKSzsQIBEg0KBWZvcmNlGAwgASgIQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIJCgdfbGFiZWxzQh4KHF9kZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGhCGgoYX21pbl9jaGlsZF9wcmVmaXhfbGVuZ3RoQgsKCV9uYXRfdHlwZSI2ChtOZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBIksKGU5ldHdvcmtTZXJ2aWNlTGlzdFJlcXVlc3QSLgoFcXVlcnkYASABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrUXVlcnkiSwocTmV0d29ya1NlcnZpY2VDcmVhdGVSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJLChxOZXR3b3JrU2VydmljZVVwZGF0ZVJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrIksKHE5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsiSgoaTmV0d29ya1NlcnZpY2VMaXN0UmVzcG9uc2USLAoIbmV0d29ya3MYASADKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrMuUECg5OZXR3b3JrU2VydmljZRJwCgNHZXQSLS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlR2V0UmVxdWVzdBouLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VHZXRSZXNwb25zZSIK0vMYAgEC4PMYAhJ4CgZDcmVhdGUSMC5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVxdWVzdBoxLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VDcmVhdGVSZXNwb25zZSIJ0vMYAQHg8xgBEngKBlVwZGF0ZRIwLm1ldGFsc3RhY2suYWRtaW4udjIuTmV0d29ya1NlcnZpY2VVcGRhdGVSZXF1ZXN0GjEubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZVVwZGF0ZVJlc3BvbnNlIgnS8xgBAeDzGAESeAoGRGVsZXRlEjAubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QaMS5tZXRhbHN0YWNrLmFkbWluLnYyLk5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVzcG9uc2UiCdLzGAEB4PMYARJzCgRMaXN0Ei4ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUxpc3RSZXF1ZXN0Gi8ubWV0YWxzdGFjay5hZG1pbi52Mi5OZXR3b3JrU2VydmljZUxpc3RSZXNwb25zZSIK0vMYAgEC4PMYAkLQAQoXY29tLm1ldGFsc3RhY2suYWRtaW4udjJCDE5ldHdvcmtQcm90b1ABWjlnaXRodWIuY29tL21ldGFsLXN0YWNrL2FwaS9nby9tZXRhbHN0YWNrL2FkbWluL3YyO2FkbWludjKiAgNNQViqAhNNZXRhbHN0YWNrLkFkbWluLlYyygITTWV0YWxzdGFja1xBZG1pblxWMuICH01ldGFsc3RhY2tcQWRtaW5cVjJcR1BCTWV0YWRhdGHqAhVNZXRhbHN0YWNrOjpBZG1pbjo6VjJiBnByb3RvMw", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_network, file_metalstack_api_v2_predefined_rules]); /** * NetworkServiceGetRequest is the request payload for getting a network. @@ -333,104 +333,6 @@ export type NetworkServiceListRequest = Message<"metalstack.admin.v2.NetworkServ export const NetworkServiceListRequestSchema: GenMessage = /*@__PURE__*/ messageDesc(file_metalstack_admin_v2_network, 5); -/** - * NetworkServiceListExternalMembersRequest is the request payload for listing external members of a network. - * - * @generated from message metalstack.admin.v2.NetworkServiceListExternalMembersRequest - */ -export type NetworkServiceListExternalMembersRequest = Message<"metalstack.admin.v2.NetworkServiceListExternalMembersRequest"> & { - /** - * Network to list the members for. - * - * @generated from field: string network = 1; - */ - network: string; - - /** - * Query specifies additional filters for the list request. - * - * @generated from field: metalstack.api.v2.ExternalNetworkMemberQuery query = 2; - */ - query?: ExternalNetworkMemberQuery | undefined; -}; - -/** - * Describes the message metalstack.admin.v2.NetworkServiceListExternalMembersRequest. - * Use `create(NetworkServiceListExternalMembersRequestSchema)` to create a new message. - */ -export const NetworkServiceListExternalMembersRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_metalstack_admin_v2_network, 6); - -/** - * NetworkServiceAddExternalMemberRequest is the request payload for adding an external member to a network. - * - * @generated from message metalstack.admin.v2.NetworkServiceAddExternalMembersRequest - */ -export type NetworkServiceAddExternalMembersRequest = Message<"metalstack.admin.v2.NetworkServiceAddExternalMembersRequest"> & { - /** - * Network to add the member to. - * - * @generated from field: string network = 1; - */ - network: string; - - /** - * Rack the members are connected to. - * - * @generated from field: string rack = 2; - */ - 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. - * Use `create(NetworkServiceAddExternalMembersRequestSchema)` to create a new message. - */ -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.NetworkServiceRemoveExternalMembersRequest - */ -export type NetworkServiceRemoveExternalMembersRequest = Message<"metalstack.admin.v2.NetworkServiceRemoveExternalMembersRequest"> & { - /** - * Network to remove the member from. - * - * @generated from field: string network = 1; - */ - network: string; - - /** - * 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 string ports = 3; - */ - ports: string[]; -}; - -/** - * Describes the message metalstack.admin.v2.NetworkServiceRemoveExternalMembersRequest. - * Use `create(NetworkServiceRemoveExternalMembersRequestSchema)` to create a new message. - */ -export const NetworkServiceRemoveExternalMembersRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_metalstack_admin_v2_network, 8); - /** * NetworkServiceCreateResponse is the response payload for creating a network. * @@ -450,7 +352,7 @@ export type NetworkServiceCreateResponse = Message<"metalstack.admin.v2.NetworkS * Use `create(NetworkServiceCreateResponseSchema)` to create a new message. */ export const NetworkServiceCreateResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_metalstack_admin_v2_network, 9); + messageDesc(file_metalstack_admin_v2_network, 6); /** * NetworkServiceUpdateResponse is the response payload for updating a network. @@ -471,7 +373,7 @@ export type NetworkServiceUpdateResponse = Message<"metalstack.admin.v2.NetworkS * Use `create(NetworkServiceUpdateResponseSchema)` to create a new message. */ export const NetworkServiceUpdateResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_metalstack_admin_v2_network, 10); + messageDesc(file_metalstack_admin_v2_network, 7); /** * NetworkServiceDeleteResponse is the response payload for deleting a network. @@ -492,7 +394,7 @@ export type NetworkServiceDeleteResponse = Message<"metalstack.admin.v2.NetworkS * Use `create(NetworkServiceDeleteResponseSchema)` to create a new message. */ export const NetworkServiceDeleteResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_metalstack_admin_v2_network, 11); + messageDesc(file_metalstack_admin_v2_network, 8); /** * NetworkServiceListResponse is the response payload for listing networks. @@ -513,91 +415,7 @@ export type NetworkServiceListResponse = Message<"metalstack.admin.v2.NetworkSer * Use `create(NetworkServiceListResponseSchema)` to create a new message. */ export const NetworkServiceListResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_metalstack_admin_v2_network, 12); - -/** - * NetworkServiceListExternalMembersResponse is the response payload for listing external members of a network. - * - * @generated from message metalstack.admin.v2.NetworkServiceListExternalMembersResponse - */ -export type NetworkServiceListExternalMembersResponse = Message<"metalstack.admin.v2.NetworkServiceListExternalMembersResponse"> & { - /** - * Network whose members are queried. - * - * @generated from field: metalstack.api.v2.Network network = 1; - */ - network?: Network | undefined; - - /** - * Members are the queried external members of the network. - * - * @generated from field: repeated metalstack.api.v2.ExternalNetworkMember members = 2; - */ - members: ExternalNetworkMember[]; -}; - -/** - * Describes the message metalstack.admin.v2.NetworkServiceListExternalMembersResponse. - * Use `create(NetworkServiceListExternalMembersResponseSchema)` to create a new message. - */ -export const NetworkServiceListExternalMembersResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_metalstack_admin_v2_network, 13); - -/** - * NetworkServiceAddExternalMemberResponse is the response payload for adding an external member to a network. - * - * @generated from message metalstack.admin.v2.NetworkServiceAddExternalMembersResponse - */ -export type NetworkServiceAddExternalMembersResponse = Message<"metalstack.admin.v2.NetworkServiceAddExternalMembersResponse"> & { - /** - * Network the members were added to. - * - * @generated from field: metalstack.api.v2.Network network = 1; - */ - network?: Network | undefined; - - /** - * Members are the updated external members of the network. - * - * @generated from field: repeated metalstack.api.v2.ExternalNetworkMember members = 2; - */ - members: ExternalNetworkMember[]; -}; - -/** - * Describes the message metalstack.admin.v2.NetworkServiceAddExternalMembersResponse. - * Use `create(NetworkServiceAddExternalMembersResponseSchema)` to create a new message. - */ -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.NetworkServiceRemoveExternalMembersResponse - */ -export type NetworkServiceRemoveExternalMembersResponse = Message<"metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse"> & { - /** - * Network the members were removed from. - * - * @generated from field: metalstack.api.v2.Network network = 1; - */ - network?: Network | undefined; - - /** - * Members are the updated external members of the network. - * - * @generated from field: repeated metalstack.api.v2.ExternalNetworkMember members = 2; - */ - members: ExternalNetworkMember[]; -}; - -/** - * Describes the message metalstack.admin.v2.NetworkServiceRemoveExternalMembersResponse. - * Use `create(NetworkServiceRemoveExternalMembersResponseSchema)` to create a new message. - */ -export const NetworkServiceRemoveExternalMembersResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_metalstack_admin_v2_network, 15); + messageDesc(file_metalstack_admin_v2_network, 9); /** * NetworkService provides network management operations. @@ -655,36 +473,6 @@ export const NetworkService: GenService<{ input: typeof NetworkServiceListRequestSchema; output: typeof NetworkServiceListResponseSchema; }, - /** - * Lists external members of a network. - * - * @generated from rpc metalstack.admin.v2.NetworkService.ListExternalMembers - */ - listExternalMembers: { - methodKind: "unary"; - input: typeof NetworkServiceListExternalMembersRequestSchema; - output: typeof NetworkServiceListExternalMembersResponseSchema; - }, - /** - * Adds an external member to a network. - * - * @generated from rpc metalstack.admin.v2.NetworkService.AddExternalMembers - */ - addExternalMembers: { - methodKind: "unary"; - input: typeof NetworkServiceAddExternalMembersRequestSchema; - output: typeof NetworkServiceAddExternalMembersResponseSchema; - }, - /** - * Removes an external member from a network. - * - * @generated from rpc metalstack.admin.v2.NetworkService.RemoveExternalMembers - */ - removeExternalMembers: { - methodKind: "unary"; - input: typeof NetworkServiceRemoveExternalMembersRequestSchema; - output: typeof NetworkServiceRemoveExternalMembersResponseSchema; - }, }> = /*@__PURE__*/ serviceDesc(file_metalstack_admin_v2_network, 0); diff --git a/js/metalstack/admin/v2/switch_pb.d.ts b/js/metalstack/admin/v2/switch_pb.d.ts index 34306cf1..034652ce 100644 --- a/js/metalstack/admin/v2/switch_pb.d.ts +++ b/js/metalstack/admin/v2/switch_pb.d.ts @@ -402,7 +402,7 @@ export declare const SwitchService: GenService<{ output: typeof SwitchServiceMigrateResponseSchema; }; /** - * Sets the port status of a switch port. + * Sets the port config of a switch port. * * @generated from rpc metalstack.admin.v2.SwitchService.Port */ diff --git a/js/metalstack/admin/v2/switch_pb.ts b/js/metalstack/admin/v2/switch_pb.ts index 4948faa9..d97f39f7 100644 --- a/js/metalstack/admin/v2/switch_pb.ts +++ b/js/metalstack/admin/v2/switch_pb.ts @@ -472,7 +472,7 @@ export const SwitchService: GenService<{ output: typeof SwitchServiceMigrateResponseSchema; }, /** - * Sets the port status of a switch port. + * Sets the port config of a switch port. * * @generated from rpc metalstack.admin.v2.SwitchService.Port */ diff --git a/js/metalstack/api/v2/network_pb.d.ts b/js/metalstack/api/v2/network_pb.d.ts index df5c4ac0..6e5497e0 100644 --- a/js/metalstack/api/v2/network_pb.d.ts +++ b/js/metalstack/api/v2/network_pb.d.ts @@ -528,36 +528,6 @@ export type NetworkQuery = Message<"metalstack.api.v2.NetworkQuery"> & { * Use `create(NetworkQuerySchema)` to create a new message. */ export declare const NetworkQuerySchema: GenMessage; -/** - * ExternalNetworkMemberQuery defines which filters to apply when looking up external network members. - * - * @generated from message metalstack.api.v2.ExternalNetworkMemberQuery - */ -export type ExternalNetworkMemberQuery = Message<"metalstack.api.v2.ExternalNetworkMemberQuery"> & { - /** - * Switch whose ports are queried. - * - * @generated from field: optional string switch = 1; - */ - switch?: string | undefined; - /** - * Rack for which the members of the network are queried. - * - * @generated from field: optional string rack = 2; - */ - rack?: string | undefined; - /** - * Partition where the members of the network reside. - * - * @generated from field: optional string partition = 3; - */ - partition?: string | undefined; -}; -/** - * Describes the message metalstack.api.v2.ExternalNetworkMemberQuery. - * Use `create(ExternalNetworkMemberQuerySchema)` to create a new message. - */ -export declare const ExternalNetworkMemberQuerySchema: GenMessage; /** * ChildPrefixLength. * @@ -642,42 +612,6 @@ export type NetworkUsage = Message<"metalstack.api.v2.NetworkUsage"> & { * Use `create(NetworkUsageSchema)` to create a new message. */ export declare const NetworkUsageSchema: GenMessage; -/** - * ExternalNetworkMember contains the ports of a switch that participate in a network and are connected to machines not known to metal-stack. - * - * @generated from message metalstack.api.v2.ExternalNetworkMember - */ -export type ExternalNetworkMember = Message<"metalstack.api.v2.ExternalNetworkMember"> & { - /** - * Switch the external members are connected to. - * - * @generated from field: string switch = 1; - */ - switch: string; - /** - * Partition of the switch. - * - * @generated from field: string partition = 2; - */ - partition: string; - /** - * Rack of the switch. - * - * @generated from field: string rack = 3; - */ - rack: string; - /** - * Ports of the switch that participate in the network. - * - * @generated from field: repeated string ports = 4; - */ - ports: string[]; -}; -/** - * Describes the message metalstack.api.v2.ExternalNetworkMember. - * Use `create(ExternalNetworkMemberSchema)` to create a new message. - */ -export declare const ExternalNetworkMemberSchema: GenMessage; /** * NATType defines how and if outgoing traffic is translated. * diff --git a/js/metalstack/api/v2/network_pb.js b/js/metalstack/api/v2/network_pb.js index 2f288c92..695da36b 100644 --- a/js/metalstack/api/v2/network_pb.js +++ b/js/metalstack/api/v2/network_pb.js @@ -8,7 +8,7 @@ import { file_metalstack_api_v2_predefined_rules } from "./predefined_rules_pb"; /** * Describes the file metalstack/api/v2/network.proto. */ -export const file_metalstack_api_v2_network = /*@__PURE__*/ fileDesc("Ch9tZXRhbHN0YWNrL2FwaS92Mi9uZXR3b3JrLnByb3RvEhFtZXRhbHN0YWNrLmFwaS52MiJRChhOZXR3b3JrU2VydmljZUdldFJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEhwKB3Byb2plY3QYAiABKAlCC7pICNgBAXIDsAEBIkgKGU5ldHdvcmtTZXJ2aWNlR2V0UmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsi3AMKG05ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABARIeCgRuYW1lGAIgASgJQgu6SAhyBsCzrrECAUgAiAEBEiUKC2Rlc2NyaXB0aW9uGAMgASgJQgu6SAhyBsizrrECAUgBiAEBEiMKCXBhcnRpdGlvbhgEIAEoCUILukgIcgbQs66xAgFIAogBARIpCgZsYWJlbHMYBSABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5MYWJlbHMSKAoOcGFyZW50X25ldHdvcmsYBiABKAlCC7pICHIGwLOusQIBSAOIAQESOQoGbGVuZ3RoGAcgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhIBIgBARJOCg5hZGRyZXNzX2ZhbWlseRgIIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgFiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIMCgpfcGFydGl0aW9uQhEKD19wYXJlbnRfbmV0d29ya0IJCgdfbGVuZ3RoQhEKD19hZGRyZXNzX2ZhbWlseSJLChxOZXR3b3JrU2VydmljZUNyZWF0ZVJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrIq4CChtOZXR3b3JrU2VydmljZVVwZGF0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEjoKC3VwZGF0ZV9tZXRhGAIgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTWV0YUIGukgDyAEBEhkKB3Byb2plY3QYAyABKAlCCLpIBXIDsAEBEh4KBG5hbWUYBCABKAlCC7pICHIGwLOusQIBSACIAQESJQoLZGVzY3JpcHRpb24YBSABKAlCC7pICHIGyLOusQIBSAGIAQESNAoGbGFiZWxzGAYgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTGFiZWxzSAKIAQFCBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQgkKB19sYWJlbHMiSwocTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJpChlOZXR3b3JrU2VydmljZUxpc3RSZXF1ZXN0EhwKB3Byb2plY3QYASABKAlCC7pICNgBAXIDsAEBEi4KBXF1ZXJ5GAIgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1F1ZXJ5IkoKGk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJ1CiVOZXR3b3JrU2VydmljZUxpc3RCYXNlTmV0d29ya3NSZXF1ZXN0EhwKB3Byb2plY3QYASABKAlCC7pICNgBAXIDsAEBEi4KBXF1ZXJ5GAIgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1F1ZXJ5IlYKJk5ldHdvcmtTZXJ2aWNlTGlzdEJhc2VOZXR3b3Jrc1Jlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJRChtOZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEhkKB3Byb2plY3QYAiABKAlCCLpIBXIDsAEBIksKHE5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsizQYKB05ldHdvcmsSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEiUKBG1ldGEYAiABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhEh4KBG5hbWUYAyABKAlCC7pICHIGwLOusQIBSACIAQESJQoLZGVzY3JpcHRpb24YBCABKAlCC7pICHIGyLOusQIBSAGIAQESIwoJcGFydGl0aW9uGAUgASgJQgu6SAhyBtCzrrECAUgCiAEBEh4KB3Byb2plY3QYBiABKAlCCLpIBXIDsAEBSAOIAQESIAoJbmFtZXNwYWNlGAcgASgJQgi6SAVyA7ABAUgEiAEBEh4KCHByZWZpeGVzGAggAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCSADKAlCDLpICZIBBriks7ECARJJChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCiABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aBJFChdtaW5fY2hpbGRfcHJlZml4X2xlbmd0aBgLIAEoCzIkLm1ldGFsc3RhY2suYXBpLnYyLkNoaWxkUHJlZml4TGVuZ3RoEjYKBHR5cGUYDCABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrVHlwZUIIukgFggECEAESNgoIbmF0X3R5cGUYDSABKA4yGi5tZXRhbHN0YWNrLmFwaS52Mi5OQVRUeXBlQgi6SAWCAQIQARIQCgN2cmYYDiABKA1IBYgBARIoCg5wYXJlbnRfbmV0d29yaxgPIAEoCUILukgIcgbAs66xAgFIBogBARIyChxhZGRpdGlvbmFsX2Fubm91bmNhYmxlX2NpZHJzGBAgAygJQgy6SAmSAQa4pLOxAgESOgoLY29uc3VtcHRpb24YESABKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrQ29uc3VtcHRpb25CBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQgwKCl9wYXJ0aXRpb25CCgoIX3Byb2plY3RCDAoKX25hbWVzcGFjZUIGCgRfdnJmQhEKD19wYXJlbnRfbmV0d29yayLzBQoMTmV0d29ya1F1ZXJ5EhwKAmlkGAEgASgJQgu6SAhyBsCzrrECAUgAiAEBEh4KBG5hbWUYAiABKAlCC7pICHIGwLOusQIBSAGIAQESJQoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBSAKIAQESIwoJcGFydGl0aW9uGAQgASgJQgu6SAhyBtCzrrECAUgDiAEBEh4KB3Byb2plY3QYBSABKAlCCLpIBXIDsAEBSASIAQESIAoJbmFtZXNwYWNlGAYgASgJQgi6SAVyA7ABAUgFiAEBEh4KCHByZWZpeGVzGAcgAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCCADKAlCDLpICZIBBriks7ECARIQCgN2cmYYCSABKA1IBogBARIoCg5wYXJlbnRfbmV0d29yaxgKIAEoCUILukgIcgbAs66xAgFIB4gBARJOCg5hZGRyZXNzX2ZhbWlseRgLIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgIiAEBEjsKBHR5cGUYDCABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrVHlwZUIIukgFggECEAFICYgBARI7CghuYXRfdHlwZRgNIAEoDjIaLm1ldGFsc3RhY2suYXBpLnYyLk5BVFR5cGVCCLpIBYIBAhABSAqIAQESLgoGbGFiZWxzGA4gASgLMhkubWV0YWxzdGFjay5hcGkudjIuTGFiZWxzSAuIAQFCBQoDX2lkQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIMCgpfcGFydGl0aW9uQgoKCF9wcm9qZWN0QgwKCl9uYW1lc3BhY2VCBgoEX3ZyZkIRCg9fcGFyZW50X25ldHdvcmtCEQoPX2FkZHJlc3NfZmFtaWx5QgcKBV90eXBlQgsKCV9uYXRfdHlwZUIJCgdfbGFiZWxzIqcBChpFeHRlcm5hbE5ldHdvcmtNZW1iZXJRdWVyeRIiCgZzd2l0Y2gYASABKAlCDbpICnIIwLOusQIBaAFIAIgBARIeCgRyYWNrGAIgASgJQgu6SAhyBsCzrrECAUgBiAEBEiMKCXBhcnRpdGlvbhgDIAEoCUILukgIcgbQs66xAgFIAogBAUIJCgdfc3dpdGNoQgcKBV9yYWNrQgwKCl9wYXJ0aXRpb24iYgoRQ2hpbGRQcmVmaXhMZW5ndGgSHAoEaXB2NBgBIAEoDUIJukgGKgQYICAASACIAQESHQoEaXB2NhgCIAEoDUIKukgHKgUYgAEgAEgBiAEBQgcKBV9pcHY0QgcKBV9pcHY2InIKEk5ldHdvcmtDb25zdW1wdGlvbhItCgRpcHY0GAEgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1VzYWdlEi0KBGlwdjYYAiABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrVXNhZ2UiagoMTmV0d29ya1VzYWdlEhUKDWF2YWlsYWJsZV9pcHMYASABKAQSEAoIdXNlZF9pcHMYAiABKAQSGgoSYXZhaWxhYmxlX3ByZWZpeGVzGAMgASgEEhUKDXVzZWRfcHJlZml4ZXMYBCABKAQijwEKFUV4dGVybmFsTmV0d29ya01lbWJlchIbCgZzd2l0Y2gYASABKAlCC7pICHIGwLOusQIBEh4KCXBhcnRpdGlvbhgCIAEoCUILukgIcgbQs66xAgESGQoEcmFjaxgDIAEoCUILukgIcgbAs66xAgESHgoFcG9ydHMYBCADKAlCD7pIDJIBCdCks7ECARCAECptCgdOQVRUeXBlEhgKFE5BVF9UWVBFX1VOU1BFQ0lGSUVEEAASGwoNTkFUX1RZUEVfTk9ORRABGgiCshkEbm9uZRIrChhOQVRfVFlQRV9JUFY0X01BU1FVRVJBREUQAhoNgrIZCWlwdjQtbWFzcSqtAgoLTmV0d29ya1R5cGUSHAoYTkVUV09SS19UWVBFX1VOU1BFQ0lGSUVEEAASJwoVTkVUV09SS19UWVBFX0VYVEVSTkFMEAEaDIKyGQhleHRlcm5hbBInChVORVRXT1JLX1RZUEVfVU5ERVJMQVkQAhoMgrIZCHVuZGVybGF5EiEKEk5FVFdPUktfVFlQRV9TVVBFUhADGgmCshkFc3VwZXISNwodTkVUV09SS19UWVBFX1NVUEVSX05BTUVTUEFDRUQQBBoUgrIZEHN1cGVyLW5hbWVzcGFjZWQSIQoSTkVUV09SS19UWVBFX0NISUxEEAUaCYKyGQVjaGlsZBIvChlORVRXT1JLX1RZUEVfQ0hJTERfU0hBUkVEEAYaEIKyGQxjaGlsZC1zaGFyZWQqxwEKFE5ldHdvcmtBZGRyZXNzRmFtaWx5EiYKIk5FVFdPUktfQUREUkVTU19GQU1JTFlfVU5TUEVDSUZJRUQQABInChlORVRXT1JLX0FERFJFU1NfRkFNSUxZX1Y0EAEaCIKyGQRpcHY0EicKGU5FVFdPUktfQUREUkVTU19GQU1JTFlfVjYQAhoIgrIZBGlwdjYSNQohTkVUV09SS19BRERSRVNTX0ZBTUlMWV9EVUFMX1NUQUNLEAMaDoKyGQpkdWFsLXN0YWNrMu0FCg5OZXR3b3JrU2VydmljZRJtCgNHZXQSKy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUdldFJlcXVlc3QaLC5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUdldFJlc3BvbnNlIgvK8xgDAQID4PMYAhJ1CgZDcmVhdGUSLi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUNyZWF0ZVJlcXVlc3QaLy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUNyZWF0ZVJlc3BvbnNlIgrK8xgCAQLg8xgBEnUKBlVwZGF0ZRIuLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlVXBkYXRlUmVxdWVzdBovLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlVXBkYXRlUmVzcG9uc2UiCsrzGAIBAuDzGAEScAoETGlzdBIsLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdFJlcXVlc3QaLS5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUxpc3RSZXNwb25zZSILyvMYAwECA+DzGAISlAEKEExpc3RCYXNlTmV0d29ya3MSOC5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUxpc3RCYXNlTmV0d29ya3NSZXF1ZXN0GjkubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VMaXN0QmFzZU5ldHdvcmtzUmVzcG9uc2UiC8rzGAMBAgPg8xgCEnUKBkRlbGV0ZRIuLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVxdWVzdBovLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVzcG9uc2UiCsrzGAIBAuDzGAFCwgEKFWNvbS5tZXRhbHN0YWNrLmFwaS52MkIMTmV0d29ya1Byb3RvUAFaNWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYXBpL3YyO2FwaXYyogIDTUFYqgIRTWV0YWxzdGFjay5BcGkuVjLKAhFNZXRhbHN0YWNrXEFwaVxWMuICHU1ldGFsc3RhY2tcQXBpXFYyXEdQQk1ldGFkYXRh6gITTWV0YWxzdGFjazo6QXBpOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules]); +export const file_metalstack_api_v2_network = /*@__PURE__*/ fileDesc("Ch9tZXRhbHN0YWNrL2FwaS92Mi9uZXR3b3JrLnByb3RvEhFtZXRhbHN0YWNrLmFwaS52MiJRChhOZXR3b3JrU2VydmljZUdldFJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEhwKB3Byb2plY3QYAiABKAlCC7pICNgBAXIDsAEBIkgKGU5ldHdvcmtTZXJ2aWNlR2V0UmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsi3AMKG05ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABARIeCgRuYW1lGAIgASgJQgu6SAhyBsCzrrECAUgAiAEBEiUKC2Rlc2NyaXB0aW9uGAMgASgJQgu6SAhyBsizrrECAUgBiAEBEiMKCXBhcnRpdGlvbhgEIAEoCUILukgIcgbQs66xAgFIAogBARIpCgZsYWJlbHMYBSABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5MYWJlbHMSKAoOcGFyZW50X25ldHdvcmsYBiABKAlCC7pICHIGwLOusQIBSAOIAQESOQoGbGVuZ3RoGAcgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhIBIgBARJOCg5hZGRyZXNzX2ZhbWlseRgIIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgFiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIMCgpfcGFydGl0aW9uQhEKD19wYXJlbnRfbmV0d29ya0IJCgdfbGVuZ3RoQhEKD19hZGRyZXNzX2ZhbWlseSJLChxOZXR3b3JrU2VydmljZUNyZWF0ZVJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrIq4CChtOZXR3b3JrU2VydmljZVVwZGF0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEjoKC3VwZGF0ZV9tZXRhGAIgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTWV0YUIGukgDyAEBEhkKB3Byb2plY3QYAyABKAlCCLpIBXIDsAEBEh4KBG5hbWUYBCABKAlCC7pICHIGwLOusQIBSACIAQESJQoLZGVzY3JpcHRpb24YBSABKAlCC7pICHIGyLOusQIBSAGIAQESNAoGbGFiZWxzGAYgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTGFiZWxzSAKIAQFCBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQgkKB19sYWJlbHMiSwocTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJpChlOZXR3b3JrU2VydmljZUxpc3RSZXF1ZXN0EhwKB3Byb2plY3QYASABKAlCC7pICNgBAXIDsAEBEi4KBXF1ZXJ5GAIgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1F1ZXJ5IkoKGk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJ1CiVOZXR3b3JrU2VydmljZUxpc3RCYXNlTmV0d29ya3NSZXF1ZXN0EhwKB3Byb2plY3QYASABKAlCC7pICNgBAXIDsAEBEi4KBXF1ZXJ5GAIgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1F1ZXJ5IlYKJk5ldHdvcmtTZXJ2aWNlTGlzdEJhc2VOZXR3b3Jrc1Jlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJRChtOZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEhkKB3Byb2plY3QYAiABKAlCCLpIBXIDsAEBIksKHE5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsizQYKB05ldHdvcmsSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEiUKBG1ldGEYAiABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhEh4KBG5hbWUYAyABKAlCC7pICHIGwLOusQIBSACIAQESJQoLZGVzY3JpcHRpb24YBCABKAlCC7pICHIGyLOusQIBSAGIAQESIwoJcGFydGl0aW9uGAUgASgJQgu6SAhyBtCzrrECAUgCiAEBEh4KB3Byb2plY3QYBiABKAlCCLpIBXIDsAEBSAOIAQESIAoJbmFtZXNwYWNlGAcgASgJQgi6SAVyA7ABAUgEiAEBEh4KCHByZWZpeGVzGAggAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCSADKAlCDLpICZIBBriks7ECARJJChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCiABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aBJFChdtaW5fY2hpbGRfcHJlZml4X2xlbmd0aBgLIAEoCzIkLm1ldGFsc3RhY2suYXBpLnYyLkNoaWxkUHJlZml4TGVuZ3RoEjYKBHR5cGUYDCABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrVHlwZUIIukgFggECEAESNgoIbmF0X3R5cGUYDSABKA4yGi5tZXRhbHN0YWNrLmFwaS52Mi5OQVRUeXBlQgi6SAWCAQIQARIQCgN2cmYYDiABKA1IBYgBARIoCg5wYXJlbnRfbmV0d29yaxgPIAEoCUILukgIcgbAs66xAgFIBogBARIyChxhZGRpdGlvbmFsX2Fubm91bmNhYmxlX2NpZHJzGBAgAygJQgy6SAmSAQa4pLOxAgESOgoLY29uc3VtcHRpb24YESABKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrQ29uc3VtcHRpb25CBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQgwKCl9wYXJ0aXRpb25CCgoIX3Byb2plY3RCDAoKX25hbWVzcGFjZUIGCgRfdnJmQhEKD19wYXJlbnRfbmV0d29yayLzBQoMTmV0d29ya1F1ZXJ5EhwKAmlkGAEgASgJQgu6SAhyBsCzrrECAUgAiAEBEh4KBG5hbWUYAiABKAlCC7pICHIGwLOusQIBSAGIAQESJQoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBSAKIAQESIwoJcGFydGl0aW9uGAQgASgJQgu6SAhyBtCzrrECAUgDiAEBEh4KB3Byb2plY3QYBSABKAlCCLpIBXIDsAEBSASIAQESIAoJbmFtZXNwYWNlGAYgASgJQgi6SAVyA7ABAUgFiAEBEh4KCHByZWZpeGVzGAcgAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCCADKAlCDLpICZIBBriks7ECARIQCgN2cmYYCSABKA1IBogBARIoCg5wYXJlbnRfbmV0d29yaxgKIAEoCUILukgIcgbAs66xAgFIB4gBARJOCg5hZGRyZXNzX2ZhbWlseRgLIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgIiAEBEjsKBHR5cGUYDCABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrVHlwZUIIukgFggECEAFICYgBARI7CghuYXRfdHlwZRgNIAEoDjIaLm1ldGFsc3RhY2suYXBpLnYyLk5BVFR5cGVCCLpIBYIBAhABSAqIAQESLgoGbGFiZWxzGA4gASgLMhkubWV0YWxzdGFjay5hcGkudjIuTGFiZWxzSAuIAQFCBQoDX2lkQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIMCgpfcGFydGl0aW9uQgoKCF9wcm9qZWN0QgwKCl9uYW1lc3BhY2VCBgoEX3ZyZkIRCg9fcGFyZW50X25ldHdvcmtCEQoPX2FkZHJlc3NfZmFtaWx5QgcKBV90eXBlQgsKCV9uYXRfdHlwZUIJCgdfbGFiZWxzImIKEUNoaWxkUHJlZml4TGVuZ3RoEhwKBGlwdjQYASABKA1CCbpIBioEGCAgAEgAiAEBEh0KBGlwdjYYAiABKA1CCrpIByoFGIABIABIAYgBAUIHCgVfaXB2NEIHCgVfaXB2NiJyChJOZXR3b3JrQ29uc3VtcHRpb24SLQoEaXB2NBgBIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtVc2FnZRItCgRpcHY2GAIgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1VzYWdlImoKDE5ldHdvcmtVc2FnZRIVCg1hdmFpbGFibGVfaXBzGAEgASgEEhAKCHVzZWRfaXBzGAIgASgEEhoKEmF2YWlsYWJsZV9wcmVmaXhlcxgDIAEoBBIVCg11c2VkX3ByZWZpeGVzGAQgASgEKm0KB05BVFR5cGUSGAoUTkFUX1RZUEVfVU5TUEVDSUZJRUQQABIbCg1OQVRfVFlQRV9OT05FEAEaCIKyGQRub25lEisKGE5BVF9UWVBFX0lQVjRfTUFTUVVFUkFERRACGg2CshkJaXB2NC1tYXNxKq0CCgtOZXR3b3JrVHlwZRIcChhORVRXT1JLX1RZUEVfVU5TUEVDSUZJRUQQABInChVORVRXT1JLX1RZUEVfRVhURVJOQUwQARoMgrIZCGV4dGVybmFsEicKFU5FVFdPUktfVFlQRV9VTkRFUkxBWRACGgyCshkIdW5kZXJsYXkSIQoSTkVUV09SS19UWVBFX1NVUEVSEAMaCYKyGQVzdXBlchI3Ch1ORVRXT1JLX1RZUEVfU1VQRVJfTkFNRVNQQUNFRBAEGhSCshkQc3VwZXItbmFtZXNwYWNlZBIhChJORVRXT1JLX1RZUEVfQ0hJTEQQBRoJgrIZBWNoaWxkEi8KGU5FVFdPUktfVFlQRV9DSElMRF9TSEFSRUQQBhoQgrIZDGNoaWxkLXNoYXJlZCrHAQoUTmV0d29ya0FkZHJlc3NGYW1pbHkSJgoiTkVUV09SS19BRERSRVNTX0ZBTUlMWV9VTlNQRUNJRklFRBAAEicKGU5FVFdPUktfQUREUkVTU19GQU1JTFlfVjQQARoIgrIZBGlwdjQSJwoZTkVUV09SS19BRERSRVNTX0ZBTUlMWV9WNhACGgiCshkEaXB2NhI1CiFORVRXT1JLX0FERFJFU1NfRkFNSUxZX0RVQUxfU1RBQ0sQAxoOgrIZCmR1YWwtc3RhY2sy7QUKDk5ldHdvcmtTZXJ2aWNlEm0KA0dldBIrLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlR2V0UmVxdWVzdBosLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlR2V0UmVzcG9uc2UiC8rzGAMBAgPg8xgCEnUKBkNyZWF0ZRIuLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVxdWVzdBovLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVzcG9uc2UiCsrzGAIBAuDzGAESdQoGVXBkYXRlEi4ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VVcGRhdGVSZXF1ZXN0Gi8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZSIKyvMYAgEC4PMYARJwCgRMaXN0EiwubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VMaXN0UmVxdWVzdBotLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlIgvK8xgDAQID4PMYAhKUAQoQTGlzdEJhc2VOZXR3b3JrcxI4Lm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdEJhc2VOZXR3b3Jrc1JlcXVlc3QaOS5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUxpc3RCYXNlTmV0d29ya3NSZXNwb25zZSILyvMYAwECA+DzGAISdQoGRGVsZXRlEi4ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VEZWxldGVSZXF1ZXN0Gi8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VEZWxldGVSZXNwb25zZSIKyvMYAgEC4PMYAULCAQoVY29tLm1ldGFsc3RhY2suYXBpLnYyQgxOZXR3b3JrUHJvdG9QAVo1Z2l0aHViLmNvbS9tZXRhbC1zdGFjay9hcGkvZ28vbWV0YWxzdGFjay9hcGkvdjI7YXBpdjKiAgNNQViqAhFNZXRhbHN0YWNrLkFwaS5WMsoCEU1ldGFsc3RhY2tcQXBpXFYy4gIdTWV0YWxzdGFja1xBcGlcVjJcR1BCTWV0YWRhdGHqAhNNZXRhbHN0YWNrOjpBcGk6OlYyYgZwcm90bzM", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules]); /** * Describes the message metalstack.api.v2.NetworkServiceGetRequest. * Use `create(NetworkServiceGetRequestSchema)` to create a new message. @@ -79,31 +79,21 @@ export const NetworkSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_ne * Use `create(NetworkQuerySchema)` to create a new message. */ export const NetworkQuerySchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_network, 13); -/** - * Describes the message metalstack.api.v2.ExternalNetworkMemberQuery. - * Use `create(ExternalNetworkMemberQuerySchema)` to create a new message. - */ -export const ExternalNetworkMemberQuerySchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_network, 14); /** * Describes the message metalstack.api.v2.ChildPrefixLength. * Use `create(ChildPrefixLengthSchema)` to create a new message. */ -export const ChildPrefixLengthSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_network, 15); +export const ChildPrefixLengthSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_network, 14); /** * Describes the message metalstack.api.v2.NetworkConsumption. * Use `create(NetworkConsumptionSchema)` to create a new message. */ -export const NetworkConsumptionSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_network, 16); +export const NetworkConsumptionSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_network, 15); /** * Describes the message metalstack.api.v2.NetworkUsage. * Use `create(NetworkUsageSchema)` to create a new message. */ -export const NetworkUsageSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_network, 17); -/** - * Describes the message metalstack.api.v2.ExternalNetworkMember. - * Use `create(ExternalNetworkMemberSchema)` to create a new message. - */ -export const ExternalNetworkMemberSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_network, 18); +export const NetworkUsageSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_network, 16); /** * NATType defines how and if outgoing traffic is translated. * diff --git a/js/metalstack/api/v2/network_pb.ts b/js/metalstack/api/v2/network_pb.ts index f7921afc..f4526826 100644 --- a/js/metalstack/api/v2/network_pb.ts +++ b/js/metalstack/api/v2/network_pb.ts @@ -14,7 +14,7 @@ import type { Message } from "@bufbuild/protobuf"; * Describes the file metalstack/api/v2/network.proto. */ export const file_metalstack_api_v2_network: GenFile = /*@__PURE__*/ - fileDesc("Ch9tZXRhbHN0YWNrL2FwaS92Mi9uZXR3b3JrLnByb3RvEhFtZXRhbHN0YWNrLmFwaS52MiJRChhOZXR3b3JrU2VydmljZUdldFJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEhwKB3Byb2plY3QYAiABKAlCC7pICNgBAXIDsAEBIkgKGU5ldHdvcmtTZXJ2aWNlR2V0UmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsi3AMKG05ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABARIeCgRuYW1lGAIgASgJQgu6SAhyBsCzrrECAUgAiAEBEiUKC2Rlc2NyaXB0aW9uGAMgASgJQgu6SAhyBsizrrECAUgBiAEBEiMKCXBhcnRpdGlvbhgEIAEoCUILukgIcgbQs66xAgFIAogBARIpCgZsYWJlbHMYBSABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5MYWJlbHMSKAoOcGFyZW50X25ldHdvcmsYBiABKAlCC7pICHIGwLOusQIBSAOIAQESOQoGbGVuZ3RoGAcgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhIBIgBARJOCg5hZGRyZXNzX2ZhbWlseRgIIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgFiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIMCgpfcGFydGl0aW9uQhEKD19wYXJlbnRfbmV0d29ya0IJCgdfbGVuZ3RoQhEKD19hZGRyZXNzX2ZhbWlseSJLChxOZXR3b3JrU2VydmljZUNyZWF0ZVJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrIq4CChtOZXR3b3JrU2VydmljZVVwZGF0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEjoKC3VwZGF0ZV9tZXRhGAIgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTWV0YUIGukgDyAEBEhkKB3Byb2plY3QYAyABKAlCCLpIBXIDsAEBEh4KBG5hbWUYBCABKAlCC7pICHIGwLOusQIBSACIAQESJQoLZGVzY3JpcHRpb24YBSABKAlCC7pICHIGyLOusQIBSAGIAQESNAoGbGFiZWxzGAYgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTGFiZWxzSAKIAQFCBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQgkKB19sYWJlbHMiSwocTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJpChlOZXR3b3JrU2VydmljZUxpc3RSZXF1ZXN0EhwKB3Byb2plY3QYASABKAlCC7pICNgBAXIDsAEBEi4KBXF1ZXJ5GAIgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1F1ZXJ5IkoKGk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJ1CiVOZXR3b3JrU2VydmljZUxpc3RCYXNlTmV0d29ya3NSZXF1ZXN0EhwKB3Byb2plY3QYASABKAlCC7pICNgBAXIDsAEBEi4KBXF1ZXJ5GAIgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1F1ZXJ5IlYKJk5ldHdvcmtTZXJ2aWNlTGlzdEJhc2VOZXR3b3Jrc1Jlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJRChtOZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEhkKB3Byb2plY3QYAiABKAlCCLpIBXIDsAEBIksKHE5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsizQYKB05ldHdvcmsSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEiUKBG1ldGEYAiABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhEh4KBG5hbWUYAyABKAlCC7pICHIGwLOusQIBSACIAQESJQoLZGVzY3JpcHRpb24YBCABKAlCC7pICHIGyLOusQIBSAGIAQESIwoJcGFydGl0aW9uGAUgASgJQgu6SAhyBtCzrrECAUgCiAEBEh4KB3Byb2plY3QYBiABKAlCCLpIBXIDsAEBSAOIAQESIAoJbmFtZXNwYWNlGAcgASgJQgi6SAVyA7ABAUgEiAEBEh4KCHByZWZpeGVzGAggAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCSADKAlCDLpICZIBBriks7ECARJJChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCiABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aBJFChdtaW5fY2hpbGRfcHJlZml4X2xlbmd0aBgLIAEoCzIkLm1ldGFsc3RhY2suYXBpLnYyLkNoaWxkUHJlZml4TGVuZ3RoEjYKBHR5cGUYDCABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrVHlwZUIIukgFggECEAESNgoIbmF0X3R5cGUYDSABKA4yGi5tZXRhbHN0YWNrLmFwaS52Mi5OQVRUeXBlQgi6SAWCAQIQARIQCgN2cmYYDiABKA1IBYgBARIoCg5wYXJlbnRfbmV0d29yaxgPIAEoCUILukgIcgbAs66xAgFIBogBARIyChxhZGRpdGlvbmFsX2Fubm91bmNhYmxlX2NpZHJzGBAgAygJQgy6SAmSAQa4pLOxAgESOgoLY29uc3VtcHRpb24YESABKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrQ29uc3VtcHRpb25CBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQgwKCl9wYXJ0aXRpb25CCgoIX3Byb2plY3RCDAoKX25hbWVzcGFjZUIGCgRfdnJmQhEKD19wYXJlbnRfbmV0d29yayLzBQoMTmV0d29ya1F1ZXJ5EhwKAmlkGAEgASgJQgu6SAhyBsCzrrECAUgAiAEBEh4KBG5hbWUYAiABKAlCC7pICHIGwLOusQIBSAGIAQESJQoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBSAKIAQESIwoJcGFydGl0aW9uGAQgASgJQgu6SAhyBtCzrrECAUgDiAEBEh4KB3Byb2plY3QYBSABKAlCCLpIBXIDsAEBSASIAQESIAoJbmFtZXNwYWNlGAYgASgJQgi6SAVyA7ABAUgFiAEBEh4KCHByZWZpeGVzGAcgAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCCADKAlCDLpICZIBBriks7ECARIQCgN2cmYYCSABKA1IBogBARIoCg5wYXJlbnRfbmV0d29yaxgKIAEoCUILukgIcgbAs66xAgFIB4gBARJOCg5hZGRyZXNzX2ZhbWlseRgLIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgIiAEBEjsKBHR5cGUYDCABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrVHlwZUIIukgFggECEAFICYgBARI7CghuYXRfdHlwZRgNIAEoDjIaLm1ldGFsc3RhY2suYXBpLnYyLk5BVFR5cGVCCLpIBYIBAhABSAqIAQESLgoGbGFiZWxzGA4gASgLMhkubWV0YWxzdGFjay5hcGkudjIuTGFiZWxzSAuIAQFCBQoDX2lkQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIMCgpfcGFydGl0aW9uQgoKCF9wcm9qZWN0QgwKCl9uYW1lc3BhY2VCBgoEX3ZyZkIRCg9fcGFyZW50X25ldHdvcmtCEQoPX2FkZHJlc3NfZmFtaWx5QgcKBV90eXBlQgsKCV9uYXRfdHlwZUIJCgdfbGFiZWxzIqcBChpFeHRlcm5hbE5ldHdvcmtNZW1iZXJRdWVyeRIiCgZzd2l0Y2gYASABKAlCDbpICnIIwLOusQIBaAFIAIgBARIeCgRyYWNrGAIgASgJQgu6SAhyBsCzrrECAUgBiAEBEiMKCXBhcnRpdGlvbhgDIAEoCUILukgIcgbQs66xAgFIAogBAUIJCgdfc3dpdGNoQgcKBV9yYWNrQgwKCl9wYXJ0aXRpb24iYgoRQ2hpbGRQcmVmaXhMZW5ndGgSHAoEaXB2NBgBIAEoDUIJukgGKgQYICAASACIAQESHQoEaXB2NhgCIAEoDUIKukgHKgUYgAEgAEgBiAEBQgcKBV9pcHY0QgcKBV9pcHY2InIKEk5ldHdvcmtDb25zdW1wdGlvbhItCgRpcHY0GAEgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1VzYWdlEi0KBGlwdjYYAiABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrVXNhZ2UiagoMTmV0d29ya1VzYWdlEhUKDWF2YWlsYWJsZV9pcHMYASABKAQSEAoIdXNlZF9pcHMYAiABKAQSGgoSYXZhaWxhYmxlX3ByZWZpeGVzGAMgASgEEhUKDXVzZWRfcHJlZml4ZXMYBCABKAQijwEKFUV4dGVybmFsTmV0d29ya01lbWJlchIbCgZzd2l0Y2gYASABKAlCC7pICHIGwLOusQIBEh4KCXBhcnRpdGlvbhgCIAEoCUILukgIcgbQs66xAgESGQoEcmFjaxgDIAEoCUILukgIcgbAs66xAgESHgoFcG9ydHMYBCADKAlCD7pIDJIBCdCks7ECARCAECptCgdOQVRUeXBlEhgKFE5BVF9UWVBFX1VOU1BFQ0lGSUVEEAASGwoNTkFUX1RZUEVfTk9ORRABGgiCshkEbm9uZRIrChhOQVRfVFlQRV9JUFY0X01BU1FVRVJBREUQAhoNgrIZCWlwdjQtbWFzcSqtAgoLTmV0d29ya1R5cGUSHAoYTkVUV09SS19UWVBFX1VOU1BFQ0lGSUVEEAASJwoVTkVUV09SS19UWVBFX0VYVEVSTkFMEAEaDIKyGQhleHRlcm5hbBInChVORVRXT1JLX1RZUEVfVU5ERVJMQVkQAhoMgrIZCHVuZGVybGF5EiEKEk5FVFdPUktfVFlQRV9TVVBFUhADGgmCshkFc3VwZXISNwodTkVUV09SS19UWVBFX1NVUEVSX05BTUVTUEFDRUQQBBoUgrIZEHN1cGVyLW5hbWVzcGFjZWQSIQoSTkVUV09SS19UWVBFX0NISUxEEAUaCYKyGQVjaGlsZBIvChlORVRXT1JLX1RZUEVfQ0hJTERfU0hBUkVEEAYaEIKyGQxjaGlsZC1zaGFyZWQqxwEKFE5ldHdvcmtBZGRyZXNzRmFtaWx5EiYKIk5FVFdPUktfQUREUkVTU19GQU1JTFlfVU5TUEVDSUZJRUQQABInChlORVRXT1JLX0FERFJFU1NfRkFNSUxZX1Y0EAEaCIKyGQRpcHY0EicKGU5FVFdPUktfQUREUkVTU19GQU1JTFlfVjYQAhoIgrIZBGlwdjYSNQohTkVUV09SS19BRERSRVNTX0ZBTUlMWV9EVUFMX1NUQUNLEAMaDoKyGQpkdWFsLXN0YWNrMu0FCg5OZXR3b3JrU2VydmljZRJtCgNHZXQSKy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUdldFJlcXVlc3QaLC5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUdldFJlc3BvbnNlIgvK8xgDAQID4PMYAhJ1CgZDcmVhdGUSLi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUNyZWF0ZVJlcXVlc3QaLy5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUNyZWF0ZVJlc3BvbnNlIgrK8xgCAQLg8xgBEnUKBlVwZGF0ZRIuLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlVXBkYXRlUmVxdWVzdBovLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlVXBkYXRlUmVzcG9uc2UiCsrzGAIBAuDzGAEScAoETGlzdBIsLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdFJlcXVlc3QaLS5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUxpc3RSZXNwb25zZSILyvMYAwECA+DzGAISlAEKEExpc3RCYXNlTmV0d29ya3MSOC5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUxpc3RCYXNlTmV0d29ya3NSZXF1ZXN0GjkubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VMaXN0QmFzZU5ldHdvcmtzUmVzcG9uc2UiC8rzGAMBAgPg8xgCEnUKBkRlbGV0ZRIuLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVxdWVzdBovLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVzcG9uc2UiCsrzGAIBAuDzGAFCwgEKFWNvbS5tZXRhbHN0YWNrLmFwaS52MkIMTmV0d29ya1Byb3RvUAFaNWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYXBpL3YyO2FwaXYyogIDTUFYqgIRTWV0YWxzdGFjay5BcGkuVjLKAhFNZXRhbHN0YWNrXEFwaVxWMuICHU1ldGFsc3RhY2tcQXBpXFYyXEdQQk1ldGFkYXRh6gITTWV0YWxzdGFjazo6QXBpOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules]); + fileDesc("Ch9tZXRhbHN0YWNrL2FwaS92Mi9uZXR3b3JrLnByb3RvEhFtZXRhbHN0YWNrLmFwaS52MiJRChhOZXR3b3JrU2VydmljZUdldFJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEhwKB3Byb2plY3QYAiABKAlCC7pICNgBAXIDsAEBIkgKGU5ldHdvcmtTZXJ2aWNlR2V0UmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsi3AMKG05ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABARIeCgRuYW1lGAIgASgJQgu6SAhyBsCzrrECAUgAiAEBEiUKC2Rlc2NyaXB0aW9uGAMgASgJQgu6SAhyBsizrrECAUgBiAEBEiMKCXBhcnRpdGlvbhgEIAEoCUILukgIcgbQs66xAgFIAogBARIpCgZsYWJlbHMYBSABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5MYWJlbHMSKAoOcGFyZW50X25ldHdvcmsYBiABKAlCC7pICHIGwLOusQIBSAOIAQESOQoGbGVuZ3RoGAcgASgLMiQubWV0YWxzdGFjay5hcGkudjIuQ2hpbGRQcmVmaXhMZW5ndGhIBIgBARJOCg5hZGRyZXNzX2ZhbWlseRgIIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgFiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIMCgpfcGFydGl0aW9uQhEKD19wYXJlbnRfbmV0d29ya0IJCgdfbGVuZ3RoQhEKD19hZGRyZXNzX2ZhbWlseSJLChxOZXR3b3JrU2VydmljZUNyZWF0ZVJlc3BvbnNlEisKB25ldHdvcmsYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrIq4CChtOZXR3b3JrU2VydmljZVVwZGF0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEjoKC3VwZGF0ZV9tZXRhGAIgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTWV0YUIGukgDyAEBEhkKB3Byb2plY3QYAyABKAlCCLpIBXIDsAEBEh4KBG5hbWUYBCABKAlCC7pICHIGwLOusQIBSACIAQESJQoLZGVzY3JpcHRpb24YBSABKAlCC7pICHIGyLOusQIBSAGIAQESNAoGbGFiZWxzGAYgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTGFiZWxzSAKIAQFCBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQgkKB19sYWJlbHMiSwocTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZRIrCgduZXR3b3JrGAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJpChlOZXR3b3JrU2VydmljZUxpc3RSZXF1ZXN0EhwKB3Byb2plY3QYASABKAlCC7pICNgBAXIDsAEBEi4KBXF1ZXJ5GAIgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1F1ZXJ5IkoKGk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJ1CiVOZXR3b3JrU2VydmljZUxpc3RCYXNlTmV0d29ya3NSZXF1ZXN0EhwKB3Byb2plY3QYASABKAlCC7pICNgBAXIDsAEBEi4KBXF1ZXJ5GAIgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1F1ZXJ5IlYKJk5ldHdvcmtTZXJ2aWNlTGlzdEJhc2VOZXR3b3Jrc1Jlc3BvbnNlEiwKCG5ldHdvcmtzGAEgAygLMhoubWV0YWxzdGFjay5hcGkudjIuTmV0d29yayJRChtOZXR3b3JrU2VydmljZURlbGV0ZVJlcXVlc3QSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEhkKB3Byb2plY3QYAiABKAlCCLpIBXIDsAEBIksKHE5ldHdvcmtTZXJ2aWNlRGVsZXRlUmVzcG9uc2USKwoHbmV0d29yaxgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmsizQYKB05ldHdvcmsSFwoCaWQYASABKAlCC7pICHIGwLOusQIBEiUKBG1ldGEYAiABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhEh4KBG5hbWUYAyABKAlCC7pICHIGwLOusQIBSACIAQESJQoLZGVzY3JpcHRpb24YBCABKAlCC7pICHIGyLOusQIBSAGIAQESIwoJcGFydGl0aW9uGAUgASgJQgu6SAhyBtCzrrECAUgCiAEBEh4KB3Byb2plY3QYBiABKAlCCLpIBXIDsAEBSAOIAQESIAoJbmFtZXNwYWNlGAcgASgJQgi6SAVyA7ABAUgEiAEBEh4KCHByZWZpeGVzGAggAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCSADKAlCDLpICZIBBriks7ECARJJChtkZWZhdWx0X2NoaWxkX3ByZWZpeF9sZW5ndGgYCiABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5DaGlsZFByZWZpeExlbmd0aBJFChdtaW5fY2hpbGRfcHJlZml4X2xlbmd0aBgLIAEoCzIkLm1ldGFsc3RhY2suYXBpLnYyLkNoaWxkUHJlZml4TGVuZ3RoEjYKBHR5cGUYDCABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrVHlwZUIIukgFggECEAESNgoIbmF0X3R5cGUYDSABKA4yGi5tZXRhbHN0YWNrLmFwaS52Mi5OQVRUeXBlQgi6SAWCAQIQARIQCgN2cmYYDiABKA1IBYgBARIoCg5wYXJlbnRfbmV0d29yaxgPIAEoCUILukgIcgbAs66xAgFIBogBARIyChxhZGRpdGlvbmFsX2Fubm91bmNhYmxlX2NpZHJzGBAgAygJQgy6SAmSAQa4pLOxAgESOgoLY29uc3VtcHRpb24YESABKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrQ29uc3VtcHRpb25CBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQgwKCl9wYXJ0aXRpb25CCgoIX3Byb2plY3RCDAoKX25hbWVzcGFjZUIGCgRfdnJmQhEKD19wYXJlbnRfbmV0d29yayLzBQoMTmV0d29ya1F1ZXJ5EhwKAmlkGAEgASgJQgu6SAhyBsCzrrECAUgAiAEBEh4KBG5hbWUYAiABKAlCC7pICHIGwLOusQIBSAGIAQESJQoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBSAKIAQESIwoJcGFydGl0aW9uGAQgASgJQgu6SAhyBtCzrrECAUgDiAEBEh4KB3Byb2plY3QYBSABKAlCCLpIBXIDsAEBSASIAQESIAoJbmFtZXNwYWNlGAYgASgJQgi6SAVyA7ABAUgFiAEBEh4KCHByZWZpeGVzGAcgAygJQgy6SAmSAQa4pLOxAgESKgoUZGVzdGluYXRpb25fcHJlZml4ZXMYCCADKAlCDLpICZIBBriks7ECARIQCgN2cmYYCSABKA1IBogBARIoCg5wYXJlbnRfbmV0d29yaxgKIAEoCUILukgIcgbAs66xAgFIB4gBARJOCg5hZGRyZXNzX2ZhbWlseRgLIAEoDjInLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtBZGRyZXNzRmFtaWx5Qgi6SAWCAQIQAUgIiAEBEjsKBHR5cGUYDCABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrVHlwZUIIukgFggECEAFICYgBARI7CghuYXRfdHlwZRgNIAEoDjIaLm1ldGFsc3RhY2suYXBpLnYyLk5BVFR5cGVCCLpIBYIBAhABSAqIAQESLgoGbGFiZWxzGA4gASgLMhkubWV0YWxzdGFjay5hcGkudjIuTGFiZWxzSAuIAQFCBQoDX2lkQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIMCgpfcGFydGl0aW9uQgoKCF9wcm9qZWN0QgwKCl9uYW1lc3BhY2VCBgoEX3ZyZkIRCg9fcGFyZW50X25ldHdvcmtCEQoPX2FkZHJlc3NfZmFtaWx5QgcKBV90eXBlQgsKCV9uYXRfdHlwZUIJCgdfbGFiZWxzImIKEUNoaWxkUHJlZml4TGVuZ3RoEhwKBGlwdjQYASABKA1CCbpIBioEGCAgAEgAiAEBEh0KBGlwdjYYAiABKA1CCrpIByoFGIABIABIAYgBAUIHCgVfaXB2NEIHCgVfaXB2NiJyChJOZXR3b3JrQ29uc3VtcHRpb24SLQoEaXB2NBgBIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtVc2FnZRItCgRpcHY2GAIgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1VzYWdlImoKDE5ldHdvcmtVc2FnZRIVCg1hdmFpbGFibGVfaXBzGAEgASgEEhAKCHVzZWRfaXBzGAIgASgEEhoKEmF2YWlsYWJsZV9wcmVmaXhlcxgDIAEoBBIVCg11c2VkX3ByZWZpeGVzGAQgASgEKm0KB05BVFR5cGUSGAoUTkFUX1RZUEVfVU5TUEVDSUZJRUQQABIbCg1OQVRfVFlQRV9OT05FEAEaCIKyGQRub25lEisKGE5BVF9UWVBFX0lQVjRfTUFTUVVFUkFERRACGg2CshkJaXB2NC1tYXNxKq0CCgtOZXR3b3JrVHlwZRIcChhORVRXT1JLX1RZUEVfVU5TUEVDSUZJRUQQABInChVORVRXT1JLX1RZUEVfRVhURVJOQUwQARoMgrIZCGV4dGVybmFsEicKFU5FVFdPUktfVFlQRV9VTkRFUkxBWRACGgyCshkIdW5kZXJsYXkSIQoSTkVUV09SS19UWVBFX1NVUEVSEAMaCYKyGQVzdXBlchI3Ch1ORVRXT1JLX1RZUEVfU1VQRVJfTkFNRVNQQUNFRBAEGhSCshkQc3VwZXItbmFtZXNwYWNlZBIhChJORVRXT1JLX1RZUEVfQ0hJTEQQBRoJgrIZBWNoaWxkEi8KGU5FVFdPUktfVFlQRV9DSElMRF9TSEFSRUQQBhoQgrIZDGNoaWxkLXNoYXJlZCrHAQoUTmV0d29ya0FkZHJlc3NGYW1pbHkSJgoiTkVUV09SS19BRERSRVNTX0ZBTUlMWV9VTlNQRUNJRklFRBAAEicKGU5FVFdPUktfQUREUkVTU19GQU1JTFlfVjQQARoIgrIZBGlwdjQSJwoZTkVUV09SS19BRERSRVNTX0ZBTUlMWV9WNhACGgiCshkEaXB2NhI1CiFORVRXT1JLX0FERFJFU1NfRkFNSUxZX0RVQUxfU1RBQ0sQAxoOgrIZCmR1YWwtc3RhY2sy7QUKDk5ldHdvcmtTZXJ2aWNlEm0KA0dldBIrLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlR2V0UmVxdWVzdBosLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlR2V0UmVzcG9uc2UiC8rzGAMBAgPg8xgCEnUKBkNyZWF0ZRIuLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVxdWVzdBovLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlQ3JlYXRlUmVzcG9uc2UiCsrzGAIBAuDzGAESdQoGVXBkYXRlEi4ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VVcGRhdGVSZXF1ZXN0Gi8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VVcGRhdGVSZXNwb25zZSIKyvMYAgEC4PMYARJwCgRMaXN0EiwubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VMaXN0UmVxdWVzdBotLm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdFJlc3BvbnNlIgvK8xgDAQID4PMYAhKUAQoQTGlzdEJhc2VOZXR3b3JrcxI4Lm1ldGFsc3RhY2suYXBpLnYyLk5ldHdvcmtTZXJ2aWNlTGlzdEJhc2VOZXR3b3Jrc1JlcXVlc3QaOS5tZXRhbHN0YWNrLmFwaS52Mi5OZXR3b3JrU2VydmljZUxpc3RCYXNlTmV0d29ya3NSZXNwb25zZSILyvMYAwECA+DzGAISdQoGRGVsZXRlEi4ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VEZWxldGVSZXF1ZXN0Gi8ubWV0YWxzdGFjay5hcGkudjIuTmV0d29ya1NlcnZpY2VEZWxldGVSZXNwb25zZSIKyvMYAgEC4PMYAULCAQoVY29tLm1ldGFsc3RhY2suYXBpLnYyQgxOZXR3b3JrUHJvdG9QAVo1Z2l0aHViLmNvbS9tZXRhbC1zdGFjay9hcGkvZ28vbWV0YWxzdGFjay9hcGkvdjI7YXBpdjKiAgNNQViqAhFNZXRhbHN0YWNrLkFwaS5WMsoCEU1ldGFsc3RhY2tcQXBpXFYy4gIdTWV0YWxzdGFja1xBcGlcVjJcR1BCTWV0YWRhdGHqAhNNZXRhbHN0YWNrOjpBcGk6OlYyYgZwcm90bzM", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules]); /** * NetworkServiceGetRequest. @@ -626,41 +626,6 @@ export type NetworkQuery = Message<"metalstack.api.v2.NetworkQuery"> & { export const NetworkQuerySchema: GenMessage = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_network, 13); -/** - * ExternalNetworkMemberQuery defines which filters to apply when looking up external network members. - * - * @generated from message metalstack.api.v2.ExternalNetworkMemberQuery - */ -export type ExternalNetworkMemberQuery = Message<"metalstack.api.v2.ExternalNetworkMemberQuery"> & { - /** - * Switch whose ports are queried. - * - * @generated from field: optional string switch = 1; - */ - switch?: string | undefined; - - /** - * Rack for which the members of the network are queried. - * - * @generated from field: optional string rack = 2; - */ - rack?: string | undefined; - - /** - * Partition where the members of the network reside. - * - * @generated from field: optional string partition = 3; - */ - partition?: string | undefined; -}; - -/** - * Describes the message metalstack.api.v2.ExternalNetworkMemberQuery. - * Use `create(ExternalNetworkMemberQuerySchema)` to create a new message. - */ -export const ExternalNetworkMemberQuerySchema: GenMessage = /*@__PURE__*/ - messageDesc(file_metalstack_api_v2_network, 14); - /** * ChildPrefixLength. * @@ -687,7 +652,7 @@ export type ChildPrefixLength = Message<"metalstack.api.v2.ChildPrefixLength"> & * Use `create(ChildPrefixLengthSchema)` to create a new message. */ export const ChildPrefixLengthSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_metalstack_api_v2_network, 15); + messageDesc(file_metalstack_api_v2_network, 14); /** * NetworkConsumption contains ip and prefix usage by addressfamily. @@ -715,7 +680,7 @@ export type NetworkConsumption = Message<"metalstack.api.v2.NetworkConsumption"> * Use `create(NetworkConsumptionSchema)` to create a new message. */ export const NetworkConsumptionSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_metalstack_api_v2_network, 16); + messageDesc(file_metalstack_api_v2_network, 15); /** * NetworkUsage reports core metrics about available and used IPs or Prefixes in a Network. @@ -757,49 +722,7 @@ export type NetworkUsage = Message<"metalstack.api.v2.NetworkUsage"> & { * Use `create(NetworkUsageSchema)` to create a new message. */ export const NetworkUsageSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_metalstack_api_v2_network, 17); - -/** - * ExternalNetworkMember contains the ports of a switch that participate in a network and are connected to machines not known to metal-stack. - * - * @generated from message metalstack.api.v2.ExternalNetworkMember - */ -export type ExternalNetworkMember = Message<"metalstack.api.v2.ExternalNetworkMember"> & { - /** - * Switch the external members are connected to. - * - * @generated from field: string switch = 1; - */ - switch: string; - - /** - * Partition of the switch. - * - * @generated from field: string partition = 2; - */ - partition: string; - - /** - * Rack of the switch. - * - * @generated from field: string rack = 3; - */ - rack: string; - - /** - * Ports of the switch that participate in the network. - * - * @generated from field: repeated string ports = 4; - */ - ports: string[]; -}; - -/** - * Describes the message metalstack.api.v2.ExternalNetworkMember. - * Use `create(ExternalNetworkMemberSchema)` to create a new message. - */ -export const ExternalNetworkMemberSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_metalstack_api_v2_network, 18); + messageDesc(file_metalstack_api_v2_network, 16); /** * NATType defines how and if outgoing traffic is translated. diff --git a/js/metalstack/api/v2/switch_pb.d.ts b/js/metalstack/api/v2/switch_pb.d.ts index 4e7afe17..594c46d7 100644 --- a/js/metalstack/api/v2/switch_pb.d.ts +++ b/js/metalstack/api/v2/switch_pb.d.ts @@ -494,6 +494,30 @@ export type SwitchNicWithMachine = Message<"metalstack.api.v2.SwitchNicWithMachi * Use `create(SwitchNicWithMachineSchema)` to create a new message. */ export declare const SwitchNicWithMachineSchema: GenMessage; +/** + * StaticPortConfig is a config that is statically applied to a port. + * + * @generated from message metalstack.api.v2.StaticPortConfig + */ +export type StaticPortConfig = Message<"metalstack.api.v2.StaticPortConfig"> & { + /** + * Membership specifies whether this port is connected to a registered machine or to an external host or if it is unmanaged. + * + * @generated from field: metalstack.api.v2.SwitchPortMembership membership = 1; + */ + membership: SwitchPortMembership; + /** + * Network the port is a member of. + * + * @generated from field: optional string network = 2; + */ + network?: string | undefined; +}; +/** + * Describes the message metalstack.api.v2.StaticPortConfig. + * Use `create(StaticPortConfigSchema)` to create a new message. + */ +export declare const StaticPortConfigSchema: GenMessage; /** * BGPState represents the state of a BGP session. * diff --git a/js/metalstack/api/v2/switch_pb.js b/js/metalstack/api/v2/switch_pb.js index 1cede7ec..c803c144 100644 --- a/js/metalstack/api/v2/switch_pb.js +++ b/js/metalstack/api/v2/switch_pb.js @@ -10,7 +10,7 @@ import { file_metalstack_api_v2_predefined_rules } from "./predefined_rules_pb"; /** * Describes the file metalstack/api/v2/switch.proto. */ -export const file_metalstack_api_v2_switch = /*@__PURE__*/ fileDesc("Ch5tZXRhbHN0YWNrL2FwaS92Mi9zd2l0Y2gucHJvdG8SEW1ldGFsc3RhY2suYXBpLnYyIsIFCgZTd2l0Y2gSGQoCaWQYASABKAlCDbpICnIIwLOusQIBaAESJQoEbWV0YRgCIAEoCzIXLm1ldGFsc3RhY2suYXBpLnYyLk1ldGESIAoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBEh4KBHJhY2sYBCABKAlCC7pICHIGwLOusQIBSACIAQESHgoEcm9vbRgFIAEoCUILukgIcgbAs66xAgFIAYgBARIeCglwYXJ0aXRpb24YBiABKAlCC7pICHIG0LOusQIBEkQKDHJlcGxhY2VfbW9kZRgHIAEoDjIkLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFJlcGxhY2VNb2RlQgi6SAWCAQIQARIeCg1tYW5hZ2VtZW50X2lwGAggASgJQge6SARyAnABEigKD21hbmFnZW1lbnRfdXNlchgJIAEoCUIKukgHcgUQAhiAAUgCiAEBEigKD2NvbnNvbGVfY29tbWFuZBgKIAEoCUIKukgHcgUQAhiAAUgDiAEBEioKBG5pY3MYCyADKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSJwoCb3MYDCABKAsyGy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hPUxJBChNtYWNoaW5lX2Nvbm5lY3Rpb25zGA0gAygLMiQubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUNvbm5lY3Rpb24SMAoJbGFzdF9zeW5jGA4gASgLMh0ubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoU3luYxI2Cg9sYXN0X3N5bmNfZXJyb3IYDyABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hTeW5jQgcKBV9yYWNrQgcKBV9yb29tQhIKEF9tYW5hZ2VtZW50X3VzZXJCEgoQX2NvbnNvbGVfY29tbWFuZCKOAQoIU3dpdGNoT1MSOwoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABEhwKB3ZlcnNpb24YAiABKAlCC7pICHIGwLOusQIBEicKEm1ldGFsX2NvcmVfdmVyc2lvbhgDIAEoCUILukgIcgbAs66xAgEioQMKCVN3aXRjaE5pYxIZCgRuYW1lGAEgASgJQgu6SAhyBsCzrrECARIfCgppZGVudGlmaWVyGAIgASgJQgu6SAhyBsCzrrECARIUCgNtYWMYAyABKAlCAhgBSACIAQESHQoDdnJmGAQgASgJQgu6SAhyBsCzrrECAUgBiAEBEi8KBXN0YXRlGAUgASgLMhsubWV0YWxzdGFjay5hcGkudjIuTmljU3RhdGVIAogBARI1CgpiZ3BfZmlsdGVyGAYgASgLMhwubWV0YWxzdGFjay5hcGkudjIuQkdQRmlsdGVySAOIAQESQgoOYmdwX3BvcnRfc3RhdGUYByABKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hCR1BQb3J0U3RhdGVIBIgBARI7CgptZW1iZXJzaGlwGAggASgOMicubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydE1lbWJlcnNoaXBCBgoEX21hY0IGCgRfdnJmQggKBl9zdGF0ZUINCgtfYmdwX2ZpbHRlckIRCg9fYmdwX3BvcnRfc3RhdGUiRwoJQkdQRmlsdGVyEhsKBWNpZHJzGAEgAygJQgy6SAmSAQa4pLOxAgESHQoEdm5pcxgCIAMoCUIPukgMkgEJIgdyBRACGIABIrsCChJTd2l0Y2hCR1BQb3J0U3RhdGUSIgoIbmVpZ2hib3IYASABKAlCC7pICHIGwLOusQIBSACIAQESHwoKcGVlcl9ncm91cBgCIAEoCUILukgIcgbAs66xAgESHQoIdnJmX25hbWUYAyABKAlCC7pICHIGwLOusQIBEjgKCWJncF9zdGF0ZRgEIAEoDjIbLm1ldGFsc3RhY2suYXBpLnYyLkJHUFN0YXRlQgi6SAWCAQIQARI8ChhiZ3BfdGltZXJfdXBfZXN0YWJsaXNoZWQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhsKE3NlbnRfcHJlZml4X2NvdW50ZXIYBiABKAQSHwoXYWNjZXB0ZWRfcHJlZml4X2NvdW50ZXIYByABKARCCwoJX25laWdoYm9yIpoBCghOaWNTdGF0ZRJDCgdkZXNpcmVkGAEgASgOMiMubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydFN0YXR1c0IIukgFggECEAFIAIgBARI9CgZhY3R1YWwYAiABKA4yIy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hQb3J0U3RhdHVzQgi6SAWCAQIQAUIKCghfZGVzaXJlZCJSChFNYWNoaW5lQ29ubmVjdGlvbhISCgptYWNoaW5lX2lkGAEgASgJEikKA25pYxgCIAEoCzIcLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pYyK5AgoLU3dpdGNoUXVlcnkSHgoCaWQYASABKAlCDbpICnIIwLOusQIBaAFIAIgBARIjCglwYXJ0aXRpb24YAiABKAlCC7pICHIG0LOusQIBSAGIAQESHgoEcmFjaxgDIAEoCUILukgIcgbAs66xAgFIAogBARIeCgRyb29tGAQgASgJQgu6SAhyBsCzrrECAUgDiAEBEjEKAm9zGAUgASgLMiAubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NRdWVyeUgEiAEBEisKFGNvbm5lY3RlZF9tYWNoaW5lX2lkGAYgASgJQgi6SAVyA7ABAUgFiAEBQgUKA19pZEIMCgpfcGFydGl0aW9uQgcKBV9yYWNrQgcKBV9yb29tQgUKA19vc0IXChVfY29ubmVjdGVkX21hY2hpbmVfaWQiiwEKDVN3aXRjaE9TUXVlcnkSQAoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABSACIAQESIQoHdmVyc2lvbhgCIAEoCUILukgIcgbAs66xAgFIAYgBAUIJCgdfdmVuZG9yQgoKCF92ZXJzaW9uIoEBCgpTd2l0Y2hTeW5jEigKBHRpbWUYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKCGR1cmF0aW9uGAIgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEhIKBWVycm9yGAMgASgJSACIAQFCCAoGX2Vycm9yIn8KElN3aXRjaFdpdGhNYWNoaW5lcxIKCgJpZBgBIAEoCRIRCglwYXJ0aXRpb24YAiABKAkSDAoEcmFjaxgDIAEoCRI8Cgtjb25uZWN0aW9ucxgEIAMoCzInLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pY1dpdGhNYWNoaW5lIpoBChRTd2l0Y2hOaWNXaXRoTWFjaGluZRIpCgNuaWMYASABKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSKwoHbWFjaGluZRgCIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk1hY2hpbmUSKgoDZnJ1GAMgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUZSVSqJAgoIQkdQU3RhdGUSGQoVQkdQX1NUQVRFX1VOU1BFQ0lGSUVEEAASHAoOQkdQX1NUQVRFX0lETEUQARoIgrIZBElkbGUSIgoRQkdQX1NUQVRFX0NPTk5FQ1QQAhoLgrIZB0Nvbm5lY3QSIAoQQkdQX1NUQVRFX0FDVElWRRADGgqCshkGQWN0aXZlEiUKE0JHUF9TVEFURV9PUEVOX1NFTlQQBBoMgrIZCE9wZW5TZW50EisKFkJHUF9TVEFURV9PUEVOX0NPTkZJUk0QBRoPgrIZC09wZW5Db25maXJtEioKFUJHUF9TVEFURV9FU1RBQkxJU0hFRBAGGg+CshkLRXN0YWJsaXNoZWQqogEKEVN3aXRjaFJlcGxhY2VNb2RlEikKH1NXSVRDSF9SRVBMQUNFX01PREVfVU5TUEVDSUZJRUQQABoEgrIZABIsChtTV0lUQ0hfUkVQTEFDRV9NT0RFX1JFUExBQ0UQARoLgrIZB3JlcGxhY2USNAofU1dJVENIX1JFUExBQ0VfTU9ERV9PUEVSQVRJT05BTBACGg+CshkLb3BlcmF0aW9uYWwqhAEKDlN3aXRjaE9TVmVuZG9yEiAKHFNXSVRDSF9PU19WRU5ET1JfVU5TUEVDSUZJRUQQABIpChhTV0lUQ0hfT1NfVkVORE9SX0NVTVVMVVMQARoLgrIZB0N1bXVsdXMSJQoWU1dJVENIX09TX1ZFTkRPUl9TT05JQxACGgmCshkFU09OaUMqrQEKEFN3aXRjaFBvcnRTdGF0dXMSIgoeU1dJVENIX1BPUlRfU1RBVFVTX1VOU1BFQ0lGSUVEEAASIQoVU1dJVENIX1BPUlRfU1RBVFVTX1VQEAEaBoKyGQJ1cBIlChdTV0lUQ0hfUE9SVF9TVEFUVVNfRE9XThACGgiCshkEZG93bhIrChpTV0lUQ0hfUE9SVF9TVEFUVVNfVU5LTk9XThADGguCshkHdW5rbm93birZAQoUU3dpdGNoUG9ydE1lbWJlcnNoaXASJgoiU1dJVENIX1BPUlRfTUVNQkVSU0hJUF9VTlNQRUNJRklFRBAAEjMKIFNXSVRDSF9QT1JUX01FTUJFUlNISVBfVU5NQU5BR0VEEAEaDYKyGQl1bm1hbmFnZWQSMQofU1dJVENIX1BPUlRfTUVNQkVSU0hJUF9JTlRFUk5BTBACGgyCshkIaW50ZXJuYWwSMQofU1dJVENIX1BPUlRfTUVNQkVSU0hJUF9FWFRFUk5BTBADGgyCshkIZXh0ZXJuYWxCwQEKFWNvbS5tZXRhbHN0YWNrLmFwaS52MkILU3dpdGNoUHJvdG9QAVo1Z2l0aHViLmNvbS9tZXRhbC1zdGFjay9hcGkvZ28vbWV0YWxzdGFjay9hcGkvdjI7YXBpdjKiAgNNQViqAhFNZXRhbHN0YWNrLkFwaS5WMsoCEU1ldGFsc3RhY2tcQXBpXFYy4gIdTWV0YWxzdGFja1xBcGlcVjJcR1BCTWV0YWRhdGHqAhNNZXRhbHN0YWNrOjpBcGk6OlYyYgZwcm90bzM", [file_buf_validate_validate, file_google_protobuf_duration, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_machine, file_metalstack_api_v2_predefined_rules]); +export const file_metalstack_api_v2_switch = /*@__PURE__*/ fileDesc("Ch5tZXRhbHN0YWNrL2FwaS92Mi9zd2l0Y2gucHJvdG8SEW1ldGFsc3RhY2suYXBpLnYyIsIFCgZTd2l0Y2gSGQoCaWQYASABKAlCDbpICnIIwLOusQIBaAESJQoEbWV0YRgCIAEoCzIXLm1ldGFsc3RhY2suYXBpLnYyLk1ldGESIAoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBEh4KBHJhY2sYBCABKAlCC7pICHIGwLOusQIBSACIAQESHgoEcm9vbRgFIAEoCUILukgIcgbAs66xAgFIAYgBARIeCglwYXJ0aXRpb24YBiABKAlCC7pICHIG0LOusQIBEkQKDHJlcGxhY2VfbW9kZRgHIAEoDjIkLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFJlcGxhY2VNb2RlQgi6SAWCAQIQARIeCg1tYW5hZ2VtZW50X2lwGAggASgJQge6SARyAnABEigKD21hbmFnZW1lbnRfdXNlchgJIAEoCUIKukgHcgUQAhiAAUgCiAEBEigKD2NvbnNvbGVfY29tbWFuZBgKIAEoCUIKukgHcgUQAhiAAUgDiAEBEioKBG5pY3MYCyADKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSJwoCb3MYDCABKAsyGy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hPUxJBChNtYWNoaW5lX2Nvbm5lY3Rpb25zGA0gAygLMiQubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUNvbm5lY3Rpb24SMAoJbGFzdF9zeW5jGA4gASgLMh0ubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoU3luYxI2Cg9sYXN0X3N5bmNfZXJyb3IYDyABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hTeW5jQgcKBV9yYWNrQgcKBV9yb29tQhIKEF9tYW5hZ2VtZW50X3VzZXJCEgoQX2NvbnNvbGVfY29tbWFuZCKOAQoIU3dpdGNoT1MSOwoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABEhwKB3ZlcnNpb24YAiABKAlCC7pICHIGwLOusQIBEicKEm1ldGFsX2NvcmVfdmVyc2lvbhgDIAEoCUILukgIcgbAs66xAgEioQMKCVN3aXRjaE5pYxIZCgRuYW1lGAEgASgJQgu6SAhyBsCzrrECARIfCgppZGVudGlmaWVyGAIgASgJQgu6SAhyBsCzrrECARIUCgNtYWMYAyABKAlCAhgBSACIAQESHQoDdnJmGAQgASgJQgu6SAhyBsCzrrECAUgBiAEBEi8KBXN0YXRlGAUgASgLMhsubWV0YWxzdGFjay5hcGkudjIuTmljU3RhdGVIAogBARI1CgpiZ3BfZmlsdGVyGAYgASgLMhwubWV0YWxzdGFjay5hcGkudjIuQkdQRmlsdGVySAOIAQESQgoOYmdwX3BvcnRfc3RhdGUYByABKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hCR1BQb3J0U3RhdGVIBIgBARI7CgptZW1iZXJzaGlwGAggASgOMicubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydE1lbWJlcnNoaXBCBgoEX21hY0IGCgRfdnJmQggKBl9zdGF0ZUINCgtfYmdwX2ZpbHRlckIRCg9fYmdwX3BvcnRfc3RhdGUiRwoJQkdQRmlsdGVyEhsKBWNpZHJzGAEgAygJQgy6SAmSAQa4pLOxAgESHQoEdm5pcxgCIAMoCUIPukgMkgEJIgdyBRACGIABIrsCChJTd2l0Y2hCR1BQb3J0U3RhdGUSIgoIbmVpZ2hib3IYASABKAlCC7pICHIGwLOusQIBSACIAQESHwoKcGVlcl9ncm91cBgCIAEoCUILukgIcgbAs66xAgESHQoIdnJmX25hbWUYAyABKAlCC7pICHIGwLOusQIBEjgKCWJncF9zdGF0ZRgEIAEoDjIbLm1ldGFsc3RhY2suYXBpLnYyLkJHUFN0YXRlQgi6SAWCAQIQARI8ChhiZ3BfdGltZXJfdXBfZXN0YWJsaXNoZWQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhsKE3NlbnRfcHJlZml4X2NvdW50ZXIYBiABKAQSHwoXYWNjZXB0ZWRfcHJlZml4X2NvdW50ZXIYByABKARCCwoJX25laWdoYm9yIpoBCghOaWNTdGF0ZRJDCgdkZXNpcmVkGAEgASgOMiMubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydFN0YXR1c0IIukgFggECEAFIAIgBARI9CgZhY3R1YWwYAiABKA4yIy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hQb3J0U3RhdHVzQgi6SAWCAQIQAUIKCghfZGVzaXJlZCJSChFNYWNoaW5lQ29ubmVjdGlvbhISCgptYWNoaW5lX2lkGAEgASgJEikKA25pYxgCIAEoCzIcLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pYyK5AgoLU3dpdGNoUXVlcnkSHgoCaWQYASABKAlCDbpICnIIwLOusQIBaAFIAIgBARIjCglwYXJ0aXRpb24YAiABKAlCC7pICHIG0LOusQIBSAGIAQESHgoEcmFjaxgDIAEoCUILukgIcgbAs66xAgFIAogBARIeCgRyb29tGAQgASgJQgu6SAhyBsCzrrECAUgDiAEBEjEKAm9zGAUgASgLMiAubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NRdWVyeUgEiAEBEisKFGNvbm5lY3RlZF9tYWNoaW5lX2lkGAYgASgJQgi6SAVyA7ABAUgFiAEBQgUKA19pZEIMCgpfcGFydGl0aW9uQgcKBV9yYWNrQgcKBV9yb29tQgUKA19vc0IXChVfY29ubmVjdGVkX21hY2hpbmVfaWQiiwEKDVN3aXRjaE9TUXVlcnkSQAoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABSACIAQESIQoHdmVyc2lvbhgCIAEoCUILukgIcgbAs66xAgFIAYgBAUIJCgdfdmVuZG9yQgoKCF92ZXJzaW9uIoEBCgpTd2l0Y2hTeW5jEigKBHRpbWUYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKCGR1cmF0aW9uGAIgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEhIKBWVycm9yGAMgASgJSACIAQFCCAoGX2Vycm9yIn8KElN3aXRjaFdpdGhNYWNoaW5lcxIKCgJpZBgBIAEoCRIRCglwYXJ0aXRpb24YAiABKAkSDAoEcmFjaxgDIAEoCRI8Cgtjb25uZWN0aW9ucxgEIAMoCzInLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pY1dpdGhNYWNoaW5lIpoBChRTd2l0Y2hOaWNXaXRoTWFjaGluZRIpCgNuaWMYASABKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSKwoHbWFjaGluZRgCIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk1hY2hpbmUSKgoDZnJ1GAMgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUZSVSJxChBTdGF0aWNQb3J0Q29uZmlnEjsKCm1lbWJlcnNoaXAYASABKA4yJy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hQb3J0TWVtYmVyc2hpcBIUCgduZXR3b3JrGAIgASgJSACIAQFCCgoIX25ldHdvcmsqiQIKCEJHUFN0YXRlEhkKFUJHUF9TVEFURV9VTlNQRUNJRklFRBAAEhwKDkJHUF9TVEFURV9JRExFEAEaCIKyGQRJZGxlEiIKEUJHUF9TVEFURV9DT05ORUNUEAIaC4KyGQdDb25uZWN0EiAKEEJHUF9TVEFURV9BQ1RJVkUQAxoKgrIZBkFjdGl2ZRIlChNCR1BfU1RBVEVfT1BFTl9TRU5UEAQaDIKyGQhPcGVuU2VudBIrChZCR1BfU1RBVEVfT1BFTl9DT05GSVJNEAUaD4KyGQtPcGVuQ29uZmlybRIqChVCR1BfU1RBVEVfRVNUQUJMSVNIRUQQBhoPgrIZC0VzdGFibGlzaGVkKqIBChFTd2l0Y2hSZXBsYWNlTW9kZRIpCh9TV0lUQ0hfUkVQTEFDRV9NT0RFX1VOU1BFQ0lGSUVEEAAaBIKyGQASLAobU1dJVENIX1JFUExBQ0VfTU9ERV9SRVBMQUNFEAEaC4KyGQdyZXBsYWNlEjQKH1NXSVRDSF9SRVBMQUNFX01PREVfT1BFUkFUSU9OQUwQAhoPgrIZC29wZXJhdGlvbmFsKoQBCg5Td2l0Y2hPU1ZlbmRvchIgChxTV0lUQ0hfT1NfVkVORE9SX1VOU1BFQ0lGSUVEEAASKQoYU1dJVENIX09TX1ZFTkRPUl9DVU1VTFVTEAEaC4KyGQdDdW11bHVzEiUKFlNXSVRDSF9PU19WRU5ET1JfU09OSUMQAhoJgrIZBVNPTmlDKq0BChBTd2l0Y2hQb3J0U3RhdHVzEiIKHlNXSVRDSF9QT1JUX1NUQVRVU19VTlNQRUNJRklFRBAAEiEKFVNXSVRDSF9QT1JUX1NUQVRVU19VUBABGgaCshkCdXASJQoXU1dJVENIX1BPUlRfU1RBVFVTX0RPV04QAhoIgrIZBGRvd24SKwoaU1dJVENIX1BPUlRfU1RBVFVTX1VOS05PV04QAxoLgrIZB3Vua25vd24q2QEKFFN3aXRjaFBvcnRNZW1iZXJzaGlwEiYKIlNXSVRDSF9QT1JUX01FTUJFUlNISVBfVU5TUEVDSUZJRUQQABIzCiBTV0lUQ0hfUE9SVF9NRU1CRVJTSElQX1VOTUFOQUdFRBABGg2CshkJdW5tYW5hZ2VkEjEKH1NXSVRDSF9QT1JUX01FTUJFUlNISVBfSU5URVJOQUwQAhoMgrIZCGludGVybmFsEjEKH1NXSVRDSF9QT1JUX01FTUJFUlNISVBfRVhURVJOQUwQAxoMgrIZCGV4dGVybmFsQsEBChVjb20ubWV0YWxzdGFjay5hcGkudjJCC1N3aXRjaFByb3RvUAFaNWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYXBpL3YyO2FwaXYyogIDTUFYqgIRTWV0YWxzdGFjay5BcGkuVjLKAhFNZXRhbHN0YWNrXEFwaVxWMuICHU1ldGFsc3RhY2tcQXBpXFYyXEdQQk1ldGFkYXRh6gITTWV0YWxzdGFjazo6QXBpOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_google_protobuf_duration, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_machine, file_metalstack_api_v2_predefined_rules]); /** * Describes the message metalstack.api.v2.Switch. * Use `create(SwitchSchema)` to create a new message. @@ -71,6 +71,11 @@ export const SwitchWithMachinesSchema = /*@__PURE__*/ messageDesc(file_metalstac * Use `create(SwitchNicWithMachineSchema)` to create a new message. */ export const SwitchNicWithMachineSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_switch, 11); +/** + * Describes the message metalstack.api.v2.StaticPortConfig. + * Use `create(StaticPortConfigSchema)` to create a new message. + */ +export const StaticPortConfigSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_switch, 12); /** * BGPState represents the state of a BGP session. * diff --git a/js/metalstack/api/v2/switch_pb.ts b/js/metalstack/api/v2/switch_pb.ts index 7be738d6..f2dfcf95 100644 --- a/js/metalstack/api/v2/switch_pb.ts +++ b/js/metalstack/api/v2/switch_pb.ts @@ -18,7 +18,7 @@ import type { Message } from "@bufbuild/protobuf"; * Describes the file metalstack/api/v2/switch.proto. */ export const file_metalstack_api_v2_switch: GenFile = /*@__PURE__*/ - fileDesc("Ch5tZXRhbHN0YWNrL2FwaS92Mi9zd2l0Y2gucHJvdG8SEW1ldGFsc3RhY2suYXBpLnYyIsIFCgZTd2l0Y2gSGQoCaWQYASABKAlCDbpICnIIwLOusQIBaAESJQoEbWV0YRgCIAEoCzIXLm1ldGFsc3RhY2suYXBpLnYyLk1ldGESIAoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBEh4KBHJhY2sYBCABKAlCC7pICHIGwLOusQIBSACIAQESHgoEcm9vbRgFIAEoCUILukgIcgbAs66xAgFIAYgBARIeCglwYXJ0aXRpb24YBiABKAlCC7pICHIG0LOusQIBEkQKDHJlcGxhY2VfbW9kZRgHIAEoDjIkLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFJlcGxhY2VNb2RlQgi6SAWCAQIQARIeCg1tYW5hZ2VtZW50X2lwGAggASgJQge6SARyAnABEigKD21hbmFnZW1lbnRfdXNlchgJIAEoCUIKukgHcgUQAhiAAUgCiAEBEigKD2NvbnNvbGVfY29tbWFuZBgKIAEoCUIKukgHcgUQAhiAAUgDiAEBEioKBG5pY3MYCyADKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSJwoCb3MYDCABKAsyGy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hPUxJBChNtYWNoaW5lX2Nvbm5lY3Rpb25zGA0gAygLMiQubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUNvbm5lY3Rpb24SMAoJbGFzdF9zeW5jGA4gASgLMh0ubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoU3luYxI2Cg9sYXN0X3N5bmNfZXJyb3IYDyABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hTeW5jQgcKBV9yYWNrQgcKBV9yb29tQhIKEF9tYW5hZ2VtZW50X3VzZXJCEgoQX2NvbnNvbGVfY29tbWFuZCKOAQoIU3dpdGNoT1MSOwoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABEhwKB3ZlcnNpb24YAiABKAlCC7pICHIGwLOusQIBEicKEm1ldGFsX2NvcmVfdmVyc2lvbhgDIAEoCUILukgIcgbAs66xAgEioQMKCVN3aXRjaE5pYxIZCgRuYW1lGAEgASgJQgu6SAhyBsCzrrECARIfCgppZGVudGlmaWVyGAIgASgJQgu6SAhyBsCzrrECARIUCgNtYWMYAyABKAlCAhgBSACIAQESHQoDdnJmGAQgASgJQgu6SAhyBsCzrrECAUgBiAEBEi8KBXN0YXRlGAUgASgLMhsubWV0YWxzdGFjay5hcGkudjIuTmljU3RhdGVIAogBARI1CgpiZ3BfZmlsdGVyGAYgASgLMhwubWV0YWxzdGFjay5hcGkudjIuQkdQRmlsdGVySAOIAQESQgoOYmdwX3BvcnRfc3RhdGUYByABKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hCR1BQb3J0U3RhdGVIBIgBARI7CgptZW1iZXJzaGlwGAggASgOMicubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydE1lbWJlcnNoaXBCBgoEX21hY0IGCgRfdnJmQggKBl9zdGF0ZUINCgtfYmdwX2ZpbHRlckIRCg9fYmdwX3BvcnRfc3RhdGUiRwoJQkdQRmlsdGVyEhsKBWNpZHJzGAEgAygJQgy6SAmSAQa4pLOxAgESHQoEdm5pcxgCIAMoCUIPukgMkgEJIgdyBRACGIABIrsCChJTd2l0Y2hCR1BQb3J0U3RhdGUSIgoIbmVpZ2hib3IYASABKAlCC7pICHIGwLOusQIBSACIAQESHwoKcGVlcl9ncm91cBgCIAEoCUILukgIcgbAs66xAgESHQoIdnJmX25hbWUYAyABKAlCC7pICHIGwLOusQIBEjgKCWJncF9zdGF0ZRgEIAEoDjIbLm1ldGFsc3RhY2suYXBpLnYyLkJHUFN0YXRlQgi6SAWCAQIQARI8ChhiZ3BfdGltZXJfdXBfZXN0YWJsaXNoZWQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhsKE3NlbnRfcHJlZml4X2NvdW50ZXIYBiABKAQSHwoXYWNjZXB0ZWRfcHJlZml4X2NvdW50ZXIYByABKARCCwoJX25laWdoYm9yIpoBCghOaWNTdGF0ZRJDCgdkZXNpcmVkGAEgASgOMiMubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydFN0YXR1c0IIukgFggECEAFIAIgBARI9CgZhY3R1YWwYAiABKA4yIy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hQb3J0U3RhdHVzQgi6SAWCAQIQAUIKCghfZGVzaXJlZCJSChFNYWNoaW5lQ29ubmVjdGlvbhISCgptYWNoaW5lX2lkGAEgASgJEikKA25pYxgCIAEoCzIcLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pYyK5AgoLU3dpdGNoUXVlcnkSHgoCaWQYASABKAlCDbpICnIIwLOusQIBaAFIAIgBARIjCglwYXJ0aXRpb24YAiABKAlCC7pICHIG0LOusQIBSAGIAQESHgoEcmFjaxgDIAEoCUILukgIcgbAs66xAgFIAogBARIeCgRyb29tGAQgASgJQgu6SAhyBsCzrrECAUgDiAEBEjEKAm9zGAUgASgLMiAubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NRdWVyeUgEiAEBEisKFGNvbm5lY3RlZF9tYWNoaW5lX2lkGAYgASgJQgi6SAVyA7ABAUgFiAEBQgUKA19pZEIMCgpfcGFydGl0aW9uQgcKBV9yYWNrQgcKBV9yb29tQgUKA19vc0IXChVfY29ubmVjdGVkX21hY2hpbmVfaWQiiwEKDVN3aXRjaE9TUXVlcnkSQAoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABSACIAQESIQoHdmVyc2lvbhgCIAEoCUILukgIcgbAs66xAgFIAYgBAUIJCgdfdmVuZG9yQgoKCF92ZXJzaW9uIoEBCgpTd2l0Y2hTeW5jEigKBHRpbWUYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKCGR1cmF0aW9uGAIgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEhIKBWVycm9yGAMgASgJSACIAQFCCAoGX2Vycm9yIn8KElN3aXRjaFdpdGhNYWNoaW5lcxIKCgJpZBgBIAEoCRIRCglwYXJ0aXRpb24YAiABKAkSDAoEcmFjaxgDIAEoCRI8Cgtjb25uZWN0aW9ucxgEIAMoCzInLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pY1dpdGhNYWNoaW5lIpoBChRTd2l0Y2hOaWNXaXRoTWFjaGluZRIpCgNuaWMYASABKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSKwoHbWFjaGluZRgCIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk1hY2hpbmUSKgoDZnJ1GAMgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUZSVSqJAgoIQkdQU3RhdGUSGQoVQkdQX1NUQVRFX1VOU1BFQ0lGSUVEEAASHAoOQkdQX1NUQVRFX0lETEUQARoIgrIZBElkbGUSIgoRQkdQX1NUQVRFX0NPTk5FQ1QQAhoLgrIZB0Nvbm5lY3QSIAoQQkdQX1NUQVRFX0FDVElWRRADGgqCshkGQWN0aXZlEiUKE0JHUF9TVEFURV9PUEVOX1NFTlQQBBoMgrIZCE9wZW5TZW50EisKFkJHUF9TVEFURV9PUEVOX0NPTkZJUk0QBRoPgrIZC09wZW5Db25maXJtEioKFUJHUF9TVEFURV9FU1RBQkxJU0hFRBAGGg+CshkLRXN0YWJsaXNoZWQqogEKEVN3aXRjaFJlcGxhY2VNb2RlEikKH1NXSVRDSF9SRVBMQUNFX01PREVfVU5TUEVDSUZJRUQQABoEgrIZABIsChtTV0lUQ0hfUkVQTEFDRV9NT0RFX1JFUExBQ0UQARoLgrIZB3JlcGxhY2USNAofU1dJVENIX1JFUExBQ0VfTU9ERV9PUEVSQVRJT05BTBACGg+CshkLb3BlcmF0aW9uYWwqhAEKDlN3aXRjaE9TVmVuZG9yEiAKHFNXSVRDSF9PU19WRU5ET1JfVU5TUEVDSUZJRUQQABIpChhTV0lUQ0hfT1NfVkVORE9SX0NVTVVMVVMQARoLgrIZB0N1bXVsdXMSJQoWU1dJVENIX09TX1ZFTkRPUl9TT05JQxACGgmCshkFU09OaUMqrQEKEFN3aXRjaFBvcnRTdGF0dXMSIgoeU1dJVENIX1BPUlRfU1RBVFVTX1VOU1BFQ0lGSUVEEAASIQoVU1dJVENIX1BPUlRfU1RBVFVTX1VQEAEaBoKyGQJ1cBIlChdTV0lUQ0hfUE9SVF9TVEFUVVNfRE9XThACGgiCshkEZG93bhIrChpTV0lUQ0hfUE9SVF9TVEFUVVNfVU5LTk9XThADGguCshkHdW5rbm93birZAQoUU3dpdGNoUG9ydE1lbWJlcnNoaXASJgoiU1dJVENIX1BPUlRfTUVNQkVSU0hJUF9VTlNQRUNJRklFRBAAEjMKIFNXSVRDSF9QT1JUX01FTUJFUlNISVBfVU5NQU5BR0VEEAEaDYKyGQl1bm1hbmFnZWQSMQofU1dJVENIX1BPUlRfTUVNQkVSU0hJUF9JTlRFUk5BTBACGgyCshkIaW50ZXJuYWwSMQofU1dJVENIX1BPUlRfTUVNQkVSU0hJUF9FWFRFUk5BTBADGgyCshkIZXh0ZXJuYWxCwQEKFWNvbS5tZXRhbHN0YWNrLmFwaS52MkILU3dpdGNoUHJvdG9QAVo1Z2l0aHViLmNvbS9tZXRhbC1zdGFjay9hcGkvZ28vbWV0YWxzdGFjay9hcGkvdjI7YXBpdjKiAgNNQViqAhFNZXRhbHN0YWNrLkFwaS5WMsoCEU1ldGFsc3RhY2tcQXBpXFYy4gIdTWV0YWxzdGFja1xBcGlcVjJcR1BCTWV0YWRhdGHqAhNNZXRhbHN0YWNrOjpBcGk6OlYyYgZwcm90bzM", [file_buf_validate_validate, file_google_protobuf_duration, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_machine, file_metalstack_api_v2_predefined_rules]); + fileDesc("Ch5tZXRhbHN0YWNrL2FwaS92Mi9zd2l0Y2gucHJvdG8SEW1ldGFsc3RhY2suYXBpLnYyIsIFCgZTd2l0Y2gSGQoCaWQYASABKAlCDbpICnIIwLOusQIBaAESJQoEbWV0YRgCIAEoCzIXLm1ldGFsc3RhY2suYXBpLnYyLk1ldGESIAoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBEh4KBHJhY2sYBCABKAlCC7pICHIGwLOusQIBSACIAQESHgoEcm9vbRgFIAEoCUILukgIcgbAs66xAgFIAYgBARIeCglwYXJ0aXRpb24YBiABKAlCC7pICHIG0LOusQIBEkQKDHJlcGxhY2VfbW9kZRgHIAEoDjIkLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFJlcGxhY2VNb2RlQgi6SAWCAQIQARIeCg1tYW5hZ2VtZW50X2lwGAggASgJQge6SARyAnABEigKD21hbmFnZW1lbnRfdXNlchgJIAEoCUIKukgHcgUQAhiAAUgCiAEBEigKD2NvbnNvbGVfY29tbWFuZBgKIAEoCUIKukgHcgUQAhiAAUgDiAEBEioKBG5pY3MYCyADKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSJwoCb3MYDCABKAsyGy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hPUxJBChNtYWNoaW5lX2Nvbm5lY3Rpb25zGA0gAygLMiQubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUNvbm5lY3Rpb24SMAoJbGFzdF9zeW5jGA4gASgLMh0ubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoU3luYxI2Cg9sYXN0X3N5bmNfZXJyb3IYDyABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hTeW5jQgcKBV9yYWNrQgcKBV9yb29tQhIKEF9tYW5hZ2VtZW50X3VzZXJCEgoQX2NvbnNvbGVfY29tbWFuZCKOAQoIU3dpdGNoT1MSOwoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABEhwKB3ZlcnNpb24YAiABKAlCC7pICHIGwLOusQIBEicKEm1ldGFsX2NvcmVfdmVyc2lvbhgDIAEoCUILukgIcgbAs66xAgEioQMKCVN3aXRjaE5pYxIZCgRuYW1lGAEgASgJQgu6SAhyBsCzrrECARIfCgppZGVudGlmaWVyGAIgASgJQgu6SAhyBsCzrrECARIUCgNtYWMYAyABKAlCAhgBSACIAQESHQoDdnJmGAQgASgJQgu6SAhyBsCzrrECAUgBiAEBEi8KBXN0YXRlGAUgASgLMhsubWV0YWxzdGFjay5hcGkudjIuTmljU3RhdGVIAogBARI1CgpiZ3BfZmlsdGVyGAYgASgLMhwubWV0YWxzdGFjay5hcGkudjIuQkdQRmlsdGVySAOIAQESQgoOYmdwX3BvcnRfc3RhdGUYByABKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hCR1BQb3J0U3RhdGVIBIgBARI7CgptZW1iZXJzaGlwGAggASgOMicubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydE1lbWJlcnNoaXBCBgoEX21hY0IGCgRfdnJmQggKBl9zdGF0ZUINCgtfYmdwX2ZpbHRlckIRCg9fYmdwX3BvcnRfc3RhdGUiRwoJQkdQRmlsdGVyEhsKBWNpZHJzGAEgAygJQgy6SAmSAQa4pLOxAgESHQoEdm5pcxgCIAMoCUIPukgMkgEJIgdyBRACGIABIrsCChJTd2l0Y2hCR1BQb3J0U3RhdGUSIgoIbmVpZ2hib3IYASABKAlCC7pICHIGwLOusQIBSACIAQESHwoKcGVlcl9ncm91cBgCIAEoCUILukgIcgbAs66xAgESHQoIdnJmX25hbWUYAyABKAlCC7pICHIGwLOusQIBEjgKCWJncF9zdGF0ZRgEIAEoDjIbLm1ldGFsc3RhY2suYXBpLnYyLkJHUFN0YXRlQgi6SAWCAQIQARI8ChhiZ3BfdGltZXJfdXBfZXN0YWJsaXNoZWQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhsKE3NlbnRfcHJlZml4X2NvdW50ZXIYBiABKAQSHwoXYWNjZXB0ZWRfcHJlZml4X2NvdW50ZXIYByABKARCCwoJX25laWdoYm9yIpoBCghOaWNTdGF0ZRJDCgdkZXNpcmVkGAEgASgOMiMubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydFN0YXR1c0IIukgFggECEAFIAIgBARI9CgZhY3R1YWwYAiABKA4yIy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hQb3J0U3RhdHVzQgi6SAWCAQIQAUIKCghfZGVzaXJlZCJSChFNYWNoaW5lQ29ubmVjdGlvbhISCgptYWNoaW5lX2lkGAEgASgJEikKA25pYxgCIAEoCzIcLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pYyK5AgoLU3dpdGNoUXVlcnkSHgoCaWQYASABKAlCDbpICnIIwLOusQIBaAFIAIgBARIjCglwYXJ0aXRpb24YAiABKAlCC7pICHIG0LOusQIBSAGIAQESHgoEcmFjaxgDIAEoCUILukgIcgbAs66xAgFIAogBARIeCgRyb29tGAQgASgJQgu6SAhyBsCzrrECAUgDiAEBEjEKAm9zGAUgASgLMiAubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NRdWVyeUgEiAEBEisKFGNvbm5lY3RlZF9tYWNoaW5lX2lkGAYgASgJQgi6SAVyA7ABAUgFiAEBQgUKA19pZEIMCgpfcGFydGl0aW9uQgcKBV9yYWNrQgcKBV9yb29tQgUKA19vc0IXChVfY29ubmVjdGVkX21hY2hpbmVfaWQiiwEKDVN3aXRjaE9TUXVlcnkSQAoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABSACIAQESIQoHdmVyc2lvbhgCIAEoCUILukgIcgbAs66xAgFIAYgBAUIJCgdfdmVuZG9yQgoKCF92ZXJzaW9uIoEBCgpTd2l0Y2hTeW5jEigKBHRpbWUYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKCGR1cmF0aW9uGAIgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEhIKBWVycm9yGAMgASgJSACIAQFCCAoGX2Vycm9yIn8KElN3aXRjaFdpdGhNYWNoaW5lcxIKCgJpZBgBIAEoCRIRCglwYXJ0aXRpb24YAiABKAkSDAoEcmFjaxgDIAEoCRI8Cgtjb25uZWN0aW9ucxgEIAMoCzInLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pY1dpdGhNYWNoaW5lIpoBChRTd2l0Y2hOaWNXaXRoTWFjaGluZRIpCgNuaWMYASABKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSKwoHbWFjaGluZRgCIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk1hY2hpbmUSKgoDZnJ1GAMgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUZSVSJxChBTdGF0aWNQb3J0Q29uZmlnEjsKCm1lbWJlcnNoaXAYASABKA4yJy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hQb3J0TWVtYmVyc2hpcBIUCgduZXR3b3JrGAIgASgJSACIAQFCCgoIX25ldHdvcmsqiQIKCEJHUFN0YXRlEhkKFUJHUF9TVEFURV9VTlNQRUNJRklFRBAAEhwKDkJHUF9TVEFURV9JRExFEAEaCIKyGQRJZGxlEiIKEUJHUF9TVEFURV9DT05ORUNUEAIaC4KyGQdDb25uZWN0EiAKEEJHUF9TVEFURV9BQ1RJVkUQAxoKgrIZBkFjdGl2ZRIlChNCR1BfU1RBVEVfT1BFTl9TRU5UEAQaDIKyGQhPcGVuU2VudBIrChZCR1BfU1RBVEVfT1BFTl9DT05GSVJNEAUaD4KyGQtPcGVuQ29uZmlybRIqChVCR1BfU1RBVEVfRVNUQUJMSVNIRUQQBhoPgrIZC0VzdGFibGlzaGVkKqIBChFTd2l0Y2hSZXBsYWNlTW9kZRIpCh9TV0lUQ0hfUkVQTEFDRV9NT0RFX1VOU1BFQ0lGSUVEEAAaBIKyGQASLAobU1dJVENIX1JFUExBQ0VfTU9ERV9SRVBMQUNFEAEaC4KyGQdyZXBsYWNlEjQKH1NXSVRDSF9SRVBMQUNFX01PREVfT1BFUkFUSU9OQUwQAhoPgrIZC29wZXJhdGlvbmFsKoQBCg5Td2l0Y2hPU1ZlbmRvchIgChxTV0lUQ0hfT1NfVkVORE9SX1VOU1BFQ0lGSUVEEAASKQoYU1dJVENIX09TX1ZFTkRPUl9DVU1VTFVTEAEaC4KyGQdDdW11bHVzEiUKFlNXSVRDSF9PU19WRU5ET1JfU09OSUMQAhoJgrIZBVNPTmlDKq0BChBTd2l0Y2hQb3J0U3RhdHVzEiIKHlNXSVRDSF9QT1JUX1NUQVRVU19VTlNQRUNJRklFRBAAEiEKFVNXSVRDSF9QT1JUX1NUQVRVU19VUBABGgaCshkCdXASJQoXU1dJVENIX1BPUlRfU1RBVFVTX0RPV04QAhoIgrIZBGRvd24SKwoaU1dJVENIX1BPUlRfU1RBVFVTX1VOS05PV04QAxoLgrIZB3Vua25vd24q2QEKFFN3aXRjaFBvcnRNZW1iZXJzaGlwEiYKIlNXSVRDSF9QT1JUX01FTUJFUlNISVBfVU5TUEVDSUZJRUQQABIzCiBTV0lUQ0hfUE9SVF9NRU1CRVJTSElQX1VOTUFOQUdFRBABGg2CshkJdW5tYW5hZ2VkEjEKH1NXSVRDSF9QT1JUX01FTUJFUlNISVBfSU5URVJOQUwQAhoMgrIZCGludGVybmFsEjEKH1NXSVRDSF9QT1JUX01FTUJFUlNISVBfRVhURVJOQUwQAxoMgrIZCGV4dGVybmFsQsEBChVjb20ubWV0YWxzdGFjay5hcGkudjJCC1N3aXRjaFByb3RvUAFaNWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYXBpL3YyO2FwaXYyogIDTUFYqgIRTWV0YWxzdGFjay5BcGkuVjLKAhFNZXRhbHN0YWNrXEFwaVxWMuICHU1ldGFsc3RhY2tcQXBpXFYyXEdQQk1ldGFkYXRh6gITTWV0YWxzdGFjazo6QXBpOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_google_protobuf_duration, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_machine, file_metalstack_api_v2_predefined_rules]); /** * Switch represents a network switch. @@ -588,6 +588,34 @@ export type SwitchNicWithMachine = Message<"metalstack.api.v2.SwitchNicWithMachi export const SwitchNicWithMachineSchema: GenMessage = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_switch, 11); +/** + * StaticPortConfig is a config that is statically applied to a port. + * + * @generated from message metalstack.api.v2.StaticPortConfig + */ +export type StaticPortConfig = Message<"metalstack.api.v2.StaticPortConfig"> & { + /** + * Membership specifies whether this port is connected to a registered machine or to an external host or if it is unmanaged. + * + * @generated from field: metalstack.api.v2.SwitchPortMembership membership = 1; + */ + membership: SwitchPortMembership; + + /** + * Network the port is a member of. + * + * @generated from field: optional string network = 2; + */ + network?: string | undefined; +}; + +/** + * Describes the message metalstack.api.v2.StaticPortConfig. + * Use `create(StaticPortConfigSchema)` to create a new message. + */ +export const StaticPortConfigSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_metalstack_api_v2_switch, 12); + /** * BGPState represents the state of a BGP session. * diff --git a/proto/metalstack/admin/v2/network.proto b/proto/metalstack/admin/v2/network.proto index 74731c6d..c79bd313 100644 --- a/proto/metalstack/admin/v2/network.proto +++ b/proto/metalstack/admin/v2/network.proto @@ -36,22 +36,6 @@ service NetworkService { option (metalstack.api.v2.admin_roles) = ADMIN_ROLE_VIEWER; option (metalstack.api.v2.auditing) = AUDITING_EXCLUDED; } - // Lists external members of a network. - rpc ListExternalMembers(NetworkServiceListExternalMembersRequest) returns (NetworkServiceListExternalMembersResponse) { - option (metalstack.api.v2.admin_roles) = ADMIN_ROLE_EDITOR; - option (metalstack.api.v2.admin_roles) = ADMIN_ROLE_VIEWER; - option (metalstack.api.v2.auditing) = AUDITING_EXCLUDED; - } - // Adds an external member to a network. - 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 RemoveExternalMembers(NetworkServiceRemoveExternalMembersRequest) returns (NetworkServiceRemoveExternalMembersResponse) { - option (metalstack.api.v2.admin_roles) = ADMIN_ROLE_EDITOR; - option (metalstack.api.v2.auditing) = AUDITING_INCLUDED; - } } // NetworkServiceGetRequest is the request payload for getting a network. @@ -145,40 +129,6 @@ message NetworkServiceListRequest { metalstack.api.v2.NetworkQuery query = 1; } -// NetworkServiceListExternalMembersRequest is the request payload for listing external members of a network. -message NetworkServiceListExternalMembersRequest { - // Network to list the members for. - string network = 1 [(buf.validate.field).string.(metalstack.api.v2.is_name) = true]; - // Query specifies additional filters for the list request. - metalstack.api.v2.ExternalNetworkMemberQuery query = 2; -} - -// NetworkServiceAddExternalMemberRequest is the request payload for adding an external member to a network. -message NetworkServiceAddExternalMembersRequest { - // Network to add the member to. - string network = 1 [(buf.validate.field).string.(metalstack.api.v2.is_name) = true]; - // 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]; - // 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. message NetworkServiceCreateResponse { // Network contains the created network. @@ -202,27 +152,3 @@ message NetworkServiceListResponse { // Networks contains the list of networks. repeated metalstack.api.v2.Network networks = 1; } - -// NetworkServiceListExternalMembersResponse is the response payload for listing external members of a network. -message NetworkServiceListExternalMembersResponse { - // Network whose members are queried. - metalstack.api.v2.Network network = 1; - // Members are the queried external members of the network. - repeated metalstack.api.v2.ExternalNetworkMember members = 2; -} - -// NetworkServiceAddExternalMemberResponse is the response payload for adding an external member to a network. -message NetworkServiceAddExternalMembersResponse { - // Network the members were added to. - metalstack.api.v2.Network network = 1; - // Members are the updated external members of the network. - repeated metalstack.api.v2.ExternalNetworkMember members = 2; -} - -// NetworkServiceRemoveExternalMemberResponse is the response payload for removing an external member from a network. -message NetworkServiceRemoveExternalMembersResponse { - // Network the members were removed from. - metalstack.api.v2.Network network = 1; - // Members are the updated external members of the network. - repeated metalstack.api.v2.ExternalNetworkMember members = 2; -} diff --git a/proto/metalstack/admin/v2/switch.proto b/proto/metalstack/admin/v2/switch.proto index 4d8edd63..5b1a7400 100644 --- a/proto/metalstack/admin/v2/switch.proto +++ b/proto/metalstack/admin/v2/switch.proto @@ -38,7 +38,7 @@ service SwitchService { option (metalstack.api.v2.admin_roles) = ADMIN_ROLE_EDITOR; option (metalstack.api.v2.auditing) = AUDITING_INCLUDED; } - // Sets the port status of a switch port. + // Sets the port config of a switch port. rpc Port(SwitchServicePortRequest) returns (SwitchServicePortResponse) { option (metalstack.api.v2.admin_roles) = ADMIN_ROLE_EDITOR; option (metalstack.api.v2.auditing) = AUDITING_INCLUDED; diff --git a/proto/metalstack/api/v2/network.proto b/proto/metalstack/api/v2/network.proto index 0a3d016d..80edf6b8 100644 --- a/proto/metalstack/api/v2/network.proto +++ b/proto/metalstack/api/v2/network.proto @@ -233,19 +233,6 @@ message NetworkQuery { optional Labels labels = 14; } -// ExternalNetworkMemberQuery defines which filters to apply when looking up external network members. -message ExternalNetworkMemberQuery { - // Switch whose ports are queried. - optional string switch = 1 [(buf.validate.field).string = { - hostname: true - [metalstack.api.v2.is_name]: true - }]; - // Rack for which the members of the network are queried. - optional string rack = 2 [(buf.validate.field).string.(metalstack.api.v2.is_name) = true]; - // Partition where the members of the network reside. - optional string partition = 3 [(buf.validate.field).string.(metalstack.api.v2.is_partition) = true]; -} - // ChildPrefixLength. message ChildPrefixLength { // IPv4 bit length of this network in this addressfamily. @@ -280,21 +267,6 @@ message NetworkUsage { uint64 used_prefixes = 4; } -// ExternalNetworkMember contains the ports of a switch that participate in a network and are connected to machines not known to metal-stack. -message ExternalNetworkMember { - // Switch the external members are connected to. - string switch = 1 [(buf.validate.field).string.(metalstack.api.v2.is_name) = true]; - // Partition of the switch. - string partition = 2 [(buf.validate.field).string.(metalstack.api.v2.is_partition) = true]; - // Rack of the switch. - string rack = 3 [(buf.validate.field).string.(metalstack.api.v2.is_name) = true]; - // Ports of the switch that participate in the network. - repeated string ports = 4 [ - (buf.validate.field).repeated.max_items = 2048, - (buf.validate.field).repeated.(metalstack.api.v2.all_trimmed) = true - ]; -} - // NATType defines how and if outgoing traffic is translated. enum NATType { // NAT_TYPE_UNSPECIFIED indicates a unspecified nat type. diff --git a/proto/metalstack/api/v2/switch.proto b/proto/metalstack/api/v2/switch.proto index b36552da..90bf7cfd 100644 --- a/proto/metalstack/api/v2/switch.proto +++ b/proto/metalstack/api/v2/switch.proto @@ -186,6 +186,14 @@ message SwitchNicWithMachine { metalstack.api.v2.MachineFRU fru = 3; } +// StaticPortConfig is a config that is statically applied to a port. +message StaticPortConfig { + // Membership specifies whether this port is connected to a registered machine or to an external host or if it is unmanaged. + SwitchPortMembership membership = 1; + // Network the port is a member of. + optional string network = 2; +} + // BGPState represents the state of a BGP session. enum BGPState { // BGP_STATE_UNSPECIFIED is not specified. diff --git a/python/metalstack/admin/v2/network_connect.py b/python/metalstack/admin/v2/network_connect.py index 3666c6db..be2a73bf 100644 --- a/python/metalstack/admin/v2/network_connect.py +++ b/python/metalstack/admin/v2/network_connect.py @@ -33,15 +33,6 @@ async def delete(self, request: metalstack_dot_admin_dot_v2_dot_network__pb2.Net async def list(self, request: metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceListRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceListResponse: raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - 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_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_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") - class NetworkServiceASGIApplication(ConnectASGIApplication[NetworkService]): def __init__(self, service: NetworkService | AsyncGenerator[NetworkService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None, compressions: Iterable[Compression] | None = None, codecs: Iterable[Codec] | None = None) -> None: @@ -98,36 +89,6 @@ def __init__(self, service: NetworkService | AsyncGenerator[NetworkService], *, ), function=svc.list, ), - "/metalstack.admin.v2.NetworkService/ListExternalMembers": Endpoint.unary( - method=MethodInfo( - name="ListExternalMembers", - service_name="metalstack.admin.v2.NetworkService", - input=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceListExternalMembersRequest, - output=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceListExternalMembersResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.list_external_members, - ), - "/metalstack.admin.v2.NetworkService/AddExternalMembers": Endpoint.unary( - method=MethodInfo( - name="AddExternalMembers", - service_name="metalstack.admin.v2.NetworkService", - 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_members, - ), - "/metalstack.admin.v2.NetworkService/RemoveExternalMembers": Endpoint.unary( - method=MethodInfo( - name="RemoveExternalMembers", - service_name="metalstack.admin.v2.NetworkService", - 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_members, - ), }, interceptors=interceptors, read_max_bytes=read_max_bytes, @@ -242,66 +203,6 @@ async def list( timeout_ms=timeout_ms, ) - async def list_external_members( - self, - request: metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceListExternalMembersRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceListExternalMembersResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="ListExternalMembers", - service_name="metalstack.admin.v2.NetworkService", - input=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceListExternalMembersRequest, - output=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceListExternalMembersResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def add_external_members( - self, - 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.NetworkServiceAddExternalMembersResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="AddExternalMembers", - service_name="metalstack.admin.v2.NetworkService", - 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_members( - self, - 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.NetworkServiceRemoveExternalMembersResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="RemoveExternalMembers", - service_name="metalstack.admin.v2.NetworkService", - 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, - timeout_ms=timeout_ms, - ) - @@ -317,12 +218,6 @@ def delete(self, request: metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkSe raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") def list(self, request: metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceListRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceListResponse: 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_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_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") class NetworkServiceWSGIApplication(ConnectWSGIApplication): @@ -379,36 +274,6 @@ def __init__(self, service: NetworkServiceSync, interceptors: Iterable[Intercept ), function=service.list, ), - "/metalstack.admin.v2.NetworkService/ListExternalMembers": EndpointSync.unary( - method=MethodInfo( - name="ListExternalMembers", - service_name="metalstack.admin.v2.NetworkService", - input=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceListExternalMembersRequest, - output=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceListExternalMembersResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.list_external_members, - ), - "/metalstack.admin.v2.NetworkService/AddExternalMembers": EndpointSync.unary( - method=MethodInfo( - name="AddExternalMembers", - service_name="metalstack.admin.v2.NetworkService", - 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_members, - ), - "/metalstack.admin.v2.NetworkService/RemoveExternalMembers": EndpointSync.unary( - method=MethodInfo( - name="RemoveExternalMembers", - service_name="metalstack.admin.v2.NetworkService", - 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_members, - ), }, interceptors=interceptors, read_max_bytes=read_max_bytes, @@ -523,64 +388,4 @@ def list( timeout_ms=timeout_ms, ) - def list_external_members( - self, - request: metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceListExternalMembersRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceListExternalMembersResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="ListExternalMembers", - service_name="metalstack.admin.v2.NetworkService", - input=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceListExternalMembersRequest, - output=metalstack_dot_admin_dot_v2_dot_network__pb2.NetworkServiceListExternalMembersResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def add_external_members( - self, - 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.NetworkServiceAddExternalMembersResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="AddExternalMembers", - service_name="metalstack.admin.v2.NetworkService", - 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_members( - self, - 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.NetworkServiceRemoveExternalMembersResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="RemoveExternalMembers", - service_name="metalstack.admin.v2.NetworkService", - 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, - timeout_ms=timeout_ms, - ) - diff --git a/python/metalstack/admin/v2/network_pb2.py b/python/metalstack/admin/v2/network_pb2.py index c2c0fdae..b79a7c4f 100644 --- a/python/metalstack/admin/v2/network_pb2.py +++ b/python/metalstack/admin/v2/network_pb2.py @@ -28,7 +28,7 @@ from metalstack.api.v2 import predefined_rules_pb2 as metalstack_dot_api_dot_v2_dot_predefined__rules__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\"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\"\xa5\x01\n)NetworkServiceListExternalMembersResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\x12\x42\n\x07members\x18\x02 \x03(\x0b\x32(.metalstack.api.v2.ExternalNetworkMemberR\x07members\"\xa4\x01\n(NetworkServiceAddExternalMembersResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\x12\x42\n\x07members\x18\x02 \x03(\x0b\x32(.metalstack.api.v2.ExternalNetworkMemberR\x07members\"\xa7\x01\n+NetworkServiceRemoveExternalMembersResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\x12\x42\n\x07members\x18\x02 \x03(\x0b\x32(.metalstack.api.v2.ExternalNetworkMemberR\x07members2\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\"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\"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\x08networks2\xe5\x04\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\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) @@ -80,20 +80,6 @@ _globals['_NETWORKSERVICEUPDATEREQUEST'].fields_by_name['additional_announcable_cidrs']._serialized_options = b'\272H\t\222\001\006\270\244\263\261\002\001' _globals['_NETWORKSERVICEDELETEREQUEST'].fields_by_name['id']._loaded_options = None _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['_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['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['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 @@ -104,12 +90,6 @@ _globals['_NETWORKSERVICE'].methods_by_name['Delete']._serialized_options = b'\322\363\030\001\001\340\363\030\001' _globals['_NETWORKSERVICE'].methods_by_name['List']._loaded_options = None _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['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=194 _globals['_NETWORKSERVICEGETREQUEST']._serialized_end=249 _globals['_NETWORKSERVICEGETRESPONSE']._serialized_start=251 @@ -122,26 +102,14 @@ _globals['_NETWORKSERVICEDELETEREQUEST']._serialized_end=2464 _globals['_NETWORKSERVICELISTREQUEST']._serialized_start=2466 _globals['_NETWORKSERVICELISTREQUEST']._serialized_end=2548 - _globals['_NETWORKSERVICELISTEXTERNALMEMBERSREQUEST']._serialized_start=2551 - _globals['_NETWORKSERVICELISTEXTERNALMEMBERSREQUEST']._serialized_end=2701 - _globals['_NETWORKSERVICEADDEXTERNALMEMBERSREQUEST']._serialized_start=2704 - _globals['_NETWORKSERVICEADDEXTERNALMEMBERSREQUEST']._serialized_end=2856 - _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSREQUEST']._serialized_start=2859 - _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSREQUEST']._serialized_end=3014 - _globals['_NETWORKSERVICECREATERESPONSE']._serialized_start=3016 - _globals['_NETWORKSERVICECREATERESPONSE']._serialized_end=3100 - _globals['_NETWORKSERVICEUPDATERESPONSE']._serialized_start=3102 - _globals['_NETWORKSERVICEUPDATERESPONSE']._serialized_end=3186 - _globals['_NETWORKSERVICEDELETERESPONSE']._serialized_start=3188 - _globals['_NETWORKSERVICEDELETERESPONSE']._serialized_end=3272 - _globals['_NETWORKSERVICELISTRESPONSE']._serialized_start=3274 - _globals['_NETWORKSERVICELISTRESPONSE']._serialized_end=3358 - _globals['_NETWORKSERVICELISTEXTERNALMEMBERSRESPONSE']._serialized_start=3361 - _globals['_NETWORKSERVICELISTEXTERNALMEMBERSRESPONSE']._serialized_end=3526 - _globals['_NETWORKSERVICEADDEXTERNALMEMBERSRESPONSE']._serialized_start=3529 - _globals['_NETWORKSERVICEADDEXTERNALMEMBERSRESPONSE']._serialized_end=3693 - _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSRESPONSE']._serialized_start=3696 - _globals['_NETWORKSERVICEREMOVEEXTERNALMEMBERSRESPONSE']._serialized_end=3863 - _globals['_NETWORKSERVICE']._serialized_start=3866 - _globals['_NETWORKSERVICE']._serialized_end=4969 + _globals['_NETWORKSERVICECREATERESPONSE']._serialized_start=2550 + _globals['_NETWORKSERVICECREATERESPONSE']._serialized_end=2634 + _globals['_NETWORKSERVICEUPDATERESPONSE']._serialized_start=2636 + _globals['_NETWORKSERVICEUPDATERESPONSE']._serialized_end=2720 + _globals['_NETWORKSERVICEDELETERESPONSE']._serialized_start=2722 + _globals['_NETWORKSERVICEDELETERESPONSE']._serialized_end=2806 + _globals['_NETWORKSERVICELISTRESPONSE']._serialized_start=2808 + _globals['_NETWORKSERVICELISTRESPONSE']._serialized_end=2892 + _globals['_NETWORKSERVICE']._serialized_start=2895 + _globals['_NETWORKSERVICE']._serialized_end=3508 # @@protoc_insertion_point(module_scope) diff --git a/python/metalstack/admin/v2/network_pb2.pyi b/python/metalstack/admin/v2/network_pb2.pyi index b9a3e91b..85ccd36e 100644 --- a/python/metalstack/admin/v2/network_pb2.pyi +++ b/python/metalstack/admin/v2/network_pb2.pyi @@ -100,34 +100,6 @@ class NetworkServiceListRequest(_message.Message): query: _network_pb2.NetworkQuery def __init__(self, query: _Optional[_Union[_network_pb2.NetworkQuery, _Mapping]] = ...) -> None: ... -class NetworkServiceListExternalMembersRequest(_message.Message): - __slots__ = ("network", "query") - NETWORK_FIELD_NUMBER: _ClassVar[int] - QUERY_FIELD_NUMBER: _ClassVar[int] - network: str - query: _network_pb2.ExternalNetworkMemberQuery - def __init__(self, network: _Optional[str] = ..., query: _Optional[_Union[_network_pb2.ExternalNetworkMemberQuery, _Mapping]] = ...) -> None: ... - -class NetworkServiceAddExternalMembersRequest(_message.Message): - __slots__ = ("network", "rack", "ports") - NETWORK_FIELD_NUMBER: _ClassVar[int] - RACK_FIELD_NUMBER: _ClassVar[int] - PORTS_FIELD_NUMBER: _ClassVar[int] - network: str - 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", "rack", "ports") - NETWORK_FIELD_NUMBER: _ClassVar[int] - RACK_FIELD_NUMBER: _ClassVar[int] - PORTS_FIELD_NUMBER: _ClassVar[int] - network: str - 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",) NETWORK_FIELD_NUMBER: _ClassVar[int] @@ -151,27 +123,3 @@ class NetworkServiceListResponse(_message.Message): NETWORKS_FIELD_NUMBER: _ClassVar[int] networks: _containers.RepeatedCompositeFieldContainer[_network_pb2.Network] def __init__(self, networks: _Optional[_Iterable[_Union[_network_pb2.Network, _Mapping]]] = ...) -> None: ... - -class NetworkServiceListExternalMembersResponse(_message.Message): - __slots__ = ("network", "members") - NETWORK_FIELD_NUMBER: _ClassVar[int] - MEMBERS_FIELD_NUMBER: _ClassVar[int] - network: _network_pb2.Network - members: _containers.RepeatedCompositeFieldContainer[_network_pb2.ExternalNetworkMember] - def __init__(self, network: _Optional[_Union[_network_pb2.Network, _Mapping]] = ..., members: _Optional[_Iterable[_Union[_network_pb2.ExternalNetworkMember, _Mapping]]] = ...) -> None: ... - -class NetworkServiceAddExternalMembersResponse(_message.Message): - __slots__ = ("network", "members") - NETWORK_FIELD_NUMBER: _ClassVar[int] - MEMBERS_FIELD_NUMBER: _ClassVar[int] - network: _network_pb2.Network - members: _containers.RepeatedCompositeFieldContainer[_network_pb2.ExternalNetworkMember] - def __init__(self, network: _Optional[_Union[_network_pb2.Network, _Mapping]] = ..., members: _Optional[_Iterable[_Union[_network_pb2.ExternalNetworkMember, _Mapping]]] = ...) -> None: ... - -class NetworkServiceRemoveExternalMembersResponse(_message.Message): - __slots__ = ("network", "members") - NETWORK_FIELD_NUMBER: _ClassVar[int] - MEMBERS_FIELD_NUMBER: _ClassVar[int] - network: _network_pb2.Network - members: _containers.RepeatedCompositeFieldContainer[_network_pb2.ExternalNetworkMember] - def __init__(self, network: _Optional[_Union[_network_pb2.Network, _Mapping]] = ..., members: _Optional[_Iterable[_Union[_network_pb2.ExternalNetworkMember, _Mapping]]] = ...) -> None: ... diff --git a/python/metalstack/api/v2/network_pb2.py b/python/metalstack/api/v2/network_pb2.py index 9c094c39..40c40586 100644 --- a/python/metalstack/api/v2/network_pb2.py +++ b/python/metalstack/api/v2/network_pb2.py @@ -27,7 +27,7 @@ from metalstack.api.v2 import predefined_rules_pb2 as metalstack_dot_api_dot_v2_dot_predefined__rules__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fmetalstack/api/v2/network.proto\x12\x11metalstack.api.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1emetalstack/api/v2/common.proto\x1a(metalstack/api/v2/predefined_rules.proto\"^\n\x18NetworkServiceGetRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\x12%\n\x07project\x18\x02 \x01(\tB\x0b\xbaH\x08r\x03\xb0\x01\x01\xd8\x01\x01R\x07project\"Q\n\x19NetworkServiceGetResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"\xb1\x04\n\x1bNetworkServiceCreateRequest\x12\"\n\x07project\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12$\n\x04name\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x04name\x88\x01\x01\x12\x32\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x01R\x0b\x64\x65scription\x88\x01\x01\x12.\n\tpartition\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x02R\tpartition\x88\x01\x01\x12\x31\n\x06labels\x18\x05 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsR\x06labels\x12\x37\n\x0eparent_network\x18\x06 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x03R\rparentNetwork\x88\x01\x01\x12\x41\n\x06length\x18\x07 \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthH\x04R\x06length\x88\x01\x01\x12]\n\x0e\x61\x64\x64ress_family\x18\x08 \x01(\x0e\x32\'.metalstack.api.v2.NetworkAddressFamilyB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x05R\raddressFamily\x88\x01\x01\x42\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0c\n\n_partitionB\x11\n\x0f_parent_networkB\t\n\x07_lengthB\x11\n\x0f_address_family\"T\n\x1cNetworkServiceCreateResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"\xe2\x02\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\x07project\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12$\n\x04name\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x04name\x88\x01\x01\x12\x32\n\x0b\x64\x65scription\x18\x05 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x01R\x0b\x64\x65scription\x88\x01\x01\x12<\n\x06labels\x18\x06 \x01(\x0b\x32\x1f.metalstack.api.v2.UpdateLabelsH\x02R\x06labels\x88\x01\x01\x42\x07\n\x05_nameB\x0e\n\x0c_descriptionB\t\n\x07_labels\"T\n\x1cNetworkServiceUpdateResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"y\n\x19NetworkServiceListRequest\x12%\n\x07project\x18\x01 \x01(\tB\x0b\xbaH\x08r\x03\xb0\x01\x01\xd8\x01\x01R\x07project\x12\x35\n\x05query\x18\x02 \x01(\x0b\x32\x1f.metalstack.api.v2.NetworkQueryR\x05query\"T\n\x1aNetworkServiceListResponse\x12\x36\n\x08networks\x18\x01 \x03(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x08networks\"\x85\x01\n%NetworkServiceListBaseNetworksRequest\x12%\n\x07project\x18\x01 \x01(\tB\x0b\xbaH\x08r\x03\xb0\x01\x01\xd8\x01\x01R\x07project\x12\x35\n\x05query\x18\x02 \x01(\x0b\x32\x1f.metalstack.api.v2.NetworkQueryR\x05query\"`\n&NetworkServiceListBaseNetworksResponse\x12\x36\n\x08networks\x18\x01 \x03(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x08networks\"^\n\x1bNetworkServiceDeleteRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\x12\"\n\x07project\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\"T\n\x1cNetworkServiceDeleteResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"\xa4\x08\n\x07Network\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\x12+\n\x04meta\x18\x02 \x01(\x0b\x32\x17.metalstack.api.v2.MetaR\x04meta\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\tpartition\x18\x05 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x02R\tpartition\x88\x01\x01\x12\'\n\x07project\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x03R\x07project\x88\x01\x01\x12+\n\tnamespace\x18\x07 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x04R\tnamespace\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<\n\x04type\x18\x0c \x01(\x0e\x32\x1e.metalstack.api.v2.NetworkTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x04type\x12?\n\x08nat_type\x18\r \x01(\x0e\x32\x1a.metalstack.api.v2.NATTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x07natType\x12\x15\n\x03vrf\x18\x0e \x01(\rH\x05R\x03vrf\x88\x01\x01\x12\x37\n\x0eparent_network\x18\x0f \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x06R\rparentNetwork\x88\x01\x01\x12N\n\x1c\x61\x64\x64itional_announcable_cidrs\x18\x10 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x1a\x61\x64\x64itionalAnnouncableCidrs\x12G\n\x0b\x63onsumption\x18\x11 \x01(\x0b\x32%.metalstack.api.v2.NetworkConsumptionR\x0b\x63onsumptionB\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0c\n\n_partitionB\n\n\x08_projectB\x0c\n\n_namespaceB\x06\n\x04_vrfB\x11\n\x0f_parent_network\"\x82\x07\n\x0cNetworkQuery\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\tnamespace\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x05R\tnamespace\x88\x01\x01\x12(\n\x08prefixes\x18\x07 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x08prefixes\x12?\n\x14\x64\x65stination_prefixes\x18\x08 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x13\x64\x65stinationPrefixes\x12\x15\n\x03vrf\x18\t \x01(\rH\x06R\x03vrf\x88\x01\x01\x12\x37\n\x0eparent_network\x18\n \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x07R\rparentNetwork\x88\x01\x01\x12]\n\x0e\x61\x64\x64ress_family\x18\x0b \x01(\x0e\x32\'.metalstack.api.v2.NetworkAddressFamilyB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x08R\raddressFamily\x88\x01\x01\x12\x41\n\x04type\x18\x0c \x01(\x0e\x32\x1e.metalstack.api.v2.NetworkTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01H\tR\x04type\x88\x01\x01\x12\x44\n\x08nat_type\x18\r \x01(\x0e\x32\x1a.metalstack.api.v2.NATTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01H\nR\x07natType\x88\x01\x01\x12\x36\n\x06labels\x18\x0e \x01(\x0b\x32\x19.metalstack.api.v2.LabelsH\x0bR\x06labels\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0c\n\n_partitionB\n\n\x08_projectB\x0c\n\n_namespaceB\x06\n\x04_vrfB\x11\n\x0f_parent_networkB\x11\n\x0f_address_familyB\x07\n\x05_typeB\x0b\n\t_nat_typeB\t\n\x07_labels\"\xc0\x01\n\x1a\x45xternalNetworkMemberQuery\x12*\n\x06switch\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01H\x00R\x06switch\x88\x01\x01\x12$\n\x04rack\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x04rack\x88\x01\x01\x12.\n\tpartition\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x02R\tpartition\x88\x01\x01\x42\t\n\x07_switchB\x07\n\x05_rackB\x0c\n\n_partition\"n\n\x11\x43hildPrefixLength\x12\"\n\x04ipv4\x18\x01 \x01(\rB\t\xbaH\x06*\x04\x18 \x00H\x00R\x04ipv4\x88\x01\x01\x12#\n\x04ipv6\x18\x02 \x01(\rB\n\xbaH\x07*\x05\x18\x80\x01 \x00H\x01R\x04ipv6\x88\x01\x01\x42\x07\n\x05_ipv4B\x07\n\x05_ipv6\"~\n\x12NetworkConsumption\x12\x33\n\x04ipv4\x18\x01 \x01(\x0b\x32\x1f.metalstack.api.v2.NetworkUsageR\x04ipv4\x12\x33\n\x04ipv6\x18\x02 \x01(\x0b\x32\x1f.metalstack.api.v2.NetworkUsageR\x04ipv6\"\xa2\x01\n\x0cNetworkUsage\x12#\n\ravailable_ips\x18\x01 \x01(\x04R\x0c\x61vailableIps\x12\x19\n\x08used_ips\x18\x02 \x01(\x04R\x07usedIps\x12-\n\x12\x61vailable_prefixes\x18\x03 \x01(\x04R\x11\x61vailablePrefixes\x12#\n\rused_prefixes\x18\x04 \x01(\x04R\x0cusedPrefixes\"\xaf\x01\n\x15\x45xternalNetworkMember\x12#\n\x06switch\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x06switch\x12)\n\tpartition\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01R\tpartition\x12\x1f\n\x04rack\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x04rack\x12%\n\x05ports\x18\x04 \x03(\tB\x0f\xbaH\x0c\x92\x01\t\x10\x80\x10\xd0\xa4\xb3\xb1\x02\x01R\x05ports*m\n\x07NATType\x12\x18\n\x14NAT_TYPE_UNSPECIFIED\x10\x00\x12\x1b\n\rNAT_TYPE_NONE\x10\x01\x1a\x08\x82\xb2\x19\x04none\x12+\n\x18NAT_TYPE_IPV4_MASQUERADE\x10\x02\x1a\r\x82\xb2\x19\tipv4-masq*\xad\x02\n\x0bNetworkType\x12\x1c\n\x18NETWORK_TYPE_UNSPECIFIED\x10\x00\x12\'\n\x15NETWORK_TYPE_EXTERNAL\x10\x01\x1a\x0c\x82\xb2\x19\x08\x65xternal\x12\'\n\x15NETWORK_TYPE_UNDERLAY\x10\x02\x1a\x0c\x82\xb2\x19\x08underlay\x12!\n\x12NETWORK_TYPE_SUPER\x10\x03\x1a\t\x82\xb2\x19\x05super\x12\x37\n\x1dNETWORK_TYPE_SUPER_NAMESPACED\x10\x04\x1a\x14\x82\xb2\x19\x10super-namespaced\x12!\n\x12NETWORK_TYPE_CHILD\x10\x05\x1a\t\x82\xb2\x19\x05\x63hild\x12/\n\x19NETWORK_TYPE_CHILD_SHARED\x10\x06\x1a\x10\x82\xb2\x19\x0c\x63hild-shared*\xc7\x01\n\x14NetworkAddressFamily\x12&\n\"NETWORK_ADDRESS_FAMILY_UNSPECIFIED\x10\x00\x12\'\n\x19NETWORK_ADDRESS_FAMILY_V4\x10\x01\x1a\x08\x82\xb2\x19\x04ipv4\x12\'\n\x19NETWORK_ADDRESS_FAMILY_V6\x10\x02\x1a\x08\x82\xb2\x19\x04ipv6\x12\x35\n!NETWORK_ADDRESS_FAMILY_DUAL_STACK\x10\x03\x1a\x0e\x82\xb2\x19\ndual-stack2\xed\x05\n\x0eNetworkService\x12m\n\x03Get\x12+.metalstack.api.v2.NetworkServiceGetRequest\x1a,.metalstack.api.v2.NetworkServiceGetResponse\"\x0b\xca\xf3\x18\x03\x01\x02\x03\xe0\xf3\x18\x02\x12u\n\x06\x43reate\x12..metalstack.api.v2.NetworkServiceCreateRequest\x1a/.metalstack.api.v2.NetworkServiceCreateResponse\"\n\xca\xf3\x18\x02\x01\x02\xe0\xf3\x18\x01\x12u\n\x06Update\x12..metalstack.api.v2.NetworkServiceUpdateRequest\x1a/.metalstack.api.v2.NetworkServiceUpdateResponse\"\n\xca\xf3\x18\x02\x01\x02\xe0\xf3\x18\x01\x12p\n\x04List\x12,.metalstack.api.v2.NetworkServiceListRequest\x1a-.metalstack.api.v2.NetworkServiceListResponse\"\x0b\xca\xf3\x18\x03\x01\x02\x03\xe0\xf3\x18\x02\x12\x94\x01\n\x10ListBaseNetworks\x12\x38.metalstack.api.v2.NetworkServiceListBaseNetworksRequest\x1a\x39.metalstack.api.v2.NetworkServiceListBaseNetworksResponse\"\x0b\xca\xf3\x18\x03\x01\x02\x03\xe0\xf3\x18\x02\x12u\n\x06\x44\x65lete\x12..metalstack.api.v2.NetworkServiceDeleteRequest\x1a/.metalstack.api.v2.NetworkServiceDeleteResponse\"\n\xca\xf3\x18\x02\x01\x02\xe0\xf3\x18\x01\x42\xc2\x01\n\x15\x63om.metalstack.api.v2B\x0cNetworkProtoP\x01Z5github.com/metal-stack/api/go/metalstack/api/v2;apiv2\xa2\x02\x03MAX\xaa\x02\x11Metalstack.Api.V2\xca\x02\x11Metalstack\\Api\\V2\xe2\x02\x1dMetalstack\\Api\\V2\\GPBMetadata\xea\x02\x13Metalstack::Api::V2b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fmetalstack/api/v2/network.proto\x12\x11metalstack.api.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1emetalstack/api/v2/common.proto\x1a(metalstack/api/v2/predefined_rules.proto\"^\n\x18NetworkServiceGetRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\x12%\n\x07project\x18\x02 \x01(\tB\x0b\xbaH\x08r\x03\xb0\x01\x01\xd8\x01\x01R\x07project\"Q\n\x19NetworkServiceGetResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"\xb1\x04\n\x1bNetworkServiceCreateRequest\x12\"\n\x07project\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12$\n\x04name\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x04name\x88\x01\x01\x12\x32\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x01R\x0b\x64\x65scription\x88\x01\x01\x12.\n\tpartition\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x02R\tpartition\x88\x01\x01\x12\x31\n\x06labels\x18\x05 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsR\x06labels\x12\x37\n\x0eparent_network\x18\x06 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x03R\rparentNetwork\x88\x01\x01\x12\x41\n\x06length\x18\x07 \x01(\x0b\x32$.metalstack.api.v2.ChildPrefixLengthH\x04R\x06length\x88\x01\x01\x12]\n\x0e\x61\x64\x64ress_family\x18\x08 \x01(\x0e\x32\'.metalstack.api.v2.NetworkAddressFamilyB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x05R\raddressFamily\x88\x01\x01\x42\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0c\n\n_partitionB\x11\n\x0f_parent_networkB\t\n\x07_lengthB\x11\n\x0f_address_family\"T\n\x1cNetworkServiceCreateResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"\xe2\x02\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\x07project\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12$\n\x04name\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x04name\x88\x01\x01\x12\x32\n\x0b\x64\x65scription\x18\x05 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x01R\x0b\x64\x65scription\x88\x01\x01\x12<\n\x06labels\x18\x06 \x01(\x0b\x32\x1f.metalstack.api.v2.UpdateLabelsH\x02R\x06labels\x88\x01\x01\x42\x07\n\x05_nameB\x0e\n\x0c_descriptionB\t\n\x07_labels\"T\n\x1cNetworkServiceUpdateResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"y\n\x19NetworkServiceListRequest\x12%\n\x07project\x18\x01 \x01(\tB\x0b\xbaH\x08r\x03\xb0\x01\x01\xd8\x01\x01R\x07project\x12\x35\n\x05query\x18\x02 \x01(\x0b\x32\x1f.metalstack.api.v2.NetworkQueryR\x05query\"T\n\x1aNetworkServiceListResponse\x12\x36\n\x08networks\x18\x01 \x03(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x08networks\"\x85\x01\n%NetworkServiceListBaseNetworksRequest\x12%\n\x07project\x18\x01 \x01(\tB\x0b\xbaH\x08r\x03\xb0\x01\x01\xd8\x01\x01R\x07project\x12\x35\n\x05query\x18\x02 \x01(\x0b\x32\x1f.metalstack.api.v2.NetworkQueryR\x05query\"`\n&NetworkServiceListBaseNetworksResponse\x12\x36\n\x08networks\x18\x01 \x03(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x08networks\"^\n\x1bNetworkServiceDeleteRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\x12\"\n\x07project\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\"T\n\x1cNetworkServiceDeleteResponse\x12\x34\n\x07network\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.NetworkR\x07network\"\xa4\x08\n\x07Network\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x02id\x12+\n\x04meta\x18\x02 \x01(\x0b\x32\x17.metalstack.api.v2.MetaR\x04meta\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\tpartition\x18\x05 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x02R\tpartition\x88\x01\x01\x12\'\n\x07project\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x03R\x07project\x88\x01\x01\x12+\n\tnamespace\x18\x07 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x04R\tnamespace\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<\n\x04type\x18\x0c \x01(\x0e\x32\x1e.metalstack.api.v2.NetworkTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x04type\x12?\n\x08nat_type\x18\r \x01(\x0e\x32\x1a.metalstack.api.v2.NATTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x07natType\x12\x15\n\x03vrf\x18\x0e \x01(\rH\x05R\x03vrf\x88\x01\x01\x12\x37\n\x0eparent_network\x18\x0f \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x06R\rparentNetwork\x88\x01\x01\x12N\n\x1c\x61\x64\x64itional_announcable_cidrs\x18\x10 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x1a\x61\x64\x64itionalAnnouncableCidrs\x12G\n\x0b\x63onsumption\x18\x11 \x01(\x0b\x32%.metalstack.api.v2.NetworkConsumptionR\x0b\x63onsumptionB\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0c\n\n_partitionB\n\n\x08_projectB\x0c\n\n_namespaceB\x06\n\x04_vrfB\x11\n\x0f_parent_network\"\x82\x07\n\x0cNetworkQuery\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\tnamespace\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x05R\tnamespace\x88\x01\x01\x12(\n\x08prefixes\x18\x07 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x08prefixes\x12?\n\x14\x64\x65stination_prefixes\x18\x08 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x13\x64\x65stinationPrefixes\x12\x15\n\x03vrf\x18\t \x01(\rH\x06R\x03vrf\x88\x01\x01\x12\x37\n\x0eparent_network\x18\n \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x07R\rparentNetwork\x88\x01\x01\x12]\n\x0e\x61\x64\x64ress_family\x18\x0b \x01(\x0e\x32\'.metalstack.api.v2.NetworkAddressFamilyB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x08R\raddressFamily\x88\x01\x01\x12\x41\n\x04type\x18\x0c \x01(\x0e\x32\x1e.metalstack.api.v2.NetworkTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01H\tR\x04type\x88\x01\x01\x12\x44\n\x08nat_type\x18\r \x01(\x0e\x32\x1a.metalstack.api.v2.NATTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01H\nR\x07natType\x88\x01\x01\x12\x36\n\x06labels\x18\x0e \x01(\x0b\x32\x19.metalstack.api.v2.LabelsH\x0bR\x06labels\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0c\n\n_partitionB\n\n\x08_projectB\x0c\n\n_namespaceB\x06\n\x04_vrfB\x11\n\x0f_parent_networkB\x11\n\x0f_address_familyB\x07\n\x05_typeB\x0b\n\t_nat_typeB\t\n\x07_labels\"n\n\x11\x43hildPrefixLength\x12\"\n\x04ipv4\x18\x01 \x01(\rB\t\xbaH\x06*\x04\x18 \x00H\x00R\x04ipv4\x88\x01\x01\x12#\n\x04ipv6\x18\x02 \x01(\rB\n\xbaH\x07*\x05\x18\x80\x01 \x00H\x01R\x04ipv6\x88\x01\x01\x42\x07\n\x05_ipv4B\x07\n\x05_ipv6\"~\n\x12NetworkConsumption\x12\x33\n\x04ipv4\x18\x01 \x01(\x0b\x32\x1f.metalstack.api.v2.NetworkUsageR\x04ipv4\x12\x33\n\x04ipv6\x18\x02 \x01(\x0b\x32\x1f.metalstack.api.v2.NetworkUsageR\x04ipv6\"\xa2\x01\n\x0cNetworkUsage\x12#\n\ravailable_ips\x18\x01 \x01(\x04R\x0c\x61vailableIps\x12\x19\n\x08used_ips\x18\x02 \x01(\x04R\x07usedIps\x12-\n\x12\x61vailable_prefixes\x18\x03 \x01(\x04R\x11\x61vailablePrefixes\x12#\n\rused_prefixes\x18\x04 \x01(\x04R\x0cusedPrefixes*m\n\x07NATType\x12\x18\n\x14NAT_TYPE_UNSPECIFIED\x10\x00\x12\x1b\n\rNAT_TYPE_NONE\x10\x01\x1a\x08\x82\xb2\x19\x04none\x12+\n\x18NAT_TYPE_IPV4_MASQUERADE\x10\x02\x1a\r\x82\xb2\x19\tipv4-masq*\xad\x02\n\x0bNetworkType\x12\x1c\n\x18NETWORK_TYPE_UNSPECIFIED\x10\x00\x12\'\n\x15NETWORK_TYPE_EXTERNAL\x10\x01\x1a\x0c\x82\xb2\x19\x08\x65xternal\x12\'\n\x15NETWORK_TYPE_UNDERLAY\x10\x02\x1a\x0c\x82\xb2\x19\x08underlay\x12!\n\x12NETWORK_TYPE_SUPER\x10\x03\x1a\t\x82\xb2\x19\x05super\x12\x37\n\x1dNETWORK_TYPE_SUPER_NAMESPACED\x10\x04\x1a\x14\x82\xb2\x19\x10super-namespaced\x12!\n\x12NETWORK_TYPE_CHILD\x10\x05\x1a\t\x82\xb2\x19\x05\x63hild\x12/\n\x19NETWORK_TYPE_CHILD_SHARED\x10\x06\x1a\x10\x82\xb2\x19\x0c\x63hild-shared*\xc7\x01\n\x14NetworkAddressFamily\x12&\n\"NETWORK_ADDRESS_FAMILY_UNSPECIFIED\x10\x00\x12\'\n\x19NETWORK_ADDRESS_FAMILY_V4\x10\x01\x1a\x08\x82\xb2\x19\x04ipv4\x12\'\n\x19NETWORK_ADDRESS_FAMILY_V6\x10\x02\x1a\x08\x82\xb2\x19\x04ipv6\x12\x35\n!NETWORK_ADDRESS_FAMILY_DUAL_STACK\x10\x03\x1a\x0e\x82\xb2\x19\ndual-stack2\xed\x05\n\x0eNetworkService\x12m\n\x03Get\x12+.metalstack.api.v2.NetworkServiceGetRequest\x1a,.metalstack.api.v2.NetworkServiceGetResponse\"\x0b\xca\xf3\x18\x03\x01\x02\x03\xe0\xf3\x18\x02\x12u\n\x06\x43reate\x12..metalstack.api.v2.NetworkServiceCreateRequest\x1a/.metalstack.api.v2.NetworkServiceCreateResponse\"\n\xca\xf3\x18\x02\x01\x02\xe0\xf3\x18\x01\x12u\n\x06Update\x12..metalstack.api.v2.NetworkServiceUpdateRequest\x1a/.metalstack.api.v2.NetworkServiceUpdateResponse\"\n\xca\xf3\x18\x02\x01\x02\xe0\xf3\x18\x01\x12p\n\x04List\x12,.metalstack.api.v2.NetworkServiceListRequest\x1a-.metalstack.api.v2.NetworkServiceListResponse\"\x0b\xca\xf3\x18\x03\x01\x02\x03\xe0\xf3\x18\x02\x12\x94\x01\n\x10ListBaseNetworks\x12\x38.metalstack.api.v2.NetworkServiceListBaseNetworksRequest\x1a\x39.metalstack.api.v2.NetworkServiceListBaseNetworksResponse\"\x0b\xca\xf3\x18\x03\x01\x02\x03\xe0\xf3\x18\x02\x12u\n\x06\x44\x65lete\x12..metalstack.api.v2.NetworkServiceDeleteRequest\x1a/.metalstack.api.v2.NetworkServiceDeleteResponse\"\n\xca\xf3\x18\x02\x01\x02\xe0\xf3\x18\x01\x42\xc2\x01\n\x15\x63om.metalstack.api.v2B\x0cNetworkProtoP\x01Z5github.com/metal-stack/api/go/metalstack/api/v2;apiv2\xa2\x02\x03MAX\xaa\x02\x11Metalstack.Api.V2\xca\x02\x11Metalstack\\Api\\V2\xe2\x02\x1dMetalstack\\Api\\V2\\GPBMetadata\xea\x02\x13Metalstack::Api::V2b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -139,24 +139,10 @@ _globals['_NETWORKQUERY'].fields_by_name['type']._serialized_options = b'\272H\005\202\001\002\020\001' _globals['_NETWORKQUERY'].fields_by_name['nat_type']._loaded_options = None _globals['_NETWORKQUERY'].fields_by_name['nat_type']._serialized_options = b'\272H\005\202\001\002\020\001' - _globals['_EXTERNALNETWORKMEMBERQUERY'].fields_by_name['switch']._loaded_options = None - _globals['_EXTERNALNETWORKMEMBERQUERY'].fields_by_name['switch']._serialized_options = b'\272H\nr\010h\001\300\263\256\261\002\001' - _globals['_EXTERNALNETWORKMEMBERQUERY'].fields_by_name['rack']._loaded_options = None - _globals['_EXTERNALNETWORKMEMBERQUERY'].fields_by_name['rack']._serialized_options = b'\272H\010r\006\300\263\256\261\002\001' - _globals['_EXTERNALNETWORKMEMBERQUERY'].fields_by_name['partition']._loaded_options = None - _globals['_EXTERNALNETWORKMEMBERQUERY'].fields_by_name['partition']._serialized_options = b'\272H\010r\006\320\263\256\261\002\001' _globals['_CHILDPREFIXLENGTH'].fields_by_name['ipv4']._loaded_options = None _globals['_CHILDPREFIXLENGTH'].fields_by_name['ipv4']._serialized_options = b'\272H\006*\004\030 \000' _globals['_CHILDPREFIXLENGTH'].fields_by_name['ipv6']._loaded_options = None _globals['_CHILDPREFIXLENGTH'].fields_by_name['ipv6']._serialized_options = b'\272H\007*\005\030\200\001 \000' - _globals['_EXTERNALNETWORKMEMBER'].fields_by_name['switch']._loaded_options = None - _globals['_EXTERNALNETWORKMEMBER'].fields_by_name['switch']._serialized_options = b'\272H\010r\006\300\263\256\261\002\001' - _globals['_EXTERNALNETWORKMEMBER'].fields_by_name['partition']._loaded_options = None - _globals['_EXTERNALNETWORKMEMBER'].fields_by_name['partition']._serialized_options = b'\272H\010r\006\320\263\256\261\002\001' - _globals['_EXTERNALNETWORKMEMBER'].fields_by_name['rack']._loaded_options = None - _globals['_EXTERNALNETWORKMEMBER'].fields_by_name['rack']._serialized_options = b'\272H\010r\006\300\263\256\261\002\001' - _globals['_EXTERNALNETWORKMEMBER'].fields_by_name['ports']._loaded_options = None - _globals['_EXTERNALNETWORKMEMBER'].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'\312\363\030\003\001\002\003\340\363\030\002' _globals['_NETWORKSERVICE'].methods_by_name['Create']._loaded_options = None @@ -169,12 +155,12 @@ _globals['_NETWORKSERVICE'].methods_by_name['ListBaseNetworks']._serialized_options = b'\312\363\030\003\001\002\003\340\363\030\002' _globals['_NETWORKSERVICE'].methods_by_name['Delete']._loaded_options = None _globals['_NETWORKSERVICE'].methods_by_name['Delete']._serialized_options = b'\312\363\030\002\001\002\340\363\030\001' - _globals['_NATTYPE']._serialized_start=4796 - _globals['_NATTYPE']._serialized_end=4905 - _globals['_NETWORKTYPE']._serialized_start=4908 - _globals['_NETWORKTYPE']._serialized_end=5209 - _globals['_NETWORKADDRESSFAMILY']._serialized_start=5212 - _globals['_NETWORKADDRESSFAMILY']._serialized_end=5411 + _globals['_NATTYPE']._serialized_start=4423 + _globals['_NATTYPE']._serialized_end=4532 + _globals['_NETWORKTYPE']._serialized_start=4535 + _globals['_NETWORKTYPE']._serialized_end=4836 + _globals['_NETWORKADDRESSFAMILY']._serialized_start=4839 + _globals['_NETWORKADDRESSFAMILY']._serialized_end=5038 _globals['_NETWORKSERVICEGETREQUEST']._serialized_start=157 _globals['_NETWORKSERVICEGETREQUEST']._serialized_end=251 _globals['_NETWORKSERVICEGETRESPONSE']._serialized_start=253 @@ -203,16 +189,12 @@ _globals['_NETWORK']._serialized_end=3115 _globals['_NETWORKQUERY']._serialized_start=3118 _globals['_NETWORKQUERY']._serialized_end=4016 - _globals['_EXTERNALNETWORKMEMBERQUERY']._serialized_start=4019 - _globals['_EXTERNALNETWORKMEMBERQUERY']._serialized_end=4211 - _globals['_CHILDPREFIXLENGTH']._serialized_start=4213 - _globals['_CHILDPREFIXLENGTH']._serialized_end=4323 - _globals['_NETWORKCONSUMPTION']._serialized_start=4325 - _globals['_NETWORKCONSUMPTION']._serialized_end=4451 - _globals['_NETWORKUSAGE']._serialized_start=4454 - _globals['_NETWORKUSAGE']._serialized_end=4616 - _globals['_EXTERNALNETWORKMEMBER']._serialized_start=4619 - _globals['_EXTERNALNETWORKMEMBER']._serialized_end=4794 - _globals['_NETWORKSERVICE']._serialized_start=5414 - _globals['_NETWORKSERVICE']._serialized_end=6163 + _globals['_CHILDPREFIXLENGTH']._serialized_start=4018 + _globals['_CHILDPREFIXLENGTH']._serialized_end=4128 + _globals['_NETWORKCONSUMPTION']._serialized_start=4130 + _globals['_NETWORKCONSUMPTION']._serialized_end=4256 + _globals['_NETWORKUSAGE']._serialized_start=4259 + _globals['_NETWORKUSAGE']._serialized_end=4421 + _globals['_NETWORKSERVICE']._serialized_start=5041 + _globals['_NETWORKSERVICE']._serialized_end=5790 # @@protoc_insertion_point(module_scope) diff --git a/python/metalstack/api/v2/network_pb2.pyi b/python/metalstack/api/v2/network_pb2.pyi index 13610805..10502757 100644 --- a/python/metalstack/api/v2/network_pb2.pyi +++ b/python/metalstack/api/v2/network_pb2.pyi @@ -221,16 +221,6 @@ class NetworkQuery(_message.Message): labels: _common_pb2.Labels def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., partition: _Optional[str] = ..., project: _Optional[str] = ..., namespace: _Optional[str] = ..., prefixes: _Optional[_Iterable[str]] = ..., destination_prefixes: _Optional[_Iterable[str]] = ..., vrf: _Optional[int] = ..., parent_network: _Optional[str] = ..., address_family: _Optional[_Union[NetworkAddressFamily, str]] = ..., type: _Optional[_Union[NetworkType, str]] = ..., nat_type: _Optional[_Union[NATType, str]] = ..., labels: _Optional[_Union[_common_pb2.Labels, _Mapping]] = ...) -> None: ... -class ExternalNetworkMemberQuery(_message.Message): - __slots__ = ("switch", "rack", "partition") - SWITCH_FIELD_NUMBER: _ClassVar[int] - RACK_FIELD_NUMBER: _ClassVar[int] - PARTITION_FIELD_NUMBER: _ClassVar[int] - switch: str - rack: str - partition: str - def __init__(self, switch: _Optional[str] = ..., rack: _Optional[str] = ..., partition: _Optional[str] = ...) -> None: ... - class ChildPrefixLength(_message.Message): __slots__ = ("ipv4", "ipv6") IPV4_FIELD_NUMBER: _ClassVar[int] @@ -258,15 +248,3 @@ class NetworkUsage(_message.Message): available_prefixes: int used_prefixes: int def __init__(self, available_ips: _Optional[int] = ..., used_ips: _Optional[int] = ..., available_prefixes: _Optional[int] = ..., used_prefixes: _Optional[int] = ...) -> None: ... - -class ExternalNetworkMember(_message.Message): - __slots__ = ("switch", "partition", "rack", "ports") - SWITCH_FIELD_NUMBER: _ClassVar[int] - PARTITION_FIELD_NUMBER: _ClassVar[int] - RACK_FIELD_NUMBER: _ClassVar[int] - PORTS_FIELD_NUMBER: _ClassVar[int] - switch: str - partition: str - rack: str - ports: _containers.RepeatedScalarFieldContainer[str] - def __init__(self, switch: _Optional[str] = ..., partition: _Optional[str] = ..., rack: _Optional[str] = ..., ports: _Optional[_Iterable[str]] = ...) -> None: ... diff --git a/python/metalstack/api/v2/switch_pb2.py b/python/metalstack/api/v2/switch_pb2.py index 70055cb5..71cbe6d6 100644 --- a/python/metalstack/api/v2/switch_pb2.py +++ b/python/metalstack/api/v2/switch_pb2.py @@ -30,7 +30,7 @@ from metalstack.api.v2 import predefined_rules_pb2 as metalstack_dot_api_dot_v2_dot_predefined__rules__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1emetalstack/api/v2/switch.proto\x12\x11metalstack.api.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1emetalstack/api/v2/common.proto\x1a\x1fmetalstack/api/v2/machine.proto\x1a(metalstack/api/v2/predefined_rules.proto\"\xe2\x06\n\x06Switch\x12\x1d\n\x02id\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01R\x02id\x12+\n\x04meta\x18\x02 \x01(\x0b\x32\x17.metalstack.api.v2.MetaR\x04meta\x12-\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01R\x0b\x64\x65scription\x12$\n\x04rack\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x04rack\x88\x01\x01\x12$\n\x04room\x18\x05 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x04room\x88\x01\x01\x12)\n\tpartition\x18\x06 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01R\tpartition\x12Q\n\x0creplace_mode\x18\x07 \x01(\x0e\x32$.metalstack.api.v2.SwitchReplaceModeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x0breplaceMode\x12,\n\rmanagement_ip\x18\x08 \x01(\tB\x07\xbaH\x04r\x02p\x01R\x0cmanagementIp\x12\x38\n\x0fmanagement_user\x18\t \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x02R\x0emanagementUser\x88\x01\x01\x12\x38\n\x0f\x63onsole_command\x18\n \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x03R\x0e\x63onsoleCommand\x88\x01\x01\x12\x30\n\x04nics\x18\x0b \x03(\x0b\x32\x1c.metalstack.api.v2.SwitchNicR\x04nics\x12+\n\x02os\x18\x0c \x01(\x0b\x32\x1b.metalstack.api.v2.SwitchOSR\x02os\x12U\n\x13machine_connections\x18\r \x03(\x0b\x32$.metalstack.api.v2.MachineConnectionR\x12machineConnections\x12:\n\tlast_sync\x18\x0e \x01(\x0b\x32\x1d.metalstack.api.v2.SwitchSyncR\x08lastSync\x12\x45\n\x0flast_sync_error\x18\x0f \x01(\x0b\x32\x1d.metalstack.api.v2.SwitchSyncR\rlastSyncErrorB\x07\n\x05_rackB\x07\n\x05_roomB\x12\n\x10_management_userB\x12\n\x10_console_command\"\xb1\x01\n\x08SwitchOS\x12\x43\n\x06vendor\x18\x01 \x01(\x0e\x32!.metalstack.api.v2.SwitchOSVendorB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x06vendor\x12%\n\x07version\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07version\x12\x39\n\x12metal_core_version\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x10metalCoreVersion\"\xe9\x03\n\tSwitchNic\x12\x1f\n\x04name\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x04name\x12+\n\nidentifier\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\nidentifier\x12\x19\n\x03mac\x18\x03 \x01(\tB\x02\x18\x01H\x00R\x03mac\x88\x01\x01\x12\"\n\x03vrf\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x03vrf\x88\x01\x01\x12\x36\n\x05state\x18\x05 \x01(\x0b\x32\x1b.metalstack.api.v2.NicStateH\x02R\x05state\x88\x01\x01\x12@\n\nbgp_filter\x18\x06 \x01(\x0b\x32\x1c.metalstack.api.v2.BGPFilterH\x03R\tbgpFilter\x88\x01\x01\x12P\n\x0e\x62gp_port_state\x18\x07 \x01(\x0b\x32%.metalstack.api.v2.SwitchBGPPortStateH\x04R\x0c\x62gpPortState\x88\x01\x01\x12G\n\nmembership\x18\x08 \x01(\x0e\x32\'.metalstack.api.v2.SwitchPortMembershipR\nmembershipB\x06\n\x04_macB\x06\n\x04_vrfB\x08\n\x06_stateB\r\n\x0b_bgp_filterB\x11\n\x0f_bgp_port_state\"T\n\tBGPFilter\x12\"\n\x05\x63idrs\x18\x01 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x05\x63idrs\x12#\n\x04vnis\x18\x02 \x03(\tB\x0f\xbaH\x0c\x92\x01\t\"\x07r\x05\x10\x02\x18\x80\x01R\x04vnis\"\xa4\x03\n\x12SwitchBGPPortState\x12,\n\x08neighbor\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x08neighbor\x88\x01\x01\x12*\n\npeer_group\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\tpeerGroup\x12&\n\x08vrf_name\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07vrfName\x12\x42\n\tbgp_state\x18\x04 \x01(\x0e\x32\x1b.metalstack.api.v2.BGPStateB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x08\x62gpState\x12S\n\x18\x62gp_timer_up_established\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x15\x62gpTimerUpEstablished\x12.\n\x13sent_prefix_counter\x18\x06 \x01(\x04R\x11sentPrefixCounter\x12\x36\n\x17\x61\x63\x63\x65pted_prefix_counter\x18\x07 \x01(\x04R\x15\x61\x63\x63\x65ptedPrefixCounterB\x0b\n\t_neighbor\"\xab\x01\n\x08NicState\x12L\n\x07\x64\x65sired\x18\x01 \x01(\x0e\x32#.metalstack.api.v2.SwitchPortStatusB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x00R\x07\x64\x65sired\x88\x01\x01\x12\x45\n\x06\x61\x63tual\x18\x02 \x01(\x0e\x32#.metalstack.api.v2.SwitchPortStatusB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x06\x61\x63tualB\n\n\x08_desired\"b\n\x11MachineConnection\x12\x1d\n\nmachine_id\x18\x01 \x01(\tR\tmachineId\x12.\n\x03nic\x18\x02 \x01(\x0b\x32\x1c.metalstack.api.v2.SwitchNicR\x03nic\"\xec\x02\n\x0bSwitchQuery\x12\"\n\x02id\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01H\x00R\x02id\x88\x01\x01\x12.\n\tpartition\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x01R\tpartition\x88\x01\x01\x12$\n\x04rack\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x02R\x04rack\x88\x01\x01\x12$\n\x04room\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x03R\x04room\x88\x01\x01\x12\x35\n\x02os\x18\x05 \x01(\x0b\x32 .metalstack.api.v2.SwitchOSQueryH\x04R\x02os\x88\x01\x01\x12?\n\x14\x63onnected_machine_id\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x05R\x12\x63onnectedMachineId\x88\x01\x01\x42\x05\n\x03_idB\x0c\n\n_partitionB\x07\n\x05_rackB\x07\n\x05_roomB\x05\n\x03_osB\x17\n\x15_connected_machine_id\"\x9c\x01\n\rSwitchOSQuery\x12H\n\x06vendor\x18\x01 \x01(\x0e\x32!.metalstack.api.v2.SwitchOSVendorB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x00R\x06vendor\x88\x01\x01\x12*\n\x07version\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x07version\x88\x01\x01\x42\t\n\x07_vendorB\n\n\x08_version\"\x98\x01\n\nSwitchSync\x12.\n\x04time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x04time\x12\x35\n\x08\x64uration\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationR\x08\x64uration\x12\x19\n\x05\x65rror\x18\x03 \x01(\tH\x00R\x05\x65rror\x88\x01\x01\x42\x08\n\x06_error\"\xa1\x01\n\x12SwitchWithMachines\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x1c\n\tpartition\x18\x02 \x01(\tR\tpartition\x12\x12\n\x04rack\x18\x03 \x01(\tR\x04rack\x12I\n\x0b\x63onnections\x18\x04 \x03(\x0b\x32\'.metalstack.api.v2.SwitchNicWithMachineR\x0b\x63onnections\"\xad\x01\n\x14SwitchNicWithMachine\x12.\n\x03nic\x18\x01 \x01(\x0b\x32\x1c.metalstack.api.v2.SwitchNicR\x03nic\x12\x34\n\x07machine\x18\x02 \x01(\x0b\x32\x1a.metalstack.api.v2.MachineR\x07machine\x12/\n\x03\x66ru\x18\x03 \x01(\x0b\x32\x1d.metalstack.api.v2.MachineFRUR\x03\x66ru*\x89\x02\n\x08\x42GPState\x12\x19\n\x15\x42GP_STATE_UNSPECIFIED\x10\x00\x12\x1c\n\x0e\x42GP_STATE_IDLE\x10\x01\x1a\x08\x82\xb2\x19\x04Idle\x12\"\n\x11\x42GP_STATE_CONNECT\x10\x02\x1a\x0b\x82\xb2\x19\x07\x43onnect\x12 \n\x10\x42GP_STATE_ACTIVE\x10\x03\x1a\n\x82\xb2\x19\x06\x41\x63tive\x12%\n\x13\x42GP_STATE_OPEN_SENT\x10\x04\x1a\x0c\x82\xb2\x19\x08OpenSent\x12+\n\x16\x42GP_STATE_OPEN_CONFIRM\x10\x05\x1a\x0f\x82\xb2\x19\x0bOpenConfirm\x12*\n\x15\x42GP_STATE_ESTABLISHED\x10\x06\x1a\x0f\x82\xb2\x19\x0b\x45stablished*\xa2\x01\n\x11SwitchReplaceMode\x12)\n\x1fSWITCH_REPLACE_MODE_UNSPECIFIED\x10\x00\x1a\x04\x82\xb2\x19\x00\x12,\n\x1bSWITCH_REPLACE_MODE_REPLACE\x10\x01\x1a\x0b\x82\xb2\x19\x07replace\x12\x34\n\x1fSWITCH_REPLACE_MODE_OPERATIONAL\x10\x02\x1a\x0f\x82\xb2\x19\x0boperational*\x84\x01\n\x0eSwitchOSVendor\x12 \n\x1cSWITCH_OS_VENDOR_UNSPECIFIED\x10\x00\x12)\n\x18SWITCH_OS_VENDOR_CUMULUS\x10\x01\x1a\x0b\x82\xb2\x19\x07\x43umulus\x12%\n\x16SWITCH_OS_VENDOR_SONIC\x10\x02\x1a\t\x82\xb2\x19\x05SONiC*\xad\x01\n\x10SwitchPortStatus\x12\"\n\x1eSWITCH_PORT_STATUS_UNSPECIFIED\x10\x00\x12!\n\x15SWITCH_PORT_STATUS_UP\x10\x01\x1a\x06\x82\xb2\x19\x02up\x12%\n\x17SWITCH_PORT_STATUS_DOWN\x10\x02\x1a\x08\x82\xb2\x19\x04\x64own\x12+\n\x1aSWITCH_PORT_STATUS_UNKNOWN\x10\x03\x1a\x0b\x82\xb2\x19\x07unknown*\xd9\x01\n\x14SwitchPortMembership\x12&\n\"SWITCH_PORT_MEMBERSHIP_UNSPECIFIED\x10\x00\x12\x33\n SWITCH_PORT_MEMBERSHIP_UNMANAGED\x10\x01\x1a\r\x82\xb2\x19\tunmanaged\x12\x31\n\x1fSWITCH_PORT_MEMBERSHIP_INTERNAL\x10\x02\x1a\x0c\x82\xb2\x19\x08internal\x12\x31\n\x1fSWITCH_PORT_MEMBERSHIP_EXTERNAL\x10\x03\x1a\x0c\x82\xb2\x19\x08\x65xternalB\xc1\x01\n\x15\x63om.metalstack.api.v2B\x0bSwitchProtoP\x01Z5github.com/metal-stack/api/go/metalstack/api/v2;apiv2\xa2\x02\x03MAX\xaa\x02\x11Metalstack.Api.V2\xca\x02\x11Metalstack\\Api\\V2\xe2\x02\x1dMetalstack\\Api\\V2\\GPBMetadata\xea\x02\x13Metalstack::Api::V2b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1emetalstack/api/v2/switch.proto\x12\x11metalstack.api.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1emetalstack/api/v2/common.proto\x1a\x1fmetalstack/api/v2/machine.proto\x1a(metalstack/api/v2/predefined_rules.proto\"\xe2\x06\n\x06Switch\x12\x1d\n\x02id\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01R\x02id\x12+\n\x04meta\x18\x02 \x01(\x0b\x32\x17.metalstack.api.v2.MetaR\x04meta\x12-\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01R\x0b\x64\x65scription\x12$\n\x04rack\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x04rack\x88\x01\x01\x12$\n\x04room\x18\x05 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x04room\x88\x01\x01\x12)\n\tpartition\x18\x06 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01R\tpartition\x12Q\n\x0creplace_mode\x18\x07 \x01(\x0e\x32$.metalstack.api.v2.SwitchReplaceModeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x0breplaceMode\x12,\n\rmanagement_ip\x18\x08 \x01(\tB\x07\xbaH\x04r\x02p\x01R\x0cmanagementIp\x12\x38\n\x0fmanagement_user\x18\t \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x02R\x0emanagementUser\x88\x01\x01\x12\x38\n\x0f\x63onsole_command\x18\n \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x03R\x0e\x63onsoleCommand\x88\x01\x01\x12\x30\n\x04nics\x18\x0b \x03(\x0b\x32\x1c.metalstack.api.v2.SwitchNicR\x04nics\x12+\n\x02os\x18\x0c \x01(\x0b\x32\x1b.metalstack.api.v2.SwitchOSR\x02os\x12U\n\x13machine_connections\x18\r \x03(\x0b\x32$.metalstack.api.v2.MachineConnectionR\x12machineConnections\x12:\n\tlast_sync\x18\x0e \x01(\x0b\x32\x1d.metalstack.api.v2.SwitchSyncR\x08lastSync\x12\x45\n\x0flast_sync_error\x18\x0f \x01(\x0b\x32\x1d.metalstack.api.v2.SwitchSyncR\rlastSyncErrorB\x07\n\x05_rackB\x07\n\x05_roomB\x12\n\x10_management_userB\x12\n\x10_console_command\"\xb1\x01\n\x08SwitchOS\x12\x43\n\x06vendor\x18\x01 \x01(\x0e\x32!.metalstack.api.v2.SwitchOSVendorB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x06vendor\x12%\n\x07version\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07version\x12\x39\n\x12metal_core_version\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x10metalCoreVersion\"\xe9\x03\n\tSwitchNic\x12\x1f\n\x04name\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x04name\x12+\n\nidentifier\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\nidentifier\x12\x19\n\x03mac\x18\x03 \x01(\tB\x02\x18\x01H\x00R\x03mac\x88\x01\x01\x12\"\n\x03vrf\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x03vrf\x88\x01\x01\x12\x36\n\x05state\x18\x05 \x01(\x0b\x32\x1b.metalstack.api.v2.NicStateH\x02R\x05state\x88\x01\x01\x12@\n\nbgp_filter\x18\x06 \x01(\x0b\x32\x1c.metalstack.api.v2.BGPFilterH\x03R\tbgpFilter\x88\x01\x01\x12P\n\x0e\x62gp_port_state\x18\x07 \x01(\x0b\x32%.metalstack.api.v2.SwitchBGPPortStateH\x04R\x0c\x62gpPortState\x88\x01\x01\x12G\n\nmembership\x18\x08 \x01(\x0e\x32\'.metalstack.api.v2.SwitchPortMembershipR\nmembershipB\x06\n\x04_macB\x06\n\x04_vrfB\x08\n\x06_stateB\r\n\x0b_bgp_filterB\x11\n\x0f_bgp_port_state\"T\n\tBGPFilter\x12\"\n\x05\x63idrs\x18\x01 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x05\x63idrs\x12#\n\x04vnis\x18\x02 \x03(\tB\x0f\xbaH\x0c\x92\x01\t\"\x07r\x05\x10\x02\x18\x80\x01R\x04vnis\"\xa4\x03\n\x12SwitchBGPPortState\x12,\n\x08neighbor\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x08neighbor\x88\x01\x01\x12*\n\npeer_group\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\tpeerGroup\x12&\n\x08vrf_name\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07vrfName\x12\x42\n\tbgp_state\x18\x04 \x01(\x0e\x32\x1b.metalstack.api.v2.BGPStateB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x08\x62gpState\x12S\n\x18\x62gp_timer_up_established\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x15\x62gpTimerUpEstablished\x12.\n\x13sent_prefix_counter\x18\x06 \x01(\x04R\x11sentPrefixCounter\x12\x36\n\x17\x61\x63\x63\x65pted_prefix_counter\x18\x07 \x01(\x04R\x15\x61\x63\x63\x65ptedPrefixCounterB\x0b\n\t_neighbor\"\xab\x01\n\x08NicState\x12L\n\x07\x64\x65sired\x18\x01 \x01(\x0e\x32#.metalstack.api.v2.SwitchPortStatusB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x00R\x07\x64\x65sired\x88\x01\x01\x12\x45\n\x06\x61\x63tual\x18\x02 \x01(\x0e\x32#.metalstack.api.v2.SwitchPortStatusB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x06\x61\x63tualB\n\n\x08_desired\"b\n\x11MachineConnection\x12\x1d\n\nmachine_id\x18\x01 \x01(\tR\tmachineId\x12.\n\x03nic\x18\x02 \x01(\x0b\x32\x1c.metalstack.api.v2.SwitchNicR\x03nic\"\xec\x02\n\x0bSwitchQuery\x12\"\n\x02id\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01H\x00R\x02id\x88\x01\x01\x12.\n\tpartition\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x01R\tpartition\x88\x01\x01\x12$\n\x04rack\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x02R\x04rack\x88\x01\x01\x12$\n\x04room\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x03R\x04room\x88\x01\x01\x12\x35\n\x02os\x18\x05 \x01(\x0b\x32 .metalstack.api.v2.SwitchOSQueryH\x04R\x02os\x88\x01\x01\x12?\n\x14\x63onnected_machine_id\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x05R\x12\x63onnectedMachineId\x88\x01\x01\x42\x05\n\x03_idB\x0c\n\n_partitionB\x07\n\x05_rackB\x07\n\x05_roomB\x05\n\x03_osB\x17\n\x15_connected_machine_id\"\x9c\x01\n\rSwitchOSQuery\x12H\n\x06vendor\x18\x01 \x01(\x0e\x32!.metalstack.api.v2.SwitchOSVendorB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x00R\x06vendor\x88\x01\x01\x12*\n\x07version\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x07version\x88\x01\x01\x42\t\n\x07_vendorB\n\n\x08_version\"\x98\x01\n\nSwitchSync\x12.\n\x04time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x04time\x12\x35\n\x08\x64uration\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationR\x08\x64uration\x12\x19\n\x05\x65rror\x18\x03 \x01(\tH\x00R\x05\x65rror\x88\x01\x01\x42\x08\n\x06_error\"\xa1\x01\n\x12SwitchWithMachines\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x1c\n\tpartition\x18\x02 \x01(\tR\tpartition\x12\x12\n\x04rack\x18\x03 \x01(\tR\x04rack\x12I\n\x0b\x63onnections\x18\x04 \x03(\x0b\x32\'.metalstack.api.v2.SwitchNicWithMachineR\x0b\x63onnections\"\xad\x01\n\x14SwitchNicWithMachine\x12.\n\x03nic\x18\x01 \x01(\x0b\x32\x1c.metalstack.api.v2.SwitchNicR\x03nic\x12\x34\n\x07machine\x18\x02 \x01(\x0b\x32\x1a.metalstack.api.v2.MachineR\x07machine\x12/\n\x03\x66ru\x18\x03 \x01(\x0b\x32\x1d.metalstack.api.v2.MachineFRUR\x03\x66ru\"\x86\x01\n\x10StaticPortConfig\x12G\n\nmembership\x18\x01 \x01(\x0e\x32\'.metalstack.api.v2.SwitchPortMembershipR\nmembership\x12\x1d\n\x07network\x18\x02 \x01(\tH\x00R\x07network\x88\x01\x01\x42\n\n\x08_network*\x89\x02\n\x08\x42GPState\x12\x19\n\x15\x42GP_STATE_UNSPECIFIED\x10\x00\x12\x1c\n\x0e\x42GP_STATE_IDLE\x10\x01\x1a\x08\x82\xb2\x19\x04Idle\x12\"\n\x11\x42GP_STATE_CONNECT\x10\x02\x1a\x0b\x82\xb2\x19\x07\x43onnect\x12 \n\x10\x42GP_STATE_ACTIVE\x10\x03\x1a\n\x82\xb2\x19\x06\x41\x63tive\x12%\n\x13\x42GP_STATE_OPEN_SENT\x10\x04\x1a\x0c\x82\xb2\x19\x08OpenSent\x12+\n\x16\x42GP_STATE_OPEN_CONFIRM\x10\x05\x1a\x0f\x82\xb2\x19\x0bOpenConfirm\x12*\n\x15\x42GP_STATE_ESTABLISHED\x10\x06\x1a\x0f\x82\xb2\x19\x0b\x45stablished*\xa2\x01\n\x11SwitchReplaceMode\x12)\n\x1fSWITCH_REPLACE_MODE_UNSPECIFIED\x10\x00\x1a\x04\x82\xb2\x19\x00\x12,\n\x1bSWITCH_REPLACE_MODE_REPLACE\x10\x01\x1a\x0b\x82\xb2\x19\x07replace\x12\x34\n\x1fSWITCH_REPLACE_MODE_OPERATIONAL\x10\x02\x1a\x0f\x82\xb2\x19\x0boperational*\x84\x01\n\x0eSwitchOSVendor\x12 \n\x1cSWITCH_OS_VENDOR_UNSPECIFIED\x10\x00\x12)\n\x18SWITCH_OS_VENDOR_CUMULUS\x10\x01\x1a\x0b\x82\xb2\x19\x07\x43umulus\x12%\n\x16SWITCH_OS_VENDOR_SONIC\x10\x02\x1a\t\x82\xb2\x19\x05SONiC*\xad\x01\n\x10SwitchPortStatus\x12\"\n\x1eSWITCH_PORT_STATUS_UNSPECIFIED\x10\x00\x12!\n\x15SWITCH_PORT_STATUS_UP\x10\x01\x1a\x06\x82\xb2\x19\x02up\x12%\n\x17SWITCH_PORT_STATUS_DOWN\x10\x02\x1a\x08\x82\xb2\x19\x04\x64own\x12+\n\x1aSWITCH_PORT_STATUS_UNKNOWN\x10\x03\x1a\x0b\x82\xb2\x19\x07unknown*\xd9\x01\n\x14SwitchPortMembership\x12&\n\"SWITCH_PORT_MEMBERSHIP_UNSPECIFIED\x10\x00\x12\x33\n SWITCH_PORT_MEMBERSHIP_UNMANAGED\x10\x01\x1a\r\x82\xb2\x19\tunmanaged\x12\x31\n\x1fSWITCH_PORT_MEMBERSHIP_INTERNAL\x10\x02\x1a\x0c\x82\xb2\x19\x08internal\x12\x31\n\x1fSWITCH_PORT_MEMBERSHIP_EXTERNAL\x10\x03\x1a\x0c\x82\xb2\x19\x08\x65xternalB\xc1\x01\n\x15\x63om.metalstack.api.v2B\x0bSwitchProtoP\x01Z5github.com/metal-stack/api/go/metalstack/api/v2;apiv2\xa2\x02\x03MAX\xaa\x02\x11Metalstack.Api.V2\xca\x02\x11Metalstack\\Api\\V2\xe2\x02\x1dMetalstack\\Api\\V2\\GPBMetadata\xea\x02\x13Metalstack::Api::V2b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -134,16 +134,16 @@ _globals['_SWITCHOSQUERY'].fields_by_name['vendor']._serialized_options = b'\272H\005\202\001\002\020\001' _globals['_SWITCHOSQUERY'].fields_by_name['version']._loaded_options = None _globals['_SWITCHOSQUERY'].fields_by_name['version']._serialized_options = b'\272H\010r\006\300\263\256\261\002\001' - _globals['_BGPSTATE']._serialized_start=3600 - _globals['_BGPSTATE']._serialized_end=3865 - _globals['_SWITCHREPLACEMODE']._serialized_start=3868 - _globals['_SWITCHREPLACEMODE']._serialized_end=4030 - _globals['_SWITCHOSVENDOR']._serialized_start=4033 - _globals['_SWITCHOSVENDOR']._serialized_end=4165 - _globals['_SWITCHPORTSTATUS']._serialized_start=4168 - _globals['_SWITCHPORTSTATUS']._serialized_end=4341 - _globals['_SWITCHPORTMEMBERSHIP']._serialized_start=4344 - _globals['_SWITCHPORTMEMBERSHIP']._serialized_end=4561 + _globals['_BGPSTATE']._serialized_start=3737 + _globals['_BGPSTATE']._serialized_end=4002 + _globals['_SWITCHREPLACEMODE']._serialized_start=4005 + _globals['_SWITCHREPLACEMODE']._serialized_end=4167 + _globals['_SWITCHOSVENDOR']._serialized_start=4170 + _globals['_SWITCHOSVENDOR']._serialized_end=4302 + _globals['_SWITCHPORTSTATUS']._serialized_start=4305 + _globals['_SWITCHPORTSTATUS']._serialized_end=4478 + _globals['_SWITCHPORTMEMBERSHIP']._serialized_start=4481 + _globals['_SWITCHPORTMEMBERSHIP']._serialized_end=4698 _globals['_SWITCH']._serialized_start=255 _globals['_SWITCH']._serialized_end=1121 _globals['_SWITCHOS']._serialized_start=1124 @@ -168,4 +168,6 @@ _globals['_SWITCHWITHMACHINES']._serialized_end=3421 _globals['_SWITCHNICWITHMACHINE']._serialized_start=3424 _globals['_SWITCHNICWITHMACHINE']._serialized_end=3597 + _globals['_STATICPORTCONFIG']._serialized_start=3600 + _globals['_STATICPORTCONFIG']._serialized_end=3734 # @@protoc_insertion_point(module_scope) diff --git a/python/metalstack/api/v2/switch_pb2.pyi b/python/metalstack/api/v2/switch_pb2.pyi index 7c707335..c21ea0ee 100644 --- a/python/metalstack/api/v2/switch_pb2.pyi +++ b/python/metalstack/api/v2/switch_pb2.pyi @@ -233,3 +233,11 @@ class SwitchNicWithMachine(_message.Message): machine: _machine_pb2.Machine fru: _machine_pb2.MachineFRU def __init__(self, nic: _Optional[_Union[SwitchNic, _Mapping]] = ..., machine: _Optional[_Union[_machine_pb2.Machine, _Mapping]] = ..., fru: _Optional[_Union[_machine_pb2.MachineFRU, _Mapping]] = ...) -> None: ... + +class StaticPortConfig(_message.Message): + __slots__ = ("membership", "network") + MEMBERSHIP_FIELD_NUMBER: _ClassVar[int] + NETWORK_FIELD_NUMBER: _ClassVar[int] + membership: SwitchPortMembership + network: str + def __init__(self, membership: _Optional[_Union[SwitchPortMembership, str]] = ..., network: _Optional[str] = ...) -> None: ... From c6766940847c75bde925733e5a7faa4071706c5a Mon Sep 17 00:00:00 2001 From: Ilja Rotar Date: Fri, 11 Sep 2026 15:55:20 +0200 Subject: [PATCH 9/9] add port config to port endpoint --- doc/index.html | 21 +++++++++----- go/metalstack/admin/v2/switch.pb.go | 28 +++++++++--------- go/metalstack/api/v2/switch.pb.go | 35 +++++++++++++++-------- js/metalstack/admin/v2/switch_pb.d.ts | 16 +++++------ js/metalstack/admin/v2/switch_pb.js | 2 +- js/metalstack/admin/v2/switch_pb.ts | 18 ++++++------ js/metalstack/api/v2/switch_pb.d.ts | 10 +++++-- js/metalstack/api/v2/switch_pb.js | 2 +- js/metalstack/api/v2/switch_pb.ts | 13 +++++++-- proto/metalstack/admin/v2/switch.proto | 12 ++++---- proto/metalstack/api/v2/switch.proto | 6 ++-- python/metalstack/admin/v2/switch_pb2.py | 22 +++++++------- python/metalstack/admin/v2/switch_pb2.pyi | 8 +++--- python/metalstack/api/v2/switch_pb2.py | 26 +++++++++-------- python/metalstack/api/v2/switch_pb2.pyi | 6 ++-- 15 files changed, 130 insertions(+), 95 deletions(-) diff --git a/doc/index.html b/doc/index.html index 2323a1b6..dc619290 100644 --- a/doc/index.html +++ b/doc/index.html @@ -17320,6 +17320,13 @@

      StaticPortConfig

      + + status + SwitchPortStatus + +

      Status is the administrative status of the port.

      + + membership SwitchPortMembership @@ -18330,7 +18337,7 @@

      SwitchServiceMigrateRe

      SwitchServicePortRequest

      -

      SwitchServicePortRequest is the request payload for setting the port status of a switch port.

      +

      SwitchServicePortRequest is the request payload for setting the port config of a switch port.

      @@ -18350,14 +18357,14 @@

      SwitchServicePortRequestnic_name

      - + - - + + - + @@ -18368,7 +18375,7 @@

      SwitchServicePortRequestSwitchServicePortResponse

      -

      SwitchServicePortResponse is the response payload for setting the port status of a switch port.

      +

      SwitchServicePortResponse is the response payload for setting the port config of a switch port.

      string

      NicName of the port whose status should be changed.

      NicName of the affected port.

      statusmetalstack.api.v2.SwitchPortStatusconfigmetalstack.api.v2.StaticPortConfig

      Status that the port should have.

      Config is the desired port config.

      @@ -18381,7 +18388,7 @@

      SwitchServicePortResponse

      - + diff --git a/go/metalstack/admin/v2/switch.pb.go b/go/metalstack/admin/v2/switch.pb.go index e1602a2b..51bbd9a0 100644 --- a/go/metalstack/admin/v2/switch.pb.go +++ b/go/metalstack/admin/v2/switch.pb.go @@ -584,15 +584,15 @@ func (x *SwitchServiceMigrateResponse) GetSwitch() *v2.Switch { return nil } -// SwitchServicePortRequest is the request payload for setting the port status of a switch port. +// SwitchServicePortRequest is the request payload for setting the port config of a switch port. type SwitchServicePortRequest struct { state protoimpl.MessageState `protogen:"open.v1"` // Id of the switch. Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - // NicName of the port whose status should be changed. + // NicName of the affected port. NicName string `protobuf:"bytes,2,opt,name=nic_name,json=nicName,proto3" json:"nic_name,omitempty"` - // Status that the port should have. - Status v2.SwitchPortStatus `protobuf:"varint,3,opt,name=status,proto3,enum=metalstack.api.v2.SwitchPortStatus" json:"status,omitempty"` + // Config is the desired port config. + Config *v2.StaticPortConfig `protobuf:"bytes,3,opt,name=config,proto3" json:"config,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -641,17 +641,17 @@ func (x *SwitchServicePortRequest) GetNicName() string { return "" } -func (x *SwitchServicePortRequest) GetStatus() v2.SwitchPortStatus { +func (x *SwitchServicePortRequest) GetConfig() *v2.StaticPortConfig { if x != nil { - return x.Status + return x.Config } - return v2.SwitchPortStatus(0) + return nil } -// SwitchServicePortResponse is the response payload for setting the port status of a switch port. +// SwitchServicePortResponse is the response payload for setting the port config of a switch port. type SwitchServicePortResponse struct { state protoimpl.MessageState `protogen:"open.v1"` - // Switch after the port status toggle. + // Switch after the update. Switch *v2.Switch `protobuf:"bytes,1,opt,name=switch,proto3" json:"switch,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -846,12 +846,12 @@ const file_metalstack_admin_v2_switch_proto_rawDesc = "" + "new_switch\x18\x02 \x01(\tB\r\xbaH\n" + "r\b\xc0\xb3\xae\xb1\x02\x01h\x01R\tnewSwitch\"Q\n" + "\x1cSwitchServiceMigrateResponse\x121\n" + - "\x06switch\x18\x01 \x01(\v2\x19.metalstack.api.v2.SwitchR\x06switch\"\xa8\x01\n" + + "\x06switch\x18\x01 \x01(\v2\x19.metalstack.api.v2.SwitchR\x06switch\"\x9e\x01\n" + "\x18SwitchServicePortRequest\x12\x1d\n" + "\x02id\x18\x01 \x01(\tB\r\xbaH\n" + "r\b\xc0\xb3\xae\xb1\x02\x01h\x01R\x02id\x12&\n" + - "\bnic_name\x18\x02 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01R\anicName\x12E\n" + - "\x06status\x18\x03 \x01(\x0e2#.metalstack.api.v2.SwitchPortStatusB\b\xbaH\x05\x82\x01\x02\x10\x01R\x06status\"N\n" + + "\bnic_name\x18\x02 \x01(\tB\v\xbaH\br\x06\xc0\xb3\xae\xb1\x02\x01R\anicName\x12;\n" + + "\x06config\x18\x03 \x01(\v2#.metalstack.api.v2.StaticPortConfigR\x06config\"N\n" + "\x19SwitchServicePortResponse\x121\n" + "\x06switch\x18\x01 \x01(\v2\x19.metalstack.api.v2.SwitchR\x06switch\"\xa3\x01\n" + "%SwitchServiceConnectedMachinesRequest\x124\n" + @@ -907,7 +907,7 @@ var file_metalstack_admin_v2_switch_proto_goTypes = []any{ (v2.SwitchReplaceMode)(0), // 18: metalstack.api.v2.SwitchReplaceMode (*v2.SwitchNic)(nil), // 19: metalstack.api.v2.SwitchNic (*v2.SwitchOS)(nil), // 20: metalstack.api.v2.SwitchOS - (v2.SwitchPortStatus)(0), // 21: metalstack.api.v2.SwitchPortStatus + (*v2.StaticPortConfig)(nil), // 21: metalstack.api.v2.StaticPortConfig (*v2.MachineQuery)(nil), // 22: metalstack.api.v2.MachineQuery (*v2.SwitchWithMachines)(nil), // 23: metalstack.api.v2.SwitchWithMachines } @@ -923,7 +923,7 @@ var file_metalstack_admin_v2_switch_proto_depIdxs = []int32{ 14, // 8: metalstack.admin.v2.SwitchServiceUpdateResponse.switch:type_name -> metalstack.api.v2.Switch 14, // 9: metalstack.admin.v2.SwitchServiceDeleteResponse.switch:type_name -> metalstack.api.v2.Switch 14, // 10: metalstack.admin.v2.SwitchServiceMigrateResponse.switch:type_name -> metalstack.api.v2.Switch - 21, // 11: metalstack.admin.v2.SwitchServicePortRequest.status:type_name -> metalstack.api.v2.SwitchPortStatus + 21, // 11: metalstack.admin.v2.SwitchServicePortRequest.config:type_name -> metalstack.api.v2.StaticPortConfig 14, // 12: metalstack.admin.v2.SwitchServicePortResponse.switch:type_name -> metalstack.api.v2.Switch 15, // 13: metalstack.admin.v2.SwitchServiceConnectedMachinesRequest.query:type_name -> metalstack.api.v2.SwitchQuery 22, // 14: metalstack.admin.v2.SwitchServiceConnectedMachinesRequest.machine_query:type_name -> metalstack.api.v2.MachineQuery diff --git a/go/metalstack/api/v2/switch.pb.go b/go/metalstack/api/v2/switch.pb.go index f8370f60..f8bdfa7a 100644 --- a/go/metalstack/api/v2/switch.pb.go +++ b/go/metalstack/api/v2/switch.pb.go @@ -1277,10 +1277,12 @@ func (x *SwitchNicWithMachine) GetFru() *MachineFRU { // StaticPortConfig is a config that is statically applied to a port. type StaticPortConfig struct { state protoimpl.MessageState `protogen:"open.v1"` + // Status is the administrative status of the port. + Status SwitchPortStatus `protobuf:"varint,1,opt,name=status,proto3,enum=metalstack.api.v2.SwitchPortStatus" json:"status,omitempty"` // Membership specifies whether this port is connected to a registered machine or to an external host or if it is unmanaged. - Membership SwitchPortMembership `protobuf:"varint,1,opt,name=membership,proto3,enum=metalstack.api.v2.SwitchPortMembership" json:"membership,omitempty"` + Membership SwitchPortMembership `protobuf:"varint,2,opt,name=membership,proto3,enum=metalstack.api.v2.SwitchPortMembership" json:"membership,omitempty"` // Network the port is a member of. - Network *string `protobuf:"bytes,2,opt,name=network,proto3,oneof" json:"network,omitempty"` + Network *string `protobuf:"bytes,3,opt,name=network,proto3,oneof" json:"network,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -1315,6 +1317,13 @@ func (*StaticPortConfig) Descriptor() ([]byte, []int) { return file_metalstack_api_v2_switch_proto_rawDescGZIP(), []int{12} } +func (x *StaticPortConfig) GetStatus() SwitchPortStatus { + if x != nil { + return x.Status + } + return SwitchPortStatus_SWITCH_PORT_STATUS_UNSPECIFIED +} + func (x *StaticPortConfig) GetMembership() SwitchPortMembership { if x != nil { return x.Membership @@ -1438,12 +1447,13 @@ const file_metalstack_api_v2_switch_proto_rawDesc = "" + "\x14SwitchNicWithMachine\x12.\n" + "\x03nic\x18\x01 \x01(\v2\x1c.metalstack.api.v2.SwitchNicR\x03nic\x124\n" + "\amachine\x18\x02 \x01(\v2\x1a.metalstack.api.v2.MachineR\amachine\x12/\n" + - "\x03fru\x18\x03 \x01(\v2\x1d.metalstack.api.v2.MachineFRUR\x03fru\"\x86\x01\n" + - "\x10StaticPortConfig\x12G\n" + + "\x03fru\x18\x03 \x01(\v2\x1d.metalstack.api.v2.MachineFRUR\x03fru\"\xcd\x01\n" + + "\x10StaticPortConfig\x12E\n" + + "\x06status\x18\x01 \x01(\x0e2#.metalstack.api.v2.SwitchPortStatusB\b\xbaH\x05\x82\x01\x02\x10\x01R\x06status\x12G\n" + "\n" + - "membership\x18\x01 \x01(\x0e2'.metalstack.api.v2.SwitchPortMembershipR\n" + + "membership\x18\x02 \x01(\x0e2'.metalstack.api.v2.SwitchPortMembershipR\n" + "membership\x12\x1d\n" + - "\anetwork\x18\x02 \x01(\tH\x00R\anetwork\x88\x01\x01B\n" + + "\anetwork\x18\x03 \x01(\tH\x00R\anetwork\x88\x01\x01B\n" + "\n" + "\b_network*\x89\x02\n" + "\bBGPState\x12\x19\n" + @@ -1540,12 +1550,13 @@ var file_metalstack_api_v2_switch_proto_depIdxs = []int32{ 7, // 22: metalstack.api.v2.SwitchNicWithMachine.nic:type_name -> metalstack.api.v2.SwitchNic 21, // 23: metalstack.api.v2.SwitchNicWithMachine.machine:type_name -> metalstack.api.v2.Machine 22, // 24: metalstack.api.v2.SwitchNicWithMachine.fru:type_name -> metalstack.api.v2.MachineFRU - 4, // 25: metalstack.api.v2.StaticPortConfig.membership:type_name -> metalstack.api.v2.SwitchPortMembership - 26, // [26:26] is the sub-list for method output_type - 26, // [26:26] is the sub-list for method input_type - 26, // [26:26] is the sub-list for extension type_name - 26, // [26:26] is the sub-list for extension extendee - 0, // [0:26] is the sub-list for field type_name + 3, // 25: metalstack.api.v2.StaticPortConfig.status:type_name -> metalstack.api.v2.SwitchPortStatus + 4, // 26: metalstack.api.v2.StaticPortConfig.membership:type_name -> metalstack.api.v2.SwitchPortMembership + 27, // [27:27] is the sub-list for method output_type + 27, // [27:27] is the sub-list for method input_type + 27, // [27:27] is the sub-list for extension type_name + 27, // [27:27] is the sub-list for extension extendee + 0, // [0:27] is the sub-list for field type_name } func init() { file_metalstack_api_v2_switch_proto_init() } diff --git a/js/metalstack/admin/v2/switch_pb.d.ts b/js/metalstack/admin/v2/switch_pb.d.ts index 034652ce..d945d4f3 100644 --- a/js/metalstack/admin/v2/switch_pb.d.ts +++ b/js/metalstack/admin/v2/switch_pb.d.ts @@ -2,7 +2,7 @@ import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegen import type { Timestamp } from "@bufbuild/protobuf/wkt"; import type { UpdateMeta } from "../../api/v2/common_pb"; import type { MachineQuery } from "../../api/v2/machine_pb"; -import type { Switch, SwitchNic, SwitchOS, SwitchPortStatus, SwitchQuery, SwitchReplaceMode, SwitchWithMachines } from "../../api/v2/switch_pb"; +import type { StaticPortConfig, Switch, SwitchNic, SwitchOS, SwitchQuery, SwitchReplaceMode, SwitchWithMachines } from "../../api/v2/switch_pb"; import type { Message } from "@bufbuild/protobuf"; /** * Describes the file metalstack/admin/v2/switch.proto. @@ -256,7 +256,7 @@ export type SwitchServiceMigrateResponse = Message<"metalstack.admin.v2.SwitchSe */ export declare const SwitchServiceMigrateResponseSchema: GenMessage; /** - * SwitchServicePortRequest is the request payload for setting the port status of a switch port. + * SwitchServicePortRequest is the request payload for setting the port config of a switch port. * * @generated from message metalstack.admin.v2.SwitchServicePortRequest */ @@ -268,17 +268,17 @@ export type SwitchServicePortRequest = Message<"metalstack.admin.v2.SwitchServic */ id: string; /** - * NicName of the port whose status should be changed. + * NicName of the affected port. * * @generated from field: string nic_name = 2; */ nicName: string; /** - * Status that the port should have. + * Config is the desired port config. * - * @generated from field: metalstack.api.v2.SwitchPortStatus status = 3; + * @generated from field: metalstack.api.v2.StaticPortConfig config = 3; */ - status: SwitchPortStatus; + config?: StaticPortConfig | undefined; }; /** * Describes the message metalstack.admin.v2.SwitchServicePortRequest. @@ -286,13 +286,13 @@ export type SwitchServicePortRequest = Message<"metalstack.admin.v2.SwitchServic */ export declare const SwitchServicePortRequestSchema: GenMessage; /** - * SwitchServicePortResponse is the response payload for setting the port status of a switch port. + * SwitchServicePortResponse is the response payload for setting the port config of a switch port. * * @generated from message metalstack.admin.v2.SwitchServicePortResponse */ export type SwitchServicePortResponse = Message<"metalstack.admin.v2.SwitchServicePortResponse"> & { /** - * Switch after the port status toggle. + * Switch after the update. * * @generated from field: metalstack.api.v2.Switch switch = 1; */ diff --git a/js/metalstack/admin/v2/switch_pb.js b/js/metalstack/admin/v2/switch_pb.js index 142370b6..95c02678 100644 --- a/js/metalstack/admin/v2/switch_pb.js +++ b/js/metalstack/admin/v2/switch_pb.js @@ -11,7 +11,7 @@ import { file_metalstack_api_v2_switch } from "../../api/v2/switch_pb"; /** * Describes the file metalstack/admin/v2/switch.proto. */ -export const file_metalstack_admin_v2_switch = /*@__PURE__*/ fileDesc("CiBtZXRhbHN0YWNrL2FkbWluL3YyL3N3aXRjaC5wcm90bxITbWV0YWxzdGFjay5hZG1pbi52MiI0ChdTd2l0Y2hTZXJ2aWNlR2V0UmVxdWVzdBIZCgJpZBgBIAEoCUINukgKcgjAs66xAgFoASJFChhTd2l0Y2hTZXJ2aWNlR2V0UmVzcG9uc2USKQoGc3dpdGNoGAEgASgLMhkubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoIkkKGFN3aXRjaFNlcnZpY2VMaXN0UmVxdWVzdBItCgVxdWVyeRgBIAEoCzIeLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFF1ZXJ5IkgKGVN3aXRjaFNlcnZpY2VMaXN0UmVzcG9uc2USKwoIc3dpdGNoZXMYASADKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2gizAQKGlN3aXRjaFNlcnZpY2VVcGRhdGVSZXF1ZXN0EhkKAmlkGAEgASgJQg26SApyCMCzrrECAWgBEjoKC3VwZGF0ZV9tZXRhGAIgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTWV0YUIGukgDyAEBEi4KCnVwZGF0ZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiUKC2Rlc2NyaXB0aW9uGAQgASgJQgu6SAhyBsizrrECAUgAiAEBEkkKDHJlcGxhY2VfbW9kZRgFIAEoDjIkLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFJlcGxhY2VNb2RlQgi6SAWCAQIQAUgBiAEBEiMKDW1hbmFnZW1lbnRfaXAYBiABKAlCB7pIBHICcAFIAogBARIpCg9tYW5hZ2VtZW50X3VzZXIYByABKAlCC7pICHIGwLOusQIBSAOIAQESKQoPY29uc29sZV9jb21tYW5kGAggASgJQgu6SAhyBsizrrECAUgEiAEBEioKBG5pY3MYCSADKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSLAoCb3MYCiABKAsyGy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hPU0gFiAEBQg4KDF9kZXNjcmlwdGlvbkIPCg1fcmVwbGFjZV9tb2RlQhAKDl9tYW5hZ2VtZW50X2lwQhIKEF9tYW5hZ2VtZW50X3VzZXJCEgoQX2NvbnNvbGVfY29tbWFuZEIFCgNfb3MiSAobU3dpdGNoU2VydmljZVVwZGF0ZVJlc3BvbnNlEikKBnN3aXRjaBgBIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaCJGChpTd2l0Y2hTZXJ2aWNlRGVsZXRlUmVxdWVzdBIZCgJpZBgBIAEoCUINukgKcgjAs66xAgFoARINCgVmb3JjZRgCIAEoCCJIChtTd2l0Y2hTZXJ2aWNlRGVsZXRlUmVzcG9uc2USKQoGc3dpdGNoGAEgASgLMhkubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoImMKG1N3aXRjaFNlcnZpY2VNaWdyYXRlUmVxdWVzdBIhCgpvbGRfc3dpdGNoGAEgASgJQg26SApyCMCzrrECAWgBEiEKCm5ld19zd2l0Y2gYAiABKAlCDbpICnIIwLOusQIBaAEiSQocU3dpdGNoU2VydmljZU1pZ3JhdGVSZXNwb25zZRIpCgZzd2l0Y2gYASABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2gikwEKGFN3aXRjaFNlcnZpY2VQb3J0UmVxdWVzdBIZCgJpZBgBIAEoCUINukgKcgjAs66xAgFoARIdCghuaWNfbmFtZRgCIAEoCUILukgIcgbAs66xAgESPQoGc3RhdHVzGAMgASgOMiMubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydFN0YXR1c0IIukgFggECEAEiRgoZU3dpdGNoU2VydmljZVBvcnRSZXNwb25zZRIpCgZzd2l0Y2gYASABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2gijgEKJVN3aXRjaFNlcnZpY2VDb25uZWN0ZWRNYWNoaW5lc1JlcXVlc3QSLQoFcXVlcnkYASABKAsyHi5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hRdWVyeRI2Cg1tYWNoaW5lX3F1ZXJ5GAIgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZVF1ZXJ5Im8KJlN3aXRjaFNlcnZpY2VDb25uZWN0ZWRNYWNoaW5lc1Jlc3BvbnNlEkUKFnN3aXRjaGVzX3dpdGhfbWFjaGluZXMYASADKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hXaXRoTWFjaGluZXMy6gYKDVN3aXRjaFNlcnZpY2USbgoDR2V0EiwubWV0YWxzdGFjay5hZG1pbi52Mi5Td2l0Y2hTZXJ2aWNlR2V0UmVxdWVzdBotLm1ldGFsc3RhY2suYWRtaW4udjIuU3dpdGNoU2VydmljZUdldFJlc3BvbnNlIgrS8xgCAQLg8xgCEnEKBExpc3QSLS5tZXRhbHN0YWNrLmFkbWluLnYyLlN3aXRjaFNlcnZpY2VMaXN0UmVxdWVzdBouLm1ldGFsc3RhY2suYWRtaW4udjIuU3dpdGNoU2VydmljZUxpc3RSZXNwb25zZSIK0vMYAgEC4PMYAhJ2CgZVcGRhdGUSLy5tZXRhbHN0YWNrLmFkbWluLnYyLlN3aXRjaFNlcnZpY2VVcGRhdGVSZXF1ZXN0GjAubWV0YWxzdGFjay5hZG1pbi52Mi5Td2l0Y2hTZXJ2aWNlVXBkYXRlUmVzcG9uc2UiCdLzGAEB4PMYARJ2CgZEZWxldGUSLy5tZXRhbHN0YWNrLmFkbWluLnYyLlN3aXRjaFNlcnZpY2VEZWxldGVSZXF1ZXN0GjAubWV0YWxzdGFjay5hZG1pbi52Mi5Td2l0Y2hTZXJ2aWNlRGVsZXRlUmVzcG9uc2UiCdLzGAEB4PMYARJ5CgdNaWdyYXRlEjAubWV0YWxzdGFjay5hZG1pbi52Mi5Td2l0Y2hTZXJ2aWNlTWlncmF0ZVJlcXVlc3QaMS5tZXRhbHN0YWNrLmFkbWluLnYyLlN3aXRjaFNlcnZpY2VNaWdyYXRlUmVzcG9uc2UiCdLzGAEB4PMYARJwCgRQb3J0Ei0ubWV0YWxzdGFjay5hZG1pbi52Mi5Td2l0Y2hTZXJ2aWNlUG9ydFJlcXVlc3QaLi5tZXRhbHN0YWNrLmFkbWluLnYyLlN3aXRjaFNlcnZpY2VQb3J0UmVzcG9uc2UiCdLzGAEB4PMYARKYAQoRQ29ubmVjdGVkTWFjaGluZXMSOi5tZXRhbHN0YWNrLmFkbWluLnYyLlN3aXRjaFNlcnZpY2VDb25uZWN0ZWRNYWNoaW5lc1JlcXVlc3QaOy5tZXRhbHN0YWNrLmFkbWluLnYyLlN3aXRjaFNlcnZpY2VDb25uZWN0ZWRNYWNoaW5lc1Jlc3BvbnNlIgrS8xgCAQLg8xgCQs8BChdjb20ubWV0YWxzdGFjay5hZG1pbi52MkILU3dpdGNoUHJvdG9QAVo5Z2l0aHViLmNvbS9tZXRhbC1zdGFjay9hcGkvZ28vbWV0YWxzdGFjay9hZG1pbi92MjthZG1pbnYyogIDTUFYqgITTWV0YWxzdGFjay5BZG1pbi5WMsoCE01ldGFsc3RhY2tcQWRtaW5cVjLiAh9NZXRhbHN0YWNrXEFkbWluXFYyXEdQQk1ldGFkYXRh6gIVTWV0YWxzdGFjazo6QWRtaW46OlYyYgZwcm90bzM", [file_buf_validate_validate, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_machine, file_metalstack_api_v2_predefined_rules, file_metalstack_api_v2_switch]); +export const file_metalstack_admin_v2_switch = /*@__PURE__*/ fileDesc("CiBtZXRhbHN0YWNrL2FkbWluL3YyL3N3aXRjaC5wcm90bxITbWV0YWxzdGFjay5hZG1pbi52MiI0ChdTd2l0Y2hTZXJ2aWNlR2V0UmVxdWVzdBIZCgJpZBgBIAEoCUINukgKcgjAs66xAgFoASJFChhTd2l0Y2hTZXJ2aWNlR2V0UmVzcG9uc2USKQoGc3dpdGNoGAEgASgLMhkubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoIkkKGFN3aXRjaFNlcnZpY2VMaXN0UmVxdWVzdBItCgVxdWVyeRgBIAEoCzIeLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFF1ZXJ5IkgKGVN3aXRjaFNlcnZpY2VMaXN0UmVzcG9uc2USKwoIc3dpdGNoZXMYASADKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2gizAQKGlN3aXRjaFNlcnZpY2VVcGRhdGVSZXF1ZXN0EhkKAmlkGAEgASgJQg26SApyCMCzrrECAWgBEjoKC3VwZGF0ZV9tZXRhGAIgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTWV0YUIGukgDyAEBEi4KCnVwZGF0ZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiUKC2Rlc2NyaXB0aW9uGAQgASgJQgu6SAhyBsizrrECAUgAiAEBEkkKDHJlcGxhY2VfbW9kZRgFIAEoDjIkLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFJlcGxhY2VNb2RlQgi6SAWCAQIQAUgBiAEBEiMKDW1hbmFnZW1lbnRfaXAYBiABKAlCB7pIBHICcAFIAogBARIpCg9tYW5hZ2VtZW50X3VzZXIYByABKAlCC7pICHIGwLOusQIBSAOIAQESKQoPY29uc29sZV9jb21tYW5kGAggASgJQgu6SAhyBsizrrECAUgEiAEBEioKBG5pY3MYCSADKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSLAoCb3MYCiABKAsyGy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hPU0gFiAEBQg4KDF9kZXNjcmlwdGlvbkIPCg1fcmVwbGFjZV9tb2RlQhAKDl9tYW5hZ2VtZW50X2lwQhIKEF9tYW5hZ2VtZW50X3VzZXJCEgoQX2NvbnNvbGVfY29tbWFuZEIFCgNfb3MiSAobU3dpdGNoU2VydmljZVVwZGF0ZVJlc3BvbnNlEikKBnN3aXRjaBgBIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaCJGChpTd2l0Y2hTZXJ2aWNlRGVsZXRlUmVxdWVzdBIZCgJpZBgBIAEoCUINukgKcgjAs66xAgFoARINCgVmb3JjZRgCIAEoCCJIChtTd2l0Y2hTZXJ2aWNlRGVsZXRlUmVzcG9uc2USKQoGc3dpdGNoGAEgASgLMhkubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoImMKG1N3aXRjaFNlcnZpY2VNaWdyYXRlUmVxdWVzdBIhCgpvbGRfc3dpdGNoGAEgASgJQg26SApyCMCzrrECAWgBEiEKCm5ld19zd2l0Y2gYAiABKAlCDbpICnIIwLOusQIBaAEiSQocU3dpdGNoU2VydmljZU1pZ3JhdGVSZXNwb25zZRIpCgZzd2l0Y2gYASABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2giiQEKGFN3aXRjaFNlcnZpY2VQb3J0UmVxdWVzdBIZCgJpZBgBIAEoCUINukgKcgjAs66xAgFoARIdCghuaWNfbmFtZRgCIAEoCUILukgIcgbAs66xAgESMwoGY29uZmlnGAMgASgLMiMubWV0YWxzdGFjay5hcGkudjIuU3RhdGljUG9ydENvbmZpZyJGChlTd2l0Y2hTZXJ2aWNlUG9ydFJlc3BvbnNlEikKBnN3aXRjaBgBIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaCKOAQolU3dpdGNoU2VydmljZUNvbm5lY3RlZE1hY2hpbmVzUmVxdWVzdBItCgVxdWVyeRgBIAEoCzIeLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFF1ZXJ5EjYKDW1hY2hpbmVfcXVlcnkYAiABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5NYWNoaW5lUXVlcnkibwomU3dpdGNoU2VydmljZUNvbm5lY3RlZE1hY2hpbmVzUmVzcG9uc2USRQoWc3dpdGNoZXNfd2l0aF9tYWNoaW5lcxgBIAMoCzIlLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFdpdGhNYWNoaW5lczLqBgoNU3dpdGNoU2VydmljZRJuCgNHZXQSLC5tZXRhbHN0YWNrLmFkbWluLnYyLlN3aXRjaFNlcnZpY2VHZXRSZXF1ZXN0Gi0ubWV0YWxzdGFjay5hZG1pbi52Mi5Td2l0Y2hTZXJ2aWNlR2V0UmVzcG9uc2UiCtLzGAIBAuDzGAIScQoETGlzdBItLm1ldGFsc3RhY2suYWRtaW4udjIuU3dpdGNoU2VydmljZUxpc3RSZXF1ZXN0Gi4ubWV0YWxzdGFjay5hZG1pbi52Mi5Td2l0Y2hTZXJ2aWNlTGlzdFJlc3BvbnNlIgrS8xgCAQLg8xgCEnYKBlVwZGF0ZRIvLm1ldGFsc3RhY2suYWRtaW4udjIuU3dpdGNoU2VydmljZVVwZGF0ZVJlcXVlc3QaMC5tZXRhbHN0YWNrLmFkbWluLnYyLlN3aXRjaFNlcnZpY2VVcGRhdGVSZXNwb25zZSIJ0vMYAQHg8xgBEnYKBkRlbGV0ZRIvLm1ldGFsc3RhY2suYWRtaW4udjIuU3dpdGNoU2VydmljZURlbGV0ZVJlcXVlc3QaMC5tZXRhbHN0YWNrLmFkbWluLnYyLlN3aXRjaFNlcnZpY2VEZWxldGVSZXNwb25zZSIJ0vMYAQHg8xgBEnkKB01pZ3JhdGUSMC5tZXRhbHN0YWNrLmFkbWluLnYyLlN3aXRjaFNlcnZpY2VNaWdyYXRlUmVxdWVzdBoxLm1ldGFsc3RhY2suYWRtaW4udjIuU3dpdGNoU2VydmljZU1pZ3JhdGVSZXNwb25zZSIJ0vMYAQHg8xgBEnAKBFBvcnQSLS5tZXRhbHN0YWNrLmFkbWluLnYyLlN3aXRjaFNlcnZpY2VQb3J0UmVxdWVzdBouLm1ldGFsc3RhY2suYWRtaW4udjIuU3dpdGNoU2VydmljZVBvcnRSZXNwb25zZSIJ0vMYAQHg8xgBEpgBChFDb25uZWN0ZWRNYWNoaW5lcxI6Lm1ldGFsc3RhY2suYWRtaW4udjIuU3dpdGNoU2VydmljZUNvbm5lY3RlZE1hY2hpbmVzUmVxdWVzdBo7Lm1ldGFsc3RhY2suYWRtaW4udjIuU3dpdGNoU2VydmljZUNvbm5lY3RlZE1hY2hpbmVzUmVzcG9uc2UiCtLzGAIBAuDzGAJCzwEKF2NvbS5tZXRhbHN0YWNrLmFkbWluLnYyQgtTd2l0Y2hQcm90b1ABWjlnaXRodWIuY29tL21ldGFsLXN0YWNrL2FwaS9nby9tZXRhbHN0YWNrL2FkbWluL3YyO2FkbWludjKiAgNNQViqAhNNZXRhbHN0YWNrLkFkbWluLlYyygITTWV0YWxzdGFja1xBZG1pblxWMuICH01ldGFsc3RhY2tcQWRtaW5cVjJcR1BCTWV0YWRhdGHqAhVNZXRhbHN0YWNrOjpBZG1pbjo6VjJiBnByb3RvMw", [file_buf_validate_validate, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_machine, file_metalstack_api_v2_predefined_rules, file_metalstack_api_v2_switch]); /** * Describes the message metalstack.admin.v2.SwitchServiceGetRequest. * Use `create(SwitchServiceGetRequestSchema)` to create a new message. diff --git a/js/metalstack/admin/v2/switch_pb.ts b/js/metalstack/admin/v2/switch_pb.ts index d97f39f7..39d3c204 100644 --- a/js/metalstack/admin/v2/switch_pb.ts +++ b/js/metalstack/admin/v2/switch_pb.ts @@ -12,7 +12,7 @@ import { file_metalstack_api_v2_common } from "../../api/v2/common_pb"; import type { MachineQuery } from "../../api/v2/machine_pb"; import { file_metalstack_api_v2_machine } from "../../api/v2/machine_pb"; import { file_metalstack_api_v2_predefined_rules } from "../../api/v2/predefined_rules_pb"; -import type { Switch, SwitchNic, SwitchOS, SwitchPortStatus, SwitchQuery, SwitchReplaceMode, SwitchWithMachines } from "../../api/v2/switch_pb"; +import type { StaticPortConfig, Switch, SwitchNic, SwitchOS, SwitchQuery, SwitchReplaceMode, SwitchWithMachines } from "../../api/v2/switch_pb"; import { file_metalstack_api_v2_switch } from "../../api/v2/switch_pb"; import type { Message } from "@bufbuild/protobuf"; @@ -20,7 +20,7 @@ import type { Message } from "@bufbuild/protobuf"; * Describes the file metalstack/admin/v2/switch.proto. */ export const file_metalstack_admin_v2_switch: GenFile = /*@__PURE__*/ - fileDesc("CiBtZXRhbHN0YWNrL2FkbWluL3YyL3N3aXRjaC5wcm90bxITbWV0YWxzdGFjay5hZG1pbi52MiI0ChdTd2l0Y2hTZXJ2aWNlR2V0UmVxdWVzdBIZCgJpZBgBIAEoCUINukgKcgjAs66xAgFoASJFChhTd2l0Y2hTZXJ2aWNlR2V0UmVzcG9uc2USKQoGc3dpdGNoGAEgASgLMhkubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoIkkKGFN3aXRjaFNlcnZpY2VMaXN0UmVxdWVzdBItCgVxdWVyeRgBIAEoCzIeLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFF1ZXJ5IkgKGVN3aXRjaFNlcnZpY2VMaXN0UmVzcG9uc2USKwoIc3dpdGNoZXMYASADKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2gizAQKGlN3aXRjaFNlcnZpY2VVcGRhdGVSZXF1ZXN0EhkKAmlkGAEgASgJQg26SApyCMCzrrECAWgBEjoKC3VwZGF0ZV9tZXRhGAIgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTWV0YUIGukgDyAEBEi4KCnVwZGF0ZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiUKC2Rlc2NyaXB0aW9uGAQgASgJQgu6SAhyBsizrrECAUgAiAEBEkkKDHJlcGxhY2VfbW9kZRgFIAEoDjIkLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFJlcGxhY2VNb2RlQgi6SAWCAQIQAUgBiAEBEiMKDW1hbmFnZW1lbnRfaXAYBiABKAlCB7pIBHICcAFIAogBARIpCg9tYW5hZ2VtZW50X3VzZXIYByABKAlCC7pICHIGwLOusQIBSAOIAQESKQoPY29uc29sZV9jb21tYW5kGAggASgJQgu6SAhyBsizrrECAUgEiAEBEioKBG5pY3MYCSADKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSLAoCb3MYCiABKAsyGy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hPU0gFiAEBQg4KDF9kZXNjcmlwdGlvbkIPCg1fcmVwbGFjZV9tb2RlQhAKDl9tYW5hZ2VtZW50X2lwQhIKEF9tYW5hZ2VtZW50X3VzZXJCEgoQX2NvbnNvbGVfY29tbWFuZEIFCgNfb3MiSAobU3dpdGNoU2VydmljZVVwZGF0ZVJlc3BvbnNlEikKBnN3aXRjaBgBIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaCJGChpTd2l0Y2hTZXJ2aWNlRGVsZXRlUmVxdWVzdBIZCgJpZBgBIAEoCUINukgKcgjAs66xAgFoARINCgVmb3JjZRgCIAEoCCJIChtTd2l0Y2hTZXJ2aWNlRGVsZXRlUmVzcG9uc2USKQoGc3dpdGNoGAEgASgLMhkubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoImMKG1N3aXRjaFNlcnZpY2VNaWdyYXRlUmVxdWVzdBIhCgpvbGRfc3dpdGNoGAEgASgJQg26SApyCMCzrrECAWgBEiEKCm5ld19zd2l0Y2gYAiABKAlCDbpICnIIwLOusQIBaAEiSQocU3dpdGNoU2VydmljZU1pZ3JhdGVSZXNwb25zZRIpCgZzd2l0Y2gYASABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2gikwEKGFN3aXRjaFNlcnZpY2VQb3J0UmVxdWVzdBIZCgJpZBgBIAEoCUINukgKcgjAs66xAgFoARIdCghuaWNfbmFtZRgCIAEoCUILukgIcgbAs66xAgESPQoGc3RhdHVzGAMgASgOMiMubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydFN0YXR1c0IIukgFggECEAEiRgoZU3dpdGNoU2VydmljZVBvcnRSZXNwb25zZRIpCgZzd2l0Y2gYASABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2gijgEKJVN3aXRjaFNlcnZpY2VDb25uZWN0ZWRNYWNoaW5lc1JlcXVlc3QSLQoFcXVlcnkYASABKAsyHi5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hRdWVyeRI2Cg1tYWNoaW5lX3F1ZXJ5GAIgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZVF1ZXJ5Im8KJlN3aXRjaFNlcnZpY2VDb25uZWN0ZWRNYWNoaW5lc1Jlc3BvbnNlEkUKFnN3aXRjaGVzX3dpdGhfbWFjaGluZXMYASADKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hXaXRoTWFjaGluZXMy6gYKDVN3aXRjaFNlcnZpY2USbgoDR2V0EiwubWV0YWxzdGFjay5hZG1pbi52Mi5Td2l0Y2hTZXJ2aWNlR2V0UmVxdWVzdBotLm1ldGFsc3RhY2suYWRtaW4udjIuU3dpdGNoU2VydmljZUdldFJlc3BvbnNlIgrS8xgCAQLg8xgCEnEKBExpc3QSLS5tZXRhbHN0YWNrLmFkbWluLnYyLlN3aXRjaFNlcnZpY2VMaXN0UmVxdWVzdBouLm1ldGFsc3RhY2suYWRtaW4udjIuU3dpdGNoU2VydmljZUxpc3RSZXNwb25zZSIK0vMYAgEC4PMYAhJ2CgZVcGRhdGUSLy5tZXRhbHN0YWNrLmFkbWluLnYyLlN3aXRjaFNlcnZpY2VVcGRhdGVSZXF1ZXN0GjAubWV0YWxzdGFjay5hZG1pbi52Mi5Td2l0Y2hTZXJ2aWNlVXBkYXRlUmVzcG9uc2UiCdLzGAEB4PMYARJ2CgZEZWxldGUSLy5tZXRhbHN0YWNrLmFkbWluLnYyLlN3aXRjaFNlcnZpY2VEZWxldGVSZXF1ZXN0GjAubWV0YWxzdGFjay5hZG1pbi52Mi5Td2l0Y2hTZXJ2aWNlRGVsZXRlUmVzcG9uc2UiCdLzGAEB4PMYARJ5CgdNaWdyYXRlEjAubWV0YWxzdGFjay5hZG1pbi52Mi5Td2l0Y2hTZXJ2aWNlTWlncmF0ZVJlcXVlc3QaMS5tZXRhbHN0YWNrLmFkbWluLnYyLlN3aXRjaFNlcnZpY2VNaWdyYXRlUmVzcG9uc2UiCdLzGAEB4PMYARJwCgRQb3J0Ei0ubWV0YWxzdGFjay5hZG1pbi52Mi5Td2l0Y2hTZXJ2aWNlUG9ydFJlcXVlc3QaLi5tZXRhbHN0YWNrLmFkbWluLnYyLlN3aXRjaFNlcnZpY2VQb3J0UmVzcG9uc2UiCdLzGAEB4PMYARKYAQoRQ29ubmVjdGVkTWFjaGluZXMSOi5tZXRhbHN0YWNrLmFkbWluLnYyLlN3aXRjaFNlcnZpY2VDb25uZWN0ZWRNYWNoaW5lc1JlcXVlc3QaOy5tZXRhbHN0YWNrLmFkbWluLnYyLlN3aXRjaFNlcnZpY2VDb25uZWN0ZWRNYWNoaW5lc1Jlc3BvbnNlIgrS8xgCAQLg8xgCQs8BChdjb20ubWV0YWxzdGFjay5hZG1pbi52MkILU3dpdGNoUHJvdG9QAVo5Z2l0aHViLmNvbS9tZXRhbC1zdGFjay9hcGkvZ28vbWV0YWxzdGFjay9hZG1pbi92MjthZG1pbnYyogIDTUFYqgITTWV0YWxzdGFjay5BZG1pbi5WMsoCE01ldGFsc3RhY2tcQWRtaW5cVjLiAh9NZXRhbHN0YWNrXEFkbWluXFYyXEdQQk1ldGFkYXRh6gIVTWV0YWxzdGFjazo6QWRtaW46OlYyYgZwcm90bzM", [file_buf_validate_validate, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_machine, file_metalstack_api_v2_predefined_rules, file_metalstack_api_v2_switch]); + fileDesc("CiBtZXRhbHN0YWNrL2FkbWluL3YyL3N3aXRjaC5wcm90bxITbWV0YWxzdGFjay5hZG1pbi52MiI0ChdTd2l0Y2hTZXJ2aWNlR2V0UmVxdWVzdBIZCgJpZBgBIAEoCUINukgKcgjAs66xAgFoASJFChhTd2l0Y2hTZXJ2aWNlR2V0UmVzcG9uc2USKQoGc3dpdGNoGAEgASgLMhkubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoIkkKGFN3aXRjaFNlcnZpY2VMaXN0UmVxdWVzdBItCgVxdWVyeRgBIAEoCzIeLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFF1ZXJ5IkgKGVN3aXRjaFNlcnZpY2VMaXN0UmVzcG9uc2USKwoIc3dpdGNoZXMYASADKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2gizAQKGlN3aXRjaFNlcnZpY2VVcGRhdGVSZXF1ZXN0EhkKAmlkGAEgASgJQg26SApyCMCzrrECAWgBEjoKC3VwZGF0ZV9tZXRhGAIgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTWV0YUIGukgDyAEBEi4KCnVwZGF0ZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiUKC2Rlc2NyaXB0aW9uGAQgASgJQgu6SAhyBsizrrECAUgAiAEBEkkKDHJlcGxhY2VfbW9kZRgFIAEoDjIkLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFJlcGxhY2VNb2RlQgi6SAWCAQIQAUgBiAEBEiMKDW1hbmFnZW1lbnRfaXAYBiABKAlCB7pIBHICcAFIAogBARIpCg9tYW5hZ2VtZW50X3VzZXIYByABKAlCC7pICHIGwLOusQIBSAOIAQESKQoPY29uc29sZV9jb21tYW5kGAggASgJQgu6SAhyBsizrrECAUgEiAEBEioKBG5pY3MYCSADKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSLAoCb3MYCiABKAsyGy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hPU0gFiAEBQg4KDF9kZXNjcmlwdGlvbkIPCg1fcmVwbGFjZV9tb2RlQhAKDl9tYW5hZ2VtZW50X2lwQhIKEF9tYW5hZ2VtZW50X3VzZXJCEgoQX2NvbnNvbGVfY29tbWFuZEIFCgNfb3MiSAobU3dpdGNoU2VydmljZVVwZGF0ZVJlc3BvbnNlEikKBnN3aXRjaBgBIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaCJGChpTd2l0Y2hTZXJ2aWNlRGVsZXRlUmVxdWVzdBIZCgJpZBgBIAEoCUINukgKcgjAs66xAgFoARINCgVmb3JjZRgCIAEoCCJIChtTd2l0Y2hTZXJ2aWNlRGVsZXRlUmVzcG9uc2USKQoGc3dpdGNoGAEgASgLMhkubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoImMKG1N3aXRjaFNlcnZpY2VNaWdyYXRlUmVxdWVzdBIhCgpvbGRfc3dpdGNoGAEgASgJQg26SApyCMCzrrECAWgBEiEKCm5ld19zd2l0Y2gYAiABKAlCDbpICnIIwLOusQIBaAEiSQocU3dpdGNoU2VydmljZU1pZ3JhdGVSZXNwb25zZRIpCgZzd2l0Y2gYASABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2giiQEKGFN3aXRjaFNlcnZpY2VQb3J0UmVxdWVzdBIZCgJpZBgBIAEoCUINukgKcgjAs66xAgFoARIdCghuaWNfbmFtZRgCIAEoCUILukgIcgbAs66xAgESMwoGY29uZmlnGAMgASgLMiMubWV0YWxzdGFjay5hcGkudjIuU3RhdGljUG9ydENvbmZpZyJGChlTd2l0Y2hTZXJ2aWNlUG9ydFJlc3BvbnNlEikKBnN3aXRjaBgBIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaCKOAQolU3dpdGNoU2VydmljZUNvbm5lY3RlZE1hY2hpbmVzUmVxdWVzdBItCgVxdWVyeRgBIAEoCzIeLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFF1ZXJ5EjYKDW1hY2hpbmVfcXVlcnkYAiABKAsyHy5tZXRhbHN0YWNrLmFwaS52Mi5NYWNoaW5lUXVlcnkibwomU3dpdGNoU2VydmljZUNvbm5lY3RlZE1hY2hpbmVzUmVzcG9uc2USRQoWc3dpdGNoZXNfd2l0aF9tYWNoaW5lcxgBIAMoCzIlLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFdpdGhNYWNoaW5lczLqBgoNU3dpdGNoU2VydmljZRJuCgNHZXQSLC5tZXRhbHN0YWNrLmFkbWluLnYyLlN3aXRjaFNlcnZpY2VHZXRSZXF1ZXN0Gi0ubWV0YWxzdGFjay5hZG1pbi52Mi5Td2l0Y2hTZXJ2aWNlR2V0UmVzcG9uc2UiCtLzGAIBAuDzGAIScQoETGlzdBItLm1ldGFsc3RhY2suYWRtaW4udjIuU3dpdGNoU2VydmljZUxpc3RSZXF1ZXN0Gi4ubWV0YWxzdGFjay5hZG1pbi52Mi5Td2l0Y2hTZXJ2aWNlTGlzdFJlc3BvbnNlIgrS8xgCAQLg8xgCEnYKBlVwZGF0ZRIvLm1ldGFsc3RhY2suYWRtaW4udjIuU3dpdGNoU2VydmljZVVwZGF0ZVJlcXVlc3QaMC5tZXRhbHN0YWNrLmFkbWluLnYyLlN3aXRjaFNlcnZpY2VVcGRhdGVSZXNwb25zZSIJ0vMYAQHg8xgBEnYKBkRlbGV0ZRIvLm1ldGFsc3RhY2suYWRtaW4udjIuU3dpdGNoU2VydmljZURlbGV0ZVJlcXVlc3QaMC5tZXRhbHN0YWNrLmFkbWluLnYyLlN3aXRjaFNlcnZpY2VEZWxldGVSZXNwb25zZSIJ0vMYAQHg8xgBEnkKB01pZ3JhdGUSMC5tZXRhbHN0YWNrLmFkbWluLnYyLlN3aXRjaFNlcnZpY2VNaWdyYXRlUmVxdWVzdBoxLm1ldGFsc3RhY2suYWRtaW4udjIuU3dpdGNoU2VydmljZU1pZ3JhdGVSZXNwb25zZSIJ0vMYAQHg8xgBEnAKBFBvcnQSLS5tZXRhbHN0YWNrLmFkbWluLnYyLlN3aXRjaFNlcnZpY2VQb3J0UmVxdWVzdBouLm1ldGFsc3RhY2suYWRtaW4udjIuU3dpdGNoU2VydmljZVBvcnRSZXNwb25zZSIJ0vMYAQHg8xgBEpgBChFDb25uZWN0ZWRNYWNoaW5lcxI6Lm1ldGFsc3RhY2suYWRtaW4udjIuU3dpdGNoU2VydmljZUNvbm5lY3RlZE1hY2hpbmVzUmVxdWVzdBo7Lm1ldGFsc3RhY2suYWRtaW4udjIuU3dpdGNoU2VydmljZUNvbm5lY3RlZE1hY2hpbmVzUmVzcG9uc2UiCtLzGAIBAuDzGAJCzwEKF2NvbS5tZXRhbHN0YWNrLmFkbWluLnYyQgtTd2l0Y2hQcm90b1ABWjlnaXRodWIuY29tL21ldGFsLXN0YWNrL2FwaS9nby9tZXRhbHN0YWNrL2FkbWluL3YyO2FkbWludjKiAgNNQViqAhNNZXRhbHN0YWNrLkFkbWluLlYyygITTWV0YWxzdGFja1xBZG1pblxWMuICH01ldGFsc3RhY2tcQWRtaW5cVjJcR1BCTWV0YWRhdGHqAhVNZXRhbHN0YWNrOjpBZG1pbjo6VjJiBnByb3RvMw", [file_buf_validate_validate, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_machine, file_metalstack_api_v2_predefined_rules, file_metalstack_api_v2_switch]); /** * SwitchServiceGetRequest is the request payload for getting a switch. @@ -311,7 +311,7 @@ export const SwitchServiceMigrateResponseSchema: GenMessage & { /** - * Switch after the port status toggle. + * Switch after the update. * * @generated from field: metalstack.api.v2.Switch switch = 1; */ diff --git a/js/metalstack/api/v2/switch_pb.d.ts b/js/metalstack/api/v2/switch_pb.d.ts index 594c46d7..eee9ee26 100644 --- a/js/metalstack/api/v2/switch_pb.d.ts +++ b/js/metalstack/api/v2/switch_pb.d.ts @@ -500,16 +500,22 @@ export declare const SwitchNicWithMachineSchema: GenMessage & { + /** + * Status is the administrative status of the port. + * + * @generated from field: metalstack.api.v2.SwitchPortStatus status = 1; + */ + status: SwitchPortStatus; /** * Membership specifies whether this port is connected to a registered machine or to an external host or if it is unmanaged. * - * @generated from field: metalstack.api.v2.SwitchPortMembership membership = 1; + * @generated from field: metalstack.api.v2.SwitchPortMembership membership = 2; */ membership: SwitchPortMembership; /** * Network the port is a member of. * - * @generated from field: optional string network = 2; + * @generated from field: optional string network = 3; */ network?: string | undefined; }; diff --git a/js/metalstack/api/v2/switch_pb.js b/js/metalstack/api/v2/switch_pb.js index c803c144..f5cbeb47 100644 --- a/js/metalstack/api/v2/switch_pb.js +++ b/js/metalstack/api/v2/switch_pb.js @@ -10,7 +10,7 @@ import { file_metalstack_api_v2_predefined_rules } from "./predefined_rules_pb"; /** * Describes the file metalstack/api/v2/switch.proto. */ -export const file_metalstack_api_v2_switch = /*@__PURE__*/ fileDesc("Ch5tZXRhbHN0YWNrL2FwaS92Mi9zd2l0Y2gucHJvdG8SEW1ldGFsc3RhY2suYXBpLnYyIsIFCgZTd2l0Y2gSGQoCaWQYASABKAlCDbpICnIIwLOusQIBaAESJQoEbWV0YRgCIAEoCzIXLm1ldGFsc3RhY2suYXBpLnYyLk1ldGESIAoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBEh4KBHJhY2sYBCABKAlCC7pICHIGwLOusQIBSACIAQESHgoEcm9vbRgFIAEoCUILukgIcgbAs66xAgFIAYgBARIeCglwYXJ0aXRpb24YBiABKAlCC7pICHIG0LOusQIBEkQKDHJlcGxhY2VfbW9kZRgHIAEoDjIkLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFJlcGxhY2VNb2RlQgi6SAWCAQIQARIeCg1tYW5hZ2VtZW50X2lwGAggASgJQge6SARyAnABEigKD21hbmFnZW1lbnRfdXNlchgJIAEoCUIKukgHcgUQAhiAAUgCiAEBEigKD2NvbnNvbGVfY29tbWFuZBgKIAEoCUIKukgHcgUQAhiAAUgDiAEBEioKBG5pY3MYCyADKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSJwoCb3MYDCABKAsyGy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hPUxJBChNtYWNoaW5lX2Nvbm5lY3Rpb25zGA0gAygLMiQubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUNvbm5lY3Rpb24SMAoJbGFzdF9zeW5jGA4gASgLMh0ubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoU3luYxI2Cg9sYXN0X3N5bmNfZXJyb3IYDyABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hTeW5jQgcKBV9yYWNrQgcKBV9yb29tQhIKEF9tYW5hZ2VtZW50X3VzZXJCEgoQX2NvbnNvbGVfY29tbWFuZCKOAQoIU3dpdGNoT1MSOwoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABEhwKB3ZlcnNpb24YAiABKAlCC7pICHIGwLOusQIBEicKEm1ldGFsX2NvcmVfdmVyc2lvbhgDIAEoCUILukgIcgbAs66xAgEioQMKCVN3aXRjaE5pYxIZCgRuYW1lGAEgASgJQgu6SAhyBsCzrrECARIfCgppZGVudGlmaWVyGAIgASgJQgu6SAhyBsCzrrECARIUCgNtYWMYAyABKAlCAhgBSACIAQESHQoDdnJmGAQgASgJQgu6SAhyBsCzrrECAUgBiAEBEi8KBXN0YXRlGAUgASgLMhsubWV0YWxzdGFjay5hcGkudjIuTmljU3RhdGVIAogBARI1CgpiZ3BfZmlsdGVyGAYgASgLMhwubWV0YWxzdGFjay5hcGkudjIuQkdQRmlsdGVySAOIAQESQgoOYmdwX3BvcnRfc3RhdGUYByABKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hCR1BQb3J0U3RhdGVIBIgBARI7CgptZW1iZXJzaGlwGAggASgOMicubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydE1lbWJlcnNoaXBCBgoEX21hY0IGCgRfdnJmQggKBl9zdGF0ZUINCgtfYmdwX2ZpbHRlckIRCg9fYmdwX3BvcnRfc3RhdGUiRwoJQkdQRmlsdGVyEhsKBWNpZHJzGAEgAygJQgy6SAmSAQa4pLOxAgESHQoEdm5pcxgCIAMoCUIPukgMkgEJIgdyBRACGIABIrsCChJTd2l0Y2hCR1BQb3J0U3RhdGUSIgoIbmVpZ2hib3IYASABKAlCC7pICHIGwLOusQIBSACIAQESHwoKcGVlcl9ncm91cBgCIAEoCUILukgIcgbAs66xAgESHQoIdnJmX25hbWUYAyABKAlCC7pICHIGwLOusQIBEjgKCWJncF9zdGF0ZRgEIAEoDjIbLm1ldGFsc3RhY2suYXBpLnYyLkJHUFN0YXRlQgi6SAWCAQIQARI8ChhiZ3BfdGltZXJfdXBfZXN0YWJsaXNoZWQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhsKE3NlbnRfcHJlZml4X2NvdW50ZXIYBiABKAQSHwoXYWNjZXB0ZWRfcHJlZml4X2NvdW50ZXIYByABKARCCwoJX25laWdoYm9yIpoBCghOaWNTdGF0ZRJDCgdkZXNpcmVkGAEgASgOMiMubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydFN0YXR1c0IIukgFggECEAFIAIgBARI9CgZhY3R1YWwYAiABKA4yIy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hQb3J0U3RhdHVzQgi6SAWCAQIQAUIKCghfZGVzaXJlZCJSChFNYWNoaW5lQ29ubmVjdGlvbhISCgptYWNoaW5lX2lkGAEgASgJEikKA25pYxgCIAEoCzIcLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pYyK5AgoLU3dpdGNoUXVlcnkSHgoCaWQYASABKAlCDbpICnIIwLOusQIBaAFIAIgBARIjCglwYXJ0aXRpb24YAiABKAlCC7pICHIG0LOusQIBSAGIAQESHgoEcmFjaxgDIAEoCUILukgIcgbAs66xAgFIAogBARIeCgRyb29tGAQgASgJQgu6SAhyBsCzrrECAUgDiAEBEjEKAm9zGAUgASgLMiAubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NRdWVyeUgEiAEBEisKFGNvbm5lY3RlZF9tYWNoaW5lX2lkGAYgASgJQgi6SAVyA7ABAUgFiAEBQgUKA19pZEIMCgpfcGFydGl0aW9uQgcKBV9yYWNrQgcKBV9yb29tQgUKA19vc0IXChVfY29ubmVjdGVkX21hY2hpbmVfaWQiiwEKDVN3aXRjaE9TUXVlcnkSQAoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABSACIAQESIQoHdmVyc2lvbhgCIAEoCUILukgIcgbAs66xAgFIAYgBAUIJCgdfdmVuZG9yQgoKCF92ZXJzaW9uIoEBCgpTd2l0Y2hTeW5jEigKBHRpbWUYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKCGR1cmF0aW9uGAIgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEhIKBWVycm9yGAMgASgJSACIAQFCCAoGX2Vycm9yIn8KElN3aXRjaFdpdGhNYWNoaW5lcxIKCgJpZBgBIAEoCRIRCglwYXJ0aXRpb24YAiABKAkSDAoEcmFjaxgDIAEoCRI8Cgtjb25uZWN0aW9ucxgEIAMoCzInLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pY1dpdGhNYWNoaW5lIpoBChRTd2l0Y2hOaWNXaXRoTWFjaGluZRIpCgNuaWMYASABKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSKwoHbWFjaGluZRgCIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk1hY2hpbmUSKgoDZnJ1GAMgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUZSVSJxChBTdGF0aWNQb3J0Q29uZmlnEjsKCm1lbWJlcnNoaXAYASABKA4yJy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hQb3J0TWVtYmVyc2hpcBIUCgduZXR3b3JrGAIgASgJSACIAQFCCgoIX25ldHdvcmsqiQIKCEJHUFN0YXRlEhkKFUJHUF9TVEFURV9VTlNQRUNJRklFRBAAEhwKDkJHUF9TVEFURV9JRExFEAEaCIKyGQRJZGxlEiIKEUJHUF9TVEFURV9DT05ORUNUEAIaC4KyGQdDb25uZWN0EiAKEEJHUF9TVEFURV9BQ1RJVkUQAxoKgrIZBkFjdGl2ZRIlChNCR1BfU1RBVEVfT1BFTl9TRU5UEAQaDIKyGQhPcGVuU2VudBIrChZCR1BfU1RBVEVfT1BFTl9DT05GSVJNEAUaD4KyGQtPcGVuQ29uZmlybRIqChVCR1BfU1RBVEVfRVNUQUJMSVNIRUQQBhoPgrIZC0VzdGFibGlzaGVkKqIBChFTd2l0Y2hSZXBsYWNlTW9kZRIpCh9TV0lUQ0hfUkVQTEFDRV9NT0RFX1VOU1BFQ0lGSUVEEAAaBIKyGQASLAobU1dJVENIX1JFUExBQ0VfTU9ERV9SRVBMQUNFEAEaC4KyGQdyZXBsYWNlEjQKH1NXSVRDSF9SRVBMQUNFX01PREVfT1BFUkFUSU9OQUwQAhoPgrIZC29wZXJhdGlvbmFsKoQBCg5Td2l0Y2hPU1ZlbmRvchIgChxTV0lUQ0hfT1NfVkVORE9SX1VOU1BFQ0lGSUVEEAASKQoYU1dJVENIX09TX1ZFTkRPUl9DVU1VTFVTEAEaC4KyGQdDdW11bHVzEiUKFlNXSVRDSF9PU19WRU5ET1JfU09OSUMQAhoJgrIZBVNPTmlDKq0BChBTd2l0Y2hQb3J0U3RhdHVzEiIKHlNXSVRDSF9QT1JUX1NUQVRVU19VTlNQRUNJRklFRBAAEiEKFVNXSVRDSF9QT1JUX1NUQVRVU19VUBABGgaCshkCdXASJQoXU1dJVENIX1BPUlRfU1RBVFVTX0RPV04QAhoIgrIZBGRvd24SKwoaU1dJVENIX1BPUlRfU1RBVFVTX1VOS05PV04QAxoLgrIZB3Vua25vd24q2QEKFFN3aXRjaFBvcnRNZW1iZXJzaGlwEiYKIlNXSVRDSF9QT1JUX01FTUJFUlNISVBfVU5TUEVDSUZJRUQQABIzCiBTV0lUQ0hfUE9SVF9NRU1CRVJTSElQX1VOTUFOQUdFRBABGg2CshkJdW5tYW5hZ2VkEjEKH1NXSVRDSF9QT1JUX01FTUJFUlNISVBfSU5URVJOQUwQAhoMgrIZCGludGVybmFsEjEKH1NXSVRDSF9QT1JUX01FTUJFUlNISVBfRVhURVJOQUwQAxoMgrIZCGV4dGVybmFsQsEBChVjb20ubWV0YWxzdGFjay5hcGkudjJCC1N3aXRjaFByb3RvUAFaNWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYXBpL3YyO2FwaXYyogIDTUFYqgIRTWV0YWxzdGFjay5BcGkuVjLKAhFNZXRhbHN0YWNrXEFwaVxWMuICHU1ldGFsc3RhY2tcQXBpXFYyXEdQQk1ldGFkYXRh6gITTWV0YWxzdGFjazo6QXBpOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_google_protobuf_duration, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_machine, file_metalstack_api_v2_predefined_rules]); +export const file_metalstack_api_v2_switch = /*@__PURE__*/ fileDesc("Ch5tZXRhbHN0YWNrL2FwaS92Mi9zd2l0Y2gucHJvdG8SEW1ldGFsc3RhY2suYXBpLnYyIsIFCgZTd2l0Y2gSGQoCaWQYASABKAlCDbpICnIIwLOusQIBaAESJQoEbWV0YRgCIAEoCzIXLm1ldGFsc3RhY2suYXBpLnYyLk1ldGESIAoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBEh4KBHJhY2sYBCABKAlCC7pICHIGwLOusQIBSACIAQESHgoEcm9vbRgFIAEoCUILukgIcgbAs66xAgFIAYgBARIeCglwYXJ0aXRpb24YBiABKAlCC7pICHIG0LOusQIBEkQKDHJlcGxhY2VfbW9kZRgHIAEoDjIkLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFJlcGxhY2VNb2RlQgi6SAWCAQIQARIeCg1tYW5hZ2VtZW50X2lwGAggASgJQge6SARyAnABEigKD21hbmFnZW1lbnRfdXNlchgJIAEoCUIKukgHcgUQAhiAAUgCiAEBEigKD2NvbnNvbGVfY29tbWFuZBgKIAEoCUIKukgHcgUQAhiAAUgDiAEBEioKBG5pY3MYCyADKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSJwoCb3MYDCABKAsyGy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hPUxJBChNtYWNoaW5lX2Nvbm5lY3Rpb25zGA0gAygLMiQubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUNvbm5lY3Rpb24SMAoJbGFzdF9zeW5jGA4gASgLMh0ubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoU3luYxI2Cg9sYXN0X3N5bmNfZXJyb3IYDyABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hTeW5jQgcKBV9yYWNrQgcKBV9yb29tQhIKEF9tYW5hZ2VtZW50X3VzZXJCEgoQX2NvbnNvbGVfY29tbWFuZCKOAQoIU3dpdGNoT1MSOwoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABEhwKB3ZlcnNpb24YAiABKAlCC7pICHIGwLOusQIBEicKEm1ldGFsX2NvcmVfdmVyc2lvbhgDIAEoCUILukgIcgbAs66xAgEioQMKCVN3aXRjaE5pYxIZCgRuYW1lGAEgASgJQgu6SAhyBsCzrrECARIfCgppZGVudGlmaWVyGAIgASgJQgu6SAhyBsCzrrECARIUCgNtYWMYAyABKAlCAhgBSACIAQESHQoDdnJmGAQgASgJQgu6SAhyBsCzrrECAUgBiAEBEi8KBXN0YXRlGAUgASgLMhsubWV0YWxzdGFjay5hcGkudjIuTmljU3RhdGVIAogBARI1CgpiZ3BfZmlsdGVyGAYgASgLMhwubWV0YWxzdGFjay5hcGkudjIuQkdQRmlsdGVySAOIAQESQgoOYmdwX3BvcnRfc3RhdGUYByABKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hCR1BQb3J0U3RhdGVIBIgBARI7CgptZW1iZXJzaGlwGAggASgOMicubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydE1lbWJlcnNoaXBCBgoEX21hY0IGCgRfdnJmQggKBl9zdGF0ZUINCgtfYmdwX2ZpbHRlckIRCg9fYmdwX3BvcnRfc3RhdGUiRwoJQkdQRmlsdGVyEhsKBWNpZHJzGAEgAygJQgy6SAmSAQa4pLOxAgESHQoEdm5pcxgCIAMoCUIPukgMkgEJIgdyBRACGIABIrsCChJTd2l0Y2hCR1BQb3J0U3RhdGUSIgoIbmVpZ2hib3IYASABKAlCC7pICHIGwLOusQIBSACIAQESHwoKcGVlcl9ncm91cBgCIAEoCUILukgIcgbAs66xAgESHQoIdnJmX25hbWUYAyABKAlCC7pICHIGwLOusQIBEjgKCWJncF9zdGF0ZRgEIAEoDjIbLm1ldGFsc3RhY2suYXBpLnYyLkJHUFN0YXRlQgi6SAWCAQIQARI8ChhiZ3BfdGltZXJfdXBfZXN0YWJsaXNoZWQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhsKE3NlbnRfcHJlZml4X2NvdW50ZXIYBiABKAQSHwoXYWNjZXB0ZWRfcHJlZml4X2NvdW50ZXIYByABKARCCwoJX25laWdoYm9yIpoBCghOaWNTdGF0ZRJDCgdkZXNpcmVkGAEgASgOMiMubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydFN0YXR1c0IIukgFggECEAFIAIgBARI9CgZhY3R1YWwYAiABKA4yIy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hQb3J0U3RhdHVzQgi6SAWCAQIQAUIKCghfZGVzaXJlZCJSChFNYWNoaW5lQ29ubmVjdGlvbhISCgptYWNoaW5lX2lkGAEgASgJEikKA25pYxgCIAEoCzIcLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pYyK5AgoLU3dpdGNoUXVlcnkSHgoCaWQYASABKAlCDbpICnIIwLOusQIBaAFIAIgBARIjCglwYXJ0aXRpb24YAiABKAlCC7pICHIG0LOusQIBSAGIAQESHgoEcmFjaxgDIAEoCUILukgIcgbAs66xAgFIAogBARIeCgRyb29tGAQgASgJQgu6SAhyBsCzrrECAUgDiAEBEjEKAm9zGAUgASgLMiAubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NRdWVyeUgEiAEBEisKFGNvbm5lY3RlZF9tYWNoaW5lX2lkGAYgASgJQgi6SAVyA7ABAUgFiAEBQgUKA19pZEIMCgpfcGFydGl0aW9uQgcKBV9yYWNrQgcKBV9yb29tQgUKA19vc0IXChVfY29ubmVjdGVkX21hY2hpbmVfaWQiiwEKDVN3aXRjaE9TUXVlcnkSQAoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABSACIAQESIQoHdmVyc2lvbhgCIAEoCUILukgIcgbAs66xAgFIAYgBAUIJCgdfdmVuZG9yQgoKCF92ZXJzaW9uIoEBCgpTd2l0Y2hTeW5jEigKBHRpbWUYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKCGR1cmF0aW9uGAIgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEhIKBWVycm9yGAMgASgJSACIAQFCCAoGX2Vycm9yIn8KElN3aXRjaFdpdGhNYWNoaW5lcxIKCgJpZBgBIAEoCRIRCglwYXJ0aXRpb24YAiABKAkSDAoEcmFjaxgDIAEoCRI8Cgtjb25uZWN0aW9ucxgEIAMoCzInLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pY1dpdGhNYWNoaW5lIpoBChRTd2l0Y2hOaWNXaXRoTWFjaGluZRIpCgNuaWMYASABKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSKwoHbWFjaGluZRgCIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk1hY2hpbmUSKgoDZnJ1GAMgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUZSVSKwAQoQU3RhdGljUG9ydENvbmZpZxI9CgZzdGF0dXMYASABKA4yIy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hQb3J0U3RhdHVzQgi6SAWCAQIQARI7CgptZW1iZXJzaGlwGAIgASgOMicubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydE1lbWJlcnNoaXASFAoHbmV0d29yaxgDIAEoCUgAiAEBQgoKCF9uZXR3b3JrKokCCghCR1BTdGF0ZRIZChVCR1BfU1RBVEVfVU5TUEVDSUZJRUQQABIcCg5CR1BfU1RBVEVfSURMRRABGgiCshkESWRsZRIiChFCR1BfU1RBVEVfQ09OTkVDVBACGguCshkHQ29ubmVjdBIgChBCR1BfU1RBVEVfQUNUSVZFEAMaCoKyGQZBY3RpdmUSJQoTQkdQX1NUQVRFX09QRU5fU0VOVBAEGgyCshkIT3BlblNlbnQSKwoWQkdQX1NUQVRFX09QRU5fQ09ORklSTRAFGg+CshkLT3BlbkNvbmZpcm0SKgoVQkdQX1NUQVRFX0VTVEFCTElTSEVEEAYaD4KyGQtFc3RhYmxpc2hlZCqiAQoRU3dpdGNoUmVwbGFjZU1vZGUSKQofU1dJVENIX1JFUExBQ0VfTU9ERV9VTlNQRUNJRklFRBAAGgSCshkAEiwKG1NXSVRDSF9SRVBMQUNFX01PREVfUkVQTEFDRRABGguCshkHcmVwbGFjZRI0Ch9TV0lUQ0hfUkVQTEFDRV9NT0RFX09QRVJBVElPTkFMEAIaD4KyGQtvcGVyYXRpb25hbCqEAQoOU3dpdGNoT1NWZW5kb3ISIAocU1dJVENIX09TX1ZFTkRPUl9VTlNQRUNJRklFRBAAEikKGFNXSVRDSF9PU19WRU5ET1JfQ1VNVUxVUxABGguCshkHQ3VtdWx1cxIlChZTV0lUQ0hfT1NfVkVORE9SX1NPTklDEAIaCYKyGQVTT05pQyqtAQoQU3dpdGNoUG9ydFN0YXR1cxIiCh5TV0lUQ0hfUE9SVF9TVEFUVVNfVU5TUEVDSUZJRUQQABIhChVTV0lUQ0hfUE9SVF9TVEFUVVNfVVAQARoGgrIZAnVwEiUKF1NXSVRDSF9QT1JUX1NUQVRVU19ET1dOEAIaCIKyGQRkb3duEisKGlNXSVRDSF9QT1JUX1NUQVRVU19VTktOT1dOEAMaC4KyGQd1bmtub3duKtkBChRTd2l0Y2hQb3J0TWVtYmVyc2hpcBImCiJTV0lUQ0hfUE9SVF9NRU1CRVJTSElQX1VOU1BFQ0lGSUVEEAASMwogU1dJVENIX1BPUlRfTUVNQkVSU0hJUF9VTk1BTkFHRUQQARoNgrIZCXVubWFuYWdlZBIxCh9TV0lUQ0hfUE9SVF9NRU1CRVJTSElQX0lOVEVSTkFMEAIaDIKyGQhpbnRlcm5hbBIxCh9TV0lUQ0hfUE9SVF9NRU1CRVJTSElQX0VYVEVSTkFMEAMaDIKyGQhleHRlcm5hbELBAQoVY29tLm1ldGFsc3RhY2suYXBpLnYyQgtTd2l0Y2hQcm90b1ABWjVnaXRodWIuY29tL21ldGFsLXN0YWNrL2FwaS9nby9tZXRhbHN0YWNrL2FwaS92MjthcGl2MqICA01BWKoCEU1ldGFsc3RhY2suQXBpLlYyygIRTWV0YWxzdGFja1xBcGlcVjLiAh1NZXRhbHN0YWNrXEFwaVxWMlxHUEJNZXRhZGF0YeoCE01ldGFsc3RhY2s6OkFwaTo6VjJiBnByb3RvMw", [file_buf_validate_validate, file_google_protobuf_duration, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_machine, file_metalstack_api_v2_predefined_rules]); /** * Describes the message metalstack.api.v2.Switch. * Use `create(SwitchSchema)` to create a new message. diff --git a/js/metalstack/api/v2/switch_pb.ts b/js/metalstack/api/v2/switch_pb.ts index f2dfcf95..44a7dfa2 100644 --- a/js/metalstack/api/v2/switch_pb.ts +++ b/js/metalstack/api/v2/switch_pb.ts @@ -18,7 +18,7 @@ import type { Message } from "@bufbuild/protobuf"; * Describes the file metalstack/api/v2/switch.proto. */ export const file_metalstack_api_v2_switch: GenFile = /*@__PURE__*/ - fileDesc("Ch5tZXRhbHN0YWNrL2FwaS92Mi9zd2l0Y2gucHJvdG8SEW1ldGFsc3RhY2suYXBpLnYyIsIFCgZTd2l0Y2gSGQoCaWQYASABKAlCDbpICnIIwLOusQIBaAESJQoEbWV0YRgCIAEoCzIXLm1ldGFsc3RhY2suYXBpLnYyLk1ldGESIAoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBEh4KBHJhY2sYBCABKAlCC7pICHIGwLOusQIBSACIAQESHgoEcm9vbRgFIAEoCUILukgIcgbAs66xAgFIAYgBARIeCglwYXJ0aXRpb24YBiABKAlCC7pICHIG0LOusQIBEkQKDHJlcGxhY2VfbW9kZRgHIAEoDjIkLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFJlcGxhY2VNb2RlQgi6SAWCAQIQARIeCg1tYW5hZ2VtZW50X2lwGAggASgJQge6SARyAnABEigKD21hbmFnZW1lbnRfdXNlchgJIAEoCUIKukgHcgUQAhiAAUgCiAEBEigKD2NvbnNvbGVfY29tbWFuZBgKIAEoCUIKukgHcgUQAhiAAUgDiAEBEioKBG5pY3MYCyADKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSJwoCb3MYDCABKAsyGy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hPUxJBChNtYWNoaW5lX2Nvbm5lY3Rpb25zGA0gAygLMiQubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUNvbm5lY3Rpb24SMAoJbGFzdF9zeW5jGA4gASgLMh0ubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoU3luYxI2Cg9sYXN0X3N5bmNfZXJyb3IYDyABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hTeW5jQgcKBV9yYWNrQgcKBV9yb29tQhIKEF9tYW5hZ2VtZW50X3VzZXJCEgoQX2NvbnNvbGVfY29tbWFuZCKOAQoIU3dpdGNoT1MSOwoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABEhwKB3ZlcnNpb24YAiABKAlCC7pICHIGwLOusQIBEicKEm1ldGFsX2NvcmVfdmVyc2lvbhgDIAEoCUILukgIcgbAs66xAgEioQMKCVN3aXRjaE5pYxIZCgRuYW1lGAEgASgJQgu6SAhyBsCzrrECARIfCgppZGVudGlmaWVyGAIgASgJQgu6SAhyBsCzrrECARIUCgNtYWMYAyABKAlCAhgBSACIAQESHQoDdnJmGAQgASgJQgu6SAhyBsCzrrECAUgBiAEBEi8KBXN0YXRlGAUgASgLMhsubWV0YWxzdGFjay5hcGkudjIuTmljU3RhdGVIAogBARI1CgpiZ3BfZmlsdGVyGAYgASgLMhwubWV0YWxzdGFjay5hcGkudjIuQkdQRmlsdGVySAOIAQESQgoOYmdwX3BvcnRfc3RhdGUYByABKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hCR1BQb3J0U3RhdGVIBIgBARI7CgptZW1iZXJzaGlwGAggASgOMicubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydE1lbWJlcnNoaXBCBgoEX21hY0IGCgRfdnJmQggKBl9zdGF0ZUINCgtfYmdwX2ZpbHRlckIRCg9fYmdwX3BvcnRfc3RhdGUiRwoJQkdQRmlsdGVyEhsKBWNpZHJzGAEgAygJQgy6SAmSAQa4pLOxAgESHQoEdm5pcxgCIAMoCUIPukgMkgEJIgdyBRACGIABIrsCChJTd2l0Y2hCR1BQb3J0U3RhdGUSIgoIbmVpZ2hib3IYASABKAlCC7pICHIGwLOusQIBSACIAQESHwoKcGVlcl9ncm91cBgCIAEoCUILukgIcgbAs66xAgESHQoIdnJmX25hbWUYAyABKAlCC7pICHIGwLOusQIBEjgKCWJncF9zdGF0ZRgEIAEoDjIbLm1ldGFsc3RhY2suYXBpLnYyLkJHUFN0YXRlQgi6SAWCAQIQARI8ChhiZ3BfdGltZXJfdXBfZXN0YWJsaXNoZWQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhsKE3NlbnRfcHJlZml4X2NvdW50ZXIYBiABKAQSHwoXYWNjZXB0ZWRfcHJlZml4X2NvdW50ZXIYByABKARCCwoJX25laWdoYm9yIpoBCghOaWNTdGF0ZRJDCgdkZXNpcmVkGAEgASgOMiMubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydFN0YXR1c0IIukgFggECEAFIAIgBARI9CgZhY3R1YWwYAiABKA4yIy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hQb3J0U3RhdHVzQgi6SAWCAQIQAUIKCghfZGVzaXJlZCJSChFNYWNoaW5lQ29ubmVjdGlvbhISCgptYWNoaW5lX2lkGAEgASgJEikKA25pYxgCIAEoCzIcLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pYyK5AgoLU3dpdGNoUXVlcnkSHgoCaWQYASABKAlCDbpICnIIwLOusQIBaAFIAIgBARIjCglwYXJ0aXRpb24YAiABKAlCC7pICHIG0LOusQIBSAGIAQESHgoEcmFjaxgDIAEoCUILukgIcgbAs66xAgFIAogBARIeCgRyb29tGAQgASgJQgu6SAhyBsCzrrECAUgDiAEBEjEKAm9zGAUgASgLMiAubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NRdWVyeUgEiAEBEisKFGNvbm5lY3RlZF9tYWNoaW5lX2lkGAYgASgJQgi6SAVyA7ABAUgFiAEBQgUKA19pZEIMCgpfcGFydGl0aW9uQgcKBV9yYWNrQgcKBV9yb29tQgUKA19vc0IXChVfY29ubmVjdGVkX21hY2hpbmVfaWQiiwEKDVN3aXRjaE9TUXVlcnkSQAoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABSACIAQESIQoHdmVyc2lvbhgCIAEoCUILukgIcgbAs66xAgFIAYgBAUIJCgdfdmVuZG9yQgoKCF92ZXJzaW9uIoEBCgpTd2l0Y2hTeW5jEigKBHRpbWUYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKCGR1cmF0aW9uGAIgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEhIKBWVycm9yGAMgASgJSACIAQFCCAoGX2Vycm9yIn8KElN3aXRjaFdpdGhNYWNoaW5lcxIKCgJpZBgBIAEoCRIRCglwYXJ0aXRpb24YAiABKAkSDAoEcmFjaxgDIAEoCRI8Cgtjb25uZWN0aW9ucxgEIAMoCzInLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pY1dpdGhNYWNoaW5lIpoBChRTd2l0Y2hOaWNXaXRoTWFjaGluZRIpCgNuaWMYASABKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSKwoHbWFjaGluZRgCIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk1hY2hpbmUSKgoDZnJ1GAMgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUZSVSJxChBTdGF0aWNQb3J0Q29uZmlnEjsKCm1lbWJlcnNoaXAYASABKA4yJy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hQb3J0TWVtYmVyc2hpcBIUCgduZXR3b3JrGAIgASgJSACIAQFCCgoIX25ldHdvcmsqiQIKCEJHUFN0YXRlEhkKFUJHUF9TVEFURV9VTlNQRUNJRklFRBAAEhwKDkJHUF9TVEFURV9JRExFEAEaCIKyGQRJZGxlEiIKEUJHUF9TVEFURV9DT05ORUNUEAIaC4KyGQdDb25uZWN0EiAKEEJHUF9TVEFURV9BQ1RJVkUQAxoKgrIZBkFjdGl2ZRIlChNCR1BfU1RBVEVfT1BFTl9TRU5UEAQaDIKyGQhPcGVuU2VudBIrChZCR1BfU1RBVEVfT1BFTl9DT05GSVJNEAUaD4KyGQtPcGVuQ29uZmlybRIqChVCR1BfU1RBVEVfRVNUQUJMSVNIRUQQBhoPgrIZC0VzdGFibGlzaGVkKqIBChFTd2l0Y2hSZXBsYWNlTW9kZRIpCh9TV0lUQ0hfUkVQTEFDRV9NT0RFX1VOU1BFQ0lGSUVEEAAaBIKyGQASLAobU1dJVENIX1JFUExBQ0VfTU9ERV9SRVBMQUNFEAEaC4KyGQdyZXBsYWNlEjQKH1NXSVRDSF9SRVBMQUNFX01PREVfT1BFUkFUSU9OQUwQAhoPgrIZC29wZXJhdGlvbmFsKoQBCg5Td2l0Y2hPU1ZlbmRvchIgChxTV0lUQ0hfT1NfVkVORE9SX1VOU1BFQ0lGSUVEEAASKQoYU1dJVENIX09TX1ZFTkRPUl9DVU1VTFVTEAEaC4KyGQdDdW11bHVzEiUKFlNXSVRDSF9PU19WRU5ET1JfU09OSUMQAhoJgrIZBVNPTmlDKq0BChBTd2l0Y2hQb3J0U3RhdHVzEiIKHlNXSVRDSF9QT1JUX1NUQVRVU19VTlNQRUNJRklFRBAAEiEKFVNXSVRDSF9QT1JUX1NUQVRVU19VUBABGgaCshkCdXASJQoXU1dJVENIX1BPUlRfU1RBVFVTX0RPV04QAhoIgrIZBGRvd24SKwoaU1dJVENIX1BPUlRfU1RBVFVTX1VOS05PV04QAxoLgrIZB3Vua25vd24q2QEKFFN3aXRjaFBvcnRNZW1iZXJzaGlwEiYKIlNXSVRDSF9QT1JUX01FTUJFUlNISVBfVU5TUEVDSUZJRUQQABIzCiBTV0lUQ0hfUE9SVF9NRU1CRVJTSElQX1VOTUFOQUdFRBABGg2CshkJdW5tYW5hZ2VkEjEKH1NXSVRDSF9QT1JUX01FTUJFUlNISVBfSU5URVJOQUwQAhoMgrIZCGludGVybmFsEjEKH1NXSVRDSF9QT1JUX01FTUJFUlNISVBfRVhURVJOQUwQAxoMgrIZCGV4dGVybmFsQsEBChVjb20ubWV0YWxzdGFjay5hcGkudjJCC1N3aXRjaFByb3RvUAFaNWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYXBpL3YyO2FwaXYyogIDTUFYqgIRTWV0YWxzdGFjay5BcGkuVjLKAhFNZXRhbHN0YWNrXEFwaVxWMuICHU1ldGFsc3RhY2tcQXBpXFYyXEdQQk1ldGFkYXRh6gITTWV0YWxzdGFjazo6QXBpOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_google_protobuf_duration, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_machine, file_metalstack_api_v2_predefined_rules]); + fileDesc("Ch5tZXRhbHN0YWNrL2FwaS92Mi9zd2l0Y2gucHJvdG8SEW1ldGFsc3RhY2suYXBpLnYyIsIFCgZTd2l0Y2gSGQoCaWQYASABKAlCDbpICnIIwLOusQIBaAESJQoEbWV0YRgCIAEoCzIXLm1ldGFsc3RhY2suYXBpLnYyLk1ldGESIAoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBEh4KBHJhY2sYBCABKAlCC7pICHIGwLOusQIBSACIAQESHgoEcm9vbRgFIAEoCUILukgIcgbAs66xAgFIAYgBARIeCglwYXJ0aXRpb24YBiABKAlCC7pICHIG0LOusQIBEkQKDHJlcGxhY2VfbW9kZRgHIAEoDjIkLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFJlcGxhY2VNb2RlQgi6SAWCAQIQARIeCg1tYW5hZ2VtZW50X2lwGAggASgJQge6SARyAnABEigKD21hbmFnZW1lbnRfdXNlchgJIAEoCUIKukgHcgUQAhiAAUgCiAEBEigKD2NvbnNvbGVfY29tbWFuZBgKIAEoCUIKukgHcgUQAhiAAUgDiAEBEioKBG5pY3MYCyADKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSJwoCb3MYDCABKAsyGy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hPUxJBChNtYWNoaW5lX2Nvbm5lY3Rpb25zGA0gAygLMiQubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUNvbm5lY3Rpb24SMAoJbGFzdF9zeW5jGA4gASgLMh0ubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoU3luYxI2Cg9sYXN0X3N5bmNfZXJyb3IYDyABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hTeW5jQgcKBV9yYWNrQgcKBV9yb29tQhIKEF9tYW5hZ2VtZW50X3VzZXJCEgoQX2NvbnNvbGVfY29tbWFuZCKOAQoIU3dpdGNoT1MSOwoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABEhwKB3ZlcnNpb24YAiABKAlCC7pICHIGwLOusQIBEicKEm1ldGFsX2NvcmVfdmVyc2lvbhgDIAEoCUILukgIcgbAs66xAgEioQMKCVN3aXRjaE5pYxIZCgRuYW1lGAEgASgJQgu6SAhyBsCzrrECARIfCgppZGVudGlmaWVyGAIgASgJQgu6SAhyBsCzrrECARIUCgNtYWMYAyABKAlCAhgBSACIAQESHQoDdnJmGAQgASgJQgu6SAhyBsCzrrECAUgBiAEBEi8KBXN0YXRlGAUgASgLMhsubWV0YWxzdGFjay5hcGkudjIuTmljU3RhdGVIAogBARI1CgpiZ3BfZmlsdGVyGAYgASgLMhwubWV0YWxzdGFjay5hcGkudjIuQkdQRmlsdGVySAOIAQESQgoOYmdwX3BvcnRfc3RhdGUYByABKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hCR1BQb3J0U3RhdGVIBIgBARI7CgptZW1iZXJzaGlwGAggASgOMicubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydE1lbWJlcnNoaXBCBgoEX21hY0IGCgRfdnJmQggKBl9zdGF0ZUINCgtfYmdwX2ZpbHRlckIRCg9fYmdwX3BvcnRfc3RhdGUiRwoJQkdQRmlsdGVyEhsKBWNpZHJzGAEgAygJQgy6SAmSAQa4pLOxAgESHQoEdm5pcxgCIAMoCUIPukgMkgEJIgdyBRACGIABIrsCChJTd2l0Y2hCR1BQb3J0U3RhdGUSIgoIbmVpZ2hib3IYASABKAlCC7pICHIGwLOusQIBSACIAQESHwoKcGVlcl9ncm91cBgCIAEoCUILukgIcgbAs66xAgESHQoIdnJmX25hbWUYAyABKAlCC7pICHIGwLOusQIBEjgKCWJncF9zdGF0ZRgEIAEoDjIbLm1ldGFsc3RhY2suYXBpLnYyLkJHUFN0YXRlQgi6SAWCAQIQARI8ChhiZ3BfdGltZXJfdXBfZXN0YWJsaXNoZWQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhsKE3NlbnRfcHJlZml4X2NvdW50ZXIYBiABKAQSHwoXYWNjZXB0ZWRfcHJlZml4X2NvdW50ZXIYByABKARCCwoJX25laWdoYm9yIpoBCghOaWNTdGF0ZRJDCgdkZXNpcmVkGAEgASgOMiMubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydFN0YXR1c0IIukgFggECEAFIAIgBARI9CgZhY3R1YWwYAiABKA4yIy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hQb3J0U3RhdHVzQgi6SAWCAQIQAUIKCghfZGVzaXJlZCJSChFNYWNoaW5lQ29ubmVjdGlvbhISCgptYWNoaW5lX2lkGAEgASgJEikKA25pYxgCIAEoCzIcLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pYyK5AgoLU3dpdGNoUXVlcnkSHgoCaWQYASABKAlCDbpICnIIwLOusQIBaAFIAIgBARIjCglwYXJ0aXRpb24YAiABKAlCC7pICHIG0LOusQIBSAGIAQESHgoEcmFjaxgDIAEoCUILukgIcgbAs66xAgFIAogBARIeCgRyb29tGAQgASgJQgu6SAhyBsCzrrECAUgDiAEBEjEKAm9zGAUgASgLMiAubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NRdWVyeUgEiAEBEisKFGNvbm5lY3RlZF9tYWNoaW5lX2lkGAYgASgJQgi6SAVyA7ABAUgFiAEBQgUKA19pZEIMCgpfcGFydGl0aW9uQgcKBV9yYWNrQgcKBV9yb29tQgUKA19vc0IXChVfY29ubmVjdGVkX21hY2hpbmVfaWQiiwEKDVN3aXRjaE9TUXVlcnkSQAoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABSACIAQESIQoHdmVyc2lvbhgCIAEoCUILukgIcgbAs66xAgFIAYgBAUIJCgdfdmVuZG9yQgoKCF92ZXJzaW9uIoEBCgpTd2l0Y2hTeW5jEigKBHRpbWUYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKCGR1cmF0aW9uGAIgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEhIKBWVycm9yGAMgASgJSACIAQFCCAoGX2Vycm9yIn8KElN3aXRjaFdpdGhNYWNoaW5lcxIKCgJpZBgBIAEoCRIRCglwYXJ0aXRpb24YAiABKAkSDAoEcmFjaxgDIAEoCRI8Cgtjb25uZWN0aW9ucxgEIAMoCzInLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pY1dpdGhNYWNoaW5lIpoBChRTd2l0Y2hOaWNXaXRoTWFjaGluZRIpCgNuaWMYASABKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSKwoHbWFjaGluZRgCIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk1hY2hpbmUSKgoDZnJ1GAMgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUZSVSKwAQoQU3RhdGljUG9ydENvbmZpZxI9CgZzdGF0dXMYASABKA4yIy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hQb3J0U3RhdHVzQgi6SAWCAQIQARI7CgptZW1iZXJzaGlwGAIgASgOMicubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydE1lbWJlcnNoaXASFAoHbmV0d29yaxgDIAEoCUgAiAEBQgoKCF9uZXR3b3JrKokCCghCR1BTdGF0ZRIZChVCR1BfU1RBVEVfVU5TUEVDSUZJRUQQABIcCg5CR1BfU1RBVEVfSURMRRABGgiCshkESWRsZRIiChFCR1BfU1RBVEVfQ09OTkVDVBACGguCshkHQ29ubmVjdBIgChBCR1BfU1RBVEVfQUNUSVZFEAMaCoKyGQZBY3RpdmUSJQoTQkdQX1NUQVRFX09QRU5fU0VOVBAEGgyCshkIT3BlblNlbnQSKwoWQkdQX1NUQVRFX09QRU5fQ09ORklSTRAFGg+CshkLT3BlbkNvbmZpcm0SKgoVQkdQX1NUQVRFX0VTVEFCTElTSEVEEAYaD4KyGQtFc3RhYmxpc2hlZCqiAQoRU3dpdGNoUmVwbGFjZU1vZGUSKQofU1dJVENIX1JFUExBQ0VfTU9ERV9VTlNQRUNJRklFRBAAGgSCshkAEiwKG1NXSVRDSF9SRVBMQUNFX01PREVfUkVQTEFDRRABGguCshkHcmVwbGFjZRI0Ch9TV0lUQ0hfUkVQTEFDRV9NT0RFX09QRVJBVElPTkFMEAIaD4KyGQtvcGVyYXRpb25hbCqEAQoOU3dpdGNoT1NWZW5kb3ISIAocU1dJVENIX09TX1ZFTkRPUl9VTlNQRUNJRklFRBAAEikKGFNXSVRDSF9PU19WRU5ET1JfQ1VNVUxVUxABGguCshkHQ3VtdWx1cxIlChZTV0lUQ0hfT1NfVkVORE9SX1NPTklDEAIaCYKyGQVTT05pQyqtAQoQU3dpdGNoUG9ydFN0YXR1cxIiCh5TV0lUQ0hfUE9SVF9TVEFUVVNfVU5TUEVDSUZJRUQQABIhChVTV0lUQ0hfUE9SVF9TVEFUVVNfVVAQARoGgrIZAnVwEiUKF1NXSVRDSF9QT1JUX1NUQVRVU19ET1dOEAIaCIKyGQRkb3duEisKGlNXSVRDSF9QT1JUX1NUQVRVU19VTktOT1dOEAMaC4KyGQd1bmtub3duKtkBChRTd2l0Y2hQb3J0TWVtYmVyc2hpcBImCiJTV0lUQ0hfUE9SVF9NRU1CRVJTSElQX1VOU1BFQ0lGSUVEEAASMwogU1dJVENIX1BPUlRfTUVNQkVSU0hJUF9VTk1BTkFHRUQQARoNgrIZCXVubWFuYWdlZBIxCh9TV0lUQ0hfUE9SVF9NRU1CRVJTSElQX0lOVEVSTkFMEAIaDIKyGQhpbnRlcm5hbBIxCh9TV0lUQ0hfUE9SVF9NRU1CRVJTSElQX0VYVEVSTkFMEAMaDIKyGQhleHRlcm5hbELBAQoVY29tLm1ldGFsc3RhY2suYXBpLnYyQgtTd2l0Y2hQcm90b1ABWjVnaXRodWIuY29tL21ldGFsLXN0YWNrL2FwaS9nby9tZXRhbHN0YWNrL2FwaS92MjthcGl2MqICA01BWKoCEU1ldGFsc3RhY2suQXBpLlYyygIRTWV0YWxzdGFja1xBcGlcVjLiAh1NZXRhbHN0YWNrXEFwaVxWMlxHUEJNZXRhZGF0YeoCE01ldGFsc3RhY2s6OkFwaTo6VjJiBnByb3RvMw", [file_buf_validate_validate, file_google_protobuf_duration, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_machine, file_metalstack_api_v2_predefined_rules]); /** * Switch represents a network switch. @@ -594,17 +594,24 @@ export const SwitchNicWithMachineSchema: GenMessage = /*@_ * @generated from message metalstack.api.v2.StaticPortConfig */ export type StaticPortConfig = Message<"metalstack.api.v2.StaticPortConfig"> & { + /** + * Status is the administrative status of the port. + * + * @generated from field: metalstack.api.v2.SwitchPortStatus status = 1; + */ + status: SwitchPortStatus; + /** * Membership specifies whether this port is connected to a registered machine or to an external host or if it is unmanaged. * - * @generated from field: metalstack.api.v2.SwitchPortMembership membership = 1; + * @generated from field: metalstack.api.v2.SwitchPortMembership membership = 2; */ membership: SwitchPortMembership; /** * Network the port is a member of. * - * @generated from field: optional string network = 2; + * @generated from field: optional string network = 3; */ network?: string | undefined; }; diff --git a/proto/metalstack/admin/v2/switch.proto b/proto/metalstack/admin/v2/switch.proto index 5b1a7400..58822aa4 100644 --- a/proto/metalstack/admin/v2/switch.proto +++ b/proto/metalstack/admin/v2/switch.proto @@ -149,22 +149,22 @@ message SwitchServiceMigrateResponse { metalstack.api.v2.Switch switch = 1; } -// SwitchServicePortRequest is the request payload for setting the port status of a switch port. +// SwitchServicePortRequest is the request payload for setting the port config of a switch port. message SwitchServicePortRequest { // Id of the switch. string id = 1 [(buf.validate.field).string = { hostname: true [metalstack.api.v2.is_name]: true }]; - // NicName of the port whose status should be changed. + // NicName of the affected port. string nic_name = 2 [(buf.validate.field).string.(metalstack.api.v2.is_name) = true]; - // Status that the port should have. - metalstack.api.v2.SwitchPortStatus status = 3 [(buf.validate.field).enum.defined_only = true]; + // Config is the desired port config. + metalstack.api.v2.StaticPortConfig config = 3; } -// SwitchServicePortResponse is the response payload for setting the port status of a switch port. +// SwitchServicePortResponse is the response payload for setting the port config of a switch port. message SwitchServicePortResponse { - // Switch after the port status toggle. + // Switch after the update. metalstack.api.v2.Switch switch = 1; } diff --git a/proto/metalstack/api/v2/switch.proto b/proto/metalstack/api/v2/switch.proto index 90bf7cfd..948c9974 100644 --- a/proto/metalstack/api/v2/switch.proto +++ b/proto/metalstack/api/v2/switch.proto @@ -188,10 +188,12 @@ message SwitchNicWithMachine { // StaticPortConfig is a config that is statically applied to a port. message StaticPortConfig { + // Status is the administrative status of the port. + SwitchPortStatus status = 1 [(buf.validate.field).enum.defined_only = true]; // Membership specifies whether this port is connected to a registered machine or to an external host or if it is unmanaged. - SwitchPortMembership membership = 1; + SwitchPortMembership membership = 2; // Network the port is a member of. - optional string network = 2; + optional string network = 3; } // BGPState represents the state of a BGP session. diff --git a/python/metalstack/admin/v2/switch_pb2.py b/python/metalstack/admin/v2/switch_pb2.py index 36f51994..3756ce71 100644 --- a/python/metalstack/admin/v2/switch_pb2.py +++ b/python/metalstack/admin/v2/switch_pb2.py @@ -30,7 +30,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/switch.proto\x12\x13metalstack.admin.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1emetalstack/api/v2/common.proto\x1a\x1fmetalstack/api/v2/machine.proto\x1a(metalstack/api/v2/predefined_rules.proto\x1a\x1emetalstack/api/v2/switch.proto\"8\n\x17SwitchServiceGetRequest\x12\x1d\n\x02id\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01R\x02id\"M\n\x18SwitchServiceGetResponse\x12\x31\n\x06switch\x18\x01 \x01(\x0b\x32\x19.metalstack.api.v2.SwitchR\x06switch\"P\n\x18SwitchServiceListRequest\x12\x34\n\x05query\x18\x01 \x01(\x0b\x32\x1e.metalstack.api.v2.SwitchQueryR\x05query\"R\n\x19SwitchServiceListResponse\x12\x35\n\x08switches\x18\x01 \x03(\x0b\x32\x19.metalstack.api.v2.SwitchR\x08switches\"\xb9\x05\n\x1aSwitchServiceUpdateRequest\x12\x1d\n\x02id\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\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\x39\n\nupdated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\x12\x32\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x00R\x0b\x64\x65scription\x88\x01\x01\x12V\n\x0creplace_mode\x18\x05 \x01(\x0e\x32$.metalstack.api.v2.SwitchReplaceModeB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x01R\x0breplaceMode\x88\x01\x01\x12\x31\n\rmanagement_ip\x18\x06 \x01(\tB\x07\xbaH\x04r\x02p\x01H\x02R\x0cmanagementIp\x88\x01\x01\x12\x39\n\x0fmanagement_user\x18\x07 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x03R\x0emanagementUser\x88\x01\x01\x12\x39\n\x0f\x63onsole_command\x18\x08 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x04R\x0e\x63onsoleCommand\x88\x01\x01\x12\x30\n\x04nics\x18\t \x03(\x0b\x32\x1c.metalstack.api.v2.SwitchNicR\x04nics\x12\x30\n\x02os\x18\n \x01(\x0b\x32\x1b.metalstack.api.v2.SwitchOSH\x05R\x02os\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x0f\n\r_replace_modeB\x10\n\x0e_management_ipB\x12\n\x10_management_userB\x12\n\x10_console_commandB\x05\n\x03_os\"P\n\x1bSwitchServiceUpdateResponse\x12\x31\n\x06switch\x18\x01 \x01(\x0b\x32\x19.metalstack.api.v2.SwitchR\x06switch\"Q\n\x1aSwitchServiceDeleteRequest\x12\x1d\n\x02id\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01R\x02id\x12\x14\n\x05\x66orce\x18\x02 \x01(\x08R\x05\x66orce\"P\n\x1bSwitchServiceDeleteResponse\x12\x31\n\x06switch\x18\x01 \x01(\x0b\x32\x19.metalstack.api.v2.SwitchR\x06switch\"y\n\x1bSwitchServiceMigrateRequest\x12,\n\nold_switch\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01R\toldSwitch\x12,\n\nnew_switch\x18\x02 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01R\tnewSwitch\"Q\n\x1cSwitchServiceMigrateResponse\x12\x31\n\x06switch\x18\x01 \x01(\x0b\x32\x19.metalstack.api.v2.SwitchR\x06switch\"\xa8\x01\n\x18SwitchServicePortRequest\x12\x1d\n\x02id\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01R\x02id\x12&\n\x08nic_name\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07nicName\x12\x45\n\x06status\x18\x03 \x01(\x0e\x32#.metalstack.api.v2.SwitchPortStatusB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x06status\"N\n\x19SwitchServicePortResponse\x12\x31\n\x06switch\x18\x01 \x01(\x0b\x32\x19.metalstack.api.v2.SwitchR\x06switch\"\xa3\x01\n%SwitchServiceConnectedMachinesRequest\x12\x34\n\x05query\x18\x01 \x01(\x0b\x32\x1e.metalstack.api.v2.SwitchQueryR\x05query\x12\x44\n\rmachine_query\x18\x02 \x01(\x0b\x32\x1f.metalstack.api.v2.MachineQueryR\x0cmachineQuery\"\x85\x01\n&SwitchServiceConnectedMachinesResponse\x12[\n\x16switches_with_machines\x18\x01 \x03(\x0b\x32%.metalstack.api.v2.SwitchWithMachinesR\x14switchesWithMachines2\xea\x06\n\rSwitchService\x12n\n\x03Get\x12,.metalstack.admin.v2.SwitchServiceGetRequest\x1a-.metalstack.admin.v2.SwitchServiceGetResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x12q\n\x04List\x12-.metalstack.admin.v2.SwitchServiceListRequest\x1a..metalstack.admin.v2.SwitchServiceListResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x12v\n\x06Update\x12/.metalstack.admin.v2.SwitchServiceUpdateRequest\x1a\x30.metalstack.admin.v2.SwitchServiceUpdateResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12v\n\x06\x44\x65lete\x12/.metalstack.admin.v2.SwitchServiceDeleteRequest\x1a\x30.metalstack.admin.v2.SwitchServiceDeleteResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12y\n\x07Migrate\x12\x30.metalstack.admin.v2.SwitchServiceMigrateRequest\x1a\x31.metalstack.admin.v2.SwitchServiceMigrateResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12p\n\x04Port\x12-.metalstack.admin.v2.SwitchServicePortRequest\x1a..metalstack.admin.v2.SwitchServicePortResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12\x98\x01\n\x11\x43onnectedMachines\x12:.metalstack.admin.v2.SwitchServiceConnectedMachinesRequest\x1a;.metalstack.admin.v2.SwitchServiceConnectedMachinesResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x42\xcf\x01\n\x17\x63om.metalstack.admin.v2B\x0bSwitchProtoP\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/switch.proto\x12\x13metalstack.admin.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1emetalstack/api/v2/common.proto\x1a\x1fmetalstack/api/v2/machine.proto\x1a(metalstack/api/v2/predefined_rules.proto\x1a\x1emetalstack/api/v2/switch.proto\"8\n\x17SwitchServiceGetRequest\x12\x1d\n\x02id\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01R\x02id\"M\n\x18SwitchServiceGetResponse\x12\x31\n\x06switch\x18\x01 \x01(\x0b\x32\x19.metalstack.api.v2.SwitchR\x06switch\"P\n\x18SwitchServiceListRequest\x12\x34\n\x05query\x18\x01 \x01(\x0b\x32\x1e.metalstack.api.v2.SwitchQueryR\x05query\"R\n\x19SwitchServiceListResponse\x12\x35\n\x08switches\x18\x01 \x03(\x0b\x32\x19.metalstack.api.v2.SwitchR\x08switches\"\xb9\x05\n\x1aSwitchServiceUpdateRequest\x12\x1d\n\x02id\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\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\x39\n\nupdated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\x12\x32\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x00R\x0b\x64\x65scription\x88\x01\x01\x12V\n\x0creplace_mode\x18\x05 \x01(\x0e\x32$.metalstack.api.v2.SwitchReplaceModeB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x01R\x0breplaceMode\x88\x01\x01\x12\x31\n\rmanagement_ip\x18\x06 \x01(\tB\x07\xbaH\x04r\x02p\x01H\x02R\x0cmanagementIp\x88\x01\x01\x12\x39\n\x0fmanagement_user\x18\x07 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x03R\x0emanagementUser\x88\x01\x01\x12\x39\n\x0f\x63onsole_command\x18\x08 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x04R\x0e\x63onsoleCommand\x88\x01\x01\x12\x30\n\x04nics\x18\t \x03(\x0b\x32\x1c.metalstack.api.v2.SwitchNicR\x04nics\x12\x30\n\x02os\x18\n \x01(\x0b\x32\x1b.metalstack.api.v2.SwitchOSH\x05R\x02os\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x0f\n\r_replace_modeB\x10\n\x0e_management_ipB\x12\n\x10_management_userB\x12\n\x10_console_commandB\x05\n\x03_os\"P\n\x1bSwitchServiceUpdateResponse\x12\x31\n\x06switch\x18\x01 \x01(\x0b\x32\x19.metalstack.api.v2.SwitchR\x06switch\"Q\n\x1aSwitchServiceDeleteRequest\x12\x1d\n\x02id\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01R\x02id\x12\x14\n\x05\x66orce\x18\x02 \x01(\x08R\x05\x66orce\"P\n\x1bSwitchServiceDeleteResponse\x12\x31\n\x06switch\x18\x01 \x01(\x0b\x32\x19.metalstack.api.v2.SwitchR\x06switch\"y\n\x1bSwitchServiceMigrateRequest\x12,\n\nold_switch\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01R\toldSwitch\x12,\n\nnew_switch\x18\x02 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01R\tnewSwitch\"Q\n\x1cSwitchServiceMigrateResponse\x12\x31\n\x06switch\x18\x01 \x01(\x0b\x32\x19.metalstack.api.v2.SwitchR\x06switch\"\x9e\x01\n\x18SwitchServicePortRequest\x12\x1d\n\x02id\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01R\x02id\x12&\n\x08nic_name\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07nicName\x12;\n\x06\x63onfig\x18\x03 \x01(\x0b\x32#.metalstack.api.v2.StaticPortConfigR\x06\x63onfig\"N\n\x19SwitchServicePortResponse\x12\x31\n\x06switch\x18\x01 \x01(\x0b\x32\x19.metalstack.api.v2.SwitchR\x06switch\"\xa3\x01\n%SwitchServiceConnectedMachinesRequest\x12\x34\n\x05query\x18\x01 \x01(\x0b\x32\x1e.metalstack.api.v2.SwitchQueryR\x05query\x12\x44\n\rmachine_query\x18\x02 \x01(\x0b\x32\x1f.metalstack.api.v2.MachineQueryR\x0cmachineQuery\"\x85\x01\n&SwitchServiceConnectedMachinesResponse\x12[\n\x16switches_with_machines\x18\x01 \x03(\x0b\x32%.metalstack.api.v2.SwitchWithMachinesR\x14switchesWithMachines2\xea\x06\n\rSwitchService\x12n\n\x03Get\x12,.metalstack.admin.v2.SwitchServiceGetRequest\x1a-.metalstack.admin.v2.SwitchServiceGetResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x12q\n\x04List\x12-.metalstack.admin.v2.SwitchServiceListRequest\x1a..metalstack.admin.v2.SwitchServiceListResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x12v\n\x06Update\x12/.metalstack.admin.v2.SwitchServiceUpdateRequest\x1a\x30.metalstack.admin.v2.SwitchServiceUpdateResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12v\n\x06\x44\x65lete\x12/.metalstack.admin.v2.SwitchServiceDeleteRequest\x1a\x30.metalstack.admin.v2.SwitchServiceDeleteResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12y\n\x07Migrate\x12\x30.metalstack.admin.v2.SwitchServiceMigrateRequest\x1a\x31.metalstack.admin.v2.SwitchServiceMigrateResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12p\n\x04Port\x12-.metalstack.admin.v2.SwitchServicePortRequest\x1a..metalstack.admin.v2.SwitchServicePortResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12\x98\x01\n\x11\x43onnectedMachines\x12:.metalstack.admin.v2.SwitchServiceConnectedMachinesRequest\x1a;.metalstack.admin.v2.SwitchServiceConnectedMachinesResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x42\xcf\x01\n\x17\x63om.metalstack.admin.v2B\x0bSwitchProtoP\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) @@ -64,8 +64,6 @@ _globals['_SWITCHSERVICEPORTREQUEST'].fields_by_name['id']._serialized_options = b'\272H\nr\010h\001\300\263\256\261\002\001' _globals['_SWITCHSERVICEPORTREQUEST'].fields_by_name['nic_name']._loaded_options = None _globals['_SWITCHSERVICEPORTREQUEST'].fields_by_name['nic_name']._serialized_options = b'\272H\010r\006\300\263\256\261\002\001' - _globals['_SWITCHSERVICEPORTREQUEST'].fields_by_name['status']._loaded_options = None - _globals['_SWITCHSERVICEPORTREQUEST'].fields_by_name['status']._serialized_options = b'\272H\005\202\001\002\020\001' _globals['_SWITCHSERVICE'].methods_by_name['Get']._loaded_options = None _globals['_SWITCHSERVICE'].methods_by_name['Get']._serialized_options = b'\322\363\030\002\001\002\340\363\030\002' _globals['_SWITCHSERVICE'].methods_by_name['List']._loaded_options = None @@ -101,13 +99,13 @@ _globals['_SWITCHSERVICEMIGRATERESPONSE']._serialized_start=1631 _globals['_SWITCHSERVICEMIGRATERESPONSE']._serialized_end=1712 _globals['_SWITCHSERVICEPORTREQUEST']._serialized_start=1715 - _globals['_SWITCHSERVICEPORTREQUEST']._serialized_end=1883 - _globals['_SWITCHSERVICEPORTRESPONSE']._serialized_start=1885 - _globals['_SWITCHSERVICEPORTRESPONSE']._serialized_end=1963 - _globals['_SWITCHSERVICECONNECTEDMACHINESREQUEST']._serialized_start=1966 - _globals['_SWITCHSERVICECONNECTEDMACHINESREQUEST']._serialized_end=2129 - _globals['_SWITCHSERVICECONNECTEDMACHINESRESPONSE']._serialized_start=2132 - _globals['_SWITCHSERVICECONNECTEDMACHINESRESPONSE']._serialized_end=2265 - _globals['_SWITCHSERVICE']._serialized_start=2268 - _globals['_SWITCHSERVICE']._serialized_end=3142 + _globals['_SWITCHSERVICEPORTREQUEST']._serialized_end=1873 + _globals['_SWITCHSERVICEPORTRESPONSE']._serialized_start=1875 + _globals['_SWITCHSERVICEPORTRESPONSE']._serialized_end=1953 + _globals['_SWITCHSERVICECONNECTEDMACHINESREQUEST']._serialized_start=1956 + _globals['_SWITCHSERVICECONNECTEDMACHINESREQUEST']._serialized_end=2119 + _globals['_SWITCHSERVICECONNECTEDMACHINESRESPONSE']._serialized_start=2122 + _globals['_SWITCHSERVICECONNECTEDMACHINESRESPONSE']._serialized_end=2255 + _globals['_SWITCHSERVICE']._serialized_start=2258 + _globals['_SWITCHSERVICE']._serialized_end=3132 # @@protoc_insertion_point(module_scope) diff --git a/python/metalstack/admin/v2/switch_pb2.pyi b/python/metalstack/admin/v2/switch_pb2.pyi index 3fe369a6..e48d6174 100644 --- a/python/metalstack/admin/v2/switch_pb2.pyi +++ b/python/metalstack/admin/v2/switch_pb2.pyi @@ -97,14 +97,14 @@ class SwitchServiceMigrateResponse(_message.Message): def __init__(self, switch: _Optional[_Union[_switch_pb2.Switch, _Mapping]] = ...) -> None: ... class SwitchServicePortRequest(_message.Message): - __slots__ = ("id", "nic_name", "status") + __slots__ = ("id", "nic_name", "config") ID_FIELD_NUMBER: _ClassVar[int] NIC_NAME_FIELD_NUMBER: _ClassVar[int] - STATUS_FIELD_NUMBER: _ClassVar[int] + CONFIG_FIELD_NUMBER: _ClassVar[int] id: str nic_name: str - status: _switch_pb2.SwitchPortStatus - def __init__(self, id: _Optional[str] = ..., nic_name: _Optional[str] = ..., status: _Optional[_Union[_switch_pb2.SwitchPortStatus, str]] = ...) -> None: ... + config: _switch_pb2.StaticPortConfig + def __init__(self, id: _Optional[str] = ..., nic_name: _Optional[str] = ..., config: _Optional[_Union[_switch_pb2.StaticPortConfig, _Mapping]] = ...) -> None: ... class SwitchServicePortResponse(_message.Message): __slots__ = ("switch",) diff --git a/python/metalstack/api/v2/switch_pb2.py b/python/metalstack/api/v2/switch_pb2.py index 71cbe6d6..35f7649d 100644 --- a/python/metalstack/api/v2/switch_pb2.py +++ b/python/metalstack/api/v2/switch_pb2.py @@ -30,7 +30,7 @@ from metalstack.api.v2 import predefined_rules_pb2 as metalstack_dot_api_dot_v2_dot_predefined__rules__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1emetalstack/api/v2/switch.proto\x12\x11metalstack.api.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1emetalstack/api/v2/common.proto\x1a\x1fmetalstack/api/v2/machine.proto\x1a(metalstack/api/v2/predefined_rules.proto\"\xe2\x06\n\x06Switch\x12\x1d\n\x02id\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01R\x02id\x12+\n\x04meta\x18\x02 \x01(\x0b\x32\x17.metalstack.api.v2.MetaR\x04meta\x12-\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01R\x0b\x64\x65scription\x12$\n\x04rack\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x04rack\x88\x01\x01\x12$\n\x04room\x18\x05 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x04room\x88\x01\x01\x12)\n\tpartition\x18\x06 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01R\tpartition\x12Q\n\x0creplace_mode\x18\x07 \x01(\x0e\x32$.metalstack.api.v2.SwitchReplaceModeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x0breplaceMode\x12,\n\rmanagement_ip\x18\x08 \x01(\tB\x07\xbaH\x04r\x02p\x01R\x0cmanagementIp\x12\x38\n\x0fmanagement_user\x18\t \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x02R\x0emanagementUser\x88\x01\x01\x12\x38\n\x0f\x63onsole_command\x18\n \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x03R\x0e\x63onsoleCommand\x88\x01\x01\x12\x30\n\x04nics\x18\x0b \x03(\x0b\x32\x1c.metalstack.api.v2.SwitchNicR\x04nics\x12+\n\x02os\x18\x0c \x01(\x0b\x32\x1b.metalstack.api.v2.SwitchOSR\x02os\x12U\n\x13machine_connections\x18\r \x03(\x0b\x32$.metalstack.api.v2.MachineConnectionR\x12machineConnections\x12:\n\tlast_sync\x18\x0e \x01(\x0b\x32\x1d.metalstack.api.v2.SwitchSyncR\x08lastSync\x12\x45\n\x0flast_sync_error\x18\x0f \x01(\x0b\x32\x1d.metalstack.api.v2.SwitchSyncR\rlastSyncErrorB\x07\n\x05_rackB\x07\n\x05_roomB\x12\n\x10_management_userB\x12\n\x10_console_command\"\xb1\x01\n\x08SwitchOS\x12\x43\n\x06vendor\x18\x01 \x01(\x0e\x32!.metalstack.api.v2.SwitchOSVendorB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x06vendor\x12%\n\x07version\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07version\x12\x39\n\x12metal_core_version\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x10metalCoreVersion\"\xe9\x03\n\tSwitchNic\x12\x1f\n\x04name\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x04name\x12+\n\nidentifier\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\nidentifier\x12\x19\n\x03mac\x18\x03 \x01(\tB\x02\x18\x01H\x00R\x03mac\x88\x01\x01\x12\"\n\x03vrf\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x03vrf\x88\x01\x01\x12\x36\n\x05state\x18\x05 \x01(\x0b\x32\x1b.metalstack.api.v2.NicStateH\x02R\x05state\x88\x01\x01\x12@\n\nbgp_filter\x18\x06 \x01(\x0b\x32\x1c.metalstack.api.v2.BGPFilterH\x03R\tbgpFilter\x88\x01\x01\x12P\n\x0e\x62gp_port_state\x18\x07 \x01(\x0b\x32%.metalstack.api.v2.SwitchBGPPortStateH\x04R\x0c\x62gpPortState\x88\x01\x01\x12G\n\nmembership\x18\x08 \x01(\x0e\x32\'.metalstack.api.v2.SwitchPortMembershipR\nmembershipB\x06\n\x04_macB\x06\n\x04_vrfB\x08\n\x06_stateB\r\n\x0b_bgp_filterB\x11\n\x0f_bgp_port_state\"T\n\tBGPFilter\x12\"\n\x05\x63idrs\x18\x01 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x05\x63idrs\x12#\n\x04vnis\x18\x02 \x03(\tB\x0f\xbaH\x0c\x92\x01\t\"\x07r\x05\x10\x02\x18\x80\x01R\x04vnis\"\xa4\x03\n\x12SwitchBGPPortState\x12,\n\x08neighbor\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x08neighbor\x88\x01\x01\x12*\n\npeer_group\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\tpeerGroup\x12&\n\x08vrf_name\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07vrfName\x12\x42\n\tbgp_state\x18\x04 \x01(\x0e\x32\x1b.metalstack.api.v2.BGPStateB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x08\x62gpState\x12S\n\x18\x62gp_timer_up_established\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x15\x62gpTimerUpEstablished\x12.\n\x13sent_prefix_counter\x18\x06 \x01(\x04R\x11sentPrefixCounter\x12\x36\n\x17\x61\x63\x63\x65pted_prefix_counter\x18\x07 \x01(\x04R\x15\x61\x63\x63\x65ptedPrefixCounterB\x0b\n\t_neighbor\"\xab\x01\n\x08NicState\x12L\n\x07\x64\x65sired\x18\x01 \x01(\x0e\x32#.metalstack.api.v2.SwitchPortStatusB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x00R\x07\x64\x65sired\x88\x01\x01\x12\x45\n\x06\x61\x63tual\x18\x02 \x01(\x0e\x32#.metalstack.api.v2.SwitchPortStatusB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x06\x61\x63tualB\n\n\x08_desired\"b\n\x11MachineConnection\x12\x1d\n\nmachine_id\x18\x01 \x01(\tR\tmachineId\x12.\n\x03nic\x18\x02 \x01(\x0b\x32\x1c.metalstack.api.v2.SwitchNicR\x03nic\"\xec\x02\n\x0bSwitchQuery\x12\"\n\x02id\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01H\x00R\x02id\x88\x01\x01\x12.\n\tpartition\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x01R\tpartition\x88\x01\x01\x12$\n\x04rack\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x02R\x04rack\x88\x01\x01\x12$\n\x04room\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x03R\x04room\x88\x01\x01\x12\x35\n\x02os\x18\x05 \x01(\x0b\x32 .metalstack.api.v2.SwitchOSQueryH\x04R\x02os\x88\x01\x01\x12?\n\x14\x63onnected_machine_id\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x05R\x12\x63onnectedMachineId\x88\x01\x01\x42\x05\n\x03_idB\x0c\n\n_partitionB\x07\n\x05_rackB\x07\n\x05_roomB\x05\n\x03_osB\x17\n\x15_connected_machine_id\"\x9c\x01\n\rSwitchOSQuery\x12H\n\x06vendor\x18\x01 \x01(\x0e\x32!.metalstack.api.v2.SwitchOSVendorB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x00R\x06vendor\x88\x01\x01\x12*\n\x07version\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x07version\x88\x01\x01\x42\t\n\x07_vendorB\n\n\x08_version\"\x98\x01\n\nSwitchSync\x12.\n\x04time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x04time\x12\x35\n\x08\x64uration\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationR\x08\x64uration\x12\x19\n\x05\x65rror\x18\x03 \x01(\tH\x00R\x05\x65rror\x88\x01\x01\x42\x08\n\x06_error\"\xa1\x01\n\x12SwitchWithMachines\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x1c\n\tpartition\x18\x02 \x01(\tR\tpartition\x12\x12\n\x04rack\x18\x03 \x01(\tR\x04rack\x12I\n\x0b\x63onnections\x18\x04 \x03(\x0b\x32\'.metalstack.api.v2.SwitchNicWithMachineR\x0b\x63onnections\"\xad\x01\n\x14SwitchNicWithMachine\x12.\n\x03nic\x18\x01 \x01(\x0b\x32\x1c.metalstack.api.v2.SwitchNicR\x03nic\x12\x34\n\x07machine\x18\x02 \x01(\x0b\x32\x1a.metalstack.api.v2.MachineR\x07machine\x12/\n\x03\x66ru\x18\x03 \x01(\x0b\x32\x1d.metalstack.api.v2.MachineFRUR\x03\x66ru\"\x86\x01\n\x10StaticPortConfig\x12G\n\nmembership\x18\x01 \x01(\x0e\x32\'.metalstack.api.v2.SwitchPortMembershipR\nmembership\x12\x1d\n\x07network\x18\x02 \x01(\tH\x00R\x07network\x88\x01\x01\x42\n\n\x08_network*\x89\x02\n\x08\x42GPState\x12\x19\n\x15\x42GP_STATE_UNSPECIFIED\x10\x00\x12\x1c\n\x0e\x42GP_STATE_IDLE\x10\x01\x1a\x08\x82\xb2\x19\x04Idle\x12\"\n\x11\x42GP_STATE_CONNECT\x10\x02\x1a\x0b\x82\xb2\x19\x07\x43onnect\x12 \n\x10\x42GP_STATE_ACTIVE\x10\x03\x1a\n\x82\xb2\x19\x06\x41\x63tive\x12%\n\x13\x42GP_STATE_OPEN_SENT\x10\x04\x1a\x0c\x82\xb2\x19\x08OpenSent\x12+\n\x16\x42GP_STATE_OPEN_CONFIRM\x10\x05\x1a\x0f\x82\xb2\x19\x0bOpenConfirm\x12*\n\x15\x42GP_STATE_ESTABLISHED\x10\x06\x1a\x0f\x82\xb2\x19\x0b\x45stablished*\xa2\x01\n\x11SwitchReplaceMode\x12)\n\x1fSWITCH_REPLACE_MODE_UNSPECIFIED\x10\x00\x1a\x04\x82\xb2\x19\x00\x12,\n\x1bSWITCH_REPLACE_MODE_REPLACE\x10\x01\x1a\x0b\x82\xb2\x19\x07replace\x12\x34\n\x1fSWITCH_REPLACE_MODE_OPERATIONAL\x10\x02\x1a\x0f\x82\xb2\x19\x0boperational*\x84\x01\n\x0eSwitchOSVendor\x12 \n\x1cSWITCH_OS_VENDOR_UNSPECIFIED\x10\x00\x12)\n\x18SWITCH_OS_VENDOR_CUMULUS\x10\x01\x1a\x0b\x82\xb2\x19\x07\x43umulus\x12%\n\x16SWITCH_OS_VENDOR_SONIC\x10\x02\x1a\t\x82\xb2\x19\x05SONiC*\xad\x01\n\x10SwitchPortStatus\x12\"\n\x1eSWITCH_PORT_STATUS_UNSPECIFIED\x10\x00\x12!\n\x15SWITCH_PORT_STATUS_UP\x10\x01\x1a\x06\x82\xb2\x19\x02up\x12%\n\x17SWITCH_PORT_STATUS_DOWN\x10\x02\x1a\x08\x82\xb2\x19\x04\x64own\x12+\n\x1aSWITCH_PORT_STATUS_UNKNOWN\x10\x03\x1a\x0b\x82\xb2\x19\x07unknown*\xd9\x01\n\x14SwitchPortMembership\x12&\n\"SWITCH_PORT_MEMBERSHIP_UNSPECIFIED\x10\x00\x12\x33\n SWITCH_PORT_MEMBERSHIP_UNMANAGED\x10\x01\x1a\r\x82\xb2\x19\tunmanaged\x12\x31\n\x1fSWITCH_PORT_MEMBERSHIP_INTERNAL\x10\x02\x1a\x0c\x82\xb2\x19\x08internal\x12\x31\n\x1fSWITCH_PORT_MEMBERSHIP_EXTERNAL\x10\x03\x1a\x0c\x82\xb2\x19\x08\x65xternalB\xc1\x01\n\x15\x63om.metalstack.api.v2B\x0bSwitchProtoP\x01Z5github.com/metal-stack/api/go/metalstack/api/v2;apiv2\xa2\x02\x03MAX\xaa\x02\x11Metalstack.Api.V2\xca\x02\x11Metalstack\\Api\\V2\xe2\x02\x1dMetalstack\\Api\\V2\\GPBMetadata\xea\x02\x13Metalstack::Api::V2b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1emetalstack/api/v2/switch.proto\x12\x11metalstack.api.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1emetalstack/api/v2/common.proto\x1a\x1fmetalstack/api/v2/machine.proto\x1a(metalstack/api/v2/predefined_rules.proto\"\xe2\x06\n\x06Switch\x12\x1d\n\x02id\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01R\x02id\x12+\n\x04meta\x18\x02 \x01(\x0b\x32\x17.metalstack.api.v2.MetaR\x04meta\x12-\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01R\x0b\x64\x65scription\x12$\n\x04rack\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x04rack\x88\x01\x01\x12$\n\x04room\x18\x05 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x04room\x88\x01\x01\x12)\n\tpartition\x18\x06 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01R\tpartition\x12Q\n\x0creplace_mode\x18\x07 \x01(\x0e\x32$.metalstack.api.v2.SwitchReplaceModeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x0breplaceMode\x12,\n\rmanagement_ip\x18\x08 \x01(\tB\x07\xbaH\x04r\x02p\x01R\x0cmanagementIp\x12\x38\n\x0fmanagement_user\x18\t \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x02R\x0emanagementUser\x88\x01\x01\x12\x38\n\x0f\x63onsole_command\x18\n \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x03R\x0e\x63onsoleCommand\x88\x01\x01\x12\x30\n\x04nics\x18\x0b \x03(\x0b\x32\x1c.metalstack.api.v2.SwitchNicR\x04nics\x12+\n\x02os\x18\x0c \x01(\x0b\x32\x1b.metalstack.api.v2.SwitchOSR\x02os\x12U\n\x13machine_connections\x18\r \x03(\x0b\x32$.metalstack.api.v2.MachineConnectionR\x12machineConnections\x12:\n\tlast_sync\x18\x0e \x01(\x0b\x32\x1d.metalstack.api.v2.SwitchSyncR\x08lastSync\x12\x45\n\x0flast_sync_error\x18\x0f \x01(\x0b\x32\x1d.metalstack.api.v2.SwitchSyncR\rlastSyncErrorB\x07\n\x05_rackB\x07\n\x05_roomB\x12\n\x10_management_userB\x12\n\x10_console_command\"\xb1\x01\n\x08SwitchOS\x12\x43\n\x06vendor\x18\x01 \x01(\x0e\x32!.metalstack.api.v2.SwitchOSVendorB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x06vendor\x12%\n\x07version\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07version\x12\x39\n\x12metal_core_version\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x10metalCoreVersion\"\xe9\x03\n\tSwitchNic\x12\x1f\n\x04name\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x04name\x12+\n\nidentifier\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\nidentifier\x12\x19\n\x03mac\x18\x03 \x01(\tB\x02\x18\x01H\x00R\x03mac\x88\x01\x01\x12\"\n\x03vrf\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x03vrf\x88\x01\x01\x12\x36\n\x05state\x18\x05 \x01(\x0b\x32\x1b.metalstack.api.v2.NicStateH\x02R\x05state\x88\x01\x01\x12@\n\nbgp_filter\x18\x06 \x01(\x0b\x32\x1c.metalstack.api.v2.BGPFilterH\x03R\tbgpFilter\x88\x01\x01\x12P\n\x0e\x62gp_port_state\x18\x07 \x01(\x0b\x32%.metalstack.api.v2.SwitchBGPPortStateH\x04R\x0c\x62gpPortState\x88\x01\x01\x12G\n\nmembership\x18\x08 \x01(\x0e\x32\'.metalstack.api.v2.SwitchPortMembershipR\nmembershipB\x06\n\x04_macB\x06\n\x04_vrfB\x08\n\x06_stateB\r\n\x0b_bgp_filterB\x11\n\x0f_bgp_port_state\"T\n\tBGPFilter\x12\"\n\x05\x63idrs\x18\x01 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xb8\xa4\xb3\xb1\x02\x01R\x05\x63idrs\x12#\n\x04vnis\x18\x02 \x03(\tB\x0f\xbaH\x0c\x92\x01\t\"\x07r\x05\x10\x02\x18\x80\x01R\x04vnis\"\xa4\x03\n\x12SwitchBGPPortState\x12,\n\x08neighbor\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x00R\x08neighbor\x88\x01\x01\x12*\n\npeer_group\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\tpeerGroup\x12&\n\x08vrf_name\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07vrfName\x12\x42\n\tbgp_state\x18\x04 \x01(\x0e\x32\x1b.metalstack.api.v2.BGPStateB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x08\x62gpState\x12S\n\x18\x62gp_timer_up_established\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x15\x62gpTimerUpEstablished\x12.\n\x13sent_prefix_counter\x18\x06 \x01(\x04R\x11sentPrefixCounter\x12\x36\n\x17\x61\x63\x63\x65pted_prefix_counter\x18\x07 \x01(\x04R\x15\x61\x63\x63\x65ptedPrefixCounterB\x0b\n\t_neighbor\"\xab\x01\n\x08NicState\x12L\n\x07\x64\x65sired\x18\x01 \x01(\x0e\x32#.metalstack.api.v2.SwitchPortStatusB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x00R\x07\x64\x65sired\x88\x01\x01\x12\x45\n\x06\x61\x63tual\x18\x02 \x01(\x0e\x32#.metalstack.api.v2.SwitchPortStatusB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x06\x61\x63tualB\n\n\x08_desired\"b\n\x11MachineConnection\x12\x1d\n\nmachine_id\x18\x01 \x01(\tR\tmachineId\x12.\n\x03nic\x18\x02 \x01(\x0b\x32\x1c.metalstack.api.v2.SwitchNicR\x03nic\"\xec\x02\n\x0bSwitchQuery\x12\"\n\x02id\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01H\x00R\x02id\x88\x01\x01\x12.\n\tpartition\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x01R\tpartition\x88\x01\x01\x12$\n\x04rack\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x02R\x04rack\x88\x01\x01\x12$\n\x04room\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x03R\x04room\x88\x01\x01\x12\x35\n\x02os\x18\x05 \x01(\x0b\x32 .metalstack.api.v2.SwitchOSQueryH\x04R\x02os\x88\x01\x01\x12?\n\x14\x63onnected_machine_id\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x05R\x12\x63onnectedMachineId\x88\x01\x01\x42\x05\n\x03_idB\x0c\n\n_partitionB\x07\n\x05_rackB\x07\n\x05_roomB\x05\n\x03_osB\x17\n\x15_connected_machine_id\"\x9c\x01\n\rSwitchOSQuery\x12H\n\x06vendor\x18\x01 \x01(\x0e\x32!.metalstack.api.v2.SwitchOSVendorB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x00R\x06vendor\x88\x01\x01\x12*\n\x07version\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x07version\x88\x01\x01\x42\t\n\x07_vendorB\n\n\x08_version\"\x98\x01\n\nSwitchSync\x12.\n\x04time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x04time\x12\x35\n\x08\x64uration\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationR\x08\x64uration\x12\x19\n\x05\x65rror\x18\x03 \x01(\tH\x00R\x05\x65rror\x88\x01\x01\x42\x08\n\x06_error\"\xa1\x01\n\x12SwitchWithMachines\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x1c\n\tpartition\x18\x02 \x01(\tR\tpartition\x12\x12\n\x04rack\x18\x03 \x01(\tR\x04rack\x12I\n\x0b\x63onnections\x18\x04 \x03(\x0b\x32\'.metalstack.api.v2.SwitchNicWithMachineR\x0b\x63onnections\"\xad\x01\n\x14SwitchNicWithMachine\x12.\n\x03nic\x18\x01 \x01(\x0b\x32\x1c.metalstack.api.v2.SwitchNicR\x03nic\x12\x34\n\x07machine\x18\x02 \x01(\x0b\x32\x1a.metalstack.api.v2.MachineR\x07machine\x12/\n\x03\x66ru\x18\x03 \x01(\x0b\x32\x1d.metalstack.api.v2.MachineFRUR\x03\x66ru\"\xcd\x01\n\x10StaticPortConfig\x12\x45\n\x06status\x18\x01 \x01(\x0e\x32#.metalstack.api.v2.SwitchPortStatusB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x06status\x12G\n\nmembership\x18\x02 \x01(\x0e\x32\'.metalstack.api.v2.SwitchPortMembershipR\nmembership\x12\x1d\n\x07network\x18\x03 \x01(\tH\x00R\x07network\x88\x01\x01\x42\n\n\x08_network*\x89\x02\n\x08\x42GPState\x12\x19\n\x15\x42GP_STATE_UNSPECIFIED\x10\x00\x12\x1c\n\x0e\x42GP_STATE_IDLE\x10\x01\x1a\x08\x82\xb2\x19\x04Idle\x12\"\n\x11\x42GP_STATE_CONNECT\x10\x02\x1a\x0b\x82\xb2\x19\x07\x43onnect\x12 \n\x10\x42GP_STATE_ACTIVE\x10\x03\x1a\n\x82\xb2\x19\x06\x41\x63tive\x12%\n\x13\x42GP_STATE_OPEN_SENT\x10\x04\x1a\x0c\x82\xb2\x19\x08OpenSent\x12+\n\x16\x42GP_STATE_OPEN_CONFIRM\x10\x05\x1a\x0f\x82\xb2\x19\x0bOpenConfirm\x12*\n\x15\x42GP_STATE_ESTABLISHED\x10\x06\x1a\x0f\x82\xb2\x19\x0b\x45stablished*\xa2\x01\n\x11SwitchReplaceMode\x12)\n\x1fSWITCH_REPLACE_MODE_UNSPECIFIED\x10\x00\x1a\x04\x82\xb2\x19\x00\x12,\n\x1bSWITCH_REPLACE_MODE_REPLACE\x10\x01\x1a\x0b\x82\xb2\x19\x07replace\x12\x34\n\x1fSWITCH_REPLACE_MODE_OPERATIONAL\x10\x02\x1a\x0f\x82\xb2\x19\x0boperational*\x84\x01\n\x0eSwitchOSVendor\x12 \n\x1cSWITCH_OS_VENDOR_UNSPECIFIED\x10\x00\x12)\n\x18SWITCH_OS_VENDOR_CUMULUS\x10\x01\x1a\x0b\x82\xb2\x19\x07\x43umulus\x12%\n\x16SWITCH_OS_VENDOR_SONIC\x10\x02\x1a\t\x82\xb2\x19\x05SONiC*\xad\x01\n\x10SwitchPortStatus\x12\"\n\x1eSWITCH_PORT_STATUS_UNSPECIFIED\x10\x00\x12!\n\x15SWITCH_PORT_STATUS_UP\x10\x01\x1a\x06\x82\xb2\x19\x02up\x12%\n\x17SWITCH_PORT_STATUS_DOWN\x10\x02\x1a\x08\x82\xb2\x19\x04\x64own\x12+\n\x1aSWITCH_PORT_STATUS_UNKNOWN\x10\x03\x1a\x0b\x82\xb2\x19\x07unknown*\xd9\x01\n\x14SwitchPortMembership\x12&\n\"SWITCH_PORT_MEMBERSHIP_UNSPECIFIED\x10\x00\x12\x33\n SWITCH_PORT_MEMBERSHIP_UNMANAGED\x10\x01\x1a\r\x82\xb2\x19\tunmanaged\x12\x31\n\x1fSWITCH_PORT_MEMBERSHIP_INTERNAL\x10\x02\x1a\x0c\x82\xb2\x19\x08internal\x12\x31\n\x1fSWITCH_PORT_MEMBERSHIP_EXTERNAL\x10\x03\x1a\x0c\x82\xb2\x19\x08\x65xternalB\xc1\x01\n\x15\x63om.metalstack.api.v2B\x0bSwitchProtoP\x01Z5github.com/metal-stack/api/go/metalstack/api/v2;apiv2\xa2\x02\x03MAX\xaa\x02\x11Metalstack.Api.V2\xca\x02\x11Metalstack\\Api\\V2\xe2\x02\x1dMetalstack\\Api\\V2\\GPBMetadata\xea\x02\x13Metalstack::Api::V2b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -134,16 +134,18 @@ _globals['_SWITCHOSQUERY'].fields_by_name['vendor']._serialized_options = b'\272H\005\202\001\002\020\001' _globals['_SWITCHOSQUERY'].fields_by_name['version']._loaded_options = None _globals['_SWITCHOSQUERY'].fields_by_name['version']._serialized_options = b'\272H\010r\006\300\263\256\261\002\001' - _globals['_BGPSTATE']._serialized_start=3737 - _globals['_BGPSTATE']._serialized_end=4002 - _globals['_SWITCHREPLACEMODE']._serialized_start=4005 - _globals['_SWITCHREPLACEMODE']._serialized_end=4167 - _globals['_SWITCHOSVENDOR']._serialized_start=4170 - _globals['_SWITCHOSVENDOR']._serialized_end=4302 - _globals['_SWITCHPORTSTATUS']._serialized_start=4305 - _globals['_SWITCHPORTSTATUS']._serialized_end=4478 - _globals['_SWITCHPORTMEMBERSHIP']._serialized_start=4481 - _globals['_SWITCHPORTMEMBERSHIP']._serialized_end=4698 + _globals['_STATICPORTCONFIG'].fields_by_name['status']._loaded_options = None + _globals['_STATICPORTCONFIG'].fields_by_name['status']._serialized_options = b'\272H\005\202\001\002\020\001' + _globals['_BGPSTATE']._serialized_start=3808 + _globals['_BGPSTATE']._serialized_end=4073 + _globals['_SWITCHREPLACEMODE']._serialized_start=4076 + _globals['_SWITCHREPLACEMODE']._serialized_end=4238 + _globals['_SWITCHOSVENDOR']._serialized_start=4241 + _globals['_SWITCHOSVENDOR']._serialized_end=4373 + _globals['_SWITCHPORTSTATUS']._serialized_start=4376 + _globals['_SWITCHPORTSTATUS']._serialized_end=4549 + _globals['_SWITCHPORTMEMBERSHIP']._serialized_start=4552 + _globals['_SWITCHPORTMEMBERSHIP']._serialized_end=4769 _globals['_SWITCH']._serialized_start=255 _globals['_SWITCH']._serialized_end=1121 _globals['_SWITCHOS']._serialized_start=1124 @@ -169,5 +171,5 @@ _globals['_SWITCHNICWITHMACHINE']._serialized_start=3424 _globals['_SWITCHNICWITHMACHINE']._serialized_end=3597 _globals['_STATICPORTCONFIG']._serialized_start=3600 - _globals['_STATICPORTCONFIG']._serialized_end=3734 + _globals['_STATICPORTCONFIG']._serialized_end=3805 # @@protoc_insertion_point(module_scope) diff --git a/python/metalstack/api/v2/switch_pb2.pyi b/python/metalstack/api/v2/switch_pb2.pyi index c21ea0ee..30e9bd5f 100644 --- a/python/metalstack/api/v2/switch_pb2.pyi +++ b/python/metalstack/api/v2/switch_pb2.pyi @@ -235,9 +235,11 @@ class SwitchNicWithMachine(_message.Message): def __init__(self, nic: _Optional[_Union[SwitchNic, _Mapping]] = ..., machine: _Optional[_Union[_machine_pb2.Machine, _Mapping]] = ..., fru: _Optional[_Union[_machine_pb2.MachineFRU, _Mapping]] = ...) -> None: ... class StaticPortConfig(_message.Message): - __slots__ = ("membership", "network") + __slots__ = ("status", "membership", "network") + STATUS_FIELD_NUMBER: _ClassVar[int] MEMBERSHIP_FIELD_NUMBER: _ClassVar[int] NETWORK_FIELD_NUMBER: _ClassVar[int] + status: SwitchPortStatus membership: SwitchPortMembership network: str - def __init__(self, membership: _Optional[_Union[SwitchPortMembership, str]] = ..., network: _Optional[str] = ...) -> None: ... + def __init__(self, status: _Optional[_Union[SwitchPortStatus, str]] = ..., membership: _Optional[_Union[SwitchPortMembership, str]] = ..., network: _Optional[str] = ...) -> None: ...
      switch metalstack.api.v2.Switch

      Switch after the port status toggle.

      Switch after the update.