Skip to content

Commit 8fb76e6

Browse files
committed
Add enum
1 parent 7f40746 commit 8fb76e6

3 files changed

Lines changed: 20 additions & 3 deletions

File tree

‎linode_api4/groups/nodebalancer.py‎

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
from linode_api4.errors import UnexpectedResponseError
22
from linode_api4.groups import Group
3-
from linode_api4.objects import Base, NodeBalancer, NodeBalancerType
3+
from linode_api4.objects import (
4+
Base,
5+
NodeBalancer,
6+
NodeBalancerBackendConnectivity,
7+
NodeBalancerType,
8+
)
49

510

611
class NodeBalancerGroup(Group):
@@ -48,7 +53,7 @@ def create(self, region, **kwargs):
4853
``undefined`` cannot be sent by clients. This cannot be
4954
changed after creation.
5055
NOTE: This field may not currently be available to all users.
51-
:type backend_connectivity: str
56+
:type backend_connectivity: NodeBalancerBackendConnectivity | str
5257
:param vpcs: VPC attachments for this NodeBalancer. Required when
5358
``backend_connectivity`` is ``vpc``.
5459
:type vpcs: list[dict]

‎linode_api4/objects/nodebalancer.py‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,16 @@
77
from linode_api4.objects.dbase import DerivedBase
88
from linode_api4.objects.networking import Firewall, IPAddress
99
from linode_api4.objects.region import Region
10+
from linode_api4.objects.serializable import StrEnum
11+
12+
13+
class NodeBalancerBackendConnectivity(StrEnum):
14+
"""Backend connectivity modes accepted when creating a NodeBalancer."""
15+
16+
IPV6 = "ipv6"
17+
LEGACY = "legacy"
18+
UNDEFINED = "undefined"
19+
VPC = "vpc"
1020

1121

1222
class NodeBalancerType(Base):

‎test/unit/linode_client_test.py‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from linode_api4.objects.beta import BetaProgram
66
from linode_api4.objects.linode import Instance
77
from linode_api4.objects.networking import IPAddress
8+
from linode_api4.objects.nodebalancer import NodeBalancerBackendConnectivity
89
from linode_api4.objects.object_storage import (
910
ObjectStorageACL,
1011
ObjectStorageCluster,
@@ -1607,7 +1608,7 @@ def test_create_with_type_and_backend_connectivity(self):
16071608
"us-east",
16081609
label="my-premium-nb",
16091610
type="premium",
1610-
backend_connectivity="ipv6",
1611+
backend_connectivity=NodeBalancerBackendConnectivity.IPV6,
16111612
configs=[
16121613
{
16131614
"port": 80,
@@ -1625,6 +1626,7 @@ def test_create_with_type_and_backend_connectivity(self):
16251626
self.assertEqual(m.call_data["region"], "us-east")
16261627
self.assertEqual(m.call_data["type"], "premium")
16271628
self.assertEqual(m.call_data["backend_connectivity"], "ipv6")
1629+
self.assertIs(type(m.call_data["backend_connectivity"]), str)
16281630
self.assertEqual(
16291631
m.call_data["configs"][0]["nodes"][0]["address"],
16301632
"[2001:db8:abcd:0012::1]:80",

0 commit comments

Comments
 (0)