{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/google-cloud-platform/json-schema/google-cloud-platform-list-skus-response-schema.json",
  "title": "ListSkusResponse",
  "description": "Response message for `ListSkus`.",
  "x-generated": "2026-11-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/google-cloud-platform-cloudbilling-services-api-openapi.yml#/components/schemas/ListSkusResponse",
  "properties": {
    "skus": {
      "description": "The list of public SKUs of the given service.",
      "items": {
        "$ref": "#/$defs/Sku"
      },
      "type": "array"
    },
    "nextPageToken": {
      "description": "A token to retrieve the next page of results. To retrieve the next page, call `ListSkus` again with the `page_token` field set to this value. This field is empty if there are no more results to retrieve.",
      "type": "string"
    }
  },
  "type": "object",
  "$defs": {
    "AggregationInfo": {
      "description": "Represents the aggregation level and interval for pricing of a single SKU.",
      "properties": {
        "aggregationCount": {
          "description": "The number of intervals to aggregate over. Example: If aggregation_level is \"DAILY\" and aggregation_count is 14, aggregation will be over 14 days.",
          "format": "int32",
          "type": "integer"
        },
        "aggregationLevel": {
          "type": "string",
          "enum": [
            "AGGREGATION_LEVEL_UNSPECIFIED",
            "ACCOUNT",
            "PROJECT"
          ]
        },
        "aggregationInterval": {
          "enum": [
            "AGGREGATION_INTERVAL_UNSPECIFIED",
            "DAILY",
            "MONTHLY"
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "Category": {
      "type": "object",
      "properties": {
        "usageType": {
          "type": "string",
          "description": "Represents how the SKU is consumed. Example: \"OnDemand\", \"Preemptible\", \"Commit1Mo\", \"Commit1Yr\" etc."
        },
        "resourceFamily": {
          "type": "string",
          "description": "The type of product the SKU refers to. Example: \"Compute\", \"Storage\", \"Network\", \"ApplicationServices\" etc."
        },
        "resourceGroup": {
          "type": "string",
          "description": "A group classification for related SKUs. Example: \"RAM\", \"GPU\", \"Prediction\", \"Ops\", \"GoogleEgress\" etc."
        },
        "serviceDisplayName": {
          "description": "The display name of the service this SKU belongs to.",
          "type": "string"
        }
      },
      "description": "Represents the category hierarchy of a SKU."
    },
    "GeoTaxonomy": {
      "type": "object",
      "description": "Encapsulates the geographic taxonomy data for a sku.",
      "properties": {
        "regions": {
          "description": "The list of regions associated with a sku. Empty for Global skus, which are associated with all Google Cloud regions.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "type": {
          "description": "The type of Geo Taxonomy: GLOBAL, REGIONAL, or MULTI_REGIONAL.",
          "type": "string",
          "enum": [
            "TYPE_UNSPECIFIED",
            "GLOBAL",
            "REGIONAL",
            "MULTI_REGIONAL"
          ]
        }
      }
    },
    "Money": {
      "description": "Represents an amount of money with its currency type.",
      "type": "object",
      "properties": {
        "units": {
          "description": "The whole units of the amount. For example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar.",
          "type": "string",
          "format": "int64"
        },
        "nanos": {
          "type": "integer",
          "format": "int32",
          "description": "Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000."
        },
        "currencyCode": {
          "type": "string",
          "description": "The three-letter currency code defined in ISO 4217."
        }
      }
    },
    "PricingExpression": {
      "type": "object",
      "description": "Expresses a mathematical pricing formula. For Example:- `usage_unit: GBy` `tiered_rates:` `[start_usage_amount: 20, unit_price: $10]` `[start_usage_amount: 100, unit_price: $5]` The above expresses a pricing formula where the first 20GB is free, the next 80GB is priced at $10 per GB followed by $5 per GB for additional usage.",
      "properties": {
        "usageUnit": {
          "description": "The short hand for unit of usage this pricing is specified in. Example: usage_unit of \"GiBy\" means that usage is specified in \"Gibi Byte\".",
          "type": "string"
        },
        "tieredRates": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/TierRate"
          },
          "description": "The list of tiered rates for this pricing. The total cost is computed by applying each of the tiered rates on usage. This repeated list is sorted by ascending order of start_usage_amount."
        },
        "baseUnitDescription": {
          "type": "string",
          "description": "The base unit in human readable form. Example: \"byte\"."
        },
        "displayQuantity": {
          "type": "number",
          "format": "double",
          "description": "The recommended quantity of units for displaying pricing info. When displaying pricing info it is recommended to display: (unit_price * display_quantity) per display_quantity usage_unit. This field does not affect the pricing formula and is for display purposes only. Example: If the unit_price is \"0.0001 USD\", the usage_unit is \"GB\" and the display_quantity is \"1000\" then the recommended way of displaying the pricing info is \"0.10 USD per 1000 GB\""
        },
        "baseUnit": {
          "description": "The base unit for the SKU which is the unit used in usage exports. Example: \"By\"",
          "type": "string"
        },
        "usageUnitDescription": {
          "type": "string",
          "description": "The unit of usage in human readable form. Example: \"gibi byte\"."
        },
        "baseUnitConversionFactor": {
          "description": "Conversion factor for converting from price per usage_unit to price per base_unit, and start_usage_amount to start_usage_amount in base_unit. unit_price / base_unit_conversion_factor = price per base_unit. start_usage_amount * base_unit_conversion_factor = start_usage_amount in base_unit.",
          "type": "number",
          "format": "double"
        }
      }
    },
    "PricingInfo": {
      "description": "Represents the pricing information for a SKU at a single point of time.",
      "properties": {
        "currencyConversionRate": {
          "type": "number",
          "format": "double",
          "description": "Conversion rate used for currency conversion, from USD to the currency specified in the request. This includes any surcharge collected for billing in non USD currency. If a currency is not specified in the request this defaults to 1.0. Example: USD * currency_conversion_rate = JPY"
        },
        "effectiveTime": {
          "type": "string",
          "description": "The timestamp from which this pricing was effective within the requested time range. This is guaranteed to be greater than or equal to the start_time field in the request and less than the end_time field in the request. If a time range was not specified in the request this field will be equivalent to a time within the last 12 hours, indicating the latest pricing info.",
          "format": "google-datetime"
        },
        "pricingExpression": {
          "$ref": "#/$defs/PricingExpression",
          "description": "Expresses the pricing formula. See `PricingExpression` for an example."
        },
        "summary": {
          "description": "An optional human readable summary of the pricing information, has a maximum length of 256 characters.",
          "type": "string"
        },
        "aggregationInfo": {
          "$ref": "#/$defs/AggregationInfo",
          "description": "Aggregation Info. This can be left unspecified if the pricing expression doesn't require aggregation."
        }
      },
      "type": "object"
    },
    "Sku": {
      "type": "object",
      "properties": {
        "category": {
          "$ref": "#/$defs/Category",
          "description": "The category hierarchy of this SKU, purely for organizational purpose."
        },
        "description": {
          "type": "string",
          "description": "A human readable description of the SKU, has a maximum length of 256 characters."
        },
        "serviceRegions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of service regions this SKU is offered at. Example: \"asia-east1\" Service regions can be found at https://cloud.google.com/about/locations/"
        },
        "name": {
          "description": "The resource name for the SKU. Example: \"services/6F81-5844-456A/skus/D041-B8A1-6E0B\"",
          "type": "string"
        },
        "skuId": {
          "type": "string",
          "description": "The identifier for the SKU. Example: \"D041-B8A1-6E0B\""
        },
        "pricingInfo": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/PricingInfo"
          },
          "description": "A timeline of pricing info for this SKU in chronological order."
        },
        "geoTaxonomy": {
          "$ref": "#/$defs/GeoTaxonomy",
          "description": "The geographic taxonomy for this sku."
        },
        "serviceProviderName": {
          "description": "Identifies the service provider. This is 'Google' for first party services in Google Cloud Platform.",
          "type": "string"
        }
      },
      "description": "Encapsulates a single SKU in Google Cloud"
    },
    "TierRate": {
      "properties": {
        "unitPrice": {
          "$ref": "#/$defs/Money",
          "description": "The price per unit of usage. Example: unit_price of amount $10 indicates that each unit will cost $10."
        },
        "startUsageAmount": {
          "format": "double",
          "description": "Usage is priced at this rate only after this amount. Example: start_usage_amount of 10 indicates that the usage will be priced at the unit_price after the first 10 usage_units.",
          "type": "number"
        }
      },
      "description": "The price rate indicating starting usage and its corresponding price.",
      "type": "object"
    }
  }
}