All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.sh.christian.ozone.BlueskyApi.kt Maven / Gradle / Ivy

The newest version!
package sh.christian.ozone

import app.bsky.actor.GetPreferencesResponse
import app.bsky.actor.GetProfileQueryParams
import app.bsky.actor.GetProfileResponse
import app.bsky.actor.GetProfilesQueryParams
import app.bsky.actor.GetProfilesResponse
import app.bsky.actor.GetSuggestionsQueryParams
import app.bsky.actor.GetSuggestionsResponse
import app.bsky.actor.SearchActorsQueryParams
import app.bsky.actor.SearchActorsResponse
import app.bsky.actor.SearchActorsTypeaheadQueryParams
import app.bsky.actor.SearchActorsTypeaheadResponse
import app.bsky.feed.DescribeFeedGeneratorResponse
import app.bsky.feed.GetActorFeedsQueryParams
import app.bsky.feed.GetActorFeedsResponse
import app.bsky.feed.GetActorLikesQueryParams
import app.bsky.feed.GetActorLikesResponse
import app.bsky.feed.GetAuthorFeedQueryParams
import app.bsky.feed.GetAuthorFeedResponse
import app.bsky.feed.GetFeedGeneratorQueryParams
import app.bsky.feed.GetFeedGeneratorResponse
import app.bsky.feed.GetFeedGeneratorsQueryParams
import app.bsky.feed.GetFeedGeneratorsResponse
import app.bsky.feed.GetFeedQueryParams
import app.bsky.feed.GetFeedResponse
import app.bsky.feed.GetFeedSkeletonQueryParams
import app.bsky.feed.GetFeedSkeletonResponse
import app.bsky.feed.GetLikesQueryParams
import app.bsky.feed.GetLikesResponse
import app.bsky.feed.GetListFeedQueryParams
import app.bsky.feed.GetListFeedResponse
import app.bsky.feed.GetPostThreadQueryParams
import app.bsky.feed.GetPostThreadResponse
import app.bsky.feed.GetPostsQueryParams
import app.bsky.feed.GetPostsResponse
import app.bsky.feed.GetQuotesQueryParams
import app.bsky.feed.GetQuotesResponse
import app.bsky.feed.GetRepostedByQueryParams
import app.bsky.feed.GetRepostedByResponse
import app.bsky.feed.GetSuggestedFeedsQueryParams
import app.bsky.feed.GetSuggestedFeedsResponse
import app.bsky.feed.GetTimelineQueryParams
import app.bsky.feed.GetTimelineResponse
import app.bsky.feed.SearchPostsQueryParams
import app.bsky.feed.SearchPostsResponse
import app.bsky.feed.SendInteractionsRequest
import app.bsky.feed.SendInteractionsResponse
import app.bsky.graph.GetActorStarterPacksQueryParams
import app.bsky.graph.GetActorStarterPacksResponse
import app.bsky.graph.GetBlocksResponse
import app.bsky.graph.GetFollowersQueryParams
import app.bsky.graph.GetFollowersResponse
import app.bsky.graph.GetFollowsQueryParams
import app.bsky.graph.GetFollowsResponse
import app.bsky.graph.GetKnownFollowersQueryParams
import app.bsky.graph.GetKnownFollowersResponse
import app.bsky.graph.GetListBlocksQueryParams
import app.bsky.graph.GetListBlocksResponse
import app.bsky.graph.GetListMutesQueryParams
import app.bsky.graph.GetListMutesResponse
import app.bsky.graph.GetListQueryParams
import app.bsky.graph.GetListResponse
import app.bsky.graph.GetListsQueryParams
import app.bsky.graph.GetListsResponse
import app.bsky.graph.GetMutesQueryParams
import app.bsky.graph.GetMutesResponse
import app.bsky.graph.GetRelationshipsQueryParams
import app.bsky.graph.GetRelationshipsResponse
import app.bsky.graph.GetStarterPackQueryParams
import app.bsky.graph.GetStarterPackResponse
import app.bsky.graph.GetStarterPacksQueryParams
import app.bsky.graph.GetStarterPacksResponse
import app.bsky.graph.GetSuggestedFollowsByActorQueryParams
import app.bsky.graph.GetSuggestedFollowsByActorResponse
import app.bsky.graph.MuteActorListRequest
import app.bsky.graph.MuteActorRequest
import app.bsky.graph.MuteThreadRequest
import app.bsky.graph.UnmuteActorListRequest
import app.bsky.graph.UnmuteActorRequest
import app.bsky.graph.UnmuteThreadRequest
import app.bsky.labeler.GetServicesQueryParams
import app.bsky.labeler.GetServicesResponse
import app.bsky.notification.GetUnreadCountQueryParams
import app.bsky.notification.GetUnreadCountResponse
import app.bsky.notification.ListNotificationsQueryParams
import app.bsky.notification.ListNotificationsResponse
import app.bsky.notification.RegisterPushRequest
import app.bsky.notification.UpdateSeenRequest
import app.bsky.video.GetJobStatusQueryParams
import app.bsky.video.GetJobStatusResponse
import app.bsky.video.GetUploadLimitsResponse
import app.bsky.video.UploadVideoResponse
import chat.bsky.actor.DeleteAccountResponse
import chat.bsky.convo.DeleteMessageForSelfRequest
import chat.bsky.convo.DeleteMessageForSelfResponse
import chat.bsky.convo.GetConvoForMembersQueryParams
import chat.bsky.convo.GetConvoForMembersResponse
import chat.bsky.convo.GetConvoQueryParams
import chat.bsky.convo.GetConvoResponse
import chat.bsky.convo.GetLogQueryParams
import chat.bsky.convo.GetLogResponse
import chat.bsky.convo.GetMessagesQueryParams
import chat.bsky.convo.GetMessagesResponse
import chat.bsky.convo.LeaveConvoRequest
import chat.bsky.convo.LeaveConvoResponse
import chat.bsky.convo.ListConvosQueryParams
import chat.bsky.convo.ListConvosResponse
import chat.bsky.convo.MuteConvoRequest
import chat.bsky.convo.MuteConvoResponse
import chat.bsky.convo.SendMessageBatchRequest
import chat.bsky.convo.SendMessageBatchResponse
import chat.bsky.convo.SendMessageRequest
import chat.bsky.convo.SendMessageResponse
import chat.bsky.convo.UnmuteConvoRequest
import chat.bsky.convo.UnmuteConvoResponse
import chat.bsky.convo.UpdateReadRequest
import chat.bsky.convo.UpdateReadResponse
import chat.bsky.moderation.GetActorMetadataQueryParams
import chat.bsky.moderation.GetActorMetadataResponse
import chat.bsky.moderation.GetMessageContextQueryParams
import chat.bsky.moderation.GetMessageContextResponse
import chat.bsky.moderation.UpdateActorAccessRequest
import com.atproto.admin.DisableAccountInvitesRequest
import com.atproto.admin.DisableInviteCodesRequest
import com.atproto.admin.EnableAccountInvitesRequest
import com.atproto.admin.GetAccountInfoQueryParams
import com.atproto.admin.GetAccountInfoResponse
import com.atproto.admin.GetAccountInfosQueryParams
import com.atproto.admin.GetAccountInfosResponse
import com.atproto.admin.GetInviteCodesQueryParams
import com.atproto.admin.GetInviteCodesResponse
import com.atproto.admin.GetSubjectStatusQueryParams
import com.atproto.admin.GetSubjectStatusResponse
import com.atproto.admin.SendEmailRequest
import com.atproto.admin.SendEmailResponse
import com.atproto.admin.UpdateAccountEmailRequest
import com.atproto.admin.UpdateAccountHandleRequest
import com.atproto.admin.UpdateAccountPasswordRequest
import com.atproto.admin.UpdateSubjectStatusRequest
import com.atproto.admin.UpdateSubjectStatusResponse
import com.atproto.identity.GetRecommendedDidCredentialsResponse
import com.atproto.identity.ResolveHandleQueryParams
import com.atproto.identity.ResolveHandleResponse
import com.atproto.identity.SignPlcOperationRequest
import com.atproto.identity.SignPlcOperationResponse
import com.atproto.identity.SubmitPlcOperationRequest
import com.atproto.identity.UpdateHandleRequest
import com.atproto.label.QueryLabelsQueryParams
import com.atproto.label.QueryLabelsResponse
import com.atproto.label.SubscribeLabelsMessage
import com.atproto.label.SubscribeLabelsQueryParams
import com.atproto.moderation.CreateReportRequest
import com.atproto.moderation.CreateReportResponse
import com.atproto.repo.ApplyWritesRequest
import com.atproto.repo.ApplyWritesResponse
import com.atproto.repo.CreateRecordRequest
import com.atproto.repo.CreateRecordResponse
import com.atproto.repo.DeleteRecordRequest
import com.atproto.repo.DeleteRecordResponse
import com.atproto.repo.DescribeRepoQueryParams
import com.atproto.repo.DescribeRepoResponse
import com.atproto.repo.ListMissingBlobsQueryParams
import com.atproto.repo.ListMissingBlobsResponse
import com.atproto.repo.ListRecordsQueryParams
import com.atproto.repo.ListRecordsResponse
import com.atproto.repo.PutRecordRequest
import com.atproto.repo.PutRecordResponse
import com.atproto.repo.UploadBlobResponse
import com.atproto.server.CheckAccountStatusResponse
import com.atproto.server.ConfirmEmailRequest
import com.atproto.server.CreateAccountRequest
import com.atproto.server.CreateAccountResponse
import com.atproto.server.CreateAppPasswordRequest
import com.atproto.server.CreateAppPasswordResponse
import com.atproto.server.CreateInviteCodeRequest
import com.atproto.server.CreateInviteCodeResponse
import com.atproto.server.CreateInviteCodesRequest
import com.atproto.server.CreateInviteCodesResponse
import com.atproto.server.CreateSessionRequest
import com.atproto.server.CreateSessionResponse
import com.atproto.server.DeactivateAccountRequest
import com.atproto.server.DescribeServerResponse
import com.atproto.server.GetAccountInviteCodesQueryParams
import com.atproto.server.GetAccountInviteCodesResponse
import com.atproto.server.GetServiceAuthQueryParams
import com.atproto.server.GetServiceAuthResponse
import com.atproto.server.GetSessionResponse
import com.atproto.server.ListAppPasswordsResponse
import com.atproto.server.RefreshSessionResponse
import com.atproto.server.RequestEmailUpdateResponse
import com.atproto.server.RequestPasswordResetRequest
import com.atproto.server.ReserveSigningKeyRequest
import com.atproto.server.ReserveSigningKeyResponse
import com.atproto.server.ResetPasswordRequest
import com.atproto.server.RevokeAppPasswordRequest
import com.atproto.server.UpdateEmailRequest
import com.atproto.sync.GetBlobQueryParams
import com.atproto.sync.GetCheckoutQueryParams
import com.atproto.sync.GetHeadQueryParams
import com.atproto.sync.GetHeadResponse
import com.atproto.sync.GetLatestCommitQueryParams
import com.atproto.sync.GetLatestCommitResponse
import com.atproto.sync.GetRepoStatusQueryParams
import com.atproto.sync.GetRepoStatusResponse
import com.atproto.sync.ListBlobsQueryParams
import com.atproto.sync.ListBlobsResponse
import com.atproto.sync.ListReposQueryParams
import com.atproto.sync.ListReposResponse
import com.atproto.sync.NotifyOfUpdateRequest
import com.atproto.sync.RequestCrawlRequest
import com.atproto.sync.SubscribeReposMessage
import com.atproto.sync.SubscribeReposQueryParams
import com.atproto.temp.CheckSignupQueueResponse
import com.atproto.temp.FetchLabelsQueryParams
import com.atproto.temp.FetchLabelsResponse
import com.atproto.temp.RequestPhoneVerificationRequest
import kotlin.ByteArray
import kotlin.Deprecated
import kotlin.Unit
import kotlinx.coroutines.flow.Flow
import sh.christian.ozone.api.response.AtpResponse
import tools.ozone.`set`.AddValuesRequest
import tools.ozone.`set`.DeleteSetRequest
import tools.ozone.`set`.DeleteSetResponse
import tools.ozone.`set`.DeleteValuesRequest
import tools.ozone.`set`.GetValuesQueryParams
import tools.ozone.`set`.GetValuesResponse
import tools.ozone.`set`.QuerySetsQueryParams
import tools.ozone.`set`.QuerySetsResponse
import tools.ozone.`set`.UpsertSetRequest
import tools.ozone.`set`.UpsertSetResponse
import tools.ozone.communication.CreateTemplateRequest
import tools.ozone.communication.CreateTemplateResponse
import tools.ozone.communication.DeleteTemplateRequest
import tools.ozone.communication.ListTemplatesResponse
import tools.ozone.communication.UpdateTemplateRequest
import tools.ozone.communication.UpdateTemplateResponse
import tools.ozone.moderation.EmitEventRequest
import tools.ozone.moderation.EmitEventResponse
import tools.ozone.moderation.GetEventQueryParams
import tools.ozone.moderation.GetEventResponse
import tools.ozone.moderation.GetRecordsQueryParams
import tools.ozone.moderation.GetRecordsResponse
import tools.ozone.moderation.GetRepoResponse
import tools.ozone.moderation.GetReposQueryParams
import tools.ozone.moderation.GetReposResponse
import tools.ozone.moderation.QueryEventsQueryParams
import tools.ozone.moderation.QueryEventsResponse
import tools.ozone.moderation.QueryStatusesQueryParams
import tools.ozone.moderation.QueryStatusesResponse
import tools.ozone.moderation.SearchReposQueryParams
import tools.ozone.moderation.SearchReposResponse
import tools.ozone.server.GetConfigResponse
import tools.ozone.setting.ListOptionsQueryParams
import tools.ozone.setting.ListOptionsResponse
import tools.ozone.setting.RemoveOptionsRequest
import tools.ozone.setting.RemoveOptionsResponse
import tools.ozone.setting.UpsertOptionRequest
import tools.ozone.setting.UpsertOptionResponse
import tools.ozone.signature.FindCorrelationQueryParams
import tools.ozone.signature.FindCorrelationResponse
import tools.ozone.signature.FindRelatedAccountsQueryParams
import tools.ozone.signature.FindRelatedAccountsResponse
import tools.ozone.team.AddMemberRequest
import tools.ozone.team.AddMemberResponse
import tools.ozone.team.DeleteMemberRequest
import tools.ozone.team.ListMembersQueryParams
import tools.ozone.team.ListMembersResponse
import tools.ozone.team.UpdateMemberRequest
import tools.ozone.team.UpdateMemberResponse
import app.bsky.actor.PutPreferencesRequest as ActorPutPreferencesRequest
import app.bsky.graph.GetBlocksQueryParams as GraphGetBlocksQueryParams
import app.bsky.notification.PutPreferencesRequest as NotificationPutPreferencesRequest
import com.atproto.admin.DeleteAccountRequest as AdminDeleteAccountRequest
import com.atproto.admin.SearchAccountsQueryParams as AdminSearchAccountsQueryParams
import com.atproto.admin.SearchAccountsResponse as AdminSearchAccountsResponse
import com.atproto.repo.GetRecordQueryParams as RepoGetRecordQueryParams
import com.atproto.repo.GetRecordResponse as RepoGetRecordResponse
import com.atproto.server.DeleteAccountRequest as ServerDeleteAccountRequest
import com.atproto.sync.GetBlocksQueryParams as SyncGetBlocksQueryParams
import com.atproto.sync.GetRecordQueryParams as SyncGetRecordQueryParams
import com.atproto.sync.GetRepoQueryParams as SyncGetRepoQueryParams
import tools.ozone.moderation.GetRecordQueryParams as ModerationGetRecordQueryParams
import tools.ozone.moderation.GetRecordResponse as ModerationGetRecordResponse
import tools.ozone.moderation.GetRepoQueryParams as ModerationGetRepoQueryParams
import tools.ozone.signature.SearchAccountsQueryParams as SignatureSearchAccountsQueryParams
import tools.ozone.signature.SearchAccountsResponse as SignatureSearchAccountsResponse

public interface BlueskyApi {
  /**
   * Activates a currently deactivated account. Used to finalize account migration after the
   * account's repo is imported and identity is setup.
   */
  public suspend fun activateAccount(): AtpResponse

  /**
   * Add a member to the ozone team. Requires admin role.
   */
  public suspend fun addMember(request: AddMemberRequest): AtpResponse

  /**
   * Add values to a specific set. Attempting to add values to a set that does not exist will result
   * in an error.
   */
  public suspend fun addValues(request: AddValuesRequest): AtpResponse

  /**
   * Apply a batch transaction of repository creates, updates, and deletes. Requires auth,
   * implemented by PDS.
   */
  public suspend fun applyWrites(request: ApplyWritesRequest): AtpResponse

  /**
   * Returns the status of an account, especially as pertaining to import or recovery. Can be called
   * many times over the course of an account migration. Requires auth and can only be called
   * pertaining to oneself.
   */
  public suspend fun checkAccountStatus(): AtpResponse

  /**
   * Check accounts location in signup queue.
   */
  public suspend fun checkSignupQueue(): AtpResponse

  /**
   * Confirm an email using a token from com.atproto.server.requestEmailConfirmation.
   */
  public suspend fun confirmEmail(request: ConfirmEmailRequest): AtpResponse

  /**
   * Create an account. Implemented by PDS.
   */
  public suspend fun createAccount(request: CreateAccountRequest): AtpResponse

  /**
   * Create an App Password.
   */
  public suspend fun createAppPassword(request: CreateAppPasswordRequest): AtpResponse

  /**
   * Create an invite code.
   */
  public suspend fun createInviteCode(request: CreateInviteCodeRequest): AtpResponse

  /**
   * Create invite codes.
   */
  public suspend fun createInviteCodes(request: CreateInviteCodesRequest): AtpResponse

  /**
   * Create a single new repository record. Requires auth, implemented by PDS.
   */
  public suspend fun createRecord(request: CreateRecordRequest): AtpResponse

  /**
   * Submit a moderation report regarding an atproto account or record. Implemented by moderation
   * services (with PDS proxying), and requires auth.
   */
  public suspend fun createReport(request: CreateReportRequest): AtpResponse

  /**
   * Create an authentication session.
   */
  public suspend fun createSession(request: CreateSessionRequest): AtpResponse

  /**
   * Administrative action to create a new, re-usable communication (email for now) template.
   */
  public suspend fun createTemplate(request: CreateTemplateRequest): AtpResponse

  /**
   * Deactivates a currently active account. Stops serving of repo, and future writes to repo until
   * reactivated. Used to finalize account migration with the old host after the account has been
   * activated on the new host.
   */
  public suspend fun deactivateAccount(request: DeactivateAccountRequest): AtpResponse

  /**
   * Delete an actor's account with a token and password. Can only be called after requesting a
   * deletion token. Requires auth.
   */
  public suspend fun deleteAccount(request: ServerDeleteAccountRequest): AtpResponse

  /**
   * Delete a user account as an administrator.
   */
  public suspend fun deleteAccount(request: AdminDeleteAccountRequest): AtpResponse

  public suspend fun deleteAccount(): AtpResponse

  /**
   * Delete a member from ozone team. Requires admin role.
   */
  public suspend fun deleteMember(request: DeleteMemberRequest): AtpResponse

  public suspend fun deleteMessageForSelf(request: DeleteMessageForSelfRequest): AtpResponse

  /**
   * Delete a repository record, or ensure it doesn't exist. Requires auth, implemented by PDS.
   */
  public suspend fun deleteRecord(request: DeleteRecordRequest): AtpResponse

  /**
   * Delete the current session. Requires auth.
   */
  public suspend fun deleteSession(): AtpResponse

  /**
   * Delete an entire set. Attempting to delete a set that does not exist will result in an error.
   */
  public suspend fun deleteSet(request: DeleteSetRequest): AtpResponse

  /**
   * Delete a communication template.
   */
  public suspend fun deleteTemplate(request: DeleteTemplateRequest): AtpResponse

  /**
   * Delete values from a specific set. Attempting to delete values that are not in the set will not
   * result in an error
   */
  public suspend fun deleteValues(request: DeleteValuesRequest): AtpResponse

  /**
   * Get information about a feed generator, including policies and offered feed URIs. Does not
   * require auth; implemented by Feed Generator services (not App View).
   */
  public suspend fun describeFeedGenerator(): AtpResponse

  /**
   * Get information about an account and repository, including the list of collections. Does not
   * require auth.
   */
  public suspend fun describeRepo(params: DescribeRepoQueryParams): AtpResponse

  /**
   * Describes the server's account creation requirements and capabilities. Implemented by PDS.
   */
  public suspend fun describeServer(): AtpResponse

  /**
   * Disable an account from receiving new invite codes, but does not invalidate existing codes.
   */
  public suspend fun disableAccountInvites(request: DisableAccountInvitesRequest): AtpResponse

  /**
   * Disable some set of codes and/or all codes associated with a set of users.
   */
  public suspend fun disableInviteCodes(request: DisableInviteCodesRequest): AtpResponse

  /**
   * Take a moderation action on an actor.
   */
  public suspend fun emitEvent(request: EmitEventRequest): AtpResponse

  /**
   * Re-enable an account's ability to receive invite codes.
   */
  public suspend fun enableAccountInvites(request: EnableAccountInvitesRequest): AtpResponse

  public suspend fun exportAccountData(): AtpResponse

  @Deprecated("DEPRECATED: use queryLabels or subscribeLabels instead -- Fetch all labels from a labeler created after a certain date.")
  public suspend fun fetchLabels(params: FetchLabelsQueryParams): AtpResponse

  /**
   * Find all correlated threat signatures between 2 or more accounts.
   */
  public suspend fun findCorrelation(params: FindCorrelationQueryParams): AtpResponse

  /**
   * Get accounts that share some matching threat signatures with the root account.
   */
  public suspend fun findRelatedAccounts(params: FindRelatedAccountsQueryParams): AtpResponse

  /**
   * Get details about an account.
   */
  public suspend fun getAccountInfo(params: GetAccountInfoQueryParams): AtpResponse

  /**
   * Get details about some accounts.
   */
  public suspend fun getAccountInfos(params: GetAccountInfosQueryParams): AtpResponse

  /**
   * Get all invite codes for the current account. Requires auth.
   */
  public suspend fun getAccountInviteCodes(params: GetAccountInviteCodesQueryParams): AtpResponse

  /**
   * Get a list of feeds (feed generator records) created by the actor (in the actor's repo).
   */
  public suspend fun getActorFeeds(params: GetActorFeedsQueryParams): AtpResponse

  /**
   * Get a list of posts liked by an actor. Requires auth, actor must be the requesting account.
   */
  public suspend fun getActorLikes(params: GetActorLikesQueryParams): AtpResponse

  public suspend fun getActorMetadata(params: GetActorMetadataQueryParams): AtpResponse

  /**
   * Get a list of starter packs created by the actor.
   */
  public suspend fun getActorStarterPacks(params: GetActorStarterPacksQueryParams): AtpResponse

  /**
   * Get a view of an actor's 'author feed' (post and reposts by the author). Does not require auth.
   */
  public suspend fun getAuthorFeed(params: GetAuthorFeedQueryParams): AtpResponse

  /**
   * Get a blob associated with a given account. Returns the full blob as originally uploaded. Does
   * not require auth; implemented by PDS.
   */
  public suspend fun getBlob(params: GetBlobQueryParams): AtpResponse

  /**
   * Get data blocks from a given repo, by CID. For example, intermediate MST nodes, or records.
   * Does not require auth; implemented by PDS.
   */
  public suspend fun getBlocks(params: SyncGetBlocksQueryParams): AtpResponse

  /**
   * Enumerates which accounts the requesting account is currently blocking. Requires auth.
   */
  public suspend fun getBlocks(params: GraphGetBlocksQueryParams): AtpResponse

  @Deprecated("DEPRECATED - please use com.atproto.sync.getRepo instead")
  public suspend fun getCheckout(params: GetCheckoutQueryParams): AtpResponse

  /**
   * Get details about ozone's server configuration.
   */
  public suspend fun getConfig(): AtpResponse

  public suspend fun getConvo(params: GetConvoQueryParams): AtpResponse

  public suspend fun getConvoForMembers(params: GetConvoForMembersQueryParams): AtpResponse

  /**
   * Get details about a moderation event.
   */
  public suspend fun getEvent(params: GetEventQueryParams): AtpResponse

  /**
   * Get a hydrated feed from an actor's selected feed generator. Implemented by App View.
   */
  public suspend fun getFeed(params: GetFeedQueryParams): AtpResponse

  /**
   * Get information about a feed generator. Implemented by AppView.
   */
  public suspend fun getFeedGenerator(params: GetFeedGeneratorQueryParams): AtpResponse

  /**
   * Get information about a list of feed generators.
   */
  public suspend fun getFeedGenerators(params: GetFeedGeneratorsQueryParams): AtpResponse

  /**
   * Get a skeleton of a feed provided by a feed generator. Auth is optional, depending on provider
   * requirements, and provides the DID of the requester. Implemented by Feed Generator Service.
   */
  public suspend fun getFeedSkeleton(params: GetFeedSkeletonQueryParams): AtpResponse

  /**
   * Enumerates accounts which follow a specified account (actor).
   */
  public suspend fun getFollowers(params: GetFollowersQueryParams): AtpResponse

  /**
   * Enumerates accounts which a specified account (actor) follows.
   */
  public suspend fun getFollows(params: GetFollowsQueryParams): AtpResponse

  @Deprecated("DEPRECATED - please use com.atproto.sync.getLatestCommit instead")
  public suspend fun getHead(params: GetHeadQueryParams): AtpResponse

  /**
   * Get an admin view of invite codes.
   */
  public suspend fun getInviteCodes(params: GetInviteCodesQueryParams): AtpResponse

  /**
   * Get status details for a video processing job.
   */
  public suspend fun getJobStatus(params: GetJobStatusQueryParams): AtpResponse

  /**
   * Enumerates accounts which follow a specified account (actor) and are followed by the viewer.
   */
  public suspend fun getKnownFollowers(params: GetKnownFollowersQueryParams): AtpResponse

  /**
   * Get the current commit CID & revision of the specified repo. Does not require auth.
   */
  public suspend fun getLatestCommit(params: GetLatestCommitQueryParams): AtpResponse

  /**
   * Get like records which reference a subject (by AT-URI and CID).
   */
  public suspend fun getLikes(params: GetLikesQueryParams): AtpResponse

  /**
   * Gets a 'view' (with additional context) of a specified list.
   */
  public suspend fun getList(params: GetListQueryParams): AtpResponse

  /**
   * Get mod lists that the requesting account (actor) is blocking. Requires auth.
   */
  public suspend fun getListBlocks(params: GetListBlocksQueryParams): AtpResponse

  /**
   * Get a feed of recent posts from a list (posts and reposts from any actors on the list). Does
   * not require auth.
   */
  public suspend fun getListFeed(params: GetListFeedQueryParams): AtpResponse

  /**
   * Enumerates mod lists that the requesting account (actor) currently has muted. Requires auth.
   */
  public suspend fun getListMutes(params: GetListMutesQueryParams): AtpResponse

  /**
   * Enumerates the lists created by a specified account (actor).
   */
  public suspend fun getLists(params: GetListsQueryParams): AtpResponse

  public suspend fun getLog(params: GetLogQueryParams): AtpResponse

  public suspend fun getMessageContext(params: GetMessageContextQueryParams): AtpResponse

  public suspend fun getMessages(params: GetMessagesQueryParams): AtpResponse

  /**
   * Enumerates accounts that the requesting account (actor) currently has muted. Requires auth.
   */
  public suspend fun getMutes(params: GetMutesQueryParams): AtpResponse

  /**
   * Get posts in a thread. Does not require auth, but additional metadata and filtering will be
   * applied for authed requests.
   */
  public suspend fun getPostThread(params: GetPostThreadQueryParams): AtpResponse

  /**
   * Gets post views for a specified list of posts (by AT-URI). This is sometimes referred to as
   * 'hydrating' a 'feed skeleton'.
   */
  public suspend fun getPosts(params: GetPostsQueryParams): AtpResponse

  /**
   * Get private preferences attached to the current account. Expected use is synchronization
   * between multiple devices, and import/export during account migration. Requires auth.
   */
  public suspend fun getPreferences(): AtpResponse

  /**
   * Get detailed profile view of an actor. Does not require auth, but contains relevant metadata
   * with auth.
   */
  public suspend fun getProfile(params: GetProfileQueryParams): AtpResponse

  /**
   * Get detailed profile views of multiple actors.
   */
  public suspend fun getProfiles(params: GetProfilesQueryParams): AtpResponse

  /**
   * Get a list of quotes for a given post.
   */
  public suspend fun getQuotes(params: GetQuotesQueryParams): AtpResponse

  /**
   * Describe the credentials that should be included in the DID doc of an account that is migrating
   * to this service.
   */
  public suspend fun getRecommendedDidCredentials(): AtpResponse

  /**
   * Get a single record from a repository. Does not require auth.
   */
  public suspend fun getRecord(params: RepoGetRecordQueryParams): AtpResponse

  /**
   * Get data blocks needed to prove the existence or non-existence of record in the current version
   * of repo. Does not require auth.
   */
  public suspend fun getRecord(params: SyncGetRecordQueryParams): AtpResponse

  /**
   * Get details about a record.
   */
  public suspend fun getRecord(params: ModerationGetRecordQueryParams): AtpResponse

  /**
   * Get details about some records.
   */
  public suspend fun getRecords(params: GetRecordsQueryParams): AtpResponse

  /**
   * Enumerates public relationships between one account, and a list of other accounts. Does not
   * require auth.
   */
  public suspend fun getRelationships(params: GetRelationshipsQueryParams): AtpResponse

  /**
   * Download a repository export as CAR file. Optionally only a 'diff' since a previous revision.
   * Does not require auth; implemented by PDS.
   */
  public suspend fun getRepo(params: SyncGetRepoQueryParams): AtpResponse

  /**
   * Get details about a repository.
   */
  public suspend fun getRepo(params: ModerationGetRepoQueryParams): AtpResponse

  /**
   * Get the hosting status for a repository, on this server. Expected to be implemented by PDS and
   * Relay.
   */
  public suspend fun getRepoStatus(params: GetRepoStatusQueryParams): AtpResponse

  /**
   * Get details about some repositories.
   */
  public suspend fun getRepos(params: GetReposQueryParams): AtpResponse

  /**
   * Get a list of reposts for a given post.
   */
  public suspend fun getRepostedBy(params: GetRepostedByQueryParams): AtpResponse

  /**
   * Get a signed token on behalf of the requesting DID for the requested service.
   */
  public suspend fun getServiceAuth(params: GetServiceAuthQueryParams): AtpResponse

  /**
   * Get information about a list of labeler services.
   */
  public suspend fun getServices(params: GetServicesQueryParams): AtpResponse

  /**
   * Get information about the current auth session. Requires auth.
   */
  public suspend fun getSession(): AtpResponse

  /**
   * Gets a view of a starter pack.
   */
  public suspend fun getStarterPack(params: GetStarterPackQueryParams): AtpResponse

  /**
   * Get views for a list of starter packs.
   */
  public suspend fun getStarterPacks(params: GetStarterPacksQueryParams): AtpResponse

  /**
   * Get the service-specific admin status of a subject (account, record, or blob).
   */
  public suspend fun getSubjectStatus(params: GetSubjectStatusQueryParams): AtpResponse

  /**
   * Get a list of suggested feeds (feed generators) for the requesting account.
   */
  public suspend fun getSuggestedFeeds(params: GetSuggestedFeedsQueryParams): AtpResponse

  /**
   * Enumerates follows similar to a given account (actor). Expected use is to recommend additional
   * accounts immediately after following one account.
   */
  public suspend fun getSuggestedFollowsByActor(params: GetSuggestedFollowsByActorQueryParams): AtpResponse

  /**
   * Get a list of suggested actors. Expected use is discovery of accounts to follow during new
   * account onboarding.
   */
  public suspend fun getSuggestions(params: GetSuggestionsQueryParams): AtpResponse

  /**
   * Get a view of the requesting account's home timeline. This is expected to be some form of
   * reverse-chronological feed.
   */
  public suspend fun getTimeline(params: GetTimelineQueryParams): AtpResponse

  /**
   * Count the number of unread notifications for the requesting account. Requires auth.
   */
  public suspend fun getUnreadCount(params: GetUnreadCountQueryParams): AtpResponse

  /**
   * Get video upload limits for the authenticated user.
   */
  public suspend fun getUploadLimits(): AtpResponse

  /**
   * Get a specific set and its values
   */
  public suspend fun getValues(params: GetValuesQueryParams): AtpResponse

  /**
   * Import a repo in the form of a CAR file. Requires Content-Length HTTP header to be set.
   */
  public suspend fun importRepo(request: ByteArray): AtpResponse

  public suspend fun leaveConvo(request: LeaveConvoRequest): AtpResponse

  /**
   * List all App Passwords.
   */
  public suspend fun listAppPasswords(): AtpResponse

  /**
   * List blob CIDs for an account, since some repo revision. Does not require auth; implemented by
   * PDS.
   */
  public suspend fun listBlobs(params: ListBlobsQueryParams): AtpResponse

  public suspend fun listConvos(params: ListConvosQueryParams): AtpResponse

  /**
   * List all members with access to the ozone service.
   */
  public suspend fun listMembers(params: ListMembersQueryParams): AtpResponse

  /**
   * Returns a list of missing blobs for the requesting account. Intended to be used in the account
   * migration flow.
   */
  public suspend fun listMissingBlobs(params: ListMissingBlobsQueryParams): AtpResponse

  /**
   * Enumerate notifications for the requesting account. Requires auth.
   */
  public suspend fun listNotifications(params: ListNotificationsQueryParams): AtpResponse

  /**
   * List settings with optional filtering
   */
  public suspend fun listOptions(params: ListOptionsQueryParams): AtpResponse

  /**
   * List a range of records in a repository, matching a specific collection. Does not require auth.
   */
  public suspend fun listRecords(params: ListRecordsQueryParams): AtpResponse

  /**
   * Enumerates all the DID, rev, and commit CID for all repos hosted by this service. Does not
   * require auth; implemented by PDS and Relay.
   */
  public suspend fun listRepos(params: ListReposQueryParams): AtpResponse

  /**
   * Get list of all communication templates.
   */
  public suspend fun listTemplates(): AtpResponse

  /**
   * Creates a mute relationship for the specified account. Mutes are private in Bluesky. Requires
   * auth.
   */
  public suspend fun muteActor(request: MuteActorRequest): AtpResponse

  /**
   * Creates a mute relationship for the specified list of accounts. Mutes are private in Bluesky.
   * Requires auth.
   */
  public suspend fun muteActorList(request: MuteActorListRequest): AtpResponse

  public suspend fun muteConvo(request: MuteConvoRequest): AtpResponse

  /**
   * Mutes a thread preventing notifications from the thread and any of its children. Mutes are
   * private in Bluesky. Requires auth.
   */
  public suspend fun muteThread(request: MuteThreadRequest): AtpResponse

  /**
   * Notify a crawling service of a recent update, and that crawling should resume. Intended use is
   * after a gap between repo stream events caused the crawling service to disconnect. Does not require
   * auth; implemented by Relay.
   */
  public suspend fun notifyOfUpdate(request: NotifyOfUpdateRequest): AtpResponse

  /**
   * Set the private preferences attached to the account.
   */
  public suspend fun putPreferences(request: ActorPutPreferencesRequest): AtpResponse

  /**
   * Set notification-related preferences for an account. Requires auth.
   */
  public suspend fun putPreferences(request: NotificationPutPreferencesRequest): AtpResponse

  /**
   * Write a repository record, creating or updating it as needed. Requires auth, implemented by
   * PDS.
   */
  public suspend fun putRecord(request: PutRecordRequest): AtpResponse

  /**
   * List moderation events related to a subject.
   */
  public suspend fun queryEvents(params: QueryEventsQueryParams): AtpResponse

  /**
   * Find labels relevant to the provided AT-URI patterns. Public endpoint for moderation services,
   * though may return different or additional results with auth.
   */
  public suspend fun queryLabels(params: QueryLabelsQueryParams): AtpResponse

  /**
   * Query available sets
   */
  public suspend fun querySets(params: QuerySetsQueryParams): AtpResponse

  /**
   * View moderation statuses of subjects (record or repo).
   */
  public suspend fun queryStatuses(params: QueryStatusesQueryParams): AtpResponse

  /**
   * Refresh an authentication session. Requires auth using the 'refreshJwt' (not the 'accessJwt').
   */
  public suspend fun refreshSession(): AtpResponse

  /**
   * Register to receive push notifications, via a specified service, for the requesting account.
   * Requires auth.
   */
  public suspend fun registerPush(request: RegisterPushRequest): AtpResponse

  /**
   * Delete settings by key
   */
  public suspend fun removeOptions(request: RemoveOptionsRequest): AtpResponse

  /**
   * Initiate a user account deletion via email.
   */
  public suspend fun requestAccountDelete(): AtpResponse

  /**
   * Request a service to persistently crawl hosted repos. Expected use is new PDS instances
   * declaring their existence to Relays. Does not require auth.
   */
  public suspend fun requestCrawl(request: RequestCrawlRequest): AtpResponse

  /**
   * Request an email with a code to confirm ownership of email.
   */
  public suspend fun requestEmailConfirmation(): AtpResponse

  /**
   * Request a token in order to update email.
   */
  public suspend fun requestEmailUpdate(): AtpResponse

  /**
   * Initiate a user account password reset via email.
   */
  public suspend fun requestPasswordReset(request: RequestPasswordResetRequest): AtpResponse

  /**
   * Request a verification code to be sent to the supplied phone number
   */
  public suspend fun requestPhoneVerification(request: RequestPhoneVerificationRequest): AtpResponse

  /**
   * Request an email with a code to in order to request a signed PLC operation. Requires Auth.
   */
  public suspend fun requestPlcOperationSignature(): AtpResponse

  /**
   * Reserve a repo signing key, for use with account creation. Necessary so that a DID PLC update
   * operation can be constructed during an account migraiton. Public and does not require auth;
   * implemented by PDS. NOTE: this endpoint may change when full account migration is implemented.
   */
  public suspend fun reserveSigningKey(request: ReserveSigningKeyRequest): AtpResponse

  /**
   * Reset a user account password using a token.
   */
  public suspend fun resetPassword(request: ResetPasswordRequest): AtpResponse

  /**
   * Resolves a handle (domain name) to a DID.
   */
  public suspend fun resolveHandle(params: ResolveHandleQueryParams): AtpResponse

  /**
   * Revoke an App Password by name.
   */
  public suspend fun revokeAppPassword(request: RevokeAppPasswordRequest): AtpResponse

  /**
   * Get list of accounts that matches your search query.
   */
  public suspend fun searchAccounts(params: AdminSearchAccountsQueryParams): AtpResponse

  /**
   * Search for accounts that match one or more threat signature values.
   */
  public suspend fun searchAccounts(params: SignatureSearchAccountsQueryParams): AtpResponse

  /**
   * Find actors (profiles) matching search criteria. Does not require auth.
   */
  public suspend fun searchActors(params: SearchActorsQueryParams): AtpResponse

  /**
   * Find actor suggestions for a prefix search term. Expected use is for auto-completion during
   * text field entry. Does not require auth.
   */
  public suspend fun searchActorsTypeahead(params: SearchActorsTypeaheadQueryParams): AtpResponse

  /**
   * Find posts matching search criteria, returning views of those posts.
   */
  public suspend fun searchPosts(params: SearchPostsQueryParams): AtpResponse

  /**
   * Find repositories based on a search term.
   */
  public suspend fun searchRepos(params: SearchReposQueryParams): AtpResponse

  /**
   * Send email to a user's account email address.
   */
  public suspend fun sendEmail(request: SendEmailRequest): AtpResponse

  /**
   * Send information about interactions with feed items back to the feed generator that served
   * them.
   */
  public suspend fun sendInteractions(request: SendInteractionsRequest): AtpResponse

  public suspend fun sendMessage(request: SendMessageRequest): AtpResponse

  public suspend fun sendMessageBatch(request: SendMessageBatchRequest): AtpResponse

  /**
   * Signs a PLC operation to update some value(s) in the requesting DID's document.
   */
  public suspend fun signPlcOperation(request: SignPlcOperationRequest): AtpResponse

  /**
   * Validates a PLC operation to ensure that it doesn't violate a service's constraints or get the
   * identity into a bad state, then submits it to the PLC registry
   */
  public suspend fun submitPlcOperation(request: SubmitPlcOperationRequest): AtpResponse

  /**
   * Subscribe to stream of labels (and negations). Public endpoint implemented by mod services.
   * Uses same sequencing scheme as repo event stream.
   */
  public suspend fun subscribeLabels(params: SubscribeLabelsQueryParams): Flow>

  /**
   * Repository event stream, aka Firehose endpoint. Outputs repo commits with diff data, and
   * identity update events, for all repositories on the current server. See the atproto specifications
   * for details around stream sequencing, repo versioning, CAR diff format, and more. Public and does
   * not require auth; implemented by PDS and Relay.
   */
  public suspend fun subscribeRepos(params: SubscribeReposQueryParams): Flow>

  /**
   * Unmutes the specified account. Requires auth.
   */
  public suspend fun unmuteActor(request: UnmuteActorRequest): AtpResponse

  /**
   * Unmutes the specified list of accounts. Requires auth.
   */
  public suspend fun unmuteActorList(request: UnmuteActorListRequest): AtpResponse

  public suspend fun unmuteConvo(request: UnmuteConvoRequest): AtpResponse

  /**
   * Unmutes the specified thread. Requires auth.
   */
  public suspend fun unmuteThread(request: UnmuteThreadRequest): AtpResponse

  /**
   * Administrative action to update an account's email.
   */
  public suspend fun updateAccountEmail(request: UpdateAccountEmailRequest): AtpResponse

  /**
   * Administrative action to update an account's handle.
   */
  public suspend fun updateAccountHandle(request: UpdateAccountHandleRequest): AtpResponse

  /**
   * Update the password for a user account as an administrator.
   */
  public suspend fun updateAccountPassword(request: UpdateAccountPasswordRequest): AtpResponse

  public suspend fun updateActorAccess(request: UpdateActorAccessRequest): AtpResponse

  /**
   * Update an account's email.
   */
  public suspend fun updateEmail(request: UpdateEmailRequest): AtpResponse

  /**
   * Updates the current account's handle. Verifies handle validity, and updates did:plc document if
   * necessary. Implemented by PDS, and requires auth.
   */
  public suspend fun updateHandle(request: UpdateHandleRequest): AtpResponse

  /**
   * Update a member in the ozone service. Requires admin role.
   */
  public suspend fun updateMember(request: UpdateMemberRequest): AtpResponse

  public suspend fun updateRead(request: UpdateReadRequest): AtpResponse

  /**
   * Notify server that the requesting account has seen notifications. Requires auth.
   */
  public suspend fun updateSeen(request: UpdateSeenRequest): AtpResponse

  /**
   * Update the service-specific admin status of a subject (account, record, or blob).
   */
  public suspend fun updateSubjectStatus(request: UpdateSubjectStatusRequest): AtpResponse

  /**
   * Administrative action to update an existing communication template. Allows passing partial
   * fields to patch specific fields only.
   */
  public suspend fun updateTemplate(request: UpdateTemplateRequest): AtpResponse

  /**
   * Upload a new blob, to be referenced from a repository record. The blob will be deleted if it is
   * not referenced within a time window (eg, minutes). Blob restrictions (mimetype, size, etc) are
   * enforced when the reference is created. Requires auth, implemented by PDS.
   */
  public suspend fun uploadBlob(request: ByteArray): AtpResponse

  /**
   * Upload a video to be processed then stored on the PDS.
   */
  public suspend fun uploadVideo(request: ByteArray): AtpResponse

  /**
   * Create or update setting option
   */
  public suspend fun upsertOption(request: UpsertOptionRequest): AtpResponse

  /**
   * Create or update set metadata
   */
  public suspend fun upsertSet(request: UpsertSetRequest): AtpResponse
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy