@@ -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.
202313type 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.
409526type 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