1// Copyright 2020 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 18// protoc v3.13.0 19// source: google/cloud/billing/budgets/v1alpha1/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 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// This is a compile-time assertion that a sufficiently up-to-date version 43// of the legacy proto package is being used. 44const _ = proto.ProtoPackageIsVersion4 45 46// The type of basis used to determine if spend has passed the threshold. 47type ThresholdRule_Basis int32 48 49const ( 50 // Unspecified threshold basis. 51 ThresholdRule_BASIS_UNSPECIFIED ThresholdRule_Basis = 0 52 // Use current spend as the basis for comparison against the threshold. 53 ThresholdRule_CURRENT_SPEND ThresholdRule_Basis = 1 54 // Use forecasted spend for the period as the basis for comparison against 55 // the threshold. 56 ThresholdRule_FORECASTED_SPEND ThresholdRule_Basis = 2 57) 58 59// Enum value maps for ThresholdRule_Basis. 60var ( 61 ThresholdRule_Basis_name = map[int32]string{ 62 0: "BASIS_UNSPECIFIED", 63 1: "CURRENT_SPEND", 64 2: "FORECASTED_SPEND", 65 } 66 ThresholdRule_Basis_value = map[string]int32{ 67 "BASIS_UNSPECIFIED": 0, 68 "CURRENT_SPEND": 1, 69 "FORECASTED_SPEND": 2, 70 } 71) 72 73func (x ThresholdRule_Basis) Enum() *ThresholdRule_Basis { 74 p := new(ThresholdRule_Basis) 75 *p = x 76 return p 77} 78 79func (x ThresholdRule_Basis) String() string { 80 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 81} 82 83func (ThresholdRule_Basis) Descriptor() protoreflect.EnumDescriptor { 84 return file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_enumTypes[0].Descriptor() 85} 86 87func (ThresholdRule_Basis) Type() protoreflect.EnumType { 88 return &file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_enumTypes[0] 89} 90 91func (x ThresholdRule_Basis) Number() protoreflect.EnumNumber { 92 return protoreflect.EnumNumber(x) 93} 94 95// Deprecated: Use ThresholdRule_Basis.Descriptor instead. 96func (ThresholdRule_Basis) EnumDescriptor() ([]byte, []int) { 97 return file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_rawDescGZIP(), []int{3, 0} 98} 99 100// Specifies how credits should be treated when determining spend for 101// threshold calculations. 102type Filter_CreditTypesTreatment int32 103 104const ( 105 Filter_CREDIT_TYPES_TREATMENT_UNSPECIFIED Filter_CreditTypesTreatment = 0 106 // All types of credit are subtracted from the gross cost to determine the 107 // spend for threshold calculations. 108 Filter_INCLUDE_ALL_CREDITS Filter_CreditTypesTreatment = 1 109 // All types of credit are added to the net cost to determine the spend for 110 // threshold calculations. 111 Filter_EXCLUDE_ALL_CREDITS Filter_CreditTypesTreatment = 2 112 // Credit types specified in the credit_types field are subtracted from the 113 // gross cost to determine the spend for threshold calculations. 114 Filter_INCLUDE_SPECIFIED_CREDITS Filter_CreditTypesTreatment = 3 115) 116 117// Enum value maps for Filter_CreditTypesTreatment. 118var ( 119 Filter_CreditTypesTreatment_name = map[int32]string{ 120 0: "CREDIT_TYPES_TREATMENT_UNSPECIFIED", 121 1: "INCLUDE_ALL_CREDITS", 122 2: "EXCLUDE_ALL_CREDITS", 123 3: "INCLUDE_SPECIFIED_CREDITS", 124 } 125 Filter_CreditTypesTreatment_value = map[string]int32{ 126 "CREDIT_TYPES_TREATMENT_UNSPECIFIED": 0, 127 "INCLUDE_ALL_CREDITS": 1, 128 "EXCLUDE_ALL_CREDITS": 2, 129 "INCLUDE_SPECIFIED_CREDITS": 3, 130 } 131) 132 133func (x Filter_CreditTypesTreatment) Enum() *Filter_CreditTypesTreatment { 134 p := new(Filter_CreditTypesTreatment) 135 *p = x 136 return p 137} 138 139func (x Filter_CreditTypesTreatment) String() string { 140 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 141} 142 143func (Filter_CreditTypesTreatment) Descriptor() protoreflect.EnumDescriptor { 144 return file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_enumTypes[1].Descriptor() 145} 146 147func (Filter_CreditTypesTreatment) Type() protoreflect.EnumType { 148 return &file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_enumTypes[1] 149} 150 151func (x Filter_CreditTypesTreatment) Number() protoreflect.EnumNumber { 152 return protoreflect.EnumNumber(x) 153} 154 155// Deprecated: Use Filter_CreditTypesTreatment.Descriptor instead. 156func (Filter_CreditTypesTreatment) EnumDescriptor() ([]byte, []int) { 157 return file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_rawDescGZIP(), []int{5, 0} 158} 159 160// A budget is a plan that describes what you expect to spend on Cloud 161// projects, plus the rules to execute as spend is tracked against that plan, 162// (for example, send an alert when 90% of the target spend is met). 163// Currently all plans are monthly budgets so the usage period(s) tracked are 164// implied (calendar months of usage back-to-back). 165type Budget struct { 166 state protoimpl.MessageState 167 sizeCache protoimpl.SizeCache 168 unknownFields protoimpl.UnknownFields 169 170 // Output only. Resource name of the budget. 171 // The resource name implies the scope of a budget. Values are of the form 172 // `billingAccounts/{billingAccountId}/budgets/{budgetId}`. 173 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 174 // User data for display name in UI. 175 // Validation: <= 60 chars. 176 DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 177 // Optional. Filters that define which resources are used to compute 178 // the actual spend against the budget. 179 BudgetFilter *Filter `protobuf:"bytes,3,opt,name=budget_filter,json=budgetFilter,proto3" json:"budget_filter,omitempty"` 180 // Required. Budgeted amount. 181 Amount *BudgetAmount `protobuf:"bytes,4,opt,name=amount,proto3" json:"amount,omitempty"` 182 // Optional. Rules that trigger alerts (notifications of thresholds 183 // being crossed) when spend exceeds the specified percentages of the budget. 184 ThresholdRules []*ThresholdRule `protobuf:"bytes,5,rep,name=threshold_rules,json=thresholdRules,proto3" json:"threshold_rules,omitempty"` 185 // Optional. Rules to apply to notifications sent based on budget spend and 186 // thresholds. 187 AllUpdatesRule *AllUpdatesRule `protobuf:"bytes,6,opt,name=all_updates_rule,json=allUpdatesRule,proto3" json:"all_updates_rule,omitempty"` 188 // Optional. Etag to validate that the object is unchanged for a 189 // read-modify-write operation. 190 // An empty etag will cause an update to overwrite other changes. 191 Etag string `protobuf:"bytes,7,opt,name=etag,proto3" json:"etag,omitempty"` 192} 193 194func (x *Budget) Reset() { 195 *x = Budget{} 196 if protoimpl.UnsafeEnabled { 197 mi := &file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_msgTypes[0] 198 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 199 ms.StoreMessageInfo(mi) 200 } 201} 202 203func (x *Budget) String() string { 204 return protoimpl.X.MessageStringOf(x) 205} 206 207func (*Budget) ProtoMessage() {} 208 209func (x *Budget) ProtoReflect() protoreflect.Message { 210 mi := &file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_msgTypes[0] 211 if protoimpl.UnsafeEnabled && x != nil { 212 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 213 if ms.LoadMessageInfo() == nil { 214 ms.StoreMessageInfo(mi) 215 } 216 return ms 217 } 218 return mi.MessageOf(x) 219} 220 221// Deprecated: Use Budget.ProtoReflect.Descriptor instead. 222func (*Budget) Descriptor() ([]byte, []int) { 223 return file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_rawDescGZIP(), []int{0} 224} 225 226func (x *Budget) GetName() string { 227 if x != nil { 228 return x.Name 229 } 230 return "" 231} 232 233func (x *Budget) GetDisplayName() string { 234 if x != nil { 235 return x.DisplayName 236 } 237 return "" 238} 239 240func (x *Budget) GetBudgetFilter() *Filter { 241 if x != nil { 242 return x.BudgetFilter 243 } 244 return nil 245} 246 247func (x *Budget) GetAmount() *BudgetAmount { 248 if x != nil { 249 return x.Amount 250 } 251 return nil 252} 253 254func (x *Budget) GetThresholdRules() []*ThresholdRule { 255 if x != nil { 256 return x.ThresholdRules 257 } 258 return nil 259} 260 261func (x *Budget) GetAllUpdatesRule() *AllUpdatesRule { 262 if x != nil { 263 return x.AllUpdatesRule 264 } 265 return nil 266} 267 268func (x *Budget) GetEtag() string { 269 if x != nil { 270 return x.Etag 271 } 272 return "" 273} 274 275// The budgeted amount for each usage period. 276type BudgetAmount struct { 277 state protoimpl.MessageState 278 sizeCache protoimpl.SizeCache 279 unknownFields protoimpl.UnknownFields 280 281 // Specification for what amount to use as the budget. 282 // 283 // Types that are assignable to BudgetAmount: 284 // *BudgetAmount_SpecifiedAmount 285 // *BudgetAmount_LastPeriodAmount 286 BudgetAmount isBudgetAmount_BudgetAmount `protobuf_oneof:"budget_amount"` 287} 288 289func (x *BudgetAmount) Reset() { 290 *x = BudgetAmount{} 291 if protoimpl.UnsafeEnabled { 292 mi := &file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_msgTypes[1] 293 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 294 ms.StoreMessageInfo(mi) 295 } 296} 297 298func (x *BudgetAmount) String() string { 299 return protoimpl.X.MessageStringOf(x) 300} 301 302func (*BudgetAmount) ProtoMessage() {} 303 304func (x *BudgetAmount) ProtoReflect() protoreflect.Message { 305 mi := &file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_msgTypes[1] 306 if protoimpl.UnsafeEnabled && x != nil { 307 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 308 if ms.LoadMessageInfo() == nil { 309 ms.StoreMessageInfo(mi) 310 } 311 return ms 312 } 313 return mi.MessageOf(x) 314} 315 316// Deprecated: Use BudgetAmount.ProtoReflect.Descriptor instead. 317func (*BudgetAmount) Descriptor() ([]byte, []int) { 318 return file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_rawDescGZIP(), []int{1} 319} 320 321func (m *BudgetAmount) GetBudgetAmount() isBudgetAmount_BudgetAmount { 322 if m != nil { 323 return m.BudgetAmount 324 } 325 return nil 326} 327 328func (x *BudgetAmount) GetSpecifiedAmount() *money.Money { 329 if x, ok := x.GetBudgetAmount().(*BudgetAmount_SpecifiedAmount); ok { 330 return x.SpecifiedAmount 331 } 332 return nil 333} 334 335func (x *BudgetAmount) GetLastPeriodAmount() *LastPeriodAmount { 336 if x, ok := x.GetBudgetAmount().(*BudgetAmount_LastPeriodAmount); ok { 337 return x.LastPeriodAmount 338 } 339 return nil 340} 341 342type isBudgetAmount_BudgetAmount interface { 343 isBudgetAmount_BudgetAmount() 344} 345 346type BudgetAmount_SpecifiedAmount struct { 347 // A specified amount to use as the budget. 348 // `currency_code` is optional. If specified, it must match the 349 // currency of the billing account. The `currency_code` is provided on 350 // output. 351 SpecifiedAmount *money.Money `protobuf:"bytes,1,opt,name=specified_amount,json=specifiedAmount,proto3,oneof"` 352} 353 354type BudgetAmount_LastPeriodAmount struct { 355 // Use the last period's actual spend as the budget for the present period. 356 LastPeriodAmount *LastPeriodAmount `protobuf:"bytes,2,opt,name=last_period_amount,json=lastPeriodAmount,proto3,oneof"` 357} 358 359func (*BudgetAmount_SpecifiedAmount) isBudgetAmount_BudgetAmount() {} 360 361func (*BudgetAmount_LastPeriodAmount) isBudgetAmount_BudgetAmount() {} 362 363// Describes a budget amount targeted to last period's spend. 364// At this time, the amount is automatically 100% of last period's spend; 365// that is, there are no other options yet. 366// Future configuration will be described here (for example, configuring a 367// percentage of last period's spend). 368type LastPeriodAmount struct { 369 state protoimpl.MessageState 370 sizeCache protoimpl.SizeCache 371 unknownFields protoimpl.UnknownFields 372} 373 374func (x *LastPeriodAmount) Reset() { 375 *x = LastPeriodAmount{} 376 if protoimpl.UnsafeEnabled { 377 mi := &file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_msgTypes[2] 378 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 379 ms.StoreMessageInfo(mi) 380 } 381} 382 383func (x *LastPeriodAmount) String() string { 384 return protoimpl.X.MessageStringOf(x) 385} 386 387func (*LastPeriodAmount) ProtoMessage() {} 388 389func (x *LastPeriodAmount) ProtoReflect() protoreflect.Message { 390 mi := &file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_msgTypes[2] 391 if protoimpl.UnsafeEnabled && x != nil { 392 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 393 if ms.LoadMessageInfo() == nil { 394 ms.StoreMessageInfo(mi) 395 } 396 return ms 397 } 398 return mi.MessageOf(x) 399} 400 401// Deprecated: Use LastPeriodAmount.ProtoReflect.Descriptor instead. 402func (*LastPeriodAmount) Descriptor() ([]byte, []int) { 403 return file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_rawDescGZIP(), []int{2} 404} 405 406// ThresholdRule contains a definition of a threshold which triggers 407// an alert (a notification of a threshold being crossed) to be sent when 408// spend goes above the specified amount. 409// Alerts are automatically e-mailed to users with the Billing Account 410// Administrator role or the Billing Account User role. 411// The thresholds here have no effect on notifications sent to anything 412// configured under `Budget.all_updates_rule`. 413type ThresholdRule struct { 414 state protoimpl.MessageState 415 sizeCache protoimpl.SizeCache 416 unknownFields protoimpl.UnknownFields 417 418 // Required. Send an alert when this threshold is exceeded. 419 // This is a 1.0-based percentage, so 0.5 = 50%. 420 // Validation: non-negative number. 421 ThresholdPercent float64 `protobuf:"fixed64,1,opt,name=threshold_percent,json=thresholdPercent,proto3" json:"threshold_percent,omitempty"` 422 // Optional. The type of basis used to determine if spend has passed the 423 // threshold. Behavior defaults to CURRENT_SPEND if not set. 424 SpendBasis ThresholdRule_Basis `protobuf:"varint,2,opt,name=spend_basis,json=spendBasis,proto3,enum=google.cloud.billing.budgets.v1alpha1.ThresholdRule_Basis" json:"spend_basis,omitempty"` 425} 426 427func (x *ThresholdRule) Reset() { 428 *x = ThresholdRule{} 429 if protoimpl.UnsafeEnabled { 430 mi := &file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_msgTypes[3] 431 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 432 ms.StoreMessageInfo(mi) 433 } 434} 435 436func (x *ThresholdRule) String() string { 437 return protoimpl.X.MessageStringOf(x) 438} 439 440func (*ThresholdRule) ProtoMessage() {} 441 442func (x *ThresholdRule) ProtoReflect() protoreflect.Message { 443 mi := &file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_msgTypes[3] 444 if protoimpl.UnsafeEnabled && x != nil { 445 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 446 if ms.LoadMessageInfo() == nil { 447 ms.StoreMessageInfo(mi) 448 } 449 return ms 450 } 451 return mi.MessageOf(x) 452} 453 454// Deprecated: Use ThresholdRule.ProtoReflect.Descriptor instead. 455func (*ThresholdRule) Descriptor() ([]byte, []int) { 456 return file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_rawDescGZIP(), []int{3} 457} 458 459func (x *ThresholdRule) GetThresholdPercent() float64 { 460 if x != nil { 461 return x.ThresholdPercent 462 } 463 return 0 464} 465 466func (x *ThresholdRule) GetSpendBasis() ThresholdRule_Basis { 467 if x != nil { 468 return x.SpendBasis 469 } 470 return ThresholdRule_BASIS_UNSPECIFIED 471} 472 473// AllUpdatesRule defines notifications that are sent based on budget spend 474// and thresholds. 475type AllUpdatesRule struct { 476 state protoimpl.MessageState 477 sizeCache protoimpl.SizeCache 478 unknownFields protoimpl.UnknownFields 479 480 // Optional. The name of the Pub/Sub topic where budget related messages will 481 // be published, in the form `projects/{project_id}/topics/{topic_id}`. 482 // Updates are sent at regular intervals to the topic. The topic needs to be 483 // created before the budget is created; see 484 // https://cloud.google.com/billing/docs/how-to/budgets#manage-notifications 485 // for more details. 486 // Caller is expected to have 487 // `pubsub.topics.setIamPolicy` permission on the topic when it's set for a 488 // budget, otherwise, the API call will fail with PERMISSION_DENIED. See 489 // https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications 490 // for more details on Pub/Sub roles and permissions. 491 PubsubTopic string `protobuf:"bytes,1,opt,name=pubsub_topic,json=pubsubTopic,proto3" json:"pubsub_topic,omitempty"` 492 // Optional. The schema version of the notification sent to `pubsub_topic`. 493 // Only "1.0" is accepted. It represents the JSON schema as defined in 494 // https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format 495 SchemaVersion string `protobuf:"bytes,2,opt,name=schema_version,json=schemaVersion,proto3" json:"schema_version,omitempty"` 496 // Optional. Targets to send notifications to when a threshold is exceeded. 497 // This is in addition to default recipients who have billing account IAM 498 // roles. The value is the full REST resource name of a monitoring 499 // notification channel with the form 500 // `projects/{project_id}/notificationChannels/{channel_id}`. A maximum of 5 501 // channels are allowed. See 502 // https://cloud.google.com/billing/docs/how-to/budgets-notification-recipients 503 // for more details. 504 MonitoringNotificationChannels []string `protobuf:"bytes,3,rep,name=monitoring_notification_channels,json=monitoringNotificationChannels,proto3" json:"monitoring_notification_channels,omitempty"` 505 // Optional. When set to true, disables default notifications sent when a 506 // threshold is exceeded. Default notifications are sent to those with Billing 507 // Account Administrator and Billing Account User IAM roles for the target 508 // account. 509 DisableDefaultIamRecipients bool `protobuf:"varint,4,opt,name=disable_default_iam_recipients,json=disableDefaultIamRecipients,proto3" json:"disable_default_iam_recipients,omitempty"` 510} 511 512func (x *AllUpdatesRule) Reset() { 513 *x = AllUpdatesRule{} 514 if protoimpl.UnsafeEnabled { 515 mi := &file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_msgTypes[4] 516 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 517 ms.StoreMessageInfo(mi) 518 } 519} 520 521func (x *AllUpdatesRule) String() string { 522 return protoimpl.X.MessageStringOf(x) 523} 524 525func (*AllUpdatesRule) ProtoMessage() {} 526 527func (x *AllUpdatesRule) ProtoReflect() protoreflect.Message { 528 mi := &file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_msgTypes[4] 529 if protoimpl.UnsafeEnabled && x != nil { 530 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 531 if ms.LoadMessageInfo() == nil { 532 ms.StoreMessageInfo(mi) 533 } 534 return ms 535 } 536 return mi.MessageOf(x) 537} 538 539// Deprecated: Use AllUpdatesRule.ProtoReflect.Descriptor instead. 540func (*AllUpdatesRule) Descriptor() ([]byte, []int) { 541 return file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_rawDescGZIP(), []int{4} 542} 543 544func (x *AllUpdatesRule) GetPubsubTopic() string { 545 if x != nil { 546 return x.PubsubTopic 547 } 548 return "" 549} 550 551func (x *AllUpdatesRule) GetSchemaVersion() string { 552 if x != nil { 553 return x.SchemaVersion 554 } 555 return "" 556} 557 558func (x *AllUpdatesRule) GetMonitoringNotificationChannels() []string { 559 if x != nil { 560 return x.MonitoringNotificationChannels 561 } 562 return nil 563} 564 565func (x *AllUpdatesRule) GetDisableDefaultIamRecipients() bool { 566 if x != nil { 567 return x.DisableDefaultIamRecipients 568 } 569 return false 570} 571 572// A filter for a budget, limiting the scope of the cost to calculate. 573type Filter struct { 574 state protoimpl.MessageState 575 sizeCache protoimpl.SizeCache 576 unknownFields protoimpl.UnknownFields 577 578 // Optional. A set of projects of the form `projects/{project}`, 579 // specifying that usage from only this set of projects should be 580 // included in the budget. If omitted, the report will include all usage for 581 // the billing account, regardless of which project the usage occurred on. 582 // Only zero or one project can be specified currently. 583 Projects []string `protobuf:"bytes,1,rep,name=projects,proto3" json:"projects,omitempty"` 584 // Optional. If 585 // [Filter.credit_types_treatment][google.cloud.billing.budgets.v1alpha1.Filter.credit_types_treatment] 586 // is INCLUDE_SPECIFIED_CREDITS, this is a list of credit types to be 587 // subtracted from gross cost to determine the spend for threshold 588 // calculations. 589 // 590 // If 591 // [Filter.credit_types_treatment][google.cloud.billing.budgets.v1alpha1.Filter.credit_types_treatment] 592 // is **not** INCLUDE_SPECIFIED_CREDITS, this field must be empty. See [a list 593 // of acceptable credit type 594 // values](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#credits-type). 595 CreditTypes []string `protobuf:"bytes,7,rep,name=credit_types,json=creditTypes,proto3" json:"credit_types,omitempty"` 596 // Optional. If not set, default behavior is `INCLUDE_ALL_CREDITS`. 597 CreditTypesTreatment Filter_CreditTypesTreatment `protobuf:"varint,4,opt,name=credit_types_treatment,json=creditTypesTreatment,proto3,enum=google.cloud.billing.budgets.v1alpha1.Filter_CreditTypesTreatment" json:"credit_types_treatment,omitempty"` 598 // Optional. A set of services of the form `services/{service_id}`, 599 // specifying that usage from only this set of services should be 600 // included in the budget. If omitted, the report will include usage for 601 // all the services. 602 // The service names are available through the Catalog API: 603 // https://cloud.google.com/billing/v1/how-tos/catalog-api. 604 Services []string `protobuf:"bytes,3,rep,name=services,proto3" json:"services,omitempty"` 605 // Optional. A set of subaccounts of the form `billingAccounts/{account_id}`, 606 // specifying that usage from only this set of subaccounts should be included 607 // in the budget. If a subaccount is set to the name of the parent account, 608 // usage from the parent account will be included. If omitted, the 609 // report will include usage from the parent account and all 610 // subaccounts, if they exist. 611 Subaccounts []string `protobuf:"bytes,5,rep,name=subaccounts,proto3" json:"subaccounts,omitempty"` 612 // Optional. A single label and value pair specifying that usage from only 613 // this set of labeled resources should be included in the budget. Currently, 614 // multiple entries or multiple values per entry are not allowed. If omitted, 615 // the report will include all labeled and unlabeled usage. 616 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"` 617} 618 619func (x *Filter) Reset() { 620 *x = Filter{} 621 if protoimpl.UnsafeEnabled { 622 mi := &file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_msgTypes[5] 623 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 624 ms.StoreMessageInfo(mi) 625 } 626} 627 628func (x *Filter) String() string { 629 return protoimpl.X.MessageStringOf(x) 630} 631 632func (*Filter) ProtoMessage() {} 633 634func (x *Filter) ProtoReflect() protoreflect.Message { 635 mi := &file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_msgTypes[5] 636 if protoimpl.UnsafeEnabled && x != nil { 637 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 638 if ms.LoadMessageInfo() == nil { 639 ms.StoreMessageInfo(mi) 640 } 641 return ms 642 } 643 return mi.MessageOf(x) 644} 645 646// Deprecated: Use Filter.ProtoReflect.Descriptor instead. 647func (*Filter) Descriptor() ([]byte, []int) { 648 return file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_rawDescGZIP(), []int{5} 649} 650 651func (x *Filter) GetProjects() []string { 652 if x != nil { 653 return x.Projects 654 } 655 return nil 656} 657 658func (x *Filter) GetCreditTypes() []string { 659 if x != nil { 660 return x.CreditTypes 661 } 662 return nil 663} 664 665func (x *Filter) GetCreditTypesTreatment() Filter_CreditTypesTreatment { 666 if x != nil { 667 return x.CreditTypesTreatment 668 } 669 return Filter_CREDIT_TYPES_TREATMENT_UNSPECIFIED 670} 671 672func (x *Filter) GetServices() []string { 673 if x != nil { 674 return x.Services 675 } 676 return nil 677} 678 679func (x *Filter) GetSubaccounts() []string { 680 if x != nil { 681 return x.Subaccounts 682 } 683 return nil 684} 685 686func (x *Filter) GetLabels() map[string]*structpb.ListValue { 687 if x != nil { 688 return x.Labels 689 } 690 return nil 691} 692 693var File_google_cloud_billing_budgets_v1alpha1_budget_model_proto protoreflect.FileDescriptor 694 695var file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_rawDesc = []byte{ 696 0x0a, 0x38, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x62, 697 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x73, 0x2f, 0x76, 698 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x5f, 0x6d, 699 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x25, 0x67, 0x6f, 0x6f, 0x67, 700 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 701 0x2e, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 702 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 703 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 704 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 705 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 706 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 707 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 708 0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x2e, 0x70, 709 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb1, 0x04, 0x0a, 0x06, 0x42, 0x75, 0x64, 0x67, 0x65, 0x74, 0x12, 710 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 711 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 712 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 713 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x57, 0x0a, 0x0d, 0x62, 714 0x75, 0x64, 0x67, 0x65, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 715 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 716 0x64, 0x2e, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2e, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 717 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 718 0x72, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x46, 0x69, 719 0x6c, 0x74, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 720 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 721 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2e, 0x62, 0x75, 0x64, 0x67, 722 0x65, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x75, 0x64, 723 0x67, 0x65, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 724 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x62, 0x0a, 0x0f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 725 0x6f, 0x6c, 0x64, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 726 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 727 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2e, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x73, 0x2e, 0x76, 728 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 729 0x64, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x74, 0x68, 0x72, 0x65, 730 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x64, 0x0a, 0x10, 0x61, 0x6c, 731 0x6c, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x06, 732 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 733 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2e, 0x62, 0x75, 0x64, 0x67, 734 0x65, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6c, 0x6c, 735 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 736 0x52, 0x0e, 0x61, 0x6c, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x75, 0x6c, 0x65, 737 0x12, 0x17, 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 738 0xe0, 0x41, 0x01, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x3a, 0x5d, 0xea, 0x41, 0x5a, 0x0a, 0x24, 739 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x73, 0x2e, 0x67, 740 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x75, 741 0x64, 0x67, 0x65, 0x74, 0x12, 0x32, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 742 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x61, 743 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x7d, 0x2f, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x73, 0x2f, 744 0x7b, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x7d, 0x22, 0xc9, 0x01, 0x0a, 0x0c, 0x42, 0x75, 0x64, 745 0x67, 0x65, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x10, 0x73, 0x70, 0x65, 746 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 747 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 748 0x65, 0x2e, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x70, 0x65, 0x63, 0x69, 749 0x66, 0x69, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x67, 0x0a, 0x12, 0x6c, 0x61, 750 0x73, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 751 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 752 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2e, 0x62, 0x75, 753 0x64, 0x67, 0x65, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 754 0x61, 0x73, 0x74, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 755 0x00, 0x52, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x41, 0x6d, 0x6f, 756 0x75, 0x6e, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x5f, 0x61, 0x6d, 757 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x12, 0x0a, 0x10, 0x4c, 0x61, 0x73, 0x74, 0x50, 0x65, 0x72, 0x69, 758 0x6f, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xec, 0x01, 0x0a, 0x0d, 0x54, 0x68, 0x72, 759 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x11, 0x74, 0x68, 760 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 761 0x01, 0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x74, 0x68, 0x72, 0x65, 762 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x60, 0x0a, 0x0b, 763 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x61, 0x73, 0x69, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 764 0x0e, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 765 0x2e, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2e, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x73, 766 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 767 0x6f, 0x6c, 0x64, 0x52, 0x75, 0x6c, 0x65, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x73, 0x42, 0x03, 0xe0, 768 0x41, 0x01, 0x52, 0x0a, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x42, 0x61, 0x73, 0x69, 0x73, 0x22, 0x47, 769 0x0a, 0x05, 0x42, 0x61, 0x73, 0x69, 0x73, 0x12, 0x15, 0x0a, 0x11, 0x42, 0x41, 0x53, 0x49, 0x53, 770 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 771 0x0a, 0x0d, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x50, 0x45, 0x4e, 0x44, 0x10, 772 0x01, 0x12, 0x14, 0x0a, 0x10, 0x46, 0x4f, 0x52, 0x45, 0x43, 0x41, 0x53, 0x54, 0x45, 0x44, 0x5f, 773 0x53, 0x50, 0x45, 0x4e, 0x44, 0x10, 0x02, 0x22, 0xfd, 0x01, 0x0a, 0x0e, 0x41, 0x6c, 0x6c, 0x55, 774 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x75, 775 0x62, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 776 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x54, 0x6f, 0x70, 777 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x76, 0x65, 0x72, 778 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 779 0x0d, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4d, 780 0x0a, 0x20, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6e, 0x6f, 0x74, 781 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 782 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x1e, 0x6d, 783 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 784 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x48, 0x0a, 785 0x1e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 786 0x5f, 0x69, 0x61, 0x6d, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 787 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x1b, 0x64, 0x69, 0x73, 0x61, 788 0x62, 0x6c, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x49, 0x61, 0x6d, 0x52, 0x65, 0x63, 789 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xd9, 0x04, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 790 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x01, 791 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 792 0x63, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x74, 0x79, 793 0x70, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 794 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x7d, 0x0a, 0x16, 0x63, 795 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x5f, 0x74, 0x72, 0x65, 0x61, 796 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x42, 0x2e, 0x67, 0x6f, 797 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x6c, 0x6c, 0x69, 798 0x6e, 0x67, 0x2e, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 799 0x68, 0x61, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x69, 800 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x54, 0x72, 0x65, 0x61, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x42, 801 0x03, 0xe0, 0x41, 0x01, 0x52, 0x14, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 802 0x73, 0x54, 0x72, 0x65, 0x61, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x08, 0x73, 0x65, 803 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 804 0x01, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0b, 0x73, 805 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 806 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 807 0x74, 0x73, 0x12, 0x56, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 808 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 809 0x64, 0x2e, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2e, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 810 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 811 0x72, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 812 0x41, 0x01, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x55, 0x0a, 0x0b, 0x4c, 0x61, 813 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 814 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 815 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 816 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4c, 0x69, 0x73, 817 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 818 0x01, 0x22, 0x8f, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 819 0x73, 0x54, 0x72, 0x65, 0x61, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x22, 0x43, 0x52, 820 0x45, 0x44, 0x49, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x53, 0x5f, 0x54, 0x52, 0x45, 0x41, 0x54, 821 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 822 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x4e, 0x43, 0x4c, 0x55, 0x44, 0x45, 0x5f, 0x41, 0x4c, 823 0x4c, 0x5f, 0x43, 0x52, 0x45, 0x44, 0x49, 0x54, 0x53, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x45, 824 0x58, 0x43, 0x4c, 0x55, 0x44, 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x5f, 0x43, 0x52, 0x45, 0x44, 0x49, 825 0x54, 0x53, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x4e, 0x43, 0x4c, 0x55, 0x44, 0x45, 0x5f, 826 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x43, 0x52, 0x45, 0x44, 0x49, 0x54, 827 0x53, 0x10, 0x03, 0x42, 0x7b, 0x0a, 0x29, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 828 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2e, 829 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 830 0x50, 0x01, 0x5a, 0x4c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 831 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 832 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 833 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x73, 0x2f, 834 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, 0x73, 835 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 836} 837 838var ( 839 file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_rawDescOnce sync.Once 840 file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_rawDescData = file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_rawDesc 841) 842 843func file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_rawDescGZIP() []byte { 844 file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_rawDescOnce.Do(func() { 845 file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_rawDescData) 846 }) 847 return file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_rawDescData 848} 849 850var file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_enumTypes = make([]protoimpl.EnumInfo, 2) 851var file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_msgTypes = make([]protoimpl.MessageInfo, 7) 852var file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_goTypes = []interface{}{ 853 (ThresholdRule_Basis)(0), // 0: google.cloud.billing.budgets.v1alpha1.ThresholdRule.Basis 854 (Filter_CreditTypesTreatment)(0), // 1: google.cloud.billing.budgets.v1alpha1.Filter.CreditTypesTreatment 855 (*Budget)(nil), // 2: google.cloud.billing.budgets.v1alpha1.Budget 856 (*BudgetAmount)(nil), // 3: google.cloud.billing.budgets.v1alpha1.BudgetAmount 857 (*LastPeriodAmount)(nil), // 4: google.cloud.billing.budgets.v1alpha1.LastPeriodAmount 858 (*ThresholdRule)(nil), // 5: google.cloud.billing.budgets.v1alpha1.ThresholdRule 859 (*AllUpdatesRule)(nil), // 6: google.cloud.billing.budgets.v1alpha1.AllUpdatesRule 860 (*Filter)(nil), // 7: google.cloud.billing.budgets.v1alpha1.Filter 861 nil, // 8: google.cloud.billing.budgets.v1alpha1.Filter.LabelsEntry 862 (*money.Money)(nil), // 9: google.type.Money 863 (*structpb.ListValue)(nil), // 10: google.protobuf.ListValue 864} 865var file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_depIdxs = []int32{ 866 7, // 0: google.cloud.billing.budgets.v1alpha1.Budget.budget_filter:type_name -> google.cloud.billing.budgets.v1alpha1.Filter 867 3, // 1: google.cloud.billing.budgets.v1alpha1.Budget.amount:type_name -> google.cloud.billing.budgets.v1alpha1.BudgetAmount 868 5, // 2: google.cloud.billing.budgets.v1alpha1.Budget.threshold_rules:type_name -> google.cloud.billing.budgets.v1alpha1.ThresholdRule 869 6, // 3: google.cloud.billing.budgets.v1alpha1.Budget.all_updates_rule:type_name -> google.cloud.billing.budgets.v1alpha1.AllUpdatesRule 870 9, // 4: google.cloud.billing.budgets.v1alpha1.BudgetAmount.specified_amount:type_name -> google.type.Money 871 4, // 5: google.cloud.billing.budgets.v1alpha1.BudgetAmount.last_period_amount:type_name -> google.cloud.billing.budgets.v1alpha1.LastPeriodAmount 872 0, // 6: google.cloud.billing.budgets.v1alpha1.ThresholdRule.spend_basis:type_name -> google.cloud.billing.budgets.v1alpha1.ThresholdRule.Basis 873 1, // 7: google.cloud.billing.budgets.v1alpha1.Filter.credit_types_treatment:type_name -> google.cloud.billing.budgets.v1alpha1.Filter.CreditTypesTreatment 874 8, // 8: google.cloud.billing.budgets.v1alpha1.Filter.labels:type_name -> google.cloud.billing.budgets.v1alpha1.Filter.LabelsEntry 875 10, // 9: google.cloud.billing.budgets.v1alpha1.Filter.LabelsEntry.value:type_name -> google.protobuf.ListValue 876 10, // [10:10] is the sub-list for method output_type 877 10, // [10:10] is the sub-list for method input_type 878 10, // [10:10] is the sub-list for extension type_name 879 10, // [10:10] is the sub-list for extension extendee 880 0, // [0:10] is the sub-list for field type_name 881} 882 883func init() { file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_init() } 884func file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_init() { 885 if File_google_cloud_billing_budgets_v1alpha1_budget_model_proto != nil { 886 return 887 } 888 if !protoimpl.UnsafeEnabled { 889 file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 890 switch v := v.(*Budget); i { 891 case 0: 892 return &v.state 893 case 1: 894 return &v.sizeCache 895 case 2: 896 return &v.unknownFields 897 default: 898 return nil 899 } 900 } 901 file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 902 switch v := v.(*BudgetAmount); i { 903 case 0: 904 return &v.state 905 case 1: 906 return &v.sizeCache 907 case 2: 908 return &v.unknownFields 909 default: 910 return nil 911 } 912 } 913 file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 914 switch v := v.(*LastPeriodAmount); i { 915 case 0: 916 return &v.state 917 case 1: 918 return &v.sizeCache 919 case 2: 920 return &v.unknownFields 921 default: 922 return nil 923 } 924 } 925 file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 926 switch v := v.(*ThresholdRule); i { 927 case 0: 928 return &v.state 929 case 1: 930 return &v.sizeCache 931 case 2: 932 return &v.unknownFields 933 default: 934 return nil 935 } 936 } 937 file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 938 switch v := v.(*AllUpdatesRule); i { 939 case 0: 940 return &v.state 941 case 1: 942 return &v.sizeCache 943 case 2: 944 return &v.unknownFields 945 default: 946 return nil 947 } 948 } 949 file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 950 switch v := v.(*Filter); i { 951 case 0: 952 return &v.state 953 case 1: 954 return &v.sizeCache 955 case 2: 956 return &v.unknownFields 957 default: 958 return nil 959 } 960 } 961 } 962 file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_msgTypes[1].OneofWrappers = []interface{}{ 963 (*BudgetAmount_SpecifiedAmount)(nil), 964 (*BudgetAmount_LastPeriodAmount)(nil), 965 } 966 type x struct{} 967 out := protoimpl.TypeBuilder{ 968 File: protoimpl.DescBuilder{ 969 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 970 RawDescriptor: file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_rawDesc, 971 NumEnums: 2, 972 NumMessages: 7, 973 NumExtensions: 0, 974 NumServices: 0, 975 }, 976 GoTypes: file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_goTypes, 977 DependencyIndexes: file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_depIdxs, 978 EnumInfos: file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_enumTypes, 979 MessageInfos: file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_msgTypes, 980 }.Build() 981 File_google_cloud_billing_budgets_v1alpha1_budget_model_proto = out.File 982 file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_rawDesc = nil 983 file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_goTypes = nil 984 file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_depIdxs = nil 985} 986