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