package quotapb

import "github.com/google/trillian/quota/etcd/quotapb"

Package quotapb contains definitions for quota API protos and RPC service. TODO(codingllama): Add a brief explanation of how the quota system works and example configurations.

Package quotapb is a reverse proxy.

It translates gRPC into RESTful JSON APIs.

Index

Variables

var Config_State_name = map[int32]string{
	0: "UNKNOWN_CONFIG_STATE",
	1: "ENABLED",
	2: "DISABLED",
}
var Config_State_value = map[string]int32{
	"UNKNOWN_CONFIG_STATE": 0,
	"ENABLED":              1,
	"DISABLED":             2,
}
var ListConfigsRequest_ListView_name = map[int32]string{
	0: "BASIC",
	1: "FULL",
}
var ListConfigsRequest_ListView_value = map[string]int32{
	"BASIC": 0,
	"FULL":  1,
}

Functions

func RegisterQuotaHandler

func RegisterQuotaHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error

RegisterQuotaHandler registers the http handlers for service Quota to "mux". The handlers forward requests to the grpc endpoint over "conn".

func RegisterQuotaHandlerClient

func RegisterQuotaHandlerClient(ctx context.Context, mux *runtime.ServeMux, client QuotaClient) error

RegisterQuotaHandlerClient registers the http handlers for service Quota to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "QuotaClient". Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "QuotaClient" doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in "QuotaClient" to call the correct interceptors.

func RegisterQuotaHandlerFromEndpoint

func RegisterQuotaHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error)

RegisterQuotaHandlerFromEndpoint is same as RegisterQuotaHandler but automatically dials to "endpoint" and closes the connection when "ctx" gets done.

func RegisterQuotaHandlerServer

func RegisterQuotaHandlerServer(ctx context.Context, mux *runtime.ServeMux, server QuotaServer) error

RegisterQuotaHandlerServer registers the http handlers for service Quota to "mux". UnaryRPC :call QuotaServer directly. StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906.

func RegisterQuotaServer

func RegisterQuotaServer(s *grpc.Server, srv QuotaServer)

Types

type Config

type Config struct {
	// Name of the config, eg, “quotas/trees/1234/read/config”.
	// Readonly.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// State of the config.
	State Config_State `protobuf:"varint,2,opt,name=state,proto3,enum=quotapb.Config_State" json:"state,omitempty"`
	// Max number of tokens available for the config.
	MaxTokens int64 `protobuf:"varint,3,opt,name=max_tokens,json=maxTokens,proto3" json:"max_tokens,omitempty"`
	// Replenishment strategy used by the config.
	//
	// Types that are valid to be assigned to ReplenishmentStrategy:
	//	*Config_SequencingBased
	//	*Config_TimeBased
	ReplenishmentStrategy isConfig_ReplenishmentStrategy `protobuf_oneof:"replenishment_strategy"`
	// Current number of tokens available for the config.
	// May be higher than max_tokens for DISABLED configs, which are considered to
	// have "infinite" tokens.
	// Readonly.
	CurrentTokens        int64    `protobuf:"varint,6,opt,name=current_tokens,json=currentTokens,proto3" json:"current_tokens,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

Configuration of a quota.

Quotas contain a certain number of tokens that get applied to their corresponding entities. Global quotas apply to all operations, tree and user quotas to certain trees and users, respectively.

Performing an operation costs a certain number of tokens (usually one). Once a quota has no more tokens available, requests that would subtract from it are denied with a resource_exhausted error.

Tokens may be replenished in two different ways: either by passage of time or sequencing progress. Time-based replenishment adds a fixed amount of tokens after a certain interval. Sequencing-based adds a token for each leaf processed by the sequencer. Sequencing-based replenishment may only be used with global and tree quotas.

A quota may be disabled or removed at any time. The effect is the same: a disabled or non-existing quota is considered infinite by the quota system. (Disabling is handy if you plan to re-enable a quota later on.)

func (*Config) Descriptor

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

func (*Config) GetCurrentTokens

func (m *Config) GetCurrentTokens() int64

func (*Config) GetMaxTokens

func (m *Config) GetMaxTokens() int64

func (*Config) GetName

func (m *Config) GetName() string

func (*Config) GetReplenishmentStrategy

func (m *Config) GetReplenishmentStrategy() isConfig_ReplenishmentStrategy

func (*Config) GetSequencingBased

func (m *Config) GetSequencingBased() *SequencingBasedStrategy

func (*Config) GetState

func (m *Config) GetState() Config_State

func (*Config) GetTimeBased

func (m *Config) GetTimeBased() *TimeBasedStrategy

func (*Config) ProtoMessage

func (*Config) ProtoMessage()

func (*Config) Reset

func (m *Config) Reset()

func (*Config) String

func (m *Config) String() string

func (*Config) XXX_DiscardUnknown

func (m *Config) XXX_DiscardUnknown()

func (*Config) XXX_Marshal

func (m *Config) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Config) XXX_Merge

func (m *Config) XXX_Merge(src proto.Message)

func (*Config) XXX_OneofWrappers

func (*Config) XXX_OneofWrappers() []interface{}

XXX_OneofWrappers is for the internal use of the proto package.

func (*Config) XXX_Size

func (m *Config) XXX_Size() int

func (*Config) XXX_Unmarshal

func (m *Config) XXX_Unmarshal(b []byte) error

type Config_SequencingBased

type Config_SequencingBased struct {
	SequencingBased *SequencingBasedStrategy `protobuf:"bytes,4,opt,name=sequencing_based,json=sequencingBased,proto3,oneof"`
}

type Config_State

type Config_State int32

Possible states of a quota configuration.

const (
	// Unknown quota state. Invalid.
	Config_UNKNOWN_CONFIG_STATE Config_State = 0
	// Quota is enabled.
	Config_ENABLED Config_State = 1
	// Quota is disabled (considered infinite).
	Config_DISABLED Config_State = 2
)

func (Config_State) EnumDescriptor

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

func (Config_State) String

func (x Config_State) String() string

type Config_TimeBased

type Config_TimeBased struct {
	TimeBased *TimeBasedStrategy `protobuf:"bytes,5,opt,name=time_based,json=timeBased,proto3,oneof"`
}

type CreateConfigRequest

type CreateConfigRequest struct {
	// Name of the config to create.
	// For example, "quotas/global/read/config" (global/read quota) or
	// "quotas/trees/1234/write/config" (write quota for tree 1234).
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Config to be created.
	Config               *Config  `protobuf:"bytes,2,opt,name=config,proto3" json:"config,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

CreateConfig request.

func (*CreateConfigRequest) Descriptor

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

func (*CreateConfigRequest) GetConfig

func (m *CreateConfigRequest) GetConfig() *Config

func (*CreateConfigRequest) GetName

func (m *CreateConfigRequest) GetName() string

func (*CreateConfigRequest) ProtoMessage

func (*CreateConfigRequest) ProtoMessage()

func (*CreateConfigRequest) Reset

func (m *CreateConfigRequest) Reset()

func (*CreateConfigRequest) String

func (m *CreateConfigRequest) String() string

func (*CreateConfigRequest) XXX_DiscardUnknown

func (m *CreateConfigRequest) XXX_DiscardUnknown()

func (*CreateConfigRequest) XXX_Marshal

func (m *CreateConfigRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*CreateConfigRequest) XXX_Merge

func (m *CreateConfigRequest) XXX_Merge(src proto.Message)

func (*CreateConfigRequest) XXX_Size

func (m *CreateConfigRequest) XXX_Size() int

func (*CreateConfigRequest) XXX_Unmarshal

func (m *CreateConfigRequest) XXX_Unmarshal(b []byte) error

type DeleteConfigRequest

type DeleteConfigRequest struct {
	// Name of the config to delete.
	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

DeleteConfig request.

func (*DeleteConfigRequest) Descriptor

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

func (*DeleteConfigRequest) GetName

func (m *DeleteConfigRequest) GetName() string

func (*DeleteConfigRequest) ProtoMessage

func (*DeleteConfigRequest) ProtoMessage()

func (*DeleteConfigRequest) Reset

func (m *DeleteConfigRequest) Reset()

func (*DeleteConfigRequest) String

func (m *DeleteConfigRequest) String() string

func (*DeleteConfigRequest) XXX_DiscardUnknown

func (m *DeleteConfigRequest) XXX_DiscardUnknown()

func (*DeleteConfigRequest) XXX_Marshal

func (m *DeleteConfigRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*DeleteConfigRequest) XXX_Merge

func (m *DeleteConfigRequest) XXX_Merge(src proto.Message)

func (*DeleteConfigRequest) XXX_Size

func (m *DeleteConfigRequest) XXX_Size() int

func (*DeleteConfigRequest) XXX_Unmarshal

func (m *DeleteConfigRequest) XXX_Unmarshal(b []byte) error

type GetConfigRequest

type GetConfigRequest struct {
	// Name of the config to retrieve.
	// For example, "quotas/global/read/config".
	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

GetConfig request.

func (*GetConfigRequest) Descriptor

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

func (*GetConfigRequest) GetName

func (m *GetConfigRequest) GetName() string

func (*GetConfigRequest) ProtoMessage

func (*GetConfigRequest) ProtoMessage()

func (*GetConfigRequest) Reset

func (m *GetConfigRequest) Reset()

func (*GetConfigRequest) String

func (m *GetConfigRequest) String() string

func (*GetConfigRequest) XXX_DiscardUnknown

func (m *GetConfigRequest) XXX_DiscardUnknown()

func (*GetConfigRequest) XXX_Marshal

func (m *GetConfigRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*GetConfigRequest) XXX_Merge

func (m *GetConfigRequest) XXX_Merge(src proto.Message)

func (*GetConfigRequest) XXX_Size

func (m *GetConfigRequest) XXX_Size() int

func (*GetConfigRequest) XXX_Unmarshal

func (m *GetConfigRequest) XXX_Unmarshal(b []byte) error

type ListConfigsRequest

type ListConfigsRequest struct {
	// Names of the config to retrieve. For example, "quotas/global/read/config".
	// If empty, all configs are listed.
	// Name components may be substituted by "-" to search for all variations of
	// that component. For example:
	// - "quotas/global/-/config" (both read and write global quotas)
	// - "quotas/trees/-/-/config" (all tree quotas)
	Names []string `protobuf:"bytes,1,rep,name=names,proto3" json:"names,omitempty"`
	// View specifies how much data to return.
	View                 ListConfigsRequest_ListView `protobuf:"varint,2,opt,name=view,proto3,enum=quotapb.ListConfigsRequest_ListView" json:"view,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                    `json:"-"`
	XXX_unrecognized     []byte                      `json:"-"`
	XXX_sizecache        int32                       `json:"-"`
}

ListConfig request.

func (*ListConfigsRequest) Descriptor

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

func (*ListConfigsRequest) GetNames

func (m *ListConfigsRequest) GetNames() []string

func (*ListConfigsRequest) GetView

func (*ListConfigsRequest) ProtoMessage

func (*ListConfigsRequest) ProtoMessage()

func (*ListConfigsRequest) Reset

func (m *ListConfigsRequest) Reset()

func (*ListConfigsRequest) String

func (m *ListConfigsRequest) String() string

func (*ListConfigsRequest) XXX_DiscardUnknown

func (m *ListConfigsRequest) XXX_DiscardUnknown()

func (*ListConfigsRequest) XXX_Marshal

func (m *ListConfigsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*ListConfigsRequest) XXX_Merge

func (m *ListConfigsRequest) XXX_Merge(src proto.Message)

func (*ListConfigsRequest) XXX_Size

func (m *ListConfigsRequest) XXX_Size() int

func (*ListConfigsRequest) XXX_Unmarshal

func (m *ListConfigsRequest) XXX_Unmarshal(b []byte) error

type ListConfigsRequest_ListView

type ListConfigsRequest_ListView int32

Possible views for ListConfig.

const (
	// Only the Config name gets returned.
	ListConfigsRequest_BASIC ListConfigsRequest_ListView = 0
	// Complete Config.
	ListConfigsRequest_FULL ListConfigsRequest_ListView = 1
)

func (ListConfigsRequest_ListView) EnumDescriptor

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

func (ListConfigsRequest_ListView) String

type ListConfigsResponse

type ListConfigsResponse struct {
	// Configs matching the request filter.
	Configs              []*Config `protobuf:"bytes,1,rep,name=configs,proto3" json:"configs,omitempty"`
	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
	XXX_unrecognized     []byte    `json:"-"`
	XXX_sizecache        int32     `json:"-"`
}

ListConfig response.

func (*ListConfigsResponse) Descriptor

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

func (*ListConfigsResponse) GetConfigs

func (m *ListConfigsResponse) GetConfigs() []*Config

func (*ListConfigsResponse) ProtoMessage

func (*ListConfigsResponse) ProtoMessage()

func (*ListConfigsResponse) Reset

func (m *ListConfigsResponse) Reset()

func (*ListConfigsResponse) String

func (m *ListConfigsResponse) String() string

func (*ListConfigsResponse) XXX_DiscardUnknown

func (m *ListConfigsResponse) XXX_DiscardUnknown()

func (*ListConfigsResponse) XXX_Marshal

func (m *ListConfigsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*ListConfigsResponse) XXX_Merge

func (m *ListConfigsResponse) XXX_Merge(src proto.Message)

func (*ListConfigsResponse) XXX_Size

func (m *ListConfigsResponse) XXX_Size() int

func (*ListConfigsResponse) XXX_Unmarshal

func (m *ListConfigsResponse) XXX_Unmarshal(b []byte) error

type QuotaClient

type QuotaClient interface {
	// Creates a new quota.
	CreateConfig(ctx context.Context, in *CreateConfigRequest, opts ...grpc.CallOption) (*Config, error)
	// Deletes an existing quota. Non-existing quotas are considered infinite by
	// the quota system.
	DeleteConfig(ctx context.Context, in *DeleteConfigRequest, opts ...grpc.CallOption) (*empty.Empty, error)
	// Retrieves a quota by name.
	GetConfig(ctx context.Context, in *GetConfigRequest, opts ...grpc.CallOption) (*Config, error)
	// Lists quotas according to the specified criteria.
	ListConfigs(ctx context.Context, in *ListConfigsRequest, opts ...grpc.CallOption) (*ListConfigsResponse, error)
	// Updates a quota.
	UpdateConfig(ctx context.Context, in *UpdateConfigRequest, opts ...grpc.CallOption) (*Config, error)
}

QuotaClient is the client API for Quota service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.

func NewQuotaClient

func NewQuotaClient(cc *grpc.ClientConn) QuotaClient

type QuotaServer

type QuotaServer interface {
	// Creates a new quota.
	CreateConfig(context.Context, *CreateConfigRequest) (*Config, error)
	// Deletes an existing quota. Non-existing quotas are considered infinite by
	// the quota system.
	DeleteConfig(context.Context, *DeleteConfigRequest) (*empty.Empty, error)
	// Retrieves a quota by name.
	GetConfig(context.Context, *GetConfigRequest) (*Config, error)
	// Lists quotas according to the specified criteria.
	ListConfigs(context.Context, *ListConfigsRequest) (*ListConfigsResponse, error)
	// Updates a quota.
	UpdateConfig(context.Context, *UpdateConfigRequest) (*Config, error)
}

QuotaServer is the server API for Quota service.

type SequencingBasedStrategy

type SequencingBasedStrategy struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

Sequencing-based replenishment strategy settings.

Only global/write and trees/write quotas may use sequencing-based replenishment.

func (*SequencingBasedStrategy) Descriptor

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

func (*SequencingBasedStrategy) ProtoMessage

func (*SequencingBasedStrategy) ProtoMessage()

func (*SequencingBasedStrategy) Reset

func (m *SequencingBasedStrategy) Reset()

func (*SequencingBasedStrategy) String

func (m *SequencingBasedStrategy) String() string

func (*SequencingBasedStrategy) XXX_DiscardUnknown

func (m *SequencingBasedStrategy) XXX_DiscardUnknown()

func (*SequencingBasedStrategy) XXX_Marshal

func (m *SequencingBasedStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*SequencingBasedStrategy) XXX_Merge

func (m *SequencingBasedStrategy) XXX_Merge(src proto.Message)

func (*SequencingBasedStrategy) XXX_Size

func (m *SequencingBasedStrategy) XXX_Size() int

func (*SequencingBasedStrategy) XXX_Unmarshal

func (m *SequencingBasedStrategy) XXX_Unmarshal(b []byte) error

type TimeBasedStrategy

type TimeBasedStrategy struct {
	// Number of tokens to replenish at every replenish_interval_seconds.
	TokensToReplenish int64 `protobuf:"varint,1,opt,name=tokens_to_replenish,json=tokensToReplenish,proto3" json:"tokens_to_replenish,omitempty"`
	// Interval at which tokens_to_replenish get replenished.
	ReplenishIntervalSeconds int64    `protobuf:"varint,2,opt,name=replenish_interval_seconds,json=replenishIntervalSeconds,proto3" json:"replenish_interval_seconds,omitempty"`
	XXX_NoUnkeyedLiteral     struct{} `json:"-"`
	XXX_unrecognized         []byte   `json:"-"`
	XXX_sizecache            int32    `json:"-"`
}

Time-based replenishment strategy settings.

func (*TimeBasedStrategy) Descriptor

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

func (*TimeBasedStrategy) GetReplenishIntervalSeconds

func (m *TimeBasedStrategy) GetReplenishIntervalSeconds() int64

func (*TimeBasedStrategy) GetTokensToReplenish

func (m *TimeBasedStrategy) GetTokensToReplenish() int64

func (*TimeBasedStrategy) ProtoMessage

func (*TimeBasedStrategy) ProtoMessage()

func (*TimeBasedStrategy) Reset

func (m *TimeBasedStrategy) Reset()

func (*TimeBasedStrategy) String

func (m *TimeBasedStrategy) String() string

func (*TimeBasedStrategy) XXX_DiscardUnknown

func (m *TimeBasedStrategy) XXX_DiscardUnknown()

func (*TimeBasedStrategy) XXX_Marshal

func (m *TimeBasedStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*TimeBasedStrategy) XXX_Merge

func (m *TimeBasedStrategy) XXX_Merge(src proto.Message)

func (*TimeBasedStrategy) XXX_Size

func (m *TimeBasedStrategy) XXX_Size() int

func (*TimeBasedStrategy) XXX_Unmarshal

func (m *TimeBasedStrategy) XXX_Unmarshal(b []byte) error

type UnimplementedQuotaServer

type UnimplementedQuotaServer struct {
}

UnimplementedQuotaServer can be embedded to have forward compatible implementations.

func (*UnimplementedQuotaServer) CreateConfig

func (*UnimplementedQuotaServer) DeleteConfig

func (*UnimplementedQuotaServer) GetConfig

func (*UnimplementedQuotaServer) ListConfigs

func (*UnimplementedQuotaServer) UpdateConfig

type UpdateConfigRequest

type UpdateConfigRequest struct {
	// Name of the config to update.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Config to update. Only the fields specified by update_mask need to be
	// filled.
	Config *Config `protobuf:"bytes,2,opt,name=config,proto3" json:"config,omitempty"`
	// Fields modified by the update request.
	// For example: "state" or "max_tokens".
	UpdateMask *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
	// If true the updated quota is reset, regardless of the update's contents.
	// A reset quota is replenished to its maximum number of tokens.
	ResetQuota           bool     `protobuf:"varint,4,opt,name=reset_quota,json=resetQuota,proto3" json:"reset_quota,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

Updates a quota config according to the update_mask provided.

Some config changes will cause the current number of tokens to be updated, as listed below:

A "full replenish", also called "reset", may be forced via the reset_quota parameter, regardless of any other changes. For convenience, reset only requests (name and reset_quota = true) are allowed.

func (*UpdateConfigRequest) Descriptor

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

func (*UpdateConfigRequest) GetConfig

func (m *UpdateConfigRequest) GetConfig() *Config

func (*UpdateConfigRequest) GetName

func (m *UpdateConfigRequest) GetName() string

func (*UpdateConfigRequest) GetResetQuota

func (m *UpdateConfigRequest) GetResetQuota() bool

func (*UpdateConfigRequest) GetUpdateMask

func (m *UpdateConfigRequest) GetUpdateMask() *field_mask.FieldMask

func (*UpdateConfigRequest) ProtoMessage

func (*UpdateConfigRequest) ProtoMessage()

func (*UpdateConfigRequest) Reset

func (m *UpdateConfigRequest) Reset()

func (*UpdateConfigRequest) String

func (m *UpdateConfigRequest) String() string

func (*UpdateConfigRequest) XXX_DiscardUnknown

func (m *UpdateConfigRequest) XXX_DiscardUnknown()

func (*UpdateConfigRequest) XXX_Marshal

func (m *UpdateConfigRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*UpdateConfigRequest) XXX_Merge

func (m *UpdateConfigRequest) XXX_Merge(src proto.Message)

func (*UpdateConfigRequest) XXX_Size

func (m *UpdateConfigRequest) XXX_Size() int

func (*UpdateConfigRequest) XXX_Unmarshal

func (m *UpdateConfigRequest) XXX_Unmarshal(b []byte) error

Source Files

doc.go gen.go quotapb.pb.go quotapb.pb.gw.go

Version
v1.3.6
Published
Jan 9, 2020
Platform
js/wasm
Imports
16 packages
Last checked
28 minutes ago

Tools for package owners.