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..448afd8d 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*\xd9\x01\n" + + "\x14SwitchPortMembership\x12&\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 ( @@ -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 ae76fb8c..ee6ad5e6 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+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. @@ -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 e821ad27..6b3ba2a2 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+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. @@ -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..17e4c94c 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 [(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 [(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 [(enum_string_value) = "external"]; +} diff --git a/python/metalstack/api/v2/switch_pb2.py b/python/metalstack/api/v2/switch_pb2.py index d690c3e8..7355fed2 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*\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 @@ -128,36 +134,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=4552 _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")