Skip to content

Commit ee154cb

Browse files
authored
feat(edge_services): add serverless container backend (scaleway#1409)
1 parent 99bdc48 commit ee154cb

File tree

6 files changed

+104
-8
lines changed

6 files changed

+104
-8
lines changed

scaleway-async/scaleway_async/edge_services/v1beta1/api.py

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@
6868
ScalewayLb,
6969
ScalewayLbBackendConfig,
7070
ScalewayS3BackendConfig,
71+
ScalewayServerlessContainerBackendConfig,
7172
SelectPlanRequest,
7273
SetHeadStageRequest,
7374
SetHeadStageRequestAddNewHeadStage,
@@ -1446,15 +1447,20 @@ async def create_backend_stage(
14461447
scaleway_s3: Optional[ScalewayS3BackendConfig] = None,
14471448
scaleway_lb: Optional[ScalewayLbBackendConfig] = None,
14481449
pipeline_id: str,
1450+
scaleway_serverless_container: Optional[
1451+
ScalewayServerlessContainerBackendConfig
1452+
] = None,
14491453
) -> BackendStage:
14501454
"""
14511455
Create backend stage.
14521456
Create a new backend stage. You must specify either a `scaleway_s3` (for a Scaleway Object Storage bucket) or `scaleway_lb` (for a Scaleway Load Balancer) field to configure the origin.
14531457
:param scaleway_s3: Scaleway Object Storage origin bucket (S3) linked to the backend stage.
1454-
One-Of ('backend_config'): at most one of 'scaleway_s3', 'scaleway_lb' could be set.
1458+
One-Of ('backend_config'): at most one of 'scaleway_s3', 'scaleway_lb', 'scaleway_serverless_container' could be set.
14551459
:param scaleway_lb: Scaleway Load Balancer origin linked to the backend stage.
1456-
One-Of ('backend_config'): at most one of 'scaleway_s3', 'scaleway_lb' could be set.
1460+
One-Of ('backend_config'): at most one of 'scaleway_s3', 'scaleway_lb', 'scaleway_serverless_container' could be set.
14571461
:param pipeline_id: Pipeline ID the Backend stage belongs to.
1462+
:param scaleway_serverless_container:
1463+
One-Of ('backend_config'): at most one of 'scaleway_s3', 'scaleway_lb', 'scaleway_serverless_container' could be set.
14581464
:return: :class:`BackendStage <BackendStage>`
14591465
14601466
Usage:
@@ -1475,6 +1481,7 @@ async def create_backend_stage(
14751481
pipeline_id=pipeline_id,
14761482
scaleway_s3=scaleway_s3,
14771483
scaleway_lb=scaleway_lb,
1484+
scaleway_serverless_container=scaleway_serverless_container,
14781485
),
14791486
self.client,
14801487
),
@@ -1521,16 +1528,21 @@ async def update_backend_stage(
15211528
pipeline_id: str,
15221529
scaleway_s3: Optional[ScalewayS3BackendConfig] = None,
15231530
scaleway_lb: Optional[ScalewayLbBackendConfig] = None,
1531+
scaleway_serverless_container: Optional[
1532+
ScalewayServerlessContainerBackendConfig
1533+
] = None,
15241534
) -> BackendStage:
15251535
"""
15261536
Update backend stage.
15271537
Update the parameters of an existing backend stage, specified by its `backend_stage_id`.
15281538
:param backend_stage_id: ID of the backend stage to update.
15291539
:param pipeline_id: Pipeline ID the Backend stage belongs to.
15301540
:param scaleway_s3: Scaleway Object Storage origin bucket (S3) linked to the backend stage.
1531-
One-Of ('backend_config'): at most one of 'scaleway_s3', 'scaleway_lb' could be set.
1541+
One-Of ('backend_config'): at most one of 'scaleway_s3', 'scaleway_lb', 'scaleway_serverless_container' could be set.
15321542
:param scaleway_lb: Scaleway Load Balancer origin linked to the backend stage.
1533-
One-Of ('backend_config'): at most one of 'scaleway_s3', 'scaleway_lb' could be set.
1543+
One-Of ('backend_config'): at most one of 'scaleway_s3', 'scaleway_lb', 'scaleway_serverless_container' could be set.
1544+
:param scaleway_serverless_container:
1545+
One-Of ('backend_config'): at most one of 'scaleway_s3', 'scaleway_lb', 'scaleway_serverless_container' could be set.
15341546
:return: :class:`BackendStage <BackendStage>`
15351547
15361548
Usage:
@@ -1555,6 +1567,7 @@ async def update_backend_stage(
15551567
pipeline_id=pipeline_id,
15561568
scaleway_s3=scaleway_s3,
15571569
scaleway_lb=scaleway_lb,
1570+
scaleway_serverless_container=scaleway_serverless_container,
15581571
),
15591572
self.client,
15601573
),

scaleway-async/scaleway_async/edge_services/v1beta1/marshalling.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1756,6 +1756,23 @@ def marshal_ScalewayS3BackendConfig(
17561756
return output
17571757

17581758

1759+
def marshal_ScalewayServerlessContainerBackendConfig(
1760+
request: ScalewayServerlessContainerBackendConfig,
1761+
defaults: ProfileDefaults,
1762+
) -> dict[str, Any]:
1763+
output: dict[str, Any] = {}
1764+
1765+
if request.region is not None:
1766+
output["region"] = request.region
1767+
else:
1768+
output["region"] = defaults.default_region
1769+
1770+
if request.container_id is not None:
1771+
output["container_id"] = request.container_id
1772+
1773+
return output
1774+
1775+
17591776
def marshal_CreateBackendStageRequest(
17601777
request: CreateBackendStageRequest,
17611778
defaults: ProfileDefaults,
@@ -1774,6 +1791,11 @@ def marshal_CreateBackendStageRequest(
17741791
value=request.scaleway_lb,
17751792
marshal_func=marshal_ScalewayLbBackendConfig,
17761793
),
1794+
OneOfPossibility(
1795+
param="scaleway_serverless_container",
1796+
value=request.scaleway_serverless_container,
1797+
marshal_func=marshal_ScalewayServerlessContainerBackendConfig,
1798+
),
17771799
]
17781800
),
17791801
)
@@ -2109,6 +2131,11 @@ def marshal_UpdateBackendStageRequest(
21092131
value=request.scaleway_lb,
21102132
marshal_func=marshal_ScalewayLbBackendConfig,
21112133
),
2134+
OneOfPossibility(
2135+
param="scaleway_serverless_container",
2136+
value=request.scaleway_serverless_container,
2137+
marshal_func=marshal_ScalewayServerlessContainerBackendConfig,
2138+
),
21122139
]
21132140
),
21142141
)

scaleway-async/scaleway_async/edge_services/v1beta1/types.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -864,6 +864,10 @@ class CreateBackendStageRequest:
864864

865865
scaleway_lb: Optional[ScalewayLbBackendConfig] = None
866866

867+
scaleway_serverless_container: Optional[
868+
ScalewayServerlessContainerBackendConfig
869+
] = None
870+
867871

868872
@dataclass
869873
class CreateCacheStageRequest:
@@ -1730,6 +1734,10 @@ class UpdateBackendStageRequest:
17301734

17311735
scaleway_lb: Optional[ScalewayLbBackendConfig] = None
17321736

1737+
scaleway_serverless_container: Optional[
1738+
ScalewayServerlessContainerBackendConfig
1739+
] = None
1740+
17331741

17341742
@dataclass
17351743
class UpdateCacheStageRequest:

scaleway/scaleway/edge_services/v1beta1/api.py

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@
6868
ScalewayLb,
6969
ScalewayLbBackendConfig,
7070
ScalewayS3BackendConfig,
71+
ScalewayServerlessContainerBackendConfig,
7172
SelectPlanRequest,
7273
SetHeadStageRequest,
7374
SetHeadStageRequestAddNewHeadStage,
@@ -1444,15 +1445,20 @@ def create_backend_stage(
14441445
scaleway_s3: Optional[ScalewayS3BackendConfig] = None,
14451446
scaleway_lb: Optional[ScalewayLbBackendConfig] = None,
14461447
pipeline_id: str,
1448+
scaleway_serverless_container: Optional[
1449+
ScalewayServerlessContainerBackendConfig
1450+
] = None,
14471451
) -> BackendStage:
14481452
"""
14491453
Create backend stage.
14501454
Create a new backend stage. You must specify either a `scaleway_s3` (for a Scaleway Object Storage bucket) or `scaleway_lb` (for a Scaleway Load Balancer) field to configure the origin.
14511455
:param scaleway_s3: Scaleway Object Storage origin bucket (S3) linked to the backend stage.
1452-
One-Of ('backend_config'): at most one of 'scaleway_s3', 'scaleway_lb' could be set.
1456+
One-Of ('backend_config'): at most one of 'scaleway_s3', 'scaleway_lb', 'scaleway_serverless_container' could be set.
14531457
:param scaleway_lb: Scaleway Load Balancer origin linked to the backend stage.
1454-
One-Of ('backend_config'): at most one of 'scaleway_s3', 'scaleway_lb' could be set.
1458+
One-Of ('backend_config'): at most one of 'scaleway_s3', 'scaleway_lb', 'scaleway_serverless_container' could be set.
14551459
:param pipeline_id: Pipeline ID the Backend stage belongs to.
1460+
:param scaleway_serverless_container:
1461+
One-Of ('backend_config'): at most one of 'scaleway_s3', 'scaleway_lb', 'scaleway_serverless_container' could be set.
14561462
:return: :class:`BackendStage <BackendStage>`
14571463
14581464
Usage:
@@ -1473,6 +1479,7 @@ def create_backend_stage(
14731479
pipeline_id=pipeline_id,
14741480
scaleway_s3=scaleway_s3,
14751481
scaleway_lb=scaleway_lb,
1482+
scaleway_serverless_container=scaleway_serverless_container,
14761483
),
14771484
self.client,
14781485
),
@@ -1519,16 +1526,21 @@ def update_backend_stage(
15191526
pipeline_id: str,
15201527
scaleway_s3: Optional[ScalewayS3BackendConfig] = None,
15211528
scaleway_lb: Optional[ScalewayLbBackendConfig] = None,
1529+
scaleway_serverless_container: Optional[
1530+
ScalewayServerlessContainerBackendConfig
1531+
] = None,
15221532
) -> BackendStage:
15231533
"""
15241534
Update backend stage.
15251535
Update the parameters of an existing backend stage, specified by its `backend_stage_id`.
15261536
:param backend_stage_id: ID of the backend stage to update.
15271537
:param pipeline_id: Pipeline ID the Backend stage belongs to.
15281538
:param scaleway_s3: Scaleway Object Storage origin bucket (S3) linked to the backend stage.
1529-
One-Of ('backend_config'): at most one of 'scaleway_s3', 'scaleway_lb' could be set.
1539+
One-Of ('backend_config'): at most one of 'scaleway_s3', 'scaleway_lb', 'scaleway_serverless_container' could be set.
15301540
:param scaleway_lb: Scaleway Load Balancer origin linked to the backend stage.
1531-
One-Of ('backend_config'): at most one of 'scaleway_s3', 'scaleway_lb' could be set.
1541+
One-Of ('backend_config'): at most one of 'scaleway_s3', 'scaleway_lb', 'scaleway_serverless_container' could be set.
1542+
:param scaleway_serverless_container:
1543+
One-Of ('backend_config'): at most one of 'scaleway_s3', 'scaleway_lb', 'scaleway_serverless_container' could be set.
15321544
:return: :class:`BackendStage <BackendStage>`
15331545
15341546
Usage:
@@ -1553,6 +1565,7 @@ def update_backend_stage(
15531565
pipeline_id=pipeline_id,
15541566
scaleway_s3=scaleway_s3,
15551567
scaleway_lb=scaleway_lb,
1568+
scaleway_serverless_container=scaleway_serverless_container,
15561569
),
15571570
self.client,
15581571
),

scaleway/scaleway/edge_services/v1beta1/marshalling.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1756,6 +1756,23 @@ def marshal_ScalewayS3BackendConfig(
17561756
return output
17571757

17581758

1759+
def marshal_ScalewayServerlessContainerBackendConfig(
1760+
request: ScalewayServerlessContainerBackendConfig,
1761+
defaults: ProfileDefaults,
1762+
) -> dict[str, Any]:
1763+
output: dict[str, Any] = {}
1764+
1765+
if request.region is not None:
1766+
output["region"] = request.region
1767+
else:
1768+
output["region"] = defaults.default_region
1769+
1770+
if request.container_id is not None:
1771+
output["container_id"] = request.container_id
1772+
1773+
return output
1774+
1775+
17591776
def marshal_CreateBackendStageRequest(
17601777
request: CreateBackendStageRequest,
17611778
defaults: ProfileDefaults,
@@ -1774,6 +1791,11 @@ def marshal_CreateBackendStageRequest(
17741791
value=request.scaleway_lb,
17751792
marshal_func=marshal_ScalewayLbBackendConfig,
17761793
),
1794+
OneOfPossibility(
1795+
param="scaleway_serverless_container",
1796+
value=request.scaleway_serverless_container,
1797+
marshal_func=marshal_ScalewayServerlessContainerBackendConfig,
1798+
),
17771799
]
17781800
),
17791801
)
@@ -2109,6 +2131,11 @@ def marshal_UpdateBackendStageRequest(
21092131
value=request.scaleway_lb,
21102132
marshal_func=marshal_ScalewayLbBackendConfig,
21112133
),
2134+
OneOfPossibility(
2135+
param="scaleway_serverless_container",
2136+
value=request.scaleway_serverless_container,
2137+
marshal_func=marshal_ScalewayServerlessContainerBackendConfig,
2138+
),
21122139
]
21132140
),
21142141
)

scaleway/scaleway/edge_services/v1beta1/types.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -864,6 +864,10 @@ class CreateBackendStageRequest:
864864

865865
scaleway_lb: Optional[ScalewayLbBackendConfig] = None
866866

867+
scaleway_serverless_container: Optional[
868+
ScalewayServerlessContainerBackendConfig
869+
] = None
870+
867871

868872
@dataclass
869873
class CreateCacheStageRequest:
@@ -1730,6 +1734,10 @@ class UpdateBackendStageRequest:
17301734

17311735
scaleway_lb: Optional[ScalewayLbBackendConfig] = None
17321736

1737+
scaleway_serverless_container: Optional[
1738+
ScalewayServerlessContainerBackendConfig
1739+
] = None
1740+
17331741

17341742
@dataclass
17351743
class UpdateCacheStageRequest:

0 commit comments

Comments
 (0)