1// Copyright 2021 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15// Code generated by protoc-gen-go. DO NOT EDIT. 16// versions: 17// protoc-gen-go v1.25.0-devel 18// protoc v3.12.2 19// source: google/cloud/billing/budgets/v1beta1/budget_model.proto 20 21package budgets 22 23import ( 24 reflect "reflect" 25 sync "sync" 26 27 proto "github.com/golang/protobuf/proto" 28 _ "google.golang.org/genproto/googleapis/api/annotations" 29 date "google.golang.org/genproto/googleapis/type/date" 30 money "google.golang.org/genproto/googleapis/type/money" 31 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 32 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 33 structpb "google.golang.org/protobuf/types/known/structpb" 34) 35 36const ( 37 // Verify that this generated code is sufficiently up-to-date. 38 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 39 // Verify that runtime/protoimpl is sufficiently up-to-date. 40 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 41) 42 43// This is a compile-time assertion that a sufficiently up-to-date version 44// of the legacy proto package is being used. 45const _ = proto.ProtoPackageIsVersion4 46 47// A `CalendarPeriod` represents the abstract concept of a time period that 48// has a canonical start. Grammatically, "the start of the current 49// `CalendarPeriod`". All calendar times begin at 12 AM US and Canadian 50// Pacific Time (UTC-8). 51type CalendarPeriod int32 52 53const ( 54 CalendarPeriod_CALENDAR_PERIOD_UNSPECIFIED CalendarPeriod = 0 55 // A month. Month starts on the first day of each month, such as January 1, 56 // February 1, March 1, and so on. 57 CalendarPeriod_MONTH CalendarPeriod = 1 58 // A quarter. Quarters start on dates January 1, April 1, July 1, and October 59 // 1 of each year. 60 CalendarPeriod_QUARTER CalendarPeriod = 2 61 // A year. Year starts on January 1. 62 CalendarPeriod_YEAR CalendarPeriod = 3 63) 64 65// Enum value maps for CalendarPeriod. 66var ( 67 CalendarPeriod_name = map[int32]string{ 68 0: "CALENDAR_PERIOD_UNSPECIFIED", 69 1: "MONTH", 70 2: "QUARTER", 71 3: "YEAR", 72 } 73 CalendarPeriod_value = map[string]int32{ 74 "CALENDAR_PERIOD_UNSPECIFIED": 0, 75 "MONTH": 1, 76 "QUARTER": 2, 77 "YEAR": 3, 78 } 79) 80 81func (x CalendarPeriod) Enum() *CalendarPeriod { 82 p := new(CalendarPeriod) 83 *p = x 84 return p 85} 86 87func (x CalendarPeriod) String() string { 88 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 89} 90 91func (CalendarPeriod) Descriptor() protoreflect.EnumDescriptor { 92 return file_google_cloud_billing_budgets_v1beta1_budget_model_proto_enumTypes[0].Descriptor() 93} 94 95func (CalendarPeriod) Type() protoreflect.EnumType { 96 return &file_google_cloud_billing_budgets_v1beta1_budget_model_proto_enumTypes[0] 97} 98 99func (x CalendarPeriod) Number() protoreflect.EnumNumber { 100 return protoreflect.EnumNumber(x) 101} 102 103// Deprecated: Use CalendarPeriod.Descriptor instead. 104func (CalendarPeriod) EnumDescriptor() ([]byte, []int) { 105 return file_google_cloud_billing_budgets_v1beta1_budget_model_proto_rawDescGZIP(), []int{0} 106} 107 108// The type of basis used to determine if spend has passed the threshold. 109type ThresholdRule_Basis int32 110 111const ( 112 // Unspecified threshold basis. 113 ThresholdRule_BASIS_UNSPECIFIED ThresholdRule_Basis = 0 114 // Use current spend as the basis for comparison against the threshold. 115 ThresholdRule_CURRENT_SPEND ThresholdRule_Basis = 1 116 // Use forecasted spend for the period as the basis for comparison against 117 // the threshold. 118 // FORECASTED_SPEND can only be set when the budget's time period is a 119 // [Filter.calendar_period][google.cloud.billing.budgets.v1beta1.Filter.calendar_period]. 120 // It cannot be set in combination with 121 // [Filter.custom_period][google.cloud.billing.budgets.v1beta1.Filter.custom_period]. 122 ThresholdRule_FORECASTED_SPEND ThresholdRule_Basis = 2 123) 124 125// Enum value maps for ThresholdRule_Basis. 126var ( 127 ThresholdRule_Basis_name = map[int32]string{ 128 0: "BASIS_UNSPECIFIED", 129 1: "CURRENT_SPEND", 130 2: "FORECASTED_SPEND", 131 } 132 ThresholdRule_Basis_value = map[string]int32{ 133 "BASIS_UNSPECIFIED": 0, 134 "CURRENT_SPEND": 1, 135 "FORECASTED_SPEND": 2, 136 } 137) 138 139func (x ThresholdRule_Basis) Enum() *ThresholdRule_Basis { 140 p := new(ThresholdRule_Basis) 141 *p = x 142 return p 143} 144 145func (x ThresholdRule_Basis) String() string { 146 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 147} 148 149func (ThresholdRule_Basis) Descriptor() protoreflect.EnumDescriptor { 150 return file_google_cloud_billing_budgets_v1beta1_budget_model_proto_enumTypes[1].Descriptor() 151} 152 153func (ThresholdRule_Basis) Type() protoreflect.EnumType { 154 return &file_google_cloud_billing_budgets_v1beta1_budget_model_proto_enumTypes[1] 155} 156 157func (x ThresholdRule_Basis) Number() protoreflect.EnumNumber { 158 return protoreflect.EnumNumber(x) 159} 160 161// Deprecated: Use ThresholdRule_Basis.Descriptor instead. 162func (ThresholdRule_Basis) EnumDescriptor() ([]byte, []int) { 163 return file_google_cloud_billing_budgets_v1beta1_budget_model_proto_rawDescGZIP(), []int{3, 0} 164} 165 166// Specifies how credits are applied when determining the spend for 167// threshold calculations. Budgets track the total cost minus any applicable 168// selected credits. 169// [See the documentation for a list of credit 170// types](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#credits-type). 171type Filter_CreditTypesTreatment int32 172 173const ( 174 Filter_CREDIT_TYPES_TREATMENT_UNSPECIFIED Filter_CreditTypesTreatment = 0 175 // All types of credit are subtracted from the gross cost to determine the 176 // spend for threshold calculations. 177 Filter_INCLUDE_ALL_CREDITS Filter_CreditTypesTreatment = 1 178 // All types of credit are added to the net cost to determine the spend for 179 // threshold calculations. 180 Filter_EXCLUDE_ALL_CREDITS Filter_CreditTypesTreatment = 2 181 // [Credit 182 // types](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#credits-type) 183 // specified in the credit_types field are subtracted from the 184 // gross cost to determine the spend for threshold calculations. 185 Filter_INCLUDE_SPECIFIED_CREDITS Filter_CreditTypesTreatment = 3 186) 187 188// Enum value maps for Filter_CreditTypesTreatment. 189var ( 190 Filter_CreditTypesTreatment_name = map[int32]string{ 191 0: "CREDIT_TYPES_TREATMENT_UNSPECIFIED", 192 1: "INCLUDE_ALL_CREDITS", 193 2: "EXCLUDE_ALL_CREDITS", 194 3: "INCLUDE_SPECIFIED_CREDITS", 195 } 196 Filter_CreditTypesTreatment_value = map[string]int32{ 197 "CREDIT_TYPES_TREATMENT_UNSPECIFIED": 0, 198 "INCLUDE_ALL_CREDITS": 1, 199 "EXCLUDE_ALL_CREDITS": 2, 200 "INCLUDE_SPECIFIED_CREDITS": 3, 201 } 202) 203 204func (x Filter_CreditTypesTreatment) Enum() *Filter_CreditTypesTreatment { 205 p := new(Filter_CreditTypesTreatment) 206 *p = x 207 return p 208} 209 210func (x Filter_CreditTypesTreatment) String() string { 211 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 212} 213 214func (Filter_CreditTypesTreatment) Descriptor() protoreflect.EnumDescriptor { 215 return file_google_cloud_billing_budgets_v1beta1_budget_model_proto_enumTypes[2].Descriptor() 216} 217 218func (Filter_CreditTypesTreatment) Type() protoreflect.EnumType { 219 return &file_google_cloud_billing_budgets_v1beta1_budget_model_proto_enumTypes[2] 220} 221 222func (x Filter_CreditTypesTreatment) Number() protoreflect.EnumNumber { 223 return protoreflect.EnumNumber(x) 224} 225 226// Deprecated: Use Filter_CreditTypesTreatment.Descriptor instead. 227func (Filter_CreditTypesTreatment) EnumDescriptor() ([]byte, []int) { 228 return file_google_cloud_billing_budgets_v1beta1_budget_model_proto_rawDescGZIP(), []int{5, 0} 229} 230 231// A budget is a plan that describes what you expect to spend on Cloud 232// projects, plus the rules to execute as spend is tracked against that plan, 233// (for example, send an alert when 90% of the target spend is met). 234// The budget time period is configurable, with options such as month (default), 235// quarter, year, or custom time period. 236type Budget struct { 237 state protoimpl.MessageState 238 sizeCache protoimpl.SizeCache 239 unknownFields protoimpl.UnknownFields 240 241 // Output only. Resource name of the budget. 242 // The resource name implies the scope of a budget. Values are of the form 243 // `billingAccounts/{billingAccountId}/budgets/{budgetId}`. 244 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 245 // User data for display name in UI. 246 // Validation: <= 60 chars. 247 DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 248 // Optional. Filters that define which resources are used to compute the 249 // actual spend against the budget amount, such as projects, services, and the 250 // budget's time period, as well as other filters. 251 BudgetFilter *Filter `protobuf:"bytes,3,opt,name=budget_filter,json=budgetFilter,proto3" json:"budget_filter,omitempty"` 252 // Required. Budgeted amount. 253 Amount *BudgetAmount `protobuf:"bytes,4,opt,name=amount,proto3" json:"amount,omitempty"` 254 // Optional. Rules that trigger alerts (notifications of thresholds 255 // being crossed) when spend exceeds the specified percentages of the budget. 256 ThresholdRules []*ThresholdRule `protobuf:"bytes,5,rep,name=threshold_rules,json=thresholdRules,proto3" json:"threshold_rules,omitempty"` 257 // Optional. Rules to apply to notifications sent based on budget spend and 258 // thresholds. 259 AllUpdatesRule *AllUpdatesRule `protobuf:"bytes,6,opt,name=all_updates_rule,json=allUpdatesRule,proto3" json:"all_updates_rule,omitempty"` 260 // Optional. Etag to validate that the object is unchanged for a 261 // read-modify-write operation. 262 // An empty etag will cause an update to overwrite other changes. 263 Etag string `protobuf:"bytes,7,opt,name=etag,proto3" json:"etag,omitempty"` 264} 265 266func (x *Budget) Reset() { 267 *x = Budget{} 268 if protoimpl.UnsafeEnabled { 269 mi := &file_google_cloud_billing_budgets_v1beta1_budget_model_proto_msgTypes[0] 270 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 271 ms.StoreMessageInfo(mi) 272 } 273} 274 275func (x *Budget) String() string { 276 return protoimpl.X.MessageStringOf(x) 277} 278 279func (*Budget) ProtoMessage() {} 280 281func (x *Budget) ProtoReflect() protoreflect.Message { 282 mi := &file_google_cloud_billing_budgets_v1beta1_budget_model_proto_msgTypes[0] 283 if protoimpl.UnsafeEnabled && x != nil { 284 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 285 if ms.LoadMessageInfo() == nil { 286 ms.StoreMessageInfo(mi) 287 } 288 return ms 289 } 290 return mi.MessageOf(x) 291} 292 293// Deprecated: Use Budget.ProtoReflect.Descriptor instead. 294func (*Budget) Descriptor() ([]byte, []int) { 295 return file_google_cloud_billing_budgets_v1beta1_budget_model_proto_rawDescGZIP(), []int{0} 296} 297 298func (x *Budget) GetName() string { 299 if x != nil { 300 return x.Name 301 } 302 return "" 303} 304 305func (x *Budget) GetDisplayName() string { 306 if x != nil { 307 return x.DisplayName 308 } 309 return "" 310} 311 312func (x *Budget) GetBudgetFilter() *Filter { 313 if x != nil { 314 return x.BudgetFilter 315 } 316 return nil 317} 318 319func (x *Budget) GetAmount() *BudgetAmount { 320 if x != nil { 321 return x.Amount 322 } 323 return nil 324} 325 326func (x *Budget) GetThresholdRules() []*ThresholdRule { 327 if x != nil { 328 return x.ThresholdRules 329 } 330 return nil 331} 332 333func (x *Budget) GetAllUpdatesRule() *AllUpdatesRule { 334 if x != nil { 335 return x.AllUpdatesRule 336 } 337 return nil 338} 339 340func (x *Budget) GetEtag() string { 341 if x != nil { 342 return x.Etag 343 } 344 return "" 345} 346 347// The budgeted amount for each usage period. 348type BudgetAmount struct { 349 state protoimpl.MessageState 350 sizeCache protoimpl.SizeCache 351 unknownFields protoimpl.UnknownFields 352 353 // Specification for what amount to use as the budget. 354 // 355 // Types that are assignable to BudgetAmount: 356 // *BudgetAmount_SpecifiedAmount 357 // *BudgetAmount_LastPeriodAmount 358 BudgetAmount isBudgetAmount_BudgetAmount `protobuf_oneof:"budget_amount"` 359} 360 361func (x *BudgetAmount) Reset() { 362 *x = BudgetAmount{} 363 if protoimpl.UnsafeEnabled { 364 mi := &file_google_cloud_billing_budgets_v1beta1_budget_model_proto_msgTypes[1] 365 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 366 ms.StoreMessageInfo(mi) 367 } 368} 369 370func (x *BudgetAmount) String() string { 371 return protoimpl.X.MessageStringOf(x) 372} 373 374func (*BudgetAmount) ProtoMessage() {} 375 376func (x *BudgetAmount) ProtoReflect() protoreflect.Message { 377 mi := &file_google_cloud_billing_budgets_v1beta1_budget_model_proto_msgTypes[1] 378 if protoimpl.UnsafeEnabled && x != nil { 379 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 380 if ms.LoadMessageInfo() == nil { 381 ms.StoreMessageInfo(mi) 382 } 383 return ms 384 } 385 return mi.MessageOf(x) 386} 387 388// Deprecated: Use BudgetAmount.ProtoReflect.Descriptor instead. 389func (*BudgetAmount) Descriptor() ([]byte, []int) { 390 return file_google_cloud_billing_budgets_v1beta1_budget_model_proto_rawDescGZIP(), []int{1} 391} 392 393func (m *BudgetAmount) GetBudgetAmount() isBudgetAmount_BudgetAmount { 394 if m != nil { 395 return m.BudgetAmount 396 } 397 return nil 398} 399 400func (x *BudgetAmount) GetSpecifiedAmount() *money.Money { 401 if x, ok := x.GetBudgetAmount().(*BudgetAmount_SpecifiedAmount); ok { 402 return x.SpecifiedAmount 403 } 404 return nil 405} 406 407func (x *BudgetAmount) GetLastPeriodAmount() *LastPeriodAmount { 408 if x, ok := x.GetBudgetAmount().(*BudgetAmount_LastPeriodAmount); ok { 409 return x.LastPeriodAmount 410 } 411 return nil 412} 413 414type isBudgetAmount_BudgetAmount interface { 415 isBudgetAmount_BudgetAmount() 416} 417 418type BudgetAmount_SpecifiedAmount struct { 419 // A specified amount to use as the budget. 420 // `currency_code` is optional. If specified when creating a budget, it must 421 // match the currency of the billing account. If specified when updating a 422 // budget, it must match the currency_code of the existing budget. 423 // The `currency_code` is provided on output. 424 SpecifiedAmount *money.Money `protobuf:"bytes,1,opt,name=specified_amount,json=specifiedAmount,proto3,oneof"` 425} 426 427type BudgetAmount_LastPeriodAmount struct { 428 // Use the last period's actual spend as the budget for the present period. 429 // LastPeriodAmount can only be set when the budget's time period is a 430 // [Filter.calendar_period][google.cloud.billing.budgets.v1beta1.Filter.calendar_period]. 431 // It cannot be set in combination with 432 // [Filter.custom_period][google.cloud.billing.budgets.v1beta1.Filter.custom_period]. 433 LastPeriodAmount *LastPeriodAmount `protobuf:"bytes,2,opt,name=last_period_amount,json=lastPeriodAmount,proto3,oneof"` 434} 435 436func (*BudgetAmount_SpecifiedAmount) isBudgetAmount_BudgetAmount() {} 437 438func (*BudgetAmount_LastPeriodAmount) isBudgetAmount_BudgetAmount() {} 439 440// Describes a budget amount targeted to the last 441// [Filter.calendar_period][google.cloud.billing.budgets.v1beta1.Filter.calendar_period] 442// spend. At this time, the amount is automatically 100% of the last calendar 443// period's spend; that is, there are no other options yet. 444// Future configuration options will be described here (for example, configuring 445// a percentage of last period's spend). 446// LastPeriodAmount cannot be set for a budget configured with 447// a 448// [Filter.custom_period][google.cloud.billing.budgets.v1beta1.Filter.custom_period]. 449type LastPeriodAmount struct { 450 state protoimpl.MessageState 451 sizeCache protoimpl.SizeCache 452 unknownFields protoimpl.UnknownFields 453} 454 455func (x *LastPeriodAmount) Reset() { 456 *x = LastPeriodAmount{} 457 if protoimpl.UnsafeEnabled { 458 mi := &file_google_cloud_billing_budgets_v1beta1_budget_model_proto_msgTypes[2] 459 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 460 ms.StoreMessageInfo(mi) 461 } 462} 463 464func (x *LastPeriodAmount) String() string { 465 return protoimpl.X.MessageStringOf(x) 466} 467 468func (*LastPeriodAmount) ProtoMessage() {} 469 470func (x *LastPeriodAmount) ProtoReflect() protoreflect.Message { 471 mi := &file_google_cloud_billing_budgets_v1beta1_budget_model_proto_msgTypes[2] 472 if protoimpl.UnsafeEnabled && x != nil { 473 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 474 if ms.LoadMessageInfo() == nil { 475 ms.StoreMessageInfo(mi) 476 } 477 return ms 478 } 479 return mi.MessageOf(x) 480} 481 482// Deprecated: Use LastPeriodAmount.ProtoReflect.Descriptor instead. 483func (*LastPeriodAmount) Descriptor() ([]byte, []int) { 484 return file_google_cloud_billing_budgets_v1beta1_budget_model_proto_rawDescGZIP(), []int{2} 485} 486 487// ThresholdRule contains a definition of a threshold which triggers 488// an alert (a notification of a threshold being crossed) to be sent when 489// spend goes above the specified amount. 490// Alerts are automatically e-mailed to users with the Billing Account 491// Administrator role or the Billing Account User role. 492// The thresholds here have no effect on notifications sent to anything 493// configured under `Budget.all_updates_rule`. 494type ThresholdRule struct { 495 state protoimpl.MessageState 496 sizeCache protoimpl.SizeCache 497 unknownFields protoimpl.UnknownFields 498 499 // Required. Send an alert when this threshold is exceeded. 500 // This is a 1.0-based percentage, so 0.5 = 50%. 501 // Validation: non-negative number. 502 ThresholdPercent float64 `protobuf:"fixed64,1,opt,name=threshold_percent,json=thresholdPercent,proto3" json:"threshold_percent,omitempty"` 503 // Optional. The type of basis used to determine if spend has passed the 504 // threshold. Behavior defaults to CURRENT_SPEND if not set. 505 SpendBasis ThresholdRule_Basis `protobuf:"varint,2,opt,name=spend_basis,json=spendBasis,proto3,enum=google.cloud.billing.budgets.v1beta1.ThresholdRule_Basis" json:"spend_basis,omitempty"` 506} 507 508func (x *ThresholdRule) Reset() { 509 *x = ThresholdRule{} 510 if protoimpl.UnsafeEnabled { 511 mi := &file_google_cloud_billing_budgets_v1beta1_budget_model_proto_msgTypes[3] 512 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 513 ms.StoreMessageInfo(mi) 514 } 515} 516 517func (x *ThresholdRule) String() string { 518 return protoimpl.X.MessageStringOf(x) 519} 520 521func (*ThresholdRule) ProtoMessage() {} 522 523func (x *ThresholdRule) ProtoReflect() protoreflect.Message { 524 mi := &file_google_cloud_billing_budgets_v1beta1_budget_model_proto_msgTypes[3] 525 if protoimpl.UnsafeEnabled && x != nil { 526 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 527 if ms.LoadMessageInfo() == nil { 528 ms.StoreMessageInfo(mi) 529 } 530 return ms 531 } 532 return mi.MessageOf(x) 533} 534 535// Deprecated: Use ThresholdRule.ProtoReflect.Descriptor instead. 536func (*ThresholdRule) Descriptor() ([]byte, []int) { 537 return file_google_cloud_billing_budgets_v1beta1_budget_model_proto_rawDescGZIP(), []int{3} 538} 539 540func (x *ThresholdRule) GetThresholdPercent() float64 { 541 if x != nil { 542 return x.ThresholdPercent 543 } 544 return 0 545} 546 547func (x *ThresholdRule) GetSpendBasis() ThresholdRule_Basis { 548 if x != nil { 549 return x.SpendBasis 550 } 551 return ThresholdRule_BASIS_UNSPECIFIED 552} 553 554// AllUpdatesRule defines notifications that are sent based on budget spend 555// and thresholds. 556type AllUpdatesRule struct { 557 state protoimpl.MessageState 558 sizeCache protoimpl.SizeCache 559 unknownFields protoimpl.UnknownFields 560 561 // Optional. The name of the Pub/Sub topic where budget related messages will 562 // be published, in the form `projects/{project_id}/topics/{topic_id}`. 563 // Updates are sent at regular intervals to the topic. The topic needs to be 564 // created before the budget is created; see 565 // https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications 566 // for more details. 567 // Caller is expected to have 568 // `pubsub.topics.setIamPolicy` permission on the topic when it's set for a 569 // budget, otherwise, the API call will fail with PERMISSION_DENIED. See 570 // https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#permissions_required_for_this_task 571 // for more details on Pub/Sub roles and permissions. 572 PubsubTopic string `protobuf:"bytes,1,opt,name=pubsub_topic,json=pubsubTopic,proto3" json:"pubsub_topic,omitempty"` 573 // Optional. Required when 574 // [AllUpdatesRule.pubsub_topic][google.cloud.billing.budgets.v1beta1.AllUpdatesRule.pubsub_topic] 575 // is set. The schema version of the notification sent to 576 // [AllUpdatesRule.pubsub_topic][google.cloud.billing.budgets.v1beta1.AllUpdatesRule.pubsub_topic]. 577 // Only "1.0" is accepted. It represents the JSON schema as defined in 578 // https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format. 579 SchemaVersion string `protobuf:"bytes,2,opt,name=schema_version,json=schemaVersion,proto3" json:"schema_version,omitempty"` 580 // Optional. Targets to send notifications to when a threshold is exceeded. 581 // This is in addition to default recipients who have billing account IAM 582 // roles. The value is the full REST resource name of a monitoring 583 // notification channel with the form 584 // `projects/{project_id}/notificationChannels/{channel_id}`. A maximum of 5 585 // channels are allowed. See 586 // https://cloud.google.com/billing/docs/how-to/budgets-notification-recipients 587 // for more details. 588 MonitoringNotificationChannels []string `protobuf:"bytes,3,rep,name=monitoring_notification_channels,json=monitoringNotificationChannels,proto3" json:"monitoring_notification_channels,omitempty"` 589 // Optional. When set to true, disables default notifications sent when a 590 // threshold is exceeded. Default notifications are sent to those with Billing 591 // Account Administrator and Billing Account User IAM roles for the target 592 // account. 593 DisableDefaultIamRecipients bool `protobuf:"varint,4,opt,name=disable_default_iam_recipients,json=disableDefaultIamRecipients,proto3" json:"disable_default_iam_recipients,omitempty"` 594} 595 596func (x *AllUpdatesRule) Reset() { 597 *x = AllUpdatesRule{} 598 if protoimpl.UnsafeEnabled { 599 mi := &file_google_cloud_billing_budgets_v1beta1_budget_model_proto_msgTypes[4] 600 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 601 ms.StoreMessageInfo(mi) 602 } 603} 604 605func (x *AllUpdatesRule) String() string { 606 return protoimpl.X.MessageStringOf(x) 607} 608 609func (*AllUpdatesRule) ProtoMessage() {} 610 611func (x *AllUpdatesRule) ProtoReflect() protoreflect.Message { 612 mi := &file_google_cloud_billing_budgets_v1beta1_budget_model_proto_msgTypes[4] 613 if protoimpl.UnsafeEnabled && x != nil { 614 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 615 if ms.LoadMessageInfo() == nil { 616 ms.StoreMessageInfo(mi) 617 } 618 return ms 619 } 620 return mi.MessageOf(x) 621} 622 623// Deprecated: Use AllUpdatesRule.ProtoReflect.Descriptor instead. 624func (*AllUpdatesRule) Descriptor() ([]byte, []int) { 625 return file_google_cloud_billing_budgets_v1beta1_budget_model_proto_rawDescGZIP(), []int{4} 626} 627 628func (x *AllUpdatesRule) GetPubsubTopic() string { 629 if x != nil { 630 return x.PubsubTopic 631 } 632 return "" 633} 634 635func (x *AllUpdatesRule) GetSchemaVersion() string { 636 if x != nil { 637 return x.SchemaVersion 638 } 639 return "" 640} 641 642func (x *AllUpdatesRule) GetMonitoringNotificationChannels() []string { 643 if x != nil { 644 return x.MonitoringNotificationChannels 645 } 646 return nil 647} 648 649func (x *AllUpdatesRule) GetDisableDefaultIamRecipients() bool { 650 if x != nil { 651 return x.DisableDefaultIamRecipients 652 } 653 return false 654} 655 656// A filter for a budget, limiting the scope of the cost to calculate. 657type Filter struct { 658 state protoimpl.MessageState 659 sizeCache protoimpl.SizeCache 660 unknownFields protoimpl.UnknownFields 661 662 // Optional. A set of projects of the form `projects/{project}`, 663 // specifying that usage from only this set of projects should be 664 // included in the budget. If omitted, the report will include all usage for 665 // the billing account, regardless of which project the usage occurred on. 666 // Only zero or one project can be specified currently. 667 Projects []string `protobuf:"bytes,1,rep,name=projects,proto3" json:"projects,omitempty"` 668 // Optional. If 669 // [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.Filter.credit_types_treatment] 670 // is INCLUDE_SPECIFIED_CREDITS, this is a list of credit types to be 671 // subtracted from gross cost to determine the spend for threshold 672 // calculations. See [a list of acceptable credit type 673 // values](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#credits-type). 674 // 675 // If 676 // [Filter.credit_types_treatment][google.cloud.billing.budgets.v1beta1.Filter.credit_types_treatment] 677 // is **not** INCLUDE_SPECIFIED_CREDITS, this field must be empty. 678 CreditTypes []string `protobuf:"bytes,7,rep,name=credit_types,json=creditTypes,proto3" json:"credit_types,omitempty"` 679 // Optional. If not set, default behavior is `INCLUDE_ALL_CREDITS`. 680 CreditTypesTreatment Filter_CreditTypesTreatment `protobuf:"varint,4,opt,name=credit_types_treatment,json=creditTypesTreatment,proto3,enum=google.cloud.billing.budgets.v1beta1.Filter_CreditTypesTreatment" json:"credit_types_treatment,omitempty"` 681 // Optional. A set of services of the form `services/{service_id}`, 682 // specifying that usage from only this set of services should be 683 // included in the budget. If omitted, the report will include usage for 684 // all the services. 685 // The service names are available through the Catalog API: 686 // https://cloud.google.com/billing/v1/how-tos/catalog-api. 687 Services []string `protobuf:"bytes,3,rep,name=services,proto3" json:"services,omitempty"` 688 // Optional. A set of subaccounts of the form `billingAccounts/{account_id}`, 689 // specifying that usage from only this set of subaccounts should be included 690 // in the budget. If a subaccount is set to the name of the parent account, 691 // usage from the parent account will be included. If omitted, the 692 // report will include usage from the parent account and all 693 // subaccounts, if they exist. 694 Subaccounts []string `protobuf:"bytes,5,rep,name=subaccounts,proto3" json:"subaccounts,omitempty"` 695 // Optional. A single label and value pair specifying that usage from only 696 // this set of labeled resources should be included in the budget. Currently, 697 // multiple entries or multiple values per entry are not allowed. If omitted, 698 // the report will include all labeled and unlabeled usage. 699 Labels map[string]*structpb.ListValue `protobuf:"bytes,6,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 700 // Multiple options to choose the budget's time period, specifying that only 701 // usage that occurs during this time period should be included in the budget. 702 // If not set, the `usage_period` defaults to CalendarPeriod.MONTH. 703 // 704 // Types that are assignable to UsagePeriod: 705 // *Filter_CalendarPeriod 706 // *Filter_CustomPeriod 707 UsagePeriod isFilter_UsagePeriod `protobuf_oneof:"usage_period"` 708} 709 710func (x *Filter) Reset() { 711 *x = Filter{} 712 if protoimpl.UnsafeEnabled { 713 mi := &file_google_cloud_billing_budgets_v1beta1_budget_model_proto_msgTypes[5] 714 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 715 ms.StoreMessageInfo(mi) 716 } 717} 718 719func (x *Filter) String() string { 720 return protoimpl.X.MessageStringOf(x) 721} 722 723func (*Filter) ProtoMessage() {} 724 725func (x *Filter) ProtoReflect() protoreflect.Message { 726 mi := &file_google_cloud_billing_budgets_v1beta1_budget_model_proto_msgTypes[5] 727 if protoimpl.UnsafeEnabled && x != nil { 728 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 729 if ms.LoadMessageInfo() == nil { 730 ms.StoreMessageInfo(mi) 731 } 732 return ms 733 } 734 return mi.MessageOf(x) 735} 736 737// Deprecated: Use Filter.ProtoReflect.Descriptor instead. 738func (*Filter) Descriptor() ([]byte, []int) { 739 return file_google_cloud_billing_budgets_v1beta1_budget_model_proto_rawDescGZIP(), []int{5} 740} 741 742func (x *Filter) GetProjects() []string { 743 if x != nil { 744 return x.Projects 745 } 746 return nil 747} 748 749func (x *Filter) GetCreditTypes() []string { 750 if x != nil { 751 return x.CreditTypes 752 } 753 return nil 754} 755 756func (x *Filter) GetCreditTypesTreatment() Filter_CreditTypesTreatment { 757 if x != nil { 758 return x.CreditTypesTreatment 759 } 760 return Filter_CREDIT_TYPES_TREATMENT_UNSPECIFIED 761} 762 763func (x *Filter) GetServices() []string { 764 if x != nil { 765 return x.Services 766 } 767 return nil 768} 769 770func (x *Filter) GetSubaccounts() []string { 771 if x != nil { 772 return x.Subaccounts 773 } 774 return nil 775} 776 777func (x *Filter) GetLabels() map[string]*structpb.ListValue { 778 if x != nil { 779 return x.Labels 780 } 781 return nil 782} 783 784func (m *Filter) GetUsagePeriod() isFilter_UsagePeriod { 785 if m != nil { 786 return m.UsagePeriod 787 } 788 return nil 789} 790 791func (x *Filter) GetCalendarPeriod() CalendarPeriod { 792 if x, ok := x.GetUsagePeriod().(*Filter_CalendarPeriod); ok { 793 return x.CalendarPeriod 794 } 795 return CalendarPeriod_CALENDAR_PERIOD_UNSPECIFIED 796} 797 798func (x *Filter) GetCustomPeriod() *CustomPeriod { 799 if x, ok := x.GetUsagePeriod().(*Filter_CustomPeriod); ok { 800 return x.CustomPeriod 801 } 802 return nil 803} 804 805type isFilter_UsagePeriod interface { 806 isFilter_UsagePeriod() 807} 808 809type Filter_CalendarPeriod struct { 810 // Optional. Specifies to track usage for recurring calendar period. 811 // For example, assume that CalendarPeriod.QUARTER is set. The budget will 812 // track usage from April 1 to June 30, when the current calendar month is 813 // April, May, June. After that, it will track usage from July 1 to 814 // September 30 when the current calendar month is July, August, September, 815 // so on. 816 CalendarPeriod CalendarPeriod `protobuf:"varint,8,opt,name=calendar_period,json=calendarPeriod,proto3,enum=google.cloud.billing.budgets.v1beta1.CalendarPeriod,oneof"` 817} 818 819type Filter_CustomPeriod struct { 820 // Optional. Specifies to track usage from any start date (required) to any 821 // end date (optional). This time period is static, it does not recur. 822 CustomPeriod *CustomPeriod `protobuf:"bytes,9,opt,name=custom_period,json=customPeriod,proto3,oneof"` 823} 824 825func (*Filter_CalendarPeriod) isFilter_UsagePeriod() {} 826 827func (*Filter_CustomPeriod) isFilter_UsagePeriod() {} 828 829// All date times begin at 12 AM US and Canadian Pacific Time (UTC-8). 830type CustomPeriod struct { 831 state protoimpl.MessageState 832 sizeCache protoimpl.SizeCache 833 unknownFields protoimpl.UnknownFields 834 835 // Required. The start date must be after January 1, 2017. 836 StartDate *date.Date `protobuf:"bytes,1,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"` 837 // Optional. The end date of the time period. Budgets with elapsed end date 838 // won't be processed. If unset, specifies to track all usage incurred since 839 // the start_date. 840 EndDate *date.Date `protobuf:"bytes,2,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"` 841} 842 843func (x *CustomPeriod) Reset() { 844 *x = CustomPeriod{} 845 if protoimpl.UnsafeEnabled { 846 mi := &file_google_cloud_billing_budgets_v1beta1_budget_model_proto_msgTypes[6] 847 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 848 ms.StoreMessageInfo(mi) 849 } 850} 851 852func (x *CustomPeriod) String() string { 853 return protoimpl.X.MessageStringOf(x) 854} 855 856func (*CustomPeriod) ProtoMessage() {} 857 858func (x *CustomPeriod) ProtoReflect() protoreflect.Message { 859 mi := &file_google_cloud_billing_budgets_v1beta1_budget_model_proto_msgTypes[6] 860 if protoimpl.UnsafeEnabled && x != nil { 861 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 862 if ms.LoadMessageInfo() == nil { 863 ms.StoreMessageInfo(mi) 864 } 865 return ms 866 } 867 return mi.MessageOf(x) 868} 869 870// Deprecated: Use CustomPeriod.ProtoReflect.Descriptor instead. 871func (*CustomPeriod) Descriptor() ([]byte, []int) { 872 return file_google_cloud_billing_budgets_v1beta1_budget_model_proto_rawDescGZIP(), []int{6} 873} 874 875func (x *CustomPeriod) GetStartDate() *date.Date { 876 if x != nil { 877 return x.StartDate 878 } 879 return nil 880} 881 882func (x *CustomPeriod) GetEndDate() *date.Date { 883 if x != nil { 884 return x.EndDate 885 } 886 return nil 887} 888 889var File_google_cloud_billing_budgets_v1beta1_budget_model_proto protoreflect.FileDescriptor 890 891var file_google_cloud_billing_budgets_v1beta1_budget_model_proto_rawDesc = []byte{ 892 0x0a, 0x37, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x62, 893 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x73, 0x2f, 0x76, 894 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x5f, 0x6d, 0x6f, 895 0x64, 0x65, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x24, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 896 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2e, 897 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 898 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 899 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 900 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 901 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 902 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 903 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x16, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 904 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 905 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x6d, 906 0x6f, 0x6e, 0x65, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xad, 0x04, 0x0a, 0x06, 0x42, 907 0x75, 0x64, 0x67, 0x65, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 908 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 909 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 910 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 911 0x65, 0x12, 0x56, 0x0a, 0x0d, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x74, 912 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 913 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2e, 914 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 915 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x62, 0x75, 0x64, 916 0x67, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 917 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 918 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 919 0x2e, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 920 0x2e, 0x42, 0x75, 0x64, 0x67, 0x65, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x03, 0xe0, 921 0x41, 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x61, 0x0a, 0x0f, 0x74, 0x68, 922 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x05, 0x20, 923 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 924 0x75, 0x64, 0x2e, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2e, 0x62, 0x75, 0x64, 0x67, 0x65, 925 0x74, 0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x68, 0x72, 0x65, 0x73, 926 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x74, 927 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x63, 0x0a, 928 0x10, 0x61, 0x6c, 0x6c, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x75, 0x6c, 929 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 930 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2e, 0x62, 931 0x75, 0x64, 0x67, 0x65, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 932 0x6c, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x03, 0xe0, 933 0x41, 0x01, 0x52, 0x0e, 0x61, 0x6c, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x75, 934 0x6c, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 935 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x3a, 0x5d, 0xea, 0x41, 0x5a, 936 0x0a, 0x24, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x73, 937 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 938 0x42, 0x75, 0x64, 0x67, 0x65, 0x74, 0x12, 0x32, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x41, 939 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 940 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x7d, 0x2f, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 941 0x73, 0x2f, 0x7b, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x7d, 0x22, 0xc8, 0x01, 0x0a, 0x0c, 0x42, 942 0x75, 0x64, 0x67, 0x65, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x10, 0x73, 943 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 944 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 945 0x79, 0x70, 0x65, 0x2e, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x70, 0x65, 946 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x66, 0x0a, 0x12, 947 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 948 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 949 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2e, 950 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 951 0x4c, 0x61, 0x73, 0x74, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 952 0x48, 0x00, 0x52, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x41, 0x6d, 953 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x5f, 0x61, 954 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x12, 0x0a, 0x10, 0x4c, 0x61, 0x73, 0x74, 0x50, 0x65, 0x72, 955 0x69, 0x6f, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xeb, 0x01, 0x0a, 0x0d, 0x54, 0x68, 956 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x11, 0x74, 957 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 958 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x74, 0x68, 0x72, 959 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x5f, 0x0a, 960 0x0b, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x61, 0x73, 0x69, 0x73, 0x18, 0x02, 0x20, 0x01, 961 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 962 0x64, 0x2e, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2e, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 963 0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 964 0x6f, 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x73, 0x42, 0x03, 0xe0, 965 0x41, 0x01, 0x52, 0x0a, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x42, 0x61, 0x73, 0x69, 0x73, 0x22, 0x47, 966 0x0a, 0x05, 0x42, 0x61, 0x73, 0x69, 0x73, 0x12, 0x15, 0x0a, 0x11, 0x42, 0x41, 0x53, 0x49, 0x53, 967 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 968 0x0a, 0x0d, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x50, 0x45, 0x4e, 0x44, 0x10, 969 0x01, 0x12, 0x14, 0x0a, 0x10, 0x46, 0x4f, 0x52, 0x45, 0x43, 0x41, 0x53, 0x54, 0x45, 0x44, 0x5f, 970 0x53, 0x50, 0x45, 0x4e, 0x44, 0x10, 0x02, 0x22, 0xfd, 0x01, 0x0a, 0x0e, 0x41, 0x6c, 0x6c, 0x55, 971 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x75, 972 0x62, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 973 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x54, 0x6f, 0x70, 974 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x76, 0x65, 0x72, 975 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 976 0x0d, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4d, 977 0x0a, 0x20, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6e, 0x6f, 0x74, 978 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 979 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x1e, 0x6d, 980 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 981 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x48, 0x0a, 982 0x1e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 983 0x5f, 0x69, 0x61, 0x6d, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 984 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x1b, 0x64, 0x69, 0x73, 0x61, 985 0x62, 0x6c, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x49, 0x61, 0x6d, 0x52, 0x65, 0x63, 986 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xad, 0x06, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 987 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x01, 988 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 989 0x63, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x74, 0x79, 990 0x70, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 991 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x7c, 0x0a, 0x16, 0x63, 992 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x5f, 0x74, 0x72, 0x65, 0x61, 993 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x41, 0x2e, 0x67, 0x6f, 994 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x6c, 0x6c, 0x69, 995 0x6e, 0x67, 0x2e, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 996 0x61, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 997 0x54, 0x79, 0x70, 0x65, 0x73, 0x54, 0x72, 0x65, 0x61, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x03, 998 0xe0, 0x41, 0x01, 0x52, 0x14, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 999 0x54, 0x72, 0x65, 0x61, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x08, 0x73, 0x65, 0x72, 1000 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 1001 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0b, 0x73, 0x75, 1002 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x42, 1003 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 1004 0x73, 0x12, 0x55, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 1005 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 1006 0x2e, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2e, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x73, 1007 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 1008 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 1009 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x64, 0x0a, 0x0f, 0x63, 0x61, 0x6c, 0x65, 1010 0x6e, 0x64, 0x61, 0x72, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 1011 0x0e, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 1012 0x2e, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2e, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x73, 1013 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 1014 0x72, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0e, 1015 0x63, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x5e, 1016 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 1017 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 1018 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2e, 0x62, 0x75, 0x64, 1019 0x67, 0x65, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x75, 0x73, 1020 0x74, 0x6f, 0x6d, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 1021 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x1a, 0x55, 1022 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 1023 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 1024 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 1025 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 1026 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 1027 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8f, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 1028 0x54, 0x79, 0x70, 0x65, 0x73, 0x54, 0x72, 0x65, 0x61, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x26, 1029 0x0a, 0x22, 0x43, 0x52, 0x45, 0x44, 0x49, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x53, 0x5f, 0x54, 1030 0x52, 0x45, 0x41, 0x54, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 1031 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x4e, 0x43, 0x4c, 0x55, 0x44, 1032 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x5f, 0x43, 0x52, 0x45, 0x44, 0x49, 0x54, 0x53, 0x10, 0x01, 0x12, 1033 0x17, 0x0a, 0x13, 0x45, 0x58, 0x43, 0x4c, 0x55, 0x44, 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x5f, 0x43, 1034 0x52, 0x45, 0x44, 0x49, 0x54, 0x53, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x4e, 0x43, 0x4c, 1035 0x55, 0x44, 0x45, 0x5f, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x43, 0x52, 1036 0x45, 0x44, 0x49, 0x54, 0x53, 0x10, 0x03, 0x42, 0x0e, 0x0a, 0x0c, 0x75, 0x73, 0x61, 0x67, 0x65, 1037 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x22, 0x78, 0x0a, 0x0c, 0x43, 0x75, 0x73, 0x74, 0x6f, 1038 0x6d, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x35, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 1039 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6f, 1040 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x42, 0x03, 1041 0xe0, 0x41, 0x02, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x31, 1042 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 1043 0x32, 0x11, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x44, 1044 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 1045 0x65, 0x2a, 0x53, 0x0a, 0x0e, 0x43, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72, 0x50, 0x65, 0x72, 1046 0x69, 0x6f, 0x64, 0x12, 0x1f, 0x0a, 0x1b, 0x43, 0x41, 0x4c, 0x45, 0x4e, 0x44, 0x41, 0x52, 0x5f, 1047 0x50, 0x45, 0x52, 0x49, 0x4f, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 1048 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x4f, 0x4e, 0x54, 0x48, 0x10, 0x01, 0x12, 1049 0x0b, 0x0a, 0x07, 0x51, 0x55, 0x41, 0x52, 0x54, 0x45, 0x52, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 1050 0x59, 0x45, 0x41, 0x52, 0x10, 0x03, 0x42, 0x79, 0x0a, 0x28, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 1051 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x6c, 0x6c, 0x69, 1052 0x6e, 0x67, 0x2e, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 1053 0x61, 0x31, 0x50, 0x01, 0x5a, 0x4b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 1054 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 1055 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 1056 0x64, 0x2f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 1057 0x73, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 1058 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 1059} 1060 1061var ( 1062 file_google_cloud_billing_budgets_v1beta1_budget_model_proto_rawDescOnce sync.Once 1063 file_google_cloud_billing_budgets_v1beta1_budget_model_proto_rawDescData = file_google_cloud_billing_budgets_v1beta1_budget_model_proto_rawDesc 1064) 1065 1066func file_google_cloud_billing_budgets_v1beta1_budget_model_proto_rawDescGZIP() []byte { 1067 file_google_cloud_billing_budgets_v1beta1_budget_model_proto_rawDescOnce.Do(func() { 1068 file_google_cloud_billing_budgets_v1beta1_budget_model_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_billing_budgets_v1beta1_budget_model_proto_rawDescData) 1069 }) 1070 return file_google_cloud_billing_budgets_v1beta1_budget_model_proto_rawDescData 1071} 1072 1073var file_google_cloud_billing_budgets_v1beta1_budget_model_proto_enumTypes = make([]protoimpl.EnumInfo, 3) 1074var file_google_cloud_billing_budgets_v1beta1_budget_model_proto_msgTypes = make([]protoimpl.MessageInfo, 8) 1075var file_google_cloud_billing_budgets_v1beta1_budget_model_proto_goTypes = []interface{}{ 1076 (CalendarPeriod)(0), // 0: google.cloud.billing.budgets.v1beta1.CalendarPeriod 1077 (ThresholdRule_Basis)(0), // 1: google.cloud.billing.budgets.v1beta1.ThresholdRule.Basis 1078 (Filter_CreditTypesTreatment)(0), // 2: google.cloud.billing.budgets.v1beta1.Filter.CreditTypesTreatment 1079 (*Budget)(nil), // 3: google.cloud.billing.budgets.v1beta1.Budget 1080 (*BudgetAmount)(nil), // 4: google.cloud.billing.budgets.v1beta1.BudgetAmount 1081 (*LastPeriodAmount)(nil), // 5: google.cloud.billing.budgets.v1beta1.LastPeriodAmount 1082 (*ThresholdRule)(nil), // 6: google.cloud.billing.budgets.v1beta1.ThresholdRule 1083 (*AllUpdatesRule)(nil), // 7: google.cloud.billing.budgets.v1beta1.AllUpdatesRule 1084 (*Filter)(nil), // 8: google.cloud.billing.budgets.v1beta1.Filter 1085 (*CustomPeriod)(nil), // 9: google.cloud.billing.budgets.v1beta1.CustomPeriod 1086 nil, // 10: google.cloud.billing.budgets.v1beta1.Filter.LabelsEntry 1087 (*money.Money)(nil), // 11: google.type.Money 1088 (*date.Date)(nil), // 12: google.type.Date 1089 (*structpb.ListValue)(nil), // 13: google.protobuf.ListValue 1090} 1091var file_google_cloud_billing_budgets_v1beta1_budget_model_proto_depIdxs = []int32{ 1092 8, // 0: google.cloud.billing.budgets.v1beta1.Budget.budget_filter:type_name -> google.cloud.billing.budgets.v1beta1.Filter 1093 4, // 1: google.cloud.billing.budgets.v1beta1.Budget.amount:type_name -> google.cloud.billing.budgets.v1beta1.BudgetAmount 1094 6, // 2: google.cloud.billing.budgets.v1beta1.Budget.threshold_rules:type_name -> google.cloud.billing.budgets.v1beta1.ThresholdRule 1095 7, // 3: google.cloud.billing.budgets.v1beta1.Budget.all_updates_rule:type_name -> google.cloud.billing.budgets.v1beta1.AllUpdatesRule 1096 11, // 4: google.cloud.billing.budgets.v1beta1.BudgetAmount.specified_amount:type_name -> google.type.Money 1097 5, // 5: google.cloud.billing.budgets.v1beta1.BudgetAmount.last_period_amount:type_name -> google.cloud.billing.budgets.v1beta1.LastPeriodAmount 1098 1, // 6: google.cloud.billing.budgets.v1beta1.ThresholdRule.spend_basis:type_name -> google.cloud.billing.budgets.v1beta1.ThresholdRule.Basis 1099 2, // 7: google.cloud.billing.budgets.v1beta1.Filter.credit_types_treatment:type_name -> google.cloud.billing.budgets.v1beta1.Filter.CreditTypesTreatment 1100 10, // 8: google.cloud.billing.budgets.v1beta1.Filter.labels:type_name -> google.cloud.billing.budgets.v1beta1.Filter.LabelsEntry 1101 0, // 9: google.cloud.billing.budgets.v1beta1.Filter.calendar_period:type_name -> google.cloud.billing.budgets.v1beta1.CalendarPeriod 1102 9, // 10: google.cloud.billing.budgets.v1beta1.Filter.custom_period:type_name -> google.cloud.billing.budgets.v1beta1.CustomPeriod 1103 12, // 11: google.cloud.billing.budgets.v1beta1.CustomPeriod.start_date:type_name -> google.type.Date 1104 12, // 12: google.cloud.billing.budgets.v1beta1.CustomPeriod.end_date:type_name -> google.type.Date 1105 13, // 13: google.cloud.billing.budgets.v1beta1.Filter.LabelsEntry.value:type_name -> google.protobuf.ListValue 1106 14, // [14:14] is the sub-list for method output_type 1107 14, // [14:14] is the sub-list for method input_type 1108 14, // [14:14] is the sub-list for extension type_name 1109 14, // [14:14] is the sub-list for extension extendee 1110 0, // [0:14] is the sub-list for field type_name 1111} 1112 1113func init() { file_google_cloud_billing_budgets_v1beta1_budget_model_proto_init() } 1114func file_google_cloud_billing_budgets_v1beta1_budget_model_proto_init() { 1115 if File_google_cloud_billing_budgets_v1beta1_budget_model_proto != nil { 1116 return 1117 } 1118 if !protoimpl.UnsafeEnabled { 1119 file_google_cloud_billing_budgets_v1beta1_budget_model_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 1120 switch v := v.(*Budget); i { 1121 case 0: 1122 return &v.state 1123 case 1: 1124 return &v.sizeCache 1125 case 2: 1126 return &v.unknownFields 1127 default: 1128 return nil 1129 } 1130 } 1131 file_google_cloud_billing_budgets_v1beta1_budget_model_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 1132 switch v := v.(*BudgetAmount); i { 1133 case 0: 1134 return &v.state 1135 case 1: 1136 return &v.sizeCache 1137 case 2: 1138 return &v.unknownFields 1139 default: 1140 return nil 1141 } 1142 } 1143 file_google_cloud_billing_budgets_v1beta1_budget_model_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 1144 switch v := v.(*LastPeriodAmount); i { 1145 case 0: 1146 return &v.state 1147 case 1: 1148 return &v.sizeCache 1149 case 2: 1150 return &v.unknownFields 1151 default: 1152 return nil 1153 } 1154 } 1155 file_google_cloud_billing_budgets_v1beta1_budget_model_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 1156 switch v := v.(*ThresholdRule); i { 1157 case 0: 1158 return &v.state 1159 case 1: 1160 return &v.sizeCache 1161 case 2: 1162 return &v.unknownFields 1163 default: 1164 return nil 1165 } 1166 } 1167 file_google_cloud_billing_budgets_v1beta1_budget_model_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 1168 switch v := v.(*AllUpdatesRule); i { 1169 case 0: 1170 return &v.state 1171 case 1: 1172 return &v.sizeCache 1173 case 2: 1174 return &v.unknownFields 1175 default: 1176 return nil 1177 } 1178 } 1179 file_google_cloud_billing_budgets_v1beta1_budget_model_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 1180 switch v := v.(*Filter); i { 1181 case 0: 1182 return &v.state 1183 case 1: 1184 return &v.sizeCache 1185 case 2: 1186 return &v.unknownFields 1187 default: 1188 return nil 1189 } 1190 } 1191 file_google_cloud_billing_budgets_v1beta1_budget_model_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 1192 switch v := v.(*CustomPeriod); i { 1193 case 0: 1194 return &v.state 1195 case 1: 1196 return &v.sizeCache 1197 case 2: 1198 return &v.unknownFields 1199 default: 1200 return nil 1201 } 1202 } 1203 } 1204 file_google_cloud_billing_budgets_v1beta1_budget_model_proto_msgTypes[1].OneofWrappers = []interface{}{ 1205 (*BudgetAmount_SpecifiedAmount)(nil), 1206 (*BudgetAmount_LastPeriodAmount)(nil), 1207 } 1208 file_google_cloud_billing_budgets_v1beta1_budget_model_proto_msgTypes[5].OneofWrappers = []interface{}{ 1209 (*Filter_CalendarPeriod)(nil), 1210 (*Filter_CustomPeriod)(nil), 1211 } 1212 type x struct{} 1213 out := protoimpl.TypeBuilder{ 1214 File: protoimpl.DescBuilder{ 1215 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 1216 RawDescriptor: file_google_cloud_billing_budgets_v1beta1_budget_model_proto_rawDesc, 1217 NumEnums: 3, 1218 NumMessages: 8, 1219 NumExtensions: 0, 1220 NumServices: 0, 1221 }, 1222 GoTypes: file_google_cloud_billing_budgets_v1beta1_budget_model_proto_goTypes, 1223 DependencyIndexes: file_google_cloud_billing_budgets_v1beta1_budget_model_proto_depIdxs, 1224 EnumInfos: file_google_cloud_billing_budgets_v1beta1_budget_model_proto_enumTypes, 1225 MessageInfos: file_google_cloud_billing_budgets_v1beta1_budget_model_proto_msgTypes, 1226 }.Build() 1227 File_google_cloud_billing_budgets_v1beta1_budget_model_proto = out.File 1228 file_google_cloud_billing_budgets_v1beta1_budget_model_proto_rawDesc = nil 1229 file_google_cloud_billing_budgets_v1beta1_budget_model_proto_goTypes = nil 1230 file_google_cloud_billing_budgets_v1beta1_budget_model_proto_depIdxs = nil 1231} 1232