Purchase a spend-based commitment

This document describes how to purchase a spend-based commitment by using the Cloud Commerce Consumer Procurement API for Cloud Marketplace purchases.

Currently, this API only supports purchasing spend-based commitments, not resource-based commitments.

Before you begin

Identify the Offer you want to purchase

To purchase a spend-based commitment, use an Offer name which indicates the product you're purchasing and the discount term.

The new CUD model introduces new Offer names for existing CUD products. The table below provides the Offer names both before and after you opt in to the new spend-based CUD model. You must use the Offer name that matches your Cloud Billing account's model.

The following updated Offers are available for purchase:

Product Term Offer name before opting in Offer name after opting in
AlloyDB for PostgreSQL 1 year services/alloydb.googleapis.com/standardOffers/adbca020-a973-48c9-b9b6-f5d70527790c services/alloydb.googleapis.com/standardOffers/ff04ec3e-278c-4ec8-8278-12f875a8cea2
AlloyDB for PostgreSQL 3 years services/alloydb.googleapis.com/standardOffers/56e5948f-f1ed-45ce-84d6-a8408092e7d5 services/alloydb.googleapis.com/standardOffers/9522b4d8-bff7-4141-81d6-b71d9113c69a
Backup and DR (Oracle) 1 year services/backupdr.googleapis.com/standardOffers/5b446c4d-ce38-4d1a-8c76-e8b04ad50069 services/backupdr.googleapis.com/standardOffers/16e6132e-8a72-4a7f-8941-bf52246afc82
Backup and DR (Oracle) 3 years services/backupdr.googleapis.com/standardOffers/0dba7aa1-3215-4d44-9581-e1c34ca94471 services/backupdr.googleapis.com/standardOffers/1e028b05-4344-4bca-87e7-235ee3536354
BigQuery 1 year services/bigqueryreservation.googleapis.com/standardOffers/6e72d4d4-5591-4c7f-aa9f-88d277d9280c services/bigqueryreservation.googleapis.com/standardOffers/d73ae4d8-d096-4c9b-9c20-cd92c3c53724
BigQuery 3 years services/bigqueryreservation.googleapis.com/standardOffers/ad5539c4-a0d9-4abd-82c9-1104a7c8ad64 services/bigqueryreservation.googleapis.com/standardOffers/f43d480d-3e77-4079-946c-e1b2ab640a8a
Bigtable 1 year services/bigtable.googleapis.com/standardOffers/5a0a5567-1552-445e-9f1b-f1ac69fb0f39 services/bigtable.googleapis.com/standardOffers/c0bf8ba5-65ee-4f7d-9e1e-3953433cf193
Bigtable 3 years services/bigtable.googleapis.com/standardOffers/26e8485e-acef-4e73-9a13-f0b2109befff services/bigtable.googleapis.com/standardOffers/460fb2ef-456d-4263-a070-4f993fa37996
Cloud Run 1 year services/run.googleapis.com/standardOffers/55435965-baf5-485f-baea-3fde53566e5e services/run.googleapis.com/standardOffers/392802d4-e57b-40d3-9684-a1e8cdca6fb5
Cloud Run 3 years services/run.googleapis.com/standardOffers/a8b22b6c-2992-48d3-9b73-98fc7a47d61c ? services/run.googleapis.com/standardOffers/88a5fc51-d63b-4865-bf3b-c49e05a8c5c0
Compute Engine flexible commitment 1 year services/compute.googleapis.com/standardOffers/ffe0f6a3-2f98-437e-8d49-fc443a05d3c2 services/compute.googleapis.com/standardOffers/1b2601a4-9d76-462d-bd5b-5b835d245f93
Compute Engine flexible commitment 3 years services/compute.googleapis.com/standardOffers/062a285d-8989-4ce7-8f9a-bed8d183236f services/compute.googleapis.com/standardOffers/61612674-a9a9-4687-8449-baca71fbd0d1
Google Kubernetes Engine 1 year services/container.googleapis.com/standardOffers/ae2672e6-47a8-41dc-9448-6956d7f4fbc1 services/container.googleapis.com/standardOffers/2f48e468-a86a-452d-88df-edacd94a3c44
Google Kubernetes Engine 3 years services/container.googleapis.com/standardOffers/fcf378c1-fbe0-4aaa-b05e-9597f8b45578 services/container.googleapis.com/standardOffers/89027902-6f83-40aa-8861-7c2446b11015
Dataflow 1 year services/dataflow.googleapis.com/standardOffers/42ae4415-0361-404f-8bc5-1e7c041c2d82 services/dataflow.googleapis.com/standardOffers/127d79e4-1d52-48b0-9f31-8ba02586ff95
Dataflow 3 years services/dataflow.googleapis.com/standardOffers/cac998b8-3d49-4672-ae5b-e5b3c56e05f2 services/dataflow.googleapis.com/standardOffers/03f4d3b1-44b8-4e88-9e75-b1d4e2d04573
Firestore 1 year services/firestore.googleapis.com/standardOffers/f8485012-b340-4562-8302-7e27d48f8cfd services/firestore.googleapis.com/standardOffers/de6aa077-3170-4250-89b6-0ccd470f9e21
Firestore 3 years services/firestore.googleapis.com/standardOffers/0b48b55a-1fa6-48bc-a3de-2d88f0b99e15 services/firestore.googleapis.com/standardOffers/e8f59240-c088-4a22-87c3-e58722cca300
Managed Service for Apache Kafka 1 year services/managedkafka.googleapis.com/standardOffers/e1636f7d-1a29-4d53-a89e-c1f60e8dadcf services/managedkafka.googleapis.com/standardOffers/647db981-009c-4e95-b62e-6aff19384956
Managed Service for Apache Kafka 3 years services/managedkafka.googleapis.com/standardOffers/31d79333-0c0e-4208-9b20-c6e4f27e5d1d services/managedkafka.googleapis.com/standardOffers/9a7ed994-d3df-4680-b4e6-7c3d932add66
Memorystore for Redis 1 year services/redis.googleapis.com/standardOffers/fe93270a-f338-4a76-b303-c323608a9d37 services/redis.googleapis.com/standardOffers/8e0da7cb-196b-4351-bc32-6a6ba94f1456
Memorystore 3 years services/redis.googleapis.com/standardOffers/8f20579e-7630-4592-8fa6-0d7d3b749354 services/redis.googleapis.com/standardOffers/2a3729ac-1e38-4a34-bc96-bd988028351f
Spanner 1 year services/spanner.googleapis.com/standardOffers/29829e5f-681c-4810-a471-8e4611a8042b services/spanner.googleapis.com/standardOffers/359db5c2-8c2c-49e3-a21d-26176c4cd403
Spanner 3 years services/spanner.googleapis.com/standardOffers/709f6c69-8a49-4032-97f7-ce21fe340603 services/spanner.googleapis.com/standardOffers/a6a32e10-1d76-4df8-8485-eee10d08a1cf
Cloud SQL 1 year services/cloudsql.googleapis.com/standardOffers/266e6a8c-2a0d-4b92-af9c-5795760f1fc9 services/cloudsql.googleapis.com/standardOffers/d31cf078-36a2-4a8a-a2e6-b23caec0e7a3
Cloud SQL 3 years services/cloudsql.googleapis.com/standardOffers/4998bf0a-51dd-4ce0-8405-aa529dd86d33 services/cloudsql.googleapis.com/standardOffers/48960309-1646-4fa2-9bf8-d7e72090d2b8

The following Offers are unaffected by the new CUD model and available for purchase:

Product Term Offer name
Backup for GKE 1 year services/gkebackup.googleapis.com/standardOffers/89852607-f073-4696-94cc-de7ed85f27c7
Backup for GKE 3 years services/gkebackup.googleapis.com/standardOffers/25d2877b-2868-4312-b54e-880896a119c5
Backup and DR (VMWare) 1 year services/backupdr.googleapis.com/standardOffers/30c7e770-724f-4a7d-8369-b726a397b53a
Backup and DR (VMWare) 3 years services/backupdr.googleapis.com/standardOffers/6748e93c-4114-4fa2-bf3e-cb4d3534bb48
NetApp Volumes 1 year services/netapp.googleapis.com/standardOffers/90520cfa-14b6-42ae-92b9-129671bf2aca
NetApp Volumes 3 years services/netapp.googleapis.com/standardOffers/c852fef8-e699-4524-90f4-e7b89edeb33c

Identify the Offer parameters

Commitments have two parameters:

  • Commitment amount (hourly_commit): The credit applied to your Cloud Billing account each hour after you purchase this commitment.

  • Region (region): The region for which this commitment's benefits apply.

When you purchase a commitment, you must specify both parameters.

Purchase the Offer

To purchase an Offer, call billingAccounts.orders.place, and supply the following parameters:

  • The hourly_commit indicating the dollar value of the commitment.

  • The region to purchase the commitment for.

To place an order, run the following command:

curl 'https://cloudcommerceconsumerprocurement.googleapis.com/v1alpha1/billingAccounts/BILLING_ACCOUNT_ID/orders:place' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer ACCESS_TOKEN' \
    --header 'X-Goog-User-Project: CONSUMER_PROJECT_ID' \
    -d '@-' <<EOF
    {
    "displayName": "DISPLAY_NAME",
    "lineItemInfo": [{
        "parameters": [{
        "name": "hourly_commit",
        "value": {
            "doubleValue": HOURLY_COMMIT
        }
        }, {
        "name": "region",
        "value": {
            "stringValue": "REGION"
        }
        }],
        "offer": "OFFER_NAME"
    }]
    }
EOF

This returns the name of a long-running operation:

{
    "name": "OPERATION_NAME"
}

To verify that the returned long-running operation completed successfully, run the following command:

curl 'https://cloudcommerceconsumerprocurement.googleapis.com/v1alpha1/OPERATION_NAME' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer ACCESS_TOKEN' \
    --header 'X-Goog-User-Project: CONSUMER_PROJECT_ID'

The long-running operation should complete in less than one second.

View your Order

You can view the current state of a commitment directly in Google Cloud console, or by calling billingAccounts.orders.get. The name field of the created Order specifies the Order name.

cURL

To view an order, run the following command:

curl 'https://cloudcommerceconsumerprocurement.googleapis.com/v1alpha1/ORDER_NAME' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer ACCESS_TOKEN' \
    --header 'X-Goog-User-Project: CONSUMER_PROJECT_ID'

Console

  1. Navigate to https://console.cloud.google.com/billing.
  2. Select your Cloud Billing account.
  3. Select Commitments from the sidebar.
  4. Your purchased commitment is visible in the displayed table.