Documentation ¶
Index ¶
- type ClientFederationAPI
- type FederationClient
- type FederationClientError
- type FederationInternalAPI
- type InputPublicKeysRequest
- type InputPublicKeysResponse
- type KeyserverFederationAPI
- type PerformBroadcastEDURequest
- type PerformBroadcastEDUResponse
- type PerformDirectoryLookupRequest
- type PerformDirectoryLookupResponse
- type PerformInviteRequest
- type PerformInviteResponse
- type PerformJoinRequest
- type PerformJoinResponse
- type PerformLeaveRequest
- type PerformLeaveResponse
- type PerformOutboundPeekRequest
- type PerformOutboundPeekResponse
- type QueryJoinedHostServerNamesInRoomRequest
- type QueryJoinedHostServerNamesInRoomResponse
- type QueryPublicKeysRequest
- type QueryPublicKeysResponse
- type QueryServerKeysRequest
- type QueryServerKeysResponse
- type RoomserverFederationAPI
- type ServersInRoomProvider
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ClientFederationAPI ¶ added in v0.8.3
type ClientFederationAPI interface { // Query the server names of the joined hosts in a room. // Unlike QueryJoinedHostsInRoom, this function returns a de-duplicated slice // containing only the server names (without information for membership events). // The response will include this server if they are joined to the room. QueryJoinedHostServerNamesInRoom(ctx context.Context, request *QueryJoinedHostServerNamesInRoomRequest, response *QueryJoinedHostServerNamesInRoomResponse) error }
type FederationClient ¶ added in v0.6.0
type FederationClient interface { gomatrixserverlib.KeyClient SendTransaction(ctx context.Context, t gomatrixserverlib.Transaction) (res gomatrixserverlib.RespSend, err error) // Perform operations LookupRoomAlias(ctx context.Context, s gomatrixserverlib.ServerName, roomAlias string) (res gomatrixserverlib.RespDirectory, err error) Peek(ctx context.Context, s gomatrixserverlib.ServerName, roomID, peekID string, roomVersions []gomatrixserverlib.RoomVersion) (res gomatrixserverlib.RespPeek, err error) MakeJoin(ctx context.Context, s gomatrixserverlib.ServerName, roomID, userID string, roomVersions []gomatrixserverlib.RoomVersion) (res gomatrixserverlib.RespMakeJoin, err error) SendJoin(ctx context.Context, s gomatrixserverlib.ServerName, event *gomatrixserverlib.Event) (res gomatrixserverlib.RespSendJoin, err error) MakeLeave(ctx context.Context, s gomatrixserverlib.ServerName, roomID, userID string) (res gomatrixserverlib.RespMakeLeave, err error) SendLeave(ctx context.Context, s gomatrixserverlib.ServerName, event *gomatrixserverlib.Event) (err error) SendInviteV2(ctx context.Context, s gomatrixserverlib.ServerName, request gomatrixserverlib.InviteV2Request) (res gomatrixserverlib.RespInviteV2, err error) GetEvent(ctx context.Context, s gomatrixserverlib.ServerName, eventID string) (res gomatrixserverlib.Transaction, err error) GetEventAuth(ctx context.Context, s gomatrixserverlib.ServerName, roomVersion gomatrixserverlib.RoomVersion, roomID, eventID string) (res gomatrixserverlib.RespEventAuth, err error) GetUserDevices(ctx context.Context, s gomatrixserverlib.ServerName, userID string) (gomatrixserverlib.RespUserDevices, error) ClaimKeys(ctx context.Context, s gomatrixserverlib.ServerName, oneTimeKeys map[string]map[string]string) (gomatrixserverlib.RespClaimKeys, error) QueryKeys(ctx context.Context, s gomatrixserverlib.ServerName, keys map[string][]string) (gomatrixserverlib.RespQueryKeys, error) Backfill(ctx context.Context, s gomatrixserverlib.ServerName, roomID string, limit int, eventIDs []string) (res gomatrixserverlib.Transaction, err error) MSC2836EventRelationships(ctx context.Context, dst gomatrixserverlib.ServerName, r gomatrixserverlib.MSC2836EventRelationshipsRequest, roomVersion gomatrixserverlib.RoomVersion) (res gomatrixserverlib.MSC2836EventRelationshipsResponse, err error) MSC2946Spaces(ctx context.Context, dst gomatrixserverlib.ServerName, roomID string, suggestedOnly bool) (res gomatrixserverlib.MSC2946SpacesResponse, err error) ExchangeThirdPartyInvite(ctx context.Context, s gomatrixserverlib.ServerName, builder gomatrixserverlib.EventBuilder) (err error) LookupState(ctx context.Context, s gomatrixserverlib.ServerName, roomID string, eventID string, roomVersion gomatrixserverlib.RoomVersion) (res gomatrixserverlib.RespState, err error) LookupStateIDs(ctx context.Context, s gomatrixserverlib.ServerName, roomID string, eventID string) (res gomatrixserverlib.RespStateIDs, err error) LookupMissingEvents(ctx context.Context, s gomatrixserverlib.ServerName, roomID string, missing gomatrixserverlib.MissingEvents, roomVersion gomatrixserverlib.RoomVersion) (res gomatrixserverlib.RespMissingEvents, err error) }
an interface for gmsl.FederationClient - contains functions called by federationapi only.
type FederationClientError ¶ added in v0.6.0
FederationClientError is returned from FederationClient methods in the event of a problem.
func (FederationClientError) Error ¶ added in v0.6.0
func (e FederationClientError) Error() string
type FederationInternalAPI ¶ added in v0.6.0
type FederationInternalAPI interface { gomatrixserverlib.FederatedStateClient KeyserverFederationAPI gomatrixserverlib.KeyDatabase ClientFederationAPI RoomserverFederationAPI QueryServerKeys(ctx context.Context, request *QueryServerKeysRequest, response *QueryServerKeysResponse) error LookupServerKeys(ctx context.Context, s gomatrixserverlib.ServerName, keyRequests map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.Timestamp) ([]gomatrixserverlib.ServerKeys, error) MSC2836EventRelationships(ctx context.Context, dst gomatrixserverlib.ServerName, r gomatrixserverlib.MSC2836EventRelationshipsRequest, roomVersion gomatrixserverlib.RoomVersion) (res gomatrixserverlib.MSC2836EventRelationshipsResponse, err error) MSC2946Spaces(ctx context.Context, dst gomatrixserverlib.ServerName, roomID string, suggestedOnly bool) (res gomatrixserverlib.MSC2946SpacesResponse, err error) // Broadcasts an EDU to all servers in rooms we are joined to. Used in the yggdrasil demos. PerformBroadcastEDU( ctx context.Context, request *PerformBroadcastEDURequest, response *PerformBroadcastEDUResponse, ) error }
FederationInternalAPI is used to query information from the federation sender.
type InputPublicKeysRequest ¶ added in v0.6.0
type InputPublicKeysRequest struct {
Keys map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult `json:"keys"`
}
type InputPublicKeysResponse ¶ added in v0.6.0
type InputPublicKeysResponse struct { }
type KeyserverFederationAPI ¶ added in v0.8.6
type KeyserverFederationAPI interface { GetUserDevices(ctx context.Context, s gomatrixserverlib.ServerName, userID string) (res gomatrixserverlib.RespUserDevices, err error) ClaimKeys(ctx context.Context, s gomatrixserverlib.ServerName, oneTimeKeys map[string]map[string]string) (res gomatrixserverlib.RespClaimKeys, err error) QueryKeys(ctx context.Context, s gomatrixserverlib.ServerName, keys map[string][]string) (res gomatrixserverlib.RespQueryKeys, err error) }
KeyserverFederationAPI is a subset of gomatrixserverlib.FederationClient functions which the keyserver implements as proxy calls, with built-in backoff/retries/etc. Errors returned from functions in this interface are of type FederationClientError
type PerformBroadcastEDURequest ¶ added in v0.6.0
type PerformBroadcastEDURequest struct { }
type PerformBroadcastEDUResponse ¶ added in v0.6.0
type PerformBroadcastEDUResponse struct { }
type PerformDirectoryLookupRequest ¶ added in v0.6.0
type PerformDirectoryLookupRequest struct { RoomAlias string `json:"room_alias"` ServerName gomatrixserverlib.ServerName `json:"server_name"` }
type PerformDirectoryLookupResponse ¶ added in v0.6.0
type PerformDirectoryLookupResponse struct { RoomID string `json:"room_id"` ServerNames []gomatrixserverlib.ServerName `json:"server_names"` }
type PerformInviteRequest ¶ added in v0.6.0
type PerformInviteRequest struct { RoomVersion gomatrixserverlib.RoomVersion `json:"room_version"` Event *gomatrixserverlib.HeaderedEvent `json:"event"` InviteRoomState []gomatrixserverlib.InviteV2StrippedState `json:"invite_room_state"` }
type PerformInviteResponse ¶ added in v0.6.0
type PerformInviteResponse struct {
Event *gomatrixserverlib.HeaderedEvent `json:"event"`
}
type PerformJoinRequest ¶ added in v0.6.0
type PerformJoinRequest struct { RoomID string `json:"room_id"` UserID string `json:"user_id"` // The sorted list of servers to try. Servers will be tried sequentially, after de-duplication. ServerNames types.ServerNames `json:"server_names"` Content map[string]interface{} `json:"content"` }
type PerformJoinResponse ¶ added in v0.6.0
type PerformJoinResponse struct { JoinedVia gomatrixserverlib.ServerName LastError *gomatrix.HTTPError }
type PerformLeaveRequest ¶ added in v0.6.0
type PerformLeaveRequest struct { RoomID string `json:"room_id"` UserID string `json:"user_id"` ServerNames types.ServerNames `json:"server_names"` }
type PerformLeaveResponse ¶ added in v0.6.0
type PerformLeaveResponse struct { }
type PerformOutboundPeekRequest ¶ added in v0.6.0
type PerformOutboundPeekRequest struct { RoomID string `json:"room_id"` // The sorted list of servers to try. Servers will be tried sequentially, after de-duplication. ServerNames types.ServerNames `json:"server_names"` }
type PerformOutboundPeekResponse ¶ added in v0.6.0
type QueryJoinedHostServerNamesInRoomRequest ¶ added in v0.6.0
type QueryJoinedHostServerNamesInRoomRequest struct { RoomID string `json:"room_id"` ExcludeSelf bool `json:"exclude_self"` }
QueryJoinedHostServerNamesInRoomRequest is a request to QueryJoinedHostServerNames
type QueryJoinedHostServerNamesInRoomResponse ¶ added in v0.6.0
type QueryJoinedHostServerNamesInRoomResponse struct {
ServerNames []gomatrixserverlib.ServerName `json:"server_names"`
}
QueryJoinedHostServerNamesInRoomResponse is a response to QueryJoinedHostServerNames
type QueryPublicKeysRequest ¶ added in v0.6.0
type QueryPublicKeysRequest struct {
Requests map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.Timestamp `json:"requests"`
}
type QueryPublicKeysResponse ¶ added in v0.6.0
type QueryPublicKeysResponse struct {
Results map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult `json:"results"`
}
type QueryServerKeysRequest ¶ added in v0.6.0
type QueryServerKeysRequest struct { ServerName gomatrixserverlib.ServerName KeyIDToCriteria map[gomatrixserverlib.KeyID]gomatrixserverlib.PublicKeyNotaryQueryCriteria }
func (*QueryServerKeysRequest) KeyIDs ¶ added in v0.6.0
func (q *QueryServerKeysRequest) KeyIDs() []gomatrixserverlib.KeyID
type QueryServerKeysResponse ¶ added in v0.6.0
type QueryServerKeysResponse struct {
ServerKeys []gomatrixserverlib.ServerKeys
}
type RoomserverFederationAPI ¶ added in v0.8.3
type RoomserverFederationAPI interface { gomatrixserverlib.BackfillClient gomatrixserverlib.FederatedStateClient KeyRing() *gomatrixserverlib.KeyRing // PerformDirectoryLookup looks up a remote room ID from a room alias. PerformDirectoryLookup(ctx context.Context, request *PerformDirectoryLookupRequest, response *PerformDirectoryLookupResponse) error // Handle an instruction to make_join & send_join with a remote server. PerformJoin(ctx context.Context, request *PerformJoinRequest, response *PerformJoinResponse) // Handle an instruction to make_leave & send_leave with a remote server. PerformLeave(ctx context.Context, request *PerformLeaveRequest, response *PerformLeaveResponse) error // Handle sending an invite to a remote server. PerformInvite(ctx context.Context, request *PerformInviteRequest, response *PerformInviteResponse) error // Handle an instruction to peek a room on a remote server. PerformOutboundPeek(ctx context.Context, request *PerformOutboundPeekRequest, response *PerformOutboundPeekResponse) error // Query the server names of the joined hosts in a room. // Unlike QueryJoinedHostsInRoom, this function returns a de-duplicated slice // containing only the server names (without information for membership events). // The response will include this server if they are joined to the room. QueryJoinedHostServerNamesInRoom(ctx context.Context, request *QueryJoinedHostServerNamesInRoomRequest, response *QueryJoinedHostServerNamesInRoomResponse) error GetEventAuth(ctx context.Context, s gomatrixserverlib.ServerName, roomVersion gomatrixserverlib.RoomVersion, roomID, eventID string) (res gomatrixserverlib.RespEventAuth, err error) GetEvent(ctx context.Context, s gomatrixserverlib.ServerName, eventID string) (res gomatrixserverlib.Transaction, err error) LookupMissingEvents(ctx context.Context, s gomatrixserverlib.ServerName, roomID string, missing gomatrixserverlib.MissingEvents, roomVersion gomatrixserverlib.RoomVersion) (res gomatrixserverlib.RespMissingEvents, err error) }
type ServersInRoomProvider ¶
type ServersInRoomProvider interface {
GetServersForRoom(ctx context.Context, roomID string, event *gomatrixserverlib.Event) []gomatrixserverlib.ServerName
}