Saiba como enviar algumas solicitações de orçamento com gasto máximo para a API Cloud Billing Budget.
Para ver uma lista completa dos métodos, consulte a documentação de referência da API REST.
Antes de começar
Faça o seguinte antes de ler este guia:
- Leia a Visão geral da API Cloud Billing Budget.
- Leia os Pré-requisitos da API Cloud Billing Budget.
- Execute as etapas de configuração.
Identificar o ID da conta do Cloud Billing
Para todas as chamadas da API Cloud Billing Budget, você precisa do ID da sua conta do Cloud Billing. Os orçamentos com limite de gastos são limitados a clientes próprios doGoogle Cloud e contas do Cloud Billing. As contas de faturamento de revendedor estão fora do escopo.
- Acesse a página "Gerenciar contas de faturamento" do console do Google Cloud .
- Na guia Suas contas de faturamento, você vê a lista de contas por nome e ID. Localize o valor do ID da conta em que você gerencia os orçamentos.

Principais conceitos e limitações do orçamento com gasto máximo
Os orçamentos com gasto máximo usam custos brutos e estimados para acionar alertas e aplicar limites de gasto, bloqueando o uso e o acúmulo de custos até que o gasto máximo seja removido.
Restrições de campo do orçamento com gasto máximo
Quando
spendCap
é definido em um orçamento,
restrições de campo estritas
são aplicadas ao orçamento. Consulte os comentários no nível do campo em
Filters,
BudgetAmount,
ThresholdRule,
NotificationsRule
e
OwnershipScope.
- billing-account-id: os orçamentos com limite de gastos são limitados a clientes próprios doGoogle Cloud e contas do Cloud Billing. As contas de faturamento de revendedor estão fora do escopo.
BudgetFiltersprecisa incluir os seguintes parâmetros:- Um orçamento com gasto máximo é restrito a orçamentos com escopo (filtrados) para um único projeto do Google Cloud e um único serviço qualificado.
- O período do orçamento com gasto máximo é limitado a um
CalendarPerioddeMONTH. - Os cálculos de custo para gastos máximos são baseados em custos brutos e não incluem economias e créditos. Defina
creditTypesTreatmentcomoEXCLUDE_ALL_CREDITS. - Outros filtros de orçamento não são compatíveis com gastos máximos e precisam estar vazios, incluindo
resourceAncestors,credit_types,subaccountselabels.
O
BudgetAmountprecisa usar umspecifiedAmount. Na entrada,currencyCodeé opcional. Se especificado ao criar um orçamento, o código da moeda precisa corresponder à moeda da conta do Cloud Billing. OcurrencyCodeé fornecido na saída.ThresholdRulesprecisa conter exatamente três regras com valoresthresholdPercentde0.5,0.8e1.0(50%, 80% e 100%), com umspendBasisdefinido comoCURRENT_SPENDouBASIS_UNSPECIFIED(FORECASTED_SPENDnão é compatível com gastos máximos).NotificationsRuleprecisa definirenableProjectLevelRecipientscomotrue. Todos os outros parâmetrosNotificationsRulenão são compatíveis.OwnershipScopeprecisa ser definido comoOWNERSHIP_SCOPE_UNSPECIFIEDouALL_USERS(BILLING_ACCOUNTnão é compatível com gastos máximos).Ao criar um orçamento com gasto máximo, o parâmetro
inputStateprecisa ser definido comoCONFIGURED.
Como os orçamentos com gasto máximo ajudam a controlar os gastos
Cálculos de gastos mais rápidos usando custos estimados: para uma aplicação mais rápida de um valor de limite de gastos, os orçamentos de limite de gastos usam custos brutos e estimados para acionar alertas e aplicar o limite de gastos. Os custos estimados são calculados com base no preço de tabela dos serviços e não incluem economias e créditos.
Pausa automática do uso e do acúmulo de custos quando o limite de gastos é acionado: no projeto especificado, quando os custos de uso brutos e estimados do serviço específico excedem o valor da meta de orçamento, o limite de gastos é acionado e aplicado pelo restante do período do orçamento. No orçamento, o parâmetro
outputStateestá definido comoENFORCED. Enquanto um gasto máximo estiver em vigor, o seguinte se aplica:- Todo o uso novo do serviço específico no projeto especificado é pausado, incluindo o uso on demand, de pagamento por uso e o uso coberto por compromissos, como descontos por compromisso de uso (CUDs).
- Todas as solicitações em andamento do serviço especificado são processadas até a conclusão, com cobranças acumuladas conforme aplicável.
- Os gastos máximos não pausam o uso fixo e contínuo associado a recursos permanentes (como serviços de recursos computacionais e armazenamento), que permanecem ativos e continuam gerando cobranças.
- Importante:enquanto estiver em um estado de restrição, não será possível editar as configurações de um orçamento com gasto máximo nem excluí-lo. Antes de editar ou excluir um orçamento aplicado, é necessário remover manualmente o gasto máximo.
Suspender um gasto máximo aplicado para restaurar serviços e gastos: quando um gasto máximo é aplicado, o uso do serviço específico no projeto especificado é bloqueado até que o gasto máximo seja suspenso. É possível suspender um limite de gastos das seguintes maneiras:
Remover automaticamente um gasto máximo: um gasto máximo aplicado é removido automaticamente no início do próximo período de orçamento (normalmente, o primeiro dia do mês seguinte). Quando um gasto máximo é suspenso automaticamente, o valor do gasto do orçamento é redefinido para zero, o estado do gasto máximo é redefinido para
CONFIGUREDe os serviços especificados são desbloqueados, restaurando a função normal das chamadas de API.Remover manualmente um gasto máximo: se você precisar reverter um bloqueio de uso durante o mesmo período de orçamento em que o gasto máximo é aplicado, edite o orçamento para remover manualmente o gasto máximo. A remoção manual de um gasto máximo tem os seguintes resultados:
- A remoção manual de um gasto máximo restaura a função normal das chamadas de API.
- Se você remover manualmente o gasto máximo definindo o
estado do gasto máximo
como
AWAITING_NEXT_PERIOD, o gasto máximo não será acionado novamente pelo restante do período do orçamento, a menos que você edite o orçamento para aumentar o valor do gasto máximo e definainputStatecomoCONFIGURED.
Depois que um gasto máximo é removido, pode levar até uma hora para que os serviços voltem ao funcionamento normal.
Redefinição automática de orçamentos com limite de gasto: no início do próximo período de orçamento (geralmente o primeiro dia do próximo mês), todos os orçamentos com limite de gasto são redefinidos automaticamente, definindo o valor de gasto bruto estimado como zero e o estado do limite de gasto como
CONFIGURED.
Limitação de cota: cada conta do Cloud Billing pode ter vários milhares de orçamentos associados a ela por vez. Consulte Cotas e limites para ver os limites atuais e outras informações.
Como chamar a API
Os exemplos a seguir mostram como enviar algumas solicitações à API Cloud Billing Budget para gerenciar orçamentos com gasto máximo.
Criar um orçamento com gasto máximo
Esse método de API cria um orçamento de gasto máximo do Cloud Billing aplicado a um único projeto e serviço qualificado.
REST
Este exemplo mostra como criar um orçamento de limite de gastos para o uso do serviço da API Gemini em um projeto específico. O orçamento tem o escopo (filtrado) definido para um único projeto do Google Cloud que você especifica, um único serviço qualificado e um valor de orçamento mensal de US $100.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
projects/budget-scope-project-id: o ID do projeto do Google Cloud que você quer definir como umescopo de orçamento(budgetFilter).services/eligible-service_id: um dos IDs de serviço qualificados que você quer definir como um escopo de orçamento (budgetFilter). No exemplo, estamos usando o ID de serviçoAEFD-7695-64FApara o serviço da API Gemini.- billing-account-id: o ID da conta do Cloud Billing a que este orçamento é aplicado. Os orçamentos com limite de gastos são limitados a clientes próprios do Google Cloud e contas do Cloud Billing. As contas de faturamento de revendedor estão fora do escopo.
- api-user-project-id: o projeto do Google Cloud em que a API Cloud Billing Budget está ativada.
Método HTTP e URL:
POST https://billingbudgets.googleapis.com/v1/billingAccounts/billing-account-id/budgets
Corpo JSON da solicitação:
{
"displayName": "My Gemini API Spend Cap",
"budgetFilter": {
"projects": [
"projects/budget-scope-project-id"
],
"services": [
"services/AEFD-7695-64FA"
],
"creditTypesTreatment": "EXCLUDE_ALL_CREDITS",
"calendarPeriod": "MONTH"
},
"amount": {
"specifiedAmount": {
"units": "100",
"nanos": 0
}
},
"thresholdRules": [
{ "thresholdPercent": 0.5 },
{ "thresholdPercent": 0.8 },
{ "thresholdPercent": 1.0 }
],
"notificationsRule": {
"enableProjectLevelRecipients": true
},
"spendCap": {
"inputState": "CONFIGURED"
}
}
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{
"name": "billingAccounts/000000-111111-222222/budgets/33333333-4444-5555-6666-777777777777",
"displayName": "My Gemini API Spend Cap",
"budgetFilter": {
"projects": [
"projects/123456789"
],
"services": [
"services/AEFD-7695-64FA"
],
"creditTypesTreatment": "EXCLUDE_ALL_CREDITS",
"calendarPeriod": "MONTH"
},
"amount": {
"specifiedAmount": {
"currencyCode": "USD",
"units": "100"
}
},
"thresholdRules": [
{
"thresholdPercent": 0.5,
"spendBasis": "CURRENT_SPEND"
},
{
"thresholdPercent": 0.8,
"spendBasis": "CURRENT_SPEND"
},
{
"thresholdPercent": 1,
"spendBasis": "CURRENT_SPEND"
}
],
"notificationsRule": {
"enableProjectLevelRecipients": true
},
"etag": "1790365289674138",
"spendCap": {
"outputState": "CONFIGURED"
}
}
Remover um gasto máximo usando PATCH
Use o método de API PATCH para modificar um
orçamento de gasto máximo do Cloud Billing
e remover manualmente um gasto máximo aplicado.
REST
Este exemplo mostra como remover manualmente um limite de gasto de ENFORCED em um orçamento atual atualizando o parâmetro
SpendCap.inputState para AWAITING_NEXT_PERIOD.
Importante:quando o spend_cap.output_state é
ENFORCED, primeiro você precisa remover o gasto máximo enviando uma
solicitação UpdateBudget para modificar o
spend_cap.input_state, como definir o
input_state como AWAITING_NEXT_PERIOD, o que vai remover
o limite. Se você tentar modificar qualquer outro campo de orçamento enquanto o orçamento estiver em
um estado de restrição, a solicitação de atualização vai falhar com
FAILED_PRECONDITION.
Para chamar esse método, você precisa do budget-id do orçamento que quer atualizar. Receba o ID do orçamento da saída createBudget, ao criar o orçamento, ou da saída listBudgets, se você listar todos os seus orçamentos.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- billing-account-id: o ID da conta do Cloud Billing a que este orçamento é aplicado. Os orçamentos com limite de gastos são limitados a clientes próprios do Google Cloud e contas do Cloud Billing. As contas de faturamento de revendedor estão fora do escopo.
- budget-id: o ID do orçamento que você quer atualizar.
- api-user-project-id: o projeto do Google Cloud em que a API Cloud Billing Budget está ativada.
Método HTTP e URL:
PATCH https://billingbudgets.googleapis.com/v1/billingAccounts/billing-account-id/budgets/budget-id?updateMask=spendCap.inputState
Corpo JSON da solicitação:
{
"spendCap": {
"inputState": "AWAITING_NEXT_PERIOD"
}
}
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{
"name": "billingAccounts/000000-111111-222222/budgets/33333333-4444-5555-6666-777777777777",
"displayName": "My Gemini API Spend Cap",
"budgetFilter": {
"projects": [
"projects/123456789"
],
"services": [
"services/AEFD-7695-64FA"
],
"creditTypesTreatment": "EXCLUDE_ALL_CREDITS",
"calendarPeriod": "MONTH"
},
"amount": {
"specifiedAmount": {
"currencyCode": "USD",
"units": "100"
}
},
"thresholdRules": [
{
"thresholdPercent": 0.5,
"spendBasis": "CURRENT_SPEND"
},
{
"thresholdPercent": 0.8,
"spendBasis": "CURRENT_SPEND"
},
{
"thresholdPercent": 1,
"spendBasis": "CURRENT_SPEND"
}
],
"notificationsRule": {
"enableProjectLevelRecipients": true
},
"etag": "1790365289674138",
"spendCap": {
"outputState": "AWAITING_NEXT_PERIOD",
"reconciling": true
}
}
Atualizar um orçamento com gasto máximo usando PATCH
Use esse método de API para modificar um orçamento de gasto máximo do Cloud Billing para alterar o valor do orçamento e os filtros de orçamento (escopo do orçamento).
REST
Este exemplo mostra como atualizar um orçamento de limite de gasto para mudar o
valor do orçamento. Se o
estado do gasto máximo for AWAITING_NEXT_PERIOD, este exemplo também
mostra como redefinir um gasto máximo suspenso atualizando o parâmetro
SpendCap.inputState para CONFIGURED.
Para chamar esse método, você precisa do budget-id do orçamento que quer atualizar. Receba o ID do orçamento da saída createBudget, ao criar o orçamento, ou da saída listBudgets, se você listar todos os seus orçamentos.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
projects/budget-scope-project-id: o ID do projeto do Google Cloud que você quer definir como um escopo de orçamento (budgetFilter).services/eligible-service_id: um dos IDs de serviço qualificados que você quer definir como um escopo de orçamento (budgetFilter). No exemplo, estamos usando o ID de serviçoAEFD-7695-64FApara o serviço da API Gemini.- billing-account-id: o ID da conta do Cloud Billing a que este orçamento é aplicado. Os orçamentos com limite de gastos são limitados a clientes próprios do Google Cloud e contas do Cloud Billing. As contas de faturamento de revendedor estão fora do escopo.
- budget-id: o ID do orçamento que você quer atualizar.
- api-user-project-id: o projeto do Google Cloud em que a API Cloud Billing Budget está ativada.
Método HTTP e URL:
PATCH https://billingbudgets.googleapis.com/v1/billingAccounts/billing-account-id/budgets/budget-id?updateMask=amount.specifiedAmount,spendCap.inputState
Corpo JSON da solicitação:
{
"displayName": "My Gemini API Spend Cap",
"budgetFilter": {
"projects": [
"projects/budget-scope-project-id"
],
"services": [
"services/AEFD-7695-64FA"
],
"creditTypesTreatment": "EXCLUDE_ALL_CREDITS",
"calendarPeriod": "MONTH"
},
"amount": {
"specifiedAmount": {
"units": "500",
"nanos": 0
}
},
"thresholdRules": [
{ "thresholdPercent": 0.5 },
{ "thresholdPercent": 0.8 },
{ "thresholdPercent": 1.0 }
],
"notificationsRule": {
"enableProjectLevelRecipients": true
},
"spendCap": {
"inputState": "CONFIGURED"
}
}
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{
"name": "billingAccounts/000000-111111-222222/budgets/33333333-4444-5555-6666-777777777777",
"displayName": "My Gemini API Spend Cap",
"budgetFilter": {
"projects": [
"projects/123456789"
],
"services": [
"services/AEFD-7695-64FA"
],
"creditTypesTreatment": "EXCLUDE_ALL_CREDITS",
"calendarPeriod": "MONTH"
},
"amount": {
"specifiedAmount": {
"currencyCode": "USD",
"units": "500"
}
},
"thresholdRules": [
{
"thresholdPercent": 0.5,
"spendBasis": "CURRENT_SPEND"
},
{
"thresholdPercent": 0.8,
"spendBasis": "CURRENT_SPEND"
},
{
"thresholdPercent": 1,
"spendBasis": "CURRENT_SPEND"
}
],
"notificationsRule": {
"enableProjectLevelRecipients": true
},
"etag": "1790365289674138",
"spendCap": {
"outputState": "CONFIGURED"
}
}
Listar orçamentos
Nesse método de API, todos os orçamentos definidos para uma determinada Conta de faturamento do Cloud são listados.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- billing-account-id: ID da conta do Cloud Billing a que os orçamentos são aplicados. Os orçamentos com limite de gastos são limitados a clientes próprios do Google Cloud e contas do Cloud Billing. As contas de faturamento de revendedor estão fora do escopo.
- project-id: o projeto do Google Cloud em que a API Cloud Billing Budget está ativada.
Método HTTP e URL:
GET https://billingbudgets.googleapis.com/v1/billingAccounts/billing-account-id/budgets
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{
"budgets": [
{
"name": "billingAccounts/000000-111111-222222/budgets/33333333-4444-5555-6666-777777777777",
"displayName": "Gemini API Spend Cap in My Project",
"budgetFilter": {
"projects": [
"projects/987654321"
],
"services": [
"services/AEFD-7695-64FA"
],
"creditTypesTreatment": "EXCLUDE_ALL_CREDITS",
"calendarPeriod": "MONTH"
},
"amount": {
"specifiedAmount": {
"currencyCode": "USD",
"units": "500"
}
},
"thresholdRules": [
{
"thresholdPercent": 0.5,
"spendBasis": "CURRENT_SPEND"
},
{
"thresholdPercent": 0.8,
"spendBasis": "CURRENT_SPEND"
},
{
"thresholdPercent": 1,
"spendBasis": "CURRENT_SPEND"
}
],
"notificationsRule": {
"enableProjectLevelRecipients": true
},
"allUpdatesRule": {},
"etag": "17fc365289f74138c",
"spendCap": {
"outputState": "ENFORCED"
}
}
]
}
Receber orçamento
Nesse método de API, receba os detalhes de um determinado orçamento.
REST
Para chamar esse método, você precisa do budget-id do orçamento que quer atualizar. Receba o ID do orçamento da saída createBudget, ao criar o orçamento, ou da saída listBudgets, se você listar todos os seus orçamentos.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- billing-account-id: o ID da conta do Cloud Billing a que este orçamento é aplicado. Os orçamentos com limite de gastos são limitados a clientes próprios do Google Cloud e contas do Cloud Billing. As contas de faturamento de revendedor estão fora do escopo.
- budget-id: o ID do orçamento que você quer receber.
- project-id: o projeto do Google Cloud em que a API Cloud Billing Budget está ativada.
Método HTTP e URL:
GET https://billingbudgets.googleapis.com/v1/billingAccounts/billing-account-id/budgets/budget-id
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{
"name": "billingAccounts/000000-111111-222222/budgets/33333333-4444-5555-6666-777777777777",
"displayName": "Cloud Run Spend Cap in My Project",
"budgetFilter": {
"projects": [
"projects/987654321"
],
"services": [
"services/152E-C115-5142"
],
"creditTypesTreatment": "EXCLUDE_ALL_CREDITS",
"calendarPeriod": "MONTH"
},
"amount": {
"specifiedAmount": {
"currencyCode": "USD",
"units": "450"
}
},
"thresholdRules": [
{
"thresholdPercent": 0.5,
"spendBasis": "CURRENT_SPEND"
},
{
"thresholdPercent": 0.8,
"spendBasis": "CURRENT_SPEND"
},
{
"thresholdPercent": 1,
"spendBasis": "CURRENT_SPEND"
}
],
"notificationsRule": {
"enableProjectLevelRecipients": true
},
"allUpdatesRule": {},
"etag": "c9d6c011f6fa6b5c",
"spendCap": {
"outputState": "CONFIGURED"
}
}
Excluir orçamento
Use esse método de API para excluir um orçamento atual do Cloud Billing.
REST
Para chamar esse método, você precisa do budget-id do orçamento que quer atualizar. Receba o ID do orçamento da saída createBudget, ao criar o orçamento, ou da saída listBudgets, se você listar todos os seus orçamentos.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- billing-account-id: o ID da conta do Cloud Billing a que este orçamento é aplicado.
- budget-id: o ID do orçamento que você quer excluir.
- project-id: o projeto do Google Cloud em que a API Cloud Billing Budget está ativada.
Método HTTP e URL:
DELETE https://billingbudgets.googleapis.com/v1/billingAccounts/billing-account-id/budgets/budget-id
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{}