diff --git a/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/Budget.java b/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/Budget.java index e4680a30..5ba5c4c8 100644 --- a/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/Budget.java +++ b/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/Budget.java @@ -25,8 +25,8 @@ * 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. * * * Protobuf type {@code google.cloud.billing.budgets.v1.Budget} @@ -308,8 +308,9 @@ public com.google.protobuf.ByteString getDisplayNameBytes() { * * *
- * 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. ** *
@@ -326,8 +327,9 @@ public boolean hasBudgetFilter() {
*
*
*
- * 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.
*
*
*
@@ -346,8 +348,9 @@ public com.google.cloud.billing.budgets.v1.Filter getBudgetFilter() {
*
*
*
- * 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.
*
*
*
@@ -846,8 +849,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
* 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.
*
*
* Protobuf type {@code google.cloud.billing.budgets.v1.Budget}
@@ -1340,8 +1343,9 @@ public Builder setDisplayNameBytes(com.google.protobuf.ByteString value) {
*
*
*
- * 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.
*
*
*
@@ -1357,8 +1361,9 @@ public boolean hasBudgetFilter() {
*
*
*
- * 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.
*
*
*
@@ -1380,8 +1385,9 @@ public com.google.cloud.billing.budgets.v1.Filter getBudgetFilter() {
*
*
*
- * 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.
*
*
*
@@ -1405,8 +1411,9 @@ public Builder setBudgetFilter(com.google.cloud.billing.budgets.v1.Filter value)
*
*
*
- * 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.
*
*
*
@@ -1428,8 +1435,9 @@ public Builder setBudgetFilter(
*
*
*
- * 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.
*
*
*
@@ -1457,8 +1465,9 @@ public Builder mergeBudgetFilter(com.google.cloud.billing.budgets.v1.Filter valu
*
*
*
- * 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.
*
*
*
@@ -1480,8 +1489,9 @@ public Builder clearBudgetFilter() {
*
*
*
- * 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.
*
*
*
@@ -1497,8 +1507,9 @@ public com.google.cloud.billing.budgets.v1.Filter.Builder getBudgetFilterBuilder
*
*
*
- * 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.
*
*
*
@@ -1518,8 +1529,9 @@ public com.google.cloud.billing.budgets.v1.FilterOrBuilder getBudgetFilterOrBuil
*
*
*
- * 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.
*
*
*
diff --git a/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/BudgetAmount.java b/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/BudgetAmount.java
index 251fe6b0..ca3fdb08 100644
--- a/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/BudgetAmount.java
+++ b/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/BudgetAmount.java
@@ -252,6 +252,10 @@ public com.google.type.MoneyOrBuilder getSpecifiedAmountOrBuilder() {
*
*
* 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1.Filter.calendar_period].
+ * It cannot be set in combination with
+ * [Filter.custom_period][google.cloud.billing.budgets.v1.Filter.custom_period].
*
*
* .google.cloud.billing.budgets.v1.LastPeriodAmount last_period_amount = 2;
@@ -267,6 +271,10 @@ public boolean hasLastPeriodAmount() {
*
*
* 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1.Filter.calendar_period].
+ * It cannot be set in combination with
+ * [Filter.custom_period][google.cloud.billing.budgets.v1.Filter.custom_period].
*
*
* .google.cloud.billing.budgets.v1.LastPeriodAmount last_period_amount = 2;
@@ -285,6 +293,10 @@ public com.google.cloud.billing.budgets.v1.LastPeriodAmount getLastPeriodAmount(
*
*
* 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1.Filter.calendar_period].
+ * It cannot be set in combination with
+ * [Filter.custom_period][google.cloud.billing.budgets.v1.Filter.custom_period].
*
*
* .google.cloud.billing.budgets.v1.LastPeriodAmount last_period_amount = 2;
@@ -931,6 +943,10 @@ public com.google.type.MoneyOrBuilder getSpecifiedAmountOrBuilder() {
*
*
* 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1.Filter.calendar_period].
+ * It cannot be set in combination with
+ * [Filter.custom_period][google.cloud.billing.budgets.v1.Filter.custom_period].
*
*
* .google.cloud.billing.budgets.v1.LastPeriodAmount last_period_amount = 2;
@@ -946,6 +962,10 @@ public boolean hasLastPeriodAmount() {
*
*
* 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1.Filter.calendar_period].
+ * It cannot be set in combination with
+ * [Filter.custom_period][google.cloud.billing.budgets.v1.Filter.custom_period].
*
*
* .google.cloud.billing.budgets.v1.LastPeriodAmount last_period_amount = 2;
@@ -971,6 +991,10 @@ public com.google.cloud.billing.budgets.v1.LastPeriodAmount getLastPeriodAmount(
*
*
* 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1.Filter.calendar_period].
+ * It cannot be set in combination with
+ * [Filter.custom_period][google.cloud.billing.budgets.v1.Filter.custom_period].
*
*
* .google.cloud.billing.budgets.v1.LastPeriodAmount last_period_amount = 2;
@@ -993,6 +1017,10 @@ public Builder setLastPeriodAmount(com.google.cloud.billing.budgets.v1.LastPerio
*
*
* 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1.Filter.calendar_period].
+ * It cannot be set in combination with
+ * [Filter.custom_period][google.cloud.billing.budgets.v1.Filter.custom_period].
*
*
* .google.cloud.billing.budgets.v1.LastPeriodAmount last_period_amount = 2;
@@ -1013,6 +1041,10 @@ public Builder setLastPeriodAmount(
*
*
* 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1.Filter.calendar_period].
+ * It cannot be set in combination with
+ * [Filter.custom_period][google.cloud.billing.budgets.v1.Filter.custom_period].
*
*
* .google.cloud.billing.budgets.v1.LastPeriodAmount last_period_amount = 2;
@@ -1046,6 +1078,10 @@ public Builder mergeLastPeriodAmount(
*
*
* 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1.Filter.calendar_period].
+ * It cannot be set in combination with
+ * [Filter.custom_period][google.cloud.billing.budgets.v1.Filter.custom_period].
*
*
* .google.cloud.billing.budgets.v1.LastPeriodAmount last_period_amount = 2;
@@ -1071,6 +1107,10 @@ public Builder clearLastPeriodAmount() {
*
*
* 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1.Filter.calendar_period].
+ * It cannot be set in combination with
+ * [Filter.custom_period][google.cloud.billing.budgets.v1.Filter.custom_period].
*
*
* .google.cloud.billing.budgets.v1.LastPeriodAmount last_period_amount = 2;
@@ -1084,6 +1124,10 @@ public Builder clearLastPeriodAmount() {
*
*
* 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1.Filter.calendar_period].
+ * It cannot be set in combination with
+ * [Filter.custom_period][google.cloud.billing.budgets.v1.Filter.custom_period].
*
*
* .google.cloud.billing.budgets.v1.LastPeriodAmount last_period_amount = 2;
@@ -1105,6 +1149,10 @@ public Builder clearLastPeriodAmount() {
*
*
* 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1.Filter.calendar_period].
+ * It cannot be set in combination with
+ * [Filter.custom_period][google.cloud.billing.budgets.v1.Filter.custom_period].
*
*
* .google.cloud.billing.budgets.v1.LastPeriodAmount last_period_amount = 2;
diff --git a/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/BudgetAmountOrBuilder.java b/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/BudgetAmountOrBuilder.java
index 59955311..2406cdff 100644
--- a/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/BudgetAmountOrBuilder.java
+++ b/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/BudgetAmountOrBuilder.java
@@ -75,6 +75,10 @@ public interface BudgetAmountOrBuilder
*
*
* 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1.Filter.calendar_period].
+ * It cannot be set in combination with
+ * [Filter.custom_period][google.cloud.billing.budgets.v1.Filter.custom_period].
*
*
* .google.cloud.billing.budgets.v1.LastPeriodAmount last_period_amount = 2;
@@ -87,6 +91,10 @@ public interface BudgetAmountOrBuilder
*
*
* 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1.Filter.calendar_period].
+ * It cannot be set in combination with
+ * [Filter.custom_period][google.cloud.billing.budgets.v1.Filter.custom_period].
*
*
* .google.cloud.billing.budgets.v1.LastPeriodAmount last_period_amount = 2;
@@ -99,6 +107,10 @@ public interface BudgetAmountOrBuilder
*
*
* 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1.Filter.calendar_period].
+ * It cannot be set in combination with
+ * [Filter.custom_period][google.cloud.billing.budgets.v1.Filter.custom_period].
*
*
* .google.cloud.billing.budgets.v1.LastPeriodAmount last_period_amount = 2;
diff --git a/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/BudgetModelProto.java b/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/BudgetModelProto.java
index 056668d6..9993f6af 100644
--- a/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/BudgetModelProto.java
+++ b/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/BudgetModelProto.java
@@ -55,6 +55,10 @@ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry r
internal_static_google_cloud_billing_budgets_v1_Filter_LabelsEntry_descriptor;
static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internal_static_google_cloud_billing_budgets_v1_Filter_LabelsEntry_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_cloud_billing_budgets_v1_CustomPeriod_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_cloud_billing_budgets_v1_CustomPeriod_fieldAccessorTable;
public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
return descriptor;
@@ -68,49 +72,59 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "_model.proto\022\037google.cloud.billing.budge"
+ "ts.v1\032\037google/api/field_behavior.proto\032\031"
+ "google/api/resource.proto\032\034google/protob"
- + "uf/struct.proto\032\027google/type/money.proto"
- + "\"\317\003\n\006Budget\022\021\n\004name\030\001 \001(\tB\003\340A\003\022\024\n\014displa"
- + "y_name\030\002 \001(\t\022C\n\rbudget_filter\030\003 \001(\0132\'.go"
- + "ogle.cloud.billing.budgets.v1.FilterB\003\340A"
- + "\001\022B\n\006amount\030\004 \001(\0132-.google.cloud.billing"
- + ".budgets.v1.BudgetAmountB\003\340A\002\022L\n\017thresho"
- + "ld_rules\030\005 \003(\0132..google.cloud.billing.bu"
- + "dgets.v1.ThresholdRuleB\003\340A\001\022S\n\022notificat"
- + "ions_rule\030\006 \001(\01322.google.cloud.billing.b"
- + "udgets.v1.NotificationsRuleB\003\340A\001\022\021\n\004etag"
- + "\030\007 \001(\tB\003\340A\001:]\352AZ\n$billingbudgets.googlea"
- + "pis.com/Budget\0222billingAccounts/{billing"
- + "_account}/budgets/{budget}\"\240\001\n\014BudgetAmo"
- + "unt\022.\n\020specified_amount\030\001 \001(\0132\022.google.t"
- + "ype.MoneyH\000\022O\n\022last_period_amount\030\002 \001(\0132"
- + "1.google.cloud.billing.budgets.v1.LastPe"
- + "riodAmountH\000B\017\n\rbudget_amount\"\022\n\020LastPer"
- + "iodAmount\"\310\001\n\rThresholdRule\022\036\n\021threshold"
- + "_percent\030\001 \001(\001B\003\340A\002\022N\n\013spend_basis\030\002 \001(\016"
- + "24.google.cloud.billing.budgets.v1.Thres"
- + "holdRule.BasisB\003\340A\001\"G\n\005Basis\022\025\n\021BASIS_UN"
- + "SPECIFIED\020\000\022\021\n\rCURRENT_SPEND\020\001\022\024\n\020FORECA"
- + "STED_SPEND\020\002\"\247\001\n\021NotificationsRule\022\031\n\014pu"
- + "bsub_topic\030\001 \001(\tB\003\340A\001\022\033\n\016schema_version\030"
- + "\002 \001(\tB\003\340A\001\022-\n monitoring_notification_ch"
- + "annels\030\003 \003(\tB\003\340A\001\022+\n\036disable_default_iam"
- + "_recipients\030\004 \001(\010B\003\340A\001\"\365\003\n\006Filter\022\025\n\010pro"
- + "jects\030\001 \003(\tB\003\340A\001\022\031\n\014credit_types\030\007 \003(\tB\003"
- + "\340A\001\022a\n\026credit_types_treatment\030\004 \001(\0162<.go"
- + "ogle.cloud.billing.budgets.v1.Filter.Cre"
- + "ditTypesTreatmentB\003\340A\001\022\025\n\010services\030\003 \003(\t"
- + "B\003\340A\001\022\030\n\013subaccounts\030\005 \003(\tB\003\340A\001\022H\n\006label"
- + "s\030\006 \003(\01323.google.cloud.billing.budgets.v"
- + "1.Filter.LabelsEntryB\003\340A\001\032I\n\013LabelsEntry"
- + "\022\013\n\003key\030\001 \001(\t\022)\n\005value\030\002 \001(\0132\032.google.pr"
- + "otobuf.ListValue:\0028\001\"\217\001\n\024CreditTypesTrea"
- + "tment\022&\n\"CREDIT_TYPES_TREATMENT_UNSPECIF"
- + "IED\020\000\022\027\n\023INCLUDE_ALL_CREDITS\020\001\022\027\n\023EXCLUD"
- + "E_ALL_CREDITS\020\002\022\035\n\031INCLUDE_SPECIFIED_CRE"
- + "DITS\020\003B\201\001\n#com.google.cloud.billing.budg"
- + "ets.v1B\020BudgetModelProtoP\001ZFgoogle.golan"
- + "g.org/genproto/googleapis/cloud/billing/"
- + "budgets/v1;budgetsb\006proto3"
+ + "uf/struct.proto\032\026google/type/date.proto\032"
+ + "\027google/type/money.proto\"\317\003\n\006Budget\022\021\n\004n"
+ + "ame\030\001 \001(\tB\003\340A\003\022\024\n\014display_name\030\002 \001(\t\022C\n\r"
+ + "budget_filter\030\003 \001(\0132\'.google.cloud.billi"
+ + "ng.budgets.v1.FilterB\003\340A\001\022B\n\006amount\030\004 \001("
+ + "\0132-.google.cloud.billing.budgets.v1.Budg"
+ + "etAmountB\003\340A\002\022L\n\017threshold_rules\030\005 \003(\0132."
+ + ".google.cloud.billing.budgets.v1.Thresho"
+ + "ldRuleB\003\340A\001\022S\n\022notifications_rule\030\006 \001(\0132"
+ + "2.google.cloud.billing.budgets.v1.Notifi"
+ + "cationsRuleB\003\340A\001\022\021\n\004etag\030\007 \001(\tB\003\340A\001:]\352AZ"
+ + "\n$billingbudgets.googleapis.com/Budget\0222"
+ + "billingAccounts/{billing_account}/budget"
+ + "s/{budget}\"\240\001\n\014BudgetAmount\022.\n\020specified"
+ + "_amount\030\001 \001(\0132\022.google.type.MoneyH\000\022O\n\022l"
+ + "ast_period_amount\030\002 \001(\01321.google.cloud.b"
+ + "illing.budgets.v1.LastPeriodAmountH\000B\017\n\r"
+ + "budget_amount\"\022\n\020LastPeriodAmount\"\310\001\n\rTh"
+ + "resholdRule\022\036\n\021threshold_percent\030\001 \001(\001B\003"
+ + "\340A\002\022N\n\013spend_basis\030\002 \001(\01624.google.cloud."
+ + "billing.budgets.v1.ThresholdRule.BasisB\003"
+ + "\340A\001\"G\n\005Basis\022\025\n\021BASIS_UNSPECIFIED\020\000\022\021\n\rC"
+ + "URRENT_SPEND\020\001\022\024\n\020FORECASTED_SPEND\020\002\"\247\001\n"
+ + "\021NotificationsRule\022\031\n\014pubsub_topic\030\001 \001(\t"
+ + "B\003\340A\001\022\033\n\016schema_version\030\002 \001(\tB\003\340A\001\022-\n mo"
+ + "nitoring_notification_channels\030\003 \003(\tB\003\340A"
+ + "\001\022+\n\036disable_default_iam_recipients\030\004 \001("
+ + "\010B\003\340A\001\"\243\005\n\006Filter\022\025\n\010projects\030\001 \003(\tB\003\340A\001"
+ + "\022\031\n\014credit_types\030\007 \003(\tB\003\340A\001\022a\n\026credit_ty"
+ + "pes_treatment\030\004 \001(\0162<.google.cloud.billi"
+ + "ng.budgets.v1.Filter.CreditTypesTreatmen"
+ + "tB\003\340A\001\022\025\n\010services\030\003 \003(\tB\003\340A\001\022\030\n\013subacco"
+ + "unts\030\005 \003(\tB\003\340A\001\022H\n\006labels\030\006 \003(\01323.google"
+ + ".cloud.billing.budgets.v1.Filter.LabelsE"
+ + "ntryB\003\340A\001\022O\n\017calendar_period\030\010 \001(\0162/.goo"
+ + "gle.cloud.billing.budgets.v1.CalendarPer"
+ + "iodB\003\340A\001H\000\022K\n\rcustom_period\030\t \001(\0132-.goog"
+ + "le.cloud.billing.budgets.v1.CustomPeriod"
+ + "B\003\340A\001H\000\032I\n\013LabelsEntry\022\013\n\003key\030\001 \001(\t\022)\n\005v"
+ + "alue\030\002 \001(\0132\032.google.protobuf.ListValue:\002"
+ + "8\001\"\217\001\n\024CreditTypesTreatment\022&\n\"CREDIT_TY"
+ + "PES_TREATMENT_UNSPECIFIED\020\000\022\027\n\023INCLUDE_A"
+ + "LL_CREDITS\020\001\022\027\n\023EXCLUDE_ALL_CREDITS\020\002\022\035\n"
+ + "\031INCLUDE_SPECIFIED_CREDITS\020\003B\016\n\014usage_pe"
+ + "riod\"d\n\014CustomPeriod\022*\n\nstart_date\030\001 \001(\013"
+ + "2\021.google.type.DateB\003\340A\002\022(\n\010end_date\030\002 \001"
+ + "(\0132\021.google.type.DateB\003\340A\001*S\n\016CalendarPe"
+ + "riod\022\037\n\033CALENDAR_PERIOD_UNSPECIFIED\020\000\022\t\n"
+ + "\005MONTH\020\001\022\013\n\007QUARTER\020\002\022\010\n\004YEAR\020\003B\201\001\n#com."
+ + "google.cloud.billing.budgets.v1B\020BudgetM"
+ + "odelProtoP\001ZFgoogle.golang.org/genproto/"
+ + "googleapis/cloud/billing/budgets/v1;budg"
+ + "etsb\006proto3"
};
descriptor =
com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
@@ -119,6 +133,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
com.google.api.FieldBehaviorProto.getDescriptor(),
com.google.api.ResourceProto.getDescriptor(),
com.google.protobuf.StructProto.getDescriptor(),
+ com.google.type.DateProto.getDescriptor(),
com.google.type.MoneyProto.getDescriptor(),
});
internal_static_google_cloud_billing_budgets_v1_Budget_descriptor =
@@ -180,6 +195,9 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"Services",
"Subaccounts",
"Labels",
+ "CalendarPeriod",
+ "CustomPeriod",
+ "UsagePeriod",
});
internal_static_google_cloud_billing_budgets_v1_Filter_LabelsEntry_descriptor =
internal_static_google_cloud_billing_budgets_v1_Filter_descriptor.getNestedTypes().get(0);
@@ -189,6 +207,14 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
new java.lang.String[] {
"Key", "Value",
});
+ internal_static_google_cloud_billing_budgets_v1_CustomPeriod_descriptor =
+ getDescriptor().getMessageTypes().get(6);
+ internal_static_google_cloud_billing_budgets_v1_CustomPeriod_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_cloud_billing_budgets_v1_CustomPeriod_descriptor,
+ new java.lang.String[] {
+ "StartDate", "EndDate",
+ });
com.google.protobuf.ExtensionRegistry registry =
com.google.protobuf.ExtensionRegistry.newInstance();
registry.add(com.google.api.FieldBehaviorProto.fieldBehavior);
@@ -198,6 +224,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
com.google.api.FieldBehaviorProto.getDescriptor();
com.google.api.ResourceProto.getDescriptor();
com.google.protobuf.StructProto.getDescriptor();
+ com.google.type.DateProto.getDescriptor();
com.google.type.MoneyProto.getDescriptor();
}
diff --git a/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/BudgetOrBuilder.java b/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/BudgetOrBuilder.java
index 7d30fad5..a4f0d489 100644
--- a/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/BudgetOrBuilder.java
+++ b/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/BudgetOrBuilder.java
@@ -83,8 +83,9 @@ public interface BudgetOrBuilder
*
*
*
- * 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.
*
*
*
@@ -98,8 +99,9 @@ public interface BudgetOrBuilder
*
*
*
- * 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.
*
*
*
@@ -113,8 +115,9 @@ public interface BudgetOrBuilder
*
*
*
- * 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.
*
*
*
diff --git a/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/CalendarPeriod.java b/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/CalendarPeriod.java
new file mode 100644
index 00000000..e33a4f3c
--- /dev/null
+++ b/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/CalendarPeriod.java
@@ -0,0 +1,191 @@
+/*
+ * Copyright 2020 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/cloud/billing/budgets/v1/budget_model.proto
+
+package com.google.cloud.billing.budgets.v1;
+
+/**
+ *
+ *
+ *
+ * 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).
+ *
+ *
+ * Protobuf enum {@code google.cloud.billing.budgets.v1.CalendarPeriod}
+ */
+public enum CalendarPeriod implements com.google.protobuf.ProtocolMessageEnum {
+ /** CALENDAR_PERIOD_UNSPECIFIED = 0;
*/
+ 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;
+ */
+ MONTH(1),
+ /**
+ *
+ *
+ *
+ * A quarter. Quarters start on dates January 1, April 1, July 1, and October
+ * 1 of each year.
+ *
+ *
+ * QUARTER = 2;
+ */
+ QUARTER(2),
+ /**
+ *
+ *
+ *
+ * A year. Year starts on January 1.
+ *
+ *
+ * YEAR = 3;
+ */
+ YEAR(3),
+ UNRECOGNIZED(-1),
+ ;
+
+ /** CALENDAR_PERIOD_UNSPECIFIED = 0;
*/
+ public static final int CALENDAR_PERIOD_UNSPECIFIED_VALUE = 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;
+ */
+ public static final int MONTH_VALUE = 1;
+ /**
+ *
+ *
+ *
+ * A quarter. Quarters start on dates January 1, April 1, July 1, and October
+ * 1 of each year.
+ *
+ *
+ * QUARTER = 2;
+ */
+ public static final int QUARTER_VALUE = 2;
+ /**
+ *
+ *
+ *
+ * A year. Year starts on January 1.
+ *
+ *
+ * YEAR = 3;
+ */
+ public static final int YEAR_VALUE = 3;
+
+ public final int getNumber() {
+ if (this == UNRECOGNIZED) {
+ throw new java.lang.IllegalArgumentException(
+ "Can't get the number of an unknown enum value.");
+ }
+ return value;
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ * @deprecated Use {@link #forNumber(int)} instead.
+ */
+ @java.lang.Deprecated
+ public static CalendarPeriod valueOf(int value) {
+ return forNumber(value);
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ */
+ public static CalendarPeriod forNumber(int value) {
+ switch (value) {
+ case 0:
+ return CALENDAR_PERIOD_UNSPECIFIED;
+ case 1:
+ return MONTH;
+ case 2:
+ return QUARTER;
+ case 3:
+ return YEAR;
+ default:
+ return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() {
+ return internalValueMap;
+ }
+
+ private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap =
+ new com.google.protobuf.Internal.EnumLiteMap() {
+ public CalendarPeriod findValueByNumber(int number) {
+ return CalendarPeriod.forNumber(number);
+ }
+ };
+
+ public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
+ if (this == UNRECOGNIZED) {
+ throw new java.lang.IllegalStateException(
+ "Can't get the descriptor of an unrecognized enum value.");
+ }
+ return getDescriptor().getValues().get(ordinal());
+ }
+
+ public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
+ return getDescriptor();
+ }
+
+ public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
+ return com.google.cloud.billing.budgets.v1.BudgetModelProto.getDescriptor()
+ .getEnumTypes()
+ .get(0);
+ }
+
+ private static final CalendarPeriod[] VALUES = values();
+
+ public static CalendarPeriod valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+ if (desc.getType() != getDescriptor()) {
+ throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
+ }
+ if (desc.getIndex() == -1) {
+ return UNRECOGNIZED;
+ }
+ return VALUES[desc.getIndex()];
+ }
+
+ private final int value;
+
+ private CalendarPeriod(int value) {
+ this.value = value;
+ }
+
+ // @@protoc_insertion_point(enum_scope:google.cloud.billing.budgets.v1.CalendarPeriod)
+}
diff --git a/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/CustomPeriod.java b/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/CustomPeriod.java
new file mode 100644
index 00000000..16ccd2fc
--- /dev/null
+++ b/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/CustomPeriod.java
@@ -0,0 +1,999 @@
+/*
+ * Copyright 2020 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/cloud/billing/budgets/v1/budget_model.proto
+
+package com.google.cloud.billing.budgets.v1;
+
+/**
+ *
+ *
+ *
+ * All date times begin at 12 AM US and Canadian Pacific Time (UTC-8).
+ *
+ *
+ * Protobuf type {@code google.cloud.billing.budgets.v1.CustomPeriod}
+ */
+public final class CustomPeriod extends com.google.protobuf.GeneratedMessageV3
+ implements
+ // @@protoc_insertion_point(message_implements:google.cloud.billing.budgets.v1.CustomPeriod)
+ CustomPeriodOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use CustomPeriod.newBuilder() to construct.
+ private CustomPeriod(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
+ super(builder);
+ }
+
+ private CustomPeriod() {}
+
+ @java.lang.Override
+ @SuppressWarnings({"unused"})
+ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
+ return new CustomPeriod();
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
+ return this.unknownFields;
+ }
+
+ private CustomPeriod(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ if (extensionRegistry == null) {
+ throw new java.lang.NullPointerException();
+ }
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 10:
+ {
+ com.google.type.Date.Builder subBuilder = null;
+ if (startDate_ != null) {
+ subBuilder = startDate_.toBuilder();
+ }
+ startDate_ = input.readMessage(com.google.type.Date.parser(), extensionRegistry);
+ if (subBuilder != null) {
+ subBuilder.mergeFrom(startDate_);
+ startDate_ = subBuilder.buildPartial();
+ }
+
+ break;
+ }
+ case 18:
+ {
+ com.google.type.Date.Builder subBuilder = null;
+ if (endDate_ != null) {
+ subBuilder = endDate_.toBuilder();
+ }
+ endDate_ = input.readMessage(com.google.type.Date.parser(), extensionRegistry);
+ if (subBuilder != null) {
+ subBuilder.mergeFrom(endDate_);
+ endDate_ = subBuilder.buildPartial();
+ }
+
+ break;
+ }
+ default:
+ {
+ if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.cloud.billing.budgets.v1.BudgetModelProto
+ .internal_static_google_cloud_billing_budgets_v1_CustomPeriod_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.cloud.billing.budgets.v1.BudgetModelProto
+ .internal_static_google_cloud_billing_budgets_v1_CustomPeriod_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.cloud.billing.budgets.v1.CustomPeriod.class,
+ com.google.cloud.billing.budgets.v1.CustomPeriod.Builder.class);
+ }
+
+ public static final int START_DATE_FIELD_NUMBER = 1;
+ private com.google.type.Date startDate_;
+ /**
+ *
+ *
+ *
+ * Required. The start date must be after January 1, 2017.
+ *
+ *
+ * .google.type.Date start_date = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return Whether the startDate field is set.
+ */
+ @java.lang.Override
+ public boolean hasStartDate() {
+ return startDate_ != null;
+ }
+ /**
+ *
+ *
+ *
+ * Required. The start date must be after January 1, 2017.
+ *
+ *
+ * .google.type.Date start_date = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return The startDate.
+ */
+ @java.lang.Override
+ public com.google.type.Date getStartDate() {
+ return startDate_ == null ? com.google.type.Date.getDefaultInstance() : startDate_;
+ }
+ /**
+ *
+ *
+ *
+ * Required. The start date must be after January 1, 2017.
+ *
+ *
+ * .google.type.Date start_date = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ @java.lang.Override
+ public com.google.type.DateOrBuilder getStartDateOrBuilder() {
+ return getStartDate();
+ }
+
+ public static final int END_DATE_FIELD_NUMBER = 2;
+ private com.google.type.Date endDate_;
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ * .google.type.Date end_date = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return Whether the endDate field is set.
+ */
+ @java.lang.Override
+ public boolean hasEndDate() {
+ return endDate_ != null;
+ }
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ * .google.type.Date end_date = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The endDate.
+ */
+ @java.lang.Override
+ public com.google.type.Date getEndDate() {
+ return endDate_ == null ? com.google.type.Date.getDefaultInstance() : endDate_;
+ }
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ * .google.type.Date end_date = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ @java.lang.Override
+ public com.google.type.DateOrBuilder getEndDateOrBuilder() {
+ return getEndDate();
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (startDate_ != null) {
+ output.writeMessage(1, getStartDate());
+ }
+ if (endDate_ != null) {
+ output.writeMessage(2, getEndDate());
+ }
+ unknownFields.writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (startDate_ != null) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getStartDate());
+ }
+ if (endDate_ != null) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getEndDate());
+ }
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.google.cloud.billing.budgets.v1.CustomPeriod)) {
+ return super.equals(obj);
+ }
+ com.google.cloud.billing.budgets.v1.CustomPeriod other =
+ (com.google.cloud.billing.budgets.v1.CustomPeriod) obj;
+
+ if (hasStartDate() != other.hasStartDate()) return false;
+ if (hasStartDate()) {
+ if (!getStartDate().equals(other.getStartDate())) return false;
+ }
+ if (hasEndDate() != other.hasEndDate()) return false;
+ if (hasEndDate()) {
+ if (!getEndDate().equals(other.getEndDate())) return false;
+ }
+ if (!unknownFields.equals(other.unknownFields)) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ if (hasStartDate()) {
+ hash = (37 * hash) + START_DATE_FIELD_NUMBER;
+ hash = (53 * hash) + getStartDate().hashCode();
+ }
+ if (hasEndDate()) {
+ hash = (37 * hash) + END_DATE_FIELD_NUMBER;
+ hash = (53 * hash) + getEndDate().hashCode();
+ }
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.cloud.billing.budgets.v1.CustomPeriod parseFrom(java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.cloud.billing.budgets.v1.CustomPeriod parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.cloud.billing.budgets.v1.CustomPeriod parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.cloud.billing.budgets.v1.CustomPeriod parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.cloud.billing.budgets.v1.CustomPeriod parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.cloud.billing.budgets.v1.CustomPeriod parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.cloud.billing.budgets.v1.CustomPeriod parseFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.cloud.billing.budgets.v1.CustomPeriod parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.cloud.billing.budgets.v1.CustomPeriod parseDelimitedFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.cloud.billing.budgets.v1.CustomPeriod parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.cloud.billing.budgets.v1.CustomPeriod parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.cloud.billing.budgets.v1.CustomPeriod parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() {
+ return newBuilder();
+ }
+
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+
+ public static Builder newBuilder(com.google.cloud.billing.budgets.v1.CustomPeriod prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ *
+ *
+ *
+ * All date times begin at 12 AM US and Canadian Pacific Time (UTC-8).
+ *
+ *
+ * Protobuf type {@code google.cloud.billing.budgets.v1.CustomPeriod}
+ */
+ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder
+ implements
+ // @@protoc_insertion_point(builder_implements:google.cloud.billing.budgets.v1.CustomPeriod)
+ com.google.cloud.billing.budgets.v1.CustomPeriodOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.cloud.billing.budgets.v1.BudgetModelProto
+ .internal_static_google_cloud_billing_budgets_v1_CustomPeriod_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.cloud.billing.budgets.v1.BudgetModelProto
+ .internal_static_google_cloud_billing_budgets_v1_CustomPeriod_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.cloud.billing.budgets.v1.CustomPeriod.class,
+ com.google.cloud.billing.budgets.v1.CustomPeriod.Builder.class);
+ }
+
+ // Construct using com.google.cloud.billing.budgets.v1.CustomPeriod.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
+ }
+
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ if (startDateBuilder_ == null) {
+ startDate_ = null;
+ } else {
+ startDate_ = null;
+ startDateBuilder_ = null;
+ }
+ if (endDateBuilder_ == null) {
+ endDate_ = null;
+ } else {
+ endDate_ = null;
+ endDateBuilder_ = null;
+ }
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
+ return com.google.cloud.billing.budgets.v1.BudgetModelProto
+ .internal_static_google_cloud_billing_budgets_v1_CustomPeriod_descriptor;
+ }
+
+ @java.lang.Override
+ public com.google.cloud.billing.budgets.v1.CustomPeriod getDefaultInstanceForType() {
+ return com.google.cloud.billing.budgets.v1.CustomPeriod.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public com.google.cloud.billing.budgets.v1.CustomPeriod build() {
+ com.google.cloud.billing.budgets.v1.CustomPeriod result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public com.google.cloud.billing.budgets.v1.CustomPeriod buildPartial() {
+ com.google.cloud.billing.budgets.v1.CustomPeriod result =
+ new com.google.cloud.billing.budgets.v1.CustomPeriod(this);
+ if (startDateBuilder_ == null) {
+ result.startDate_ = startDate_;
+ } else {
+ result.startDate_ = startDateBuilder_.build();
+ }
+ if (endDateBuilder_ == null) {
+ result.endDate_ = endDate_;
+ } else {
+ result.endDate_ = endDateBuilder_.build();
+ }
+ onBuilt();
+ return result;
+ }
+
+ @java.lang.Override
+ public Builder clone() {
+ return super.clone();
+ }
+
+ @java.lang.Override
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
+ return super.setField(field, value);
+ }
+
+ @java.lang.Override
+ public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return super.clearField(field);
+ }
+
+ @java.lang.Override
+ public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return super.clearOneof(oneof);
+ }
+
+ @java.lang.Override
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) {
+ return super.setRepeatedField(field, index, value);
+ }
+
+ @java.lang.Override
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
+ return super.addRepeatedField(field, value);
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.google.cloud.billing.budgets.v1.CustomPeriod) {
+ return mergeFrom((com.google.cloud.billing.budgets.v1.CustomPeriod) other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.google.cloud.billing.budgets.v1.CustomPeriod other) {
+ if (other == com.google.cloud.billing.budgets.v1.CustomPeriod.getDefaultInstance())
+ return this;
+ if (other.hasStartDate()) {
+ mergeStartDate(other.getStartDate());
+ }
+ if (other.hasEndDate()) {
+ mergeEndDate(other.getEndDate());
+ }
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ com.google.cloud.billing.budgets.v1.CustomPeriod parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (com.google.cloud.billing.budgets.v1.CustomPeriod) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+
+ private com.google.type.Date startDate_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>
+ startDateBuilder_;
+ /**
+ *
+ *
+ *
+ * Required. The start date must be after January 1, 2017.
+ *
+ *
+ * .google.type.Date start_date = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return Whether the startDate field is set.
+ */
+ public boolean hasStartDate() {
+ return startDateBuilder_ != null || startDate_ != null;
+ }
+ /**
+ *
+ *
+ *
+ * Required. The start date must be after January 1, 2017.
+ *
+ *
+ * .google.type.Date start_date = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return The startDate.
+ */
+ public com.google.type.Date getStartDate() {
+ if (startDateBuilder_ == null) {
+ return startDate_ == null ? com.google.type.Date.getDefaultInstance() : startDate_;
+ } else {
+ return startDateBuilder_.getMessage();
+ }
+ }
+ /**
+ *
+ *
+ *
+ * Required. The start date must be after January 1, 2017.
+ *
+ *
+ * .google.type.Date start_date = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ public Builder setStartDate(com.google.type.Date value) {
+ if (startDateBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ startDate_ = value;
+ onChanged();
+ } else {
+ startDateBuilder_.setMessage(value);
+ }
+
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * Required. The start date must be after January 1, 2017.
+ *
+ *
+ * .google.type.Date start_date = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ public Builder setStartDate(com.google.type.Date.Builder builderForValue) {
+ if (startDateBuilder_ == null) {
+ startDate_ = builderForValue.build();
+ onChanged();
+ } else {
+ startDateBuilder_.setMessage(builderForValue.build());
+ }
+
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * Required. The start date must be after January 1, 2017.
+ *
+ *
+ * .google.type.Date start_date = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ public Builder mergeStartDate(com.google.type.Date value) {
+ if (startDateBuilder_ == null) {
+ if (startDate_ != null) {
+ startDate_ = com.google.type.Date.newBuilder(startDate_).mergeFrom(value).buildPartial();
+ } else {
+ startDate_ = value;
+ }
+ onChanged();
+ } else {
+ startDateBuilder_.mergeFrom(value);
+ }
+
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * Required. The start date must be after January 1, 2017.
+ *
+ *
+ * .google.type.Date start_date = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ public Builder clearStartDate() {
+ if (startDateBuilder_ == null) {
+ startDate_ = null;
+ onChanged();
+ } else {
+ startDate_ = null;
+ startDateBuilder_ = null;
+ }
+
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * Required. The start date must be after January 1, 2017.
+ *
+ *
+ * .google.type.Date start_date = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ public com.google.type.Date.Builder getStartDateBuilder() {
+
+ onChanged();
+ return getStartDateFieldBuilder().getBuilder();
+ }
+ /**
+ *
+ *
+ *
+ * Required. The start date must be after January 1, 2017.
+ *
+ *
+ * .google.type.Date start_date = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ public com.google.type.DateOrBuilder getStartDateOrBuilder() {
+ if (startDateBuilder_ != null) {
+ return startDateBuilder_.getMessageOrBuilder();
+ } else {
+ return startDate_ == null ? com.google.type.Date.getDefaultInstance() : startDate_;
+ }
+ }
+ /**
+ *
+ *
+ *
+ * Required. The start date must be after January 1, 2017.
+ *
+ *
+ * .google.type.Date start_date = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>
+ getStartDateFieldBuilder() {
+ if (startDateBuilder_ == null) {
+ startDateBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>(
+ getStartDate(), getParentForChildren(), isClean());
+ startDate_ = null;
+ }
+ return startDateBuilder_;
+ }
+
+ private com.google.type.Date endDate_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>
+ endDateBuilder_;
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ * .google.type.Date end_date = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return Whether the endDate field is set.
+ */
+ public boolean hasEndDate() {
+ return endDateBuilder_ != null || endDate_ != null;
+ }
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ * .google.type.Date end_date = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The endDate.
+ */
+ public com.google.type.Date getEndDate() {
+ if (endDateBuilder_ == null) {
+ return endDate_ == null ? com.google.type.Date.getDefaultInstance() : endDate_;
+ } else {
+ return endDateBuilder_.getMessage();
+ }
+ }
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ * .google.type.Date end_date = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ public Builder setEndDate(com.google.type.Date value) {
+ if (endDateBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ endDate_ = value;
+ onChanged();
+ } else {
+ endDateBuilder_.setMessage(value);
+ }
+
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ * .google.type.Date end_date = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ public Builder setEndDate(com.google.type.Date.Builder builderForValue) {
+ if (endDateBuilder_ == null) {
+ endDate_ = builderForValue.build();
+ onChanged();
+ } else {
+ endDateBuilder_.setMessage(builderForValue.build());
+ }
+
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ * .google.type.Date end_date = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ public Builder mergeEndDate(com.google.type.Date value) {
+ if (endDateBuilder_ == null) {
+ if (endDate_ != null) {
+ endDate_ = com.google.type.Date.newBuilder(endDate_).mergeFrom(value).buildPartial();
+ } else {
+ endDate_ = value;
+ }
+ onChanged();
+ } else {
+ endDateBuilder_.mergeFrom(value);
+ }
+
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ * .google.type.Date end_date = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ public Builder clearEndDate() {
+ if (endDateBuilder_ == null) {
+ endDate_ = null;
+ onChanged();
+ } else {
+ endDate_ = null;
+ endDateBuilder_ = null;
+ }
+
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ * .google.type.Date end_date = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ public com.google.type.Date.Builder getEndDateBuilder() {
+
+ onChanged();
+ return getEndDateFieldBuilder().getBuilder();
+ }
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ * .google.type.Date end_date = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ public com.google.type.DateOrBuilder getEndDateOrBuilder() {
+ if (endDateBuilder_ != null) {
+ return endDateBuilder_.getMessageOrBuilder();
+ } else {
+ return endDate_ == null ? com.google.type.Date.getDefaultInstance() : endDate_;
+ }
+ }
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ * .google.type.Date end_date = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>
+ getEndDateFieldBuilder() {
+ if (endDateBuilder_ == null) {
+ endDateBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>(
+ getEndDate(), getParentForChildren(), isClean());
+ endDate_ = null;
+ }
+ return endDateBuilder_;
+ }
+
+ @java.lang.Override
+ public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.cloud.billing.budgets.v1.CustomPeriod)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.cloud.billing.budgets.v1.CustomPeriod)
+ private static final com.google.cloud.billing.budgets.v1.CustomPeriod DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.cloud.billing.budgets.v1.CustomPeriod();
+ }
+
+ public static com.google.cloud.billing.budgets.v1.CustomPeriod getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser PARSER =
+ new com.google.protobuf.AbstractParser() {
+ @java.lang.Override
+ public CustomPeriod parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new CustomPeriod(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser getParserForType() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.cloud.billing.budgets.v1.CustomPeriod getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+}
diff --git a/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/CustomPeriodOrBuilder.java b/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/CustomPeriodOrBuilder.java
new file mode 100644
index 00000000..51d71a3c
--- /dev/null
+++ b/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/CustomPeriodOrBuilder.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright 2020 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/cloud/billing/budgets/v1/budget_model.proto
+
+package com.google.cloud.billing.budgets.v1;
+
+public interface CustomPeriodOrBuilder
+ extends
+ // @@protoc_insertion_point(interface_extends:google.cloud.billing.budgets.v1.CustomPeriod)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ *
+ *
+ *
+ * Required. The start date must be after January 1, 2017.
+ *
+ *
+ * .google.type.Date start_date = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return Whether the startDate field is set.
+ */
+ boolean hasStartDate();
+ /**
+ *
+ *
+ *
+ * Required. The start date must be after January 1, 2017.
+ *
+ *
+ * .google.type.Date start_date = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return The startDate.
+ */
+ com.google.type.Date getStartDate();
+ /**
+ *
+ *
+ *
+ * Required. The start date must be after January 1, 2017.
+ *
+ *
+ * .google.type.Date start_date = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ com.google.type.DateOrBuilder getStartDateOrBuilder();
+
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ * .google.type.Date end_date = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return Whether the endDate field is set.
+ */
+ boolean hasEndDate();
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ * .google.type.Date end_date = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The endDate.
+ */
+ com.google.type.Date getEndDate();
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ * .google.type.Date end_date = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ com.google.type.DateOrBuilder getEndDateOrBuilder();
+}
diff --git a/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/Filter.java b/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/Filter.java
index 17988c17..bd6323f3 100644
--- a/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/Filter.java
+++ b/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/Filter.java
@@ -137,6 +137,31 @@ private Filter(
creditTypes_.add(s);
break;
}
+ case 64:
+ {
+ int rawValue = input.readEnum();
+ usagePeriodCase_ = 8;
+ usagePeriod_ = rawValue;
+ break;
+ }
+ case 74:
+ {
+ com.google.cloud.billing.budgets.v1.CustomPeriod.Builder subBuilder = null;
+ if (usagePeriodCase_ == 9) {
+ subBuilder =
+ ((com.google.cloud.billing.budgets.v1.CustomPeriod) usagePeriod_).toBuilder();
+ }
+ usagePeriod_ =
+ input.readMessage(
+ com.google.cloud.billing.budgets.v1.CustomPeriod.parser(), extensionRegistry);
+ if (subBuilder != null) {
+ subBuilder.mergeFrom(
+ (com.google.cloud.billing.budgets.v1.CustomPeriod) usagePeriod_);
+ usagePeriod_ = subBuilder.buildPartial();
+ }
+ usagePeriodCase_ = 9;
+ break;
+ }
default:
{
if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
@@ -198,22 +223,17 @@ protected com.google.protobuf.MapField internalGetMapField(int number) {
*
*
*
- * 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).
*
*
* Protobuf enum {@code google.cloud.billing.budgets.v1.Filter.CreditTypesTreatment}
*/
public enum CreditTypesTreatment implements com.google.protobuf.ProtocolMessageEnum {
- /**
- *
- *
- *
- * This is an invalid value.
- *
- *
- * CREDIT_TYPES_TREATMENT_UNSPECIFIED = 0;
- */
+ /** CREDIT_TYPES_TREATMENT_UNSPECIFIED = 0;
*/
CREDIT_TYPES_TREATMENT_UNSPECIFIED(0),
/**
*
@@ -241,7 +261,9 @@ public enum CreditTypesTreatment implements com.google.protobuf.ProtocolMessageE
*
*
*
- * 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.
*
*
@@ -251,15 +273,7 @@ public enum CreditTypesTreatment implements com.google.protobuf.ProtocolMessageE
UNRECOGNIZED(-1),
;
- /**
- *
- *
- *
- * This is an invalid value.
- *
- *
- * CREDIT_TYPES_TREATMENT_UNSPECIFIED = 0;
- */
+ /** CREDIT_TYPES_TREATMENT_UNSPECIFIED = 0;
*/
public static final int CREDIT_TYPES_TREATMENT_UNSPECIFIED_VALUE = 0;
/**
*
@@ -287,7 +301,9 @@ public enum CreditTypesTreatment implements com.google.protobuf.ProtocolMessageE
*
*
*
- * 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.
*
*
@@ -383,6 +399,53 @@ private CreditTypesTreatment(int value) {
// @@protoc_insertion_point(enum_scope:google.cloud.billing.budgets.v1.Filter.CreditTypesTreatment)
}
+ private int usagePeriodCase_ = 0;
+ private java.lang.Object usagePeriod_;
+
+ public enum UsagePeriodCase
+ implements
+ com.google.protobuf.Internal.EnumLite,
+ com.google.protobuf.AbstractMessage.InternalOneOfEnum {
+ CALENDAR_PERIOD(8),
+ CUSTOM_PERIOD(9),
+ USAGEPERIOD_NOT_SET(0);
+ private final int value;
+
+ private UsagePeriodCase(int value) {
+ this.value = value;
+ }
+ /**
+ * @param value The number of the enum to look for.
+ * @return The enum associated with the given number.
+ * @deprecated Use {@link #forNumber(int)} instead.
+ */
+ @java.lang.Deprecated
+ public static UsagePeriodCase valueOf(int value) {
+ return forNumber(value);
+ }
+
+ public static UsagePeriodCase forNumber(int value) {
+ switch (value) {
+ case 8:
+ return CALENDAR_PERIOD;
+ case 9:
+ return CUSTOM_PERIOD;
+ case 0:
+ return USAGEPERIOD_NOT_SET;
+ default:
+ return null;
+ }
+ }
+
+ public int getNumber() {
+ return this.value;
+ }
+ };
+
+ public UsagePeriodCase getUsagePeriodCase() {
+ return UsagePeriodCase.forNumber(usagePeriodCase_);
+ }
+
public static final int PROJECTS_FIELD_NUMBER = 1;
private com.google.protobuf.LazyStringList projects_;
/**
@@ -470,12 +533,11 @@ public com.google.protobuf.ByteString getProjectsBytes(int index) {
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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.
*
*
* repeated string credit_types = 7 [(.google.api.field_behavior) = OPTIONAL];
@@ -493,12 +555,11 @@ public com.google.protobuf.ProtocolStringList getCreditTypesList() {
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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.
*
*
* repeated string credit_types = 7 [(.google.api.field_behavior) = OPTIONAL];
@@ -516,12 +577,11 @@ public int getCreditTypesCount() {
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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.
*
*
* repeated string credit_types = 7 [(.google.api.field_behavior) = OPTIONAL];
@@ -540,12 +600,11 @@ public java.lang.String getCreditTypes(int index) {
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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.
*
*
* repeated string credit_types = 7 [(.google.api.field_behavior) = OPTIONAL];
@@ -886,6 +945,143 @@ public com.google.protobuf.ListValue getLabelsOrThrow(java.lang.String key) {
return map.get(key);
}
+ public static final int CALENDAR_PERIOD_FIELD_NUMBER = 8;
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1.CalendarPeriod calendar_period = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return Whether the calendarPeriod field is set.
+ */
+ public boolean hasCalendarPeriod() {
+ return usagePeriodCase_ == 8;
+ }
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1.CalendarPeriod calendar_period = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The enum numeric value on the wire for calendarPeriod.
+ */
+ public int getCalendarPeriodValue() {
+ if (usagePeriodCase_ == 8) {
+ return (java.lang.Integer) usagePeriod_;
+ }
+ return 0;
+ }
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1.CalendarPeriod calendar_period = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The calendarPeriod.
+ */
+ public com.google.cloud.billing.budgets.v1.CalendarPeriod getCalendarPeriod() {
+ if (usagePeriodCase_ == 8) {
+ @SuppressWarnings("deprecation")
+ com.google.cloud.billing.budgets.v1.CalendarPeriod result =
+ com.google.cloud.billing.budgets.v1.CalendarPeriod.valueOf(
+ (java.lang.Integer) usagePeriod_);
+ return result == null
+ ? com.google.cloud.billing.budgets.v1.CalendarPeriod.UNRECOGNIZED
+ : result;
+ }
+ return com.google.cloud.billing.budgets.v1.CalendarPeriod.CALENDAR_PERIOD_UNSPECIFIED;
+ }
+
+ public static final int CUSTOM_PERIOD_FIELD_NUMBER = 9;
+ /**
+ *
+ *
+ *
+ * Optional. Specifies to track usage from any start date (required) to any
+ * end date (optional). This time period is static, it does not recur.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1.CustomPeriod custom_period = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return Whether the customPeriod field is set.
+ */
+ @java.lang.Override
+ public boolean hasCustomPeriod() {
+ return usagePeriodCase_ == 9;
+ }
+ /**
+ *
+ *
+ *
+ * Optional. Specifies to track usage from any start date (required) to any
+ * end date (optional). This time period is static, it does not recur.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1.CustomPeriod custom_period = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The customPeriod.
+ */
+ @java.lang.Override
+ public com.google.cloud.billing.budgets.v1.CustomPeriod getCustomPeriod() {
+ if (usagePeriodCase_ == 9) {
+ return (com.google.cloud.billing.budgets.v1.CustomPeriod) usagePeriod_;
+ }
+ return com.google.cloud.billing.budgets.v1.CustomPeriod.getDefaultInstance();
+ }
+ /**
+ *
+ *
+ *
+ * Optional. Specifies to track usage from any start date (required) to any
+ * end date (optional). This time period is static, it does not recur.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1.CustomPeriod custom_period = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ @java.lang.Override
+ public com.google.cloud.billing.budgets.v1.CustomPeriodOrBuilder getCustomPeriodOrBuilder() {
+ if (usagePeriodCase_ == 9) {
+ return (com.google.cloud.billing.budgets.v1.CustomPeriod) usagePeriod_;
+ }
+ return com.google.cloud.billing.budgets.v1.CustomPeriod.getDefaultInstance();
+ }
+
private byte memoizedIsInitialized = -1;
@java.lang.Override
@@ -920,6 +1116,12 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
for (int i = 0; i < creditTypes_.size(); i++) {
com.google.protobuf.GeneratedMessageV3.writeString(output, 7, creditTypes_.getRaw(i));
}
+ if (usagePeriodCase_ == 8) {
+ output.writeEnum(8, ((java.lang.Integer) usagePeriod_));
+ }
+ if (usagePeriodCase_ == 9) {
+ output.writeMessage(9, (com.google.cloud.billing.budgets.v1.CustomPeriod) usagePeriod_);
+ }
unknownFields.writeTo(output);
}
@@ -977,6 +1179,16 @@ public int getSerializedSize() {
size += dataSize;
size += 1 * getCreditTypesList().size();
}
+ if (usagePeriodCase_ == 8) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeEnumSize(
+ 8, ((java.lang.Integer) usagePeriod_));
+ }
+ if (usagePeriodCase_ == 9) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeMessageSize(
+ 9, (com.google.cloud.billing.budgets.v1.CustomPeriod) usagePeriod_);
+ }
size += unknownFields.getSerializedSize();
memoizedSize = size;
return size;
@@ -999,6 +1211,17 @@ public boolean equals(final java.lang.Object obj) {
if (!getServicesList().equals(other.getServicesList())) return false;
if (!getSubaccountsList().equals(other.getSubaccountsList())) return false;
if (!internalGetLabels().equals(other.internalGetLabels())) return false;
+ if (!getUsagePeriodCase().equals(other.getUsagePeriodCase())) return false;
+ switch (usagePeriodCase_) {
+ case 8:
+ if (getCalendarPeriodValue() != other.getCalendarPeriodValue()) return false;
+ break;
+ case 9:
+ if (!getCustomPeriod().equals(other.getCustomPeriod())) return false;
+ break;
+ case 0:
+ default:
+ }
if (!unknownFields.equals(other.unknownFields)) return false;
return true;
}
@@ -1032,6 +1255,18 @@ public int hashCode() {
hash = (37 * hash) + LABELS_FIELD_NUMBER;
hash = (53 * hash) + internalGetLabels().hashCode();
}
+ switch (usagePeriodCase_) {
+ case 8:
+ hash = (37 * hash) + CALENDAR_PERIOD_FIELD_NUMBER;
+ hash = (53 * hash) + getCalendarPeriodValue();
+ break;
+ case 9:
+ hash = (37 * hash) + CUSTOM_PERIOD_FIELD_NUMBER;
+ hash = (53 * hash) + getCustomPeriod().hashCode();
+ break;
+ case 0:
+ default:
+ }
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
@@ -1208,6 +1443,8 @@ public Builder clear() {
subaccounts_ = com.google.protobuf.LazyStringArrayList.EMPTY;
bitField0_ = (bitField0_ & ~0x00000008);
internalGetMutableLabels().clear();
+ usagePeriodCase_ = 0;
+ usagePeriod_ = null;
return this;
}
@@ -1259,6 +1496,17 @@ public com.google.cloud.billing.budgets.v1.Filter buildPartial() {
result.subaccounts_ = subaccounts_;
result.labels_ = internalGetLabels();
result.labels_.makeImmutable();
+ if (usagePeriodCase_ == 8) {
+ result.usagePeriod_ = usagePeriod_;
+ }
+ if (usagePeriodCase_ == 9) {
+ if (customPeriodBuilder_ == null) {
+ result.usagePeriod_ = usagePeriod_;
+ } else {
+ result.usagePeriod_ = customPeriodBuilder_.build();
+ }
+ }
+ result.usagePeriodCase_ = usagePeriodCase_;
onBuilt();
return result;
}
@@ -1352,6 +1600,22 @@ public Builder mergeFrom(com.google.cloud.billing.budgets.v1.Filter other) {
onChanged();
}
internalGetMutableLabels().mergeFrom(other.internalGetLabels());
+ switch (other.getUsagePeriodCase()) {
+ case CALENDAR_PERIOD:
+ {
+ setCalendarPeriodValue(other.getCalendarPeriodValue());
+ break;
+ }
+ case CUSTOM_PERIOD:
+ {
+ mergeCustomPeriod(other.getCustomPeriod());
+ break;
+ }
+ case USAGEPERIOD_NOT_SET:
+ {
+ break;
+ }
+ }
this.mergeUnknownFields(other.unknownFields);
onChanged();
return this;
@@ -1381,6 +1645,20 @@ public Builder mergeFrom(
return this;
}
+ private int usagePeriodCase_ = 0;
+ private java.lang.Object usagePeriod_;
+
+ public UsagePeriodCase getUsagePeriodCase() {
+ return UsagePeriodCase.forNumber(usagePeriodCase_);
+ }
+
+ public Builder clearUsagePeriod() {
+ usagePeriodCase_ = 0;
+ usagePeriod_ = null;
+ onChanged();
+ return this;
+ }
+
private int bitField0_;
private com.google.protobuf.LazyStringList projects_ =
@@ -1604,12 +1882,11 @@ private void ensureCreditTypesIsMutable() {
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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.
*
*
* repeated string credit_types = 7 [(.google.api.field_behavior) = OPTIONAL];
@@ -1627,12 +1904,11 @@ public com.google.protobuf.ProtocolStringList getCreditTypesList() {
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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.
*
*
* repeated string credit_types = 7 [(.google.api.field_behavior) = OPTIONAL];
@@ -1650,12 +1926,11 @@ public int getCreditTypesCount() {
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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.
*
*
* repeated string credit_types = 7 [(.google.api.field_behavior) = OPTIONAL];
@@ -1674,12 +1949,11 @@ public java.lang.String getCreditTypes(int index) {
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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.
*
*
* repeated string credit_types = 7 [(.google.api.field_behavior) = OPTIONAL];
@@ -1698,12 +1972,11 @@ public com.google.protobuf.ByteString getCreditTypesBytes(int index) {
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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.
*
*
* repeated string credit_types = 7 [(.google.api.field_behavior) = OPTIONAL];
@@ -1729,12 +2002,11 @@ public Builder setCreditTypes(int index, java.lang.String value) {
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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.
*
*
* repeated string credit_types = 7 [(.google.api.field_behavior) = OPTIONAL];
@@ -1759,12 +2031,11 @@ public Builder addCreditTypes(java.lang.String value) {
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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.
*
*
* repeated string credit_types = 7 [(.google.api.field_behavior) = OPTIONAL];
@@ -1786,12 +2057,11 @@ public Builder addAllCreditTypes(java.lang.Iterable values) {
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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.
*
*
* repeated string credit_types = 7 [(.google.api.field_behavior) = OPTIONAL];
@@ -1812,12 +2082,11 @@ public Builder clearCreditTypes() {
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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.
*
*
* repeated string credit_types = 7 [(.google.api.field_behavior) = OPTIONAL];
@@ -2564,6 +2833,401 @@ public Builder putAllLabels(
return this;
}
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1.CalendarPeriod calendar_period = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return Whether the calendarPeriod field is set.
+ */
+ @java.lang.Override
+ public boolean hasCalendarPeriod() {
+ return usagePeriodCase_ == 8;
+ }
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1.CalendarPeriod calendar_period = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The enum numeric value on the wire for calendarPeriod.
+ */
+ @java.lang.Override
+ public int getCalendarPeriodValue() {
+ if (usagePeriodCase_ == 8) {
+ return ((java.lang.Integer) usagePeriod_).intValue();
+ }
+ return 0;
+ }
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1.CalendarPeriod calendar_period = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @param value The enum numeric value on the wire for calendarPeriod to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCalendarPeriodValue(int value) {
+ usagePeriodCase_ = 8;
+ usagePeriod_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1.CalendarPeriod calendar_period = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The calendarPeriod.
+ */
+ @java.lang.Override
+ public com.google.cloud.billing.budgets.v1.CalendarPeriod getCalendarPeriod() {
+ if (usagePeriodCase_ == 8) {
+ @SuppressWarnings("deprecation")
+ com.google.cloud.billing.budgets.v1.CalendarPeriod result =
+ com.google.cloud.billing.budgets.v1.CalendarPeriod.valueOf(
+ (java.lang.Integer) usagePeriod_);
+ return result == null
+ ? com.google.cloud.billing.budgets.v1.CalendarPeriod.UNRECOGNIZED
+ : result;
+ }
+ return com.google.cloud.billing.budgets.v1.CalendarPeriod.CALENDAR_PERIOD_UNSPECIFIED;
+ }
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1.CalendarPeriod calendar_period = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @param value The calendarPeriod to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCalendarPeriod(com.google.cloud.billing.budgets.v1.CalendarPeriod value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ usagePeriodCase_ = 8;
+ usagePeriod_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1.CalendarPeriod calendar_period = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCalendarPeriod() {
+ if (usagePeriodCase_ == 8) {
+ usagePeriodCase_ = 0;
+ usagePeriod_ = null;
+ onChanged();
+ }
+ return this;
+ }
+
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.cloud.billing.budgets.v1.CustomPeriod,
+ com.google.cloud.billing.budgets.v1.CustomPeriod.Builder,
+ com.google.cloud.billing.budgets.v1.CustomPeriodOrBuilder>
+ customPeriodBuilder_;
+ /**
+ *
+ *
+ *
+ * Optional. Specifies to track usage from any start date (required) to any
+ * end date (optional). This time period is static, it does not recur.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1.CustomPeriod custom_period = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return Whether the customPeriod field is set.
+ */
+ @java.lang.Override
+ public boolean hasCustomPeriod() {
+ return usagePeriodCase_ == 9;
+ }
+ /**
+ *
+ *
+ *
+ * Optional. Specifies to track usage from any start date (required) to any
+ * end date (optional). This time period is static, it does not recur.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1.CustomPeriod custom_period = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The customPeriod.
+ */
+ @java.lang.Override
+ public com.google.cloud.billing.budgets.v1.CustomPeriod getCustomPeriod() {
+ if (customPeriodBuilder_ == null) {
+ if (usagePeriodCase_ == 9) {
+ return (com.google.cloud.billing.budgets.v1.CustomPeriod) usagePeriod_;
+ }
+ return com.google.cloud.billing.budgets.v1.CustomPeriod.getDefaultInstance();
+ } else {
+ if (usagePeriodCase_ == 9) {
+ return customPeriodBuilder_.getMessage();
+ }
+ return com.google.cloud.billing.budgets.v1.CustomPeriod.getDefaultInstance();
+ }
+ }
+ /**
+ *
+ *
+ *
+ * Optional. Specifies to track usage from any start date (required) to any
+ * end date (optional). This time period is static, it does not recur.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1.CustomPeriod custom_period = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public Builder setCustomPeriod(com.google.cloud.billing.budgets.v1.CustomPeriod value) {
+ if (customPeriodBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ usagePeriod_ = value;
+ onChanged();
+ } else {
+ customPeriodBuilder_.setMessage(value);
+ }
+ usagePeriodCase_ = 9;
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * Optional. Specifies to track usage from any start date (required) to any
+ * end date (optional). This time period is static, it does not recur.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1.CustomPeriod custom_period = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public Builder setCustomPeriod(
+ com.google.cloud.billing.budgets.v1.CustomPeriod.Builder builderForValue) {
+ if (customPeriodBuilder_ == null) {
+ usagePeriod_ = builderForValue.build();
+ onChanged();
+ } else {
+ customPeriodBuilder_.setMessage(builderForValue.build());
+ }
+ usagePeriodCase_ = 9;
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * Optional. Specifies to track usage from any start date (required) to any
+ * end date (optional). This time period is static, it does not recur.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1.CustomPeriod custom_period = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public Builder mergeCustomPeriod(com.google.cloud.billing.budgets.v1.CustomPeriod value) {
+ if (customPeriodBuilder_ == null) {
+ if (usagePeriodCase_ == 9
+ && usagePeriod_
+ != com.google.cloud.billing.budgets.v1.CustomPeriod.getDefaultInstance()) {
+ usagePeriod_ =
+ com.google.cloud.billing.budgets.v1.CustomPeriod.newBuilder(
+ (com.google.cloud.billing.budgets.v1.CustomPeriod) usagePeriod_)
+ .mergeFrom(value)
+ .buildPartial();
+ } else {
+ usagePeriod_ = value;
+ }
+ onChanged();
+ } else {
+ if (usagePeriodCase_ == 9) {
+ customPeriodBuilder_.mergeFrom(value);
+ }
+ customPeriodBuilder_.setMessage(value);
+ }
+ usagePeriodCase_ = 9;
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * Optional. Specifies to track usage from any start date (required) to any
+ * end date (optional). This time period is static, it does not recur.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1.CustomPeriod custom_period = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public Builder clearCustomPeriod() {
+ if (customPeriodBuilder_ == null) {
+ if (usagePeriodCase_ == 9) {
+ usagePeriodCase_ = 0;
+ usagePeriod_ = null;
+ onChanged();
+ }
+ } else {
+ if (usagePeriodCase_ == 9) {
+ usagePeriodCase_ = 0;
+ usagePeriod_ = null;
+ }
+ customPeriodBuilder_.clear();
+ }
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * Optional. Specifies to track usage from any start date (required) to any
+ * end date (optional). This time period is static, it does not recur.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1.CustomPeriod custom_period = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public com.google.cloud.billing.budgets.v1.CustomPeriod.Builder getCustomPeriodBuilder() {
+ return getCustomPeriodFieldBuilder().getBuilder();
+ }
+ /**
+ *
+ *
+ *
+ * Optional. Specifies to track usage from any start date (required) to any
+ * end date (optional). This time period is static, it does not recur.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1.CustomPeriod custom_period = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ @java.lang.Override
+ public com.google.cloud.billing.budgets.v1.CustomPeriodOrBuilder getCustomPeriodOrBuilder() {
+ if ((usagePeriodCase_ == 9) && (customPeriodBuilder_ != null)) {
+ return customPeriodBuilder_.getMessageOrBuilder();
+ } else {
+ if (usagePeriodCase_ == 9) {
+ return (com.google.cloud.billing.budgets.v1.CustomPeriod) usagePeriod_;
+ }
+ return com.google.cloud.billing.budgets.v1.CustomPeriod.getDefaultInstance();
+ }
+ }
+ /**
+ *
+ *
+ *
+ * Optional. Specifies to track usage from any start date (required) to any
+ * end date (optional). This time period is static, it does not recur.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1.CustomPeriod custom_period = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.cloud.billing.budgets.v1.CustomPeriod,
+ com.google.cloud.billing.budgets.v1.CustomPeriod.Builder,
+ com.google.cloud.billing.budgets.v1.CustomPeriodOrBuilder>
+ getCustomPeriodFieldBuilder() {
+ if (customPeriodBuilder_ == null) {
+ if (!(usagePeriodCase_ == 9)) {
+ usagePeriod_ = com.google.cloud.billing.budgets.v1.CustomPeriod.getDefaultInstance();
+ }
+ customPeriodBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.cloud.billing.budgets.v1.CustomPeriod,
+ com.google.cloud.billing.budgets.v1.CustomPeriod.Builder,
+ com.google.cloud.billing.budgets.v1.CustomPeriodOrBuilder>(
+ (com.google.cloud.billing.budgets.v1.CustomPeriod) usagePeriod_,
+ getParentForChildren(),
+ isClean());
+ usagePeriod_ = null;
+ }
+ usagePeriodCase_ = 9;
+ onChanged();
+ ;
+ return customPeriodBuilder_;
+ }
+
@java.lang.Override
public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
diff --git a/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/FilterOrBuilder.java b/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/FilterOrBuilder.java
index 200705ce..b85f7a2b 100644
--- a/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/FilterOrBuilder.java
+++ b/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/FilterOrBuilder.java
@@ -98,12 +98,11 @@ public interface FilterOrBuilder
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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.
*
*
* repeated string credit_types = 7 [(.google.api.field_behavior) = OPTIONAL];
@@ -119,12 +118,11 @@ public interface FilterOrBuilder
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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.
*
*
* repeated string credit_types = 7 [(.google.api.field_behavior) = OPTIONAL];
@@ -140,12 +138,11 @@ public interface FilterOrBuilder
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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.
*
*
* repeated string credit_types = 7 [(.google.api.field_behavior) = OPTIONAL];
@@ -162,12 +159,11 @@ public interface FilterOrBuilder
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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.
*
*
* repeated string credit_types = 7 [(.google.api.field_behavior) = OPTIONAL];
@@ -427,4 +423,108 @@ com.google.protobuf.ListValue getLabelsOrDefault(
*
*/
com.google.protobuf.ListValue getLabelsOrThrow(java.lang.String key);
+
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1.CalendarPeriod calendar_period = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return Whether the calendarPeriod field is set.
+ */
+ boolean hasCalendarPeriod();
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1.CalendarPeriod calendar_period = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The enum numeric value on the wire for calendarPeriod.
+ */
+ int getCalendarPeriodValue();
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1.CalendarPeriod calendar_period = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The calendarPeriod.
+ */
+ com.google.cloud.billing.budgets.v1.CalendarPeriod getCalendarPeriod();
+
+ /**
+ *
+ *
+ *
+ * Optional. Specifies to track usage from any start date (required) to any
+ * end date (optional). This time period is static, it does not recur.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1.CustomPeriod custom_period = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return Whether the customPeriod field is set.
+ */
+ boolean hasCustomPeriod();
+ /**
+ *
+ *
+ *
+ * Optional. Specifies to track usage from any start date (required) to any
+ * end date (optional). This time period is static, it does not recur.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1.CustomPeriod custom_period = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The customPeriod.
+ */
+ com.google.cloud.billing.budgets.v1.CustomPeriod getCustomPeriod();
+ /**
+ *
+ *
+ *
+ * Optional. Specifies to track usage from any start date (required) to any
+ * end date (optional). This time period is static, it does not recur.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1.CustomPeriod custom_period = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ com.google.cloud.billing.budgets.v1.CustomPeriodOrBuilder getCustomPeriodOrBuilder();
+
+ public com.google.cloud.billing.budgets.v1.Filter.UsagePeriodCase getUsagePeriodCase();
}
diff --git a/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/LastPeriodAmount.java b/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/LastPeriodAmount.java
index 0e1e4d57..d9461f62 100644
--- a/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/LastPeriodAmount.java
+++ b/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/LastPeriodAmount.java
@@ -22,11 +22,15 @@
*
*
*
- * 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1.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
+ * [Filter.custom_period][google.cloud.billing.budgets.v1.Filter.custom_period].
*
*
* Protobuf type {@code google.cloud.billing.budgets.v1.LastPeriodAmount}
@@ -260,11 +264,15 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
*
*
*
- * 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1.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
+ * [Filter.custom_period][google.cloud.billing.budgets.v1.Filter.custom_period].
*
*
* Protobuf type {@code google.cloud.billing.budgets.v1.LastPeriodAmount}
diff --git a/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/ThresholdRule.java b/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/ThresholdRule.java
index 1e16b806..5e69872f 100644
--- a/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/ThresholdRule.java
+++ b/proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/ThresholdRule.java
@@ -158,6 +158,10 @@ public enum Basis implements com.google.protobuf.ProtocolMessageEnum {
*
* 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1.Filter.calendar_period].
+ * It cannot be set in combination with
+ * [Filter.custom_period][google.cloud.billing.budgets.v1.Filter.custom_period].
*
*
* FORECASTED_SPEND = 2;
@@ -192,6 +196,10 @@ public enum Basis implements com.google.protobuf.ProtocolMessageEnum {
*
* 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1.Filter.calendar_period].
+ * It cannot be set in combination with
+ * [Filter.custom_period][google.cloud.billing.budgets.v1.Filter.custom_period].
*
*
* FORECASTED_SPEND = 2;
diff --git a/proto-google-cloud-billingbudgets-v1/src/main/proto/google/cloud/billing/budgets/v1/budget_model.proto b/proto-google-cloud-billingbudgets-v1/src/main/proto/google/cloud/billing/budgets/v1/budget_model.proto
index eefe3db4..6758f5ca 100644
--- a/proto-google-cloud-billingbudgets-v1/src/main/proto/google/cloud/billing/budgets/v1/budget_model.proto
+++ b/proto-google-cloud-billingbudgets-v1/src/main/proto/google/cloud/billing/budgets/v1/budget_model.proto
@@ -19,6 +19,7 @@ package google.cloud.billing.budgets.v1;
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/protobuf/struct.proto";
+import "google/type/date.proto";
import "google/type/money.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/billing/budgets/v1;budgets";
@@ -29,8 +30,8 @@ option java_package = "com.google.cloud.billing.budgets.v1";
// 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.
message Budget {
option (google.api.resource) = {
type: "billingbudgets.googleapis.com/Budget"
@@ -46,8 +47,9 @@ message Budget {
// characters.
string display_name = 2;
- // 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.
Filter budget_filter = 3 [(google.api.field_behavior) = OPTIONAL];
// Required. Budgeted amount.
@@ -81,15 +83,23 @@ message BudgetAmount {
google.type.Money specified_amount = 1;
// 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
+ // [Filter.calendar_period][google.cloud.billing.budgets.v1.Filter.calendar_period].
+ // It cannot be set in combination with
+ // [Filter.custom_period][google.cloud.billing.budgets.v1.Filter.custom_period].
LastPeriodAmount last_period_amount = 2;
}
}
-// 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
+// [Filter.calendar_period][google.cloud.billing.budgets.v1.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
+// [Filter.custom_period][google.cloud.billing.budgets.v1.Filter.custom_period].
message LastPeriodAmount {}
// ThresholdRule contains a definition of a threshold which triggers
@@ -110,6 +120,10 @@ message ThresholdRule {
// 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
+ // [Filter.calendar_period][google.cloud.billing.budgets.v1.Filter.calendar_period].
+ // It cannot be set in combination with
+ // [Filter.custom_period][google.cloud.billing.budgets.v1.Filter.custom_period].
FORECASTED_SPEND = 2;
}
@@ -168,10 +182,12 @@ message NotificationsRule {
// A filter for a budget, limiting the scope of the cost to calculate.
message Filter {
- // 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).
enum CreditTypesTreatment {
- // This is an invalid value.
CREDIT_TYPES_TREATMENT_UNSPECIFIED = 0;
// All types of credit are subtracted from the gross cost to determine the
@@ -182,7 +198,9 @@ message Filter {
// 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;
}
@@ -198,13 +216,12 @@ message Filter {
// [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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
// [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.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.
repeated string credit_types = 7 [(google.api.field_behavior) = OPTIONAL];
// Optional. If not set, default behavior is `INCLUDE_ALL_CREDITS`.
@@ -233,4 +250,51 @@ message Filter {
// the report will include all labeled and unlabeled usage.
map labels = 6
[(google.api.field_behavior) = OPTIONAL];
+
+ // Multiple options to choose the budget's time period, specifying that only
+ // usage that occurs during this time period should be included in the budget.
+ // If not set, the `usage_period` defaults to CalendarPeriod.MONTH.
+ oneof usage_period {
+ // 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.
+ CalendarPeriod calendar_period = 8 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. Specifies to track usage from any start date (required) to any
+ // end date (optional). This time period is static, it does not recur.
+ CustomPeriod custom_period = 9 [(google.api.field_behavior) = OPTIONAL];
+ }
+}
+
+// All date times begin at 12 AM US and Canadian Pacific Time (UTC-8).
+message CustomPeriod {
+ // Required. The start date must be after January 1, 2017.
+ google.type.Date start_date = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // 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.
+ google.type.Date end_date = 2 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// 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).
+enum 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;
}
diff --git a/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/AllUpdatesRule.java b/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/AllUpdatesRule.java
index 416af37b..8dd2f0ed 100644
--- a/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/AllUpdatesRule.java
+++ b/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/AllUpdatesRule.java
@@ -150,12 +150,12 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
* 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.
*
*
@@ -183,12 +183,12 @@ public java.lang.String getPubsubTopic() {
* 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.
*
*
@@ -785,12 +785,12 @@ public Builder mergeFrom(
* 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.
*
*
@@ -817,12 +817,12 @@ public java.lang.String getPubsubTopic() {
* 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.
*
*
@@ -849,12 +849,12 @@ public com.google.protobuf.ByteString getPubsubTopicBytes() {
* 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.
*
*
@@ -880,12 +880,12 @@ public Builder setPubsubTopic(java.lang.String value) {
* 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.
*
*
@@ -907,12 +907,12 @@ public Builder clearPubsubTopic() {
* 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.
*
*
diff --git a/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/AllUpdatesRuleOrBuilder.java b/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/AllUpdatesRuleOrBuilder.java
index ce3aee32..0e23f7d0 100644
--- a/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/AllUpdatesRuleOrBuilder.java
+++ b/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/AllUpdatesRuleOrBuilder.java
@@ -31,12 +31,12 @@ public interface AllUpdatesRuleOrBuilder
* 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.
*
*
@@ -53,12 +53,12 @@ public interface AllUpdatesRuleOrBuilder
* 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.
*
*
diff --git a/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/Budget.java b/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/Budget.java
index ad65034b..1c23ebe9 100644
--- a/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/Budget.java
+++ b/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/Budget.java
@@ -25,8 +25,8 @@
* 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.
*
*
* Protobuf type {@code google.cloud.billing.budgets.v1beta1.Budget}
@@ -310,8 +310,9 @@ public com.google.protobuf.ByteString getDisplayNameBytes() {
*
*
*
- * 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.
*
*
*
@@ -328,8 +329,9 @@ public boolean hasBudgetFilter() {
*
*
*
- * 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.
*
*
*
@@ -348,8 +350,9 @@ public com.google.cloud.billing.budgets.v1beta1.Filter getBudgetFilter() {
*
*
*
- * 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.
*
*
*
@@ -849,8 +852,8 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
* 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.
*
*
* Protobuf type {@code google.cloud.billing.budgets.v1beta1.Budget}
@@ -1344,8 +1347,9 @@ public Builder setDisplayNameBytes(com.google.protobuf.ByteString value) {
*
*
*
- * 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.
*
*
*
@@ -1361,8 +1365,9 @@ public boolean hasBudgetFilter() {
*
*
*
- * 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.
*
*
*
@@ -1384,8 +1389,9 @@ public com.google.cloud.billing.budgets.v1beta1.Filter getBudgetFilter() {
*
*
*
- * 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.
*
*
*
@@ -1409,8 +1415,9 @@ public Builder setBudgetFilter(com.google.cloud.billing.budgets.v1beta1.Filter v
*
*
*
- * 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.
*
*
*
@@ -1432,8 +1439,9 @@ public Builder setBudgetFilter(
*
*
*
- * 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.
*
*
*
@@ -1461,8 +1469,9 @@ public Builder mergeBudgetFilter(com.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.
*
*
*
@@ -1484,8 +1493,9 @@ public Builder clearBudgetFilter() {
*
*
*
- * 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.
*
*
*
@@ -1501,8 +1511,9 @@ public com.google.cloud.billing.budgets.v1beta1.Filter.Builder getBudgetFilterBu
*
*
*
- * 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.
*
*
*
@@ -1522,8 +1533,9 @@ public com.google.cloud.billing.budgets.v1beta1.FilterOrBuilder getBudgetFilterO
*
*
*
- * 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.
*
*
*
diff --git a/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/BudgetAmount.java b/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/BudgetAmount.java
index 8c412b23..46ad181d 100644
--- a/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/BudgetAmount.java
+++ b/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/BudgetAmount.java
@@ -191,7 +191,7 @@ public BudgetAmountCase getBudgetAmountCase() {
* 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.
*
*
@@ -210,7 +210,7 @@ public boolean hasSpecifiedAmount() {
* 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.
*
*
@@ -232,7 +232,7 @@ public com.google.type.Money getSpecifiedAmount() {
* 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.
*
*
@@ -252,6 +252,10 @@ public com.google.type.MoneyOrBuilder getSpecifiedAmountOrBuilder() {
*
*
* 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1beta1.Filter.calendar_period].
+ * It cannot be set in combination with
+ * [Filter.custom_period][google.cloud.billing.budgets.v1beta1.Filter.custom_period].
*
*
* .google.cloud.billing.budgets.v1beta1.LastPeriodAmount last_period_amount = 2;
@@ -267,6 +271,10 @@ public boolean hasLastPeriodAmount() {
*
*
* 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1beta1.Filter.calendar_period].
+ * It cannot be set in combination with
+ * [Filter.custom_period][google.cloud.billing.budgets.v1beta1.Filter.custom_period].
*
*
* .google.cloud.billing.budgets.v1beta1.LastPeriodAmount last_period_amount = 2;
@@ -285,6 +293,10 @@ public com.google.cloud.billing.budgets.v1beta1.LastPeriodAmount getLastPeriodAm
*
*
* 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1beta1.Filter.calendar_period].
+ * It cannot be set in combination with
+ * [Filter.custom_period][google.cloud.billing.budgets.v1beta1.Filter.custom_period].
*
*
* .google.cloud.billing.budgets.v1beta1.LastPeriodAmount last_period_amount = 2;
@@ -698,7 +710,7 @@ public Builder clearBudgetAmount() {
* 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.
*
*
@@ -717,7 +729,7 @@ public boolean hasSpecifiedAmount() {
* 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.
*
*
@@ -746,7 +758,7 @@ public com.google.type.Money getSpecifiedAmount() {
* 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.
*
*
@@ -772,7 +784,7 @@ public Builder setSpecifiedAmount(com.google.type.Money value) {
* 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.
*
*
@@ -795,7 +807,7 @@ public Builder setSpecifiedAmount(com.google.type.Money.Builder builderForValue)
* 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.
*
*
@@ -828,7 +840,7 @@ public Builder mergeSpecifiedAmount(com.google.type.Money value) {
* 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.
*
*
@@ -857,7 +869,7 @@ public Builder clearSpecifiedAmount() {
* 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.
*
*
@@ -873,7 +885,7 @@ public com.google.type.Money.Builder getSpecifiedAmountBuilder() {
* 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.
*
*
@@ -897,7 +909,7 @@ public com.google.type.MoneyOrBuilder getSpecifiedAmountOrBuilder() {
* 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.
*
*
@@ -934,6 +946,10 @@ public com.google.type.MoneyOrBuilder getSpecifiedAmountOrBuilder() {
*
*
* 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1beta1.Filter.calendar_period].
+ * It cannot be set in combination with
+ * [Filter.custom_period][google.cloud.billing.budgets.v1beta1.Filter.custom_period].
*
*
* .google.cloud.billing.budgets.v1beta1.LastPeriodAmount last_period_amount = 2;
@@ -949,6 +965,10 @@ public boolean hasLastPeriodAmount() {
*
*
* 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1beta1.Filter.calendar_period].
+ * It cannot be set in combination with
+ * [Filter.custom_period][google.cloud.billing.budgets.v1beta1.Filter.custom_period].
*
*
* .google.cloud.billing.budgets.v1beta1.LastPeriodAmount last_period_amount = 2;
@@ -974,6 +994,10 @@ public com.google.cloud.billing.budgets.v1beta1.LastPeriodAmount getLastPeriodAm
*
*
* 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1beta1.Filter.calendar_period].
+ * It cannot be set in combination with
+ * [Filter.custom_period][google.cloud.billing.budgets.v1beta1.Filter.custom_period].
*
*
* .google.cloud.billing.budgets.v1beta1.LastPeriodAmount last_period_amount = 2;
@@ -997,6 +1021,10 @@ public Builder setLastPeriodAmount(
*
*
* 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1beta1.Filter.calendar_period].
+ * It cannot be set in combination with
+ * [Filter.custom_period][google.cloud.billing.budgets.v1beta1.Filter.custom_period].
*
*
* .google.cloud.billing.budgets.v1beta1.LastPeriodAmount last_period_amount = 2;
@@ -1017,6 +1045,10 @@ public Builder setLastPeriodAmount(
*
*
* 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1beta1.Filter.calendar_period].
+ * It cannot be set in combination with
+ * [Filter.custom_period][google.cloud.billing.budgets.v1beta1.Filter.custom_period].
*
*
* .google.cloud.billing.budgets.v1beta1.LastPeriodAmount last_period_amount = 2;
@@ -1050,6 +1082,10 @@ public Builder mergeLastPeriodAmount(
*
*
* 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1beta1.Filter.calendar_period].
+ * It cannot be set in combination with
+ * [Filter.custom_period][google.cloud.billing.budgets.v1beta1.Filter.custom_period].
*
*
* .google.cloud.billing.budgets.v1beta1.LastPeriodAmount last_period_amount = 2;
@@ -1075,6 +1111,10 @@ public Builder clearLastPeriodAmount() {
*
*
* 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1beta1.Filter.calendar_period].
+ * It cannot be set in combination with
+ * [Filter.custom_period][google.cloud.billing.budgets.v1beta1.Filter.custom_period].
*
*
* .google.cloud.billing.budgets.v1beta1.LastPeriodAmount last_period_amount = 2;
@@ -1088,6 +1128,10 @@ public Builder clearLastPeriodAmount() {
*
*
* 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1beta1.Filter.calendar_period].
+ * It cannot be set in combination with
+ * [Filter.custom_period][google.cloud.billing.budgets.v1beta1.Filter.custom_period].
*
*
* .google.cloud.billing.budgets.v1beta1.LastPeriodAmount last_period_amount = 2;
@@ -1109,6 +1153,10 @@ public Builder clearLastPeriodAmount() {
*
*
* 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1beta1.Filter.calendar_period].
+ * It cannot be set in combination with
+ * [Filter.custom_period][google.cloud.billing.budgets.v1beta1.Filter.custom_period].
*
*
* .google.cloud.billing.budgets.v1beta1.LastPeriodAmount last_period_amount = 2;
diff --git a/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/BudgetAmountOrBuilder.java b/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/BudgetAmountOrBuilder.java
index 0a58c1ec..46bbb041 100644
--- a/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/BudgetAmountOrBuilder.java
+++ b/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/BudgetAmountOrBuilder.java
@@ -30,7 +30,7 @@ public interface BudgetAmountOrBuilder
* 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.
*
*
@@ -46,7 +46,7 @@ public interface BudgetAmountOrBuilder
* 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.
*
*
@@ -62,7 +62,7 @@ public interface BudgetAmountOrBuilder
* 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.
*
*
@@ -75,6 +75,10 @@ public interface BudgetAmountOrBuilder
*
*
* 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1beta1.Filter.calendar_period].
+ * It cannot be set in combination with
+ * [Filter.custom_period][google.cloud.billing.budgets.v1beta1.Filter.custom_period].
*
*
* .google.cloud.billing.budgets.v1beta1.LastPeriodAmount last_period_amount = 2;
@@ -87,6 +91,10 @@ public interface BudgetAmountOrBuilder
*
*
* 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1beta1.Filter.calendar_period].
+ * It cannot be set in combination with
+ * [Filter.custom_period][google.cloud.billing.budgets.v1beta1.Filter.custom_period].
*
*
* .google.cloud.billing.budgets.v1beta1.LastPeriodAmount last_period_amount = 2;
@@ -99,6 +107,10 @@ public interface BudgetAmountOrBuilder
*
*
* 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1beta1.Filter.calendar_period].
+ * It cannot be set in combination with
+ * [Filter.custom_period][google.cloud.billing.budgets.v1beta1.Filter.custom_period].
*
*
* .google.cloud.billing.budgets.v1beta1.LastPeriodAmount last_period_amount = 2;
diff --git a/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/BudgetModel.java b/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/BudgetModel.java
index c2b4cdd2..3fb45980 100644
--- a/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/BudgetModel.java
+++ b/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/BudgetModel.java
@@ -55,6 +55,10 @@ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry r
internal_static_google_cloud_billing_budgets_v1beta1_Filter_LabelsEntry_descriptor;
static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internal_static_google_cloud_billing_budgets_v1beta1_Filter_LabelsEntry_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_google_cloud_billing_budgets_v1beta1_CustomPeriod_descriptor;
+ static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_google_cloud_billing_budgets_v1beta1_CustomPeriod_fieldAccessorTable;
public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
return descriptor;
@@ -68,50 +72,60 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
+ "udget_model.proto\022$google.cloud.billing."
+ "budgets.v1beta1\032\037google/api/field_behavi"
+ "or.proto\032\031google/api/resource.proto\032\034goo"
- + "gle/protobuf/struct.proto\032\027google/type/m"
- + "oney.proto\"\336\003\n\006Budget\022\021\n\004name\030\001 \001(\tB\003\340A\003"
- + "\022\024\n\014display_name\030\002 \001(\t\022H\n\rbudget_filter\030"
- + "\003 \001(\0132,.google.cloud.billing.budgets.v1b"
- + "eta1.FilterB\003\340A\001\022G\n\006amount\030\004 \001(\01322.googl"
- + "e.cloud.billing.budgets.v1beta1.BudgetAm"
- + "ountB\003\340A\002\022Q\n\017threshold_rules\030\005 \003(\01323.goo"
- + "gle.cloud.billing.budgets.v1beta1.Thresh"
- + "oldRuleB\003\340A\001\022S\n\020all_updates_rule\030\006 \001(\01324"
- + ".google.cloud.billing.budgets.v1beta1.Al"
- + "lUpdatesRuleB\003\340A\001\022\021\n\004etag\030\007 \001(\tB\003\340A\001:]\352A"
- + "Z\n$billingbudgets.googleapis.com/Budget\022"
- + "2billingAccounts/{billing_account}/budge"
- + "ts/{budget}\"\245\001\n\014BudgetAmount\022.\n\020specifie"
- + "d_amount\030\001 \001(\0132\022.google.type.MoneyH\000\022T\n\022"
- + "last_period_amount\030\002 \001(\01326.google.cloud."
- + "billing.budgets.v1beta1.LastPeriodAmount"
- + "H\000B\017\n\rbudget_amount\"\022\n\020LastPeriodAmount\""
- + "\315\001\n\rThresholdRule\022\036\n\021threshold_percent\030\001"
- + " \001(\001B\003\340A\002\022S\n\013spend_basis\030\002 \001(\01629.google."
- + "cloud.billing.budgets.v1beta1.ThresholdR"
- + "ule.BasisB\003\340A\001\"G\n\005Basis\022\025\n\021BASIS_UNSPECI"
- + "FIED\020\000\022\021\n\rCURRENT_SPEND\020\001\022\024\n\020FORECASTED_"
- + "SPEND\020\002\"\244\001\n\016AllUpdatesRule\022\031\n\014pubsub_top"
- + "ic\030\001 \001(\tB\003\340A\001\022\033\n\016schema_version\030\002 \001(\tB\003\340"
- + "A\001\022-\n monitoring_notification_channels\030\003"
- + " \003(\tB\003\340A\001\022+\n\036disable_default_iam_recipie"
- + "nts\030\004 \001(\010B\003\340A\001\"\377\003\n\006Filter\022\025\n\010projects\030\001 "
- + "\003(\tB\003\340A\001\022\031\n\014credit_types\030\007 \003(\tB\003\340A\001\022f\n\026c"
- + "redit_types_treatment\030\004 \001(\0162A.google.clo"
- + "ud.billing.budgets.v1beta1.Filter.Credit"
- + "TypesTreatmentB\003\340A\001\022\025\n\010services\030\003 \003(\tB\003\340"
- + "A\001\022\030\n\013subaccounts\030\005 \003(\tB\003\340A\001\022M\n\006labels\030\006"
- + " \003(\01328.google.cloud.billing.budgets.v1be"
- + "ta1.Filter.LabelsEntryB\003\340A\001\032I\n\013LabelsEnt"
- + "ry\022\013\n\003key\030\001 \001(\t\022)\n\005value\030\002 \001(\0132\032.google."
- + "protobuf.ListValue:\0028\001\"\217\001\n\024CreditTypesTr"
- + "eatment\022&\n\"CREDIT_TYPES_TREATMENT_UNSPEC"
- + "IFIED\020\000\022\027\n\023INCLUDE_ALL_CREDITS\020\001\022\027\n\023EXCL"
- + "UDE_ALL_CREDITS\020\002\022\035\n\031INCLUDE_SPECIFIED_C"
- + "REDITS\020\003By\n(com.google.cloud.billing.bud"
- + "gets.v1beta1P\001ZKgoogle.golang.org/genpro"
- + "to/googleapis/cloud/billing/budgets/v1be"
- + "ta1;budgetsb\006proto3"
+ + "gle/protobuf/struct.proto\032\026google/type/d"
+ + "ate.proto\032\027google/type/money.proto\"\336\003\n\006B"
+ + "udget\022\021\n\004name\030\001 \001(\tB\003\340A\003\022\024\n\014display_name"
+ + "\030\002 \001(\t\022H\n\rbudget_filter\030\003 \001(\0132,.google.c"
+ + "loud.billing.budgets.v1beta1.FilterB\003\340A\001"
+ + "\022G\n\006amount\030\004 \001(\01322.google.cloud.billing."
+ + "budgets.v1beta1.BudgetAmountB\003\340A\002\022Q\n\017thr"
+ + "eshold_rules\030\005 \003(\01323.google.cloud.billin"
+ + "g.budgets.v1beta1.ThresholdRuleB\003\340A\001\022S\n\020"
+ + "all_updates_rule\030\006 \001(\01324.google.cloud.bi"
+ + "lling.budgets.v1beta1.AllUpdatesRuleB\003\340A"
+ + "\001\022\021\n\004etag\030\007 \001(\tB\003\340A\001:]\352AZ\n$billingbudget"
+ + "s.googleapis.com/Budget\0222billingAccounts"
+ + "/{billing_account}/budgets/{budget}\"\245\001\n\014"
+ + "BudgetAmount\022.\n\020specified_amount\030\001 \001(\0132\022"
+ + ".google.type.MoneyH\000\022T\n\022last_period_amou"
+ + "nt\030\002 \001(\01326.google.cloud.billing.budgets."
+ + "v1beta1.LastPeriodAmountH\000B\017\n\rbudget_amo"
+ + "unt\"\022\n\020LastPeriodAmount\"\315\001\n\rThresholdRul"
+ + "e\022\036\n\021threshold_percent\030\001 \001(\001B\003\340A\002\022S\n\013spe"
+ + "nd_basis\030\002 \001(\01629.google.cloud.billing.bu"
+ + "dgets.v1beta1.ThresholdRule.BasisB\003\340A\001\"G"
+ + "\n\005Basis\022\025\n\021BASIS_UNSPECIFIED\020\000\022\021\n\rCURREN"
+ + "T_SPEND\020\001\022\024\n\020FORECASTED_SPEND\020\002\"\244\001\n\016AllU"
+ + "pdatesRule\022\031\n\014pubsub_topic\030\001 \001(\tB\003\340A\001\022\033\n"
+ + "\016schema_version\030\002 \001(\tB\003\340A\001\022-\n monitoring"
+ + "_notification_channels\030\003 \003(\tB\003\340A\001\022+\n\036dis"
+ + "able_default_iam_recipients\030\004 \001(\010B\003\340A\001\"\267"
+ + "\005\n\006Filter\022\025\n\010projects\030\001 \003(\tB\003\340A\001\022\031\n\014cred"
+ + "it_types\030\007 \003(\tB\003\340A\001\022f\n\026credit_types_trea"
+ + "tment\030\004 \001(\0162A.google.cloud.billing.budge"
+ + "ts.v1beta1.Filter.CreditTypesTreatmentB\003"
+ + "\340A\001\022\025\n\010services\030\003 \003(\tB\003\340A\001\022\030\n\013subaccount"
+ + "s\030\005 \003(\tB\003\340A\001\022M\n\006labels\030\006 \003(\01328.google.cl"
+ + "oud.billing.budgets.v1beta1.Filter.Label"
+ + "sEntryB\003\340A\001\022T\n\017calendar_period\030\010 \001(\01624.g"
+ + "oogle.cloud.billing.budgets.v1beta1.Cale"
+ + "ndarPeriodB\003\340A\001H\000\022P\n\rcustom_period\030\t \001(\013"
+ + "22.google.cloud.billing.budgets.v1beta1."
+ + "CustomPeriodB\003\340A\001H\000\032I\n\013LabelsEntry\022\013\n\003ke"
+ + "y\030\001 \001(\t\022)\n\005value\030\002 \001(\0132\032.google.protobuf"
+ + ".ListValue:\0028\001\"\217\001\n\024CreditTypesTreatment\022"
+ + "&\n\"CREDIT_TYPES_TREATMENT_UNSPECIFIED\020\000\022"
+ + "\027\n\023INCLUDE_ALL_CREDITS\020\001\022\027\n\023EXCLUDE_ALL_"
+ + "CREDITS\020\002\022\035\n\031INCLUDE_SPECIFIED_CREDITS\020\003"
+ + "B\016\n\014usage_period\"d\n\014CustomPeriod\022*\n\nstar"
+ + "t_date\030\001 \001(\0132\021.google.type.DateB\003\340A\002\022(\n\010"
+ + "end_date\030\002 \001(\0132\021.google.type.DateB\003\340A\001*S"
+ + "\n\016CalendarPeriod\022\037\n\033CALENDAR_PERIOD_UNSP"
+ + "ECIFIED\020\000\022\t\n\005MONTH\020\001\022\013\n\007QUARTER\020\002\022\010\n\004YEA"
+ + "R\020\003By\n(com.google.cloud.billing.budgets."
+ + "v1beta1P\001ZKgoogle.golang.org/genproto/go"
+ + "ogleapis/cloud/billing/budgets/v1beta1;b"
+ + "udgetsb\006proto3"
};
descriptor =
com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
@@ -120,6 +134,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
com.google.api.FieldBehaviorProto.getDescriptor(),
com.google.api.ResourceProto.getDescriptor(),
com.google.protobuf.StructProto.getDescriptor(),
+ com.google.type.DateProto.getDescriptor(),
com.google.type.MoneyProto.getDescriptor(),
});
internal_static_google_cloud_billing_budgets_v1beta1_Budget_descriptor =
@@ -181,6 +196,9 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
"Services",
"Subaccounts",
"Labels",
+ "CalendarPeriod",
+ "CustomPeriod",
+ "UsagePeriod",
});
internal_static_google_cloud_billing_budgets_v1beta1_Filter_LabelsEntry_descriptor =
internal_static_google_cloud_billing_budgets_v1beta1_Filter_descriptor
@@ -192,6 +210,14 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
new java.lang.String[] {
"Key", "Value",
});
+ internal_static_google_cloud_billing_budgets_v1beta1_CustomPeriod_descriptor =
+ getDescriptor().getMessageTypes().get(6);
+ internal_static_google_cloud_billing_budgets_v1beta1_CustomPeriod_fieldAccessorTable =
+ new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_google_cloud_billing_budgets_v1beta1_CustomPeriod_descriptor,
+ new java.lang.String[] {
+ "StartDate", "EndDate",
+ });
com.google.protobuf.ExtensionRegistry registry =
com.google.protobuf.ExtensionRegistry.newInstance();
registry.add(com.google.api.FieldBehaviorProto.fieldBehavior);
@@ -201,6 +227,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
com.google.api.FieldBehaviorProto.getDescriptor();
com.google.api.ResourceProto.getDescriptor();
com.google.protobuf.StructProto.getDescriptor();
+ com.google.type.DateProto.getDescriptor();
com.google.type.MoneyProto.getDescriptor();
}
diff --git a/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/BudgetOrBuilder.java b/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/BudgetOrBuilder.java
index 1b0ca7aa..3fac535c 100644
--- a/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/BudgetOrBuilder.java
+++ b/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/BudgetOrBuilder.java
@@ -83,8 +83,9 @@ public interface BudgetOrBuilder
*
*
*
- * 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.
*
*
*
@@ -98,8 +99,9 @@ public interface BudgetOrBuilder
*
*
*
- * 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.
*
*
*
@@ -113,8 +115,9 @@ public interface BudgetOrBuilder
*
*
*
- * 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.
*
*
*
diff --git a/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/CalendarPeriod.java b/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/CalendarPeriod.java
new file mode 100644
index 00000000..b61f97c3
--- /dev/null
+++ b/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/CalendarPeriod.java
@@ -0,0 +1,191 @@
+/*
+ * Copyright 2020 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/cloud/billing/budgets/v1beta1/budget_model.proto
+
+package com.google.cloud.billing.budgets.v1beta1;
+
+/**
+ *
+ *
+ *
+ * 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).
+ *
+ *
+ * Protobuf enum {@code google.cloud.billing.budgets.v1beta1.CalendarPeriod}
+ */
+public enum CalendarPeriod implements com.google.protobuf.ProtocolMessageEnum {
+ /** CALENDAR_PERIOD_UNSPECIFIED = 0;
*/
+ 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;
+ */
+ MONTH(1),
+ /**
+ *
+ *
+ *
+ * A quarter. Quarters start on dates January 1, April 1, July 1, and October
+ * 1 of each year.
+ *
+ *
+ * QUARTER = 2;
+ */
+ QUARTER(2),
+ /**
+ *
+ *
+ *
+ * A year. Year starts on January 1.
+ *
+ *
+ * YEAR = 3;
+ */
+ YEAR(3),
+ UNRECOGNIZED(-1),
+ ;
+
+ /** CALENDAR_PERIOD_UNSPECIFIED = 0;
*/
+ public static final int CALENDAR_PERIOD_UNSPECIFIED_VALUE = 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;
+ */
+ public static final int MONTH_VALUE = 1;
+ /**
+ *
+ *
+ *
+ * A quarter. Quarters start on dates January 1, April 1, July 1, and October
+ * 1 of each year.
+ *
+ *
+ * QUARTER = 2;
+ */
+ public static final int QUARTER_VALUE = 2;
+ /**
+ *
+ *
+ *
+ * A year. Year starts on January 1.
+ *
+ *
+ * YEAR = 3;
+ */
+ public static final int YEAR_VALUE = 3;
+
+ public final int getNumber() {
+ if (this == UNRECOGNIZED) {
+ throw new java.lang.IllegalArgumentException(
+ "Can't get the number of an unknown enum value.");
+ }
+ return value;
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ * @deprecated Use {@link #forNumber(int)} instead.
+ */
+ @java.lang.Deprecated
+ public static CalendarPeriod valueOf(int value) {
+ return forNumber(value);
+ }
+
+ /**
+ * @param value The numeric wire value of the corresponding enum entry.
+ * @return The enum associated with the given numeric wire value.
+ */
+ public static CalendarPeriod forNumber(int value) {
+ switch (value) {
+ case 0:
+ return CALENDAR_PERIOD_UNSPECIFIED;
+ case 1:
+ return MONTH;
+ case 2:
+ return QUARTER;
+ case 3:
+ return YEAR;
+ default:
+ return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() {
+ return internalValueMap;
+ }
+
+ private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap =
+ new com.google.protobuf.Internal.EnumLiteMap() {
+ public CalendarPeriod findValueByNumber(int number) {
+ return CalendarPeriod.forNumber(number);
+ }
+ };
+
+ public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
+ if (this == UNRECOGNIZED) {
+ throw new java.lang.IllegalStateException(
+ "Can't get the descriptor of an unrecognized enum value.");
+ }
+ return getDescriptor().getValues().get(ordinal());
+ }
+
+ public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
+ return getDescriptor();
+ }
+
+ public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
+ return com.google.cloud.billing.budgets.v1beta1.BudgetModel.getDescriptor()
+ .getEnumTypes()
+ .get(0);
+ }
+
+ private static final CalendarPeriod[] VALUES = values();
+
+ public static CalendarPeriod valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+ if (desc.getType() != getDescriptor()) {
+ throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
+ }
+ if (desc.getIndex() == -1) {
+ return UNRECOGNIZED;
+ }
+ return VALUES[desc.getIndex()];
+ }
+
+ private final int value;
+
+ private CalendarPeriod(int value) {
+ this.value = value;
+ }
+
+ // @@protoc_insertion_point(enum_scope:google.cloud.billing.budgets.v1beta1.CalendarPeriod)
+}
diff --git a/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/CustomPeriod.java b/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/CustomPeriod.java
new file mode 100644
index 00000000..66512860
--- /dev/null
+++ b/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/CustomPeriod.java
@@ -0,0 +1,1001 @@
+/*
+ * Copyright 2020 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/cloud/billing/budgets/v1beta1/budget_model.proto
+
+package com.google.cloud.billing.budgets.v1beta1;
+
+/**
+ *
+ *
+ *
+ * All date times begin at 12 AM US and Canadian Pacific Time (UTC-8).
+ *
+ *
+ * Protobuf type {@code google.cloud.billing.budgets.v1beta1.CustomPeriod}
+ */
+public final class CustomPeriod extends com.google.protobuf.GeneratedMessageV3
+ implements
+ // @@protoc_insertion_point(message_implements:google.cloud.billing.budgets.v1beta1.CustomPeriod)
+ CustomPeriodOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use CustomPeriod.newBuilder() to construct.
+ private CustomPeriod(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
+ super(builder);
+ }
+
+ private CustomPeriod() {}
+
+ @java.lang.Override
+ @SuppressWarnings({"unused"})
+ protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
+ return new CustomPeriod();
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
+ return this.unknownFields;
+ }
+
+ private CustomPeriod(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ if (extensionRegistry == null) {
+ throw new java.lang.NullPointerException();
+ }
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 10:
+ {
+ com.google.type.Date.Builder subBuilder = null;
+ if (startDate_ != null) {
+ subBuilder = startDate_.toBuilder();
+ }
+ startDate_ = input.readMessage(com.google.type.Date.parser(), extensionRegistry);
+ if (subBuilder != null) {
+ subBuilder.mergeFrom(startDate_);
+ startDate_ = subBuilder.buildPartial();
+ }
+
+ break;
+ }
+ case 18:
+ {
+ com.google.type.Date.Builder subBuilder = null;
+ if (endDate_ != null) {
+ subBuilder = endDate_.toBuilder();
+ }
+ endDate_ = input.readMessage(com.google.type.Date.parser(), extensionRegistry);
+ if (subBuilder != null) {
+ subBuilder.mergeFrom(endDate_);
+ endDate_ = subBuilder.buildPartial();
+ }
+
+ break;
+ }
+ default:
+ {
+ if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.cloud.billing.budgets.v1beta1.BudgetModel
+ .internal_static_google_cloud_billing_budgets_v1beta1_CustomPeriod_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.cloud.billing.budgets.v1beta1.BudgetModel
+ .internal_static_google_cloud_billing_budgets_v1beta1_CustomPeriod_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.cloud.billing.budgets.v1beta1.CustomPeriod.class,
+ com.google.cloud.billing.budgets.v1beta1.CustomPeriod.Builder.class);
+ }
+
+ public static final int START_DATE_FIELD_NUMBER = 1;
+ private com.google.type.Date startDate_;
+ /**
+ *
+ *
+ *
+ * Required. The start date must be after January 1, 2017.
+ *
+ *
+ * .google.type.Date start_date = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return Whether the startDate field is set.
+ */
+ @java.lang.Override
+ public boolean hasStartDate() {
+ return startDate_ != null;
+ }
+ /**
+ *
+ *
+ *
+ * Required. The start date must be after January 1, 2017.
+ *
+ *
+ * .google.type.Date start_date = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return The startDate.
+ */
+ @java.lang.Override
+ public com.google.type.Date getStartDate() {
+ return startDate_ == null ? com.google.type.Date.getDefaultInstance() : startDate_;
+ }
+ /**
+ *
+ *
+ *
+ * Required. The start date must be after January 1, 2017.
+ *
+ *
+ * .google.type.Date start_date = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ @java.lang.Override
+ public com.google.type.DateOrBuilder getStartDateOrBuilder() {
+ return getStartDate();
+ }
+
+ public static final int END_DATE_FIELD_NUMBER = 2;
+ private com.google.type.Date endDate_;
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ * .google.type.Date end_date = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return Whether the endDate field is set.
+ */
+ @java.lang.Override
+ public boolean hasEndDate() {
+ return endDate_ != null;
+ }
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ * .google.type.Date end_date = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The endDate.
+ */
+ @java.lang.Override
+ public com.google.type.Date getEndDate() {
+ return endDate_ == null ? com.google.type.Date.getDefaultInstance() : endDate_;
+ }
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ * .google.type.Date end_date = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ @java.lang.Override
+ public com.google.type.DateOrBuilder getEndDateOrBuilder() {
+ return getEndDate();
+ }
+
+ private byte memoizedIsInitialized = -1;
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
+ if (startDate_ != null) {
+ output.writeMessage(1, getStartDate());
+ }
+ if (endDate_ != null) {
+ output.writeMessage(2, getEndDate());
+ }
+ unknownFields.writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (startDate_ != null) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getStartDate());
+ }
+ if (endDate_ != null) {
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getEndDate());
+ }
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.google.cloud.billing.budgets.v1beta1.CustomPeriod)) {
+ return super.equals(obj);
+ }
+ com.google.cloud.billing.budgets.v1beta1.CustomPeriod other =
+ (com.google.cloud.billing.budgets.v1beta1.CustomPeriod) obj;
+
+ if (hasStartDate() != other.hasStartDate()) return false;
+ if (hasStartDate()) {
+ if (!getStartDate().equals(other.getStartDate())) return false;
+ }
+ if (hasEndDate() != other.hasEndDate()) return false;
+ if (hasEndDate()) {
+ if (!getEndDate().equals(other.getEndDate())) return false;
+ }
+ if (!unknownFields.equals(other.unknownFields)) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ if (hasStartDate()) {
+ hash = (37 * hash) + START_DATE_FIELD_NUMBER;
+ hash = (53 * hash) + getStartDate().hashCode();
+ }
+ if (hasEndDate()) {
+ hash = (37 * hash) + END_DATE_FIELD_NUMBER;
+ hash = (53 * hash) + getEndDate().hashCode();
+ }
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.google.cloud.billing.budgets.v1beta1.CustomPeriod parseFrom(
+ java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.cloud.billing.budgets.v1beta1.CustomPeriod parseFrom(
+ java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.cloud.billing.budgets.v1beta1.CustomPeriod parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.cloud.billing.budgets.v1beta1.CustomPeriod parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.cloud.billing.budgets.v1beta1.CustomPeriod parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+
+ public static com.google.cloud.billing.budgets.v1beta1.CustomPeriod parseFrom(
+ byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+
+ public static com.google.cloud.billing.budgets.v1beta1.CustomPeriod parseFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.cloud.billing.budgets.v1beta1.CustomPeriod parseFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.cloud.billing.budgets.v1beta1.CustomPeriod parseDelimitedFrom(
+ java.io.InputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
+ }
+
+ public static com.google.cloud.billing.budgets.v1beta1.CustomPeriod parseDelimitedFrom(
+ java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ public static com.google.cloud.billing.budgets.v1beta1.CustomPeriod parseFrom(
+ com.google.protobuf.CodedInputStream input) throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
+ }
+
+ public static com.google.cloud.billing.budgets.v1beta1.CustomPeriod parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
+ PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() {
+ return newBuilder();
+ }
+
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+
+ public static Builder newBuilder(
+ com.google.cloud.billing.budgets.v1beta1.CustomPeriod prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ *
+ *
+ *
+ * All date times begin at 12 AM US and Canadian Pacific Time (UTC-8).
+ *
+ *
+ * Protobuf type {@code google.cloud.billing.budgets.v1beta1.CustomPeriod}
+ */
+ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder
+ implements
+ // @@protoc_insertion_point(builder_implements:google.cloud.billing.budgets.v1beta1.CustomPeriod)
+ com.google.cloud.billing.budgets.v1beta1.CustomPeriodOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
+ return com.google.cloud.billing.budgets.v1beta1.BudgetModel
+ .internal_static_google_cloud_billing_budgets_v1beta1_CustomPeriod_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.google.cloud.billing.budgets.v1beta1.BudgetModel
+ .internal_static_google_cloud_billing_budgets_v1beta1_CustomPeriod_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.google.cloud.billing.budgets.v1beta1.CustomPeriod.class,
+ com.google.cloud.billing.budgets.v1beta1.CustomPeriod.Builder.class);
+ }
+
+ // Construct using com.google.cloud.billing.budgets.v1beta1.CustomPeriod.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
+ }
+
+ @java.lang.Override
+ public Builder clear() {
+ super.clear();
+ if (startDateBuilder_ == null) {
+ startDate_ = null;
+ } else {
+ startDate_ = null;
+ startDateBuilder_ = null;
+ }
+ if (endDateBuilder_ == null) {
+ endDate_ = null;
+ } else {
+ endDate_ = null;
+ endDateBuilder_ = null;
+ }
+ return this;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
+ return com.google.cloud.billing.budgets.v1beta1.BudgetModel
+ .internal_static_google_cloud_billing_budgets_v1beta1_CustomPeriod_descriptor;
+ }
+
+ @java.lang.Override
+ public com.google.cloud.billing.budgets.v1beta1.CustomPeriod getDefaultInstanceForType() {
+ return com.google.cloud.billing.budgets.v1beta1.CustomPeriod.getDefaultInstance();
+ }
+
+ @java.lang.Override
+ public com.google.cloud.billing.budgets.v1beta1.CustomPeriod build() {
+ com.google.cloud.billing.budgets.v1beta1.CustomPeriod result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ @java.lang.Override
+ public com.google.cloud.billing.budgets.v1beta1.CustomPeriod buildPartial() {
+ com.google.cloud.billing.budgets.v1beta1.CustomPeriod result =
+ new com.google.cloud.billing.budgets.v1beta1.CustomPeriod(this);
+ if (startDateBuilder_ == null) {
+ result.startDate_ = startDate_;
+ } else {
+ result.startDate_ = startDateBuilder_.build();
+ }
+ if (endDateBuilder_ == null) {
+ result.endDate_ = endDate_;
+ } else {
+ result.endDate_ = endDateBuilder_.build();
+ }
+ onBuilt();
+ return result;
+ }
+
+ @java.lang.Override
+ public Builder clone() {
+ return super.clone();
+ }
+
+ @java.lang.Override
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
+ return super.setField(field, value);
+ }
+
+ @java.lang.Override
+ public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return super.clearField(field);
+ }
+
+ @java.lang.Override
+ public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return super.clearOneof(oneof);
+ }
+
+ @java.lang.Override
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) {
+ return super.setRepeatedField(field, index, value);
+ }
+
+ @java.lang.Override
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
+ return super.addRepeatedField(field, value);
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.google.cloud.billing.budgets.v1beta1.CustomPeriod) {
+ return mergeFrom((com.google.cloud.billing.budgets.v1beta1.CustomPeriod) other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.google.cloud.billing.budgets.v1beta1.CustomPeriod other) {
+ if (other == com.google.cloud.billing.budgets.v1beta1.CustomPeriod.getDefaultInstance())
+ return this;
+ if (other.hasStartDate()) {
+ mergeStartDate(other.getStartDate());
+ }
+ if (other.hasEndDate()) {
+ mergeEndDate(other.getEndDate());
+ }
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ @java.lang.Override
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ @java.lang.Override
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ com.google.cloud.billing.budgets.v1beta1.CustomPeriod parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage =
+ (com.google.cloud.billing.budgets.v1beta1.CustomPeriod) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+
+ private com.google.type.Date startDate_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>
+ startDateBuilder_;
+ /**
+ *
+ *
+ *
+ * Required. The start date must be after January 1, 2017.
+ *
+ *
+ * .google.type.Date start_date = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return Whether the startDate field is set.
+ */
+ public boolean hasStartDate() {
+ return startDateBuilder_ != null || startDate_ != null;
+ }
+ /**
+ *
+ *
+ *
+ * Required. The start date must be after January 1, 2017.
+ *
+ *
+ * .google.type.Date start_date = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return The startDate.
+ */
+ public com.google.type.Date getStartDate() {
+ if (startDateBuilder_ == null) {
+ return startDate_ == null ? com.google.type.Date.getDefaultInstance() : startDate_;
+ } else {
+ return startDateBuilder_.getMessage();
+ }
+ }
+ /**
+ *
+ *
+ *
+ * Required. The start date must be after January 1, 2017.
+ *
+ *
+ * .google.type.Date start_date = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ public Builder setStartDate(com.google.type.Date value) {
+ if (startDateBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ startDate_ = value;
+ onChanged();
+ } else {
+ startDateBuilder_.setMessage(value);
+ }
+
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * Required. The start date must be after January 1, 2017.
+ *
+ *
+ * .google.type.Date start_date = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ public Builder setStartDate(com.google.type.Date.Builder builderForValue) {
+ if (startDateBuilder_ == null) {
+ startDate_ = builderForValue.build();
+ onChanged();
+ } else {
+ startDateBuilder_.setMessage(builderForValue.build());
+ }
+
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * Required. The start date must be after January 1, 2017.
+ *
+ *
+ * .google.type.Date start_date = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ public Builder mergeStartDate(com.google.type.Date value) {
+ if (startDateBuilder_ == null) {
+ if (startDate_ != null) {
+ startDate_ = com.google.type.Date.newBuilder(startDate_).mergeFrom(value).buildPartial();
+ } else {
+ startDate_ = value;
+ }
+ onChanged();
+ } else {
+ startDateBuilder_.mergeFrom(value);
+ }
+
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * Required. The start date must be after January 1, 2017.
+ *
+ *
+ * .google.type.Date start_date = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ public Builder clearStartDate() {
+ if (startDateBuilder_ == null) {
+ startDate_ = null;
+ onChanged();
+ } else {
+ startDate_ = null;
+ startDateBuilder_ = null;
+ }
+
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * Required. The start date must be after January 1, 2017.
+ *
+ *
+ * .google.type.Date start_date = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ public com.google.type.Date.Builder getStartDateBuilder() {
+
+ onChanged();
+ return getStartDateFieldBuilder().getBuilder();
+ }
+ /**
+ *
+ *
+ *
+ * Required. The start date must be after January 1, 2017.
+ *
+ *
+ * .google.type.Date start_date = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ public com.google.type.DateOrBuilder getStartDateOrBuilder() {
+ if (startDateBuilder_ != null) {
+ return startDateBuilder_.getMessageOrBuilder();
+ } else {
+ return startDate_ == null ? com.google.type.Date.getDefaultInstance() : startDate_;
+ }
+ }
+ /**
+ *
+ *
+ *
+ * Required. The start date must be after January 1, 2017.
+ *
+ *
+ * .google.type.Date start_date = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>
+ getStartDateFieldBuilder() {
+ if (startDateBuilder_ == null) {
+ startDateBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>(
+ getStartDate(), getParentForChildren(), isClean());
+ startDate_ = null;
+ }
+ return startDateBuilder_;
+ }
+
+ private com.google.type.Date endDate_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>
+ endDateBuilder_;
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ * .google.type.Date end_date = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return Whether the endDate field is set.
+ */
+ public boolean hasEndDate() {
+ return endDateBuilder_ != null || endDate_ != null;
+ }
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ * .google.type.Date end_date = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The endDate.
+ */
+ public com.google.type.Date getEndDate() {
+ if (endDateBuilder_ == null) {
+ return endDate_ == null ? com.google.type.Date.getDefaultInstance() : endDate_;
+ } else {
+ return endDateBuilder_.getMessage();
+ }
+ }
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ * .google.type.Date end_date = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ public Builder setEndDate(com.google.type.Date value) {
+ if (endDateBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ endDate_ = value;
+ onChanged();
+ } else {
+ endDateBuilder_.setMessage(value);
+ }
+
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ * .google.type.Date end_date = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ public Builder setEndDate(com.google.type.Date.Builder builderForValue) {
+ if (endDateBuilder_ == null) {
+ endDate_ = builderForValue.build();
+ onChanged();
+ } else {
+ endDateBuilder_.setMessage(builderForValue.build());
+ }
+
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ * .google.type.Date end_date = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ public Builder mergeEndDate(com.google.type.Date value) {
+ if (endDateBuilder_ == null) {
+ if (endDate_ != null) {
+ endDate_ = com.google.type.Date.newBuilder(endDate_).mergeFrom(value).buildPartial();
+ } else {
+ endDate_ = value;
+ }
+ onChanged();
+ } else {
+ endDateBuilder_.mergeFrom(value);
+ }
+
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ * .google.type.Date end_date = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ public Builder clearEndDate() {
+ if (endDateBuilder_ == null) {
+ endDate_ = null;
+ onChanged();
+ } else {
+ endDate_ = null;
+ endDateBuilder_ = null;
+ }
+
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ * .google.type.Date end_date = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ public com.google.type.Date.Builder getEndDateBuilder() {
+
+ onChanged();
+ return getEndDateFieldBuilder().getBuilder();
+ }
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ * .google.type.Date end_date = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ public com.google.type.DateOrBuilder getEndDateOrBuilder() {
+ if (endDateBuilder_ != null) {
+ return endDateBuilder_.getMessageOrBuilder();
+ } else {
+ return endDate_ == null ? com.google.type.Date.getDefaultInstance() : endDate_;
+ }
+ }
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ * .google.type.Date end_date = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>
+ getEndDateFieldBuilder() {
+ if (endDateBuilder_ == null) {
+ endDateBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.type.Date, com.google.type.Date.Builder, com.google.type.DateOrBuilder>(
+ getEndDate(), getParentForChildren(), isClean());
+ endDate_ = null;
+ }
+ return endDateBuilder_;
+ }
+
+ @java.lang.Override
+ public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.cloud.billing.budgets.v1beta1.CustomPeriod)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.cloud.billing.budgets.v1beta1.CustomPeriod)
+ private static final com.google.cloud.billing.budgets.v1beta1.CustomPeriod DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.cloud.billing.budgets.v1beta1.CustomPeriod();
+ }
+
+ public static com.google.cloud.billing.budgets.v1beta1.CustomPeriod getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser PARSER =
+ new com.google.protobuf.AbstractParser() {
+ @java.lang.Override
+ public CustomPeriod parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new CustomPeriod(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser getParserForType() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.cloud.billing.budgets.v1beta1.CustomPeriod getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+}
diff --git a/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/CustomPeriodOrBuilder.java b/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/CustomPeriodOrBuilder.java
new file mode 100644
index 00000000..dd4c4866
--- /dev/null
+++ b/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/CustomPeriodOrBuilder.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright 2020 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/cloud/billing/budgets/v1beta1/budget_model.proto
+
+package com.google.cloud.billing.budgets.v1beta1;
+
+public interface CustomPeriodOrBuilder
+ extends
+ // @@protoc_insertion_point(interface_extends:google.cloud.billing.budgets.v1beta1.CustomPeriod)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ *
+ *
+ *
+ * Required. The start date must be after January 1, 2017.
+ *
+ *
+ * .google.type.Date start_date = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return Whether the startDate field is set.
+ */
+ boolean hasStartDate();
+ /**
+ *
+ *
+ *
+ * Required. The start date must be after January 1, 2017.
+ *
+ *
+ * .google.type.Date start_date = 1 [(.google.api.field_behavior) = REQUIRED];
+ *
+ * @return The startDate.
+ */
+ com.google.type.Date getStartDate();
+ /**
+ *
+ *
+ *
+ * Required. The start date must be after January 1, 2017.
+ *
+ *
+ * .google.type.Date start_date = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ com.google.type.DateOrBuilder getStartDateOrBuilder();
+
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ * .google.type.Date end_date = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return Whether the endDate field is set.
+ */
+ boolean hasEndDate();
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ * .google.type.Date end_date = 2 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ * @return The endDate.
+ */
+ com.google.type.Date getEndDate();
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ * .google.type.Date end_date = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ com.google.type.DateOrBuilder getEndDateOrBuilder();
+}
diff --git a/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/Filter.java b/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/Filter.java
index 26805fbf..4ac01e7d 100644
--- a/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/Filter.java
+++ b/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/Filter.java
@@ -137,6 +137,33 @@ private Filter(
creditTypes_.add(s);
break;
}
+ case 64:
+ {
+ int rawValue = input.readEnum();
+ usagePeriodCase_ = 8;
+ usagePeriod_ = rawValue;
+ break;
+ }
+ case 74:
+ {
+ com.google.cloud.billing.budgets.v1beta1.CustomPeriod.Builder subBuilder = null;
+ if (usagePeriodCase_ == 9) {
+ subBuilder =
+ ((com.google.cloud.billing.budgets.v1beta1.CustomPeriod) usagePeriod_)
+ .toBuilder();
+ }
+ usagePeriod_ =
+ input.readMessage(
+ com.google.cloud.billing.budgets.v1beta1.CustomPeriod.parser(),
+ extensionRegistry);
+ if (subBuilder != null) {
+ subBuilder.mergeFrom(
+ (com.google.cloud.billing.budgets.v1beta1.CustomPeriod) usagePeriod_);
+ usagePeriod_ = subBuilder.buildPartial();
+ }
+ usagePeriodCase_ = 9;
+ break;
+ }
default:
{
if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
@@ -198,8 +225,11 @@ protected com.google.protobuf.MapField internalGetMapField(int number) {
*
*
*
- * 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).
*
*
* Protobuf enum {@code google.cloud.billing.budgets.v1beta1.Filter.CreditTypesTreatment}
@@ -233,7 +263,9 @@ public enum CreditTypesTreatment implements com.google.protobuf.ProtocolMessageE
*
*
*
- * 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.
*
*
@@ -271,7 +303,9 @@ public enum CreditTypesTreatment implements com.google.protobuf.ProtocolMessageE
*
*
*
- * 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.
*
*
@@ -367,6 +401,53 @@ private CreditTypesTreatment(int value) {
// @@protoc_insertion_point(enum_scope:google.cloud.billing.budgets.v1beta1.Filter.CreditTypesTreatment)
}
+ private int usagePeriodCase_ = 0;
+ private java.lang.Object usagePeriod_;
+
+ public enum UsagePeriodCase
+ implements
+ com.google.protobuf.Internal.EnumLite,
+ com.google.protobuf.AbstractMessage.InternalOneOfEnum {
+ CALENDAR_PERIOD(8),
+ CUSTOM_PERIOD(9),
+ USAGEPERIOD_NOT_SET(0);
+ private final int value;
+
+ private UsagePeriodCase(int value) {
+ this.value = value;
+ }
+ /**
+ * @param value The number of the enum to look for.
+ * @return The enum associated with the given number.
+ * @deprecated Use {@link #forNumber(int)} instead.
+ */
+ @java.lang.Deprecated
+ public static UsagePeriodCase valueOf(int value) {
+ return forNumber(value);
+ }
+
+ public static UsagePeriodCase forNumber(int value) {
+ switch (value) {
+ case 8:
+ return CALENDAR_PERIOD;
+ case 9:
+ return CUSTOM_PERIOD;
+ case 0:
+ return USAGEPERIOD_NOT_SET;
+ default:
+ return null;
+ }
+ }
+
+ public int getNumber() {
+ return this.value;
+ }
+ };
+
+ public UsagePeriodCase getUsagePeriodCase() {
+ return UsagePeriodCase.forNumber(usagePeriodCase_);
+ }
+
public static final int PROJECTS_FIELD_NUMBER = 1;
private com.google.protobuf.LazyStringList projects_;
/**
@@ -454,12 +535,11 @@ public com.google.protobuf.ByteString getProjectsBytes(int index) {
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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.
*
*
* repeated string credit_types = 7 [(.google.api.field_behavior) = OPTIONAL];
@@ -477,12 +557,11 @@ public com.google.protobuf.ProtocolStringList getCreditTypesList() {
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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.
*
*
* repeated string credit_types = 7 [(.google.api.field_behavior) = OPTIONAL];
@@ -500,12 +579,11 @@ public int getCreditTypesCount() {
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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.
*
*
* repeated string credit_types = 7 [(.google.api.field_behavior) = OPTIONAL];
@@ -524,12 +602,11 @@ public java.lang.String getCreditTypes(int index) {
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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.
*
*
* repeated string credit_types = 7 [(.google.api.field_behavior) = OPTIONAL];
@@ -871,6 +948,143 @@ public com.google.protobuf.ListValue getLabelsOrThrow(java.lang.String key) {
return map.get(key);
}
+ public static final int CALENDAR_PERIOD_FIELD_NUMBER = 8;
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1beta1.CalendarPeriod calendar_period = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return Whether the calendarPeriod field is set.
+ */
+ public boolean hasCalendarPeriod() {
+ return usagePeriodCase_ == 8;
+ }
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1beta1.CalendarPeriod calendar_period = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The enum numeric value on the wire for calendarPeriod.
+ */
+ public int getCalendarPeriodValue() {
+ if (usagePeriodCase_ == 8) {
+ return (java.lang.Integer) usagePeriod_;
+ }
+ return 0;
+ }
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1beta1.CalendarPeriod calendar_period = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The calendarPeriod.
+ */
+ public com.google.cloud.billing.budgets.v1beta1.CalendarPeriod getCalendarPeriod() {
+ if (usagePeriodCase_ == 8) {
+ @SuppressWarnings("deprecation")
+ com.google.cloud.billing.budgets.v1beta1.CalendarPeriod result =
+ com.google.cloud.billing.budgets.v1beta1.CalendarPeriod.valueOf(
+ (java.lang.Integer) usagePeriod_);
+ return result == null
+ ? com.google.cloud.billing.budgets.v1beta1.CalendarPeriod.UNRECOGNIZED
+ : result;
+ }
+ return com.google.cloud.billing.budgets.v1beta1.CalendarPeriod.CALENDAR_PERIOD_UNSPECIFIED;
+ }
+
+ public static final int CUSTOM_PERIOD_FIELD_NUMBER = 9;
+ /**
+ *
+ *
+ *
+ * Optional. Specifies to track usage from any start date (required) to any
+ * end date (optional). This time period is static, it does not recur.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1beta1.CustomPeriod custom_period = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return Whether the customPeriod field is set.
+ */
+ @java.lang.Override
+ public boolean hasCustomPeriod() {
+ return usagePeriodCase_ == 9;
+ }
+ /**
+ *
+ *
+ *
+ * Optional. Specifies to track usage from any start date (required) to any
+ * end date (optional). This time period is static, it does not recur.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1beta1.CustomPeriod custom_period = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The customPeriod.
+ */
+ @java.lang.Override
+ public com.google.cloud.billing.budgets.v1beta1.CustomPeriod getCustomPeriod() {
+ if (usagePeriodCase_ == 9) {
+ return (com.google.cloud.billing.budgets.v1beta1.CustomPeriod) usagePeriod_;
+ }
+ return com.google.cloud.billing.budgets.v1beta1.CustomPeriod.getDefaultInstance();
+ }
+ /**
+ *
+ *
+ *
+ * Optional. Specifies to track usage from any start date (required) to any
+ * end date (optional). This time period is static, it does not recur.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1beta1.CustomPeriod custom_period = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ @java.lang.Override
+ public com.google.cloud.billing.budgets.v1beta1.CustomPeriodOrBuilder getCustomPeriodOrBuilder() {
+ if (usagePeriodCase_ == 9) {
+ return (com.google.cloud.billing.budgets.v1beta1.CustomPeriod) usagePeriod_;
+ }
+ return com.google.cloud.billing.budgets.v1beta1.CustomPeriod.getDefaultInstance();
+ }
+
private byte memoizedIsInitialized = -1;
@java.lang.Override
@@ -905,6 +1119,12 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
for (int i = 0; i < creditTypes_.size(); i++) {
com.google.protobuf.GeneratedMessageV3.writeString(output, 7, creditTypes_.getRaw(i));
}
+ if (usagePeriodCase_ == 8) {
+ output.writeEnum(8, ((java.lang.Integer) usagePeriod_));
+ }
+ if (usagePeriodCase_ == 9) {
+ output.writeMessage(9, (com.google.cloud.billing.budgets.v1beta1.CustomPeriod) usagePeriod_);
+ }
unknownFields.writeTo(output);
}
@@ -962,6 +1182,16 @@ public int getSerializedSize() {
size += dataSize;
size += 1 * getCreditTypesList().size();
}
+ if (usagePeriodCase_ == 8) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeEnumSize(
+ 8, ((java.lang.Integer) usagePeriod_));
+ }
+ if (usagePeriodCase_ == 9) {
+ size +=
+ com.google.protobuf.CodedOutputStream.computeMessageSize(
+ 9, (com.google.cloud.billing.budgets.v1beta1.CustomPeriod) usagePeriod_);
+ }
size += unknownFields.getSerializedSize();
memoizedSize = size;
return size;
@@ -984,6 +1214,17 @@ public boolean equals(final java.lang.Object obj) {
if (!getServicesList().equals(other.getServicesList())) return false;
if (!getSubaccountsList().equals(other.getSubaccountsList())) return false;
if (!internalGetLabels().equals(other.internalGetLabels())) return false;
+ if (!getUsagePeriodCase().equals(other.getUsagePeriodCase())) return false;
+ switch (usagePeriodCase_) {
+ case 8:
+ if (getCalendarPeriodValue() != other.getCalendarPeriodValue()) return false;
+ break;
+ case 9:
+ if (!getCustomPeriod().equals(other.getCustomPeriod())) return false;
+ break;
+ case 0:
+ default:
+ }
if (!unknownFields.equals(other.unknownFields)) return false;
return true;
}
@@ -1017,6 +1258,18 @@ public int hashCode() {
hash = (37 * hash) + LABELS_FIELD_NUMBER;
hash = (53 * hash) + internalGetLabels().hashCode();
}
+ switch (usagePeriodCase_) {
+ case 8:
+ hash = (37 * hash) + CALENDAR_PERIOD_FIELD_NUMBER;
+ hash = (53 * hash) + getCalendarPeriodValue();
+ break;
+ case 9:
+ hash = (37 * hash) + CUSTOM_PERIOD_FIELD_NUMBER;
+ hash = (53 * hash) + getCustomPeriod().hashCode();
+ break;
+ case 0:
+ default:
+ }
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
@@ -1193,6 +1446,8 @@ public Builder clear() {
subaccounts_ = com.google.protobuf.LazyStringArrayList.EMPTY;
bitField0_ = (bitField0_ & ~0x00000008);
internalGetMutableLabels().clear();
+ usagePeriodCase_ = 0;
+ usagePeriod_ = null;
return this;
}
@@ -1244,6 +1499,17 @@ public com.google.cloud.billing.budgets.v1beta1.Filter buildPartial() {
result.subaccounts_ = subaccounts_;
result.labels_ = internalGetLabels();
result.labels_.makeImmutable();
+ if (usagePeriodCase_ == 8) {
+ result.usagePeriod_ = usagePeriod_;
+ }
+ if (usagePeriodCase_ == 9) {
+ if (customPeriodBuilder_ == null) {
+ result.usagePeriod_ = usagePeriod_;
+ } else {
+ result.usagePeriod_ = customPeriodBuilder_.build();
+ }
+ }
+ result.usagePeriodCase_ = usagePeriodCase_;
onBuilt();
return result;
}
@@ -1338,6 +1604,22 @@ public Builder mergeFrom(com.google.cloud.billing.budgets.v1beta1.Filter other)
onChanged();
}
internalGetMutableLabels().mergeFrom(other.internalGetLabels());
+ switch (other.getUsagePeriodCase()) {
+ case CALENDAR_PERIOD:
+ {
+ setCalendarPeriodValue(other.getCalendarPeriodValue());
+ break;
+ }
+ case CUSTOM_PERIOD:
+ {
+ mergeCustomPeriod(other.getCustomPeriod());
+ break;
+ }
+ case USAGEPERIOD_NOT_SET:
+ {
+ break;
+ }
+ }
this.mergeUnknownFields(other.unknownFields);
onChanged();
return this;
@@ -1367,6 +1649,20 @@ public Builder mergeFrom(
return this;
}
+ private int usagePeriodCase_ = 0;
+ private java.lang.Object usagePeriod_;
+
+ public UsagePeriodCase getUsagePeriodCase() {
+ return UsagePeriodCase.forNumber(usagePeriodCase_);
+ }
+
+ public Builder clearUsagePeriod() {
+ usagePeriodCase_ = 0;
+ usagePeriod_ = null;
+ onChanged();
+ return this;
+ }
+
private int bitField0_;
private com.google.protobuf.LazyStringList projects_ =
@@ -1590,12 +1886,11 @@ private void ensureCreditTypesIsMutable() {
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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.
*
*
* repeated string credit_types = 7 [(.google.api.field_behavior) = OPTIONAL];
@@ -1613,12 +1908,11 @@ public com.google.protobuf.ProtocolStringList getCreditTypesList() {
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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.
*
*
* repeated string credit_types = 7 [(.google.api.field_behavior) = OPTIONAL];
@@ -1636,12 +1930,11 @@ public int getCreditTypesCount() {
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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.
*
*
* repeated string credit_types = 7 [(.google.api.field_behavior) = OPTIONAL];
@@ -1660,12 +1953,11 @@ public java.lang.String getCreditTypes(int index) {
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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.
*
*
* repeated string credit_types = 7 [(.google.api.field_behavior) = OPTIONAL];
@@ -1684,12 +1976,11 @@ public com.google.protobuf.ByteString getCreditTypesBytes(int index) {
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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.
*
*
* repeated string credit_types = 7 [(.google.api.field_behavior) = OPTIONAL];
@@ -1715,12 +2006,11 @@ public Builder setCreditTypes(int index, java.lang.String value) {
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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.
*
*
* repeated string credit_types = 7 [(.google.api.field_behavior) = OPTIONAL];
@@ -1745,12 +2035,11 @@ public Builder addCreditTypes(java.lang.String value) {
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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.
*
*
* repeated string credit_types = 7 [(.google.api.field_behavior) = OPTIONAL];
@@ -1772,12 +2061,11 @@ public Builder addAllCreditTypes(java.lang.Iterable values) {
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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.
*
*
* repeated string credit_types = 7 [(.google.api.field_behavior) = OPTIONAL];
@@ -1798,12 +2086,11 @@ public Builder clearCreditTypes() {
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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.
*
*
* repeated string credit_types = 7 [(.google.api.field_behavior) = OPTIONAL];
@@ -2550,6 +2837,403 @@ public Builder putAllLabels(
return this;
}
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1beta1.CalendarPeriod calendar_period = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return Whether the calendarPeriod field is set.
+ */
+ @java.lang.Override
+ public boolean hasCalendarPeriod() {
+ return usagePeriodCase_ == 8;
+ }
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1beta1.CalendarPeriod calendar_period = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The enum numeric value on the wire for calendarPeriod.
+ */
+ @java.lang.Override
+ public int getCalendarPeriodValue() {
+ if (usagePeriodCase_ == 8) {
+ return ((java.lang.Integer) usagePeriod_).intValue();
+ }
+ return 0;
+ }
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1beta1.CalendarPeriod calendar_period = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @param value The enum numeric value on the wire for calendarPeriod to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCalendarPeriodValue(int value) {
+ usagePeriodCase_ = 8;
+ usagePeriod_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1beta1.CalendarPeriod calendar_period = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The calendarPeriod.
+ */
+ @java.lang.Override
+ public com.google.cloud.billing.budgets.v1beta1.CalendarPeriod getCalendarPeriod() {
+ if (usagePeriodCase_ == 8) {
+ @SuppressWarnings("deprecation")
+ com.google.cloud.billing.budgets.v1beta1.CalendarPeriod result =
+ com.google.cloud.billing.budgets.v1beta1.CalendarPeriod.valueOf(
+ (java.lang.Integer) usagePeriod_);
+ return result == null
+ ? com.google.cloud.billing.budgets.v1beta1.CalendarPeriod.UNRECOGNIZED
+ : result;
+ }
+ return com.google.cloud.billing.budgets.v1beta1.CalendarPeriod.CALENDAR_PERIOD_UNSPECIFIED;
+ }
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1beta1.CalendarPeriod calendar_period = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @param value The calendarPeriod to set.
+ * @return This builder for chaining.
+ */
+ public Builder setCalendarPeriod(
+ com.google.cloud.billing.budgets.v1beta1.CalendarPeriod value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ usagePeriodCase_ = 8;
+ usagePeriod_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1beta1.CalendarPeriod calendar_period = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return This builder for chaining.
+ */
+ public Builder clearCalendarPeriod() {
+ if (usagePeriodCase_ == 8) {
+ usagePeriodCase_ = 0;
+ usagePeriod_ = null;
+ onChanged();
+ }
+ return this;
+ }
+
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.cloud.billing.budgets.v1beta1.CustomPeriod,
+ com.google.cloud.billing.budgets.v1beta1.CustomPeriod.Builder,
+ com.google.cloud.billing.budgets.v1beta1.CustomPeriodOrBuilder>
+ customPeriodBuilder_;
+ /**
+ *
+ *
+ *
+ * Optional. Specifies to track usage from any start date (required) to any
+ * end date (optional). This time period is static, it does not recur.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1beta1.CustomPeriod custom_period = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return Whether the customPeriod field is set.
+ */
+ @java.lang.Override
+ public boolean hasCustomPeriod() {
+ return usagePeriodCase_ == 9;
+ }
+ /**
+ *
+ *
+ *
+ * Optional. Specifies to track usage from any start date (required) to any
+ * end date (optional). This time period is static, it does not recur.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1beta1.CustomPeriod custom_period = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The customPeriod.
+ */
+ @java.lang.Override
+ public com.google.cloud.billing.budgets.v1beta1.CustomPeriod getCustomPeriod() {
+ if (customPeriodBuilder_ == null) {
+ if (usagePeriodCase_ == 9) {
+ return (com.google.cloud.billing.budgets.v1beta1.CustomPeriod) usagePeriod_;
+ }
+ return com.google.cloud.billing.budgets.v1beta1.CustomPeriod.getDefaultInstance();
+ } else {
+ if (usagePeriodCase_ == 9) {
+ return customPeriodBuilder_.getMessage();
+ }
+ return com.google.cloud.billing.budgets.v1beta1.CustomPeriod.getDefaultInstance();
+ }
+ }
+ /**
+ *
+ *
+ *
+ * Optional. Specifies to track usage from any start date (required) to any
+ * end date (optional). This time period is static, it does not recur.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1beta1.CustomPeriod custom_period = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public Builder setCustomPeriod(com.google.cloud.billing.budgets.v1beta1.CustomPeriod value) {
+ if (customPeriodBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ usagePeriod_ = value;
+ onChanged();
+ } else {
+ customPeriodBuilder_.setMessage(value);
+ }
+ usagePeriodCase_ = 9;
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * Optional. Specifies to track usage from any start date (required) to any
+ * end date (optional). This time period is static, it does not recur.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1beta1.CustomPeriod custom_period = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public Builder setCustomPeriod(
+ com.google.cloud.billing.budgets.v1beta1.CustomPeriod.Builder builderForValue) {
+ if (customPeriodBuilder_ == null) {
+ usagePeriod_ = builderForValue.build();
+ onChanged();
+ } else {
+ customPeriodBuilder_.setMessage(builderForValue.build());
+ }
+ usagePeriodCase_ = 9;
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * Optional. Specifies to track usage from any start date (required) to any
+ * end date (optional). This time period is static, it does not recur.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1beta1.CustomPeriod custom_period = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public Builder mergeCustomPeriod(com.google.cloud.billing.budgets.v1beta1.CustomPeriod value) {
+ if (customPeriodBuilder_ == null) {
+ if (usagePeriodCase_ == 9
+ && usagePeriod_
+ != com.google.cloud.billing.budgets.v1beta1.CustomPeriod.getDefaultInstance()) {
+ usagePeriod_ =
+ com.google.cloud.billing.budgets.v1beta1.CustomPeriod.newBuilder(
+ (com.google.cloud.billing.budgets.v1beta1.CustomPeriod) usagePeriod_)
+ .mergeFrom(value)
+ .buildPartial();
+ } else {
+ usagePeriod_ = value;
+ }
+ onChanged();
+ } else {
+ if (usagePeriodCase_ == 9) {
+ customPeriodBuilder_.mergeFrom(value);
+ }
+ customPeriodBuilder_.setMessage(value);
+ }
+ usagePeriodCase_ = 9;
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * Optional. Specifies to track usage from any start date (required) to any
+ * end date (optional). This time period is static, it does not recur.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1beta1.CustomPeriod custom_period = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public Builder clearCustomPeriod() {
+ if (customPeriodBuilder_ == null) {
+ if (usagePeriodCase_ == 9) {
+ usagePeriodCase_ = 0;
+ usagePeriod_ = null;
+ onChanged();
+ }
+ } else {
+ if (usagePeriodCase_ == 9) {
+ usagePeriodCase_ = 0;
+ usagePeriod_ = null;
+ }
+ customPeriodBuilder_.clear();
+ }
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * Optional. Specifies to track usage from any start date (required) to any
+ * end date (optional). This time period is static, it does not recur.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1beta1.CustomPeriod custom_period = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ public com.google.cloud.billing.budgets.v1beta1.CustomPeriod.Builder getCustomPeriodBuilder() {
+ return getCustomPeriodFieldBuilder().getBuilder();
+ }
+ /**
+ *
+ *
+ *
+ * Optional. Specifies to track usage from any start date (required) to any
+ * end date (optional). This time period is static, it does not recur.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1beta1.CustomPeriod custom_period = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ @java.lang.Override
+ public com.google.cloud.billing.budgets.v1beta1.CustomPeriodOrBuilder
+ getCustomPeriodOrBuilder() {
+ if ((usagePeriodCase_ == 9) && (customPeriodBuilder_ != null)) {
+ return customPeriodBuilder_.getMessageOrBuilder();
+ } else {
+ if (usagePeriodCase_ == 9) {
+ return (com.google.cloud.billing.budgets.v1beta1.CustomPeriod) usagePeriod_;
+ }
+ return com.google.cloud.billing.budgets.v1beta1.CustomPeriod.getDefaultInstance();
+ }
+ }
+ /**
+ *
+ *
+ *
+ * Optional. Specifies to track usage from any start date (required) to any
+ * end date (optional). This time period is static, it does not recur.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1beta1.CustomPeriod custom_period = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.google.cloud.billing.budgets.v1beta1.CustomPeriod,
+ com.google.cloud.billing.budgets.v1beta1.CustomPeriod.Builder,
+ com.google.cloud.billing.budgets.v1beta1.CustomPeriodOrBuilder>
+ getCustomPeriodFieldBuilder() {
+ if (customPeriodBuilder_ == null) {
+ if (!(usagePeriodCase_ == 9)) {
+ usagePeriod_ = com.google.cloud.billing.budgets.v1beta1.CustomPeriod.getDefaultInstance();
+ }
+ customPeriodBuilder_ =
+ new com.google.protobuf.SingleFieldBuilderV3<
+ com.google.cloud.billing.budgets.v1beta1.CustomPeriod,
+ com.google.cloud.billing.budgets.v1beta1.CustomPeriod.Builder,
+ com.google.cloud.billing.budgets.v1beta1.CustomPeriodOrBuilder>(
+ (com.google.cloud.billing.budgets.v1beta1.CustomPeriod) usagePeriod_,
+ getParentForChildren(),
+ isClean());
+ usagePeriod_ = null;
+ }
+ usagePeriodCase_ = 9;
+ onChanged();
+ ;
+ return customPeriodBuilder_;
+ }
+
@java.lang.Override
public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
diff --git a/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/FilterOrBuilder.java b/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/FilterOrBuilder.java
index 17c07574..d20d8177 100644
--- a/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/FilterOrBuilder.java
+++ b/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/FilterOrBuilder.java
@@ -98,12 +98,11 @@ public interface FilterOrBuilder
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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.
*
*
* repeated string credit_types = 7 [(.google.api.field_behavior) = OPTIONAL];
@@ -119,12 +118,11 @@ public interface FilterOrBuilder
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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.
*
*
* repeated string credit_types = 7 [(.google.api.field_behavior) = OPTIONAL];
@@ -140,12 +138,11 @@ public interface FilterOrBuilder
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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.
*
*
* repeated string credit_types = 7 [(.google.api.field_behavior) = OPTIONAL];
@@ -162,12 +159,11 @@ public interface FilterOrBuilder
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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
* [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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.
*
*
* repeated string credit_types = 7 [(.google.api.field_behavior) = OPTIONAL];
@@ -427,4 +423,108 @@ com.google.protobuf.ListValue getLabelsOrDefault(
*
*/
com.google.protobuf.ListValue getLabelsOrThrow(java.lang.String key);
+
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1beta1.CalendarPeriod calendar_period = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return Whether the calendarPeriod field is set.
+ */
+ boolean hasCalendarPeriod();
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1beta1.CalendarPeriod calendar_period = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The enum numeric value on the wire for calendarPeriod.
+ */
+ int getCalendarPeriodValue();
+ /**
+ *
+ *
+ *
+ * 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.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1beta1.CalendarPeriod calendar_period = 8 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The calendarPeriod.
+ */
+ com.google.cloud.billing.budgets.v1beta1.CalendarPeriod getCalendarPeriod();
+
+ /**
+ *
+ *
+ *
+ * Optional. Specifies to track usage from any start date (required) to any
+ * end date (optional). This time period is static, it does not recur.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1beta1.CustomPeriod custom_period = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return Whether the customPeriod field is set.
+ */
+ boolean hasCustomPeriod();
+ /**
+ *
+ *
+ *
+ * Optional. Specifies to track usage from any start date (required) to any
+ * end date (optional). This time period is static, it does not recur.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1beta1.CustomPeriod custom_period = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ *
+ * @return The customPeriod.
+ */
+ com.google.cloud.billing.budgets.v1beta1.CustomPeriod getCustomPeriod();
+ /**
+ *
+ *
+ *
+ * Optional. Specifies to track usage from any start date (required) to any
+ * end date (optional). This time period is static, it does not recur.
+ *
+ *
+ *
+ * .google.cloud.billing.budgets.v1beta1.CustomPeriod custom_period = 9 [(.google.api.field_behavior) = OPTIONAL];
+ *
+ */
+ com.google.cloud.billing.budgets.v1beta1.CustomPeriodOrBuilder getCustomPeriodOrBuilder();
+
+ public com.google.cloud.billing.budgets.v1beta1.Filter.UsagePeriodCase getUsagePeriodCase();
}
diff --git a/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/LastPeriodAmount.java b/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/LastPeriodAmount.java
index 457fb87f..ef56e07f 100644
--- a/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/LastPeriodAmount.java
+++ b/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/LastPeriodAmount.java
@@ -22,11 +22,15 @@
*
*
*
- * 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1beta1.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
+ * [Filter.custom_period][google.cloud.billing.budgets.v1beta1.Filter.custom_period].
*
*
* Protobuf type {@code google.cloud.billing.budgets.v1beta1.LastPeriodAmount}
@@ -261,11 +265,15 @@ protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.Build
*
*
*
- * 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1beta1.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
+ * [Filter.custom_period][google.cloud.billing.budgets.v1beta1.Filter.custom_period].
*
*
* Protobuf type {@code google.cloud.billing.budgets.v1beta1.LastPeriodAmount}
diff --git a/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/ThresholdRule.java b/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/ThresholdRule.java
index e15f5c7c..d5e40549 100644
--- a/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/ThresholdRule.java
+++ b/proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/ThresholdRule.java
@@ -158,6 +158,10 @@ public enum Basis implements com.google.protobuf.ProtocolMessageEnum {
*
* 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1beta1.Filter.calendar_period].
+ * It cannot be set in combination with
+ * [Filter.custom_period][google.cloud.billing.budgets.v1beta1.Filter.custom_period].
*
*
* FORECASTED_SPEND = 2;
@@ -192,6 +196,10 @@ public enum Basis implements com.google.protobuf.ProtocolMessageEnum {
*
* 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
+ * [Filter.calendar_period][google.cloud.billing.budgets.v1beta1.Filter.calendar_period].
+ * It cannot be set in combination with
+ * [Filter.custom_period][google.cloud.billing.budgets.v1beta1.Filter.custom_period].
*
*
* FORECASTED_SPEND = 2;
diff --git a/proto-google-cloud-billingbudgets-v1beta1/src/main/proto/google/cloud/billing/budgets/v1beta1/budget_model.proto b/proto-google-cloud-billingbudgets-v1beta1/src/main/proto/google/cloud/billing/budgets/v1beta1/budget_model.proto
index 636f3290..8d68393d 100644
--- a/proto-google-cloud-billingbudgets-v1beta1/src/main/proto/google/cloud/billing/budgets/v1beta1/budget_model.proto
+++ b/proto-google-cloud-billingbudgets-v1beta1/src/main/proto/google/cloud/billing/budgets/v1beta1/budget_model.proto
@@ -19,6 +19,7 @@ package google.cloud.billing.budgets.v1beta1;
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/protobuf/struct.proto";
+import "google/type/date.proto";
import "google/type/money.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/billing/budgets/v1beta1;budgets";
@@ -28,8 +29,8 @@ option java_package = "com.google.cloud.billing.budgets.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.
message Budget {
option (google.api.resource) = {
type: "billingbudgets.googleapis.com/Budget"
@@ -45,8 +46,9 @@ message Budget {
// Validation: <= 60 chars.
string display_name = 2;
- // 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.
Filter budget_filter = 3 [(google.api.field_behavior) = OPTIONAL];
// Required. Budgeted amount.
@@ -74,20 +76,28 @@ message BudgetAmount {
// 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.
google.type.Money specified_amount = 1;
// 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
+ // [Filter.calendar_period][google.cloud.billing.budgets.v1beta1.Filter.calendar_period].
+ // It cannot be set in combination with
+ // [Filter.custom_period][google.cloud.billing.budgets.v1beta1.Filter.custom_period].
LastPeriodAmount last_period_amount = 2;
}
}
-// 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
+// [Filter.calendar_period][google.cloud.billing.budgets.v1beta1.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
+// [Filter.custom_period][google.cloud.billing.budgets.v1beta1.Filter.custom_period].
message LastPeriodAmount {}
// ThresholdRule contains a definition of a threshold which triggers
@@ -108,6 +118,10 @@ message ThresholdRule {
// 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
+ // [Filter.calendar_period][google.cloud.billing.budgets.v1beta1.Filter.calendar_period].
+ // It cannot be set in combination with
+ // [Filter.custom_period][google.cloud.billing.budgets.v1beta1.Filter.custom_period].
FORECASTED_SPEND = 2;
}
@@ -128,12 +142,12 @@ message AllUpdatesRule {
// 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.
string pubsub_topic = 1 [(google.api.field_behavior) = OPTIONAL];
@@ -166,8 +180,11 @@ message AllUpdatesRule {
// A filter for a budget, limiting the scope of the cost to calculate.
message Filter {
- // 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).
enum CreditTypesTreatment {
CREDIT_TYPES_TREATMENT_UNSPECIFIED = 0;
@@ -179,7 +196,9 @@ message Filter {
// 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;
}
@@ -195,13 +214,12 @@ message Filter {
// [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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
// [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.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.
repeated string credit_types = 7 [(google.api.field_behavior) = OPTIONAL];
// Optional. If not set, default behavior is `INCLUDE_ALL_CREDITS`.
@@ -230,4 +248,51 @@ message Filter {
// the report will include all labeled and unlabeled usage.
map labels = 6
[(google.api.field_behavior) = OPTIONAL];
+
+ // Multiple options to choose the budget's time period, specifying that only
+ // usage that occurs during this time period should be included in the budget.
+ // If not set, the `usage_period` defaults to CalendarPeriod.MONTH.
+ oneof usage_period {
+ // 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.
+ CalendarPeriod calendar_period = 8 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. Specifies to track usage from any start date (required) to any
+ // end date (optional). This time period is static, it does not recur.
+ CustomPeriod custom_period = 9 [(google.api.field_behavior) = OPTIONAL];
+ }
+}
+
+// All date times begin at 12 AM US and Canadian Pacific Time (UTC-8).
+message CustomPeriod {
+ // Required. The start date must be after January 1, 2017.
+ google.type.Date start_date = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // 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.
+ google.type.Date end_date = 2 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// 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).
+enum 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;
}
diff --git a/synth.metadata b/synth.metadata
index d69c4f77..e014b486 100644
--- a/synth.metadata
+++ b/synth.metadata
@@ -4,23 +4,23 @@
"git": {
"name": ".",
"remote": "https://github.com/googleapis/java-billingbudgets.git",
- "sha": "71719c52e79bc05150785939a3959ad756b74db8"
+ "sha": "f7b7a72d435ed25e6b18da3e16f66b0a32ca916b"
}
},
{
"git": {
"name": "googleapis",
"remote": "https://github.com/googleapis/googleapis.git",
- "sha": "1305ca41d554eb0725237561e34129373bb8cbc1",
- "internalRef": "362856902"
+ "sha": "dd6ba75f1ef4175d3f34028e2c60aaa04a0e1b65",
+ "internalRef": "368871890"
}
},
{
"git": {
"name": "googleapis",
"remote": "https://github.com/googleapis/googleapis.git",
- "sha": "1305ca41d554eb0725237561e34129373bb8cbc1",
- "internalRef": "362856902"
+ "sha": "dd6ba75f1ef4175d3f34028e2c60aaa04a0e1b65",
+ "internalRef": "368871890"
}
},
{
@@ -153,8 +153,11 @@
"proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/BudgetName.java",
"proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/BudgetOrBuilder.java",
"proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/BudgetServiceProto.java",
+ "proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/CalendarPeriod.java",
"proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/CreateBudgetRequest.java",
"proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/CreateBudgetRequestOrBuilder.java",
+ "proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/CustomPeriod.java",
+ "proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/CustomPeriodOrBuilder.java",
"proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/DeleteBudgetRequest.java",
"proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/DeleteBudgetRequestOrBuilder.java",
"proto-google-cloud-billingbudgets-v1/src/main/java/com/google/cloud/billing/budgets/v1/Filter.java",
@@ -185,8 +188,11 @@
"proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/BudgetName.java",
"proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/BudgetOrBuilder.java",
"proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/BudgetServiceOuterClass.java",
+ "proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/CalendarPeriod.java",
"proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/CreateBudgetRequest.java",
"proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/CreateBudgetRequestOrBuilder.java",
+ "proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/CustomPeriod.java",
+ "proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/CustomPeriodOrBuilder.java",
"proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/DeleteBudgetRequest.java",
"proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/DeleteBudgetRequestOrBuilder.java",
"proto-google-cloud-billingbudgets-v1beta1/src/main/java/com/google/cloud/billing/budgets/v1beta1/Filter.java",