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