Skip to content

Commit 6ce0b19

Browse files
authored
feat(product_catalog): add block storage properties to admin and public api (#2225)
1 parent 2513104 commit 6ce0b19

File tree

3 files changed

+41
-4
lines changed

3 files changed

+41
-4
lines changed

packages_generated/product_catalog/src/v2alpha1/index.gen.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ export type {
1212
PublicCatalogProductPrice,
1313
PublicCatalogProductProperties,
1414
PublicCatalogProductPropertiesAppleSilicon,
15+
PublicCatalogProductPropertiesBlockStorage,
1516
PublicCatalogProductPropertiesDedibox,
1617
PublicCatalogProductPropertiesElasticMetal,
1718
PublicCatalogProductPropertiesHardware,

packages_generated/product_catalog/src/v2alpha1/marshalling.gen.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import type {
1414
PublicCatalogProductPrice,
1515
PublicCatalogProductProperties,
1616
PublicCatalogProductPropertiesAppleSilicon,
17+
PublicCatalogProductPropertiesBlockStorage,
1718
PublicCatalogProductPropertiesDedibox,
1819
PublicCatalogProductPropertiesElasticMetal,
1920
PublicCatalogProductPropertiesHardware,
@@ -163,6 +164,21 @@ const unmarshalPublicCatalogProductPropertiesAppleSilicon = (
163164
} as PublicCatalogProductPropertiesAppleSilicon
164165
}
165166

167+
const unmarshalPublicCatalogProductPropertiesBlockStorage = (
168+
data: unknown,
169+
): PublicCatalogProductPropertiesBlockStorage => {
170+
if (!isJSONObject(data)) {
171+
throw new TypeError(
172+
`Unmarshalling the type 'PublicCatalogProductPropertiesBlockStorage' failed as data isn't a dictionary.`,
173+
)
174+
}
175+
176+
return {
177+
maxVolumeSize: data.max_volume_size,
178+
minVolumeSize: data.min_volume_size,
179+
} as PublicCatalogProductPropertiesBlockStorage
180+
}
181+
166182
const unmarshalPublicCatalogProductPropertiesDedibox = (
167183
data: unknown,
168184
): PublicCatalogProductPropertiesDedibox => {
@@ -296,6 +312,9 @@ const unmarshalPublicCatalogProductProperties = (
296312
appleSilicon: data.apple_silicon
297313
? unmarshalPublicCatalogProductPropertiesAppleSilicon(data.apple_silicon)
298314
: undefined,
315+
blockStorage: data.block_storage
316+
? unmarshalPublicCatalogProductPropertiesBlockStorage(data.block_storage)
317+
: undefined,
299318
dedibox: data.dedibox
300319
? unmarshalPublicCatalogProductPropertiesDedibox(data.dedibox)
301320
: undefined,

packages_generated/product_catalog/src/v2alpha1/types.gen.ts

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,17 @@ export interface PublicCatalogProductPropertiesAppleSilicon {
185185
range: string
186186
}
187187

188+
export interface PublicCatalogProductPropertiesBlockStorage {
189+
/**
190+
* The minimum size of storage volume for this product in bytes.
191+
*/
192+
minVolumeSize: number
193+
/**
194+
* The maximum size of storage volume for this product in bytes.
195+
*/
196+
maxVolumeSize: number
197+
}
198+
188199
export interface PublicCatalogProductPropertiesDedibox {
189200
/**
190201
* The range of the Dedibox server.
@@ -284,27 +295,33 @@ export interface PublicCatalogProductProperties {
284295
/**
285296
* The properties of Dedibox products.
286297
*
287-
* One-of ('properties'): at most one of 'dedibox', 'elasticMetal', 'appleSilicon', 'instance' could be set.
298+
* One-of ('properties'): at most one of 'dedibox', 'elasticMetal', 'appleSilicon', 'instance', 'blockStorage' could be set.
288299
*/
289300
dedibox?: PublicCatalogProductPropertiesDedibox
290301
/**
291302
* The properties of Elastic Metal products.
292303
*
293-
* One-of ('properties'): at most one of 'dedibox', 'elasticMetal', 'appleSilicon', 'instance' could be set.
304+
* One-of ('properties'): at most one of 'dedibox', 'elasticMetal', 'appleSilicon', 'instance', 'blockStorage' could be set.
294305
*/
295306
elasticMetal?: PublicCatalogProductPropertiesElasticMetal
296307
/**
297308
* The properties of Apple Silicon products.
298309
*
299-
* One-of ('properties'): at most one of 'dedibox', 'elasticMetal', 'appleSilicon', 'instance' could be set.
310+
* One-of ('properties'): at most one of 'dedibox', 'elasticMetal', 'appleSilicon', 'instance', 'blockStorage' could be set.
300311
*/
301312
appleSilicon?: PublicCatalogProductPropertiesAppleSilicon
302313
/**
303314
* The properties of Instance products.
304315
*
305-
* One-of ('properties'): at most one of 'dedibox', 'elasticMetal', 'appleSilicon', 'instance' could be set.
316+
* One-of ('properties'): at most one of 'dedibox', 'elasticMetal', 'appleSilicon', 'instance', 'blockStorage' could be set.
306317
*/
307318
instance?: PublicCatalogProductPropertiesInstance
319+
/**
320+
* The properties of Block Storage products.
321+
*
322+
* One-of ('properties'): at most one of 'dedibox', 'elasticMetal', 'appleSilicon', 'instance', 'blockStorage' could be set.
323+
*/
324+
blockStorage?: PublicCatalogProductPropertiesBlockStorage
308325
}
309326

310327
export interface PublicCatalogProductUnitOfMeasure {

0 commit comments

Comments
 (0)