Skip to content

Commit 400195e

Browse files
fix(product_catalog): update environmental impact (scaleway#2527)
Co-authored-by: Jonathan R. <[email protected]>
1 parent 56b92d5 commit 400195e

File tree

1 file changed

+128
-8
lines changed

1 file changed

+128
-8
lines changed

api/product_catalog/v2alpha1/product_catalog_sdk.go

Lines changed: 128 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,117 @@ func (enum *PublicCatalogProductPropertiesHardwareCPUArch) UnmarshalJSON(data []
198198
return nil
199199
}
200200

201+
type PublicCatalogProductUnitOfMeasureCountableUnit string
202+
203+
const (
204+
// Unknown countable unit.
205+
PublicCatalogProductUnitOfMeasureCountableUnitUnknownCountableUnit = PublicCatalogProductUnitOfMeasureCountableUnit("unknown_countable_unit")
206+
// Chunk.
207+
PublicCatalogProductUnitOfMeasureCountableUnitChunk = PublicCatalogProductUnitOfMeasureCountableUnit("chunk")
208+
// Core.
209+
PublicCatalogProductUnitOfMeasureCountableUnitCore = PublicCatalogProductUnitOfMeasureCountableUnit("core")
210+
// Currency.
211+
PublicCatalogProductUnitOfMeasureCountableUnitCurrency = PublicCatalogProductUnitOfMeasureCountableUnit("currency")
212+
// Device.
213+
PublicCatalogProductUnitOfMeasureCountableUnitDevice = PublicCatalogProductUnitOfMeasureCountableUnit("device")
214+
// Domain.
215+
PublicCatalogProductUnitOfMeasureCountableUnitDomain = PublicCatalogProductUnitOfMeasureCountableUnit("domain")
216+
// Email.
217+
PublicCatalogProductUnitOfMeasureCountableUnitEmail = PublicCatalogProductUnitOfMeasureCountableUnit("email")
218+
// GB/s.
219+
PublicCatalogProductUnitOfMeasureCountableUnitGbS = PublicCatalogProductUnitOfMeasureCountableUnit("gb_s")
220+
// Gigabyte.
221+
PublicCatalogProductUnitOfMeasureCountableUnitGigabyte = PublicCatalogProductUnitOfMeasureCountableUnit("gigabyte")
222+
// Hour.
223+
PublicCatalogProductUnitOfMeasureCountableUnitHour = PublicCatalogProductUnitOfMeasureCountableUnit("hour")
224+
// IOPS gigabyte.
225+
PublicCatalogProductUnitOfMeasureCountableUnitIopsGigabyte = PublicCatalogProductUnitOfMeasureCountableUnit("iops_gigabyte")
226+
// IP.
227+
PublicCatalogProductUnitOfMeasureCountableUnitIP = PublicCatalogProductUnitOfMeasureCountableUnit("ip")
228+
// Month.
229+
PublicCatalogProductUnitOfMeasureCountableUnitMonth = PublicCatalogProductUnitOfMeasureCountableUnit("month")
230+
// Node.
231+
PublicCatalogProductUnitOfMeasureCountableUnitNode = PublicCatalogProductUnitOfMeasureCountableUnit("node")
232+
// Plan.
233+
PublicCatalogProductUnitOfMeasureCountableUnitPlan = PublicCatalogProductUnitOfMeasureCountableUnit("plan")
234+
// Query.
235+
PublicCatalogProductUnitOfMeasureCountableUnitQuery = PublicCatalogProductUnitOfMeasureCountableUnit("query")
236+
// Request.
237+
PublicCatalogProductUnitOfMeasureCountableUnitRequest = PublicCatalogProductUnitOfMeasureCountableUnit("request")
238+
// Session.
239+
PublicCatalogProductUnitOfMeasureCountableUnitSession = PublicCatalogProductUnitOfMeasureCountableUnit("session")
240+
// VCPU/s.
241+
PublicCatalogProductUnitOfMeasureCountableUnitVcpuS = PublicCatalogProductUnitOfMeasureCountableUnit("vcpu_s")
242+
// Version.
243+
PublicCatalogProductUnitOfMeasureCountableUnitVersion = PublicCatalogProductUnitOfMeasureCountableUnit("version")
244+
// Year.
245+
PublicCatalogProductUnitOfMeasureCountableUnitYear = PublicCatalogProductUnitOfMeasureCountableUnit("year")
246+
// Key.
247+
PublicCatalogProductUnitOfMeasureCountableUnitKey = PublicCatalogProductUnitOfMeasureCountableUnit("key")
248+
// Token.
249+
PublicCatalogProductUnitOfMeasureCountableUnitToken = PublicCatalogProductUnitOfMeasureCountableUnit("token")
250+
// Minute.
251+
PublicCatalogProductUnitOfMeasureCountableUnitMinute = PublicCatalogProductUnitOfMeasureCountableUnit("minute")
252+
// The installation of a resource (software or hardware).
253+
PublicCatalogProductUnitOfMeasureCountableUnitSetup = PublicCatalogProductUnitOfMeasureCountableUnit("setup")
254+
// Day.
255+
PublicCatalogProductUnitOfMeasureCountableUnitDay = PublicCatalogProductUnitOfMeasureCountableUnit("day")
256+
)
257+
258+
func (enum PublicCatalogProductUnitOfMeasureCountableUnit) String() string {
259+
if enum == "" {
260+
// return default value if empty
261+
return string(PublicCatalogProductUnitOfMeasureCountableUnitUnknownCountableUnit)
262+
}
263+
return string(enum)
264+
}
265+
266+
func (enum PublicCatalogProductUnitOfMeasureCountableUnit) Values() []PublicCatalogProductUnitOfMeasureCountableUnit {
267+
return []PublicCatalogProductUnitOfMeasureCountableUnit{
268+
"unknown_countable_unit",
269+
"chunk",
270+
"core",
271+
"currency",
272+
"device",
273+
"domain",
274+
"email",
275+
"gb_s",
276+
"gigabyte",
277+
"hour",
278+
"iops_gigabyte",
279+
"ip",
280+
"month",
281+
"node",
282+
"plan",
283+
"query",
284+
"request",
285+
"session",
286+
"vcpu_s",
287+
"version",
288+
"year",
289+
"key",
290+
"token",
291+
"minute",
292+
"setup",
293+
"day",
294+
}
295+
}
296+
297+
func (enum PublicCatalogProductUnitOfMeasureCountableUnit) MarshalJSON() ([]byte, error) {
298+
return []byte(fmt.Sprintf(`"%s"`, enum)), nil
299+
}
300+
301+
func (enum *PublicCatalogProductUnitOfMeasureCountableUnit) UnmarshalJSON(data []byte) error {
302+
tmp := ""
303+
304+
if err := json.Unmarshal(data, &tmp); err != nil {
305+
return err
306+
}
307+
308+
*enum = PublicCatalogProductUnitOfMeasureCountableUnit(PublicCatalogProductUnitOfMeasureCountableUnit(tmp).String())
309+
return nil
310+
}
311+
201312
// PublicCatalogProductPropertiesHardwareCPUPhysical: public catalog product properties hardware cpu physical.
202313
type PublicCatalogProductPropertiesHardwareCPUPhysical struct {
203314
// Sockets: the number of sockets of the CPU.
@@ -346,12 +457,10 @@ type PublicCatalogProductPropertiesInstance struct {
346457
Range string `json:"range"`
347458
}
348459

349-
// PublicCatalogProductEnvironmentalImpact: public catalog product environmental impact.
350-
type PublicCatalogProductEnvironmentalImpact struct {
351-
// KgCo2Equivalent: kilograms of CO2 that would need to be released to produce the equivalent warming impact.
460+
// PublicCatalogProductEnvironmentalImpactEstimation: public catalog product environmental impact estimation.
461+
type PublicCatalogProductEnvironmentalImpactEstimation struct {
352462
KgCo2Equivalent *float32 `json:"kg_co2_equivalent"`
353463

354-
// M3WaterUsage: cubic meters of water used.
355464
M3WaterUsage *float32 `json:"m3_water_usage"`
356465
}
357466

@@ -379,8 +488,8 @@ type PublicCatalogProductPrice struct {
379488
// RetailPrice: the retail price of the product.
380489
RetailPrice *scw.Money `json:"retail_price"`
381490

382-
// UnitOfMeasure: the unit of measure of the price.
383-
UnitOfMeasure *PublicCatalogProductPriceUnitOfMeasure `json:"unit_of_measure"`
491+
// Deprecated: UnitOfMeasure: the unit of measure of the price (deprecated).
492+
UnitOfMeasure *PublicCatalogProductPriceUnitOfMeasure `json:"unit_of_measure,omitempty"`
384493
}
385494

386495
// PublicCatalogProductProperties: public catalog product properties.
@@ -405,6 +514,14 @@ type PublicCatalogProductProperties struct {
405514
Instance *PublicCatalogProductPropertiesInstance `json:"instance,omitempty"`
406515
}
407516

517+
// PublicCatalogProductUnitOfMeasure: public catalog product unit of measure.
518+
type PublicCatalogProductUnitOfMeasure struct {
519+
// Unit: default value: unknown_countable_unit
520+
Unit PublicCatalogProductUnitOfMeasureCountableUnit `json:"unit"`
521+
522+
Size uint64 `json:"size"`
523+
}
524+
408525
// PublicCatalogProduct: public catalog product.
409526
type PublicCatalogProduct struct {
410527
// Sku: the unique identifier of the product.
@@ -431,8 +548,11 @@ type PublicCatalogProduct struct {
431548
// Properties: the properties of the product.
432549
Properties *PublicCatalogProductProperties `json:"properties"`
433550

434-
// EnvironmentalImpact: the environmental impact of the product.
435-
EnvironmentalImpact *PublicCatalogProductEnvironmentalImpact `json:"environmental_impact"`
551+
// EnvironmentalImpactEstimation: the environmental impact estimation of the product.
552+
EnvironmentalImpactEstimation *PublicCatalogProductEnvironmentalImpactEstimation `json:"environmental_impact_estimation"`
553+
554+
// UnitOfMeasure: the unit of measure of the product.
555+
UnitOfMeasure *PublicCatalogProductUnitOfMeasure `json:"unit_of_measure"`
436556
}
437557

438558
// ListPublicCatalogProductsResponse: list public catalog products response.

0 commit comments

Comments
 (0)