...

Source file src/google.golang.org/genproto/googleapis/cloud/billing/budgets/v1alpha1/budget_model.pb.go

Documentation: google.golang.org/genproto/googleapis/cloud/billing/budgets/v1alpha1

     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  
    21  package budgets
    22  
    23  import (
    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  
    35  const (
    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.
    44  const _ = proto.ProtoPackageIsVersion4
    45  
    46  // The type of basis used to determine if spend has passed the threshold.
    47  type ThresholdRule_Basis int32
    48  
    49  const (
    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.
    60  var (
    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  
    73  func (x ThresholdRule_Basis) Enum() *ThresholdRule_Basis {
    74  	p := new(ThresholdRule_Basis)
    75  	*p = x
    76  	return p
    77  }
    78  
    79  func (x ThresholdRule_Basis) String() string {
    80  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
    81  }
    82  
    83  func (ThresholdRule_Basis) Descriptor() protoreflect.EnumDescriptor {
    84  	return file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_enumTypes[0].Descriptor()
    85  }
    86  
    87  func (ThresholdRule_Basis) Type() protoreflect.EnumType {
    88  	return &file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_enumTypes[0]
    89  }
    90  
    91  func (x ThresholdRule_Basis) Number() protoreflect.EnumNumber {
    92  	return protoreflect.EnumNumber(x)
    93  }
    94  
    95  // Deprecated: Use ThresholdRule_Basis.Descriptor instead.
    96  func (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.
   102  type Filter_CreditTypesTreatment int32
   103  
   104  const (
   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.
   118  var (
   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  
   133  func (x Filter_CreditTypesTreatment) Enum() *Filter_CreditTypesTreatment {
   134  	p := new(Filter_CreditTypesTreatment)
   135  	*p = x
   136  	return p
   137  }
   138  
   139  func (x Filter_CreditTypesTreatment) String() string {
   140  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   141  }
   142  
   143  func (Filter_CreditTypesTreatment) Descriptor() protoreflect.EnumDescriptor {
   144  	return file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_enumTypes[1].Descriptor()
   145  }
   146  
   147  func (Filter_CreditTypesTreatment) Type() protoreflect.EnumType {
   148  	return &file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_enumTypes[1]
   149  }
   150  
   151  func (x Filter_CreditTypesTreatment) Number() protoreflect.EnumNumber {
   152  	return protoreflect.EnumNumber(x)
   153  }
   154  
   155  // Deprecated: Use Filter_CreditTypesTreatment.Descriptor instead.
   156  func (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).
   165  type 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  
   194  func (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  
   203  func (x *Budget) String() string {
   204  	return protoimpl.X.MessageStringOf(x)
   205  }
   206  
   207  func (*Budget) ProtoMessage() {}
   208  
   209  func (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.
   222  func (*Budget) Descriptor() ([]byte, []int) {
   223  	return file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_rawDescGZIP(), []int{0}
   224  }
   225  
   226  func (x *Budget) GetName() string {
   227  	if x != nil {
   228  		return x.Name
   229  	}
   230  	return ""
   231  }
   232  
   233  func (x *Budget) GetDisplayName() string {
   234  	if x != nil {
   235  		return x.DisplayName
   236  	}
   237  	return ""
   238  }
   239  
   240  func (x *Budget) GetBudgetFilter() *Filter {
   241  	if x != nil {
   242  		return x.BudgetFilter
   243  	}
   244  	return nil
   245  }
   246  
   247  func (x *Budget) GetAmount() *BudgetAmount {
   248  	if x != nil {
   249  		return x.Amount
   250  	}
   251  	return nil
   252  }
   253  
   254  func (x *Budget) GetThresholdRules() []*ThresholdRule {
   255  	if x != nil {
   256  		return x.ThresholdRules
   257  	}
   258  	return nil
   259  }
   260  
   261  func (x *Budget) GetAllUpdatesRule() *AllUpdatesRule {
   262  	if x != nil {
   263  		return x.AllUpdatesRule
   264  	}
   265  	return nil
   266  }
   267  
   268  func (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.
   276  type 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  
   289  func (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  
   298  func (x *BudgetAmount) String() string {
   299  	return protoimpl.X.MessageStringOf(x)
   300  }
   301  
   302  func (*BudgetAmount) ProtoMessage() {}
   303  
   304  func (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.
   317  func (*BudgetAmount) Descriptor() ([]byte, []int) {
   318  	return file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_rawDescGZIP(), []int{1}
   319  }
   320  
   321  func (m *BudgetAmount) GetBudgetAmount() isBudgetAmount_BudgetAmount {
   322  	if m != nil {
   323  		return m.BudgetAmount
   324  	}
   325  	return nil
   326  }
   327  
   328  func (x *BudgetAmount) GetSpecifiedAmount() *money.Money {
   329  	if x, ok := x.GetBudgetAmount().(*BudgetAmount_SpecifiedAmount); ok {
   330  		return x.SpecifiedAmount
   331  	}
   332  	return nil
   333  }
   334  
   335  func (x *BudgetAmount) GetLastPeriodAmount() *LastPeriodAmount {
   336  	if x, ok := x.GetBudgetAmount().(*BudgetAmount_LastPeriodAmount); ok {
   337  		return x.LastPeriodAmount
   338  	}
   339  	return nil
   340  }
   341  
   342  type isBudgetAmount_BudgetAmount interface {
   343  	isBudgetAmount_BudgetAmount()
   344  }
   345  
   346  type 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  
   354  type 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  
   359  func (*BudgetAmount_SpecifiedAmount) isBudgetAmount_BudgetAmount() {}
   360  
   361  func (*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).
   368  type LastPeriodAmount struct {
   369  	state         protoimpl.MessageState
   370  	sizeCache     protoimpl.SizeCache
   371  	unknownFields protoimpl.UnknownFields
   372  }
   373  
   374  func (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  
   383  func (x *LastPeriodAmount) String() string {
   384  	return protoimpl.X.MessageStringOf(x)
   385  }
   386  
   387  func (*LastPeriodAmount) ProtoMessage() {}
   388  
   389  func (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.
   402  func (*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`.
   413  type 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  
   427  func (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  
   436  func (x *ThresholdRule) String() string {
   437  	return protoimpl.X.MessageStringOf(x)
   438  }
   439  
   440  func (*ThresholdRule) ProtoMessage() {}
   441  
   442  func (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.
   455  func (*ThresholdRule) Descriptor() ([]byte, []int) {
   456  	return file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_rawDescGZIP(), []int{3}
   457  }
   458  
   459  func (x *ThresholdRule) GetThresholdPercent() float64 {
   460  	if x != nil {
   461  		return x.ThresholdPercent
   462  	}
   463  	return 0
   464  }
   465  
   466  func (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.
   475  type 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  
   512  func (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  
   521  func (x *AllUpdatesRule) String() string {
   522  	return protoimpl.X.MessageStringOf(x)
   523  }
   524  
   525  func (*AllUpdatesRule) ProtoMessage() {}
   526  
   527  func (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.
   540  func (*AllUpdatesRule) Descriptor() ([]byte, []int) {
   541  	return file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_rawDescGZIP(), []int{4}
   542  }
   543  
   544  func (x *AllUpdatesRule) GetPubsubTopic() string {
   545  	if x != nil {
   546  		return x.PubsubTopic
   547  	}
   548  	return ""
   549  }
   550  
   551  func (x *AllUpdatesRule) GetSchemaVersion() string {
   552  	if x != nil {
   553  		return x.SchemaVersion
   554  	}
   555  	return ""
   556  }
   557  
   558  func (x *AllUpdatesRule) GetMonitoringNotificationChannels() []string {
   559  	if x != nil {
   560  		return x.MonitoringNotificationChannels
   561  	}
   562  	return nil
   563  }
   564  
   565  func (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.
   573  type 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  
   619  func (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  
   628  func (x *Filter) String() string {
   629  	return protoimpl.X.MessageStringOf(x)
   630  }
   631  
   632  func (*Filter) ProtoMessage() {}
   633  
   634  func (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.
   647  func (*Filter) Descriptor() ([]byte, []int) {
   648  	return file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_rawDescGZIP(), []int{5}
   649  }
   650  
   651  func (x *Filter) GetProjects() []string {
   652  	if x != nil {
   653  		return x.Projects
   654  	}
   655  	return nil
   656  }
   657  
   658  func (x *Filter) GetCreditTypes() []string {
   659  	if x != nil {
   660  		return x.CreditTypes
   661  	}
   662  	return nil
   663  }
   664  
   665  func (x *Filter) GetCreditTypesTreatment() Filter_CreditTypesTreatment {
   666  	if x != nil {
   667  		return x.CreditTypesTreatment
   668  	}
   669  	return Filter_CREDIT_TYPES_TREATMENT_UNSPECIFIED
   670  }
   671  
   672  func (x *Filter) GetServices() []string {
   673  	if x != nil {
   674  		return x.Services
   675  	}
   676  	return nil
   677  }
   678  
   679  func (x *Filter) GetSubaccounts() []string {
   680  	if x != nil {
   681  		return x.Subaccounts
   682  	}
   683  	return nil
   684  }
   685  
   686  func (x *Filter) GetLabels() map[string]*structpb.ListValue {
   687  	if x != nil {
   688  		return x.Labels
   689  	}
   690  	return nil
   691  }
   692  
   693  var File_google_cloud_billing_budgets_v1alpha1_budget_model_proto protoreflect.FileDescriptor
   694  
   695  var 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  
   838  var (
   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  
   843  func 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  
   850  var file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
   851  var file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
   852  var 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  }
   865  var 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  
   883  func init() { file_google_cloud_billing_budgets_v1alpha1_budget_model_proto_init() }
   884  func 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  

View as plain text