Receber informações sobre preços do Google Cloud Platform

Nesta página, você verá como usar a API Cloud Billing Catalog para:

  • receber uma lista de todos os serviços públicos, incluindo metadados relevantes sobre cada serviço;
  • receber uma lista de todas as SKUs públicas em um serviço, incluindo:
    • descrição legível da SKU;
    • preços públicos da SKU;
    • regiões onde a SKU está disponível para compra;
    • dados de categorização sobre a SKU.

Antes de começar

Chamar a API Cloud Billing Catalog requer uma chave de API. Você pode encontrar detalhes sobre chaves de API em Como usar chaves de API.

Como listar serviços públicos do catálogo

Nesta etapa, você receberá uma lista de todos os serviços públicos, incluindo metadados relevantes sobre cada serviço.

API

O snippet de código a seguir lista todos os serviços públicos no catálogo:

Solicitação:

GET https://cloudbilling.googleapis.com/v1/services?key=API_KEY

Resposta:

{
  "services": [
    {
      "name": "[SERVICE_NAME]",
      "serviceId": "[SERVICE_ID]",
      "displayName": "[DISPLAY_NAME]",
    },
    [...]
  ]
}

Onde:

  • [SERVICE_NAME] é o nome do recurso para o serviço;
  • [SERVICE_ID] é o identificador para o serviço;
  • [DISPLAY_NAME] é o nome de exibição legível para o serviço.

Como conseguir a lista de SKUs para um serviço

API

O snippet de código a seguir lista as SKUs no catálogo para o serviço especificado:

Solicitação:

GET https://cloudbilling.googleapis.com/v1/services/SERVICE_ID/skus?key=API_KEY

Onde:

  • SERVICE_ID é o identificador do serviço pai.

Resposta:

{
  "skus": [
    {
        "name": "[SKU_NAME]",
        "skuId": "[SKU_ID]",
        "description": "[SKU_DESCRIPTION]",
        "category": {
            "serviceDisplayName": "[SVC_DISPLAY_NAME]",
            "resourceFamily": "[FAMILY]",
            "resourceGroup": "[GROUP]",
            "usageType": "[USAGE]",
        },
        "serviceRegions": [
          "[REGION]"
        ],
        "pricingInfo": [
          {
              "effectiveTime": "[TIME]",
              "summary": "[SUMMARY]",
              "pricingExpression": {
                  "usageUnit": "[UNIT]",
                  "usageUnitDescription": "[UNIT_DESCRIPTION]",
                  "displayQuantity": [DISPLAY_QUANTITY],
                  "tieredRates": [
                    {
                        "startUsageAmount": [START_AMOUNT],
                        "unitPrice": {
                            "currencyCode": "[CURRENCY_CODE]",
                            "units": [UNITS],
                            "nanos": [NANOS],
                        },
                    }
                  ],
              },
              "aggregationInfo": {
                  "aggregationLevel": enum("[AGGREGATION_LEVEL]"),
                  "aggregationInterval": enum("[AGGREGATION_INTERVAL]"),
                  "aggregationCount": [AGGREGATION_COUNT],
              },
              "currencyConversionRate": [CONVERSION_RATE],
          }
        ],
        "serviceProviderName": "[SERVICE_PROVIDER]",
    }
  ]
}

em que:

  • [SKU_NAME] é o nome do recurso da SKU no formulário services/{SERVICE_ID}/skus/{SKU_ID};
  • [SKU_ID] é o identificador exclusivo da SKU;
  • [SKU_DESCRIPTION] é uma descrição legível da SKU;
  • [SVC_DISPLAY_NAME] é o nome de exibição do serviço ao qual a SKU pertence;
  • [FAMILY] é o tipo de produto ao qual a SKU se refere. Por exemplo, "Compute", "Storage", "Network" etc;
  • [GROUP] é uma classificação de grupo para SKUs relacionadas. Por exemplo, "RAM", "GPU", "Prediction" etc;
  • [USAGE] representa como a SKU é consumida. Por exemplo, "OnDemand", "Preemptible", "Commit1Mo", "Commit1Yr" etc;
  • [REGION] é a lista de regiões de serviço onde a SKU é oferecida. Por exemplo, "asia-east1";
  • [TIME] é um carimbo de data/hora que representa a hora em que este preço entrou em vigor no formato 2014-10-02T15:01:23.045123456Z;
  • [SUMMARY] é um resumo legível das informações de preços;
  • [UNIT] é a abreviação da unidade de uso em que o preço é especificado. Por exemplo, a usageUnit "GiBy" indica que o uso é especificado em "Gibibytes";
  • [UNIT_DESCRIPTION] é a unidade de uso legível, por exemplo, "Gibibyte";
  • [DISPLAY_QUANTITY] é a quantidade de unidades recomendada para exibir informações de preços. Nessa exibição, é recomendável mostrar: (unitPrice * displayQuantity) per displayQuantity usageUnit. Esse campo não afeta a fórmula de preços e serve apenas para fins de exibição. Por exemplo, se unitPrice for "US$ 0,0001", usageUnit será "GB" e displayQuantity será "1000". Assim, a maneira recomendada de exibir as informações de preços é "US$ 0,10 por 1000 GB";
  • O uso de [START_AMOUNT] será cotado de acordo com a taxa somente depois que esse valor for consumido. Por exemplo, se startUsageAmount for 10, isso indica que o uso será cotado de acordo com o preço definido abaixo após as 10 primeiras usage_units;
  • [CURRENCY_CODE] é o código de moeda de três letras definido conforme o ISO 4217;
  • [UNITS] são as unidades inteiras do valor. Por exemplo, se currencyCode for "USD", uma unidade corresponderá a um dólar norte-americano;
  • [NANOS] é o número de unidades nano (10^-9) do valor. É necessário que o valor fique entre -999.999.999 e +999.999.999. Se "units" for positivo, "nanos" deverá ser positivo ou zero. Se "units" for zero, "nanos" poderá ser positivo, zero ou negativo. Se "units" for negativo, "nanos" deverá ser negativo ou zero. Por exemplo, US$ -1,75 é representado como units=-1 e nanos=-750,000,000;
  • [AGGREGATION_LEVEL] é o nível no qual o uso é agregado para calcular o custo. Os valores válidos são ACCOUNT, PROJECT e AGGREGATION_LEVEL_UNSPECIFIED;
  • [AGGREGATION_INTERVAL] é o intervalo no qual o uso é agregado para calcular o custo. Os valores válidos são DAILY, MONTHLY e AGGREGATION_INTERVAL_UNSPECIFIED;
  • [AGGREGATION_COUNT] é o número de intervalos de agregação. Por exemplo, se aggregationLevel for "DAILY" e aggregationCount for 14, a agregação ocorrerá durante 14 dias;
  • [CONVERSION_RATE] é a taxa de conversão de moedas: de USD para a moeda especificada na solicitação. Se a moeda não for especificada, o padrão será 1.0;
  • [SERVICE_PROVIDER] identifica o provedor de serviços. No caso, "Google" para serviços próprios do Google Cloud Platform.
Esta página foi útil? Conte sua opinião sobre: