""" Indicates that an Input Object is a OneOf Input Object (and thus requires exactly one of its field be provided) """ directive @oneOf on INPUT_OBJECT """ Provides a scalar specification URL for specifying the behavior of custom scalar types. """ directive @specifiedBy( """URL that specifies the behavior of this scalar.""" url: String! ) on SCALAR input AggregationOrderBy { count: SortDirection } type AppBskyActorProfile { uri: String! cid: String! did: String! indexedAt: String! actorHandle: String avatar: Blob banner: Blob createdAt: String description: String displayName: String joinedViaStarterPack: JSON labels: JSON pinnedPost: JSON appBskyFeedPostgate(limit: Int): [AppBskyFeedPostgate!]! appBskyFeedThreadgate(limit: Int): [AppBskyFeedThreadgate!]! appBskyActorProfile: AppBskyActorProfile fmTealAlphaFeedPlay(limit: Int): [FmTealAlphaFeedPlay!]! appBskyFeedPostgates(limit: Int): [AppBskyFeedPostgate!]! appBskyFeedThreadgates(limit: Int): [AppBskyFeedThreadgate!]! appBskyActorProfiles(limit: Int): [AppBskyActorProfile!]! fmTealAlphaFeedPlays(limit: Int): [FmTealAlphaFeedPlay!]! } type AppBskyActorProfileAggregated { avatar: JSON banner: JSON createdAt: JSON description: JSON displayName: JSON joinedViaStarterPack: JSON labels: JSON pinnedPost: JSON count: Int! } type AppBskyActorProfileConnection { totalCount: Int! pageInfo: PageInfo! edges: [AppBskyActorProfileEdge!]! nodes: [AppBskyActorProfile!]! } type AppBskyActorProfileEdge { node: AppBskyActorProfile! cursor: String! } type AppBskyEmbedExternal { uri: String! cid: String! did: String! indexedAt: String! actorHandle: String external: JSON! appBskyFeedPostgate(limit: Int): [AppBskyFeedPostgate!]! appBskyFeedThreadgate(limit: Int): [AppBskyFeedThreadgate!]! appBskyActorProfile: AppBskyActorProfile fmTealAlphaFeedPlay(limit: Int): [FmTealAlphaFeedPlay!]! appBskyFeedPostgates(limit: Int): [AppBskyFeedPostgate!]! appBskyFeedThreadgates(limit: Int): [AppBskyFeedThreadgate!]! appBskyActorProfiles(limit: Int): [AppBskyActorProfile!]! fmTealAlphaFeedPlays(limit: Int): [FmTealAlphaFeedPlay!]! } type AppBskyEmbedExternalAggregated { external: JSON count: Int! } type AppBskyEmbedExternalConnection { totalCount: Int! pageInfo: PageInfo! edges: [AppBskyEmbedExternalEdge!]! nodes: [AppBskyEmbedExternal!]! } type AppBskyEmbedExternalEdge { node: AppBskyEmbedExternal! cursor: String! } type AppBskyEmbedImages { uri: String! cid: String! did: String! indexedAt: String! actorHandle: String images: JSON! appBskyFeedPostgate(limit: Int): [AppBskyFeedPostgate!]! appBskyFeedThreadgate(limit: Int): [AppBskyFeedThreadgate!]! appBskyActorProfile: AppBskyActorProfile fmTealAlphaFeedPlay(limit: Int): [FmTealAlphaFeedPlay!]! appBskyFeedPostgates(limit: Int): [AppBskyFeedPostgate!]! appBskyFeedThreadgates(limit: Int): [AppBskyFeedThreadgate!]! appBskyActorProfiles(limit: Int): [AppBskyActorProfile!]! fmTealAlphaFeedPlays(limit: Int): [FmTealAlphaFeedPlay!]! } type AppBskyEmbedImagesAggregated { images: JSON count: Int! } type AppBskyEmbedImagesConnection { totalCount: Int! pageInfo: PageInfo! edges: [AppBskyEmbedImagesEdge!]! nodes: [AppBskyEmbedImages!]! } type AppBskyEmbedImagesEdge { node: AppBskyEmbedImages! cursor: String! } type AppBskyEmbedRecord { uri: String! cid: String! did: String! indexedAt: String! actorHandle: String record: JSON! appBskyFeedPostgate(limit: Int): [AppBskyFeedPostgate!]! appBskyFeedThreadgate(limit: Int): [AppBskyFeedThreadgate!]! appBskyActorProfile: AppBskyActorProfile fmTealAlphaFeedPlay(limit: Int): [FmTealAlphaFeedPlay!]! appBskyFeedPostgates(limit: Int): [AppBskyFeedPostgate!]! appBskyFeedThreadgates(limit: Int): [AppBskyFeedThreadgate!]! appBskyActorProfiles(limit: Int): [AppBskyActorProfile!]! fmTealAlphaFeedPlays(limit: Int): [FmTealAlphaFeedPlay!]! } type AppBskyEmbedRecordAggregated { record: JSON count: Int! } type AppBskyEmbedRecordConnection { totalCount: Int! pageInfo: PageInfo! edges: [AppBskyEmbedRecordEdge!]! nodes: [AppBskyEmbedRecord!]! } type AppBskyEmbedRecordEdge { node: AppBskyEmbedRecord! cursor: String! } type AppBskyEmbedRecordWithMedia { uri: String! cid: String! did: String! indexedAt: String! actorHandle: String media: JSON! record: JSON! appBskyFeedPostgate(limit: Int): [AppBskyFeedPostgate!]! appBskyFeedThreadgate(limit: Int): [AppBskyFeedThreadgate!]! appBskyActorProfile: AppBskyActorProfile fmTealAlphaFeedPlay(limit: Int): [FmTealAlphaFeedPlay!]! appBskyFeedPostgates(limit: Int): [AppBskyFeedPostgate!]! appBskyFeedThreadgates(limit: Int): [AppBskyFeedThreadgate!]! appBskyActorProfiles(limit: Int): [AppBskyActorProfile!]! fmTealAlphaFeedPlays(limit: Int): [FmTealAlphaFeedPlay!]! } type AppBskyEmbedRecordWithMediaAggregated { media: JSON record: JSON count: Int! } type AppBskyEmbedRecordWithMediaConnection { totalCount: Int! pageInfo: PageInfo! edges: [AppBskyEmbedRecordWithMediaEdge!]! nodes: [AppBskyEmbedRecordWithMedia!]! } type AppBskyEmbedRecordWithMediaEdge { node: AppBskyEmbedRecordWithMedia! cursor: String! } type AppBskyEmbedVideo { uri: String! cid: String! did: String! indexedAt: String! actorHandle: String alt: String aspectRatio: JSON captions: JSON video: Blob! appBskyFeedPostgate(limit: Int): [AppBskyFeedPostgate!]! appBskyFeedThreadgate(limit: Int): [AppBskyFeedThreadgate!]! appBskyActorProfile: AppBskyActorProfile fmTealAlphaFeedPlay(limit: Int): [FmTealAlphaFeedPlay!]! appBskyFeedPostgates(limit: Int): [AppBskyFeedPostgate!]! appBskyFeedThreadgates(limit: Int): [AppBskyFeedThreadgate!]! appBskyActorProfiles(limit: Int): [AppBskyActorProfile!]! fmTealAlphaFeedPlays(limit: Int): [FmTealAlphaFeedPlay!]! } type AppBskyEmbedVideoAggregated { alt: JSON aspectRatio: JSON captions: JSON video: JSON count: Int! } type AppBskyEmbedVideoConnection { totalCount: Int! pageInfo: PageInfo! edges: [AppBskyEmbedVideoEdge!]! nodes: [AppBskyEmbedVideo!]! } type AppBskyEmbedVideoEdge { node: AppBskyEmbedVideo! cursor: String! } type AppBskyFeedPostgate { uri: String! cid: String! did: String! indexedAt: String! actorHandle: String createdAt: String! detachedEmbeddingUris: [String] embeddingRules: JSON post: String! appBskyFeedPostgate(limit: Int): [AppBskyFeedPostgate!]! appBskyFeedThreadgate(limit: Int): [AppBskyFeedThreadgate!]! appBskyActorProfile: AppBskyActorProfile fmTealAlphaFeedPlay(limit: Int): [FmTealAlphaFeedPlay!]! appBskyFeedPostgates(limit: Int): [AppBskyFeedPostgate!]! appBskyFeedThreadgates(limit: Int): [AppBskyFeedThreadgate!]! appBskyActorProfiles(limit: Int): [AppBskyActorProfile!]! fmTealAlphaFeedPlays(limit: Int): [FmTealAlphaFeedPlay!]! } type AppBskyFeedPostgateAggregated { createdAt: JSON detachedEmbeddingUris: JSON embeddingRules: JSON post: JSON count: Int! } type AppBskyFeedPostgateConnection { totalCount: Int! pageInfo: PageInfo! edges: [AppBskyFeedPostgateEdge!]! nodes: [AppBskyFeedPostgate!]! } type AppBskyFeedPostgateEdge { node: AppBskyFeedPostgate! cursor: String! } type AppBskyFeedThreadgate { uri: String! cid: String! did: String! indexedAt: String! actorHandle: String allow: JSON createdAt: String! hiddenReplies: [String] post: String! appBskyFeedPostgate(limit: Int): [AppBskyFeedPostgate!]! appBskyFeedThreadgate(limit: Int): [AppBskyFeedThreadgate!]! appBskyActorProfile: AppBskyActorProfile fmTealAlphaFeedPlay(limit: Int): [FmTealAlphaFeedPlay!]! appBskyFeedPostgates(limit: Int): [AppBskyFeedPostgate!]! appBskyFeedThreadgates(limit: Int): [AppBskyFeedThreadgate!]! appBskyActorProfiles(limit: Int): [AppBskyActorProfile!]! fmTealAlphaFeedPlays(limit: Int): [FmTealAlphaFeedPlay!]! } type AppBskyFeedThreadgateAggregated { allow: JSON createdAt: JSON hiddenReplies: JSON post: JSON count: Int! } type AppBskyFeedThreadgateConnection { totalCount: Int! pageInfo: PageInfo! edges: [AppBskyFeedThreadgateEdge!]! nodes: [AppBskyFeedThreadgate!]! } type AppBskyFeedThreadgateEdge { node: AppBskyFeedThreadgate! cursor: String! } type AppBskyRichtextFacet { uri: String! cid: String! did: String! indexedAt: String! actorHandle: String features: JSON! index: JSON! appBskyFeedPostgate(limit: Int): [AppBskyFeedPostgate!]! appBskyFeedThreadgate(limit: Int): [AppBskyFeedThreadgate!]! appBskyActorProfile: AppBskyActorProfile fmTealAlphaFeedPlay(limit: Int): [FmTealAlphaFeedPlay!]! appBskyFeedPostgates(limit: Int): [AppBskyFeedPostgate!]! appBskyFeedThreadgates(limit: Int): [AppBskyFeedThreadgate!]! appBskyActorProfiles(limit: Int): [AppBskyActorProfile!]! fmTealAlphaFeedPlays(limit: Int): [FmTealAlphaFeedPlay!]! } type AppBskyRichtextFacetAggregated { features: JSON index: JSON count: Int! } type AppBskyRichtextFacetConnection { totalCount: Int! pageInfo: PageInfo! edges: [AppBskyRichtextFacetEdge!]! nodes: [AppBskyRichtextFacet!]! } type AppBskyRichtextFacetEdge { node: AppBskyRichtextFacet! cursor: String! } type Blob { ref: String! mimeType: String! size: Int! """ Generate CDN URL for the blob with the specified preset (avatar, banner, feed_thumbnail, feed_fullsize) """ url(preset: String): String! } type ComAtprotoRepoStrongRef { did: String! indexedAt: String! actorHandle: String cid: String! uri: String! appBskyFeedPostgate(limit: Int): [AppBskyFeedPostgate!]! appBskyFeedThreadgate(limit: Int): [AppBskyFeedThreadgate!]! appBskyActorProfile: AppBskyActorProfile fmTealAlphaFeedPlay(limit: Int): [FmTealAlphaFeedPlay!]! appBskyFeedPostgates(limit: Int): [AppBskyFeedPostgate!]! appBskyFeedThreadgates(limit: Int): [AppBskyFeedThreadgate!]! appBskyActorProfiles(limit: Int): [AppBskyActorProfile!]! fmTealAlphaFeedPlays(limit: Int): [FmTealAlphaFeedPlay!]! } type ComAtprotoRepoStrongRefAggregated { cid: JSON uri: JSON count: Int! } type ComAtprotoRepoStrongRefConnection { totalCount: Int! pageInfo: PageInfo! edges: [ComAtprotoRepoStrongRefEdge!]! nodes: [ComAtprotoRepoStrongRef!]! } type ComAtprotoRepoStrongRefEdge { node: ComAtprotoRepoStrongRef! cursor: String! } type FmTealAlphaFeedPlay { uri: String! cid: String! did: String! indexedAt: String! actorHandle: String artistMbIds: [String] artistNames: [String] artists: JSON duration: Int isrc: String musicServiceBaseDomain: String originUrl: String playedTime: String recordingMbId: String releaseMbId: String releaseName: String submissionClientAgent: String trackMbId: String trackName: String! appBskyFeedPostgate(limit: Int): [AppBskyFeedPostgate!]! appBskyFeedThreadgate(limit: Int): [AppBskyFeedThreadgate!]! appBskyActorProfile: AppBskyActorProfile fmTealAlphaFeedPlay(limit: Int): [FmTealAlphaFeedPlay!]! appBskyFeedPostgates(limit: Int): [AppBskyFeedPostgate!]! appBskyFeedThreadgates(limit: Int): [AppBskyFeedThreadgate!]! appBskyActorProfiles(limit: Int): [AppBskyActorProfile!]! fmTealAlphaFeedPlays(limit: Int): [FmTealAlphaFeedPlay!]! } type FmTealAlphaFeedPlayAggregated { artistMbIds: JSON artistNames: JSON artists: JSON duration: JSON isrc: JSON musicServiceBaseDomain: JSON originUrl: JSON playedTime: JSON recordingMbId: JSON releaseMbId: JSON releaseName: JSON submissionClientAgent: JSON trackMbId: JSON trackName: JSON count: Int! } type FmTealAlphaFeedPlayConnection { totalCount: Int! pageInfo: PageInfo! edges: [FmTealAlphaFeedPlayEdge!]! nodes: [FmTealAlphaFeedPlay!]! } type FmTealAlphaFeedPlayEdge { node: FmTealAlphaFeedPlay! cursor: String! } scalar JSON type Mutation { """Sync user collections for a given DID""" syncUserCollections(did: String!): SyncResult! } type PageInfo { hasNextPage: Boolean! hasPreviousPage: Boolean! startCursor: String endCursor: String } type Query { """Query app.bsky.embed.record records""" appBskyEmbedRecords(first: Int, after: String, last: Int, before: String, sortBy: [SortField], where: JSON): AppBskyEmbedRecordConnection! """ Aggregated query for app.bsky.embed.record records with GROUP BY support """ appBskyEmbedRecordsAggregated(groupBy: [String!]!, where: JSON, orderBy: AggregationOrderBy, limit: Int): [AppBskyEmbedRecordAggregated!]! """Query app.bsky.embed.images records""" appBskyEmbedImageses(first: Int, after: String, last: Int, before: String, sortBy: [SortField], where: JSON): AppBskyEmbedImagesConnection! """ Aggregated query for app.bsky.embed.images records with GROUP BY support """ appBskyEmbedImagesesAggregated(groupBy: [String!]!, where: JSON, orderBy: AggregationOrderBy, limit: Int): [AppBskyEmbedImagesAggregated!]! """Query app.bsky.embed.video records""" appBskyEmbedVideos(first: Int, after: String, last: Int, before: String, sortBy: [SortField], where: JSON): AppBskyEmbedVideoConnection! """ Aggregated query for app.bsky.embed.video records with GROUP BY support """ appBskyEmbedVideosAggregated(groupBy: [String!]!, where: JSON, orderBy: AggregationOrderBy, limit: Int): [AppBskyEmbedVideoAggregated!]! """Query app.bsky.embed.recordWithMedia records""" appBskyEmbedRecordWithMedias(first: Int, after: String, last: Int, before: String, sortBy: [SortField], where: JSON): AppBskyEmbedRecordWithMediaConnection! """ Aggregated query for app.bsky.embed.recordWithMedia records with GROUP BY support """ appBskyEmbedRecordWithMediasAggregated(groupBy: [String!]!, where: JSON, orderBy: AggregationOrderBy, limit: Int): [AppBskyEmbedRecordWithMediaAggregated!]! """Query app.bsky.embed.external records""" appBskyEmbedExternals(first: Int, after: String, last: Int, before: String, sortBy: [SortField], where: JSON): AppBskyEmbedExternalConnection! """ Aggregated query for app.bsky.embed.external records with GROUP BY support """ appBskyEmbedExternalsAggregated(groupBy: [String!]!, where: JSON, orderBy: AggregationOrderBy, limit: Int): [AppBskyEmbedExternalAggregated!]! """Query app.bsky.feed.postgate records""" appBskyFeedPostgates(first: Int, after: String, last: Int, before: String, sortBy: [SortField], where: JSON): AppBskyFeedPostgateConnection! """ Aggregated query for app.bsky.feed.postgate records with GROUP BY support """ appBskyFeedPostgatesAggregated(groupBy: [String!]!, where: JSON, orderBy: AggregationOrderBy, limit: Int): [AppBskyFeedPostgateAggregated!]! """Query app.bsky.feed.threadgate records""" appBskyFeedThreadgates(first: Int, after: String, last: Int, before: String, sortBy: [SortField], where: JSON): AppBskyFeedThreadgateConnection! """ Aggregated query for app.bsky.feed.threadgate records with GROUP BY support """ appBskyFeedThreadgatesAggregated(groupBy: [String!]!, where: JSON, orderBy: AggregationOrderBy, limit: Int): [AppBskyFeedThreadgateAggregated!]! """Query app.bsky.richtext.facet records""" appBskyRichtextFacets(first: Int, after: String, last: Int, before: String, sortBy: [SortField], where: JSON): AppBskyRichtextFacetConnection! """ Aggregated query for app.bsky.richtext.facet records with GROUP BY support """ appBskyRichtextFacetsAggregated(groupBy: [String!]!, where: JSON, orderBy: AggregationOrderBy, limit: Int): [AppBskyRichtextFacetAggregated!]! """Query app.bsky.actor.profile records""" appBskyActorProfiles(first: Int, after: String, last: Int, before: String, sortBy: [SortField], where: JSON): AppBskyActorProfileConnection! """ Aggregated query for app.bsky.actor.profile records with GROUP BY support """ appBskyActorProfilesAggregated(groupBy: [String!]!, where: JSON, orderBy: AggregationOrderBy, limit: Int): [AppBskyActorProfileAggregated!]! """Query com.atproto.repo.strongRef records""" comAtprotoRepoStrongRefs(first: Int, after: String, last: Int, before: String, sortBy: [SortField], where: JSON): ComAtprotoRepoStrongRefConnection! """ Aggregated query for com.atproto.repo.strongRef records with GROUP BY support """ comAtprotoRepoStrongRefsAggregated(groupBy: [String!]!, where: JSON, orderBy: AggregationOrderBy, limit: Int): [ComAtprotoRepoStrongRefAggregated!]! """Query fm.teal.alpha.feed.play records""" fmTealAlphaFeedPlays(first: Int, after: String, last: Int, before: String, sortBy: [SortField], where: JSON): FmTealAlphaFeedPlayConnection! """ Aggregated query for fm.teal.alpha.feed.play records with GROUP BY support """ fmTealAlphaFeedPlaysAggregated(groupBy: [String!]!, where: JSON, orderBy: AggregationOrderBy, limit: Int): [FmTealAlphaFeedPlayAggregated!]! } enum SortDirection { asc desc } input SortField { field: String! direction: SortDirection! } type Subscription { """Subscribe to app.bsky.feed.postgate record creation events""" appBskyFeedPostgateCreated: AppBskyFeedPostgate! """Subscribe to app.bsky.feed.postgate record update events""" appBskyFeedPostgateUpdated: AppBskyFeedPostgate! """ Subscribe to app.bsky.feed.postgate record deletion events. Returns the URI of deleted records. """ appBskyFeedPostgateDeleted: String! """Subscribe to app.bsky.feed.threadgate record creation events""" appBskyFeedThreadgateCreated: AppBskyFeedThreadgate! """Subscribe to app.bsky.feed.threadgate record update events""" appBskyFeedThreadgateUpdated: AppBskyFeedThreadgate! """ Subscribe to app.bsky.feed.threadgate record deletion events. Returns the URI of deleted records. """ appBskyFeedThreadgateDeleted: String! """Subscribe to app.bsky.actor.profile record creation events""" appBskyActorProfileCreated: AppBskyActorProfile! """Subscribe to app.bsky.actor.profile record update events""" appBskyActorProfileUpdated: AppBskyActorProfile! """ Subscribe to app.bsky.actor.profile record deletion events. Returns the URI of deleted records. """ appBskyActorProfileDeleted: String! """Subscribe to fm.teal.alpha.feed.play record creation events""" fmTealAlphaFeedPlayCreated: FmTealAlphaFeedPlay! """Subscribe to fm.teal.alpha.feed.play record update events""" fmTealAlphaFeedPlayUpdated: FmTealAlphaFeedPlay! """ Subscribe to fm.teal.alpha.feed.play record deletion events. Returns the URI of deleted records. """ fmTealAlphaFeedPlayDeleted: String! } type SyncResult { success: Boolean! reposProcessed: Int! recordsSynced: Int! timedOut: Boolean! message: String! }