syntax = "proto3";

package talos.resource.definitions.enums;

option go_package = "github.com/siderolabs/talos/pkg/machinery/api/resource/definitions/enums";
option java_package = "dev.talos.api.resource.definitions.enums";

// 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;
}

// RuntimeSELinuxState describes the current SELinux status.
enum RuntimeSELinuxState {
  SE_LINUX_STATE_DISABLED = 0;
  SE_LINUX_STATE_PERMISSIVE = 1;
  SE_LINUX_STATE_ENFORCING = 2;
}

// RuntimeFIPSState describes the current FIPS status.
enum RuntimeFIPSState {
  FIPS_STATE_DISABLED = 0;
  FIPS_STATE_ENABLED = 1;
  FIPS_STATE_STRICT = 2;
}

// 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;
}

// NethelpersAddressSortAlgorithm is an internal address sorting algorithm.
enum NethelpersAddressSortAlgorithm {
  ADDRESS_SORT_ALGORITHM_V1 = 0;
  ADDRESS_SORT_ALGORITHM_V2 = 1;
}

// NethelpersADLACPActive is ADLACPActive.
enum NethelpersADLACPActive {
  ADLACP_ACTIVE_OFF = 0;
  ADLACP_ACTIVE_ON = 1;
}

// 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;
  ARP_VALIDATE_FILTER = 4;
  ARP_VALIDATE_FILTER_ACTIVE = 5;
  ARP_VALIDATE_FILTER_BACKUP = 6;
}

// NethelpersAutoHostnameKind is a kind of automatically generated hostname.
enum NethelpersAutoHostnameKind {
  AUTO_HOSTNAME_KIND_OFF = 0;
  AUTO_HOSTNAME_KIND_ADDR = 1;
  AUTO_HOSTNAME_KIND_STABLE = 2;
}

// 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;
}

// NethelpersClientIdentifier is a DHCP client identifier.
enum NethelpersClientIdentifier {
  CLIENT_IDENTIFIER_NONE = 0;
  CLIENT_IDENTIFIER_MAC = 1;
  CLIENT_IDENTIFIER_DUID = 2;
}

// NethelpersConntrackState is a conntrack state.
enum NethelpersConntrackState {
  NETHELPERS_CONNTRACKSTATE_UNSPECIFIED = 0;
  CONNTRACK_STATE_NEW = 8;
  CONNTRACK_STATE_RELATED = 4;
  CONNTRACK_STATE_ESTABLISHED = 2;
  CONNTRACK_STATE_INVALID = 1;
}

// 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;
}

// NethelpersICMPType is a ICMP packet type.
enum NethelpersICMPType {
  NETHELPERS_ICMPTYPE_UNSPECIFIED = 0;
  ICMP_TYPE_TIMESTAMP_REQUEST = 13;
  ICMP_TYPE_TIMESTAMP_REPLY = 14;
  ICMP_TYPE_ADDRESS_MASK_REQUEST = 17;
  ICMP_TYPE_ADDRESS_MASK_REPLY = 18;
}

// 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;
}

// NethelpersMatchOperator is a netfilter match operator.
enum NethelpersMatchOperator {
  OPERATOR_EQUAL = 0;
  OPERATOR_NOT_EQUAL = 1;
}

// NethelpersNfTablesChainHook wraps nftables.ChainHook for YAML marshaling.
enum NethelpersNfTablesChainHook {
  CHAIN_HOOK_PREROUTING = 0;
  CHAIN_HOOK_INPUT = 1;
  CHAIN_HOOK_FORWARD = 2;
  CHAIN_HOOK_OUTPUT = 3;
  CHAIN_HOOK_POSTROUTING = 4;
}

// NethelpersNfTablesChainPriority wraps nftables.ChainPriority for YAML marshaling.
enum NethelpersNfTablesChainPriority {
  option allow_alias = true;
  NETHELPERS_NFTABLESCHAINPRIORITY_UNSPECIFIED = 0;
  CHAIN_PRIORITY_FIRST = -2147483648;
  CHAIN_PRIORITY_CONNTRACK_DEFRAG = -400;
  CHAIN_PRIORITY_RAW = -300;
  CHAIN_PRIORITY_SE_LINUX_FIRST = -225;
  CHAIN_PRIORITY_CONNTRACK = -200;
  CHAIN_PRIORITY_MANGLE = -150;
  CHAIN_PRIORITY_NAT_DEST = -100;
  CHAIN_PRIORITY_FILTER = 0;
  CHAIN_PRIORITY_SECURITY = 50;
  CHAIN_PRIORITY_NAT_SOURCE = 100;
  CHAIN_PRIORITY_SE_LINUX_LAST = 225;
  CHAIN_PRIORITY_CONNTRACK_HELPER = 300;
  CHAIN_PRIORITY_LAST = 2147483647;
}

// NethelpersNfTablesVerdict wraps nftables.Verdict for YAML marshaling.
enum NethelpersNfTablesVerdict {
  VERDICT_DROP = 0;
  VERDICT_ACCEPT = 1;
}

// 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;
}

// NethelpersProtocol is a inet protocol.
enum NethelpersProtocol {
  NETHELPERS_PROTOCOL_UNSPECIFIED = 0;
  PROTOCOL_ICMP = 1;
  PROTOCOL_TCP = 6;
  PROTOCOL_UDP = 17;
  PROTOCOL_ICM_PV6 = 58;
}

// 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;
  TABLE1 = 1;
  TABLE2 = 2;
  TABLE3 = 3;
  TABLE4 = 4;
  TABLE5 = 5;
  TABLE6 = 6;
  TABLE7 = 7;
  TABLE8 = 8;
  TABLE9 = 9;
  TABLE10 = 10;
  TABLE11 = 11;
  TABLE12 = 12;
  TABLE13 = 13;
  TABLE14 = 14;
  TABLE15 = 15;
  TABLE16 = 16;
  TABLE17 = 17;
  TABLE18 = 18;
  TABLE19 = 19;
  TABLE20 = 20;
  TABLE21 = 21;
  TABLE22 = 22;
  TABLE23 = 23;
  TABLE24 = 24;
  TABLE25 = 25;
  TABLE26 = 26;
  TABLE27 = 27;
  TABLE28 = 28;
  TABLE29 = 29;
  TABLE30 = 30;
  TABLE31 = 31;
  TABLE32 = 32;
  TABLE33 = 33;
  TABLE34 = 34;
  TABLE35 = 35;
  TABLE36 = 36;
  TABLE37 = 37;
  TABLE38 = 38;
  TABLE39 = 39;
  TABLE40 = 40;
  TABLE41 = 41;
  TABLE42 = 42;
  TABLE43 = 43;
  TABLE44 = 44;
  TABLE45 = 45;
  TABLE46 = 46;
  TABLE47 = 47;
  TABLE48 = 48;
  TABLE49 = 49;
  TABLE50 = 50;
  TABLE51 = 51;
  TABLE52 = 52;
  TABLE53 = 53;
  TABLE54 = 54;
  TABLE55 = 55;
  TABLE56 = 56;
  TABLE57 = 57;
  TABLE58 = 58;
  TABLE59 = 59;
  TABLE60 = 60;
  TABLE61 = 61;
  TABLE62 = 62;
  TABLE63 = 63;
  TABLE64 = 64;
  TABLE65 = 65;
  TABLE66 = 66;
  TABLE67 = 67;
  TABLE68 = 68;
  TABLE69 = 69;
  TABLE70 = 70;
  TABLE71 = 71;
  TABLE72 = 72;
  TABLE73 = 73;
  TABLE74 = 74;
  TABLE75 = 75;
  TABLE76 = 76;
  TABLE77 = 77;
  TABLE78 = 78;
  TABLE79 = 79;
  TABLE80 = 80;
  TABLE81 = 81;
  TABLE82 = 82;
  TABLE83 = 83;
  TABLE84 = 84;
  TABLE85 = 85;
  TABLE86 = 86;
  TABLE87 = 87;
  TABLE88 = 88;
  TABLE89 = 89;
  TABLE90 = 90;
  TABLE91 = 91;
  TABLE92 = 92;
  TABLE93 = 93;
  TABLE94 = 94;
  TABLE95 = 95;
  TABLE96 = 96;
  TABLE97 = 97;
  TABLE98 = 98;
  TABLE99 = 99;
  TABLE100 = 100;
  TABLE101 = 101;
  TABLE102 = 102;
  TABLE103 = 103;
  TABLE104 = 104;
  TABLE105 = 105;
  TABLE106 = 106;
  TABLE107 = 107;
  TABLE108 = 108;
  TABLE109 = 109;
  TABLE110 = 110;
  TABLE111 = 111;
  TABLE112 = 112;
  TABLE113 = 113;
  TABLE114 = 114;
  TABLE115 = 115;
  TABLE116 = 116;
  TABLE117 = 117;
  TABLE118 = 118;
  TABLE119 = 119;
  TABLE120 = 120;
  TABLE121 = 121;
  TABLE122 = 122;
  TABLE123 = 123;
  TABLE124 = 124;
  TABLE125 = 125;
  TABLE126 = 126;
  TABLE127 = 127;
  TABLE128 = 128;
  TABLE129 = 129;
  TABLE130 = 130;
  TABLE131 = 131;
  TABLE132 = 132;
  TABLE133 = 133;
  TABLE134 = 134;
  TABLE135 = 135;
  TABLE136 = 136;
  TABLE137 = 137;
  TABLE138 = 138;
  TABLE139 = 139;
  TABLE140 = 140;
  TABLE141 = 141;
  TABLE142 = 142;
  TABLE143 = 143;
  TABLE144 = 144;
  TABLE145 = 145;
  TABLE146 = 146;
  TABLE147 = 147;
  TABLE148 = 148;
  TABLE149 = 149;
  TABLE150 = 150;
  TABLE151 = 151;
  TABLE152 = 152;
  TABLE153 = 153;
  TABLE154 = 154;
  TABLE155 = 155;
  TABLE156 = 156;
  TABLE157 = 157;
  TABLE158 = 158;
  TABLE159 = 159;
  TABLE160 = 160;
  TABLE161 = 161;
  TABLE162 = 162;
  TABLE163 = 163;
  TABLE164 = 164;
  TABLE165 = 165;
  TABLE166 = 166;
  TABLE167 = 167;
  TABLE168 = 168;
  TABLE169 = 169;
  TABLE170 = 170;
  TABLE171 = 171;
  TABLE172 = 172;
  TABLE173 = 173;
  TABLE174 = 174;
  TABLE175 = 175;
  TABLE176 = 176;
  TABLE177 = 177;
  TABLE178 = 178;
  TABLE179 = 179;
  TABLE180 = 180;
  TABLE181 = 181;
  TABLE182 = 182;
  TABLE183 = 183;
  TABLE184 = 184;
  TABLE185 = 185;
  TABLE186 = 186;
  TABLE187 = 187;
  TABLE188 = 188;
  TABLE189 = 189;
  TABLE190 = 190;
  TABLE191 = 191;
  TABLE192 = 192;
  TABLE193 = 193;
  TABLE194 = 194;
  TABLE195 = 195;
  TABLE196 = 196;
  TABLE197 = 197;
  TABLE198 = 198;
  TABLE199 = 199;
  TABLE200 = 200;
  TABLE201 = 201;
  TABLE202 = 202;
  TABLE203 = 203;
  TABLE204 = 204;
  TABLE205 = 205;
  TABLE206 = 206;
  TABLE207 = 207;
  TABLE208 = 208;
  TABLE209 = 209;
  TABLE210 = 210;
  TABLE211 = 211;
  TABLE212 = 212;
  TABLE213 = 213;
  TABLE214 = 214;
  TABLE215 = 215;
  TABLE216 = 216;
  TABLE217 = 217;
  TABLE218 = 218;
  TABLE219 = 219;
  TABLE220 = 220;
  TABLE221 = 221;
  TABLE222 = 222;
  TABLE223 = 223;
  TABLE224 = 224;
  TABLE225 = 225;
  TABLE226 = 226;
  TABLE227 = 227;
  TABLE228 = 228;
  TABLE229 = 229;
  TABLE230 = 230;
  TABLE231 = 231;
  TABLE232 = 232;
  TABLE233 = 233;
  TABLE234 = 234;
  TABLE235 = 235;
  TABLE236 = 236;
  TABLE237 = 237;
  TABLE238 = 238;
  TABLE239 = 239;
  TABLE240 = 240;
  TABLE241 = 241;
  TABLE242 = 242;
  TABLE243 = 243;
  TABLE244 = 244;
  TABLE245 = 245;
  TABLE246 = 246;
  TABLE247 = 247;
  TABLE248 = 248;
  TABLE249 = 249;
  TABLE250 = 250;
  TABLE251 = 251;
  TABLE252 = 252;
  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;
}

// NethelpersWOLMode wraps ethtool.WOLMode for YAML marshaling.
enum NethelpersWOLMode {
  NETHELPERS_WOLMODE_UNSPECIFIED = 0;
  WOL_MODE_PHY = 1;
  WOL_MODE_UNICAST = 2;
  WOL_MODE_MULTICAST = 4;
  WOL_MODE_BROADCAST = 8;
  WOL_MODE_MAGIC = 32;
  WOL_MODE_MAGIC_SECURE = 64;
  WOL_MODE_FILTER = 128;
}

// BlockEncryptionKeyType describes encryption key type.
enum BlockEncryptionKeyType {
  ENCRYPTION_KEY_STATIC = 0;
  ENCRYPTION_KEY_NODE_ID = 1;
  ENCRYPTION_KEY_KMS = 2;
  ENCRYPTION_KEY_TPM = 3;
}

// BlockEncryptionProviderType describes encryption provider type.
enum BlockEncryptionProviderType {
  ENCRYPTION_PROVIDER_NONE = 0;
  ENCRYPTION_PROVIDER_LUKS2 = 1;
}

// BlockFilesystemType describes filesystem type.
enum BlockFilesystemType {
  FILESYSTEM_TYPE_NONE = 0;
  FILESYSTEM_TYPE_XFS = 1;
  FILESYSTEM_TYPE_VFAT = 2;
  FILESYSTEM_TYPE_EXT4 = 3;
  FILESYSTEM_TYPE_ISO9660 = 4;
  FILESYSTEM_TYPE_SWAP = 5;
}

// BlockVolumePhase describes volume phase.
enum BlockVolumePhase {
  VOLUME_PHASE_WAITING = 0;
  VOLUME_PHASE_FAILED = 1;
  VOLUME_PHASE_MISSING = 2;
  VOLUME_PHASE_LOCATED = 3;
  VOLUME_PHASE_PROVISIONED = 4;
  VOLUME_PHASE_PREPARED = 5;
  VOLUME_PHASE_READY = 6;
  VOLUME_PHASE_CLOSED = 7;
}

// BlockVolumeType describes volume type.
enum BlockVolumeType {
  VOLUME_TYPE_PARTITION = 0;
  VOLUME_TYPE_DISK = 1;
  VOLUME_TYPE_TMPFS = 2;
  VOLUME_TYPE_DIRECTORY = 3;
  VOLUME_TYPE_SYMLINK = 4;
  VOLUME_TYPE_OVERLAY = 5;
}

// CriImageCacheStatus describes image cache status type.
enum CriImageCacheStatus {
  IMAGE_CACHE_STATUS_UNKNOWN = 0;
  IMAGE_CACHE_STATUS_DISABLED = 1;
  IMAGE_CACHE_STATUS_PREPARING = 2;
  IMAGE_CACHE_STATUS_READY = 3;
}

// CriImageCacheCopyStatus describes image cache copy status type.
enum CriImageCacheCopyStatus {
  IMAGE_CACHE_COPY_STATUS_UNKNOWN = 0;
  IMAGE_CACHE_COPY_STATUS_SKIPPED = 1;
  IMAGE_CACHE_COPY_STATUS_PENDING = 2;
  IMAGE_CACHE_COPY_STATUS_READY = 3;
}

// 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;
}

