Skip to content

Commit fe92e9a

Browse files
committed
python-sdk: Add region capability enum
1 parent 7708f87 commit fe92e9a

2 files changed

Lines changed: 61 additions & 1 deletion

File tree

linode_api4/objects/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from .dbase import DerivedBase
44
from .serializable import JSONObject
55
from .filtering import and_, or_
6-
from .region import Region
6+
from .region import Region, Capability
77
from .image import Image
88
from .linode import *
99
from .linode_interfaces import *

linode_api4/objects/region.py

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,66 @@
33

44
from linode_api4.errors import UnexpectedResponseError
55
from linode_api4.objects.base import Base, JSONObject, Property
6+
from linode_api4.objects.serializable import StrEnum
7+
8+
9+
class Capability(StrEnum):
10+
"""
11+
An enum class representing the capabilities that Linode offers
12+
across different regions and services.
13+
14+
These capabilities indicate what services are available in each data center.
15+
"""
16+
17+
ACLB = "Akamai Cloud Load Balancer"
18+
ACLP = "Akamai Cloud Pulse"
19+
ACLPStreams = "Akamai Cloud Pulse Streams"
20+
AkamaiRAMProtection = "Akamai RAM Protection"
21+
Backups = "Backups"
22+
BareMetal = "Bare Metal"
23+
BlockStorage = "Block Storage"
24+
BlockStorageEncryption = "Block Storage Encryption"
25+
BlockStorageMigrations = "Block Storage Migrations"
26+
BlockStoragePerformanceB1 = "Block Storage Performance B1"
27+
BlockStoragePerformanceB1Default = "Block Storage Performance B1 Default"
28+
CloudFirewall = "Cloud Firewall"
29+
CloudFirewallRuleSet = "Cloud Firewall Rule Set"
30+
CloudNAT = "Cloud NAT"
31+
DBAAS = "Managed Databases"
32+
DBAASBeta = "Managed Databases Beta"
33+
DiskEncryption = "Disk Encryption"
34+
DistributedPlans = "Distributed Plans"
35+
EdgePlans = "Edge Plans"
36+
GPU = "GPU Linodes"
37+
KubernetesEnterprise = "Kubernetes Enterprise"
38+
KubernetesEnterpriseBYOVPC = "Kubernetes Enterprise BYO VPC"
39+
KubernetesEnterpriseDualStack = "Kubernetes Enterprise Dual Stack"
40+
LADiskEncryption = "LA Disk Encryption"
41+
LinodeInterfaces = "Linode Interfaces"
42+
Linodes = "Linodes"
43+
LKE = "Kubernetes"
44+
LKEControlPlaneACL = "LKE Network Access Control List (IP ACL)"
45+
LKEHAControlPlanes = "LKE HA Control Planes"
46+
MachineImages = "Machine Images"
47+
MaintenancePolicy = "Maintenance Policy"
48+
Metadata = "Metadata"
49+
NLB = "Network LoadBalancer"
50+
NodeBalancers = "NodeBalancers"
51+
ObjectStorage = "Object Storage"
52+
ObjectStorageAccessKeyRegions = "Object Storage Access Key Regions"
53+
ObjectStorageEndpointTypes = "Object Storage Endpoint Types"
54+
PlacementGroup = "Placement Group"
55+
PremiumPlans = "Premium Plans"
56+
QuadraT1UVPU = "NETINT Quadra T1U"
57+
SMTPEnabled = "SMTP Enabled"
58+
StackScripts = "StackScripts"
59+
SupportTicketSeverity = "Support Ticket Severity"
60+
Vlans = "Vlans"
61+
VPCs = "VPCs"
62+
VPCDualStack = "VPC Dual Stack"
63+
VPCIPv6Stack = "VPC IPv6 Stack"
64+
VPCIPv6LargePrefixes = "VPC IPv6 Large Prefixes"
65+
VPCsExtra = "VPCs Extra"
666

767

868
@dataclass

0 commit comments

Comments
 (0)