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
Ative a API Cloud Billing.Chamar a API Cloud Billing Catalog requer uma chave de API. Para ver detalhes sobre chaves de API, consulte 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]",
},
[...]
],
"nextPageToken": "[NEXT_PAGE_TOKEN]"
}
Em que:
[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.
Os resultados são paginados. Se houver outros itens para listar, a resposta incluirá um nextPageToken
. Defina pageToken=[NEXT_PAGE_TOKEN]
para buscar o próximo lote. Quando todos os itens forem listados, nenhum token será retornado.
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
Em que:
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]",
}
],
"nextPageToken": "[NEXT_PAGE_TOKEN]"
}
Em que:
[SKU_NAME]
é o nome do recurso da SKU no formatoservices/{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 formato2014-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, ausageUnit
"GiBy" indica que o uso é especificado em "Gibibytes";[UNIT_DESCRIPTION]
é a unidade de uso legível, por exemplo, "Gibibyte";[DISPLAY_QUANTITY]
é a quantidade recomendada de unidades para exibir informações de preços. Ao exibir informações de preços, é recomendável exibir:(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, seunitPrice
for "0,0001 USD",usageUnit
for "GB" edisplayQuantity
for "1000", a maneira recomendada de exibir as informações de preço será "0,10 USD por 1000 GB".- O uso de
[START_AMOUNT]
será cotado de acordo com a taxa somente depois que esse valor for consumido. Por exemplo,startUsageAmount
de 10 indica que o preço do uso será fixado no preço definido abaixo após os primeiros 10usage_units
. [CURRENCY_CODE]
é o código de moeda de três letras definido conforme a 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 forem negativas, o valor deverá ser negativo ou zero. Por exemplo, US$ -1,75 é representado comounits=-1
enanos=-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, seaggregationLevel
for "DAILY" eaggregationCount
for 14, a agregação durará mais de 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.
Os resultados são paginados. Se houver outros itens para listar, a resposta incluirá um nextPageToken
. Defina pageToken=[NEXT_PAGE_TOKEN]
para buscar o próximo lote. Quando todos os itens forem listados, nenhum token será retornado.
Informações relacionadas
As informações sobre preços e SKUs também estão disponíveis no relatório da tabela de preços ou na exportação de preços do Cloud Billing para o BigQuery.