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