budgetspb

package
v1.21.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 13, 2025 License: Apache-2.0 Imports: 14 Imported by: 4

Documentation

Index

Constants

View Source
const (
	BudgetService_CreateBudget_FullMethodName = "/google.cloud.billing.budgets.v1.BudgetService/CreateBudget"
	BudgetService_UpdateBudget_FullMethodName = "/google.cloud.billing.budgets.v1.BudgetService/UpdateBudget"
	BudgetService_GetBudget_FullMethodName    = "/google.cloud.billing.budgets.v1.BudgetService/GetBudget"
	BudgetService_ListBudgets_FullMethodName  = "/google.cloud.billing.budgets.v1.BudgetService/ListBudgets"
	BudgetService_DeleteBudget_FullMethodName = "/google.cloud.billing.budgets.v1.BudgetService/DeleteBudget"
)

Variables

View Source
var (
	CalendarPeriod_name = map[int32]string{
		0: "CALENDAR_PERIOD_UNSPECIFIED",
		1: "MONTH",
		2: "QUARTER",
		3: "YEAR",
	}
	CalendarPeriod_value = map[string]int32{
		"CALENDAR_PERIOD_UNSPECIFIED": 0,
		"MONTH":                       1,
		"QUARTER":                     2,
		"YEAR":                        3,
	}
)

Enum value maps for CalendarPeriod.

View Source
var (
	ThresholdRule_Basis_name = map[int32]string{
		0: "BASIS_UNSPECIFIED",
		1: "CURRENT_SPEND",
		2: "FORECASTED_SPEND",
	}
	ThresholdRule_Basis_value = map[string]int32{
		"BASIS_UNSPECIFIED": 0,
		"CURRENT_SPEND":     1,
		"FORECASTED_SPEND":  2,
	}
)

Enum value maps for ThresholdRule_Basis.

View Source
var (
	Filter_CreditTypesTreatment_name = map[int32]string{
		0: "CREDIT_TYPES_TREATMENT_UNSPECIFIED",
		1: "INCLUDE_ALL_CREDITS",
		2: "EXCLUDE_ALL_CREDITS",
		3: "INCLUDE_SPECIFIED_CREDITS",
	}
	Filter_CreditTypesTreatment_value = map[string]int32{
		"CREDIT_TYPES_TREATMENT_UNSPECIFIED": 0,
		"INCLUDE_ALL_CREDITS":                1,
		"EXCLUDE_ALL_CREDITS":                2,
		"INCLUDE_SPECIFIED_CREDITS":          3,
	}
)

Enum value maps for Filter_CreditTypesTreatment.

View Source
var BudgetService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "google.cloud.billing.budgets.v1.BudgetService",
	HandlerType: (*BudgetServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "CreateBudget",
			Handler:    _BudgetService_CreateBudget_Handler,
		},
		{
			MethodName: "UpdateBudget",
			Handler:    _BudgetService_UpdateBudget_Handler,
		},
		{
			MethodName: "GetBudget",
			Handler:    _BudgetService_GetBudget_Handler,
		},
		{
			MethodName: "ListBudgets",
			Handler:    _BudgetService_ListBudgets_Handler,
		},
		{
			MethodName: "DeleteBudget",
			Handler:    _BudgetService_DeleteBudget_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "google/cloud/billing/budgets/v1/budget_service.proto",
}

BudgetService_ServiceDesc is the grpc.ServiceDesc for BudgetService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

View Source
var File_google_cloud_billing_budgets_v1_budget_model_proto protoreflect.FileDescriptor
View Source
var File_google_cloud_billing_budgets_v1_budget_service_proto protoreflect.FileDescriptor

Functions

func RegisterBudgetServiceServer

func RegisterBudgetServiceServer(s grpc.ServiceRegistrar, srv BudgetServiceServer)

Types

type Budget

type Budget struct {

	// Output only. Resource name of the budget.
	// The resource name implies the scope of a budget. Values are of the form
	// `billingAccounts/{billingAccountId}/budgets/{budgetId}`.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// User data for display name in UI. The name must be less than or equal to 60
	// characters.
	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// Optional. Filters that define which resources are used to compute the
	// actual spend against the budget amount, such as projects, services, and the
	// budget's time period, as well as other filters.
	BudgetFilter *Filter `protobuf:"bytes,3,opt,name=budget_filter,json=budgetFilter,proto3" json:"budget_filter,omitempty"`
	// Required. Budgeted amount.
	Amount *BudgetAmount `protobuf:"bytes,4,opt,name=amount,proto3" json:"amount,omitempty"`
	// Optional. Rules that trigger alerts (notifications of thresholds
	// being crossed) when spend exceeds the specified percentages of the budget.
	//
	// Optional for `pubsubTopic` notifications.
	//
	// Required if using email notifications.
	ThresholdRules []*ThresholdRule `protobuf:"bytes,5,rep,name=threshold_rules,json=thresholdRules,proto3" json:"threshold_rules,omitempty"`
	// Optional. Rules to apply to notifications sent based on budget spend and
	// thresholds.
	NotificationsRule *NotificationsRule `protobuf:"bytes,6,opt,name=notifications_rule,json=notificationsRule,proto3" json:"notifications_rule,omitempty"`
	// Optional. Etag to validate that the object is unchanged for a
	// read-modify-write operation.
	// An empty etag causes an update to overwrite other changes.
	Etag string `protobuf:"bytes,7,opt,name=etag,proto3" json:"etag,omitempty"`
	// contains filtered or unexported fields
}

A budget is a plan that describes what you expect to spend on Cloud projects, plus the rules to execute as spend is tracked against that plan, (for example, send an alert when 90% of the target spend is met). The budget time period is configurable, with options such as month (default), quarter, year, or custom time period.

func (*Budget) Descriptor deprecated

func (*Budget) Descriptor() ([]byte, []int)

Deprecated: Use Budget.ProtoReflect.Descriptor instead.

func (*Budget) GetAmount

func (x *Budget) GetAmount() *BudgetAmount

func (*Budget) GetBudgetFilter

func (x *Budget) GetBudgetFilter() *Filter

func (*Budget) GetDisplayName

func (x *Budget) GetDisplayName() string

func (*Budget) GetEtag

func (x *Budget) GetEtag() string

func (*Budget) GetName

func (x *Budget) GetName() string

func (*Budget) GetNotificationsRule

func (x *Budget) GetNotificationsRule() *NotificationsRule

func (*Budget) GetThresholdRules

func (x *Budget) GetThresholdRules() []*ThresholdRule

func (*Budget) ProtoMessage

func (*Budget) ProtoMessage()

func (*Budget) ProtoReflect

func (x *Budget) ProtoReflect() protoreflect.Message

func (*Budget) Reset

func (x *Budget) Reset()

func (*Budget) String

func (x *Budget) String() string

type BudgetAmount

type BudgetAmount struct {

	// Specification for what amount to use as the budget.
	//
	// Types that are assignable to BudgetAmount:
	//
	//	*BudgetAmount_SpecifiedAmount
	//	*BudgetAmount_LastPeriodAmount
	BudgetAmount isBudgetAmount_BudgetAmount `protobuf_oneof:"budget_amount"`
	// contains filtered or unexported fields
}

The budgeted amount for each usage period.

func (*BudgetAmount) Descriptor deprecated

func (*BudgetAmount) Descriptor() ([]byte, []int)

Deprecated: Use BudgetAmount.ProtoReflect.Descriptor instead.

func (*BudgetAmount) GetBudgetAmount

func (m *BudgetAmount) GetBudgetAmount() isBudgetAmount_BudgetAmount

func (*BudgetAmount) GetLastPeriodAmount

func (x *BudgetAmount) GetLastPeriodAmount() *LastPeriodAmount

func (*BudgetAmount) GetSpecifiedAmount

func (x *BudgetAmount) GetSpecifiedAmount() *money.Money

func (*BudgetAmount) ProtoMessage

func (*BudgetAmount) ProtoMessage()

func (*BudgetAmount) ProtoReflect

func (x *BudgetAmount) ProtoReflect() protoreflect.Message

func (*BudgetAmount) Reset

func (x *BudgetAmount) Reset()

func (*BudgetAmount) String

func (x *BudgetAmount) String() string

type BudgetAmount_LastPeriodAmount

type BudgetAmount_LastPeriodAmount struct {
	// Use the last period's actual spend as the budget for the present period.
	// LastPeriodAmount can only be set when the budget's time period is a
	// [Filter.calendar_period][google.cloud.billing.budgets.v1.Filter.calendar_period].
	// It cannot be set in combination with
	// [Filter.custom_period][google.cloud.billing.budgets.v1.Filter.custom_period].
	LastPeriodAmount *LastPeriodAmount `protobuf:"bytes,2,opt,name=last_period_amount,json=lastPeriodAmount,proto3,oneof"`
}

type BudgetAmount_SpecifiedAmount

type BudgetAmount_SpecifiedAmount struct {
	// A specified amount to use as the budget.
	// `currency_code` is optional. If specified when creating a budget, it must
	// match the currency of the billing account. If specified when updating a
	// budget, it must match the currency_code of the existing budget.
	// The `currency_code` is provided on output.
	SpecifiedAmount *money.Money `protobuf:"bytes,1,opt,name=specified_amount,json=specifiedAmount,proto3,oneof"`
}

type BudgetServiceClient

type BudgetServiceClient interface {
	// Creates a new budget. See
	// [Quotas and limits](https://cloud.google.com/billing/quotas)
	// for more information on the limits of the number of budgets you can create.
	CreateBudget(ctx context.Context, in *CreateBudgetRequest, opts ...grpc.CallOption) (*Budget, error)
	// Updates a budget and returns the updated budget.
	//
	// WARNING: There are some fields exposed on the Google Cloud Console that
	// aren't available on this API. Budget fields that are not exposed in
	// this API will not be changed by this method.
	UpdateBudget(ctx context.Context, in *UpdateBudgetRequest, opts ...grpc.CallOption) (*Budget, error)
	// Returns a budget.
	//
	// WARNING: There are some fields exposed on the Google Cloud Console that
	// aren't available on this API. When reading from the API, you will not
	// see these fields in the return value, though they may have been set
	// in the Cloud Console.
	GetBudget(ctx context.Context, in *GetBudgetRequest, opts ...grpc.CallOption) (*Budget, error)
	// Returns a list of budgets for a billing account.
	//
	// WARNING: There are some fields exposed on the Google Cloud Console that
	// aren't available on this API. When reading from the API, you will not
	// see these fields in the return value, though they may have been set
	// in the Cloud Console.
	ListBudgets(ctx context.Context, in *ListBudgetsRequest, opts ...grpc.CallOption) (*ListBudgetsResponse, error)
	// Deletes a budget. Returns successfully if already deleted.
	DeleteBudget(ctx context.Context, in *DeleteBudgetRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
}

BudgetServiceClient is the client API for BudgetService service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

type BudgetServiceServer

type BudgetServiceServer interface {
	// Creates a new budget. See
	// [Quotas and limits](https://cloud.google.com/billing/quotas)
	// for more information on the limits of the number of budgets you can create.
	CreateBudget(context.Context, *CreateBudgetRequest) (*Budget, error)
	// Updates a budget and returns the updated budget.
	//
	// WARNING: There are some fields exposed on the Google Cloud Console that
	// aren't available on this API. Budget fields that are not exposed in
	// this API will not be changed by this method.
	UpdateBudget(context.Context, *UpdateBudgetRequest) (*Budget, error)
	// Returns a budget.
	//
	// WARNING: There are some fields exposed on the Google Cloud Console that
	// aren't available on this API. When reading from the API, you will not
	// see these fields in the return value, though they may have been set
	// in the Cloud Console.
	GetBudget(context.Context, *GetBudgetRequest) (*Budget, error)
	// Returns a list of budgets for a billing account.
	//
	// WARNING: There are some fields exposed on the Google Cloud Console that
	// aren't available on this API. When reading from the API, you will not
	// see these fields in the return value, though they may have been set
	// in the Cloud Console.
	ListBudgets(context.Context, *ListBudgetsRequest) (*ListBudgetsResponse, error)
	// Deletes a budget. Returns successfully if already deleted.
	DeleteBudget(context.Context, *DeleteBudgetRequest) (*emptypb.Empty, error)
}

BudgetServiceServer is the server API for BudgetService service. All implementations should embed UnimplementedBudgetServiceServer for forward compatibility

type CalendarPeriod

type CalendarPeriod int32

A `CalendarPeriod` represents the abstract concept of a time period that has a canonical start. Grammatically, "the start of the current `CalendarPeriod`". All calendar times begin at 12 AM US and Canadian Pacific Time (UTC-8).

const (
	// Calendar period is unset. This is the default if the budget is for a
	// custom time period (CustomPeriod).
	CalendarPeriod_CALENDAR_PERIOD_UNSPECIFIED CalendarPeriod = 0
	// A month. Month starts on the first day of each month, such as January 1,
	// February 1, March 1, and so on.
	CalendarPeriod_MONTH CalendarPeriod = 1
	// A quarter. Quarters start on dates January 1, April 1, July 1, and October
	// 1 of each year.
	CalendarPeriod_QUARTER CalendarPeriod = 2
	// A year. Year starts on January 1.
	CalendarPeriod_YEAR CalendarPeriod = 3
)

func (CalendarPeriod) Descriptor

func (CalendarPeriod) Enum

func (x CalendarPeriod) Enum() *CalendarPeriod

func (CalendarPeriod) EnumDescriptor deprecated

func (CalendarPeriod) EnumDescriptor() ([]byte, []int)

Deprecated: Use CalendarPeriod.Descriptor instead.

func (CalendarPeriod) Number

func (CalendarPeriod) String

func (x CalendarPeriod) String() string

func (CalendarPeriod) Type

type CreateBudgetRequest

type CreateBudgetRequest struct {

	// Required. The name of the billing account to create the budget in. Values
	// are of the form `billingAccounts/{billingAccountId}`.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// Required. Budget to create.
	Budget *Budget `protobuf:"bytes,2,opt,name=budget,proto3" json:"budget,omitempty"`
	// contains filtered or unexported fields
}

Request for CreateBudget

func (*CreateBudgetRequest) Descriptor deprecated

func (*CreateBudgetRequest) Descriptor() ([]byte, []int)

Deprecated: Use CreateBudgetRequest.ProtoReflect.Descriptor instead.

func (*CreateBudgetRequest) GetBudget

func (x *CreateBudgetRequest) GetBudget() *Budget

func (*CreateBudgetRequest) GetParent

func (x *CreateBudgetRequest) GetParent() string

func (*CreateBudgetRequest) ProtoMessage

func (*CreateBudgetRequest) ProtoMessage()

func (*CreateBudgetRequest) ProtoReflect

func (x *CreateBudgetRequest) ProtoReflect() protoreflect.Message

func (*CreateBudgetRequest) Reset

func (x *CreateBudgetRequest) Reset()

func (*CreateBudgetRequest) String

func (x *CreateBudgetRequest) String() string

type CustomPeriod

type CustomPeriod struct {

	// Required. The start date must be after January 1, 2017.
	StartDate *date.Date `protobuf:"bytes,1,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"`
	// Optional. The end date of the time period. Budgets with elapsed end date
	// won't be processed. If unset, specifies to track all usage incurred since
	// the start_date.
	EndDate *date.Date `protobuf:"bytes,2,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"`
	// contains filtered or unexported fields
}

All date times begin at 12 AM US and Canadian Pacific Time (UTC-8).

func (*CustomPeriod) Descriptor deprecated

func (*CustomPeriod) Descriptor() ([]byte, []int)

Deprecated: Use CustomPeriod.ProtoReflect.Descriptor instead.

func (*CustomPeriod) GetEndDate

func (x *CustomPeriod) GetEndDate() *date.Date

func (*CustomPeriod) GetStartDate

func (x *CustomPeriod) GetStartDate() *date.Date

func (*CustomPeriod) ProtoMessage

func (*CustomPeriod) ProtoMessage()

func (*CustomPeriod) ProtoReflect

func (x *CustomPeriod) ProtoReflect() protoreflect.Message

func (*CustomPeriod) Reset

func (x *CustomPeriod) Reset()

func (*CustomPeriod) String

func (x *CustomPeriod) String() string

type DeleteBudgetRequest

type DeleteBudgetRequest struct {

	// Required. Name of the budget to delete. Values are of the form
	// `billingAccounts/{billingAccountId}/budgets/{budgetId}`.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// contains filtered or unexported fields
}

Request for DeleteBudget

func (*DeleteBudgetRequest) Descriptor deprecated

func (*DeleteBudgetRequest) Descriptor() ([]byte, []int)

Deprecated: Use DeleteBudgetRequest.ProtoReflect.Descriptor instead.

func (*DeleteBudgetRequest) GetName

func (x *DeleteBudgetRequest) GetName() string

func (*DeleteBudgetRequest) ProtoMessage

func (*DeleteBudgetRequest) ProtoMessage()

func (*DeleteBudgetRequest) ProtoReflect

func (x *DeleteBudgetRequest) ProtoReflect() protoreflect.Message

func (*DeleteBudgetRequest) Reset

func (x *DeleteBudgetRequest) Reset()

func (*DeleteBudgetRequest) String

func (x *DeleteBudgetRequest) String() string

type Filter

type Filter struct {

	// Optional. A set of projects of the form `projects/{project}`,
	// specifying that usage from only this set of projects should be
	// included in the budget. If omitted, the report includes all usage for
	// the billing account, regardless of which project the usage occurred on.
	Projects []string `protobuf:"bytes,1,rep,name=projects,proto3" json:"projects,omitempty"`
	// Optional. A set of folder and organization names of the form
	// `folders/{folderId}` or `organizations/{organizationId}`, specifying that
	// usage from only this set of folders and organizations should be included in
	// the budget. If omitted, the budget includes all usage that the billing
	// account pays for. If the folder or organization contains projects that are
	// paid for by a different Cloud Billing account, the budget *doesn't* apply
	// to those projects.
	ResourceAncestors []string `protobuf:"bytes,2,rep,name=resource_ancestors,json=resourceAncestors,proto3" json:"resource_ancestors,omitempty"`
	// Optional. If
	// [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.Filter.credit_types_treatment]
	// is INCLUDE_SPECIFIED_CREDITS, this is a list of credit types to be
	// subtracted from gross cost to determine the spend for threshold
	// calculations. See [a list of acceptable credit type
	// values](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#credits-type).
	//
	// If
	// [Filter.credit_types_treatment][google.cloud.billing.budgets.v1.Filter.credit_types_treatment]
	// is **not** INCLUDE_SPECIFIED_CREDITS, this field must be empty.
	CreditTypes []string `protobuf:"bytes,7,rep,name=credit_types,json=creditTypes,proto3" json:"credit_types,omitempty"`
	// Optional. If not set, default behavior is `INCLUDE_ALL_CREDITS`.
	CreditTypesTreatment Filter_CreditTypesTreatment `` /* 189-byte string literal not displayed */
	// Optional. A set of services of the form `services/{service_id}`,
	// specifying that usage from only this set of services should be
	// included in the budget. If omitted, the report includes usage for
	// all the services.
	// The service names are available through the Catalog API:
	// https://cloud.google.com/billing/v1/how-tos/catalog-api.
	Services []string `protobuf:"bytes,3,rep,name=services,proto3" json:"services,omitempty"`
	// Optional. A set of subaccounts of the form `billingAccounts/{account_id}`,
	// specifying that usage from only this set of subaccounts should be included
	// in the budget. If a subaccount is set to the name of the parent account,
	// usage from the parent account is included. If the field is omitted,
	// the report includes usage from the parent account and all subaccounts,
	// if they exist.
	Subaccounts []string `protobuf:"bytes,5,rep,name=subaccounts,proto3" json:"subaccounts,omitempty"`
	// Optional. A single label and value pair specifying that usage from only
	// this set of labeled resources should be included in the budget. If omitted,
	// the report includes all labeled and unlabeled usage.
	//
	// An object containing a single `"key": value` pair. Example: `{ "name":
	// "wrench" }`.
	//
	//	_Currently, multiple entries or multiple values per entry are not
	//	allowed._
	Labels map[string]*structpb.ListValue `` /* 153-byte string literal not displayed */
	// Multiple options to choose the budget's time period, specifying that only
	// usage that occurs during this time period should be included in the budget.
	// If not set, the <code>usage_period</code> defaults to CalendarPeriod.MONTH.
	//
	// Types that are assignable to UsagePeriod:
	//
	//	*Filter_CalendarPeriod
	//	*Filter_CustomPeriod
	UsagePeriod isFilter_UsagePeriod `protobuf_oneof:"usage_period"`
	// contains filtered or unexported fields
}

A filter for a budget, limiting the scope of the cost to calculate.

func (*Filter) Descriptor deprecated

func (*Filter) Descriptor() ([]byte, []int)

Deprecated: Use Filter.ProtoReflect.Descriptor instead.

func (*Filter) GetCalendarPeriod

func (x *Filter) GetCalendarPeriod() CalendarPeriod

func (*Filter) GetCreditTypes

func (x *Filter) GetCreditTypes() []string

func (*Filter) GetCreditTypesTreatment

func (x *Filter) GetCreditTypesTreatment() Filter_CreditTypesTreatment

func (*Filter) GetCustomPeriod

func (x *Filter) GetCustomPeriod() *CustomPeriod

func (*Filter) GetLabels

func (x *Filter) GetLabels() map[string]*structpb.ListValue

func (*Filter) GetProjects

func (x *Filter) GetProjects() []string

func (*Filter) GetResourceAncestors added in v1.15.0

func (x *Filter) GetResourceAncestors() []string

func (*Filter) GetServices

func (x *Filter) GetServices() []string

func (*Filter) GetSubaccounts

func (x *Filter) GetSubaccounts() []string

func (*Filter) GetUsagePeriod

func (m *Filter) GetUsagePeriod() isFilter_UsagePeriod

func (*Filter) ProtoMessage

func (*Filter) ProtoMessage()

func (*Filter) ProtoReflect

func (x *Filter) ProtoReflect() protoreflect.Message

func (*Filter) Reset

func (x *Filter) Reset()

func (*Filter) String

func (x *Filter) String() string

type Filter_CalendarPeriod

type Filter_CalendarPeriod struct {
	// Optional. Specifies to track usage for recurring calendar period.
	// For example, assume that CalendarPeriod.QUARTER is set. The budget
	// tracks usage from April 1 to June 30, when the current calendar month is
	// April, May, June. After that, it tracks usage from July 1 to
	// September 30 when the current calendar month is July, August, September,
	// so on.
	CalendarPeriod CalendarPeriod `` /* 129-byte string literal not displayed */
}

type Filter_CreditTypesTreatment

type Filter_CreditTypesTreatment int32

Specifies how credits are applied when determining the spend for threshold calculations. Budgets track the total cost minus any applicable selected credits. [See the documentation for a list of credit types](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#credits-type).

const (
	Filter_CREDIT_TYPES_TREATMENT_UNSPECIFIED Filter_CreditTypesTreatment = 0
	// All types of credit are subtracted from the gross cost to determine the
	// spend for threshold calculations.
	Filter_INCLUDE_ALL_CREDITS Filter_CreditTypesTreatment = 1
	// All types of credit are added to the net cost to determine the spend for
	// threshold calculations.
	Filter_EXCLUDE_ALL_CREDITS Filter_CreditTypesTreatment = 2
	// [Credit
	// types](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#credits-type)
	// specified in the credit_types field are subtracted from the
	// gross cost to determine the spend for threshold calculations.
	Filter_INCLUDE_SPECIFIED_CREDITS Filter_CreditTypesTreatment = 3
)

func (Filter_CreditTypesTreatment) Descriptor

func (Filter_CreditTypesTreatment) Enum

func (Filter_CreditTypesTreatment) EnumDescriptor deprecated

func (Filter_CreditTypesTreatment) EnumDescriptor() ([]byte, []int)

Deprecated: Use Filter_CreditTypesTreatment.Descriptor instead.

func (Filter_CreditTypesTreatment) Number

func (Filter_CreditTypesTreatment) String

func (Filter_CreditTypesTreatment) Type

type Filter_CustomPeriod

type Filter_CustomPeriod struct {
	// Optional. Specifies to track usage from any start date (required) to any
	// end date (optional). This time period is static, it does not recur.
	CustomPeriod *CustomPeriod `protobuf:"bytes,9,opt,name=custom_period,json=customPeriod,proto3,oneof"`
}

type GetBudgetRequest

type GetBudgetRequest struct {

	// Required. Name of budget to get. Values are of the form
	// `billingAccounts/{billingAccountId}/budgets/{budgetId}`.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// contains filtered or unexported fields
}

Request for GetBudget

func (*GetBudgetRequest) Descriptor deprecated

func (*GetBudgetRequest) Descriptor() ([]byte, []int)

Deprecated: Use GetBudgetRequest.ProtoReflect.Descriptor instead.

func (*GetBudgetRequest) GetName

func (x *GetBudgetRequest) GetName() string

func (*GetBudgetRequest) ProtoMessage

func (*GetBudgetRequest) ProtoMessage()

func (*GetBudgetRequest) ProtoReflect

func (x *GetBudgetRequest) ProtoReflect() protoreflect.Message

func (*GetBudgetRequest) Reset

func (x *GetBudgetRequest) Reset()

func (*GetBudgetRequest) String

func (x *GetBudgetRequest) String() string

type LastPeriodAmount

type LastPeriodAmount struct {
	// contains filtered or unexported fields
}

Describes a budget amount targeted to the last [Filter.calendar_period][google.cloud.billing.budgets.v1.Filter.calendar_period] spend. At this time, the amount is automatically 100% of the last calendar period's spend; that is, there are no other options yet. LastPeriodAmount cannot be set for a budget configured with a [Filter.custom_period][google.cloud.billing.budgets.v1.Filter.custom_period].

func (*LastPeriodAmount) Descriptor deprecated

func (*LastPeriodAmount) Descriptor() ([]byte, []int)

Deprecated: Use LastPeriodAmount.ProtoReflect.Descriptor instead.

func (*LastPeriodAmount) ProtoMessage

func (*LastPeriodAmount) ProtoMessage()

func (*LastPeriodAmount) ProtoReflect

func (x *LastPeriodAmount) ProtoReflect() protoreflect.Message

func (*LastPeriodAmount) Reset

func (x *LastPeriodAmount) Reset()

func (*LastPeriodAmount) String

func (x *LastPeriodAmount) String() string

type ListBudgetsRequest

type ListBudgetsRequest struct {

	// Required. Name of billing account to list budgets under. Values
	// are of the form `billingAccounts/{billingAccountId}`.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// Optional. Set the scope of the budgets to be returned, in the format of the
	// resource name. The scope of a budget is the cost that it tracks, such as
	// costs for a single project, or the costs for all projects in a folder. Only
	// project scope (in the format of "projects/project-id" or "projects/123") is
	// supported in this field. When this field is set to a project's resource
	// name, the budgets returned are tracking the costs for that project.
	Scope string `protobuf:"bytes,4,opt,name=scope,proto3" json:"scope,omitempty"`
	// Optional. The maximum number of budgets to return per page.
	// The default and maximum value are 100.
	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	// Optional. The value returned by the last `ListBudgetsResponse` which
	// indicates that this is a continuation of a prior `ListBudgets` call,
	// and that the system should return the next page of data.
	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	// contains filtered or unexported fields
}

Request for ListBudgets

func (*ListBudgetsRequest) Descriptor deprecated

func (*ListBudgetsRequest) Descriptor() ([]byte, []int)

Deprecated: Use ListBudgetsRequest.ProtoReflect.Descriptor instead.

func (*ListBudgetsRequest) GetPageSize

func (x *ListBudgetsRequest) GetPageSize() int32

func (*ListBudgetsRequest) GetPageToken

func (x *ListBudgetsRequest) GetPageToken() string

func (*ListBudgetsRequest) GetParent

func (x *ListBudgetsRequest) GetParent() string

func (*ListBudgetsRequest) GetScope added in v1.17.0

func (x *ListBudgetsRequest) GetScope() string

func (*ListBudgetsRequest) ProtoMessage

func (*ListBudgetsRequest) ProtoMessage()

func (*ListBudgetsRequest) ProtoReflect

func (x *ListBudgetsRequest) ProtoReflect() protoreflect.Message

func (*ListBudgetsRequest) Reset

func (x *ListBudgetsRequest) Reset()

func (*ListBudgetsRequest) String

func (x *ListBudgetsRequest) String() string

type ListBudgetsResponse

type ListBudgetsResponse struct {

	// List of the budgets owned by the requested billing account.
	Budgets []*Budget `protobuf:"bytes,1,rep,name=budgets,proto3" json:"budgets,omitempty"`
	// If not empty, indicates that there may be more budgets that match the
	// request; this value should be passed in a new `ListBudgetsRequest`.
	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	// contains filtered or unexported fields
}

Response for ListBudgets

func (*ListBudgetsResponse) Descriptor deprecated

func (*ListBudgetsResponse) Descriptor() ([]byte, []int)

Deprecated: Use ListBudgetsResponse.ProtoReflect.Descriptor instead.

func (*ListBudgetsResponse) GetBudgets

func (x *ListBudgetsResponse) GetBudgets() []*Budget

func (*ListBudgetsResponse) GetNextPageToken

func (x *ListBudgetsResponse) GetNextPageToken() string

func (*ListBudgetsResponse) ProtoMessage

func (*ListBudgetsResponse) ProtoMessage()

func (*ListBudgetsResponse) ProtoReflect

func (x *ListBudgetsResponse) ProtoReflect() protoreflect.Message

func (*ListBudgetsResponse) Reset

func (x *ListBudgetsResponse) Reset()

func (*ListBudgetsResponse) String

func (x *ListBudgetsResponse) String() string

type NotificationsRule

type NotificationsRule struct {

	// Optional. The name of the Pub/Sub topic where budget-related messages are
	// published, in the form `projects/{project_id}/topics/{topic_id}`. Updates
	// are sent to the topic at regular intervals; the timing of the updates is
	// not dependent on the [threshold rules](#thresholdrule) you've set.
	//
	// Note that if you want your
	// [Pub/Sub JSON
	// object](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format)
	// to contain data for `alertThresholdExceeded`, you need at least one
	// [alert threshold rule](#thresholdrule). When you set threshold rules, you
	// must also enable at least one of the email notification options, either
	// using the default IAM recipients or Cloud Monitoring email notification
	// channels.
	//
	// To use Pub/Sub topics with budgets, you must do the following:
	//
	// 1. Create the Pub/Sub topic
	// before connecting it to your budget. For guidance, see
	// [Manage programmatic budget alert
	// notifications](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications).
	//
	// 2. Grant the API caller the `pubsub.topics.setIamPolicy` permission on
	// the Pub/Sub topic. If not set, the API call fails with PERMISSION_DENIED.
	// For additional details on Pub/Sub roles and permissions, see
	// [Permissions required for this
	// task](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#permissions_required_for_this_task).
	PubsubTopic string `protobuf:"bytes,1,opt,name=pubsub_topic,json=pubsubTopic,proto3" json:"pubsub_topic,omitempty"`
	// Optional. Required when
	// [NotificationsRule.pubsub_topic][google.cloud.billing.budgets.v1.NotificationsRule.pubsub_topic]
	// is set. The schema version of the notification sent to
	// [NotificationsRule.pubsub_topic][google.cloud.billing.budgets.v1.NotificationsRule.pubsub_topic].
	// Only "1.0" is accepted. It represents the JSON schema as defined in
	// https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format.
	SchemaVersion string `protobuf:"bytes,2,opt,name=schema_version,json=schemaVersion,proto3" json:"schema_version,omitempty"`
	// Optional. Email targets to send notifications to when a threshold is
	// exceeded. This is in addition to the `DefaultIamRecipients` who receive
	// alert emails based on their billing account IAM role. The value is the full
	// REST resource name of a Cloud Monitoring email notification channel with
	// the form `projects/{project_id}/notificationChannels/{channel_id}`. A
	// maximum of 5 email notifications are allowed.
	//
	// To customize budget alert email recipients with monitoring notification
	// channels, you _must create the monitoring notification channels before
	// you link them to a budget_. For guidance on setting up notification
	// channels to use with budgets, see
	// [Customize budget alert email
	// recipients](https://cloud.google.com/billing/docs/how-to/budgets-notification-recipients).
	//
	// For Cloud Billing budget alerts, you _must use email notification
	// channels_. The other types of notification channels are _not_
	// supported, such as Slack, SMS, or PagerDuty. If you want to
	// [send budget notifications to
	// Slack](https://cloud.google.com/billing/docs/how-to/notify#send_notifications_to_slack),
	// use a pubsubTopic and configure
	// [programmatic
	// notifications](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications).
	MonitoringNotificationChannels []string `` /* 153-byte string literal not displayed */
	// Optional. When set to true, disables default notifications sent when a
	// threshold is exceeded. Default notifications are sent to those with Billing
	// Account Administrator and Billing Account User IAM roles for the target
	// account.
	DisableDefaultIamRecipients bool `` /* 147-byte string literal not displayed */
	// Optional. When set to true, and when the budget has a single project
	// configured, notifications will be sent to project level recipients of that
	// project. This field will be ignored if the budget has multiple or no
	// project configured.
	//
	// Currently, project level recipients are the users with `Owner` role on a
	// cloud project.
	EnableProjectLevelRecipients bool `` /* 150-byte string literal not displayed */
	// contains filtered or unexported fields
}

NotificationsRule defines notifications that are sent based on budget spend and thresholds.

func (*NotificationsRule) Descriptor deprecated

func (*NotificationsRule) Descriptor() ([]byte, []int)

Deprecated: Use NotificationsRule.ProtoReflect.Descriptor instead.

func (*NotificationsRule) GetDisableDefaultIamRecipients

func (x *NotificationsRule) GetDisableDefaultIamRecipients() bool

func (*NotificationsRule) GetEnableProjectLevelRecipients added in v1.17.0

func (x *NotificationsRule) GetEnableProjectLevelRecipients() bool

func (*NotificationsRule) GetMonitoringNotificationChannels

func (x *NotificationsRule) GetMonitoringNotificationChannels() []string

func (*NotificationsRule) GetPubsubTopic

func (x *NotificationsRule) GetPubsubTopic() string

func (*NotificationsRule) GetSchemaVersion

func (x *NotificationsRule) GetSchemaVersion() string

func (*NotificationsRule) ProtoMessage

func (*NotificationsRule) ProtoMessage()

func (*NotificationsRule) ProtoReflect

func (x *NotificationsRule) ProtoReflect() protoreflect.Message

func (*NotificationsRule) Reset

func (x *NotificationsRule) Reset()

func (*NotificationsRule) String

func (x *NotificationsRule) String() string

type ThresholdRule

type ThresholdRule struct {

	// Required. Send an alert when this threshold is exceeded.
	// This is a 1.0-based percentage, so 0.5 = 50%.
	// Validation: non-negative number.
	ThresholdPercent float64 `protobuf:"fixed64,1,opt,name=threshold_percent,json=thresholdPercent,proto3" json:"threshold_percent,omitempty"`
	// Optional. The type of basis used to determine if spend has passed the
	// threshold. Behavior defaults to CURRENT_SPEND if not set.
	SpendBasis ThresholdRule_Basis `` /* 149-byte string literal not displayed */
	// contains filtered or unexported fields
}

ThresholdRule contains the definition of a threshold. Threshold rules define the triggering events used to generate a budget notification email. When a threshold is crossed (spend exceeds the specified percentages of the budget), budget alert emails are sent to the email recipients you specify in the NotificationsRule(#notificationsrule).

Threshold rules also affect the fields included in the [JSON data object](https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format) sent to a Pub/Sub topic.

Threshold rules are _required_ if using email notifications.

Threshold rules are _optional_ if only setting a [`pubsubTopic` NotificationsRule](#NotificationsRule), unless you want your JSON data object to include data about the thresholds you set.

For more information, see [set budget threshold rules and actions](https://cloud.google.com/billing/docs/how-to/budgets#budget-actions).

func (*ThresholdRule) Descriptor deprecated

func (*ThresholdRule) Descriptor() ([]byte, []int)

Deprecated: Use ThresholdRule.ProtoReflect.Descriptor instead.

func (*ThresholdRule) GetSpendBasis

func (x *ThresholdRule) GetSpendBasis() ThresholdRule_Basis

func (*ThresholdRule) GetThresholdPercent

func (x *ThresholdRule) GetThresholdPercent() float64

func (*ThresholdRule) ProtoMessage

func (*ThresholdRule) ProtoMessage()

func (*ThresholdRule) ProtoReflect

func (x *ThresholdRule) ProtoReflect() protoreflect.Message

func (*ThresholdRule) Reset

func (x *ThresholdRule) Reset()

func (*ThresholdRule) String

func (x *ThresholdRule) String() string

type ThresholdRule_Basis

type ThresholdRule_Basis int32

The type of basis used to determine if spend has passed the threshold.

const (
	// Unspecified threshold basis.
	ThresholdRule_BASIS_UNSPECIFIED ThresholdRule_Basis = 0
	// Use current spend as the basis for comparison against the threshold.
	ThresholdRule_CURRENT_SPEND ThresholdRule_Basis = 1
	// Use forecasted spend for the period as the basis for comparison against
	// the threshold.
	// FORECASTED_SPEND can only be set when the budget's time period is a
	// [Filter.calendar_period][google.cloud.billing.budgets.v1.Filter.calendar_period].
	// It cannot be set in combination with
	// [Filter.custom_period][google.cloud.billing.budgets.v1.Filter.custom_period].
	ThresholdRule_FORECASTED_SPEND ThresholdRule_Basis = 2
)

func (ThresholdRule_Basis) Descriptor

func (ThresholdRule_Basis) Enum

func (ThresholdRule_Basis) EnumDescriptor deprecated

func (ThresholdRule_Basis) EnumDescriptor() ([]byte, []int)

Deprecated: Use ThresholdRule_Basis.Descriptor instead.

func (ThresholdRule_Basis) Number

func (ThresholdRule_Basis) String

func (x ThresholdRule_Basis) String() string

func (ThresholdRule_Basis) Type

type UnimplementedBudgetServiceServer

type UnimplementedBudgetServiceServer struct {
}

UnimplementedBudgetServiceServer should be embedded to have forward compatible implementations.

func (UnimplementedBudgetServiceServer) CreateBudget

func (UnimplementedBudgetServiceServer) DeleteBudget

func (UnimplementedBudgetServiceServer) GetBudget

func (UnimplementedBudgetServiceServer) ListBudgets

func (UnimplementedBudgetServiceServer) UpdateBudget

type UnsafeBudgetServiceServer added in v1.21.0

type UnsafeBudgetServiceServer interface {
	// contains filtered or unexported methods
}

UnsafeBudgetServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to BudgetServiceServer will result in compilation errors.

type UpdateBudgetRequest

type UpdateBudgetRequest struct {

	// Required. The updated budget object.
	// The budget to update is specified by the budget name in the budget.
	Budget *Budget `protobuf:"bytes,1,opt,name=budget,proto3" json:"budget,omitempty"`
	// Optional. Indicates which fields in the provided budget to update.
	// Read-only fields (such as `name`) cannot be changed. If this is not
	// provided, then only fields with non-default values from the request are
	// updated. See
	// https://developers.google.com/protocol-buffers/docs/proto3#default for more
	// details about default values.
	UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
	// contains filtered or unexported fields
}

Request for UpdateBudget

func (*UpdateBudgetRequest) Descriptor deprecated

func (*UpdateBudgetRequest) Descriptor() ([]byte, []int)

Deprecated: Use UpdateBudgetRequest.ProtoReflect.Descriptor instead.

func (*UpdateBudgetRequest) GetBudget

func (x *UpdateBudgetRequest) GetBudget() *Budget

func (*UpdateBudgetRequest) GetUpdateMask

func (x *UpdateBudgetRequest) GetUpdateMask() *fieldmaskpb.FieldMask

func (*UpdateBudgetRequest) ProtoMessage

func (*UpdateBudgetRequest) ProtoMessage()

func (*UpdateBudgetRequest) ProtoReflect

func (x *UpdateBudgetRequest) ProtoReflect() protoreflect.Message

func (*UpdateBudgetRequest) Reset

func (x *UpdateBudgetRequest) Reset()

func (*UpdateBudgetRequest) String

func (x *UpdateBudgetRequest) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL