Dmitriy Matrenichev 8e9fc13d7c
feat: implement enum generator for proto files
`structprotogen` now supports generating enums directly instead of using predeclared file and hardcoded types. To use this functionality, simply put `structprotogen:gen_enum` in the comment above const block, you want to have the proto definitions for.

Closes #6215

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2023-01-11 16:02:21 +03:00

334 lines
7.8 KiB
Protocol Buffer
Executable File

syntax = "proto3";
package talos.resource.definitions.enums;
option go_package = "github.com/siderolabs/talos/pkg/machinery/api/resource/definitions/enums";
// MachineType represents a machine type.
enum MachineType {
// TypeUnknown represents undefined node type, when there is no machine configuration yet.
TYPE_UNKNOWN = 0;
// TypeInit type designates the first control plane node to come up. You can think of it like a bootstrap node.
// This node will perform the initial steps to bootstrap the cluster -- generation of TLS assets, starting of the control plane, etc.
TYPE_INIT = 1;
// TypeControlPlane designates the node as a control plane member.
// This means it will host etcd along with the Kubernetes controlplane components such as API Server, Controller Manager, Scheduler.
TYPE_CONTROL_PLANE = 2;
// TypeWorker designates the node as a worker node.
// This means it will be an available compute node for scheduling workloads.
TYPE_WORKER = 3;
}
// NethelpersAddressFlag wraps IFF_* constants.
enum NethelpersAddressFlag {
NETHELPERS_ADDRESSFLAG_UNSPECIFIED = 0;
ADDRESS_TEMPORARY = 1;
ADDRESS_NO_DAD = 2;
ADDRESS_OPTIMISTIC = 4;
ADDRESS_DAD_FAILED = 8;
ADDRESS_HOME = 16;
ADDRESS_DEPRECATED = 32;
ADDRESS_TENTATIVE = 64;
ADDRESS_PERMANENT = 128;
ADDRESS_MANAGEMENT_TEMP = 256;
ADDRESS_NO_PREFIX_ROUTE = 512;
ADDRESS_MC_AUTO_JOIN = 1024;
ADDRESS_STABLE_PRIVACY = 2048;
}
// NethelpersADSelect is ADSelect.
enum NethelpersADSelect {
AD_SELECT_STABLE = 0;
AD_SELECT_BANDWIDTH = 1;
AD_SELECT_COUNT = 2;
}
// NethelpersARPAllTargets is an ARP targets mode.
enum NethelpersARPAllTargets {
ARP_ALL_TARGETS_ANY = 0;
ARP_ALL_TARGETS_ALL = 1;
}
// NethelpersARPValidate is an ARP Validation mode.
enum NethelpersARPValidate {
ARP_VALIDATE_NONE = 0;
ARP_VALIDATE_ACTIVE = 1;
ARP_VALIDATE_BACKUP = 2;
ARP_VALIDATE_ALL = 3;
}
// NethelpersBondMode is a bond mode.
enum NethelpersBondMode {
BOND_MODE_ROUNDROBIN = 0;
BOND_MODE_ACTIVE_BACKUP = 1;
BOND_MODE_XOR = 2;
BOND_MODE_BROADCAST = 3;
BOND_MODE8023_AD = 4;
BOND_MODE_TLB = 5;
BOND_MODE_ALB = 6;
}
// NethelpersBondXmitHashPolicy is a bond hash policy.
enum NethelpersBondXmitHashPolicy {
BOND_XMIT_POLICY_LAYER2 = 0;
BOND_XMIT_POLICY_LAYER34 = 1;
BOND_XMIT_POLICY_LAYER23 = 2;
BOND_XMIT_POLICY_ENCAP23 = 3;
BOND_XMIT_POLICY_ENCAP34 = 4;
}
// NethelpersDuplex wraps ethtool.Duplex for YAML marshaling.
enum NethelpersDuplex {
HALF = 0;
FULL = 1;
UNKNOWN = 255;
}
// NethelpersFailOverMAC is a MAC failover mode.
enum NethelpersFailOverMAC {
FAIL_OVER_MAC_NONE = 0;
FAIL_OVER_MAC_ACTIVE = 1;
FAIL_OVER_MAC_FOLLOW = 2;
}
// NethelpersFamily is a network family.
enum NethelpersFamily {
NETHELPERS_FAMILY_UNSPECIFIED = 0;
FAMILY_INET4 = 2;
FAMILY_INET6 = 10;
}
// NethelpersLACPRate is a LACP rate.
enum NethelpersLACPRate {
LACP_RATE_SLOW = 0;
LACP_RATE_FAST = 1;
}
// NethelpersLinkType is a link type.
enum NethelpersLinkType {
option allow_alias = true;
LINK_NETROM = 0;
LINK_ETHER = 1;
LINK_EETHER = 2;
LINK_AX25 = 3;
LINK_PRONET = 4;
LINK_CHAOS = 5;
LINK_IEE802 = 6;
LINK_ARCNET = 7;
LINK_ATALK = 8;
LINK_DLCI = 15;
LINK_ATM = 19;
LINK_METRICOM = 23;
LINK_IEEE1394 = 24;
LINK_EUI64 = 27;
LINK_INFINIBAND = 32;
LINK_SLIP = 256;
LINK_CSLIP = 257;
LINK_SLIP6 = 258;
LINK_CSLIP6 = 259;
LINK_RSRVD = 260;
LINK_ADAPT = 264;
LINK_ROSE = 270;
LINK_X25 = 271;
LINK_HWX25 = 272;
LINK_CAN = 280;
LINK_PPP = 512;
LINK_CISCO = 513;
LINK_HDLC = 513;
LINK_LAPB = 516;
LINK_DDCMP = 517;
LINK_RAWHDLC = 518;
LINK_TUNNEL = 768;
LINK_TUNNEL6 = 769;
LINK_FRAD = 770;
LINK_SKIP = 771;
LINK_LOOPBCK = 772;
LINK_LOCALTLK = 773;
LINK_FDDI = 774;
LINK_BIF = 775;
LINK_SIT = 776;
LINK_IPDDP = 777;
LINK_IPGRE = 778;
LINK_PIMREG = 779;
LINK_HIPPI = 780;
LINK_ASH = 781;
LINK_ECONET = 782;
LINK_IRDA = 783;
LINK_FCPP = 784;
LINK_FCAL = 785;
LINK_FCPL = 786;
LINK_FCFABRIC = 787;
LINK_FCFABRIC1 = 788;
LINK_FCFABRIC2 = 789;
LINK_FCFABRIC3 = 790;
LINK_FCFABRIC4 = 791;
LINK_FCFABRIC5 = 792;
LINK_FCFABRIC6 = 793;
LINK_FCFABRIC7 = 794;
LINK_FCFABRIC8 = 795;
LINK_FCFABRIC9 = 796;
LINK_FCFABRIC10 = 797;
LINK_FCFABRIC11 = 798;
LINK_FCFABRIC12 = 799;
LINK_IEE802TR = 800;
LINK_IEE80211 = 801;
LINK_IEE80211PRISM = 802;
LINK_IEE80211_RADIOTAP = 803;
LINK_IEE8021154 = 804;
LINK_IEE8021154MONITOR = 805;
LINK_PHONET = 820;
LINK_PHONETPIPE = 821;
LINK_CAIF = 822;
LINK_IP6GRE = 823;
LINK_NETLINK = 824;
LINK6_LOWPAN = 825;
LINK_VOID = 65535;
LINK_NONE = 65534;
}
// NethelpersOperationalState wraps rtnetlink.OperationalState for YAML marshaling.
enum NethelpersOperationalState {
OPER_STATE_UNKNOWN = 0;
OPER_STATE_NOT_PRESENT = 1;
OPER_STATE_DOWN = 2;
OPER_STATE_LOWER_LAYER_DOWN = 3;
OPER_STATE_TESTING = 4;
OPER_STATE_DORMANT = 5;
OPER_STATE_UP = 6;
}
// NethelpersPort wraps ethtool.Port for YAML marshaling.
enum NethelpersPort {
TWISTED_PAIR = 0;
AUI = 1;
MII = 2;
FIBRE = 3;
BNC = 4;
DIRECT_ATTACH = 5;
NONE = 239;
OTHER = 255;
}
// NethelpersPrimaryReselect is an ARP targets mode.
enum NethelpersPrimaryReselect {
PRIMARY_RESELECT_ALWAYS = 0;
PRIMARY_RESELECT_BETTER = 1;
PRIMARY_RESELECT_FAILURE = 2;
}
// NethelpersRouteFlag wraps RTM_F_* constants.
enum NethelpersRouteFlag {
NETHELPERS_ROUTEFLAG_UNSPECIFIED = 0;
ROUTE_NOTIFY = 256;
ROUTE_CLONED = 512;
ROUTE_EQUALIZE = 1024;
ROUTE_PREFIX = 2048;
ROUTE_LOOKUP_TABLE = 4096;
ROUTE_FIB_MATCH = 8192;
ROUTE_OFFLOAD = 16384;
ROUTE_TRAP = 32768;
}
// NethelpersRouteProtocol is a routing protocol.
enum NethelpersRouteProtocol {
PROTOCOL_UNSPEC = 0;
PROTOCOL_REDIRECT = 1;
PROTOCOL_KERNEL = 2;
PROTOCOL_BOOT = 3;
PROTOCOL_STATIC = 4;
PROTOCOL_RA = 9;
PROTOCOL_MRT = 10;
PROTOCOL_ZEBRA = 11;
PROTOCOL_BIRD = 12;
PROTOCOL_DNROUTED = 13;
PROTOCOL_XORP = 14;
PROTOCOL_NTK = 15;
PROTOCOL_DHCP = 16;
PROTOCOL_MRTD = 17;
PROTOCOL_KEEPALIVED = 18;
PROTOCOL_BABEL = 42;
PROTOCOL_OPENR = 99;
PROTOCOL_BGP = 186;
PROTOCOL_ISIS = 187;
PROTOCOL_OSPF = 188;
PROTOCOL_RIP = 189;
PROTOCOL_EIGRP = 192;
}
// NethelpersRouteType is a route type.
enum NethelpersRouteType {
TYPE_UNSPEC = 0;
TYPE_UNICAST = 1;
TYPE_LOCAL = 2;
TYPE_BROADCAST = 3;
TYPE_ANYCAST = 4;
TYPE_MULTICAST = 5;
TYPE_BLACKHOLE = 6;
TYPE_UNREACHABLE = 7;
TYPE_PROHIBIT = 8;
TYPE_THROW = 9;
TYPE_NAT = 10;
TYPE_X_RESOLVE = 11;
}
// NethelpersRoutingTable is a routing table ID.
enum NethelpersRoutingTable {
TABLE_UNSPEC = 0;
TABLE_DEFAULT = 253;
TABLE_MAIN = 254;
TABLE_LOCAL = 255;
}
// NethelpersScope is an address scope.
enum NethelpersScope {
SCOPE_GLOBAL = 0;
SCOPE_SITE = 200;
SCOPE_LINK = 253;
SCOPE_HOST = 254;
SCOPE_NOWHERE = 255;
}
// NethelpersVLANProtocol is a VLAN protocol.
enum NethelpersVLANProtocol {
NETHELPERS_VLANPROTOCOL_UNSPECIFIED = 0;
VLAN_PROTOCOL8021_Q = 33024;
VLAN_PROTOCOL8021_AD = 34984;
}
// KubespanPeerState is KubeSpan peer current state.
enum KubespanPeerState {
PEER_STATE_UNKNOWN = 0;
PEER_STATE_UP = 1;
PEER_STATE_DOWN = 2;
}
// NetworkConfigLayer describes network configuration layers, with lowest priority first.
enum NetworkConfigLayer {
CONFIG_DEFAULT = 0;
CONFIG_CMDLINE = 1;
CONFIG_PLATFORM = 2;
CONFIG_OPERATOR = 3;
CONFIG_MACHINE_CONFIGURATION = 4;
}
// NetworkOperator enumerates Talos network operators.
enum NetworkOperator {
OPERATOR_DHCP4 = 0;
OPERATOR_DHCP6 = 1;
OPERATOR_VIP = 2;
}
// RuntimeMachineStage describes the stage of the machine boot/run process.
enum RuntimeMachineStage {
MACHINE_STAGE_UNKNOWN = 0;
MACHINE_STAGE_BOOTING = 1;
MACHINE_STAGE_INSTALLING = 2;
MACHINE_STAGE_MAINTENANCE = 3;
MACHINE_STAGE_RUNNING = 4;
MACHINE_STAGE_REBOOTING = 5;
MACHINE_STAGE_SHUTTING_DOWN = 6;
MACHINE_STAGE_RESETTING = 7;
MACHINE_STAGE_UPGRADING = 8;
}