{
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/cloud-billing": {
          "description": "View and manage your Google Cloud Platform billing accounts"
        },
        "https://www.googleapis.com/auth/cloud-platform": {
          "description": "View and manage your data across Google Cloud Platform services"
        }
      }
    }
  },
  "basePath": "",
  "baseUrl": "https://billingbudgets.googleapis.com/",
  "batchPath": "batch",
  "canonicalName": "CloudBillingBudget",
  "description": "The Cloud Billing Budget API stores Cloud Billing budgets, which define a budget plan and the rules to execute as spend is tracked against that plan.",
  "discoveryVersion": "v1",
  "documentationLink": "https://cloud.google.com/billing/docs/how-to/budget-api-overview",
  "fullyEncodeReservedExpansion": true,
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "id": "billingbudgets:v1beta1",
  "kind": "discovery#restDescription",
  "mtlsRootUrl": "https://billingbudgets.mtls.googleapis.com/",
  "name": "billingbudgets",
  "ownerDomain": "google.com",
  "ownerName": "Google",
  "parameters": {
    "$.xgafv": {
      "description": "V1 error format.",
      "enum": [
        "1",
        "2"
      ],
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "location": "query",
      "type": "string"
    },
    "access_token": {
      "description": "OAuth access token.",
      "location": "query",
      "type": "string"
    },
    "alt": {
      "default": "json",
      "description": "Data format for response.",
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "location": "query",
      "type": "string"
    },
    "callback": {
      "description": "JSONP",
      "location": "query",
      "type": "string"
    },
    "fields": {
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query",
      "type": "string"
    },
    "key": {
      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
      "location": "query",
      "type": "string"
    },
    "oauth_token": {
      "description": "OAuth 2.0 token for the current user.",
      "location": "query",
      "type": "string"
    },
    "prettyPrint": {
      "default": "true",
      "description": "Returns response with indentations and line breaks.",
      "location": "query",
      "type": "boolean"
    },
    "quotaUser": {
      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
      "location": "query",
      "type": "string"
    },
    "uploadType": {
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "location": "query",
      "type": "string"
    },
    "upload_protocol": {
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query",
      "type": "string"
    }
  },
  "protocol": "rest",
  "resources": {
    "billingAccounts": {
      "resources": {
        "budgets": {
          "methods": {
            "create": {
              "description": "Creates a new budget. See Quotas and limits for more information on the limits of the number of budgets you can create.",
              "flatPath": "v1beta1/billingAccounts/{billingAccountsId}/budgets",
              "httpMethod": "POST",
              "id": "billingbudgets.billingAccounts.budgets.create",
              "parameterOrder": [
                "parent"
              ],
              "parameters": {
                "parent": {
                  "description": "Required. The name of the billing account to create the budget in. Values are of the form `billingAccounts/{billingAccountId}`.",
                  "location": "path",
                  "pattern": "^billingAccounts/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1beta1/{+parent}/budgets",
              "request": {
                "$ref": "GoogleCloudBillingBudgetsV1beta1CreateBudgetRequest"
              },
              "response": {
                "$ref": "GoogleCloudBillingBudgetsV1beta1Budget"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-billing",
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            },
            "delete": {
              "description": "Deletes a budget. Returns successfully if already deleted.",
              "flatPath": "v1beta1/billingAccounts/{billingAccountsId}/budgets/{budgetsId}",
              "httpMethod": "DELETE",
              "id": "billingbudgets.billingAccounts.budgets.delete",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "description": "Required. Name of the budget to delete. Values are of the form `billingAccounts/{billingAccountId}/budgets/{budgetId}`.",
                  "location": "path",
                  "pattern": "^billingAccounts/[^/]+/budgets/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1beta1/{+name}",
              "response": {
                "$ref": "GoogleProtobufEmpty"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-billing",
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            },
            "get": {
              "description": "Returns a budget. WARNING: There are some fields exposed on the Google Cloud Console that aren't available on this API. When reading from the API, you will not see these fields in the return value, though they may have been set in the Cloud Console.",
              "flatPath": "v1beta1/billingAccounts/{billingAccountsId}/budgets/{budgetsId}",
              "httpMethod": "GET",
              "id": "billingbudgets.billingAccounts.budgets.get",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "description": "Required. Name of budget to get. Values are of the form `billingAccounts/{billingAccountId}/budgets/{budgetId}`.",
                  "location": "path",
                  "pattern": "^billingAccounts/[^/]+/budgets/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1beta1/{+name}",
              "response": {
                "$ref": "GoogleCloudBillingBudgetsV1beta1Budget"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-billing",
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            },
            "list": {
              "description": "Returns a list of budgets for a billing account. WARNING: There are some fields exposed on the Google Cloud Console that aren't available on this API. When reading from the API, you will not see these fields in the return value, though they may have been set in the Cloud Console.",
              "flatPath": "v1beta1/billingAccounts/{billingAccountsId}/budgets",
              "httpMethod": "GET",
              "id": "billingbudgets.billingAccounts.budgets.list",
              "parameterOrder": [
                "parent"
              ],
              "parameters": {
                "pageSize": {
                  "description": "Optional. The maximum number of budgets to return per page. The default and maximum value are 100.",
                  "format": "int32",
                  "location": "query",
                  "type": "integer"
                },
                "pageToken": {
                  "description": "Optional. The value returned by the last `ListBudgetsResponse` which indicates that this is a continuation of a prior `ListBudgets` call, and that the system should return the next page of data.",
                  "location": "query",
                  "type": "string"
                },
                "parent": {
                  "description": "Required. Name of billing account to list budgets under. Values are of the form `billingAccounts/{billingAccountId}`.",
                  "location": "path",
                  "pattern": "^billingAccounts/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1beta1/{+parent}/budgets",
              "response": {
                "$ref": "GoogleCloudBillingBudgetsV1beta1ListBudgetsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-billing",
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            },
            "patch": {
              "description": "Updates a budget and returns the updated budget. WARNING: There are some fields exposed on the Google Cloud Console that aren't available on this API. Budget fields that are not exposed in this API will not be changed by this method.",
              "flatPath": "v1beta1/billingAccounts/{billingAccountsId}/budgets/{budgetsId}",
              "httpMethod": "PATCH",
              "id": "billingbudgets.billingAccounts.budgets.patch",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "description": "Output only. Resource name of the budget. The resource name implies the scope of a budget. Values are of the form `billingAccounts/{billingAccountId}/budgets/{budgetId}`.",
                  "location": "path",
                  "pattern": "^billingAccounts/[^/]+/budgets/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1beta1/{+name}",
              "request": {
                "$ref": "GoogleCloudBillingBudgetsV1beta1UpdateBudgetRequest"
              },
              "response": {
                "$ref": "GoogleCloudBillingBudgetsV1beta1Budget"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-billing",
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            }
          }
        }
      }
    }
  },
  "revision": "20200821",
  "rootUrl": "https://billingbudgets.googleapis.com/",
  "schemas": {
    "GoogleCloudBillingBudgetsV1beta1AllUpdatesRule": {
      "description": "AllUpdatesRule defines notifications that are sent based on budget spend and thresholds.",
      "id": "GoogleCloudBillingBudgetsV1beta1AllUpdatesRule",
      "properties": {
        "monitoringNotificationChannels": {
          "description": "Optional. Targets to send notifications to when a threshold is exceeded. This is in addition to default recipients who have billing account roles. The value is the full REST resource name of a monitoring notification channel with the form `projects/{project_id}/notificationChannels/{channel_id}`. A maximum of 5 channels are allowed. See https://cloud.google.com/billing/docs/how-to/budgets-notification-recipients for more details.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "pubsubTopic": {
          "description": "Optional. The name of the Pub/Sub topic where budget related messages will be published, in the form `projects/{project_id}/topics/{topic_id}`. Updates are sent at regular intervals to the topic. The topic needs to be created before the budget is created; see https://cloud.google.com/billing/docs/how-to/budgets#manage-notifications for more details. Caller is expected to have `pubsub.topics.setIamPolicy` permission on the topic when it's set for a budget, otherwise, the API call will fail with PERMISSION_DENIED. See https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications for more details on Pub/Sub roles and permissions.",
          "type": "string"
        },
        "schemaVersion": {
          "description": "Optional. The schema version of the notification sent to `pubsub_topic`. Only \"1.0\" is accepted. It represents the JSON schema as defined in https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleCloudBillingBudgetsV1beta1Budget": {
      "description": "A budget is a plan that describes what you expect to spend on Cloud projects, plus the rules to execute as spend is tracked against that plan, (for example, send an alert when 90% of the target spend is met). Currently all plans are monthly budgets so the usage period(s) tracked are implied (calendar months of usage back-to-back).",
      "id": "GoogleCloudBillingBudgetsV1beta1Budget",
      "properties": {
        "allUpdatesRule": {
          "$ref": "GoogleCloudBillingBudgetsV1beta1AllUpdatesRule",
          "description": "Optional. Rules to apply to notifications sent based on budget spend and thresholds."
        },
        "amount": {
          "$ref": "GoogleCloudBillingBudgetsV1beta1BudgetAmount",
          "description": "Required. Budgeted amount."
        },
        "budgetFilter": {
          "$ref": "GoogleCloudBillingBudgetsV1beta1Filter",
          "description": "Optional. Filters that define which resources are used to compute the actual spend against the budget."
        },
        "displayName": {
          "description": "User data for display name in UI. Validation: \u003c= 60 chars.",
          "type": "string"
        },
        "etag": {
          "description": "Optional. Etag to validate that the object is unchanged for a read-modify-write operation. An empty etag will cause an update to overwrite other changes.",
          "type": "string"
        },
        "name": {
          "description": "Output only. Resource name of the budget. The resource name implies the scope of a budget. Values are of the form `billingAccounts/{billingAccountId}/budgets/{budgetId}`.",
          "readOnly": true,
          "type": "string"
        },
        "thresholdRules": {
          "description": "Optional. Rules that trigger alerts (notifications of thresholds being crossed) when spend exceeds the specified percentages of the budget.",
          "items": {
            "$ref": "GoogleCloudBillingBudgetsV1beta1ThresholdRule"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "GoogleCloudBillingBudgetsV1beta1BudgetAmount": {
      "description": "The budgeted amount for each usage period.",
      "id": "GoogleCloudBillingBudgetsV1beta1BudgetAmount",
      "properties": {
        "lastPeriodAmount": {
          "$ref": "GoogleCloudBillingBudgetsV1beta1LastPeriodAmount",
          "description": "Use the last period's actual spend as the budget for the present period."
        },
        "specifiedAmount": {
          "$ref": "GoogleTypeMoney",
          "description": "A specified amount to use as the budget. `currency_code` is optional. If specified, it must match the currency of the billing account. The `currency_code` is provided on output."
        }
      },
      "type": "object"
    },
    "GoogleCloudBillingBudgetsV1beta1CreateBudgetRequest": {
      "description": "Request for CreateBudget",
      "id": "GoogleCloudBillingBudgetsV1beta1CreateBudgetRequest",
      "properties": {
        "budget": {
          "$ref": "GoogleCloudBillingBudgetsV1beta1Budget",
          "description": "Required. Budget to create."
        }
      },
      "type": "object"
    },
    "GoogleCloudBillingBudgetsV1beta1Filter": {
      "description": "A filter for a budget, limiting the scope of the cost to calculate.",
      "id": "GoogleCloudBillingBudgetsV1beta1Filter",
      "properties": {
        "creditTypesTreatment": {
          "description": "Optional. If not set, default behavior is `INCLUDE_ALL_CREDITS`.",
          "enum": [
            "CREDIT_TYPES_TREATMENT_UNSPECIFIED",
            "INCLUDE_ALL_CREDITS",
            "EXCLUDE_ALL_CREDITS"
          ],
          "enumDescriptions": [
            "",
            "All types of credit are subtracted from the gross cost to determine the spend for threshold calculations.",
            "All types of credit are added to the net cost to determine the spend for threshold calculations."
          ],
          "type": "string"
        },
        "labels": {
          "additionalProperties": {
            "items": {
              "type": "any"
            },
            "type": "array"
          },
          "description": "Optional. A single label and value pair specifying that usage from only this set of labeled resources should be included in the budget. Currently, multiple entries or multiple values per entry are not allowed. If omitted, the report will include all labeled and unlabeled usage.",
          "type": "object"
        },
        "projects": {
          "description": "Optional. A set of projects of the form `projects/{project}`, specifying that usage from only this set of projects should be included in the budget. If omitted, the report will include all usage for the billing account, regardless of which project the usage occurred on. Only zero or one project can be specified currently.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "services": {
          "description": "Optional. A set of services of the form `services/{service_id}`, specifying that usage from only this set of services should be included in the budget. If omitted, the report will include usage for all the services. The service names are available through the Catalog API: https://cloud.google.com/billing/v1/how-tos/catalog-api.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "subaccounts": {
          "description": "Optional. A set of subaccounts of the form `billingAccounts/{account_id}`, specifying that usage from only this set of subaccounts should be included in the budget. If a subaccount is set to the name of the parent account, usage from the parent account will be included. If omitted, the report will include usage from the parent account and all subaccounts, if they exist.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "GoogleCloudBillingBudgetsV1beta1LastPeriodAmount": {
      "description": "Describes a budget amount targeted to last period's spend. At this time, the amount is automatically 100% of last period's spend; that is, there are no other options yet. Future configuration will be described here (for example, configuring a percentage of last period's spend).",
      "id": "GoogleCloudBillingBudgetsV1beta1LastPeriodAmount",
      "properties": {},
      "type": "object"
    },
    "GoogleCloudBillingBudgetsV1beta1ListBudgetsResponse": {
      "description": "Response for ListBudgets",
      "id": "GoogleCloudBillingBudgetsV1beta1ListBudgetsResponse",
      "properties": {
        "budgets": {
          "description": "List of the budgets owned by the requested billing account.",
          "items": {
            "$ref": "GoogleCloudBillingBudgetsV1beta1Budget"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "If not empty, indicates that there may be more budgets that match the request; this value should be passed in a new `ListBudgetsRequest`.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleCloudBillingBudgetsV1beta1ThresholdRule": {
      "description": "ThresholdRule contains a definition of a threshold which triggers an alert (a notification of a threshold being crossed) to be sent when spend goes above the specified amount. Alerts are automatically e-mailed to users with the Billing Account Administrator role or the Billing Account User role. The thresholds here have no effect on notifications sent to anything configured under `Budget.all_updates_rule`.",
      "id": "GoogleCloudBillingBudgetsV1beta1ThresholdRule",
      "properties": {
        "spendBasis": {
          "description": "Optional. The type of basis used to determine if spend has passed the threshold. Behavior defaults to CURRENT_SPEND if not set.",
          "enum": [
            "BASIS_UNSPECIFIED",
            "CURRENT_SPEND",
            "FORECASTED_SPEND"
          ],
          "enumDescriptions": [
            "Unspecified threshold basis.",
            "Use current spend as the basis for comparison against the threshold.",
            "Use forecasted spend for the period as the basis for comparison against the threshold."
          ],
          "type": "string"
        },
        "thresholdPercent": {
          "description": "Required. Send an alert when this threshold is exceeded. This is a 1.0-based percentage, so 0.5 = 50%. Validation: non-negative number.",
          "format": "double",
          "type": "number"
        }
      },
      "type": "object"
    },
    "GoogleCloudBillingBudgetsV1beta1UpdateBudgetRequest": {
      "description": "Request for UpdateBudget",
      "id": "GoogleCloudBillingBudgetsV1beta1UpdateBudgetRequest",
      "properties": {
        "budget": {
          "$ref": "GoogleCloudBillingBudgetsV1beta1Budget",
          "description": "Required. The updated budget object. The budget to update is specified by the budget name in the budget."
        },
        "updateMask": {
          "description": "Optional. Indicates which fields in the provided budget to update. Read-only fields (such as `name`) cannot be changed. If this is not provided, then only fields with non-default values from the request are updated. See https://developers.google.com/protocol-buffers/docs/proto3#default for more details about default values.",
          "format": "google-fieldmask",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GoogleProtobufEmpty": {
      "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.",
      "id": "GoogleProtobufEmpty",
      "properties": {},
      "type": "object"
    },
    "GoogleTypeMoney": {
      "description": "Represents an amount of money with its currency type.",
      "id": "GoogleTypeMoney",
      "properties": {
        "currencyCode": {
          "description": "The 3-letter currency code defined in ISO 4217.",
          "type": "string"
        },
        "nanos": {
          "description": "Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.",
          "format": "int32",
          "type": "integer"
        },
        "units": {
          "description": "The whole units of the amount. For example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar.",
          "format": "int64",
          "type": "string"
        }
      },
      "type": "object"
    }
  },
  "servicePath": "",
  "title": "Cloud Billing Budget API",
  "version": "v1beta1",
  "version_module": true
}