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