proto_docs/google/cloud/billing/budgets/v1beta1/budget_model.rb in google-cloud-billing-budgets-v1beta1-0.5.0 vs proto_docs/google/cloud/billing/budgets/v1beta1/budget_model.rb in google-cloud-billing-budgets-v1beta1-0.6.0
- old
+ new
@@ -23,12 +23,12 @@
module Budgets
module V1beta1
# 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).
+ # The budget time period is configurable, with options such as month (default),
+ # quarter, year, or custom time period.
# @!attribute [r] name
# @return [::String]
# 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}`.
@@ -36,12 +36,13 @@
# @return [::String]
# User data for display name in UI.
# Validation: <= 60 chars.
# @!attribute [rw] budget_filter
# @return [::Google::Cloud::Billing::Budgets::V1beta1::Filter]
- # Optional. Filters that define which resources are used to compute
- # the actual spend against the budget.
+ # Optional. Filters that define which resources are used to compute the
+ # actual spend against the budget amount, such as projects, services, and the
+ # budget's time period, as well as other filters.
# @!attribute [rw] amount
# @return [::Google::Cloud::Billing::Budgets::V1beta1::BudgetAmount]
# Required. Budgeted amount.
# @!attribute [rw] threshold_rules
# @return [::Array<::Google::Cloud::Billing::Budgets::V1beta1::ThresholdRule>]
@@ -65,25 +66,33 @@
# @!attribute [rw] specified_amount
# @return [::Google::Type::Money]
# A specified amount to use as the budget.
# `currency_code` is optional. If specified when creating a budget, it must
# match the currency of the billing account. If specified when updating a
- # budget, it must match the existing budget currency_code.
+ # budget, it must match the currency_code of the existing budget.
# The `currency_code` is provided on output.
# @!attribute [rw] last_period_amount
# @return [::Google::Cloud::Billing::Budgets::V1beta1::LastPeriodAmount]
# Use the last period's actual spend as the budget for the present period.
+ # LastPeriodAmount can only be set when the budget's time period is a
+ # {::Google::Cloud::Billing::Budgets::V1beta1::Filter#calendar_period Filter.calendar_period}.
+ # It cannot be set in combination with
+ # {::Google::Cloud::Billing::Budgets::V1beta1::Filter#custom_period Filter.custom_period}.
class BudgetAmount
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
- # 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).
+ # Describes a budget amount targeted to the last
+ # {::Google::Cloud::Billing::Budgets::V1beta1::Filter#calendar_period Filter.calendar_period}
+ # spend. At this time, the amount is automatically 100% of the last calendar
+ # period's spend; that is, there are no other options yet.
+ # Future configuration options will be described here (for example, configuring
+ # a percentage of last period's spend).
+ # LastPeriodAmount cannot be set for a budget configured with
+ # a
+ # {::Google::Cloud::Billing::Budgets::V1beta1::Filter#custom_period Filter.custom_period}.
class LastPeriodAmount
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
@@ -115,10 +124,14 @@
# Use current spend as the basis for comparison against the threshold.
CURRENT_SPEND = 1
# Use forecasted spend for the period as the basis for comparison against
# the threshold.
+ # FORECASTED_SPEND can only be set when the budget's time period is a
+ # {::Google::Cloud::Billing::Budgets::V1beta1::Filter#calendar_period Filter.calendar_period}.
+ # It cannot be set in combination with
+ # {::Google::Cloud::Billing::Budgets::V1beta1::Filter#custom_period Filter.custom_period}.
FORECASTED_SPEND = 2
end
end
# AllUpdatesRule defines notifications that are sent based on budget spend
@@ -127,16 +140,16 @@
# @return [::String]
# 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
+ # https://cloud.google.com/billing/docs/how-to/budgets-programmatic-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
+ # https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#permissions_required_for_this_task
# for more details on Pub/Sub roles and permissions.
# @!attribute [rw] schema_version
# @return [::String]
# Optional. Required when
# {::Google::Cloud::Billing::Budgets::V1beta1::AllUpdatesRule#pubsub_topic AllUpdatesRule.pubsub_topic}
@@ -177,17 +190,16 @@
# @return [::Array<::String>]
# Optional. If
# {::Google::Cloud::Billing::Budgets::V1beta1::Filter#credit_types_treatment Filter.credit_types_treatment}
# is INCLUDE_SPECIFIED_CREDITS, this is a list of credit types to be
# subtracted from gross cost to determine the spend for threshold
- # calculations.
+ # calculations. See [a list of acceptable credit type
+ # values](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#credits-type).
#
# If
# {::Google::Cloud::Billing::Budgets::V1beta1::Filter#credit_types_treatment Filter.credit_types_treatment}
- # is **not** INCLUDE_SPECIFIED_CREDITS, this field must be empty. See [a list
- # of acceptable credit type
- # values](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#credits-type).
+ # is **not** INCLUDE_SPECIFIED_CREDITS, this field must be empty.
# @!attribute [rw] credit_types_treatment
# @return [::Google::Cloud::Billing::Budgets::V1beta1::Filter::CreditTypesTreatment]
# Optional. If not set, default behavior is `INCLUDE_ALL_CREDITS`.
# @!attribute [rw] services
# @return [::Array<::String>]
@@ -209,10 +221,22 @@
# @return [::Google::Protobuf::Map{::String => ::Google::Protobuf::ListValue}]
# 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.
+ # @!attribute [rw] calendar_period
+ # @return [::Google::Cloud::Billing::Budgets::V1beta1::CalendarPeriod]
+ # Optional. Specifies to track usage for recurring calendar period.
+ # For example, assume that CalendarPeriod.QUARTER is set. The budget will
+ # track usage from April 1 to June 30, when the current calendar month is
+ # April, May, June. After that, it will track usage from July 1 to
+ # September 30 when the current calendar month is July, August, September,
+ # so on.
+ # @!attribute [rw] custom_period
+ # @return [::Google::Cloud::Billing::Budgets::V1beta1::CustomPeriod]
+ # Optional. Specifies to track usage from any start date (required) to any
+ # end date (optional). This time period is static, it does not recur.
class Filter
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
# @!attribute [rw] key
@@ -222,12 +246,15 @@
class LabelsEntry
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
- # Specifies how credits should be treated when determining spend for
- # threshold calculations.
+ # Specifies how credits are applied when determining the spend for
+ # threshold calculations. Budgets track the total cost minus any applicable
+ # selected credits.
+ # [See the documentation for a list of credit
+ # types](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#credits-type).
module CreditTypesTreatment
CREDIT_TYPES_TREATMENT_UNSPECIFIED = 0
# All types of credit are subtracted from the gross cost to determine the
# spend for threshold calculations.
@@ -235,13 +262,48 @@
# All types of credit are added to the net cost to determine the spend for
# threshold calculations.
EXCLUDE_ALL_CREDITS = 2
- # Credit types specified in the credit_types field are subtracted from the
+ # [Credit
+ # types](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#credits-type)
+ # specified in the credit_types field are subtracted from the
# gross cost to determine the spend for threshold calculations.
INCLUDE_SPECIFIED_CREDITS = 3
end
+ end
+
+ # All date times begin at 12 AM US and Canadian Pacific Time (UTC-8).
+ # @!attribute [rw] start_date
+ # @return [::Google::Type::Date]
+ # Required. The start date must be after January 1, 2017.
+ # @!attribute [rw] end_date
+ # @return [::Google::Type::Date]
+ # Optional. The end date of the time period. Budgets with elapsed end date
+ # won't be processed. If unset, specifies to track all usage incurred since
+ # the start_date.
+ class CustomPeriod
+ include ::Google::Protobuf::MessageExts
+ extend ::Google::Protobuf::MessageExts::ClassMethods
+ end
+
+ # A `CalendarPeriod` represents the abstract concept of a time period that
+ # has a canonical start. Grammatically, "the start of the current
+ # `CalendarPeriod`". All calendar times begin at 12 AM US and Canadian
+ # Pacific Time (UTC-8).
+ module CalendarPeriod
+ CALENDAR_PERIOD_UNSPECIFIED = 0
+
+ # A month. Month starts on the first day of each month, such as January 1,
+ # February 1, March 1, and so on.
+ MONTH = 1
+
+ # A quarter. Quarters start on dates January 1, April 1, July 1, and October
+ # 1 of each year.
+ QUARTER = 2
+
+ # A year. Year starts on January 1.
+ YEAR = 3
end
end
end
end
end