Skip to content

Commit 786c0df

Browse files
authored
feat(lb): add ipam_config (#63)
1 parent ec2b5ba commit 786c0df

File tree

6 files changed

+136
-20
lines changed

6 files changed

+136
-20
lines changed

scaleway-async/scaleway_async/lb/v1/api.py

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@
6565
ListSubscriberResponse,
6666
PrivateNetwork,
6767
PrivateNetworkDHCPConfig,
68+
PrivateNetworkIpamConfig,
6869
PrivateNetworkStaticConfig,
6970
Route,
7071
RouteMatch,
@@ -3027,6 +3028,7 @@ async def attach_private_network(
30273028
region: Optional[Region] = None,
30283029
static_config: Optional[PrivateNetworkStaticConfig] = None,
30293030
dhcp_config: Optional[PrivateNetworkDHCPConfig] = None,
3031+
ipam_config: Optional[PrivateNetworkIpamConfig] = None,
30303032
) -> PrivateNetwork:
30313033
"""
30323034
Add load balancer on instance private network
@@ -3035,10 +3037,13 @@ async def attach_private_network(
30353037
:param private_network_id: Set your instance private network id
30363038
:param static_config: Define two local ip address of your choice for each load balancer instance.
30373039
3038-
One-of ('config'): at most one of 'static_config', 'dhcp_config' could be set.
3040+
One-of ('config'): at most one of 'static_config', 'dhcp_config', 'ipam_config' could be set.
30393041
:param dhcp_config: Set to true if you want to let DHCP assign IP addresses.
30403042
3041-
One-of ('config'): at most one of 'static_config', 'dhcp_config' could be set.
3043+
One-of ('config'): at most one of 'static_config', 'dhcp_config', 'ipam_config' could be set.
3044+
:param ipam_config: For internal use only.
3045+
3046+
One-of ('config'): at most one of 'static_config', 'dhcp_config', 'ipam_config' could be set.
30423047
:return: :class:`PrivateNetwork <PrivateNetwork>`
30433048
30443049
Usage:
@@ -3068,6 +3073,7 @@ async def attach_private_network(
30683073
region=region,
30693074
static_config=static_config,
30703075
dhcp_config=dhcp_config,
3076+
ipam_config=ipam_config,
30713077
),
30723078
self.client,
30733079
),
@@ -5884,6 +5890,7 @@ async def attach_private_network(
58845890
zone: Optional[Zone] = None,
58855891
static_config: Optional[PrivateNetworkStaticConfig] = None,
58865892
dhcp_config: Optional[PrivateNetworkDHCPConfig] = None,
5893+
ipam_config: Optional[PrivateNetworkIpamConfig] = None,
58875894
) -> PrivateNetwork:
58885895
"""
58895896
Add load balancer on instance private network
@@ -5892,10 +5899,13 @@ async def attach_private_network(
58925899
:param private_network_id: Set your instance private network id
58935900
:param static_config: Define two local ip address of your choice for each load balancer instance.
58945901
5895-
One-of ('config'): at most one of 'static_config', 'dhcp_config' could be set.
5902+
One-of ('config'): at most one of 'static_config', 'dhcp_config', 'ipam_config' could be set.
58965903
:param dhcp_config: Set to true if you want to let DHCP assign IP addresses.
58975904
5898-
One-of ('config'): at most one of 'static_config', 'dhcp_config' could be set.
5905+
One-of ('config'): at most one of 'static_config', 'dhcp_config', 'ipam_config' could be set.
5906+
:param ipam_config: For internal use only.
5907+
5908+
One-of ('config'): at most one of 'static_config', 'dhcp_config', 'ipam_config' could be set.
58995909
:return: :class:`PrivateNetwork <PrivateNetwork>`
59005910
59015911
Usage:
@@ -5923,6 +5933,7 @@ async def attach_private_network(
59235933
zone=zone,
59245934
static_config=static_config,
59255935
dhcp_config=dhcp_config,
5936+
ipam_config=ipam_config,
59265937
),
59275938
self.client,
59285939
),

scaleway-async/scaleway_async/lb/v1/marshalling.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
ListSubscriberResponse,
5757
PrivateNetwork,
5858
PrivateNetworkDHCPConfig,
59+
PrivateNetworkIpamConfig,
5960
PrivateNetworkStaticConfig,
6061
Route,
6162
RouteMatch,
@@ -719,6 +720,17 @@ def unmarshal_PrivateNetworkDHCPConfig(data: Any) -> PrivateNetworkDHCPConfig:
719720
return PrivateNetworkDHCPConfig(**args)
720721

721722

723+
def unmarshal_PrivateNetworkIpamConfig(data: Any) -> PrivateNetworkIpamConfig:
724+
if type(data) is not dict:
725+
raise TypeError(
726+
f"Unmarshalling the type 'PrivateNetworkIpamConfig' failed as data isn't a dictionary."
727+
)
728+
729+
args: Dict[str, Any] = {}
730+
731+
return PrivateNetworkIpamConfig(**args)
732+
733+
722734
def unmarshal_PrivateNetworkStaticConfig(data: Any) -> PrivateNetworkStaticConfig:
723735
if type(data) is not dict:
724736
raise TypeError(
@@ -861,6 +873,11 @@ def unmarshal_PrivateNetwork(data: Any) -> PrivateNetwork:
861873
unmarshal_PrivateNetworkDHCPConfig(field) if field is not None else None
862874
)
863875

876+
field = data.get("ipam_config")
877+
args["ipam_config"] = (
878+
unmarshal_PrivateNetworkIpamConfig(field) if field is not None else None
879+
)
880+
864881
field = data.get("lb")
865882
args["lb"] = unmarshal_Lb(field) if field is not None else None
866883

@@ -1299,6 +1316,13 @@ def marshal_PrivateNetworkDHCPConfig(
12991316
return {}
13001317

13011318

1319+
def marshal_PrivateNetworkIpamConfig(
1320+
request: PrivateNetworkIpamConfig,
1321+
defaults: ProfileDefaults,
1322+
) -> Dict[str, Any]:
1323+
return {}
1324+
1325+
13021326
def marshal_PrivateNetworkStaticConfig(
13031327
request: PrivateNetworkStaticConfig,
13041328
defaults: ProfileDefaults,
@@ -1358,6 +1382,7 @@ def marshal_AttachPrivateNetworkRequest(
13581382
[
13591383
OneOfPossibility("static_config", request.static_config),
13601384
OneOfPossibility("dhcp_config", request.dhcp_config),
1385+
OneOfPossibility("ipam_config", request.ipam_config),
13611386
]
13621387
),
13631388
}
@@ -1724,6 +1749,7 @@ def marshal_ZonedApiAttachPrivateNetworkRequest(
17241749
[
17251750
OneOfPossibility("static_config", request.static_config),
17261751
OneOfPossibility("dhcp_config", request.dhcp_config),
1752+
OneOfPossibility("ipam_config", request.ipam_config),
17271753
]
17281754
),
17291755
}

scaleway-async/scaleway_async/lb/v1/types.py

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1344,14 +1344,21 @@ class PrivateNetwork:
13441344
"""
13451345
Local ip address of load balancer instance.
13461346
1347-
One-of ('config'): at most one of 'static_config', 'dhcp_config' could be set.
1347+
One-of ('config'): at most one of 'static_config', 'dhcp_config', 'ipam_config' could be set.
13481348
"""
13491349

13501350
dhcp_config: Optional[PrivateNetworkDHCPConfig]
13511351
"""
13521352
Value set to true if load balancer instance use a DHCP.
13531353
1354-
One-of ('config'): at most one of 'static_config', 'dhcp_config' could be set.
1354+
One-of ('config'): at most one of 'static_config', 'dhcp_config', 'ipam_config' could be set.
1355+
"""
1356+
1357+
ipam_config: Optional[PrivateNetworkIpamConfig]
1358+
"""
1359+
Value set to true if load balancer instance use a DHCP.
1360+
1361+
One-of ('config'): at most one of 'static_config', 'dhcp_config', 'ipam_config' could be set.
13551362
"""
13561363

13571364
private_network_id: str
@@ -2987,14 +2994,21 @@ class AttachPrivateNetworkRequest:
29872994
"""
29882995
Define two local ip address of your choice for each load balancer instance.
29892996
2990-
One-of ('config'): at most one of 'static_config', 'dhcp_config' could be set.
2997+
One-of ('config'): at most one of 'static_config', 'dhcp_config', 'ipam_config' could be set.
29912998
"""
29922999

29933000
dhcp_config: Optional[PrivateNetworkDHCPConfig]
29943001
"""
29953002
Set to true if you want to let DHCP assign IP addresses.
29963003
2997-
One-of ('config'): at most one of 'static_config', 'dhcp_config' could be set.
3004+
One-of ('config'): at most one of 'static_config', 'dhcp_config', 'ipam_config' could be set.
3005+
"""
3006+
3007+
ipam_config: Optional[PrivateNetworkIpamConfig]
3008+
"""
3009+
For internal use only.
3010+
3011+
One-of ('config'): at most one of 'static_config', 'dhcp_config', 'ipam_config' could be set.
29983012
"""
29993013

30003014

@@ -4501,14 +4515,21 @@ class ZonedApiAttachPrivateNetworkRequest:
45014515
"""
45024516
Define two local ip address of your choice for each load balancer instance.
45034517
4504-
One-of ('config'): at most one of 'static_config', 'dhcp_config' could be set.
4518+
One-of ('config'): at most one of 'static_config', 'dhcp_config', 'ipam_config' could be set.
45054519
"""
45064520

45074521
dhcp_config: Optional[PrivateNetworkDHCPConfig]
45084522
"""
45094523
Set to true if you want to let DHCP assign IP addresses.
45104524
4511-
One-of ('config'): at most one of 'static_config', 'dhcp_config' could be set.
4525+
One-of ('config'): at most one of 'static_config', 'dhcp_config', 'ipam_config' could be set.
4526+
"""
4527+
4528+
ipam_config: Optional[PrivateNetworkIpamConfig]
4529+
"""
4530+
For internal use only.
4531+
4532+
One-of ('config'): at most one of 'static_config', 'dhcp_config', 'ipam_config' could be set.
45124533
"""
45134534

45144535

scaleway/scaleway/lb/v1/api.py

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@
6565
ListSubscriberResponse,
6666
PrivateNetwork,
6767
PrivateNetworkDHCPConfig,
68+
PrivateNetworkIpamConfig,
6869
PrivateNetworkStaticConfig,
6970
Route,
7071
RouteMatch,
@@ -3025,6 +3026,7 @@ def attach_private_network(
30253026
region: Optional[Region] = None,
30263027
static_config: Optional[PrivateNetworkStaticConfig] = None,
30273028
dhcp_config: Optional[PrivateNetworkDHCPConfig] = None,
3029+
ipam_config: Optional[PrivateNetworkIpamConfig] = None,
30283030
) -> PrivateNetwork:
30293031
"""
30303032
Add load balancer on instance private network
@@ -3033,10 +3035,13 @@ def attach_private_network(
30333035
:param private_network_id: Set your instance private network id
30343036
:param static_config: Define two local ip address of your choice for each load balancer instance.
30353037
3036-
One-of ('config'): at most one of 'static_config', 'dhcp_config' could be set.
3038+
One-of ('config'): at most one of 'static_config', 'dhcp_config', 'ipam_config' could be set.
30373039
:param dhcp_config: Set to true if you want to let DHCP assign IP addresses.
30383040
3039-
One-of ('config'): at most one of 'static_config', 'dhcp_config' could be set.
3041+
One-of ('config'): at most one of 'static_config', 'dhcp_config', 'ipam_config' could be set.
3042+
:param ipam_config: For internal use only.
3043+
3044+
One-of ('config'): at most one of 'static_config', 'dhcp_config', 'ipam_config' could be set.
30403045
:return: :class:`PrivateNetwork <PrivateNetwork>`
30413046
30423047
Usage:
@@ -3066,6 +3071,7 @@ def attach_private_network(
30663071
region=region,
30673072
static_config=static_config,
30683073
dhcp_config=dhcp_config,
3074+
ipam_config=ipam_config,
30693075
),
30703076
self.client,
30713077
),
@@ -5880,6 +5886,7 @@ def attach_private_network(
58805886
zone: Optional[Zone] = None,
58815887
static_config: Optional[PrivateNetworkStaticConfig] = None,
58825888
dhcp_config: Optional[PrivateNetworkDHCPConfig] = None,
5889+
ipam_config: Optional[PrivateNetworkIpamConfig] = None,
58835890
) -> PrivateNetwork:
58845891
"""
58855892
Add load balancer on instance private network
@@ -5888,10 +5895,13 @@ def attach_private_network(
58885895
:param private_network_id: Set your instance private network id
58895896
:param static_config: Define two local ip address of your choice for each load balancer instance.
58905897
5891-
One-of ('config'): at most one of 'static_config', 'dhcp_config' could be set.
5898+
One-of ('config'): at most one of 'static_config', 'dhcp_config', 'ipam_config' could be set.
58925899
:param dhcp_config: Set to true if you want to let DHCP assign IP addresses.
58935900
5894-
One-of ('config'): at most one of 'static_config', 'dhcp_config' could be set.
5901+
One-of ('config'): at most one of 'static_config', 'dhcp_config', 'ipam_config' could be set.
5902+
:param ipam_config: For internal use only.
5903+
5904+
One-of ('config'): at most one of 'static_config', 'dhcp_config', 'ipam_config' could be set.
58955905
:return: :class:`PrivateNetwork <PrivateNetwork>`
58965906
58975907
Usage:
@@ -5919,6 +5929,7 @@ def attach_private_network(
59195929
zone=zone,
59205930
static_config=static_config,
59215931
dhcp_config=dhcp_config,
5932+
ipam_config=ipam_config,
59225933
),
59235934
self.client,
59245935
),

scaleway/scaleway/lb/v1/marshalling.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
ListSubscriberResponse,
5757
PrivateNetwork,
5858
PrivateNetworkDHCPConfig,
59+
PrivateNetworkIpamConfig,
5960
PrivateNetworkStaticConfig,
6061
Route,
6162
RouteMatch,
@@ -719,6 +720,17 @@ def unmarshal_PrivateNetworkDHCPConfig(data: Any) -> PrivateNetworkDHCPConfig:
719720
return PrivateNetworkDHCPConfig(**args)
720721

721722

723+
def unmarshal_PrivateNetworkIpamConfig(data: Any) -> PrivateNetworkIpamConfig:
724+
if type(data) is not dict:
725+
raise TypeError(
726+
f"Unmarshalling the type 'PrivateNetworkIpamConfig' failed as data isn't a dictionary."
727+
)
728+
729+
args: Dict[str, Any] = {}
730+
731+
return PrivateNetworkIpamConfig(**args)
732+
733+
722734
def unmarshal_PrivateNetworkStaticConfig(data: Any) -> PrivateNetworkStaticConfig:
723735
if type(data) is not dict:
724736
raise TypeError(
@@ -861,6 +873,11 @@ def unmarshal_PrivateNetwork(data: Any) -> PrivateNetwork:
861873
unmarshal_PrivateNetworkDHCPConfig(field) if field is not None else None
862874
)
863875

876+
field = data.get("ipam_config")
877+
args["ipam_config"] = (
878+
unmarshal_PrivateNetworkIpamConfig(field) if field is not None else None
879+
)
880+
864881
field = data.get("lb")
865882
args["lb"] = unmarshal_Lb(field) if field is not None else None
866883

@@ -1299,6 +1316,13 @@ def marshal_PrivateNetworkDHCPConfig(
12991316
return {}
13001317

13011318

1319+
def marshal_PrivateNetworkIpamConfig(
1320+
request: PrivateNetworkIpamConfig,
1321+
defaults: ProfileDefaults,
1322+
) -> Dict[str, Any]:
1323+
return {}
1324+
1325+
13021326
def marshal_PrivateNetworkStaticConfig(
13031327
request: PrivateNetworkStaticConfig,
13041328
defaults: ProfileDefaults,
@@ -1358,6 +1382,7 @@ def marshal_AttachPrivateNetworkRequest(
13581382
[
13591383
OneOfPossibility("static_config", request.static_config),
13601384
OneOfPossibility("dhcp_config", request.dhcp_config),
1385+
OneOfPossibility("ipam_config", request.ipam_config),
13611386
]
13621387
),
13631388
}
@@ -1724,6 +1749,7 @@ def marshal_ZonedApiAttachPrivateNetworkRequest(
17241749
[
17251750
OneOfPossibility("static_config", request.static_config),
17261751
OneOfPossibility("dhcp_config", request.dhcp_config),
1752+
OneOfPossibility("ipam_config", request.ipam_config),
17271753
]
17281754
),
17291755
}

0 commit comments

Comments
 (0)