// Copyright (c) 2022 Gitpod GmbH. All rights reserved.
// Licensed under the GNU Affero General Public License (AGPL).
// See License.AGPL.txt in the project root for license information.

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.28.1
// 	protoc        (unknown)
// source: usage/v1/usage.proto

package v1

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	reflect "reflect"
	sync "sync"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type ListUsageRequest_Ordering int32

const (
	ListUsageRequest_ORDERING_DESCENDING ListUsageRequest_Ordering = 0
	ListUsageRequest_ORDERING_ASCENDING  ListUsageRequest_Ordering = 1
)

// Enum value maps for ListUsageRequest_Ordering.
var (
	ListUsageRequest_Ordering_name = map[int32]string{
		0: "ORDERING_DESCENDING",
		1: "ORDERING_ASCENDING",
	}
	ListUsageRequest_Ordering_value = map[string]int32{
		"ORDERING_DESCENDING": 0,
		"ORDERING_ASCENDING":  1,
	}
)

func (x ListUsageRequest_Ordering) Enum() *ListUsageRequest_Ordering {
	p := new(ListUsageRequest_Ordering)
	*p = x
	return p
}

func (x ListUsageRequest_Ordering) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ListUsageRequest_Ordering) Descriptor() protoreflect.EnumDescriptor {
	return file_usage_v1_usage_proto_enumTypes[0].Descriptor()
}

func (ListUsageRequest_Ordering) Type() protoreflect.EnumType {
	return &file_usage_v1_usage_proto_enumTypes[0]
}

func (x ListUsageRequest_Ordering) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use ListUsageRequest_Ordering.Descriptor instead.
func (ListUsageRequest_Ordering) EnumDescriptor() ([]byte, []int) {
	return file_usage_v1_usage_proto_rawDescGZIP(), []int{4, 0}
}

type Usage_Kind int32

const (
	Usage_KIND_WORKSPACE_INSTANCE Usage_Kind = 0
	Usage_KIND_INVOICE            Usage_Kind = 1
)

// Enum value maps for Usage_Kind.
var (
	Usage_Kind_name = map[int32]string{
		0: "KIND_WORKSPACE_INSTANCE",
		1: "KIND_INVOICE",
	}
	Usage_Kind_value = map[string]int32{
		"KIND_WORKSPACE_INSTANCE": 0,
		"KIND_INVOICE":            1,
	}
)

func (x Usage_Kind) Enum() *Usage_Kind {
	p := new(Usage_Kind)
	*p = x
	return p
}

func (x Usage_Kind) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Usage_Kind) Descriptor() protoreflect.EnumDescriptor {
	return file_usage_v1_usage_proto_enumTypes[1].Descriptor()
}

func (Usage_Kind) Type() protoreflect.EnumType {
	return &file_usage_v1_usage_proto_enumTypes[1]
}

func (x Usage_Kind) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use Usage_Kind.Descriptor instead.
func (Usage_Kind) EnumDescriptor() ([]byte, []int) {
	return file_usage_v1_usage_proto_rawDescGZIP(), []int{6, 0}
}

type CostCenter_BillingStrategy int32

const (
	CostCenter_BILLING_STRATEGY_STRIPE CostCenter_BillingStrategy = 0
	CostCenter_BILLING_STRATEGY_OTHER  CostCenter_BillingStrategy = 1
)

// Enum value maps for CostCenter_BillingStrategy.
var (
	CostCenter_BillingStrategy_name = map[int32]string{
		0: "BILLING_STRATEGY_STRIPE",
		1: "BILLING_STRATEGY_OTHER",
	}
	CostCenter_BillingStrategy_value = map[string]int32{
		"BILLING_STRATEGY_STRIPE": 0,
		"BILLING_STRATEGY_OTHER":  1,
	}
)

func (x CostCenter_BillingStrategy) Enum() *CostCenter_BillingStrategy {
	p := new(CostCenter_BillingStrategy)
	*p = x
	return p
}

func (x CostCenter_BillingStrategy) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (CostCenter_BillingStrategy) Descriptor() protoreflect.EnumDescriptor {
	return file_usage_v1_usage_proto_enumTypes[2].Descriptor()
}

func (CostCenter_BillingStrategy) Type() protoreflect.EnumType {
	return &file_usage_v1_usage_proto_enumTypes[2]
}

func (x CostCenter_BillingStrategy) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use CostCenter_BillingStrategy.Descriptor instead.
func (CostCenter_BillingStrategy) EnumDescriptor() ([]byte, []int) {
	return file_usage_v1_usage_proto_rawDescGZIP(), []int{13, 0}
}

type ReconcileUsageRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// from specifies the starting time range for this request.
	From *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=from,proto3" json:"from,omitempty"`
	// to specifies the end time range for this request.
	To *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=to,proto3" json:"to,omitempty"`
}

func (x *ReconcileUsageRequest) Reset() {
	*x = ReconcileUsageRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_usage_v1_usage_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ReconcileUsageRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReconcileUsageRequest) ProtoMessage() {}

func (x *ReconcileUsageRequest) ProtoReflect() protoreflect.Message {
	mi := &file_usage_v1_usage_proto_msgTypes[0]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReconcileUsageRequest.ProtoReflect.Descriptor instead.
func (*ReconcileUsageRequest) Descriptor() ([]byte, []int) {
	return file_usage_v1_usage_proto_rawDescGZIP(), []int{0}
}

func (x *ReconcileUsageRequest) GetFrom() *timestamppb.Timestamp {
	if x != nil {
		return x.From
	}
	return nil
}

func (x *ReconcileUsageRequest) GetTo() *timestamppb.Timestamp {
	if x != nil {
		return x.To
	}
	return nil
}

type ReconcileUsageResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReconcileUsageResponse) Reset() {
	*x = ReconcileUsageResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_usage_v1_usage_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ReconcileUsageResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReconcileUsageResponse) ProtoMessage() {}

func (x *ReconcileUsageResponse) ProtoReflect() protoreflect.Message {
	mi := &file_usage_v1_usage_proto_msgTypes[1]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReconcileUsageResponse.ProtoReflect.Descriptor instead.
func (*ReconcileUsageResponse) Descriptor() ([]byte, []int) {
	return file_usage_v1_usage_proto_rawDescGZIP(), []int{1}
}

type PaginatedRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PerPage int64 `protobuf:"varint,1,opt,name=per_page,json=perPage,proto3" json:"per_page,omitempty"`
	Page    int64 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty"`
}

func (x *PaginatedRequest) Reset() {
	*x = PaginatedRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_usage_v1_usage_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PaginatedRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PaginatedRequest) ProtoMessage() {}

func (x *PaginatedRequest) ProtoReflect() protoreflect.Message {
	mi := &file_usage_v1_usage_proto_msgTypes[2]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PaginatedRequest.ProtoReflect.Descriptor instead.
func (*PaginatedRequest) Descriptor() ([]byte, []int) {
	return file_usage_v1_usage_proto_rawDescGZIP(), []int{2}
}

func (x *PaginatedRequest) GetPerPage() int64 {
	if x != nil {
		return x.PerPage
	}
	return 0
}

func (x *PaginatedRequest) GetPage() int64 {
	if x != nil {
		return x.Page
	}
	return 0
}

type PaginatedResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PerPage    int64 `protobuf:"varint,2,opt,name=per_page,json=perPage,proto3" json:"per_page,omitempty"`
	TotalPages int64 `protobuf:"varint,3,opt,name=total_pages,json=totalPages,proto3" json:"total_pages,omitempty"`
	Total      int64 `protobuf:"varint,4,opt,name=total,proto3" json:"total,omitempty"`
	Page       int64 `protobuf:"varint,5,opt,name=page,proto3" json:"page,omitempty"`
}

func (x *PaginatedResponse) Reset() {
	*x = PaginatedResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_usage_v1_usage_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PaginatedResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PaginatedResponse) ProtoMessage() {}

func (x *PaginatedResponse) ProtoReflect() protoreflect.Message {
	mi := &file_usage_v1_usage_proto_msgTypes[3]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PaginatedResponse.ProtoReflect.Descriptor instead.
func (*PaginatedResponse) Descriptor() ([]byte, []int) {
	return file_usage_v1_usage_proto_rawDescGZIP(), []int{3}
}

func (x *PaginatedResponse) GetPerPage() int64 {
	if x != nil {
		return x.PerPage
	}
	return 0
}

func (x *PaginatedResponse) GetTotalPages() int64 {
	if x != nil {
		return x.TotalPages
	}
	return 0
}

func (x *PaginatedResponse) GetTotal() int64 {
	if x != nil {
		return x.Total
	}
	return 0
}

func (x *PaginatedResponse) GetPage() int64 {
	if x != nil {
		return x.Page
	}
	return 0
}

type ListUsageRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AttributionId string `protobuf:"bytes,1,opt,name=attribution_id,json=attributionId,proto3" json:"attribution_id,omitempty"`
	// from specifies the starting time range for this request.
	// All instances which existed starting at from will be returned.
	From *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=from,proto3" json:"from,omitempty"`
	// to specifies the end time range for this request.
	// All instances which existed ending at to will be returned.
	To         *timestamppb.Timestamp    `protobuf:"bytes,3,opt,name=to,proto3" json:"to,omitempty"`
	Order      ListUsageRequest_Ordering `protobuf:"varint,4,opt,name=order,proto3,enum=usage.v1.ListUsageRequest_Ordering" json:"order,omitempty"`
	Pagination *PaginatedRequest         `protobuf:"bytes,5,opt,name=pagination,proto3" json:"pagination,omitempty"`
}

func (x *ListUsageRequest) Reset() {
	*x = ListUsageRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_usage_v1_usage_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListUsageRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListUsageRequest) ProtoMessage() {}

func (x *ListUsageRequest) ProtoReflect() protoreflect.Message {
	mi := &file_usage_v1_usage_proto_msgTypes[4]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListUsageRequest.ProtoReflect.Descriptor instead.
func (*ListUsageRequest) Descriptor() ([]byte, []int) {
	return file_usage_v1_usage_proto_rawDescGZIP(), []int{4}
}

func (x *ListUsageRequest) GetAttributionId() string {
	if x != nil {
		return x.AttributionId
	}
	return ""
}

func (x *ListUsageRequest) GetFrom() *timestamppb.Timestamp {
	if x != nil {
		return x.From
	}
	return nil
}

func (x *ListUsageRequest) GetTo() *timestamppb.Timestamp {
	if x != nil {
		return x.To
	}
	return nil
}

func (x *ListUsageRequest) GetOrder() ListUsageRequest_Ordering {
	if x != nil {
		return x.Order
	}
	return ListUsageRequest_ORDERING_DESCENDING
}

func (x *ListUsageRequest) GetPagination() *PaginatedRequest {
	if x != nil {
		return x.Pagination
	}
	return nil
}

type ListUsageResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	UsageEntries []*Usage           `protobuf:"bytes,1,rep,name=usage_entries,json=usageEntries,proto3" json:"usage_entries,omitempty"`
	Pagination   *PaginatedResponse `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"`
	// the amount of credits the given account (attributionId) has used during the requested period
	CreditsUsed float64 `protobuf:"fixed64,3,opt,name=credits_used,json=creditsUsed,proto3" json:"credits_used,omitempty"`
}

func (x *ListUsageResponse) Reset() {
	*x = ListUsageResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_usage_v1_usage_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListUsageResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListUsageResponse) ProtoMessage() {}

func (x *ListUsageResponse) ProtoReflect() protoreflect.Message {
	mi := &file_usage_v1_usage_proto_msgTypes[5]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListUsageResponse.ProtoReflect.Descriptor instead.
func (*ListUsageResponse) Descriptor() ([]byte, []int) {
	return file_usage_v1_usage_proto_rawDescGZIP(), []int{5}
}

func (x *ListUsageResponse) GetUsageEntries() []*Usage {
	if x != nil {
		return x.UsageEntries
	}
	return nil
}

func (x *ListUsageResponse) GetPagination() *PaginatedResponse {
	if x != nil {
		return x.Pagination
	}
	return nil
}

func (x *ListUsageResponse) GetCreditsUsed() float64 {
	if x != nil {
		return x.CreditsUsed
	}
	return 0
}

type Usage struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id                  string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	AttributionId       string                 `protobuf:"bytes,2,opt,name=attribution_id,json=attributionId,proto3" json:"attribution_id,omitempty"`
	Description         string                 `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	Credits             float64                `protobuf:"fixed64,4,opt,name=credits,proto3" json:"credits,omitempty"`
	EffectiveTime       *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=effective_time,json=effectiveTime,proto3" json:"effective_time,omitempty"`
	Kind                Usage_Kind             `protobuf:"varint,6,opt,name=kind,proto3,enum=usage.v1.Usage_Kind" json:"kind,omitempty"`
	WorkspaceInstanceId string                 `protobuf:"bytes,7,opt,name=workspace_instance_id,json=workspaceInstanceId,proto3" json:"workspace_instance_id,omitempty"`
	Draft               bool                   `protobuf:"varint,8,opt,name=draft,proto3" json:"draft,omitempty"`
	Metadata            string                 `protobuf:"bytes,9,opt,name=metadata,proto3" json:"metadata,omitempty"`
}

func (x *Usage) Reset() {
	*x = Usage{}
	if protoimpl.UnsafeEnabled {
		mi := &file_usage_v1_usage_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Usage) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Usage) ProtoMessage() {}

func (x *Usage) ProtoReflect() protoreflect.Message {
	mi := &file_usage_v1_usage_proto_msgTypes[6]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Usage.ProtoReflect.Descriptor instead.
func (*Usage) Descriptor() ([]byte, []int) {
	return file_usage_v1_usage_proto_rawDescGZIP(), []int{6}
}

func (x *Usage) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *Usage) GetAttributionId() string {
	if x != nil {
		return x.AttributionId
	}
	return ""
}

func (x *Usage) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *Usage) GetCredits() float64 {
	if x != nil {
		return x.Credits
	}
	return 0
}

func (x *Usage) GetEffectiveTime() *timestamppb.Timestamp {
	if x != nil {
		return x.EffectiveTime
	}
	return nil
}

func (x *Usage) GetKind() Usage_Kind {
	if x != nil {
		return x.Kind
	}
	return Usage_KIND_WORKSPACE_INSTANCE
}

func (x *Usage) GetWorkspaceInstanceId() string {
	if x != nil {
		return x.WorkspaceInstanceId
	}
	return ""
}

func (x *Usage) GetDraft() bool {
	if x != nil {
		return x.Draft
	}
	return false
}

func (x *Usage) GetMetadata() string {
	if x != nil {
		return x.Metadata
	}
	return ""
}

type SetCostCenterRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CostCenter *CostCenter `protobuf:"bytes,1,opt,name=cost_center,json=costCenter,proto3" json:"cost_center,omitempty"`
}

func (x *SetCostCenterRequest) Reset() {
	*x = SetCostCenterRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_usage_v1_usage_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SetCostCenterRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SetCostCenterRequest) ProtoMessage() {}

func (x *SetCostCenterRequest) ProtoReflect() protoreflect.Message {
	mi := &file_usage_v1_usage_proto_msgTypes[7]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SetCostCenterRequest.ProtoReflect.Descriptor instead.
func (*SetCostCenterRequest) Descriptor() ([]byte, []int) {
	return file_usage_v1_usage_proto_rawDescGZIP(), []int{7}
}

func (x *SetCostCenterRequest) GetCostCenter() *CostCenter {
	if x != nil {
		return x.CostCenter
	}
	return nil
}

type SetCostCenterResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CostCenter *CostCenter `protobuf:"bytes,1,opt,name=cost_center,json=costCenter,proto3" json:"cost_center,omitempty"`
}

func (x *SetCostCenterResponse) Reset() {
	*x = SetCostCenterResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_usage_v1_usage_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SetCostCenterResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SetCostCenterResponse) ProtoMessage() {}

func (x *SetCostCenterResponse) ProtoReflect() protoreflect.Message {
	mi := &file_usage_v1_usage_proto_msgTypes[8]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SetCostCenterResponse.ProtoReflect.Descriptor instead.
func (*SetCostCenterResponse) Descriptor() ([]byte, []int) {
	return file_usage_v1_usage_proto_rawDescGZIP(), []int{8}
}

func (x *SetCostCenterResponse) GetCostCenter() *CostCenter {
	if x != nil {
		return x.CostCenter
	}
	return nil
}

type GetBalanceRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AttributionId string `protobuf:"bytes,1,opt,name=attribution_id,json=attributionId,proto3" json:"attribution_id,omitempty"`
}

func (x *GetBalanceRequest) Reset() {
	*x = GetBalanceRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_usage_v1_usage_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetBalanceRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetBalanceRequest) ProtoMessage() {}

func (x *GetBalanceRequest) ProtoReflect() protoreflect.Message {
	mi := &file_usage_v1_usage_proto_msgTypes[9]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetBalanceRequest.ProtoReflect.Descriptor instead.
func (*GetBalanceRequest) Descriptor() ([]byte, []int) {
	return file_usage_v1_usage_proto_rawDescGZIP(), []int{9}
}

func (x *GetBalanceRequest) GetAttributionId() string {
	if x != nil {
		return x.AttributionId
	}
	return ""
}

type GetBalanceResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Credits float64 `protobuf:"fixed64,4,opt,name=credits,proto3" json:"credits,omitempty"`
}

func (x *GetBalanceResponse) Reset() {
	*x = GetBalanceResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_usage_v1_usage_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetBalanceResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetBalanceResponse) ProtoMessage() {}

func (x *GetBalanceResponse) ProtoReflect() protoreflect.Message {
	mi := &file_usage_v1_usage_proto_msgTypes[10]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetBalanceResponse.ProtoReflect.Descriptor instead.
func (*GetBalanceResponse) Descriptor() ([]byte, []int) {
	return file_usage_v1_usage_proto_rawDescGZIP(), []int{10}
}

func (x *GetBalanceResponse) GetCredits() float64 {
	if x != nil {
		return x.Credits
	}
	return 0
}

type GetCostCenterRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AttributionId string `protobuf:"bytes,1,opt,name=attribution_id,json=attributionId,proto3" json:"attribution_id,omitempty"`
}

func (x *GetCostCenterRequest) Reset() {
	*x = GetCostCenterRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_usage_v1_usage_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetCostCenterRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetCostCenterRequest) ProtoMessage() {}

func (x *GetCostCenterRequest) ProtoReflect() protoreflect.Message {
	mi := &file_usage_v1_usage_proto_msgTypes[11]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetCostCenterRequest.ProtoReflect.Descriptor instead.
func (*GetCostCenterRequest) Descriptor() ([]byte, []int) {
	return file_usage_v1_usage_proto_rawDescGZIP(), []int{11}
}

func (x *GetCostCenterRequest) GetAttributionId() string {
	if x != nil {
		return x.AttributionId
	}
	return ""
}

type GetCostCenterResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CostCenter *CostCenter `protobuf:"bytes,1,opt,name=cost_center,json=costCenter,proto3" json:"cost_center,omitempty"`
}

func (x *GetCostCenterResponse) Reset() {
	*x = GetCostCenterResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_usage_v1_usage_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetCostCenterResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetCostCenterResponse) ProtoMessage() {}

func (x *GetCostCenterResponse) ProtoReflect() protoreflect.Message {
	mi := &file_usage_v1_usage_proto_msgTypes[12]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetCostCenterResponse.ProtoReflect.Descriptor instead.
func (*GetCostCenterResponse) Descriptor() ([]byte, []int) {
	return file_usage_v1_usage_proto_rawDescGZIP(), []int{12}
}

func (x *GetCostCenterResponse) GetCostCenter() *CostCenter {
	if x != nil {
		return x.CostCenter
	}
	return nil
}

type CostCenter struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AttributionId   string                     `protobuf:"bytes,1,opt,name=attribution_id,json=attributionId,proto3" json:"attribution_id,omitempty"`
	SpendingLimit   int32                      `protobuf:"varint,2,opt,name=spending_limit,json=spendingLimit,proto3" json:"spending_limit,omitempty"`
	BillingStrategy CostCenter_BillingStrategy `protobuf:"varint,3,opt,name=billing_strategy,json=billingStrategy,proto3,enum=usage.v1.CostCenter_BillingStrategy" json:"billing_strategy,omitempty"`
	// next_billing_time specifies when the next billing cycle happens. Only set when billing strategy is 'other'. This property is readonly.
	NextBillingTime   *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=next_billing_time,json=nextBillingTime,proto3" json:"next_billing_time,omitempty"`
	BillingCycleStart *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=billing_cycle_start,json=billingCycleStart,proto3" json:"billing_cycle_start,omitempty"`
}

func (x *CostCenter) Reset() {
	*x = CostCenter{}
	if protoimpl.UnsafeEnabled {
		mi := &file_usage_v1_usage_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CostCenter) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CostCenter) ProtoMessage() {}

func (x *CostCenter) ProtoReflect() protoreflect.Message {
	mi := &file_usage_v1_usage_proto_msgTypes[13]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CostCenter.ProtoReflect.Descriptor instead.
func (*CostCenter) Descriptor() ([]byte, []int) {
	return file_usage_v1_usage_proto_rawDescGZIP(), []int{13}
}

func (x *CostCenter) GetAttributionId() string {
	if x != nil {
		return x.AttributionId
	}
	return ""
}

func (x *CostCenter) GetSpendingLimit() int32 {
	if x != nil {
		return x.SpendingLimit
	}
	return 0
}

func (x *CostCenter) GetBillingStrategy() CostCenter_BillingStrategy {
	if x != nil {
		return x.BillingStrategy
	}
	return CostCenter_BILLING_STRATEGY_STRIPE
}

func (x *CostCenter) GetNextBillingTime() *timestamppb.Timestamp {
	if x != nil {
		return x.NextBillingTime
	}
	return nil
}

func (x *CostCenter) GetBillingCycleStart() *timestamppb.Timestamp {
	if x != nil {
		return x.BillingCycleStart
	}
	return nil
}

type ResetUsageRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ResetUsageRequest) Reset() {
	*x = ResetUsageRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_usage_v1_usage_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ResetUsageRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResetUsageRequest) ProtoMessage() {}

func (x *ResetUsageRequest) ProtoReflect() protoreflect.Message {
	mi := &file_usage_v1_usage_proto_msgTypes[14]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResetUsageRequest.ProtoReflect.Descriptor instead.
func (*ResetUsageRequest) Descriptor() ([]byte, []int) {
	return file_usage_v1_usage_proto_rawDescGZIP(), []int{14}
}

type ResetUsageResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ResetUsageResponse) Reset() {
	*x = ResetUsageResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_usage_v1_usage_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ResetUsageResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResetUsageResponse) ProtoMessage() {}

func (x *ResetUsageResponse) ProtoReflect() protoreflect.Message {
	mi := &file_usage_v1_usage_proto_msgTypes[15]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ResetUsageResponse.ProtoReflect.Descriptor instead.
func (*ResetUsageResponse) Descriptor() ([]byte, []int) {
	return file_usage_v1_usage_proto_rawDescGZIP(), []int{15}
}

type AddUsageCreditNoteRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AttributionId string `protobuf:"bytes,1,opt,name=attribution_id,json=attributionId,proto3" json:"attribution_id,omitempty"`
	// the amount of credits to add to the given account
	Credits int32 `protobuf:"varint,2,opt,name=credits,proto3" json:"credits,omitempty"`
	// a human readable description for the reason this credit note exists
	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	// the id of the user (admin) who created the note
	UserId string `protobuf:"bytes,4,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
}

func (x *AddUsageCreditNoteRequest) Reset() {
	*x = AddUsageCreditNoteRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_usage_v1_usage_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AddUsageCreditNoteRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AddUsageCreditNoteRequest) ProtoMessage() {}

func (x *AddUsageCreditNoteRequest) ProtoReflect() protoreflect.Message {
	mi := &file_usage_v1_usage_proto_msgTypes[16]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AddUsageCreditNoteRequest.ProtoReflect.Descriptor instead.
func (*AddUsageCreditNoteRequest) Descriptor() ([]byte, []int) {
	return file_usage_v1_usage_proto_rawDescGZIP(), []int{16}
}

func (x *AddUsageCreditNoteRequest) GetAttributionId() string {
	if x != nil {
		return x.AttributionId
	}
	return ""
}

func (x *AddUsageCreditNoteRequest) GetCredits() int32 {
	if x != nil {
		return x.Credits
	}
	return 0
}

func (x *AddUsageCreditNoteRequest) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *AddUsageCreditNoteRequest) GetUserId() string {
	if x != nil {
		return x.UserId
	}
	return ""
}

type AddUsageCreditNoteResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *AddUsageCreditNoteResponse) Reset() {
	*x = AddUsageCreditNoteResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_usage_v1_usage_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AddUsageCreditNoteResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AddUsageCreditNoteResponse) ProtoMessage() {}

func (x *AddUsageCreditNoteResponse) ProtoReflect() protoreflect.Message {
	mi := &file_usage_v1_usage_proto_msgTypes[17]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AddUsageCreditNoteResponse.ProtoReflect.Descriptor instead.
func (*AddUsageCreditNoteResponse) Descriptor() ([]byte, []int) {
	return file_usage_v1_usage_proto_rawDescGZIP(), []int{17}
}

var File_usage_v1_usage_proto protoreflect.FileDescriptor

var file_usage_v1_usage_proto_rawDesc = []byte{
	0x0a, 0x14, 0x75, 0x73, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x61, 0x67, 0x65,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x75, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31,
	0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
	0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x22, 0x73, 0x0a, 0x15, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x65, 0x55, 0x73,
	0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x66, 0x72,
	0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73,
	0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x2a, 0x0a, 0x02, 0x74, 0x6f,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
	0x6d, 0x70, 0x52, 0x02, 0x74, 0x6f, 0x22, 0x18, 0x0a, 0x16, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63,
	0x69, 0x6c, 0x65, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x22, 0x41, 0x0a, 0x10, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x67, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x70, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x12,
	0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x70,
	0x61, 0x67, 0x65, 0x22, 0x79, 0x0a, 0x11, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x5f,
	0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x70, 0x65, 0x72, 0x50,
	0x61, 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x67,
	0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50,
	0x61, 0x67, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61,
	0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x22, 0xc9,
	0x02, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69,
	0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x74, 0x74,
	0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x04, 0x66, 0x72,
	0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73,
	0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x2a, 0x0a, 0x02, 0x74, 0x6f,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
	0x6d, 0x70, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x39, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x75, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31,
	0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65,
	0x72, 0x12, 0x3a, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x75, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31,
	0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3b, 0x0a,
	0x08, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x52, 0x44,
	0x45, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x45, 0x53, 0x43, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47,
	0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x41,
	0x53, 0x43, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x22, 0xa9, 0x01, 0x0a, 0x11, 0x4c,
	0x69, 0x73, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x12, 0x34, 0x0a, 0x0d, 0x75, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65,
	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x75, 0x73, 0x61, 0x67, 0x65, 0x2e,
	0x76, 0x31, 0x2e, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0c, 0x75, 0x73, 0x61, 0x67, 0x65, 0x45,
	0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x75, 0x73, 0x61,
	0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x5f, 0x75,
	0x73, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x69,
	0x74, 0x73, 0x55, 0x73, 0x65, 0x64, 0x22, 0x84, 0x03, 0x0a, 0x05, 0x55, 0x73, 0x61, 0x67, 0x65,
	0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64,
	0x12, 0x25, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
	0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62,
	0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,
	0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65,
	0x64, 0x69, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x63, 0x72, 0x65, 0x64,
	0x69, 0x74, 0x73, 0x12, 0x41, 0x0a, 0x0e, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65,
	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69,
	0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x75, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x55, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64,
	0x12, 0x32, 0x0a, 0x15, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x6e,
	0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x13, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e,
	0x63, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x72, 0x61, 0x66, 0x74, 0x18, 0x08, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x05, 0x64, 0x72, 0x61, 0x66, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65,
	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65,
	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x35, 0x0a, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x1b,
	0x0a, 0x17, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45,
	0x5f, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x4b,
	0x49, 0x4e, 0x44, 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x49, 0x43, 0x45, 0x10, 0x01, 0x22, 0x4d, 0x0a,
	0x14, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x73, 0x74, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x63, 0x65,
	0x6e, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x75, 0x73, 0x61,
	0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72,
	0x52, 0x0a, 0x63, 0x6f, 0x73, 0x74, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x4e, 0x0a, 0x15,
	0x53, 0x65, 0x74, 0x43, 0x6f, 0x73, 0x74, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x0b, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x63, 0x65,
	0x6e, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x75, 0x73, 0x61,
	0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72,
	0x52, 0x0a, 0x63, 0x6f, 0x73, 0x74, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x3a, 0x0a, 0x11,
	0x47, 0x65, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e,
	0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x74, 0x74, 0x72, 0x69,
	0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x2e, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x42,
	0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18,
	0x0a, 0x07, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52,
	0x07, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x22, 0x3d, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x43,
	0x6f, 0x73, 0x74, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x25, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62,
	0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x4e, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x43, 0x6f,
	0x73, 0x74, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x12, 0x35, 0x0a, 0x0b, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x75, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31,
	0x2e, 0x43, 0x6f, 0x73, 0x74, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x0a, 0x63, 0x6f, 0x73,
	0x74, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x8b, 0x03, 0x0a, 0x0a, 0x43, 0x6f, 0x73, 0x74,
	0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62,
	0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d,
	0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x25, 0x0a,
	0x0e, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4c,
	0x69, 0x6d, 0x69, 0x74, 0x12, 0x4f, 0x0a, 0x10, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f,
	0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24,
	0x2e, 0x75, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x43, 0x65,
	0x6e, 0x74, 0x65, 0x72, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61,
	0x74, 0x65, 0x67, 0x79, 0x52, 0x0f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72,
	0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x46, 0x0a, 0x11, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x62, 0x69,
	0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0f, 0x6e, 0x65,
	0x78, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4a, 0x0a,
	0x13, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x5f, 0x73,
	0x74, 0x61, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x11, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43,
	0x79, 0x63, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x4a, 0x0a, 0x0f, 0x42, 0x69, 0x6c,
	0x6c, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x1b, 0x0a, 0x17,
	0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x52, 0x41, 0x54, 0x45, 0x47, 0x59,
	0x5f, 0x53, 0x54, 0x52, 0x49, 0x50, 0x45, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x49, 0x4c,
	0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x52, 0x41, 0x54, 0x45, 0x47, 0x59, 0x5f, 0x4f, 0x54,
	0x48, 0x45, 0x52, 0x10, 0x01, 0x22, 0x13, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x65, 0x74, 0x55, 0x73,
	0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x52, 0x65,
	0x73, 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x22, 0x97, 0x01, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x55, 0x73, 0x61, 0x67, 0x65, 0x43, 0x72, 0x65,
	0x64, 0x69, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25,
	0x0a, 0x0e, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
	0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x12,
	0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x1c, 0x0a, 0x1a, 0x41, 0x64,
	0x64, 0x55, 0x73, 0x61, 0x67, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x4e, 0x6f, 0x74, 0x65,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xce, 0x04, 0x0a, 0x0c, 0x55, 0x73, 0x61,
	0x67, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x52, 0x0a, 0x0d, 0x47, 0x65, 0x74,
	0x43, 0x6f, 0x73, 0x74, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x2e, 0x75, 0x73, 0x61,
	0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x73, 0x74, 0x43, 0x65, 0x6e,
	0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x75, 0x73, 0x61,
	0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x73, 0x74, 0x43, 0x65, 0x6e,
	0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, 0x0a,
	0x0d, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x73, 0x74, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x1e,
	0x2e, 0x75, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x73,
	0x74, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f,
	0x2e, 0x75, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x73,
	0x74, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
	0x00, 0x12, 0x55, 0x0a, 0x0e, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x65, 0x55, 0x73,
	0x61, 0x67, 0x65, 0x12, 0x1f, 0x2e, 0x75, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52,
	0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x65, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x75, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x65, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x65,
	0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x2e, 0x75, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x75, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52,
	0x65, 0x73, 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65,
	0x12, 0x1a, 0x2e, 0x75, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74,
	0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x75,
	0x73, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x61, 0x67,
	0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0a, 0x47,
	0x65, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1b, 0x2e, 0x75, 0x73, 0x61, 0x67,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x75, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x55, 0x73, 0x61,
	0x67, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x12, 0x23, 0x2e, 0x75,
	0x73, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x61, 0x67, 0x65,
	0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x24, 0x2e, 0x75, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64,
	0x55, 0x73, 0x61, 0x67, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x2a, 0x5a, 0x28, 0x67, 0x69, 0x74,
	0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2d, 0x69,
	0x6f, 0x2f, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x2d, 0x61,
	0x70, 0x69, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_usage_v1_usage_proto_rawDescOnce sync.Once
	file_usage_v1_usage_proto_rawDescData = file_usage_v1_usage_proto_rawDesc
)

func file_usage_v1_usage_proto_rawDescGZIP() []byte {
	file_usage_v1_usage_proto_rawDescOnce.Do(func() {
		file_usage_v1_usage_proto_rawDescData = protoimpl.X.CompressGZIP(file_usage_v1_usage_proto_rawDescData)
	})
	return file_usage_v1_usage_proto_rawDescData
}

var file_usage_v1_usage_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
var file_usage_v1_usage_proto_msgTypes = make([]protoimpl.MessageInfo, 18)
var file_usage_v1_usage_proto_goTypes = []interface{}{
	(ListUsageRequest_Ordering)(0),     // 0: usage.v1.ListUsageRequest.Ordering
	(Usage_Kind)(0),                    // 1: usage.v1.Usage.Kind
	(CostCenter_BillingStrategy)(0),    // 2: usage.v1.CostCenter.BillingStrategy
	(*ReconcileUsageRequest)(nil),      // 3: usage.v1.ReconcileUsageRequest
	(*ReconcileUsageResponse)(nil),     // 4: usage.v1.ReconcileUsageResponse
	(*PaginatedRequest)(nil),           // 5: usage.v1.PaginatedRequest
	(*PaginatedResponse)(nil),          // 6: usage.v1.PaginatedResponse
	(*ListUsageRequest)(nil),           // 7: usage.v1.ListUsageRequest
	(*ListUsageResponse)(nil),          // 8: usage.v1.ListUsageResponse
	(*Usage)(nil),                      // 9: usage.v1.Usage
	(*SetCostCenterRequest)(nil),       // 10: usage.v1.SetCostCenterRequest
	(*SetCostCenterResponse)(nil),      // 11: usage.v1.SetCostCenterResponse
	(*GetBalanceRequest)(nil),          // 12: usage.v1.GetBalanceRequest
	(*GetBalanceResponse)(nil),         // 13: usage.v1.GetBalanceResponse
	(*GetCostCenterRequest)(nil),       // 14: usage.v1.GetCostCenterRequest
	(*GetCostCenterResponse)(nil),      // 15: usage.v1.GetCostCenterResponse
	(*CostCenter)(nil),                 // 16: usage.v1.CostCenter
	(*ResetUsageRequest)(nil),          // 17: usage.v1.ResetUsageRequest
	(*ResetUsageResponse)(nil),         // 18: usage.v1.ResetUsageResponse
	(*AddUsageCreditNoteRequest)(nil),  // 19: usage.v1.AddUsageCreditNoteRequest
	(*AddUsageCreditNoteResponse)(nil), // 20: usage.v1.AddUsageCreditNoteResponse
	(*timestamppb.Timestamp)(nil),      // 21: google.protobuf.Timestamp
}
var file_usage_v1_usage_proto_depIdxs = []int32{
	21, // 0: usage.v1.ReconcileUsageRequest.from:type_name -> google.protobuf.Timestamp
	21, // 1: usage.v1.ReconcileUsageRequest.to:type_name -> google.protobuf.Timestamp
	21, // 2: usage.v1.ListUsageRequest.from:type_name -> google.protobuf.Timestamp
	21, // 3: usage.v1.ListUsageRequest.to:type_name -> google.protobuf.Timestamp
	0,  // 4: usage.v1.ListUsageRequest.order:type_name -> usage.v1.ListUsageRequest.Ordering
	5,  // 5: usage.v1.ListUsageRequest.pagination:type_name -> usage.v1.PaginatedRequest
	9,  // 6: usage.v1.ListUsageResponse.usage_entries:type_name -> usage.v1.Usage
	6,  // 7: usage.v1.ListUsageResponse.pagination:type_name -> usage.v1.PaginatedResponse
	21, // 8: usage.v1.Usage.effective_time:type_name -> google.protobuf.Timestamp
	1,  // 9: usage.v1.Usage.kind:type_name -> usage.v1.Usage.Kind
	16, // 10: usage.v1.SetCostCenterRequest.cost_center:type_name -> usage.v1.CostCenter
	16, // 11: usage.v1.SetCostCenterResponse.cost_center:type_name -> usage.v1.CostCenter
	16, // 12: usage.v1.GetCostCenterResponse.cost_center:type_name -> usage.v1.CostCenter
	2,  // 13: usage.v1.CostCenter.billing_strategy:type_name -> usage.v1.CostCenter.BillingStrategy
	21, // 14: usage.v1.CostCenter.next_billing_time:type_name -> google.protobuf.Timestamp
	21, // 15: usage.v1.CostCenter.billing_cycle_start:type_name -> google.protobuf.Timestamp
	14, // 16: usage.v1.UsageService.GetCostCenter:input_type -> usage.v1.GetCostCenterRequest
	10, // 17: usage.v1.UsageService.SetCostCenter:input_type -> usage.v1.SetCostCenterRequest
	3,  // 18: usage.v1.UsageService.ReconcileUsage:input_type -> usage.v1.ReconcileUsageRequest
	17, // 19: usage.v1.UsageService.ResetUsage:input_type -> usage.v1.ResetUsageRequest
	7,  // 20: usage.v1.UsageService.ListUsage:input_type -> usage.v1.ListUsageRequest
	12, // 21: usage.v1.UsageService.GetBalance:input_type -> usage.v1.GetBalanceRequest
	19, // 22: usage.v1.UsageService.AddUsageCreditNote:input_type -> usage.v1.AddUsageCreditNoteRequest
	15, // 23: usage.v1.UsageService.GetCostCenter:output_type -> usage.v1.GetCostCenterResponse
	11, // 24: usage.v1.UsageService.SetCostCenter:output_type -> usage.v1.SetCostCenterResponse
	4,  // 25: usage.v1.UsageService.ReconcileUsage:output_type -> usage.v1.ReconcileUsageResponse
	18, // 26: usage.v1.UsageService.ResetUsage:output_type -> usage.v1.ResetUsageResponse
	8,  // 27: usage.v1.UsageService.ListUsage:output_type -> usage.v1.ListUsageResponse
	13, // 28: usage.v1.UsageService.GetBalance:output_type -> usage.v1.GetBalanceResponse
	20, // 29: usage.v1.UsageService.AddUsageCreditNote:output_type -> usage.v1.AddUsageCreditNoteResponse
	23, // [23:30] is the sub-list for method output_type
	16, // [16:23] is the sub-list for method input_type
	16, // [16:16] is the sub-list for extension type_name
	16, // [16:16] is the sub-list for extension extendee
	0,  // [0:16] is the sub-list for field type_name
}

func init() { file_usage_v1_usage_proto_init() }
func file_usage_v1_usage_proto_init() {
	if File_usage_v1_usage_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_usage_v1_usage_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReconcileUsageRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_usage_v1_usage_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReconcileUsageResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_usage_v1_usage_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PaginatedRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_usage_v1_usage_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PaginatedResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_usage_v1_usage_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListUsageRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_usage_v1_usage_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListUsageResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_usage_v1_usage_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Usage); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_usage_v1_usage_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SetCostCenterRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_usage_v1_usage_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SetCostCenterResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_usage_v1_usage_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetBalanceRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_usage_v1_usage_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetBalanceResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_usage_v1_usage_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetCostCenterRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_usage_v1_usage_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetCostCenterResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_usage_v1_usage_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CostCenter); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_usage_v1_usage_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResetUsageRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_usage_v1_usage_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResetUsageResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_usage_v1_usage_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AddUsageCreditNoteRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_usage_v1_usage_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AddUsageCreditNoteResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_usage_v1_usage_proto_rawDesc,
			NumEnums:      3,
			NumMessages:   18,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_usage_v1_usage_proto_goTypes,
		DependencyIndexes: file_usage_v1_usage_proto_depIdxs,
		EnumInfos:         file_usage_v1_usage_proto_enumTypes,
		MessageInfos:      file_usage_v1_usage_proto_msgTypes,
	}.Build()
	File_usage_v1_usage_proto = out.File
	file_usage_v1_usage_proto_rawDesc = nil
	file_usage_v1_usage_proto_goTypes = nil
	file_usage_v1_usage_proto_depIdxs = nil
}
