apipb

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Nov 5, 2020 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Overview

Package apipb is a reverse proxy.

It translates gRPC into RESTful JSON APIs.

Index

Constants

This section is empty.

Variables

View Source
var File_pkg_apiserver_apipb_api_proto protoreflect.FileDescriptor

Functions

func RegisterAccountsHandler

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

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

func RegisterAccountsHandlerClient

func RegisterAccountsHandlerClient(ctx context.Context, mux *runtime.ServeMux, client AccountsClient) error

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

func RegisterAccountsHandlerFromEndpoint

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

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

func RegisterAccountsHandlerServer added in v0.1.5

func RegisterAccountsHandlerServer(ctx context.Context, mux *runtime.ServeMux, server AccountsServer) error

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

func RegisterAccountsServer

func RegisterAccountsServer(s *grpc.Server, srv AccountsServer)

func RegisterDevicesHandler

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

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

func RegisterDevicesHandlerClient

func RegisterDevicesHandlerClient(ctx context.Context, mux *runtime.ServeMux, client DevicesClient) error

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

func RegisterDevicesHandlerFromEndpoint

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

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

func RegisterDevicesHandlerServer added in v0.1.5

func RegisterDevicesHandlerServer(ctx context.Context, mux *runtime.ServeMux, server DevicesServer) error

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

func RegisterDevicesServer

func RegisterDevicesServer(s *grpc.Server, srv DevicesServer)

func RegisterNamespacesHandler

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

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

func RegisterNamespacesHandlerClient

func RegisterNamespacesHandlerClient(ctx context.Context, mux *runtime.ServeMux, client NamespacesClient) error

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

func RegisterNamespacesHandlerFromEndpoint

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

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

func RegisterNamespacesHandlerServer added in v0.1.5

func RegisterNamespacesHandlerServer(ctx context.Context, mux *runtime.ServeMux, server NamespacesServer) error

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

func RegisterNamespacesServer

func RegisterNamespacesServer(s *grpc.Server, srv NamespacesServer)

func RegisterObjectsHandler

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

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

func RegisterObjectsHandlerClient

func RegisterObjectsHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ObjectsClient) error

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

func RegisterObjectsHandlerFromEndpoint

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

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

func RegisterObjectsHandlerServer added in v0.1.5

func RegisterObjectsHandlerServer(ctx context.Context, mux *runtime.ServeMux, server ObjectsServer) error

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

func RegisterObjectsServer

func RegisterObjectsServer(s *grpc.Server, srv ObjectsServer)

func RegisterStatesHandler

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

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

func RegisterStatesHandlerClient

func RegisterStatesHandlerClient(ctx context.Context, mux *runtime.ServeMux, client StatesClient) error

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

func RegisterStatesHandlerFromEndpoint

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

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

func RegisterStatesHandlerServer added in v0.1.5

func RegisterStatesHandlerServer(ctx context.Context, mux *runtime.ServeMux, server StatesServer) error

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

func RegisterStatesServer

func RegisterStatesServer(s *grpc.Server, srv StatesServer)

Types

type AccountsClient

AccountsClient is the client API for Accounts service.

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

func NewAccountsClient

func NewAccountsClient(cc grpc.ClientConnInterface) AccountsClient

type CreateNamespacePermissionRequest added in v0.1.4

type CreateNamespacePermissionRequest struct {
	AccountId  string      `protobuf:"bytes,1,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"`
	Namespace  string      `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"`
	Permission *Permission `protobuf:"bytes,3,opt,name=permission,proto3" json:"permission,omitempty"`
	// contains filtered or unexported fields
}

func (*CreateNamespacePermissionRequest) Descriptor deprecated added in v0.1.4

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

Deprecated: Use CreateNamespacePermissionRequest.ProtoReflect.Descriptor instead.

func (*CreateNamespacePermissionRequest) GetAccountId added in v0.1.4

func (x *CreateNamespacePermissionRequest) GetAccountId() string

func (*CreateNamespacePermissionRequest) GetNamespace added in v0.1.4

func (x *CreateNamespacePermissionRequest) GetNamespace() string

func (*CreateNamespacePermissionRequest) GetPermission added in v0.1.4

func (x *CreateNamespacePermissionRequest) GetPermission() *Permission

func (*CreateNamespacePermissionRequest) ProtoMessage added in v0.1.4

func (*CreateNamespacePermissionRequest) ProtoMessage()

func (*CreateNamespacePermissionRequest) ProtoReflect added in v0.1.5

func (*CreateNamespacePermissionRequest) Reset added in v0.1.4

func (*CreateNamespacePermissionRequest) String added in v0.1.4

type CreateNamespacePermissionResponse added in v0.1.4

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

func (*CreateNamespacePermissionResponse) Descriptor deprecated added in v0.1.4

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

Deprecated: Use CreateNamespacePermissionResponse.ProtoReflect.Descriptor instead.

func (*CreateNamespacePermissionResponse) ProtoMessage added in v0.1.4

func (*CreateNamespacePermissionResponse) ProtoMessage()

func (*CreateNamespacePermissionResponse) ProtoReflect added in v0.1.5

func (*CreateNamespacePermissionResponse) Reset added in v0.1.4

func (*CreateNamespacePermissionResponse) String added in v0.1.4

type CreateObjectRequest

type CreateObjectRequest struct {
	Parent    *wrappers.StringValue `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	Namespace string                `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"`
	Object    *nodepb.Object        `protobuf:"bytes,3,opt,name=object,proto3" json:"object,omitempty"`
	// contains filtered or unexported fields
}

func (*CreateObjectRequest) Descriptor deprecated

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

Deprecated: Use CreateObjectRequest.ProtoReflect.Descriptor instead.

func (*CreateObjectRequest) GetNamespace

func (x *CreateObjectRequest) GetNamespace() string

func (*CreateObjectRequest) GetObject

func (x *CreateObjectRequest) GetObject() *nodepb.Object

func (*CreateObjectRequest) GetParent

func (x *CreateObjectRequest) GetParent() *wrappers.StringValue

func (*CreateObjectRequest) ProtoMessage

func (*CreateObjectRequest) ProtoMessage()

func (*CreateObjectRequest) ProtoReflect added in v0.1.5

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

func (*CreateObjectRequest) Reset

func (x *CreateObjectRequest) Reset()

func (*CreateObjectRequest) String

func (x *CreateObjectRequest) String() string

type DevicesClient

DevicesClient is the client API for Devices service.

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

func NewDevicesClient

func NewDevicesClient(cc grpc.ClientConnInterface) DevicesClient

type ListDevicesRequest

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

func (*ListDevicesRequest) Descriptor deprecated

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

Deprecated: Use ListDevicesRequest.ProtoReflect.Descriptor instead.

func (*ListDevicesRequest) GetNamespaceid added in v1.0.0

func (x *ListDevicesRequest) GetNamespaceid() string

func (*ListDevicesRequest) ProtoMessage

func (*ListDevicesRequest) ProtoMessage()

func (*ListDevicesRequest) ProtoReflect added in v0.1.5

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

func (*ListDevicesRequest) Reset

func (x *ListDevicesRequest) Reset()

func (*ListDevicesRequest) String

func (x *ListDevicesRequest) String() string

type ListObjectsRequest

type ListObjectsRequest struct {
	Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
	Recurse   bool   `protobuf:"varint,2,opt,name=recurse,proto3" json:"recurse,omitempty"`
	// contains filtered or unexported fields
}

func (*ListObjectsRequest) Descriptor deprecated

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

Deprecated: Use ListObjectsRequest.ProtoReflect.Descriptor instead.

func (*ListObjectsRequest) GetNamespace

func (x *ListObjectsRequest) GetNamespace() string

func (*ListObjectsRequest) GetRecurse

func (x *ListObjectsRequest) GetRecurse() bool

func (*ListObjectsRequest) ProtoMessage

func (*ListObjectsRequest) ProtoMessage()

func (*ListObjectsRequest) ProtoReflect added in v0.1.5

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

func (*ListObjectsRequest) Reset

func (x *ListObjectsRequest) Reset()

func (*ListObjectsRequest) String

func (x *ListObjectsRequest) String() string

type NamespacesClient

NamespacesClient is the client API for Namespaces service.

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

func NewNamespacesClient

func NewNamespacesClient(cc grpc.ClientConnInterface) NamespacesClient

type ObjectsClient

type ObjectsClient interface {
	ListObjects(ctx context.Context, in *ListObjectsRequest, opts ...grpc.CallOption) (*nodepb.ListObjectsResponse, error)
	CreateObject(ctx context.Context, in *CreateObjectRequest, opts ...grpc.CallOption) (*nodepb.Object, error)
	DeleteObject(ctx context.Context, in *nodepb.DeleteObjectRequest, opts ...grpc.CallOption) (*nodepb.DeleteObjectResponse, error)
}

ObjectsClient is the client API for Objects service.

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

func NewObjectsClient

func NewObjectsClient(cc grpc.ClientConnInterface) ObjectsClient

type ObjectsServer

ObjectsServer is the server API for Objects service.

type Permission added in v0.1.4

type Permission struct {
	Action nodepb.Action `protobuf:"varint,3,opt,name=action,proto3,enum=infinimesh.node.Action" json:"action,omitempty"`
	// contains filtered or unexported fields
}

Permission.Action may either be NONE, READ or WRITE.

func (*Permission) Descriptor deprecated added in v0.1.4

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

Deprecated: Use Permission.ProtoReflect.Descriptor instead.

func (*Permission) GetAction added in v0.1.4

func (x *Permission) GetAction() nodepb.Action

func (*Permission) ProtoMessage added in v0.1.4

func (*Permission) ProtoMessage()

func (*Permission) ProtoReflect added in v0.1.5

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

func (*Permission) Reset added in v0.1.4

func (x *Permission) Reset()

func (*Permission) String added in v0.1.4

func (x *Permission) String() string

type RestrictionRule added in v0.1.5

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

func (*RestrictionRule) Descriptor deprecated added in v0.1.5

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

Deprecated: Use RestrictionRule.ProtoReflect.Descriptor instead.

func (*RestrictionRule) GetIds added in v0.1.5

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

func (*RestrictionRule) GetType added in v0.1.5

func (x *RestrictionRule) GetType() string

func (*RestrictionRule) ProtoMessage added in v0.1.5

func (*RestrictionRule) ProtoMessage()

func (*RestrictionRule) ProtoReflect added in v0.1.5

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

func (*RestrictionRule) Reset added in v0.1.5

func (x *RestrictionRule) Reset()

func (*RestrictionRule) String added in v0.1.5

func (x *RestrictionRule) String() string

type StatesClient

StatesClient is the client API for States service.

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

func NewStatesClient

func NewStatesClient(cc grpc.ClientConnInterface) StatesClient

type StatesServer

StatesServer is the server API for States service.

type States_StreamReportedStateChangesClient

type States_StreamReportedStateChangesClient interface {
	Recv() (*shadowpb.StreamReportedStateChangesResponse, error)
	grpc.ClientStream
}

type States_StreamReportedStateChangesServer

type States_StreamReportedStateChangesServer interface {
	Send(*shadowpb.StreamReportedStateChangesResponse) error
	grpc.ServerStream
}

type TokenRequest

type TokenRequest struct {
	Username   string             `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"`
	Password   string             `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"`
	ExpireTime string             `protobuf:"bytes,3,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"` // token expire time in seconds
	Ruleset    []*RestrictionRule `protobuf:"bytes,4,rep,name=ruleset,proto3" json:"ruleset,omitempty"`                         // methods restrictions ruleset
	// contains filtered or unexported fields
}

func (*TokenRequest) Descriptor deprecated

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

Deprecated: Use TokenRequest.ProtoReflect.Descriptor instead.

func (*TokenRequest) GetExpireTime added in v0.1.5

func (x *TokenRequest) GetExpireTime() string

func (*TokenRequest) GetPassword

func (x *TokenRequest) GetPassword() string

func (*TokenRequest) GetRuleset added in v0.1.5

func (x *TokenRequest) GetRuleset() []*RestrictionRule

func (*TokenRequest) GetUsername

func (x *TokenRequest) GetUsername() string

func (*TokenRequest) ProtoMessage

func (*TokenRequest) ProtoMessage()

func (*TokenRequest) ProtoReflect added in v0.1.5

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

func (*TokenRequest) Reset

func (x *TokenRequest) Reset()

func (*TokenRequest) String

func (x *TokenRequest) String() string

type TokenResponse

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

func (*TokenResponse) Descriptor deprecated

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

Deprecated: Use TokenResponse.ProtoReflect.Descriptor instead.

func (*TokenResponse) GetToken

func (x *TokenResponse) GetToken() string

func (*TokenResponse) ProtoMessage

func (*TokenResponse) ProtoMessage()

func (*TokenResponse) ProtoReflect added in v0.1.5

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

func (*TokenResponse) Reset

func (x *TokenResponse) Reset()

func (*TokenResponse) String

func (x *TokenResponse) String() string

type UnimplementedAccountsServer added in v0.1.5

type UnimplementedAccountsServer struct {
}

UnimplementedAccountsServer can be embedded to have forward compatible implementations.

func (*UnimplementedAccountsServer) AssignOwner added in v1.0.0

func (*UnimplementedAccountsServer) CreateUserAccount added in v0.1.5

func (*UnimplementedAccountsServer) DeleteAccount added in v0.1.5

func (*UnimplementedAccountsServer) GetAccount added in v0.1.5

func (*UnimplementedAccountsServer) ListAccounts added in v0.1.5

func (*UnimplementedAccountsServer) RemoveOwner added in v1.0.0

func (*UnimplementedAccountsServer) SelfAccount added in v0.1.5

func (*UnimplementedAccountsServer) Token added in v0.1.5

func (*UnimplementedAccountsServer) UpdateAccount added in v0.1.5

type UnimplementedDevicesServer added in v0.1.5

type UnimplementedDevicesServer struct {
}

UnimplementedDevicesServer can be embedded to have forward compatible implementations.

func (*UnimplementedDevicesServer) AssignOwnerDevices added in v1.0.0

func (*UnimplementedDevicesServer) Create added in v0.1.5

func (*UnimplementedDevicesServer) Delete added in v0.1.5

func (*UnimplementedDevicesServer) Get added in v0.1.5

func (*UnimplementedDevicesServer) List added in v0.1.5

func (*UnimplementedDevicesServer) RemoveOwnerDevices added in v1.0.0

func (*UnimplementedDevicesServer) Update added in v0.1.5

type UnimplementedNamespacesServer added in v0.1.5

type UnimplementedNamespacesServer struct {
}

UnimplementedNamespacesServer can be embedded to have forward compatible implementations.

func (*UnimplementedNamespacesServer) CreateNamespace added in v0.1.5

func (*UnimplementedNamespacesServer) CreatePermission added in v0.1.5

func (*UnimplementedNamespacesServer) DeleteNamespace added in v0.1.5

func (*UnimplementedNamespacesServer) DeletePermission added in v0.1.5

func (*UnimplementedNamespacesServer) GetNamespace added in v0.1.5

func (*UnimplementedNamespacesServer) ListNamespaces added in v0.1.5

func (*UnimplementedNamespacesServer) ListPermissions added in v0.1.5

func (*UnimplementedNamespacesServer) UpdateNamespace added in v0.1.5

type UnimplementedObjectsServer added in v0.1.5

type UnimplementedObjectsServer struct {
}

UnimplementedObjectsServer can be embedded to have forward compatible implementations.

func (*UnimplementedObjectsServer) CreateObject added in v0.1.5

func (*UnimplementedObjectsServer) DeleteObject added in v0.1.5

func (*UnimplementedObjectsServer) ListObjects added in v0.1.5

type UnimplementedStatesServer added in v0.1.5

type UnimplementedStatesServer struct {
}

UnimplementedStatesServer can be embedded to have forward compatible implementations.

func (*UnimplementedStatesServer) Get added in v0.1.5

func (*UnimplementedStatesServer) PatchDesiredState added in v0.1.5

func (*UnimplementedStatesServer) StreamReportedStateChanges added in v0.1.5

Jump to

Keyboard shortcuts

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