- Resource: Sku
- SkuPrice
- InactiveSkuPrice
- ManagedServiceMetricUsageFee
- TieredPrice
- PriceTier
- ComputeEngineLicenseUsageFee
- MachineResource
- MachineResourceRange
- UsageCalculation
- KubernetesEnginePodUsageFee
- PodResource
- PodResourceRange
- UsageCalculation
- AiPlatformManagedModelUsageFee
- AiPlatformManagedModelUsageMetric
- InputTokensMetric
- CacheReadInputTokensMetric
- CacheWriteInputTokensMetric
- OutputTokensMetric
- WebSearchRequestsMetric
- AiPlatformManagedModelEndpointLocation
- PredictionMode
- CombinedRequestInputTokensRange
- ProvisionedThroughputOverage
- AiPlatformProvisionedThroughputFee
- AiPlatformDeployedModelUsageFee
- UsageCalculation
- FlatSubscriptionFee
- Methods
Resource: Sku
Message describing the Sku resource.
Encapsulates and represents a stock keeping unit (SKU), the atomic unit of pricing and billing in Google Cloud. Each customer charge is associated with and originates from exactly one SKU. While the Cloud Marketplace Sku resource shares a close relationship with the public Sku resource in the Cloud Billing API, Cloud Marketplace SKUs are represented here with additional information in an alternative format tailored for use by Cloud Marketplace partners, and are not necessarily public and by extension are not generally visible in the Cloud Billing API or the Google Cloud Public SKUs.
Note on terminology: While the name of the resource derives from the acronym 'SKU' it is named 'Sku' for consistency with other resource type names, and may be rendered variously as 'Sku', 'sku', or 'SKU' across this and other documentation.
| JSON representation |
|---|
{
"name": string,
"description": string,
"skuPriceTimeline": [
{
object ( |
| Fields | |
|---|---|
name |
Output only. Identifier. Name of the SKU. |
description |
Output only. Description of the SKU. |
skuPriceTimeline[] |
Output only. Timeline of the SKU prices, in chronological order by Each entry is active in the time range starting inclusively from the entry's |
SkuPrice
The price of the SKU, active during a particular time range. Prices are in all cases in USD. Customers are billed in the currency of their billing account, subject to the currency conversion rate in effect at the time.
| JSON representation |
|---|
{ "effectiveTime": string, // Union field |
| Fields | |
|---|---|
effectiveTime |
Output only. The start of the time interval during which this price is effective. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
Union field sku_type. The type of the SKU. sku_type can be only one of the following: |
|
inactive |
Output only. The SKU has been disabled and has no price. SKUs, once created and allowed to go into effect, are never deleted. Disabled SKUs may accumulate over the lifetime of a product as the product's pricing evolves, and are retained for historical reference. A SKU in this state generally remains in this state indefinitely, but may be reactivated if needed. Clients must not depend on inactive SKUs remaining inactive. |
managedServiceMetricUsageFee |
Output only. The SKU prices usage reported by the partner for a partner-defined custom billing metric. |
gceLicenseUsageFee |
Output only. The SKU prices usage of a Compute Engine License via a license fee applied to running instances that use the license. |
gkePodUsageFee |
Output only. The SKU prices usage of software deployed on Kubernetes Engine. |
aiPlatformManagedModelUsageFee |
Output only. The SKU prices usage of an AI Platform Managed Model (MaaS). |
aiPlatformProvisionedThroughputFee |
Output only. The SKU prices reservation of AI Platform provisioned throughput. |
aiPlatformDeployedModelUsageFee |
Output only. The SKU prices usage of an AI model deployed on AI Platform. |
flatSubscriptionFee |
Output only. The SKU applies a flat subscription fee. |
InactiveSkuPrice
This type has no fields.
Representation for a SKU that is not active and has no price.
ManagedServiceMetricUsageFee
Details about a SKU pricing usage of a partner-reported custom billing metric defined by the partner in the Service Management API and reported using the Service Control API.
The customer's usage charge is computed by converting the customer's reported consumption to the SKU's composite price unit and applying the graduated price from the appropriate price tier.
| JSON representation |
|---|
{ "canonicalMetric": string, // Union field |
| Fields | |
|---|---|
canonicalMetric |
Output only. The name of the metric, in canonical format. Note that in the canonical format the first character of the path component of the metric name is always uppercase, which may differ from the metric name in the service config. For example, a metric appearing in the service config as 'example.com/example_metric' will appear here in the SKU as 'example.com/Example_metric'. In the Service Management and Service Control APIs these two metric names are considered distinct, either or both may be defined, and usage must be reported using a name matching the name of a metric defined in the service config. But for billing purposes usage reported using either name will be aggregated under the canonical metric name. Example: "example.com/Example_metric" |
Union field price_structure. The billing model applied to bill the customer's usage. price_structure can be only one of the following: |
|
tieredPrice |
Output only. Tiered pricing of the SKU. |
TieredPrice
Price structure for a SKU charging a tiered price.
| JSON representation |
|---|
{ "unit": string, "unitDescription": string, "priceUnitCount": { object ( |
| Fields | |
|---|---|
unit |
Output only. Usage unit used for defining price tiers and for scaling with the priceUnitCount to form the composite price unit. See https://ucum.org/ucum.html for the format of the price unit. A unitless dimension, such as a count, is represented as |
unitDescription |
Output only. The display description of the unit, supplied at time of onboarding. This value is recommended to be set at least for dimensionless metrics, but may be empty if no description was provided at time of onboarding. |
priceUnitCount |
Output only. Scaling the This scaling factor is in addition to any numerical prefix symbol on the Examples:
|
priceTiers[] |
Output only. The list of price tiers for the SKU, ordered by the startAmount. The tiers are non-overlapping and are collectively bounded below by zero and unbounded above to cover the entire range of possible metric usage. Each tier is bounded below inclusively by its startAmount and bounded above exclusively by the startAmount of the next tier, or else unbounded above if there is no next tier. Usage of the metric is aggregated by customer billing account on a monthly basis and billed in a graduated manner according to the price tiers, with each marginal unit of usage priced accoring to the tier in which it falls. |
PriceTier
A price tier pricing metric usage within a range.
Each marginal unit of usage is priced according to the price tier in which it falls.
| JSON representation |
|---|
{ "startAmount": { object ( |
| Fields | |
|---|---|
startAmount |
Output only. Inclusive lower bound of the tier interval, denominated in |
price |
Output only. The price per |
ComputeEngineLicenseUsageFee
Details about a SKU pricing usage of a Compute Engine License.
The SKU applies to a single license, and may be further scoped to a Compute Engine VM Instance machine resource type (e.g. "vCPU") and size range for that machine resource. Instances deployed from Compute Engine Images incorporating the target license and (if applicable) matching the machine resource type size range will be charged by the SKU. A single license may be priced by multiple SKUs covering different combinations of machine resource type and size range, allowing a single running instance to be charged by up to one SKU per machine resource type, with pricing tiered according to machine shape.
| JSON representation |
|---|
{ "licenseCode": string, "machineResource": enum ( |
| Fields | |
|---|---|
licenseCode |
Output only. The license code of the target Compute Engine License. Note that this is the numeric license code itself in uint64 format used to reference licenses attached to images, not the resource name of the related Compute Engine LicenseCode resource. Example: "1234567890123456789" |
machineResource |
Output only. The machine resource type that the SKU applies to, if any. SKUs with a non-default value are referred to as "resource-based" SKUs. |
machineResourceRange |
Output only. The range of machine resource values that the SKU applies to. Unset when the SKU is not scoped to a particular machine resource type. The collection of SKUs in effect at any given time targeting the same license and machine resource type will cover all possible values for that machine resource type without overlap. Such a collection of SKUs form a "tiered" price structure over the possible values of the machine resource, with each SKU acting as a "tier". NOTE: This is distinct from a SKU with tiered pricing. |
usageCalculation |
Output only. Determines how the customer's usage is calculated. |
unit |
Output only. The price unit of the SKU. See https://ucum.org/ucum.html for the format of the price unit. For linear-priced memory SKUs, the price unit is 'GiBy.h'. For all other SKUs, the price unit is 'h'. This includes linear-priced vCPU and GPU SKUs because these resources have unitless dimensions and the application of these scaling factors does not change the price unit. |
Union field price_structure. The billing model applied to bill the customer's usage arising from running instances covered by the scope of the SKU. price_structure can be only one of the following: |
|
pricePerUnit |
The price per unit of usage. The customer's usage charge is computed by measuring the customer's consumption denominated in price units and multiplying by this price. |
MachineResource
The machine resource type that the SKU applies to, if any.
| Enums | |
|---|---|
MACHINE_RESOURCE_UNSPECIFIED |
The SKU applies to all instances irrespective of machine shape. This is referred to as "instance-based pricing" because the price is the same for all instances. |
VCPU_COUNT |
The SKU applies based on the instance's vCPU count. |
MEMORY_BYTES |
The SKU applies based on the instance's memory size in bytes. |
GPU_COUNT |
The SKU applies based on the instance's GPU count. |
MachineResourceRange
The range of machine resource values that the SKU applies to.
| JSON representation |
|---|
{ "startValue": string, "endValue": string } |
| Fields | |
|---|---|
startValue |
Output only. The inclusive lower bound of the range. While the number zero may be the start of a range, it is not a possible machine resource value. An instance cannot exist with zero vCPU or memory, and an instance with no attached accelerators lacks a GPU dimension entirely rather than having a GPU count of zero. |
endValue |
Output only. The exclusive upper bound of the range. If no end value is specified, the range is unbounded from above. |
UsageCalculation
Determines how the customer's usage is calculated.
| Enums | |
|---|---|
USAGE_CALCULATION_UNSPECIFIED |
Unused. |
INSTANCE_RUNTIME |
Usage is calculated from instance runtime. The customer's usage is metered according to the Compute Engine VM instance pricing model, measured on a per-instance basis in units of hours, with a minimum duration of one minute and an increment of one second. A SKU using this usage calculation is referred to as "flat" because the customer's usage charge is independent of the instance's machine resource shape apart from determining whether the SKU applies to the instance. |
LINEAR_RESOURCE_SCALED_INSTANCE_RUNTIME |
Usage is calculated from instance runtime and size. This calculation mode is only applicable to resource-based SKUs. Usage is calculated by measuring the instance runtime in the same manner as for A SKU using this usage calculation is referred to as "linear" because the customer's usage charge is linearly proportional to the instance's machine resource value. |
KubernetesEnginePodUsageFee
Details about a SKU pricing usage of software running on a Kubernetes Engine pod.
The SKU applies to pods annotated with the SKU's parent service name, and may be further scoped to a k8s pod resource type (e.g. "CPU") and size range for that resource type. Running pods annotated with the parent service's service name and matching the pod resource type size range will be charged by the SKU. A service may be priced by multiple SKUs covering different combinations of pod resource type and size range, allowing a single running pod to be charged by up to one SKU per pod resource type, with pricing tiered according to pod shape.
| JSON representation |
|---|
{ "podResource": enum ( |
| Fields | |
|---|---|
podResource |
Output only. The pod resource type that the SKU applies to. SKUs with a non-default value are referred to as "resource-based" SKUs. |
podResourceRange |
Output only. The range of pod resource values that the SKU applies to. The collection of SKUs in effect at any given time targeting the same service annotation and pod resource type will cover all possible values for that pod resource type without overlap. Such a collection of SKUs form a "tiered" price structure over the possible values of the pod resource, with each SKU acting as a "tier". NOTE: This is distinct from a SKU with tiered pricing. |
usageCalculation |
Output only. Determines how the customer's usage is calculated. |
unit |
Output only. The price unit of the SKU. See https://ucum.org/ucum.html for the format of the price unit. For linear-priced memory SKUs, the price unit is 'GiBy.h'. For all other SKUs, the price unit is 'h'. This includes linear-priced VCPU, GPU, and TPU SKUs because these resources have unitless dimensions and the application of these scaling factors does not change the price unit. |
Union field price_structure. The billing model applied to meter and bill the customer's usage arising from running k8s pods covered by the scope of the SKU. price_structure can be only one of the following: |
|
pricePerUnit |
The price per unit of usage. The customer's usage charge is computed by measuring the customer's consumption denominated in price units and multiplying by this price. |
PodResource
The pod resource type that the SKU applies to.
| Enums | |
|---|---|
POD_RESOURCE_UNSPECIFIED |
Unused. |
VCPU_COUNT |
The SKU applies based on the pod's vCPU count. |
MEMORY_BYTES |
The SKU applies based on the pod's memory size in bytes. |
GPU_COUNT |
The SKU applies based on the pod's GPU count. |
TPU_COUNT |
The SKU applies based on the pod's TPU count. |
PodResourceRange
The range of pod resource values that the SKU applies to.
| JSON representation |
|---|
{ "startValue": string, "endValue": string } |
| Fields | |
|---|---|
startValue |
Output only. The inclusive lower bound of the range. |
endValue |
Output only. The exclusive upper bound of the range. If no end value is specified, the range is unbounded from above. |
UsageCalculation
Determines how the customer's usage is calculated.
| Enums | |
|---|---|
USAGE_CALCULATION_UNSPECIFIED |
Unused. |
POD_RUNTIME |
Usage is calculated from pod runtime. The customer's usage is metered in a manner similar to the GKE Autopilot mode for pods without specific hardware requirements, priced on a per-pod basis in units of hours and measured in one-second increments, with no minimum duration. A SKU using this usage calculation is referred to as "flat" because the customer's usage charge is independent of the pod shape apart from determining whether the SKU applies to the pod. |
LINEAR_RESOURCE_SCALED_POD_RUNTIME |
Usage is calculated from pod runtime and size. This calculation mode is only applicable to resource-based SKUs. Usage is calculated by measuring the pod runtime in the same manner as for A SKU using this usage calculation is referred to as "linear" because the customer's usage charge is linearly proportional to the pod's resource value. |
AiPlatformManagedModelUsageFee
Details about a SKU pricing usage of an AI Platform Managed Model (MaaS).
| JSON representation |
|---|
{ "usageMetric": { object ( |
| Fields | |
|---|---|
usageMetric |
Output only. The usage metric that the SKU applies to. |
location |
Output only. The model endpoint location where usage is priced by this SKU. If no location is specified, the SKU applies to usage in all locations. |
predictionMode |
Output only. The prediction mode of requests that the SKU applies to. |
combinedRequestInputTokensRange |
Output only. The range of aggregated input token values covered by the SKU. Unset if the SKU is not scoped to a particular range. A request is in scope for this SKU if its aggregated input token value falls within the range. The collection of SKUs in effect at any given time scoped to a particular aggregated input token value range will cover all possible values without overlap. Such a collection of SKUs form a "tiered" price structure over the possible value, with each SKU acting as a "tier". NOTE: This is distinct from a SKU with tiered pricing. |
provisionedThroughputOverage |
Output only. Set when the SKU is a historical provisioned throughput overage SKU. Starting 2025-08-26 such SKUs have no effect, and usage in excess of provisioned throughput quota is now metered as standard usage. This field is set only in historical SKU timeline entries for overage SKUs belonging to partners that offered provisioned throughput for AI Platform managed model products prior to the unification of standard usage and provisioned throughput overage metering. |
Union field price_structure. The billing model applied to bill the customer's usage. price_structure can be only one of the following: |
|
tieredPrice |
Output only. Tiered pricing of the SKU. |
AiPlatformManagedModelUsageMetric
The usage metric that the SKU applies to.
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field metric. The usage metric that the SKU applies to. metric can be only one of the following: |
|
inputTokensMetric |
Output only. Input tokens read from the prediction endpoint input. |
cacheReadInputTokensMetric |
Output only. Input tokens read from the cache. |
cacheWriteInputTokensMetric |
Output only. Input tokens written to the cache. |
outputTokensMetric |
Output only. Output tokens returned from the prediction endpoint. |
webSearchRequestsMetric |
Output only. Web search requests executed by the model. |
InputTokensMetric
This type has no fields.
Input tokens read from the input to the prediction endpoint. The unit for this metric is dimensionless.
CacheReadInputTokensMetric
This type has no fields.
Input tokens read from the cache. The unit for this metric is dimensionless.
CacheWriteInputTokensMetric
Input tokens written to the cache. The unit for this metric is dimensionless.
| JSON representation |
|---|
{ "ttl": string } |
| Fields | |
|---|---|
ttl |
Output only. The duration the write is retained in the cache. A duration in seconds with up to nine fractional digits, ending with ' |
OutputTokensMetric
This type has no fields.
Output tokens returned from the prediction endpoint. The unit for this metric is dimensionless.
WebSearchRequestsMetric
This type has no fields.
Web search requests executed by the model. The unit for this metric is dimensionless.
AiPlatformManagedModelEndpointLocation
Location scope for a SKU that applies to an AI Platform Managed Model endpoint.
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field location. The location scope of the SKU. location can be only one of the following: |
|
regionId |
Output only. The SKU applies to a region. |
globalEndpoint |
Output only. The SKU applies to a global endpoint. Note: This is distinct from the conventional meaning of "global" as a SKU that applies to all locations. |
multiRegionId |
Output only. The SKU applies to a multi-region. |
PredictionMode
The prediction modes of requests that the SKU applies to.
| Enums | |
|---|---|
PREDICTION_MODE_UNSPECIFIED |
The SKU does not distinguish between prediction modes. |
ONLINE_PREDICTION |
The SKU applies to online prediction. |
BATCH_PREDICTION |
The SKU applies to batch prediction. |
CombinedRequestInputTokensRange
The range of aggregated input token values covered by the SKU.
A request to a managed model has an aggregated input token value determined by the sum of the metric values of the input token metrics.
- input tokens
- cache read input tokens
- cache write input tokens
| JSON representation |
|---|
{ "startValue": string, "endValue": string } |
| Fields | |
|---|---|
startValue |
Output only. The inclusive lower bound of the range. |
endValue |
Output only. The exclusive upper bound of the range. If no end value is specified, the range is unbounded from above. |
ProvisionedThroughputOverage
Additional details present for historical provisioned throughput "overage" SKUs that applied charges only to usage above the customer's provisioned throughput quota threshold.
| JSON representation |
|---|
{ "service": string } |
| Fields | |
|---|---|
service |
Output only. The service whose usage the overage SKU applied to. |
AiPlatformProvisionedThroughputFee
Details about a SKU pricing reservation of AI Platform Provisioned Throughput.
Customers may purchase provisioned throughput reservations for AI Platform managed model products. This provides the customer with provisioned throughput quota for a particular model and location. Model usage below the provisioned throughput quota threshold is voided and is not charged by the product's managed model usage fees.
| JSON representation |
|---|
{ "location": { object ( |
| Fields | |
|---|---|
location |
Output only. The location where provisioned throughput is priced by this SKU. |
unit |
Output only. The price unit of the SKU. See https://ucum.org/ucum.html for the format of the price unit. Since provisioned throughput reservations are billed by duration, this will always be a time unit. The price unit of a provisioned throughput SKU is not necessarily the same as the reservation term. This field is unrelated to the Generative AI Scale Unit (GSU). Currently the unit is always months ('mo'). Additional time units may be supported in future. The customary unit month ('mo') requires special handling to account for the variable duration of months. A price may be denominated in units of months, but the duration the reservation is active is measured in metric time and customers are billed on that basis. The exact hourly or per-second price can be calculated by dividing the monthly price by the number of hours or seconds in the desired month. A reservation active for N months is rarely billed exactly N times the monthly price. This is intended and is not a billing error. |
Union field term. The provisioned throughput reservation term priced by this SKU. term can be only one of the following: |
|
termDurationMonths |
Output only. The duration of the provisioned throughput reservation in months. |
Union field price_structure. The billing model applied to bill the customer's usage. price_structure can be only one of the following: |
|
gsuPricePerUnit |
The price per Generative AI Scale Unit (GSU) per |
AiPlatformDeployedModelUsageFee
Details about a SKU pricing usage of an AI Platform Self Deployed Model.
| JSON representation |
|---|
{ "unit": string, "usageCalculation": enum ( |
| Fields | |
|---|---|
unit |
Output only. The price unit of the SKU. See https://ucum.org/ucum.html for the format of the price unit. Currently the unit is always hours ('h'). This may change in future. |
usageCalculation |
Output only. Determines how the customer's usage is calculated. |
Union field hardware_resource. The type of hardware to which the SKU's licensing fee applies. Models are deployed with a customer-specified MachineSpec that determines the hardware resources used by the model. hardware_resource can be only one of the following: |
|
acceleratorType |
Output only. The SKU applies to a specific accelerator type. Contains the name of the matching [AI Platform AcceleratorType]( https://docs.cloud.google.com/gemini-enterprise-agent-platform/reference/rest/v1/MachineSpec#AcceleratorType). The corresponding linear scaling value is the dimensionless |
Union field price_structure. The billing model applied to bill the customer's usage arising from running deployed models covered by the scope of the SKU. price_structure can be only one of the following: |
|
pricePerUnit |
Output only. The price per unit of usage. The customer's usage charge is computed by measuring the customer's consumption denominated in price units and multiplying by this price. |
UsageCalculation
Determines how the customer's usage is calculated.
| Enums | |
|---|---|
USAGE_CALCULATION_UNSPECIFIED |
Unused. |
LINEAR_RESOURCE_SCALED_DEPLOYMENT_RUNTIME |
Usage is calculated from deployment runtime and size. Usage is calculated by measuring the deployment runtime in hours and multiplying by the amount of the deployed model's hardware resource matching the SKU's hardware resource type. This results in a composite unit of hours ('h') multiplied by the unit that denominates the hardware resource, though note that multiplying by the dimensionless unit ("1") has no effect. |
FlatSubscriptionFee
Details about a SKU charging a flat subscription fee.
| JSON representation |
|---|
{ "unit": string, // Union field |
| Fields | |
|---|---|
unit |
Output only. The unit of the subscription SKU. See https://ucum.org/ucum.html for the format of the price unit. Since subscriptions are billed by duration, this will always be a time unit. The price unit of a subscription SKU is not necessarily the same as the subscription period of the corresponding StandardOffers. Currently the unit is always months ('mo'). Additional time units may be supported in future. The unit month ('mo') is a customary time unit and requires special handling to account for the variable duration of months. A price may be denominated in units of months, but the duration the subscription is active is measured in metric time and customers are billed on that basis. The exact hourly or per-second price can be calculated by dividing the monthly price by the number of hours or seconds in the desired month. A subscription active for N months is rarely billed exactly N times the monthly price. This is intended and is not a billing error. |
Union field price_structure. The billing model applied to bill the customer's subscription. price_structure can be only one of the following: |
|
pricePerUnit |
Output only. The price per time unit the subscription is active. |
Methods |
|
|---|---|
|
Gets details of a single Sku. |
|
Lists Skus for the given parent. |