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