entityv1alpha1

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Jan 23, 2024 License: MIT Imports: 6 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

View Source
var File_commonfate_entity_v1alpha1_child_relation_proto protoreflect.FileDescriptor
View Source
var File_commonfate_entity_v1alpha1_eid_proto protoreflect.FileDescriptor
View Source
var File_commonfate_entity_v1alpha1_entity_proto protoreflect.FileDescriptor
View Source
var File_commonfate_entity_v1alpha1_entity_service_proto protoreflect.FileDescriptor

Functions

This section is empty.

Types

type Attribute

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

func (*Attribute) Descriptor deprecated

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

Deprecated: Use Attribute.ProtoReflect.Descriptor instead.

func (*Attribute) GetKey

func (x *Attribute) GetKey() string

func (*Attribute) GetValue

func (x *Attribute) GetValue() *Value

func (*Attribute) ProtoMessage

func (*Attribute) ProtoMessage()

func (*Attribute) ProtoReflect

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

func (*Attribute) Reset

func (x *Attribute) Reset()

func (*Attribute) String

func (x *Attribute) String() string

type BatchGetRequest

type BatchGetRequest struct {
	Universe string `protobuf:"bytes,1,opt,name=universe,proto3" json:"universe,omitempty"`
	Eids     []*EID `protobuf:"bytes,2,rep,name=eids,proto3" json:"eids,omitempty"`
	// contains filtered or unexported fields
}

func (*BatchGetRequest) Descriptor deprecated

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

Deprecated: Use BatchGetRequest.ProtoReflect.Descriptor instead.

func (*BatchGetRequest) GetEids

func (x *BatchGetRequest) GetEids() []*EID

func (*BatchGetRequest) GetUniverse

func (x *BatchGetRequest) GetUniverse() string

func (*BatchGetRequest) ProtoMessage

func (*BatchGetRequest) ProtoMessage()

func (*BatchGetRequest) ProtoReflect

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

func (*BatchGetRequest) Reset

func (x *BatchGetRequest) Reset()

func (*BatchGetRequest) String

func (x *BatchGetRequest) String() string

type BatchGetResponse

type BatchGetResponse struct {
	Entities []*Entity `protobuf:"bytes,1,rep,name=entities,proto3" json:"entities,omitempty"`
	// contains filtered or unexported fields
}

func (*BatchGetResponse) Descriptor deprecated

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

Deprecated: Use BatchGetResponse.ProtoReflect.Descriptor instead.

func (*BatchGetResponse) GetEntities

func (x *BatchGetResponse) GetEntities() []*Entity

func (*BatchGetResponse) ProtoMessage

func (*BatchGetResponse) ProtoMessage()

func (*BatchGetResponse) ProtoReflect

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

func (*BatchGetResponse) Reset

func (x *BatchGetResponse) Reset()

func (*BatchGetResponse) String

func (x *BatchGetResponse) String() string

type BatchUpdateRequest

type BatchUpdateRequest struct {
	Universe string    `protobuf:"bytes,1,opt,name=universe,proto3" json:"universe,omitempty"`
	Put      []*Entity `protobuf:"bytes,2,rep,name=put,proto3" json:"put,omitempty"`
	// parent/child relationships to add.
	PutChildren []*ChildRelation `protobuf:"bytes,3,rep,name=put_children,json=putChildren,proto3" json:"put_children,omitempty"`
	// entities to archive
	Archive []*EID `protobuf:"bytes,4,rep,name=archive,proto3" json:"archive,omitempty"`
	// entities to mark as active
	Unarchive []*EID `protobuf:"bytes,5,rep,name=unarchive,proto3" json:"unarchive,omitempty"`
	// entities to delete
	Delete []*EID `protobuf:"bytes,6,rep,name=delete,proto3" json:"delete,omitempty"`
	// parent/child relations to delete.
	DeleteChildren []*ChildRelation `protobuf:"bytes,7,rep,name=delete_children,json=deleteChildren,proto3" json:"delete_children,omitempty"`
	// contains filtered or unexported fields
}

func (*BatchUpdateRequest) Descriptor deprecated

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

Deprecated: Use BatchUpdateRequest.ProtoReflect.Descriptor instead.

func (*BatchUpdateRequest) GetArchive

func (x *BatchUpdateRequest) GetArchive() []*EID

func (*BatchUpdateRequest) GetDelete

func (x *BatchUpdateRequest) GetDelete() []*EID

func (*BatchUpdateRequest) GetDeleteChildren

func (x *BatchUpdateRequest) GetDeleteChildren() []*ChildRelation

func (*BatchUpdateRequest) GetPut

func (x *BatchUpdateRequest) GetPut() []*Entity

func (*BatchUpdateRequest) GetPutChildren

func (x *BatchUpdateRequest) GetPutChildren() []*ChildRelation

func (*BatchUpdateRequest) GetUnarchive

func (x *BatchUpdateRequest) GetUnarchive() []*EID

func (*BatchUpdateRequest) GetUniverse

func (x *BatchUpdateRequest) GetUniverse() string

func (*BatchUpdateRequest) ProtoMessage

func (*BatchUpdateRequest) ProtoMessage()

func (*BatchUpdateRequest) ProtoReflect

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

func (*BatchUpdateRequest) Reset

func (x *BatchUpdateRequest) Reset()

func (*BatchUpdateRequest) String

func (x *BatchUpdateRequest) String() string

type BatchUpdateResponse

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

func (*BatchUpdateResponse) Descriptor deprecated

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

Deprecated: Use BatchUpdateResponse.ProtoReflect.Descriptor instead.

func (*BatchUpdateResponse) ProtoMessage

func (*BatchUpdateResponse) ProtoMessage()

func (*BatchUpdateResponse) ProtoReflect

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

func (*BatchUpdateResponse) Reset

func (x *BatchUpdateResponse) Reset()

func (*BatchUpdateResponse) String

func (x *BatchUpdateResponse) String() string

type ChildRelation

type ChildRelation struct {
	Parent *EID `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	Child  *EID `protobuf:"bytes,2,opt,name=child,proto3" json:"child,omitempty"`
	// contains filtered or unexported fields
}

func (*ChildRelation) Descriptor deprecated

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

Deprecated: Use ChildRelation.ProtoReflect.Descriptor instead.

func (*ChildRelation) GetChild

func (x *ChildRelation) GetChild() *EID

func (*ChildRelation) GetParent

func (x *ChildRelation) GetParent() *EID

func (*ChildRelation) ProtoMessage

func (*ChildRelation) ProtoMessage()

func (*ChildRelation) ProtoReflect

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

func (*ChildRelation) Reset

func (x *ChildRelation) Reset()

func (*ChildRelation) String

func (x *ChildRelation) String() string

type EID

type EID struct {
	Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
	Id   string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
	// contains filtered or unexported fields
}

func (*EID) Descriptor deprecated

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

Deprecated: Use EID.ProtoReflect.Descriptor instead.

func (*EID) Display

func (u *EID) Display() string

func (*EID) GetId

func (x *EID) GetId() string

func (*EID) GetType

func (x *EID) GetType() string

func (*EID) ProtoMessage

func (*EID) ProtoMessage()

func (*EID) ProtoReflect

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

func (*EID) Reset

func (x *EID) Reset()

func (*EID) String

func (x *EID) String() string

type Entity

type Entity struct {
	Eid        *EID         `protobuf:"bytes,1,opt,name=eid,proto3" json:"eid,omitempty"`
	Attributes []*Attribute `protobuf:"bytes,2,rep,name=attributes,proto3" json:"attributes,omitempty"`
	// contains filtered or unexported fields
}

func (*Entity) Descriptor deprecated

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

Deprecated: Use Entity.ProtoReflect.Descriptor instead.

func (*Entity) GetAttributes

func (x *Entity) GetAttributes() []*Attribute

func (*Entity) GetEid

func (x *Entity) GetEid() *EID

func (*Entity) ProtoMessage

func (*Entity) ProtoMessage()

func (*Entity) ProtoReflect

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

func (*Entity) Reset

func (x *Entity) Reset()

func (*Entity) String

func (x *Entity) String() string

type GetRequest

type GetRequest struct {
	Universe string `protobuf:"bytes,1,opt,name=universe,proto3" json:"universe,omitempty"`
	Eid      *EID   `protobuf:"bytes,2,opt,name=eid,proto3" json:"eid,omitempty"`
	// contains filtered or unexported fields
}

func (*GetRequest) Descriptor deprecated

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

Deprecated: Use GetRequest.ProtoReflect.Descriptor instead.

func (*GetRequest) GetEid

func (x *GetRequest) GetEid() *EID

func (*GetRequest) GetUniverse

func (x *GetRequest) GetUniverse() string

func (*GetRequest) ProtoMessage

func (*GetRequest) ProtoMessage()

func (*GetRequest) ProtoReflect

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

func (*GetRequest) Reset

func (x *GetRequest) Reset()

func (*GetRequest) String

func (x *GetRequest) String() string

type GetResponse

type GetResponse struct {
	Entity *Entity `protobuf:"bytes,1,opt,name=entity,proto3" json:"entity,omitempty"`
	// contains filtered or unexported fields
}

func (*GetResponse) Descriptor deprecated

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

Deprecated: Use GetResponse.ProtoReflect.Descriptor instead.

func (*GetResponse) GetEntity

func (x *GetResponse) GetEntity() *Entity

func (*GetResponse) ProtoMessage

func (*GetResponse) ProtoMessage()

func (*GetResponse) ProtoReflect

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

func (*GetResponse) Reset

func (x *GetResponse) Reset()

func (*GetResponse) String

func (x *GetResponse) String() string

type ListChildrenRequest

type ListChildrenRequest struct {
	Universe string `protobuf:"bytes,1,opt,name=universe,proto3" json:"universe,omitempty"`
	// The token for the next page.
	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	Parent    *EID   `protobuf:"bytes,3,opt,name=parent,proto3" json:"parent,omitempty"`
	// contains filtered or unexported fields
}

func (*ListChildrenRequest) Descriptor deprecated

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

Deprecated: Use ListChildrenRequest.ProtoReflect.Descriptor instead.

func (*ListChildrenRequest) GetPageToken

func (x *ListChildrenRequest) GetPageToken() string

func (*ListChildrenRequest) GetParent

func (x *ListChildrenRequest) GetParent() *EID

func (*ListChildrenRequest) GetUniverse

func (x *ListChildrenRequest) GetUniverse() string

func (*ListChildrenRequest) ProtoMessage

func (*ListChildrenRequest) ProtoMessage()

func (*ListChildrenRequest) ProtoReflect

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

func (*ListChildrenRequest) Reset

func (x *ListChildrenRequest) Reset()

func (*ListChildrenRequest) String

func (x *ListChildrenRequest) String() string

type ListChildrenResponse

type ListChildrenResponse struct {
	Children      []*EID `protobuf:"bytes,1,rep,name=children,proto3" json:"children,omitempty"`
	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	// contains filtered or unexported fields
}

func (*ListChildrenResponse) Descriptor deprecated

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

Deprecated: Use ListChildrenResponse.ProtoReflect.Descriptor instead.

func (*ListChildrenResponse) GetChildren

func (x *ListChildrenResponse) GetChildren() []*EID

func (*ListChildrenResponse) GetNextPageToken

func (x *ListChildrenResponse) GetNextPageToken() string

func (*ListChildrenResponse) ProtoMessage

func (*ListChildrenResponse) ProtoMessage()

func (*ListChildrenResponse) ProtoReflect

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

func (*ListChildrenResponse) Reset

func (x *ListChildrenResponse) Reset()

func (*ListChildrenResponse) String

func (x *ListChildrenResponse) String() string

type ListParentsRequest

type ListParentsRequest struct {
	Universe string `protobuf:"bytes,1,opt,name=universe,proto3" json:"universe,omitempty"`
	// The token for the next page.
	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	Child     *EID   `protobuf:"bytes,3,opt,name=child,proto3" json:"child,omitempty"`
	// contains filtered or unexported fields
}

func (*ListParentsRequest) Descriptor deprecated

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

Deprecated: Use ListParentsRequest.ProtoReflect.Descriptor instead.

func (*ListParentsRequest) GetChild

func (x *ListParentsRequest) GetChild() *EID

func (*ListParentsRequest) GetPageToken

func (x *ListParentsRequest) GetPageToken() string

func (*ListParentsRequest) GetUniverse

func (x *ListParentsRequest) GetUniverse() string

func (*ListParentsRequest) ProtoMessage

func (*ListParentsRequest) ProtoMessage()

func (*ListParentsRequest) ProtoReflect

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

func (*ListParentsRequest) Reset

func (x *ListParentsRequest) Reset()

func (*ListParentsRequest) String

func (x *ListParentsRequest) String() string

type ListParentsResponse

type ListParentsResponse struct {
	Parents       []*EID `protobuf:"bytes,1,rep,name=parents,proto3" json:"parents,omitempty"`
	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	// contains filtered or unexported fields
}

func (*ListParentsResponse) Descriptor deprecated

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

Deprecated: Use ListParentsResponse.ProtoReflect.Descriptor instead.

func (*ListParentsResponse) GetNextPageToken

func (x *ListParentsResponse) GetNextPageToken() string

func (*ListParentsResponse) GetParents

func (x *ListParentsResponse) GetParents() []*EID

func (*ListParentsResponse) ProtoMessage

func (*ListParentsResponse) ProtoMessage()

func (*ListParentsResponse) ProtoReflect

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

func (*ListParentsResponse) Reset

func (x *ListParentsResponse) Reset()

func (*ListParentsResponse) String

func (x *ListParentsResponse) String() string

type ListRequest

type ListRequest struct {
	Universe string `protobuf:"bytes,1,opt,name=universe,proto3" json:"universe,omitempty"`
	// The token for the next page.
	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	// Filter entities for a particular type
	Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"`
	// If true, will include archived entities in the query
	IncludeArchived bool `protobuf:"varint,6,opt,name=include_archived,json=includeArchived,proto3" json:"include_archived,omitempty"`
	// contains filtered or unexported fields
}

func (*ListRequest) Descriptor deprecated

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

Deprecated: Use ListRequest.ProtoReflect.Descriptor instead.

func (*ListRequest) GetIncludeArchived

func (x *ListRequest) GetIncludeArchived() bool

func (*ListRequest) GetPageToken

func (x *ListRequest) GetPageToken() string

func (*ListRequest) GetType

func (x *ListRequest) GetType() string

func (*ListRequest) GetUniverse

func (x *ListRequest) GetUniverse() string

func (*ListRequest) ProtoMessage

func (*ListRequest) ProtoMessage()

func (*ListRequest) ProtoReflect

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

func (*ListRequest) Reset

func (x *ListRequest) Reset()

func (*ListRequest) String

func (x *ListRequest) String() string

type ListResponse

type ListResponse struct {
	Entities      []*Entity `protobuf:"bytes,1,rep,name=entities,proto3" json:"entities,omitempty"`
	NextPageToken string    `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	// contains filtered or unexported fields
}

func (*ListResponse) Descriptor deprecated

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

Deprecated: Use ListResponse.ProtoReflect.Descriptor instead.

func (*ListResponse) GetEntities

func (x *ListResponse) GetEntities() []*Entity

func (*ListResponse) GetNextPageToken

func (x *ListResponse) GetNextPageToken() string

func (*ListResponse) ProtoMessage

func (*ListResponse) ProtoMessage()

func (*ListResponse) ProtoReflect

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

func (*ListResponse) Reset

func (x *ListResponse) Reset()

func (*ListResponse) String

func (x *ListResponse) String() string

type Record

type Record struct {
	Attributes []*Attribute `protobuf:"bytes,1,rep,name=attributes,proto3" json:"attributes,omitempty"`
	// contains filtered or unexported fields
}

func (*Record) Descriptor deprecated

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

Deprecated: Use Record.ProtoReflect.Descriptor instead.

func (*Record) GetAttributes

func (x *Record) GetAttributes() []*Attribute

func (*Record) ProtoMessage

func (*Record) ProtoMessage()

func (*Record) ProtoReflect

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

func (*Record) Reset

func (x *Record) Reset()

func (*Record) String

func (x *Record) String() string

type SelectRequest

type SelectRequest struct {
	Universe string `protobuf:"bytes,1,opt,name=universe,proto3" json:"universe,omitempty"`
	// The topmost parent entity to perform the selection on.
	// The entity service will load the descendents of this entity to
	// load all of the 'resource_type' resources belonging to this entity.
	BelongingTo  *EID   `protobuf:"bytes,2,opt,name=belonging_to,json=belongingTo,proto3" json:"belonging_to,omitempty"`
	ResourceType string `protobuf:"bytes,3,opt,name=resource_type,json=resourceType,proto3" json:"resource_type,omitempty"`
	// A Cedar expression to match entities for.
	When string `protobuf:"bytes,4,opt,name=when,proto3" json:"when,omitempty"`
	// contains filtered or unexported fields
}

func (*SelectRequest) Descriptor deprecated

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

Deprecated: Use SelectRequest.ProtoReflect.Descriptor instead.

func (*SelectRequest) GetBelongingTo

func (x *SelectRequest) GetBelongingTo() *EID

func (*SelectRequest) GetResourceType

func (x *SelectRequest) GetResourceType() string

func (*SelectRequest) GetUniverse

func (x *SelectRequest) GetUniverse() string

func (*SelectRequest) GetWhen

func (x *SelectRequest) GetWhen() string

func (*SelectRequest) ProtoMessage

func (*SelectRequest) ProtoMessage()

func (*SelectRequest) ProtoReflect

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

func (*SelectRequest) Reset

func (x *SelectRequest) Reset()

func (*SelectRequest) String

func (x *SelectRequest) String() string

type SelectResponse

type SelectResponse struct {
	Entities []*Entity `protobuf:"bytes,1,rep,name=entities,proto3" json:"entities,omitempty"`
	// contains filtered or unexported fields
}

func (*SelectResponse) Descriptor deprecated

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

Deprecated: Use SelectResponse.ProtoReflect.Descriptor instead.

func (*SelectResponse) GetEntities

func (x *SelectResponse) GetEntities() []*Entity

func (*SelectResponse) ProtoMessage

func (*SelectResponse) ProtoMessage()

func (*SelectResponse) ProtoReflect

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

func (*SelectResponse) Reset

func (x *SelectResponse) Reset()

func (*SelectResponse) String

func (x *SelectResponse) String() string

type Set

type Set struct {
	Values []*Value `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"`
	// contains filtered or unexported fields
}

func (*Set) Descriptor deprecated

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

Deprecated: Use Set.ProtoReflect.Descriptor instead.

func (*Set) GetValues

func (x *Set) GetValues() []*Value

func (*Set) ProtoMessage

func (*Set) ProtoMessage()

func (*Set) ProtoReflect

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

func (*Set) Reset

func (x *Set) Reset()

func (*Set) String

func (x *Set) String() string

type Value

type Value struct {

	// Types that are assignable to Value:
	//
	//	*Value_Str
	//	*Value_Bool
	//	*Value_Long
	//	*Value_Entity
	//	*Value_Record
	//	*Value_Set
	Value isValue_Value `protobuf_oneof:"value"`
	// contains filtered or unexported fields
}

func (*Value) Descriptor deprecated

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

Deprecated: Use Value.ProtoReflect.Descriptor instead.

func (*Value) GetBool

func (x *Value) GetBool() bool

func (*Value) GetEntity

func (x *Value) GetEntity() *EID

func (*Value) GetLong

func (x *Value) GetLong() int64

func (*Value) GetRecord

func (x *Value) GetRecord() *Record

func (*Value) GetSet

func (x *Value) GetSet() *Set

func (*Value) GetStr

func (x *Value) GetStr() string

func (*Value) GetValue

func (m *Value) GetValue() isValue_Value

func (*Value) ProtoMessage

func (*Value) ProtoMessage()

func (*Value) ProtoReflect

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

func (*Value) Reset

func (x *Value) Reset()

func (*Value) String

func (x *Value) String() string

type Value_Bool

type Value_Bool struct {
	Bool bool `protobuf:"varint,2,opt,name=bool,proto3,oneof"`
}

type Value_Entity

type Value_Entity struct {
	Entity *EID `protobuf:"bytes,4,opt,name=entity,proto3,oneof"`
}

type Value_Long

type Value_Long struct {
	Long int64 `protobuf:"varint,3,opt,name=long,proto3,oneof"`
}

type Value_Record

type Value_Record struct {
	Record *Record `protobuf:"bytes,5,opt,name=record,proto3,oneof"`
}

type Value_Set

type Value_Set struct {
	Set *Set `protobuf:"bytes,6,opt,name=set,proto3,oneof"`
}

type Value_Str

type Value_Str struct {
	Str string `protobuf:"bytes,1,opt,name=str,proto3,oneof"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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