Skip to content

fix(product_catalog): update environmental impact #2032

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Apr 25, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ export type {
ListPublicCatalogProductsResponse,
PublicCatalogApiListPublicCatalogProductsRequest,
PublicCatalogProduct,
PublicCatalogProductEnvironmentalImpact,
PublicCatalogProductEnvironmentalImpactEstimation,
PublicCatalogProductLocality,
PublicCatalogProductPrice,
PublicCatalogProductPriceUnitOfMeasure,
Expand All @@ -25,5 +25,7 @@ export type {
PublicCatalogProductPropertiesHardwareRAM,
PublicCatalogProductPropertiesHardwareStorage,
PublicCatalogProductPropertiesInstance,
PublicCatalogProductUnitOfMeasure,
PublicCatalogProductUnitOfMeasureCountableUnit,
} from './types.gen'
export * as ValidationRules from './validation-rules.gen'
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {
import type {
ListPublicCatalogProductsResponse,
PublicCatalogProduct,
PublicCatalogProductEnvironmentalImpact,
PublicCatalogProductEnvironmentalImpactEstimation,
PublicCatalogProductLocality,
PublicCatalogProductPrice,
PublicCatalogProductPriceUnitOfMeasure,
Expand All @@ -25,6 +25,7 @@ import type {
PublicCatalogProductPropertiesHardwareRAM,
PublicCatalogProductPropertiesHardwareStorage,
PublicCatalogProductPropertiesInstance,
PublicCatalogProductUnitOfMeasure,
} from './types.gen'

const unmarshalPublicCatalogProductPropertiesHardwareCPUPhysical = (
Expand Down Expand Up @@ -247,19 +248,19 @@ const unmarshalPublicCatalogProductPropertiesInstance = (
} as PublicCatalogProductPropertiesInstance
}

const unmarshalPublicCatalogProductEnvironmentalImpact = (
const unmarshalPublicCatalogProductEnvironmentalImpactEstimation = (
data: unknown,
): PublicCatalogProductEnvironmentalImpact => {
): PublicCatalogProductEnvironmentalImpactEstimation => {
if (!isJSONObject(data)) {
throw new TypeError(
`Unmarshalling the type 'PublicCatalogProductEnvironmentalImpact' failed as data isn't a dictionary.`,
`Unmarshalling the type 'PublicCatalogProductEnvironmentalImpactEstimation' failed as data isn't a dictionary.`,
)
}

return {
kgCo2Equivalent: data.kg_co2_equivalent,
m3WaterUsage: data.m3_water_usage,
} as PublicCatalogProductEnvironmentalImpact
} as PublicCatalogProductEnvironmentalImpactEstimation
}

const unmarshalPublicCatalogProductLocality = (
Expand Down Expand Up @@ -326,6 +327,21 @@ const unmarshalPublicCatalogProductProperties = (
} as PublicCatalogProductProperties
}

const unmarshalPublicCatalogProductUnitOfMeasure = (
data: unknown,
): PublicCatalogProductUnitOfMeasure => {
if (!isJSONObject(data)) {
throw new TypeError(
`Unmarshalling the type 'PublicCatalogProductUnitOfMeasure' failed as data isn't a dictionary.`,
)
}

return {
size: data.size,
unit: data.unit,
} as PublicCatalogProductUnitOfMeasure
}

const unmarshalPublicCatalogProduct = (data: unknown): PublicCatalogProduct => {
if (!isJSONObject(data)) {
throw new TypeError(
Expand All @@ -335,9 +351,9 @@ const unmarshalPublicCatalogProduct = (data: unknown): PublicCatalogProduct => {

return {
description: data.description,
environmentalImpact: data.environmental_impact
? unmarshalPublicCatalogProductEnvironmentalImpact(
data.environmental_impact,
environmentalImpactEstimation: data.environmental_impact_estimation
? unmarshalPublicCatalogProductEnvironmentalImpactEstimation(
data.environmental_impact_estimation,
)
: undefined,
locality: data.locality
Expand All @@ -352,6 +368,9 @@ const unmarshalPublicCatalogProduct = (data: unknown): PublicCatalogProduct => {
: undefined,
serviceCategory: data.service_category,
sku: data.sku,
unitOfMeasure: data.unit_of_measure
? unmarshalPublicCatalogProductUnitOfMeasure(data.unit_of_measure)
: undefined,
variant: data.variant,
} as PublicCatalogProduct
}
Expand Down
51 changes: 41 additions & 10 deletions packages_generated/product_catalog/src/v2alpha1/types.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,34 @@ export type PublicCatalogProductPropertiesHardwareCPUArch =
| 'riscv'
| 'apple_silicon'

export type PublicCatalogProductUnitOfMeasureCountableUnit =
| 'unknown_countable_unit'
| 'chunk'
| 'core'
| 'currency'
| 'device'
| 'domain'
| 'email'
| 'gb_s'
| 'gigabyte'
| 'hour'
| 'iops_gigabyte'
| 'ip'
| 'month'
| 'node'
| 'plan'
| 'query'
| 'request'
| 'session'
| 'vcpu_s'
| 'version'
| 'year'
| 'key'
| 'token'
| 'minute'
| 'setup'
| 'day'

export interface PublicCatalogProductPropertiesHardwareCPUPhysical {
/**
* The number of sockets of the CPU.
Expand Down Expand Up @@ -224,14 +252,8 @@ export interface PublicCatalogProductPropertiesInstance {
range: string
}

export interface PublicCatalogProductEnvironmentalImpact {
/**
* Kilograms of CO2 that would need to be released to produce the equivalent warming impact.
*/
export interface PublicCatalogProductEnvironmentalImpactEstimation {
kgCo2Equivalent?: number
/**
* Cubic meters of water used.
*/
m3WaterUsage?: number
}

Expand Down Expand Up @@ -268,7 +290,7 @@ export interface PublicCatalogProductPrice {
*/
retailPrice?: Money
/**
* The unit of measure of the price.
* @deprecated The unit of measure of the price (deprecated).
*/
unitOfMeasure?: PublicCatalogProductPriceUnitOfMeasure
}
Expand Down Expand Up @@ -304,6 +326,11 @@ export interface PublicCatalogProductProperties {
instance?: PublicCatalogProductPropertiesInstance
}

export interface PublicCatalogProductUnitOfMeasure {
unit: PublicCatalogProductUnitOfMeasureCountableUnit
size: number
}

export interface PublicCatalogProduct {
/**
* The unique identifier of the product.
Expand Down Expand Up @@ -338,9 +365,13 @@ export interface PublicCatalogProduct {
*/
properties?: PublicCatalogProductProperties
/**
* The environmental impact of the product.
* The environmental impact estimation of the product.
*/
environmentalImpactEstimation?: PublicCatalogProductEnvironmentalImpactEstimation
/**
* The unit of measure of the product.
*/
environmentalImpact?: PublicCatalogProductEnvironmentalImpact
unitOfMeasure?: PublicCatalogProductUnitOfMeasure
}

export interface ListPublicCatalogProductsResponse {
Expand Down
Loading