backendpb

package
v0.0.0-...-87137bd Latest Latest
Warning

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

Go to latest
Published: Nov 8, 2024 License: AGPL-3.0 Imports: 39 Imported by: 0

Documentation

Overview

Package backendpb contains the protobuf structures for the backend API.

TODO(a.garipov): Move the generated code into a separate package.

Index

Constants

View Source
const (
	DNSService_GetDNSProfiles_FullMethodName         = "/DNSService/getDNSProfiles"
	DNSService_SaveDevicesBillingStat_FullMethodName = "/DNSService/saveDevicesBillingStat"
	DNSService_CreateDeviceByHumanId_FullMethodName  = "/DNSService/createDeviceByHumanId"
)
View Source
const (
	RemoteKVService_Get_FullMethodName = "/RemoteKVService/get"
	RemoteKVService_Set_FullMethodName = "/RemoteKVService/set"
)
View Source
const (
	RateLimitService_GetRateLimitSettings_FullMethodName = "/RateLimitService/getRateLimitSettings"
)

Variables

View Source
var (
	DeviceType_name = map[int32]string{
		0: "INVALID",
		1: "WINDOWS",
		2: "ANDROID",
		3: "MAC",
		4: "IOS",
		5: "LINUX",
		6: "ROUTER",
		7: "SMART_TV",
		8: "GAME_CONSOLE",
		9: "OTHER",
	}
	DeviceType_value = map[string]int32{
		"INVALID":      0,
		"WINDOWS":      1,
		"ANDROID":      2,
		"MAC":          3,
		"IOS":          4,
		"LINUX":        5,
		"ROUTER":       6,
		"SMART_TV":     7,
		"GAME_CONSOLE": 8,
		"OTHER":        9,
	}
)

Enum value maps for DeviceType.

View Source
var DNSService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "DNSService",
	HandlerType: (*DNSServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "createDeviceByHumanId",
			Handler:    _DNSService_CreateDeviceByHumanId_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "getDNSProfiles",
			Handler:       _DNSService_GetDNSProfiles_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "saveDevicesBillingStat",
			Handler:       _DNSService_SaveDevicesBillingStat_Handler,
			ClientStreams: true,
		},
	},
	Metadata: "dns.proto",
}

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

View Source
var RateLimitService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "RateLimitService",
	HandlerType: (*RateLimitServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "getRateLimitSettings",
			Handler:    _RateLimitService_GetRateLimitSettings_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "dns.proto",
}

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

View Source
var RemoteKVService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "RemoteKVService",
	HandlerType: (*RemoteKVServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "get",
			Handler:    _RemoteKVService_Get_Handler,
		},
		{
			MethodName: "set",
			Handler:    _RemoteKVService_Set_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "dns.proto",
}

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

Functions

func RegisterDNSServiceServer

func RegisterDNSServiceServer(s grpc.ServiceRegistrar, srv DNSServiceServer)

func RegisterRateLimitServiceServer

func RegisterRateLimitServiceServer(s grpc.ServiceRegistrar, srv RateLimitServiceServer)

func RegisterRemoteKVServiceServer

func RegisterRemoteKVServiceServer(s grpc.ServiceRegistrar, srv RemoteKVServiceServer)

Types

type AccessSettings

type AccessSettings struct {
	AllowlistCidr        []*CidrRange `protobuf:"bytes,1,rep,name=allowlist_cidr,json=allowlistCidr,proto3" json:"allowlist_cidr,omitempty"`
	BlocklistCidr        []*CidrRange `protobuf:"bytes,2,rep,name=blocklist_cidr,json=blocklistCidr,proto3" json:"blocklist_cidr,omitempty"`
	AllowlistAsn         []uint32     `protobuf:"varint,3,rep,packed,name=allowlist_asn,json=allowlistAsn,proto3" json:"allowlist_asn,omitempty"`
	BlocklistAsn         []uint32     `protobuf:"varint,4,rep,packed,name=blocklist_asn,json=blocklistAsn,proto3" json:"blocklist_asn,omitempty"`
	BlocklistDomainRules []string     `protobuf:"bytes,5,rep,name=blocklist_domain_rules,json=blocklistDomainRules,proto3" json:"blocklist_domain_rules,omitempty"`
	Enabled              bool         `protobuf:"varint,6,opt,name=enabled,proto3" json:"enabled,omitempty"`
	// contains filtered or unexported fields
}

func (*AccessSettings) Descriptor deprecated

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

Deprecated: Use AccessSettings.ProtoReflect.Descriptor instead.

func (*AccessSettings) GetAllowlistAsn

func (x *AccessSettings) GetAllowlistAsn() []uint32

func (*AccessSettings) GetAllowlistCidr

func (x *AccessSettings) GetAllowlistCidr() []*CidrRange

func (*AccessSettings) GetBlocklistAsn

func (x *AccessSettings) GetBlocklistAsn() []uint32

func (*AccessSettings) GetBlocklistCidr

func (x *AccessSettings) GetBlocklistCidr() []*CidrRange

func (*AccessSettings) GetBlocklistDomainRules

func (x *AccessSettings) GetBlocklistDomainRules() []string

func (*AccessSettings) GetEnabled

func (x *AccessSettings) GetEnabled() bool

func (*AccessSettings) ProtoMessage

func (*AccessSettings) ProtoMessage()

func (*AccessSettings) ProtoReflect

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

func (*AccessSettings) Reset

func (x *AccessSettings) Reset()

func (*AccessSettings) String

func (x *AccessSettings) String() string

type AuthenticationFailedError

type AuthenticationFailedError struct {
	Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
	// contains filtered or unexported fields
}

func (*AuthenticationFailedError) Descriptor deprecated

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

Deprecated: Use AuthenticationFailedError.ProtoReflect.Descriptor instead.

func (*AuthenticationFailedError) GetMessage

func (x *AuthenticationFailedError) GetMessage() string

func (*AuthenticationFailedError) ProtoMessage

func (*AuthenticationFailedError) ProtoMessage()

func (*AuthenticationFailedError) ProtoReflect

func (*AuthenticationFailedError) Reset

func (x *AuthenticationFailedError) Reset()

func (*AuthenticationFailedError) String

func (x *AuthenticationFailedError) String() string

type AuthenticationSettings

type AuthenticationSettings struct {
	DohAuthOnly bool `protobuf:"varint,1,opt,name=doh_auth_only,json=dohAuthOnly,proto3" json:"doh_auth_only,omitempty"`
	// Types that are assignable to DohPasswordHash:
	//
	//	*AuthenticationSettings_PasswordHashBcrypt
	DohPasswordHash isAuthenticationSettings_DohPasswordHash `protobuf_oneof:"doh_password_hash"`
	// contains filtered or unexported fields
}

func (*AuthenticationSettings) Descriptor deprecated

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

Deprecated: Use AuthenticationSettings.ProtoReflect.Descriptor instead.

func (*AuthenticationSettings) GetDohAuthOnly

func (x *AuthenticationSettings) GetDohAuthOnly() bool

func (*AuthenticationSettings) GetDohPasswordHash

func (m *AuthenticationSettings) GetDohPasswordHash() isAuthenticationSettings_DohPasswordHash

func (*AuthenticationSettings) GetPasswordHashBcrypt

func (x *AuthenticationSettings) GetPasswordHashBcrypt() []byte

func (*AuthenticationSettings) ProtoMessage

func (*AuthenticationSettings) ProtoMessage()

func (*AuthenticationSettings) ProtoReflect

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

func (*AuthenticationSettings) Reset

func (x *AuthenticationSettings) Reset()

func (*AuthenticationSettings) String

func (x *AuthenticationSettings) String() string

type AuthenticationSettings_PasswordHashBcrypt

type AuthenticationSettings_PasswordHashBcrypt struct {
	PasswordHashBcrypt []byte `protobuf:"bytes,2,opt,name=password_hash_bcrypt,json=passwordHashBcrypt,proto3,oneof"`
}

type BadRequestError

type BadRequestError struct {
	Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
	// contains filtered or unexported fields
}

func (*BadRequestError) Descriptor deprecated

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

Deprecated: Use BadRequestError.ProtoReflect.Descriptor instead.

func (*BadRequestError) GetMessage

func (x *BadRequestError) GetMessage() string

func (*BadRequestError) ProtoMessage

func (*BadRequestError) ProtoMessage()

func (*BadRequestError) ProtoReflect

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

func (*BadRequestError) Reset

func (x *BadRequestError) Reset()

func (*BadRequestError) String

func (x *BadRequestError) String() string

type BillStat

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

BillStat is the implementation of the billstat.Uploader interface that uploads the billing statistics to the business logic backend. It is safe for concurrent use.

TODO(a.garipov): Consider uniting with ProfileStorage into a single backendpb.Client.

func NewBillStat

func NewBillStat(c *BillStatConfig) (b *BillStat, err error)

NewBillStat creates a new billing statistics uploader. c must not be nil.

func (*BillStat) Upload

func (b *BillStat) Upload(ctx context.Context, records billstat.Records) (err error)

Upload implements the billstat.Uploader interface for *BillStat.

type BillStatConfig

type BillStatConfig struct {
	// ErrColl is the error collector that is used to collect critical and
	// non-critical errors.
	ErrColl errcoll.Interface

	// Metrics is used for the collection of the protobuf errors.
	Metrics Metrics

	// Endpoint is the backend API URL.  The scheme should be either "grpc" or
	// "grpcs".
	Endpoint *url.URL

	// APIKey is the API key used for authentication, if any.
	APIKey string
}

BillStatConfig is the configuration structure for the business logic backend billing statistics uploader.

type BlockingModeCustomIP

type BlockingModeCustomIP struct {
	Ipv4 []byte `protobuf:"bytes,1,opt,name=ipv4,proto3" json:"ipv4,omitempty"`
	Ipv6 []byte `protobuf:"bytes,2,opt,name=ipv6,proto3" json:"ipv6,omitempty"`
	// contains filtered or unexported fields
}

func (*BlockingModeCustomIP) Descriptor deprecated

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

Deprecated: Use BlockingModeCustomIP.ProtoReflect.Descriptor instead.

func (*BlockingModeCustomIP) GetIpv4

func (x *BlockingModeCustomIP) GetIpv4() []byte

func (*BlockingModeCustomIP) GetIpv6

func (x *BlockingModeCustomIP) GetIpv6() []byte

func (*BlockingModeCustomIP) ProtoMessage

func (*BlockingModeCustomIP) ProtoMessage()

func (*BlockingModeCustomIP) ProtoReflect

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

func (*BlockingModeCustomIP) Reset

func (x *BlockingModeCustomIP) Reset()

func (*BlockingModeCustomIP) String

func (x *BlockingModeCustomIP) String() string

type BlockingModeNXDOMAIN

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

func (*BlockingModeNXDOMAIN) Descriptor deprecated

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

Deprecated: Use BlockingModeNXDOMAIN.ProtoReflect.Descriptor instead.

func (*BlockingModeNXDOMAIN) ProtoMessage

func (*BlockingModeNXDOMAIN) ProtoMessage()

func (*BlockingModeNXDOMAIN) ProtoReflect

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

func (*BlockingModeNXDOMAIN) Reset

func (x *BlockingModeNXDOMAIN) Reset()

func (*BlockingModeNXDOMAIN) String

func (x *BlockingModeNXDOMAIN) String() string

type BlockingModeNullIP

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

func (*BlockingModeNullIP) Descriptor deprecated

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

Deprecated: Use BlockingModeNullIP.ProtoReflect.Descriptor instead.

func (*BlockingModeNullIP) ProtoMessage

func (*BlockingModeNullIP) ProtoMessage()

func (*BlockingModeNullIP) ProtoReflect

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

func (*BlockingModeNullIP) Reset

func (x *BlockingModeNullIP) Reset()

func (*BlockingModeNullIP) String

func (x *BlockingModeNullIP) String() string

type BlockingModeREFUSED

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

func (*BlockingModeREFUSED) Descriptor deprecated

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

Deprecated: Use BlockingModeREFUSED.ProtoReflect.Descriptor instead.

func (*BlockingModeREFUSED) ProtoMessage

func (*BlockingModeREFUSED) ProtoMessage()

func (*BlockingModeREFUSED) ProtoReflect

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

func (*BlockingModeREFUSED) Reset

func (x *BlockingModeREFUSED) Reset()

func (*BlockingModeREFUSED) String

func (x *BlockingModeREFUSED) String() string

type CidrRange

type CidrRange struct {
	Address []byte `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	Prefix  uint32 `protobuf:"varint,2,opt,name=prefix,proto3" json:"prefix,omitempty"`
	// contains filtered or unexported fields
}

func (*CidrRange) Descriptor deprecated

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

Deprecated: Use CidrRange.ProtoReflect.Descriptor instead.

func (*CidrRange) GetAddress

func (x *CidrRange) GetAddress() []byte

func (*CidrRange) GetPrefix

func (x *CidrRange) GetPrefix() uint32

func (*CidrRange) ProtoMessage

func (*CidrRange) ProtoMessage()

func (*CidrRange) ProtoReflect

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

func (*CidrRange) Reset

func (x *CidrRange) Reset()

func (*CidrRange) String

func (x *CidrRange) String() string

type CreateDeviceRequest

type CreateDeviceRequest struct {
	DnsId      string     `protobuf:"bytes,1,opt,name=dns_id,json=dnsId,proto3" json:"dns_id,omitempty"`
	HumanId    string     `protobuf:"bytes,2,opt,name=human_id,json=humanId,proto3" json:"human_id,omitempty"`
	DeviceType DeviceType `protobuf:"varint,3,opt,name=device_type,json=deviceType,proto3,enum=DeviceType" json:"device_type,omitempty"`
	// contains filtered or unexported fields
}

func (*CreateDeviceRequest) Descriptor deprecated

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

Deprecated: Use CreateDeviceRequest.ProtoReflect.Descriptor instead.

func (*CreateDeviceRequest) GetDeviceType

func (x *CreateDeviceRequest) GetDeviceType() DeviceType

func (*CreateDeviceRequest) GetDnsId

func (x *CreateDeviceRequest) GetDnsId() string

func (*CreateDeviceRequest) GetHumanId

func (x *CreateDeviceRequest) GetHumanId() string

func (*CreateDeviceRequest) ProtoMessage

func (*CreateDeviceRequest) ProtoMessage()

func (*CreateDeviceRequest) ProtoReflect

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

func (*CreateDeviceRequest) Reset

func (x *CreateDeviceRequest) Reset()

func (*CreateDeviceRequest) String

func (x *CreateDeviceRequest) String() string

type CreateDeviceResponse

type CreateDeviceResponse struct {
	Device *DeviceSettings `protobuf:"bytes,1,opt,name=device,proto3" json:"device,omitempty"`
	// contains filtered or unexported fields
}

func (*CreateDeviceResponse) Descriptor deprecated

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

Deprecated: Use CreateDeviceResponse.ProtoReflect.Descriptor instead.

func (*CreateDeviceResponse) GetDevice

func (x *CreateDeviceResponse) GetDevice() *DeviceSettings

func (*CreateDeviceResponse) ProtoMessage

func (*CreateDeviceResponse) ProtoMessage()

func (*CreateDeviceResponse) ProtoReflect

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

func (*CreateDeviceResponse) Reset

func (x *CreateDeviceResponse) Reset()

func (*CreateDeviceResponse) String

func (x *CreateDeviceResponse) String() string

type DNSProfile

type DNSProfile struct {
	DnsId               string                `protobuf:"bytes,1,opt,name=dns_id,json=dnsId,proto3" json:"dns_id,omitempty"`
	FilteringEnabled    bool                  `protobuf:"varint,2,opt,name=filtering_enabled,json=filteringEnabled,proto3" json:"filtering_enabled,omitempty"`
	QueryLogEnabled     bool                  `protobuf:"varint,3,opt,name=query_log_enabled,json=queryLogEnabled,proto3" json:"query_log_enabled,omitempty"`
	Deleted             bool                  `protobuf:"varint,4,opt,name=deleted,proto3" json:"deleted,omitempty"`
	SafeBrowsing        *SafeBrowsingSettings `protobuf:"bytes,5,opt,name=safe_browsing,json=safeBrowsing,proto3" json:"safe_browsing,omitempty"`
	Parental            *ParentalSettings     `protobuf:"bytes,6,opt,name=parental,proto3" json:"parental,omitempty"`
	RuleLists           *RuleListsSettings    `protobuf:"bytes,7,opt,name=rule_lists,json=ruleLists,proto3" json:"rule_lists,omitempty"`
	Devices             []*DeviceSettings     `protobuf:"bytes,8,rep,name=devices,proto3" json:"devices,omitempty"`
	CustomRules         []string              `protobuf:"bytes,9,rep,name=custom_rules,json=customRules,proto3" json:"custom_rules,omitempty"`
	FilteredResponseTtl *durationpb.Duration  `protobuf:"bytes,10,opt,name=filtered_response_ttl,json=filteredResponseTtl,proto3" json:"filtered_response_ttl,omitempty"`
	BlockPrivateRelay   bool                  `protobuf:"varint,11,opt,name=block_private_relay,json=blockPrivateRelay,proto3" json:"block_private_relay,omitempty"`
	BlockFirefoxCanary  bool                  `protobuf:"varint,12,opt,name=block_firefox_canary,json=blockFirefoxCanary,proto3" json:"block_firefox_canary,omitempty"`
	// Types that are assignable to BlockingMode:
	//
	//	*DNSProfile_BlockingModeCustomIp
	//	*DNSProfile_BlockingModeNxdomain
	//	*DNSProfile_BlockingModeNullIp
	//	*DNSProfile_BlockingModeRefused
	BlockingMode       isDNSProfile_BlockingMode `protobuf_oneof:"blocking_mode"`
	IpLogEnabled       bool                      `protobuf:"varint,17,opt,name=ip_log_enabled,json=ipLogEnabled,proto3" json:"ip_log_enabled,omitempty"`
	Access             *AccessSettings           `protobuf:"bytes,18,opt,name=access,proto3" json:"access,omitempty"`
	AutoDevicesEnabled bool                      `protobuf:"varint,19,opt,name=auto_devices_enabled,json=autoDevicesEnabled,proto3" json:"auto_devices_enabled,omitempty"`
	RateLimit          *RateLimitSettings        `protobuf:"bytes,20,opt,name=rate_limit,json=rateLimit,proto3" json:"rate_limit,omitempty"`
	// contains filtered or unexported fields
}

func (*DNSProfile) Descriptor deprecated

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

Deprecated: Use DNSProfile.ProtoReflect.Descriptor instead.

func (*DNSProfile) GetAccess

func (x *DNSProfile) GetAccess() *AccessSettings

func (*DNSProfile) GetAutoDevicesEnabled

func (x *DNSProfile) GetAutoDevicesEnabled() bool

func (*DNSProfile) GetBlockFirefoxCanary

func (x *DNSProfile) GetBlockFirefoxCanary() bool

func (*DNSProfile) GetBlockPrivateRelay

func (x *DNSProfile) GetBlockPrivateRelay() bool

func (*DNSProfile) GetBlockingMode

func (m *DNSProfile) GetBlockingMode() isDNSProfile_BlockingMode

func (*DNSProfile) GetBlockingModeCustomIp

func (x *DNSProfile) GetBlockingModeCustomIp() *BlockingModeCustomIP

func (*DNSProfile) GetBlockingModeNullIp

func (x *DNSProfile) GetBlockingModeNullIp() *BlockingModeNullIP

func (*DNSProfile) GetBlockingModeNxdomain

func (x *DNSProfile) GetBlockingModeNxdomain() *BlockingModeNXDOMAIN

func (*DNSProfile) GetBlockingModeRefused

func (x *DNSProfile) GetBlockingModeRefused() *BlockingModeREFUSED

func (*DNSProfile) GetCustomRules

func (x *DNSProfile) GetCustomRules() []string

func (*DNSProfile) GetDeleted

func (x *DNSProfile) GetDeleted() bool

func (*DNSProfile) GetDevices

func (x *DNSProfile) GetDevices() []*DeviceSettings

func (*DNSProfile) GetDnsId

func (x *DNSProfile) GetDnsId() string

func (*DNSProfile) GetFilteredResponseTtl

func (x *DNSProfile) GetFilteredResponseTtl() *durationpb.Duration

func (*DNSProfile) GetFilteringEnabled

func (x *DNSProfile) GetFilteringEnabled() bool

func (*DNSProfile) GetIpLogEnabled

func (x *DNSProfile) GetIpLogEnabled() bool

func (*DNSProfile) GetParental

func (x *DNSProfile) GetParental() *ParentalSettings

func (*DNSProfile) GetQueryLogEnabled

func (x *DNSProfile) GetQueryLogEnabled() bool

func (*DNSProfile) GetRateLimit

func (x *DNSProfile) GetRateLimit() *RateLimitSettings

func (*DNSProfile) GetRuleLists

func (x *DNSProfile) GetRuleLists() *RuleListsSettings

func (*DNSProfile) GetSafeBrowsing

func (x *DNSProfile) GetSafeBrowsing() *SafeBrowsingSettings

func (*DNSProfile) ProtoMessage

func (*DNSProfile) ProtoMessage()

func (*DNSProfile) ProtoReflect

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

func (*DNSProfile) Reset

func (x *DNSProfile) Reset()

func (*DNSProfile) String

func (x *DNSProfile) String() string

type DNSProfile_BlockingModeCustomIp

type DNSProfile_BlockingModeCustomIp struct {
	BlockingModeCustomIp *BlockingModeCustomIP `protobuf:"bytes,13,opt,name=blocking_mode_custom_ip,json=blockingModeCustomIp,proto3,oneof"`
}

type DNSProfile_BlockingModeNullIp

type DNSProfile_BlockingModeNullIp struct {
	BlockingModeNullIp *BlockingModeNullIP `protobuf:"bytes,15,opt,name=blocking_mode_null_ip,json=blockingModeNullIp,proto3,oneof"`
}

type DNSProfile_BlockingModeNxdomain

type DNSProfile_BlockingModeNxdomain struct {
	BlockingModeNxdomain *BlockingModeNXDOMAIN `protobuf:"bytes,14,opt,name=blocking_mode_nxdomain,json=blockingModeNxdomain,proto3,oneof"`
}

type DNSProfile_BlockingModeRefused

type DNSProfile_BlockingModeRefused struct {
	BlockingModeRefused *BlockingModeREFUSED `protobuf:"bytes,16,opt,name=blocking_mode_refused,json=blockingModeRefused,proto3,oneof"`
}

type DNSProfilesRequest

type DNSProfilesRequest struct {
	SyncTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=sync_time,json=syncTime,proto3" json:"sync_time,omitempty"`
	// contains filtered or unexported fields
}

func (*DNSProfilesRequest) Descriptor deprecated

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

Deprecated: Use DNSProfilesRequest.ProtoReflect.Descriptor instead.

func (*DNSProfilesRequest) GetSyncTime

func (x *DNSProfilesRequest) GetSyncTime() *timestamppb.Timestamp

func (*DNSProfilesRequest) ProtoMessage

func (*DNSProfilesRequest) ProtoMessage()

func (*DNSProfilesRequest) ProtoReflect

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

func (*DNSProfilesRequest) Reset

func (x *DNSProfilesRequest) Reset()

func (*DNSProfilesRequest) String

func (x *DNSProfilesRequest) String() string

type DNSServiceClient

type DNSServiceClient interface {
	// Gets DNS profiles.
	//
	// Field "sync_time" in DNSProfilesRequest - pass to return the latest updates after this time moment.
	//
	// The trailers headers will include a "sync_time", given in milliseconds,
	// that should be used for subsequent incremental DNS profile synchronization requests.
	//
	// This method may return the following errors:
	// - RateLimitedError: If too many "full sync" concurrent requests are made.
	// - AuthenticationFailedError: If the authentication failed.
	GetDNSProfiles(ctx context.Context, in *DNSProfilesRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[DNSProfile], error)
	// Stores devices activity.
	//
	// This method may return the following errors:
	// - AuthenticationFailedError: If the authentication failed.
	SaveDevicesBillingStat(ctx context.Context, opts ...grpc.CallOption) (grpc.ClientStreamingClient[DeviceBillingStat, emptypb.Empty], error)
	// Create device by "human_id".
	//
	// This method may return the following errors:
	// - RateLimitedError: If the request was made too frequently and the client must wait before retrying.
	// - DeviceQuotaExceededError: If the client has exceeded its quota for creating devices.
	// - BadRequestError: If the request is invalid: DNS server does not exist, creation of auto-devices is disabled or human_id validation failed.
	// - AuthenticationFailedError: If the authentication failed.
	CreateDeviceByHumanId(ctx context.Context, in *CreateDeviceRequest, opts ...grpc.CallOption) (*CreateDeviceResponse, error)
}

DNSServiceClient is the client API for DNSService service.

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

func NewDNSServiceClient

func NewDNSServiceClient(cc grpc.ClientConnInterface) DNSServiceClient

type DNSServiceServer

type DNSServiceServer interface {
	// Gets DNS profiles.
	//
	// Field "sync_time" in DNSProfilesRequest - pass to return the latest updates after this time moment.
	//
	// The trailers headers will include a "sync_time", given in milliseconds,
	// that should be used for subsequent incremental DNS profile synchronization requests.
	//
	// This method may return the following errors:
	// - RateLimitedError: If too many "full sync" concurrent requests are made.
	// - AuthenticationFailedError: If the authentication failed.
	GetDNSProfiles(*DNSProfilesRequest, grpc.ServerStreamingServer[DNSProfile]) error
	// Stores devices activity.
	//
	// This method may return the following errors:
	// - AuthenticationFailedError: If the authentication failed.
	SaveDevicesBillingStat(grpc.ClientStreamingServer[DeviceBillingStat, emptypb.Empty]) error
	// Create device by "human_id".
	//
	// This method may return the following errors:
	// - RateLimitedError: If the request was made too frequently and the client must wait before retrying.
	// - DeviceQuotaExceededError: If the client has exceeded its quota for creating devices.
	// - BadRequestError: If the request is invalid: DNS server does not exist, creation of auto-devices is disabled or human_id validation failed.
	// - AuthenticationFailedError: If the authentication failed.
	CreateDeviceByHumanId(context.Context, *CreateDeviceRequest) (*CreateDeviceResponse, error)
	// contains filtered or unexported methods
}

DNSServiceServer is the server API for DNSService service. All implementations must embed UnimplementedDNSServiceServer for forward compatibility.

type DNSService_GetDNSProfilesClient

type DNSService_GetDNSProfilesClient = grpc.ServerStreamingClient[DNSProfile]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type DNSService_GetDNSProfilesServer

type DNSService_GetDNSProfilesServer = grpc.ServerStreamingServer[DNSProfile]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type DNSService_SaveDevicesBillingStatClient

type DNSService_SaveDevicesBillingStatClient = grpc.ClientStreamingClient[DeviceBillingStat, emptypb.Empty]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type DNSService_SaveDevicesBillingStatServer

type DNSService_SaveDevicesBillingStatServer = grpc.ClientStreamingServer[DeviceBillingStat, emptypb.Empty]

This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.

type DayRange

type DayRange struct {
	Start *durationpb.Duration `protobuf:"bytes,1,opt,name=start,proto3" json:"start,omitempty"`
	End   *durationpb.Duration `protobuf:"bytes,2,opt,name=end,proto3" json:"end,omitempty"`
	// contains filtered or unexported fields
}

func (*DayRange) Descriptor deprecated

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

Deprecated: Use DayRange.ProtoReflect.Descriptor instead.

func (*DayRange) GetEnd

func (x *DayRange) GetEnd() *durationpb.Duration

func (*DayRange) GetStart

func (x *DayRange) GetStart() *durationpb.Duration

func (*DayRange) ProtoMessage

func (*DayRange) ProtoMessage()

func (*DayRange) ProtoReflect

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

func (*DayRange) Reset

func (x *DayRange) Reset()

func (*DayRange) String

func (x *DayRange) String() string

type DeviceBillingStat

type DeviceBillingStat struct {
	LastActivityTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=last_activity_time,json=lastActivityTime,proto3" json:"last_activity_time,omitempty"`
	DeviceId         string                 `protobuf:"bytes,2,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
	ClientCountry    string                 `protobuf:"bytes,3,opt,name=client_country,json=clientCountry,proto3" json:"client_country,omitempty"`
	// Protocol type. Possible values see here: https://bit.adguard.com/projects/DNS/repos/dns-server/browse#ql-properties
	Proto   uint32 `protobuf:"varint,4,opt,name=proto,proto3" json:"proto,omitempty"`
	Asn     uint32 `protobuf:"varint,5,opt,name=asn,proto3" json:"asn,omitempty"`
	Queries uint32 `protobuf:"varint,6,opt,name=queries,proto3" json:"queries,omitempty"`
	// contains filtered or unexported fields
}

func (*DeviceBillingStat) Descriptor deprecated

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

Deprecated: Use DeviceBillingStat.ProtoReflect.Descriptor instead.

func (*DeviceBillingStat) GetAsn

func (x *DeviceBillingStat) GetAsn() uint32

func (*DeviceBillingStat) GetClientCountry

func (x *DeviceBillingStat) GetClientCountry() string

func (*DeviceBillingStat) GetDeviceId

func (x *DeviceBillingStat) GetDeviceId() string

func (*DeviceBillingStat) GetLastActivityTime

func (x *DeviceBillingStat) GetLastActivityTime() *timestamppb.Timestamp

func (*DeviceBillingStat) GetProto

func (x *DeviceBillingStat) GetProto() uint32

func (*DeviceBillingStat) GetQueries

func (x *DeviceBillingStat) GetQueries() uint32

func (*DeviceBillingStat) ProtoMessage

func (*DeviceBillingStat) ProtoMessage()

func (*DeviceBillingStat) ProtoReflect

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

func (*DeviceBillingStat) Reset

func (x *DeviceBillingStat) Reset()

func (*DeviceBillingStat) String

func (x *DeviceBillingStat) String() string

type DeviceQuotaExceededError

type DeviceQuotaExceededError struct {
	Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
	// contains filtered or unexported fields
}

func (*DeviceQuotaExceededError) Descriptor deprecated

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

Deprecated: Use DeviceQuotaExceededError.ProtoReflect.Descriptor instead.

func (*DeviceQuotaExceededError) GetMessage

func (x *DeviceQuotaExceededError) GetMessage() string

func (*DeviceQuotaExceededError) ProtoMessage

func (*DeviceQuotaExceededError) ProtoMessage()

func (*DeviceQuotaExceededError) ProtoReflect

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

func (*DeviceQuotaExceededError) Reset

func (x *DeviceQuotaExceededError) Reset()

func (*DeviceQuotaExceededError) String

func (x *DeviceQuotaExceededError) String() string

type DeviceSettings

type DeviceSettings struct {
	Id               string                  `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Name             string                  `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	FilteringEnabled bool                    `protobuf:"varint,3,opt,name=filtering_enabled,json=filteringEnabled,proto3" json:"filtering_enabled,omitempty"`
	LinkedIp         []byte                  `protobuf:"bytes,4,opt,name=linked_ip,json=linkedIp,proto3" json:"linked_ip,omitempty"`
	DedicatedIps     [][]byte                `protobuf:"bytes,5,rep,name=dedicated_ips,json=dedicatedIps,proto3" json:"dedicated_ips,omitempty"`
	Authentication   *AuthenticationSettings `protobuf:"bytes,6,opt,name=authentication,proto3" json:"authentication,omitempty"`
	// Value in lower case. Will be empty for "ordinary" devices and non-empty for "automatically" created devices.
	HumanIdLower string `protobuf:"bytes,7,opt,name=human_id_lower,json=humanIdLower,proto3" json:"human_id_lower,omitempty"`
	// contains filtered or unexported fields
}

func (*DeviceSettings) Descriptor deprecated

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

Deprecated: Use DeviceSettings.ProtoReflect.Descriptor instead.

func (*DeviceSettings) GetAuthentication

func (x *DeviceSettings) GetAuthentication() *AuthenticationSettings

func (*DeviceSettings) GetDedicatedIps

func (x *DeviceSettings) GetDedicatedIps() [][]byte

func (*DeviceSettings) GetFilteringEnabled

func (x *DeviceSettings) GetFilteringEnabled() bool

func (*DeviceSettings) GetHumanIdLower

func (x *DeviceSettings) GetHumanIdLower() string

func (*DeviceSettings) GetId

func (x *DeviceSettings) GetId() string

func (*DeviceSettings) GetLinkedIp

func (x *DeviceSettings) GetLinkedIp() []byte

func (*DeviceSettings) GetName

func (x *DeviceSettings) GetName() string

func (*DeviceSettings) ProtoMessage

func (*DeviceSettings) ProtoMessage()

func (*DeviceSettings) ProtoReflect

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

func (*DeviceSettings) Reset

func (x *DeviceSettings) Reset()

func (*DeviceSettings) String

func (x *DeviceSettings) String() string

type DeviceType

type DeviceType int32
const (
	DeviceType_INVALID      DeviceType = 0
	DeviceType_WINDOWS      DeviceType = 1
	DeviceType_ANDROID      DeviceType = 2
	DeviceType_MAC          DeviceType = 3
	DeviceType_IOS          DeviceType = 4
	DeviceType_LINUX        DeviceType = 5
	DeviceType_ROUTER       DeviceType = 6
	DeviceType_SMART_TV     DeviceType = 7
	DeviceType_GAME_CONSOLE DeviceType = 8
	DeviceType_OTHER        DeviceType = 9
)

func (DeviceType) Descriptor

func (DeviceType) Descriptor() protoreflect.EnumDescriptor

func (DeviceType) Enum

func (x DeviceType) Enum() *DeviceType

func (DeviceType) EnumDescriptor deprecated

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

Deprecated: Use DeviceType.Descriptor instead.

func (DeviceType) Number

func (x DeviceType) Number() protoreflect.EnumNumber

func (DeviceType) String

func (x DeviceType) String() string

func (DeviceType) Type

type EmptyMetrics

type EmptyMetrics struct{}

EmptyMetrics is the implementation of the Metrics interface that does nothing.

func (EmptyMetrics) IncrementGRPCErrorCount

func (EmptyMetrics) IncrementGRPCErrorCount(_ context.Context, errType GRPCError)

IncrementGRPCErrorCount implements the Metrics interface for EmptyMetrics.

func (EmptyMetrics) IncrementInvalidDevicesCount

func (EmptyMetrics) IncrementInvalidDevicesCount(_ context.Context)

IncrementInvalidDevicesCount implements the Metrics interface for EmptyMetrics.

func (EmptyMetrics) UpdateStats

func (EmptyMetrics) UpdateStats(_ context.Context, _, _ time.Duration)

UpdateStats implements the Metrics interface for EmptyMetrics.

type GRPCError

type GRPCError = string

GRPCError is a type alias for string that contains the gRPC error type.

TODO(s.chzhen): Rewrite as soon as the import cycle is resolved.

const (
	GRPCErrAuthentication GRPCError = "auth"
	GRPCErrBadRequest     GRPCError = "bad_req"
	GRPCErrDeviceQuota    GRPCError = "dev_quota"
	GRPCErrOther          GRPCError = "other"
	GRPCErrRateLimit      GRPCError = "rate_limit"
	GRPCErrTimeout        GRPCError = "timeout"
)

gRPC errors of GRPCError type.

type Metrics

type Metrics interface {
	// IncrementGRPCErrorCount increments the gRPC error count of errType.
	// errType must be one of GRPCError values.
	IncrementGRPCErrorCount(ctx context.Context, errType GRPCError)

	// IncrementInvalidDevicesCount increments the number of invalid devices.
	IncrementInvalidDevicesCount(ctx context.Context)

	// UpdateStats updates profile receiving and decoding statistics.
	UpdateStats(ctx context.Context, avgRecv, avgDec time.Duration)
}

Metrics is an interface that is used for the collection of the protobuf errors statistics.

type ParentalSettings

type ParentalSettings struct {
	Enabled           bool              `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	BlockAdult        bool              `protobuf:"varint,2,opt,name=block_adult,json=blockAdult,proto3" json:"block_adult,omitempty"`
	GeneralSafeSearch bool              `protobuf:"varint,3,opt,name=general_safe_search,json=generalSafeSearch,proto3" json:"general_safe_search,omitempty"`
	YoutubeSafeSearch bool              `protobuf:"varint,4,opt,name=youtube_safe_search,json=youtubeSafeSearch,proto3" json:"youtube_safe_search,omitempty"`
	BlockedServices   []string          `protobuf:"bytes,5,rep,name=blocked_services,json=blockedServices,proto3" json:"blocked_services,omitempty"`
	Schedule          *ScheduleSettings `protobuf:"bytes,6,opt,name=schedule,proto3" json:"schedule,omitempty"`
	// contains filtered or unexported fields
}

func (*ParentalSettings) Descriptor deprecated

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

Deprecated: Use ParentalSettings.ProtoReflect.Descriptor instead.

func (*ParentalSettings) GetBlockAdult

func (x *ParentalSettings) GetBlockAdult() bool

func (*ParentalSettings) GetBlockedServices

func (x *ParentalSettings) GetBlockedServices() []string

func (*ParentalSettings) GetEnabled

func (x *ParentalSettings) GetEnabled() bool

func (*ParentalSettings) GetGeneralSafeSearch

func (x *ParentalSettings) GetGeneralSafeSearch() bool

func (*ParentalSettings) GetSchedule

func (x *ParentalSettings) GetSchedule() *ScheduleSettings

func (*ParentalSettings) GetYoutubeSafeSearch

func (x *ParentalSettings) GetYoutubeSafeSearch() bool

func (*ParentalSettings) ProtoMessage

func (*ParentalSettings) ProtoMessage()

func (*ParentalSettings) ProtoReflect

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

func (*ParentalSettings) Reset

func (x *ParentalSettings) Reset()

func (*ParentalSettings) String

func (x *ParentalSettings) String() string

type ProfileStorage

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

ProfileStorage is the implementation of the profiledb.Storage interface that retrieves the profile and device information from the business logic backend. It is safe for concurrent use.

func NewProfileStorage

func NewProfileStorage(c *ProfileStorageConfig) (s *ProfileStorage, err error)

NewProfileStorage returns a new ProfileStorage that retrieves information from the business logic backend.

func (*ProfileStorage) CreateAutoDevice

CreateAutoDevice implements the [profile.Storage] interface for *ProfileStorage.

func (*ProfileStorage) Profiles

Profiles implements the profiledb.Storage interface for *ProfileStorage.

type ProfileStorageConfig

type ProfileStorageConfig struct {
	// BindSet is the subnet set created from DNS servers listening addresses.
	// It must not be nil.
	BindSet netutil.SubnetSet

	// ErrColl is the error collector that is used to collect critical and
	// non-critical errors.  It must not be nil.
	ErrColl errcoll.Interface

	// Logger is used as the base logger for the profile storage.  It must not
	// be nil.
	Logger *slog.Logger

	// Metrics is used for the collection of the protobuf errors.
	Metrics Metrics

	// Endpoint is the backend API URL.  The scheme should be either "grpc" or
	// "grpcs".  It must not be nil.
	Endpoint *url.URL

	// APIKey is the API key used for authentication, if any.  If empty, no
	// authentication is performed.
	APIKey string

	// ResponseSizeEstimate is the estimate of the size of one DNS response for
	// the purposes of custom ratelimiting.  Responses over this estimate are
	// counted as several responses.
	ResponseSizeEstimate datasize.ByteSize

	// MaxProfilesSize is the maximum response size for the profiles endpoint.
	MaxProfilesSize datasize.ByteSize
}

ProfileStorageConfig is the configuration for the business logic backend profile storage.

type RateLimitServiceClient

type RateLimitServiceClient interface {
	// Gets rate limit settings.
	GetRateLimitSettings(ctx context.Context, in *RateLimitSettingsRequest, opts ...grpc.CallOption) (*RateLimitSettingsResponse, error)
}

RateLimitServiceClient is the client API for RateLimitService service.

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

type RateLimitServiceServer

type RateLimitServiceServer interface {
	// Gets rate limit settings.
	GetRateLimitSettings(context.Context, *RateLimitSettingsRequest) (*RateLimitSettingsResponse, error)
	// contains filtered or unexported methods
}

RateLimitServiceServer is the server API for RateLimitService service. All implementations must embed UnimplementedRateLimitServiceServer for forward compatibility.

type RateLimitSettings

type RateLimitSettings struct {
	Enabled    bool         `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	Rps        uint32       `protobuf:"varint,2,opt,name=rps,proto3" json:"rps,omitempty"`
	ClientCidr []*CidrRange `protobuf:"bytes,3,rep,name=client_cidr,json=clientCidr,proto3" json:"client_cidr,omitempty"`
	// contains filtered or unexported fields
}

func (*RateLimitSettings) Descriptor deprecated

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

Deprecated: Use RateLimitSettings.ProtoReflect.Descriptor instead.

func (*RateLimitSettings) GetClientCidr

func (x *RateLimitSettings) GetClientCidr() []*CidrRange

func (*RateLimitSettings) GetEnabled

func (x *RateLimitSettings) GetEnabled() bool

func (*RateLimitSettings) GetRps

func (x *RateLimitSettings) GetRps() uint32

func (*RateLimitSettings) ProtoMessage

func (*RateLimitSettings) ProtoMessage()

func (*RateLimitSettings) ProtoReflect

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

func (*RateLimitSettings) Reset

func (x *RateLimitSettings) Reset()

func (*RateLimitSettings) String

func (x *RateLimitSettings) String() string

type RateLimitSettingsRequest

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

func (*RateLimitSettingsRequest) Descriptor deprecated

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

Deprecated: Use RateLimitSettingsRequest.ProtoReflect.Descriptor instead.

func (*RateLimitSettingsRequest) ProtoMessage

func (*RateLimitSettingsRequest) ProtoMessage()

func (*RateLimitSettingsRequest) ProtoReflect

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

func (*RateLimitSettingsRequest) Reset

func (x *RateLimitSettingsRequest) Reset()

func (*RateLimitSettingsRequest) String

func (x *RateLimitSettingsRequest) String() string

type RateLimitSettingsResponse

type RateLimitSettingsResponse struct {
	AllowedSubnets []*CidrRange `protobuf:"bytes,1,rep,name=allowed_subnets,json=allowedSubnets,proto3" json:"allowed_subnets,omitempty"`
	// contains filtered or unexported fields
}

func (*RateLimitSettingsResponse) Descriptor deprecated

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

Deprecated: Use RateLimitSettingsResponse.ProtoReflect.Descriptor instead.

func (*RateLimitSettingsResponse) GetAllowedSubnets

func (x *RateLimitSettingsResponse) GetAllowedSubnets() []*CidrRange

func (*RateLimitSettingsResponse) ProtoMessage

func (*RateLimitSettingsResponse) ProtoMessage()

func (*RateLimitSettingsResponse) ProtoReflect

func (*RateLimitSettingsResponse) Reset

func (x *RateLimitSettingsResponse) Reset()

func (*RateLimitSettingsResponse) String

func (x *RateLimitSettingsResponse) String() string

type RateLimitedError

type RateLimitedError struct {
	Message    string               `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
	RetryDelay *durationpb.Duration `protobuf:"bytes,2,opt,name=retry_delay,json=retryDelay,proto3" json:"retry_delay,omitempty"`
	// contains filtered or unexported fields
}

func (*RateLimitedError) Descriptor deprecated

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

Deprecated: Use RateLimitedError.ProtoReflect.Descriptor instead.

func (*RateLimitedError) GetMessage

func (x *RateLimitedError) GetMessage() string

func (*RateLimitedError) GetRetryDelay

func (x *RateLimitedError) GetRetryDelay() *durationpb.Duration

func (*RateLimitedError) ProtoMessage

func (*RateLimitedError) ProtoMessage()

func (*RateLimitedError) ProtoReflect

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

func (*RateLimitedError) Reset

func (x *RateLimitedError) Reset()

func (*RateLimitedError) String

func (x *RateLimitedError) String() string

type RateLimiter

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

RateLimiter is the implementation of the agdservice.Refresher interface that retrieves the rate limit settings from the business logic backend.

func NewRateLimiter

func NewRateLimiter(c *RateLimiterConfig) (l *RateLimiter, err error)

NewRateLimiter creates a new properly initialized rate limiter. c must not be nil.

func (*RateLimiter) Refresh

func (l *RateLimiter) Refresh(ctx context.Context) (err error)

Refresh implements the agdservice.Refresher interface for *RateLimiter.

type RateLimiterConfig

type RateLimiterConfig struct {
	// Logger is used for logging the operation of the rate limiter.  It must
	// not be nil.
	Logger *slog.Logger

	// GRPCMetrics is used for the collection of the protobuf errors.
	GRPCMetrics Metrics

	// Metrics is used to collect allowlist statistics.
	Metrics consul.Metrics

	// Allowlist is the allowlist to update.
	Allowlist *ratelimit.DynamicAllowlist

	// ErrColl is used to collect errors during refreshes.
	ErrColl errcoll.Interface

	// Endpoint is the backend API URL.  The scheme should be either "grpc" or
	// "grpcs".  It must not be nil.
	Endpoint *url.URL

	// APIKey is the API key used for authentication, if any.  If empty, no
	// authentication is performed.
	APIKey string
}

RateLimiterConfig is the configuration structure for the business logic backend rate limiter.

type RemoteKV

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

RemoteKV is the implementation of the remotekv.Interface interface that uses the business logic backend as the key-value storage. It is safe for concurrent use.

func NewRemoteKV

func NewRemoteKV(c *RemoteKVConfig) (kv *RemoteKV, err error)

NewRemoteKV returns a new RemoteKV that retrieves information from the business logic backend.

func (*RemoteKV) Get

func (kv *RemoteKV) Get(ctx context.Context, key string) (val []byte, ok bool, err error)

Get implements the remotekv.Interface interface for *RemoteKV.

func (*RemoteKV) Set

func (kv *RemoteKV) Set(ctx context.Context, key string, val []byte) (err error)

Set implements the remotekv.Interface interface for *RemoteKV.

type RemoteKVConfig

type RemoteKVConfig struct {
	// Metrics is used for the collection of the remote key-value storage
	// statistics.
	//
	// TODO(e.burkov):  Perhaps, it worths of a separate metrics interface,
	// since it's only used for the collection of the protobuf errors.
	Metrics Metrics

	// Endpoint is the backend API URL.  The scheme should be either "grpc" or
	// "grpcs".
	Endpoint *url.URL

	// APIKey is the API key used for authentication, if any.
	APIKey string

	// TTL is the TTL of the values in the storage.
	TTL time.Duration
}

RemoteKVConfig is the configuration for the business logic backend key-value storage.

type RemoteKVGetRequest

type RemoteKVGetRequest struct {
	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	// contains filtered or unexported fields
}

func (*RemoteKVGetRequest) Descriptor deprecated

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

Deprecated: Use RemoteKVGetRequest.ProtoReflect.Descriptor instead.

func (*RemoteKVGetRequest) GetKey

func (x *RemoteKVGetRequest) GetKey() string

func (*RemoteKVGetRequest) ProtoMessage

func (*RemoteKVGetRequest) ProtoMessage()

func (*RemoteKVGetRequest) ProtoReflect

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

func (*RemoteKVGetRequest) Reset

func (x *RemoteKVGetRequest) Reset()

func (*RemoteKVGetRequest) String

func (x *RemoteKVGetRequest) String() string

type RemoteKVGetResponse

type RemoteKVGetResponse struct {

	// Types that are assignable to Value:
	//
	//	*RemoteKVGetResponse_Data
	//	*RemoteKVGetResponse_Empty
	Value isRemoteKVGetResponse_Value `protobuf_oneof:"value"`
	// contains filtered or unexported fields
}

func (*RemoteKVGetResponse) Descriptor deprecated

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

Deprecated: Use RemoteKVGetResponse.ProtoReflect.Descriptor instead.

func (*RemoteKVGetResponse) GetData

func (x *RemoteKVGetResponse) GetData() []byte

func (*RemoteKVGetResponse) GetEmpty

func (x *RemoteKVGetResponse) GetEmpty() *emptypb.Empty

func (*RemoteKVGetResponse) GetValue

func (m *RemoteKVGetResponse) GetValue() isRemoteKVGetResponse_Value

func (*RemoteKVGetResponse) ProtoMessage

func (*RemoteKVGetResponse) ProtoMessage()

func (*RemoteKVGetResponse) ProtoReflect

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

func (*RemoteKVGetResponse) Reset

func (x *RemoteKVGetResponse) Reset()

func (*RemoteKVGetResponse) String

func (x *RemoteKVGetResponse) String() string

type RemoteKVGetResponse_Data

type RemoteKVGetResponse_Data struct {
	Data []byte `protobuf:"bytes,1,opt,name=data,proto3,oneof"`
}

type RemoteKVGetResponse_Empty

type RemoteKVGetResponse_Empty struct {
	Empty *emptypb.Empty `protobuf:"bytes,2,opt,name=empty,proto3,oneof"`
}

type RemoteKVServiceClient

type RemoteKVServiceClient interface {
	// *
	// Get the value for the specified key.
	//
	// This method may return the following errors:
	// - AuthenticationFailedError: If the authentication failed.
	Get(ctx context.Context, in *RemoteKVGetRequest, opts ...grpc.CallOption) (*RemoteKVGetResponse, error)
	// *
	// Set the value for the specified key.
	//
	// This method may return the following errors:
	// - AuthenticationFailedError: If the authentication failed.
	// - BadRequestError: If the request is invalid: value size exceeds the 512kb.
	Set(ctx context.Context, in *RemoteKVSetRequest, opts ...grpc.CallOption) (*RemoteKVSetResponse, error)
}

RemoteKVServiceClient is the client API for RemoteKVService service.

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

type RemoteKVServiceServer

type RemoteKVServiceServer interface {
	// *
	// Get the value for the specified key.
	//
	// This method may return the following errors:
	// - AuthenticationFailedError: If the authentication failed.
	Get(context.Context, *RemoteKVGetRequest) (*RemoteKVGetResponse, error)
	// *
	// Set the value for the specified key.
	//
	// This method may return the following errors:
	// - AuthenticationFailedError: If the authentication failed.
	// - BadRequestError: If the request is invalid: value size exceeds the 512kb.
	Set(context.Context, *RemoteKVSetRequest) (*RemoteKVSetResponse, error)
	// contains filtered or unexported methods
}

RemoteKVServiceServer is the server API for RemoteKVService service. All implementations must embed UnimplementedRemoteKVServiceServer for forward compatibility.

type RemoteKVSetRequest

type RemoteKVSetRequest struct {
	Key  string               `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	Data []byte               `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
	Ttl  *durationpb.Duration `protobuf:"bytes,3,opt,name=ttl,proto3" json:"ttl,omitempty"`
	// contains filtered or unexported fields
}

func (*RemoteKVSetRequest) Descriptor deprecated

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

Deprecated: Use RemoteKVSetRequest.ProtoReflect.Descriptor instead.

func (*RemoteKVSetRequest) GetData

func (x *RemoteKVSetRequest) GetData() []byte

func (*RemoteKVSetRequest) GetKey

func (x *RemoteKVSetRequest) GetKey() string

func (*RemoteKVSetRequest) GetTtl

func (x *RemoteKVSetRequest) GetTtl() *durationpb.Duration

func (*RemoteKVSetRequest) ProtoMessage

func (*RemoteKVSetRequest) ProtoMessage()

func (*RemoteKVSetRequest) ProtoReflect

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

func (*RemoteKVSetRequest) Reset

func (x *RemoteKVSetRequest) Reset()

func (*RemoteKVSetRequest) String

func (x *RemoteKVSetRequest) String() string

type RemoteKVSetResponse

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

func (*RemoteKVSetResponse) Descriptor deprecated

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

Deprecated: Use RemoteKVSetResponse.ProtoReflect.Descriptor instead.

func (*RemoteKVSetResponse) ProtoMessage

func (*RemoteKVSetResponse) ProtoMessage()

func (*RemoteKVSetResponse) ProtoReflect

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

func (*RemoteKVSetResponse) Reset

func (x *RemoteKVSetResponse) Reset()

func (*RemoteKVSetResponse) String

func (x *RemoteKVSetResponse) String() string

type RuleListsSettings

type RuleListsSettings struct {
	Enabled bool     `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	Ids     []string `protobuf:"bytes,2,rep,name=ids,proto3" json:"ids,omitempty"`
	// contains filtered or unexported fields
}

func (*RuleListsSettings) Descriptor deprecated

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

Deprecated: Use RuleListsSettings.ProtoReflect.Descriptor instead.

func (*RuleListsSettings) GetEnabled

func (x *RuleListsSettings) GetEnabled() bool

func (*RuleListsSettings) GetIds

func (x *RuleListsSettings) GetIds() []string

func (*RuleListsSettings) ProtoMessage

func (*RuleListsSettings) ProtoMessage()

func (*RuleListsSettings) ProtoReflect

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

func (*RuleListsSettings) Reset

func (x *RuleListsSettings) Reset()

func (*RuleListsSettings) String

func (x *RuleListsSettings) String() string

type SafeBrowsingSettings

type SafeBrowsingSettings struct {
	Enabled               bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	BlockDangerousDomains bool `` /* 127-byte string literal not displayed */
	BlockNrd              bool `protobuf:"varint,3,opt,name=block_nrd,json=blockNrd,proto3" json:"block_nrd,omitempty"`
	// contains filtered or unexported fields
}

func (*SafeBrowsingSettings) Descriptor deprecated

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

Deprecated: Use SafeBrowsingSettings.ProtoReflect.Descriptor instead.

func (*SafeBrowsingSettings) GetBlockDangerousDomains

func (x *SafeBrowsingSettings) GetBlockDangerousDomains() bool

func (*SafeBrowsingSettings) GetBlockNrd

func (x *SafeBrowsingSettings) GetBlockNrd() bool

func (*SafeBrowsingSettings) GetEnabled

func (x *SafeBrowsingSettings) GetEnabled() bool

func (*SafeBrowsingSettings) ProtoMessage

func (*SafeBrowsingSettings) ProtoMessage()

func (*SafeBrowsingSettings) ProtoReflect

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

func (*SafeBrowsingSettings) Reset

func (x *SafeBrowsingSettings) Reset()

func (*SafeBrowsingSettings) String

func (x *SafeBrowsingSettings) String() string

type ScheduleSettings

type ScheduleSettings struct {
	Tmz         string       `protobuf:"bytes,1,opt,name=tmz,proto3" json:"tmz,omitempty"`
	WeeklyRange *WeeklyRange `protobuf:"bytes,2,opt,name=weeklyRange,proto3" json:"weeklyRange,omitempty"`
	// contains filtered or unexported fields
}

func (*ScheduleSettings) Descriptor deprecated

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

Deprecated: Use ScheduleSettings.ProtoReflect.Descriptor instead.

func (*ScheduleSettings) GetTmz

func (x *ScheduleSettings) GetTmz() string

func (*ScheduleSettings) GetWeeklyRange

func (x *ScheduleSettings) GetWeeklyRange() *WeeklyRange

func (*ScheduleSettings) ProtoMessage

func (*ScheduleSettings) ProtoMessage()

func (*ScheduleSettings) ProtoReflect

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

func (*ScheduleSettings) Reset

func (x *ScheduleSettings) Reset()

func (*ScheduleSettings) String

func (x *ScheduleSettings) String() string

type UnimplementedDNSServiceServer

type UnimplementedDNSServiceServer struct{}

UnimplementedDNSServiceServer must be embedded to have forward compatible implementations.

NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.

func (UnimplementedDNSServiceServer) CreateDeviceByHumanId

func (UnimplementedDNSServiceServer) GetDNSProfiles

func (UnimplementedDNSServiceServer) SaveDevicesBillingStat

type UnimplementedRateLimitServiceServer

type UnimplementedRateLimitServiceServer struct{}

UnimplementedRateLimitServiceServer must be embedded to have forward compatible implementations.

NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.

func (UnimplementedRateLimitServiceServer) GetRateLimitSettings

type UnimplementedRemoteKVServiceServer

type UnimplementedRemoteKVServiceServer struct{}

UnimplementedRemoteKVServiceServer must be embedded to have forward compatible implementations.

NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.

func (UnimplementedRemoteKVServiceServer) Get

func (UnimplementedRemoteKVServiceServer) Set

type UnsafeDNSServiceServer

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

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

type UnsafeRateLimitServiceServer

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

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

type UnsafeRemoteKVServiceServer

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

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

type WeeklyRange

type WeeklyRange struct {
	Mon *DayRange `protobuf:"bytes,1,opt,name=mon,proto3" json:"mon,omitempty"`
	Tue *DayRange `protobuf:"bytes,2,opt,name=tue,proto3" json:"tue,omitempty"`
	Wed *DayRange `protobuf:"bytes,3,opt,name=wed,proto3" json:"wed,omitempty"`
	Thu *DayRange `protobuf:"bytes,4,opt,name=thu,proto3" json:"thu,omitempty"`
	Fri *DayRange `protobuf:"bytes,5,opt,name=fri,proto3" json:"fri,omitempty"`
	Sat *DayRange `protobuf:"bytes,6,opt,name=sat,proto3" json:"sat,omitempty"`
	Sun *DayRange `protobuf:"bytes,7,opt,name=sun,proto3" json:"sun,omitempty"`
	// contains filtered or unexported fields
}

func (*WeeklyRange) Descriptor deprecated

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

Deprecated: Use WeeklyRange.ProtoReflect.Descriptor instead.

func (*WeeklyRange) GetFri

func (x *WeeklyRange) GetFri() *DayRange

func (*WeeklyRange) GetMon

func (x *WeeklyRange) GetMon() *DayRange

func (*WeeklyRange) GetSat

func (x *WeeklyRange) GetSat() *DayRange

func (*WeeklyRange) GetSun

func (x *WeeklyRange) GetSun() *DayRange

func (*WeeklyRange) GetThu

func (x *WeeklyRange) GetThu() *DayRange

func (*WeeklyRange) GetTue

func (x *WeeklyRange) GetTue() *DayRange

func (*WeeklyRange) GetWed

func (x *WeeklyRange) GetWed() *DayRange

func (*WeeklyRange) ProtoMessage

func (*WeeklyRange) ProtoMessage()

func (*WeeklyRange) ProtoReflect

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

func (*WeeklyRange) Reset

func (x *WeeklyRange) Reset()

func (*WeeklyRange) String

func (x *WeeklyRange) String() string

Jump to

Keyboard shortcuts

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