Skip to content

Commit c994040

Browse files
authored
feat(product_catalog): add scratch storage price (scaleway#1634)
1 parent ed40d86 commit c994040

6 files changed

Lines changed: 304 additions & 0 deletions

File tree

scaleway-async/scaleway_async/product_catalog/v2alpha1/__init__.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from .types import PublicCatalogProductProductBadge
66
from .types import PublicCatalogProductPropertiesGenerativeApisConsumptionMode
77
from .types import PublicCatalogProductPropertiesHardwareCPUArch
8+
from .types import PublicCatalogProductPropertiesManagedMongoDBStorageTypeStorageClass
89
from .types import (
910
PublicCatalogProductPropertiesManagedRelationalDatabaseStorageTypeStorageClass,
1011
)
@@ -25,6 +26,9 @@
2526
from .types import PublicCatalogProductPropertiesKubernetesKapsuleControlPlaneType
2627
from .types import PublicCatalogProductPropertiesKubernetesKosmosControlPlaneType
2728
from .types import PublicCatalogProductPropertiesKubernetesKosmosNodeType
29+
from .types import PublicCatalogProductPropertiesManagedMongoDBManagementType
30+
from .types import PublicCatalogProductPropertiesManagedMongoDBNodeType
31+
from .types import PublicCatalogProductPropertiesManagedMongoDBStorageType
2832
from .types import PublicCatalogProductPropertiesManagedRelationalDatabaseManagementType
2933
from .types import PublicCatalogProductPropertiesManagedRelationalDatabaseMultiAzType
3034
from .types import PublicCatalogProductPropertiesManagedRelationalDatabaseNodeType
@@ -44,6 +48,7 @@
4448
from .types import PublicCatalogProductPropertiesKubernetes
4549
from .types import PublicCatalogProductPropertiesLoadBalancer
4650
from .types import PublicCatalogProductPropertiesManagedInference
51+
from .types import PublicCatalogProductPropertiesManagedMongoDB
4752
from .types import PublicCatalogProductPropertiesManagedRedisDatabase
4853
from .types import PublicCatalogProductPropertiesManagedRelationalDatabase
4954
from .types import PublicCatalogProductPropertiesObjectStorage
@@ -64,6 +69,7 @@
6469
"PublicCatalogProductProductBadge",
6570
"PublicCatalogProductPropertiesGenerativeApisConsumptionMode",
6671
"PublicCatalogProductPropertiesHardwareCPUArch",
72+
"PublicCatalogProductPropertiesManagedMongoDBStorageTypeStorageClass",
6773
"PublicCatalogProductPropertiesManagedRelationalDatabaseStorageTypeStorageClass",
6874
"PublicCatalogProductPropertiesObjectStorageClassTypeStorageClass",
6975
"PublicCatalogProductPropertiesObjectStorageInternetTrafficTypeTrafficType",
@@ -80,6 +86,9 @@
8086
"PublicCatalogProductPropertiesKubernetesKapsuleControlPlaneType",
8187
"PublicCatalogProductPropertiesKubernetesKosmosControlPlaneType",
8288
"PublicCatalogProductPropertiesKubernetesKosmosNodeType",
89+
"PublicCatalogProductPropertiesManagedMongoDBManagementType",
90+
"PublicCatalogProductPropertiesManagedMongoDBNodeType",
91+
"PublicCatalogProductPropertiesManagedMongoDBStorageType",
8392
"PublicCatalogProductPropertiesManagedRelationalDatabaseManagementType",
8493
"PublicCatalogProductPropertiesManagedRelationalDatabaseMultiAzType",
8594
"PublicCatalogProductPropertiesManagedRelationalDatabaseNodeType",
@@ -99,6 +108,7 @@
99108
"PublicCatalogProductPropertiesKubernetes",
100109
"PublicCatalogProductPropertiesLoadBalancer",
101110
"PublicCatalogProductPropertiesManagedInference",
111+
"PublicCatalogProductPropertiesManagedMongoDB",
102112
"PublicCatalogProductPropertiesManagedRedisDatabase",
103113
"PublicCatalogProductPropertiesManagedRelationalDatabase",
104114
"PublicCatalogProductPropertiesObjectStorage",

scaleway-async/scaleway_async/product_catalog/v2alpha1/marshalling.py

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from .types import (
1111
PublicCatalogProductProductBadge,
1212
PublicCatalogProductPropertiesHardwareCPUArch,
13+
PublicCatalogProductPropertiesManagedMongoDBStorageTypeStorageClass,
1314
PublicCatalogProductPropertiesManagedRelationalDatabaseStorageTypeStorageClass,
1415
PublicCatalogProductPropertiesObjectStorageClassTypeStorageClass,
1516
PublicCatalogProductPropertiesObjectStorageInternetTrafficTypeTrafficType,
@@ -25,6 +26,9 @@
2526
PublicCatalogProductPropertiesKubernetesKapsuleControlPlaneType,
2627
PublicCatalogProductPropertiesKubernetesKosmosControlPlaneType,
2728
PublicCatalogProductPropertiesKubernetesKosmosNodeType,
29+
PublicCatalogProductPropertiesManagedMongoDBManagementType,
30+
PublicCatalogProductPropertiesManagedMongoDBNodeType,
31+
PublicCatalogProductPropertiesManagedMongoDBStorageType,
2832
PublicCatalogProductPropertiesManagedRelationalDatabaseManagementType,
2933
PublicCatalogProductPropertiesManagedRelationalDatabaseMultiAzType,
3034
PublicCatalogProductPropertiesManagedRelationalDatabaseNodeType,
@@ -44,6 +48,7 @@
4448
PublicCatalogProductPropertiesKubernetes,
4549
PublicCatalogProductPropertiesLoadBalancer,
4650
PublicCatalogProductPropertiesManagedInference,
51+
PublicCatalogProductPropertiesManagedMongoDB,
4752
PublicCatalogProductPropertiesManagedRedisDatabase,
4853
PublicCatalogProductPropertiesManagedRelationalDatabase,
4954
PublicCatalogProductPropertiesObjectStorage,
@@ -336,6 +341,53 @@ def unmarshal_PublicCatalogProductPropertiesKubernetesKosmosNodeType(
336341
return PublicCatalogProductPropertiesKubernetesKosmosNodeType(**args)
337342

338343

344+
def unmarshal_PublicCatalogProductPropertiesManagedMongoDBManagementType(
345+
data: Any,
346+
) -> PublicCatalogProductPropertiesManagedMongoDBManagementType:
347+
if not isinstance(data, dict):
348+
raise TypeError(
349+
"Unmarshalling the type 'PublicCatalogProductPropertiesManagedMongoDBManagementType' failed as data isn't a dictionary."
350+
)
351+
352+
args: dict[str, Any] = {}
353+
354+
return PublicCatalogProductPropertiesManagedMongoDBManagementType(**args)
355+
356+
357+
def unmarshal_PublicCatalogProductPropertiesManagedMongoDBNodeType(
358+
data: Any,
359+
) -> PublicCatalogProductPropertiesManagedMongoDBNodeType:
360+
if not isinstance(data, dict):
361+
raise TypeError(
362+
"Unmarshalling the type 'PublicCatalogProductPropertiesManagedMongoDBNodeType' failed as data isn't a dictionary."
363+
)
364+
365+
args: dict[str, Any] = {}
366+
367+
return PublicCatalogProductPropertiesManagedMongoDBNodeType(**args)
368+
369+
370+
def unmarshal_PublicCatalogProductPropertiesManagedMongoDBStorageType(
371+
data: Any,
372+
) -> PublicCatalogProductPropertiesManagedMongoDBStorageType:
373+
if not isinstance(data, dict):
374+
raise TypeError(
375+
"Unmarshalling the type 'PublicCatalogProductPropertiesManagedMongoDBStorageType' failed as data isn't a dictionary."
376+
)
377+
378+
args: dict[str, Any] = {}
379+
380+
field = data.get("storage_class", None)
381+
if field is not None:
382+
args["storage_class"] = field
383+
else:
384+
args["storage_class"] = (
385+
PublicCatalogProductPropertiesManagedMongoDBStorageTypeStorageClass.UNKNOWN_STORAGE_CLASS
386+
)
387+
388+
return PublicCatalogProductPropertiesManagedMongoDBStorageType(**args)
389+
390+
339391
def unmarshal_PublicCatalogProductPropertiesManagedRelationalDatabaseManagementType(
340392
data: Any,
341393
) -> PublicCatalogProductPropertiesManagedRelationalDatabaseManagementType:
@@ -769,6 +821,43 @@ def unmarshal_PublicCatalogProductPropertiesManagedInference(
769821
return PublicCatalogProductPropertiesManagedInference(**args)
770822

771823

824+
def unmarshal_PublicCatalogProductPropertiesManagedMongoDB(
825+
data: Any,
826+
) -> PublicCatalogProductPropertiesManagedMongoDB:
827+
if not isinstance(data, dict):
828+
raise TypeError(
829+
"Unmarshalling the type 'PublicCatalogProductPropertiesManagedMongoDB' failed as data isn't a dictionary."
830+
)
831+
832+
args: dict[str, Any] = {}
833+
834+
field = data.get("management", None)
835+
if field is not None:
836+
args["management"] = (
837+
unmarshal_PublicCatalogProductPropertiesManagedMongoDBManagementType(field)
838+
)
839+
else:
840+
args["management"] = None
841+
842+
field = data.get("node", None)
843+
if field is not None:
844+
args["node"] = unmarshal_PublicCatalogProductPropertiesManagedMongoDBNodeType(
845+
field
846+
)
847+
else:
848+
args["node"] = None
849+
850+
field = data.get("storage", None)
851+
if field is not None:
852+
args["storage"] = (
853+
unmarshal_PublicCatalogProductPropertiesManagedMongoDBStorageType(field)
854+
)
855+
else:
856+
args["storage"] = None
857+
858+
return PublicCatalogProductPropertiesManagedMongoDB(**args)
859+
860+
772861
def unmarshal_PublicCatalogProductPropertiesManagedRedisDatabase(
773862
data: Any,
774863
) -> PublicCatalogProductPropertiesManagedRedisDatabase:
@@ -1094,6 +1183,14 @@ def unmarshal_PublicCatalogProductProperties(
10941183
else:
10951184
args["managed_relational_database"] = None
10961185

1186+
field = data.get("managed_mongodb", None)
1187+
if field is not None:
1188+
args["managed_mongodb"] = (
1189+
unmarshal_PublicCatalogProductPropertiesManagedMongoDB(field)
1190+
)
1191+
else:
1192+
args["managed_mongodb"] = None
1193+
10971194
return PublicCatalogProductProperties(**args)
10981195

10991196

scaleway-async/scaleway_async/product_catalog/v2alpha1/types.py

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ class ListPublicCatalogProductsRequestProductType(str, Enum, metaclass=StrEnumMe
3333
MANAGED_REDIS_DATABASE = "managed_redis_database"
3434
KUBERNETES = "kubernetes"
3535
MANAGED_RELATIONAL_DATABASE = "managed_relational_database"
36+
MANAGED_MONGODB = "managed_mongodb"
3637

3738
def __str__(self) -> str:
3839
return str(self.value)
@@ -88,6 +89,19 @@ def __str__(self) -> str:
8889
return str(self.value)
8990

9091

92+
class PublicCatalogProductPropertiesManagedMongoDBStorageTypeStorageClass(
93+
str, Enum, metaclass=StrEnumMeta
94+
):
95+
UNKNOWN_STORAGE_CLASS = "unknown_storage_class"
96+
SBS_5K = "sbs_5k"
97+
SBS_5K_SNAPSHOT = "sbs_5k_snapshot"
98+
SBS_15K = "sbs_15k"
99+
SBS_15K_SNAPSHOT = "sbs_15k_snapshot"
100+
101+
def __str__(self) -> str:
102+
return str(self.value)
103+
104+
91105
class PublicCatalogProductPropertiesManagedRelationalDatabaseStorageTypeStorageClass(
92106
str, Enum, metaclass=StrEnumMeta
93107
):
@@ -341,6 +355,24 @@ class PublicCatalogProductPropertiesKubernetesKosmosNodeType:
341355
pass
342356

343357

358+
@dataclass
359+
class PublicCatalogProductPropertiesManagedMongoDBManagementType:
360+
pass
361+
362+
363+
@dataclass
364+
class PublicCatalogProductPropertiesManagedMongoDBNodeType:
365+
pass
366+
367+
368+
@dataclass
369+
class PublicCatalogProductPropertiesManagedMongoDBStorageType:
370+
storage_class: PublicCatalogProductPropertiesManagedMongoDBStorageTypeStorageClass
371+
"""
372+
The type of Storage class.
373+
"""
374+
375+
344376
@dataclass
345377
class PublicCatalogProductPropertiesManagedRelationalDatabaseManagementType:
346378
pass
@@ -536,6 +568,17 @@ class PublicCatalogProductPropertiesManagedInference:
536568
"""
537569

538570

571+
@dataclass
572+
class PublicCatalogProductPropertiesManagedMongoDB:
573+
management: Optional[PublicCatalogProductPropertiesManagedMongoDBManagementType] = (
574+
None
575+
)
576+
577+
node: Optional[PublicCatalogProductPropertiesManagedMongoDBNodeType] = None
578+
579+
storage: Optional[PublicCatalogProductPropertiesManagedMongoDBStorageType] = None
580+
581+
539582
@dataclass
540583
class PublicCatalogProductPropertiesManagedRedisDatabase:
541584
pass
@@ -644,6 +687,8 @@ class PublicCatalogProductProperties:
644687
PublicCatalogProductPropertiesManagedRelationalDatabase
645688
] = None
646689

690+
managed_mongodb: Optional[PublicCatalogProductPropertiesManagedMongoDB] = None
691+
647692

648693
@dataclass
649694
class PublicCatalogProductUnitOfMeasure:

scaleway/scaleway/product_catalog/v2alpha1/__init__.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from .types import PublicCatalogProductProductBadge
66
from .types import PublicCatalogProductPropertiesGenerativeApisConsumptionMode
77
from .types import PublicCatalogProductPropertiesHardwareCPUArch
8+
from .types import PublicCatalogProductPropertiesManagedMongoDBStorageTypeStorageClass
89
from .types import (
910
PublicCatalogProductPropertiesManagedRelationalDatabaseStorageTypeStorageClass,
1011
)
@@ -25,6 +26,9 @@
2526
from .types import PublicCatalogProductPropertiesKubernetesKapsuleControlPlaneType
2627
from .types import PublicCatalogProductPropertiesKubernetesKosmosControlPlaneType
2728
from .types import PublicCatalogProductPropertiesKubernetesKosmosNodeType
29+
from .types import PublicCatalogProductPropertiesManagedMongoDBManagementType
30+
from .types import PublicCatalogProductPropertiesManagedMongoDBNodeType
31+
from .types import PublicCatalogProductPropertiesManagedMongoDBStorageType
2832
from .types import PublicCatalogProductPropertiesManagedRelationalDatabaseManagementType
2933
from .types import PublicCatalogProductPropertiesManagedRelationalDatabaseMultiAzType
3034
from .types import PublicCatalogProductPropertiesManagedRelationalDatabaseNodeType
@@ -44,6 +48,7 @@
4448
from .types import PublicCatalogProductPropertiesKubernetes
4549
from .types import PublicCatalogProductPropertiesLoadBalancer
4650
from .types import PublicCatalogProductPropertiesManagedInference
51+
from .types import PublicCatalogProductPropertiesManagedMongoDB
4752
from .types import PublicCatalogProductPropertiesManagedRedisDatabase
4853
from .types import PublicCatalogProductPropertiesManagedRelationalDatabase
4954
from .types import PublicCatalogProductPropertiesObjectStorage
@@ -64,6 +69,7 @@
6469
"PublicCatalogProductProductBadge",
6570
"PublicCatalogProductPropertiesGenerativeApisConsumptionMode",
6671
"PublicCatalogProductPropertiesHardwareCPUArch",
72+
"PublicCatalogProductPropertiesManagedMongoDBStorageTypeStorageClass",
6773
"PublicCatalogProductPropertiesManagedRelationalDatabaseStorageTypeStorageClass",
6874
"PublicCatalogProductPropertiesObjectStorageClassTypeStorageClass",
6975
"PublicCatalogProductPropertiesObjectStorageInternetTrafficTypeTrafficType",
@@ -80,6 +86,9 @@
8086
"PublicCatalogProductPropertiesKubernetesKapsuleControlPlaneType",
8187
"PublicCatalogProductPropertiesKubernetesKosmosControlPlaneType",
8288
"PublicCatalogProductPropertiesKubernetesKosmosNodeType",
89+
"PublicCatalogProductPropertiesManagedMongoDBManagementType",
90+
"PublicCatalogProductPropertiesManagedMongoDBNodeType",
91+
"PublicCatalogProductPropertiesManagedMongoDBStorageType",
8392
"PublicCatalogProductPropertiesManagedRelationalDatabaseManagementType",
8493
"PublicCatalogProductPropertiesManagedRelationalDatabaseMultiAzType",
8594
"PublicCatalogProductPropertiesManagedRelationalDatabaseNodeType",
@@ -99,6 +108,7 @@
99108
"PublicCatalogProductPropertiesKubernetes",
100109
"PublicCatalogProductPropertiesLoadBalancer",
101110
"PublicCatalogProductPropertiesManagedInference",
111+
"PublicCatalogProductPropertiesManagedMongoDB",
102112
"PublicCatalogProductPropertiesManagedRedisDatabase",
103113
"PublicCatalogProductPropertiesManagedRelationalDatabase",
104114
"PublicCatalogProductPropertiesObjectStorage",

0 commit comments

Comments
 (0)