budgetspb

package
v1.20.0 Latest Latest
Warning

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

Go to latest
Published: Dec 4, 2024 License: Apache-2.0 Imports: 14 Imported by: 4

Documentation

Index

Constants

This section is empty.

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 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.Server, 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://godoc.org/google.golang.org/grpc#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.

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 can be embedded to have forward compatible implementations.

func (*UnimplementedBudgetServiceServer) CreateBudget

func (*UnimplementedBudgetServiceServer) DeleteBudget

func (*UnimplementedBudgetServiceServer) GetBudget

func (*UnimplementedBudgetServiceServer) ListBudgets

func (*UnimplementedBudgetServiceServer) UpdateBudget

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