""" Autogenerated input type of AbortUploadSession """ input AbortUploadSessionInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Optional free-form reason logged with the abort metric """ reason: String sessionToken: String! } """ Autogenerated return type of AbortUploadSession. """ type AbortUploadSessionPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! session: UploadSession } """ A single abuse report a member filed against another member. """ type AbuseReport implements DatabaseRecord { """ The post, comment, or space the report was filed from, if any. """ context: AbuseReportContext createdAt: ISO8601DateTime! """ Whether a host or moderator has cleared (ignored) this report. """ ignored: Boolean! """ When the report was cleared, if it has been. """ ignoredAt: ISO8601DateTime """ The host or moderator who cleared the report, if it has been. """ ignoredBy: User """ Free-text reason the reporter provided, if any. """ reason: String """ The category the reporter selected. """ reportType: AbuseReportType! """ The member the report was filed against. Null when the member was deleted or for legacy non-member reports. """ reportedMember: User """ The member who filed the report. """ reporter: User """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! } """ The connection type for AbuseReport. """ type AbuseReportConnection { """ A list of edges. """ edges: [AbuseReportEdge] """ A list of nodes. """ nodes: [AbuseReport] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ The content an abuse report was filed from — a post, comment, or space. """ union AbuseReportContext = Comment | Event | Poll | Post | Space """ The kind of content an abuse report is filed from: a post, comment, or space. """ enum AbuseReportContextType { """ The report is filed from a comment. """ COMMENT """ The report is filed from a post. """ POST """ The report is filed from a space. """ SPACE } """ An edge in a connection. """ type AbuseReportEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: AbuseReport } """ The category a member selects when reporting another member to the Network's hosts and moderators. """ enum AbuseReportType { """ Report the member for impersonating someone. """ IMPERSONATION """ Report the member for offensive behavior or content. """ OFFENSIVE """ Report the member for another reason. """ OTHER """ Report the member for spam. """ SPAM } """ The number of members who have reached a single Ambassador level. """ type AmbassadorLevelCount { """ Number of members who have reached this Ambassador level. """ count: Int! """ The Ambassador level, from 1 (Bronze) to 3 (Gold). """ levelId: Int! """ Localized name of the Ambassador level (Bronze, Silver, or Gold). """ name: String! } """ Aggregate stats for a Network's Ambassador program. """ type AmbassadorStats { """ Member counts per Ambassador level, including levels with no members. """ ambassadorCounts: [AmbassadorLevelCount!]! """ Whether the one-shot broadcast announcing the Network's Ambassador program is still available. Sending it through the createAmbassadorAnnouncement mutation flips this off. """ canAnnounce: Boolean! """ Number of members who have reached any Ambassador level. """ totalAmbassadorCount: Int! """ Number of members who joined through any member's referral. """ totalMembersReferred: Int! """ Number of members who joined through an Ambassador's referral. """ totalMembersReferredByAmbassador: Int! } """ A host broadcast sent as a notification to the members of a space or Network. """ type Announcement implements DatabaseRecord & Node { """ Announcement message as sanitized HTML. """ bodyHtml: String """ Announcement message as plain text with HTML stripped. """ bodyText: String """ When the announcement was sent. """ createdAt: ISO8601DateTime """ Optional URL attached to the announcement. """ externalLink: String """ ID of the object. """ id: ID! """ The post this announcement is about — for example the event whose members were messaged. Null for a standalone broadcast. """ post: PostContent """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ The host or moderator who sent the announcement. """ sender: User """ Short notification text shown to recipients. """ subject: String """ When the announcement was last updated. """ updatedAt: ISO8601DateTime } """ The connection type for Announcement. """ type AnnouncementConnection { """ A list of edges. """ edges: [AnnouncementEdge] """ A list of nodes. """ nodes: [Announcement] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type AnnouncementEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: Announcement } """ The minimal announcement projection rendered by feed link-preview cards. """ type AnnouncementPreview implements DatabaseRecord { """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ Avatar URL of the announcement's sender. """ senderAvatarUrl: String """ Display name of the announcement's sender. """ senderFullName: String } """ Autogenerated input type of ArchiveConversation """ input ArchiveConversationInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID of the direct-message conversation to archive """ conversationId: ID! """ Also archive the viewer's threads inside the conversation. Defaults to true. """ includeThreads: Boolean = true } """ Autogenerated return type of ArchiveConversation. """ type ArchiveConversationPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! success: Boolean! } """ Autogenerated input type of ArchivePaymentPlan """ input ArchivePaymentPlanInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Payment Plan ID — resource ID or GlobalID. """ id: ID! } """ Autogenerated return type of ArchivePaymentPlan. """ type ArchivePaymentPlanPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! paymentPlan: PaymentPlan } """ A persisted artifact (e.g., an HTML page) shown in a Cohost conversation thread. """ type Artifact { createdAt: ISO8601DateTime! description: String """ Body HTML for an Artifacts::HtmlPage artifact. Null for other artifact kinds. """ html: String """ Demodulized snake_case class name, e.g. 'html_page' for Artifacts::HtmlPage. """ kind: String! """ AASM lifecycle state: 'draft', 'saved', or 'replaced'. """ status: String! """ Short summary shown on the artifact teaser card. May contain a narrow inline-HTML allowlist. """ summary: String title: String! updatedAt: ISO8601DateTime! """ Stable identifier used by clients to look up the artifact. """ uuid: ID! } """ A media asset (image, file, video, or audio) attached to content """ type Asset { """ Original aspect ratio """ aspectRatio: Float """ Asset category (e.g. post, post_description, avatar, header) """ assetStyle: String """ MIME content type """ contentType: String """ Human-readable file size """ fileSize: String id: ID! """ Sized image URL (for image assets) """ imageUrl: String isAudio: Boolean! isFile: Boolean! isImage: Boolean! """ Non-description image on a post (has metadata `is_main_image: true`). Used to identify gallery/carousel images. """ isMainImage: Boolean! isVideo: Boolean! """ Large-sized image URL (comment images) """ largeImageUrl: String """ Original upload filename """ originalFilename: String """ Small-sized image URL (comment images) """ smallImageUrl: String """ Artwork hanging off the asset itself, such as the cover a Host attaches to native audio. Null when the asset has no cover, so a client can tell absence from a real image. """ thumbnailUrl: String """ Primary display URL """ url: String } """ The connection type for Asset. """ type AssetConnection { """ A list of edges. """ edges: [AssetEdge] """ A list of nodes. """ nodes: [Asset] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type AssetEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: Asset } """ An automation rule: a trigger, an optional filter, and one or more actions the Network runs automatically. """ type AutomationRule implements DatabaseRecord & Node { """ The actions the rule performs, in creation order. """ automationRuleActions: [AutomationRuleAction!]! """ The audience and content filter applied before the rule runs, when one is set. """ automationRuleFilter: AutomationRuleFilter """ Whether the Network's billing plan disables the rule. """ billingPlanRestricted: Boolean! """ When the rule was created. """ createdAt: ISO8601DateTime! """ The member who created the rule. """ creator: User """ ID of the object. """ id: ID! """ Whether the rule is currently running (not paused, suspended, or billing-restricted). """ isActive: Boolean! """ Display name of the rule. """ name: String """ The member who owns the rule and who its actions come from. Defaults to the creator. Null only when that member's account has been deleted. """ owner: User """ Whether a host has paused the rule. """ paused: Boolean! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ Whether the rule was suspended after an error. """ suspended: Boolean! """ Why the rule was suspended, or null when it is not suspended. """ suspendedReason: String """ The event that fires the rule. """ trigger: AutomationRuleTrigger! """ Trigger-specific configuration. An empty object when the trigger takes none. """ triggerParameters: JSONObject! """ The object the trigger is scoped to, when it has one. """ triggerTargetable: AutomationRuleTarget """ Admin URL where the host can review and edit this rule. """ url: String! } """ A single action performed by an automation rule when it fires. """ type AutomationRuleAction implements DatabaseRecord & Node { """ The kind of action performed. """ actionType: AutomationRuleActionType! """ Image attached to the action, when it has one. """ asset: Asset """ Action-specific configuration. An empty object when the action takes none. """ configParameters: JSONObject! """ When the action was created. """ createdAt: ISO8601DateTime! """ Seconds to wait after the trigger fires before running, for a relative schedule. """ delaySeconds: Int """ Link preview attached to the action, when it has one. """ embeddedLink: EmbeddedLink """ ID of the object. """ id: ID! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ How the fire time is derived. Null is treated as relative. """ scheduleKind: AutomationRuleScheduleKind """ The fixed instant this action fires at, for an absolute schedule. """ scheduledTime: ISO8601DateTime """ The object this action operates on, when it has one. """ targetable: AutomationRuleTarget } """ One action to create or update on an automation rule. """ input AutomationRuleActionInput { """ The kind of action to perform. """ actionType: AutomationRuleActionType! """ Action-specific configuration. """ configParameters: JSONObject """ Seconds to wait after the trigger fires before running. """ delaySeconds: Int """ ID of an existing action to update — resource ID or GlobalID. Omit to create a new action. """ id: ID """ How the fire time is derived. """ scheduleKind: AutomationRuleScheduleKind """ The fixed instant to fire at, for an absolute schedule. """ scheduledTime: ISO8601DateTime """ The object this action operates on — resource ID or GlobalID. """ targetableId: ID """ The kind of object this action operates on, when it has one. """ targetableType: AutomationRuleTargetType } """ The action an automation rule performs when it fires. """ enum AutomationRuleActionType { """ Add a badge to the member. """ ADD_BADGE """ Add a tag to the member. """ ADD_TAG """ Add the member to the Network. """ ADD_TO_NETWORK """ Add the member to a plan. """ ADD_TO_PLAN """ Add the member to one or more spaces. """ ADD_TO_SPACES """ Award points to the member. """ AWARD_POINTS """ Display a popup to the member. """ DISPLAY_POPUP """ Invite the member to a plan. """ INVITE_TO_BUNDLE """ Invite the member to a space. """ INVITE_TO_SPACE """ Lock RSVPs on an event. """ LOCK_EVENT_RSVPS """ Remove a badge from the member. """ REMOVE_BADGE """ Remove the member from a plan. """ REMOVE_FROM_BUNDLE """ Remove the member from a space. """ REMOVE_FROM_SPACE """ Remove a tag from the member. """ REMOVE_TAG """ Send a direct message to the member. """ SEND_DIRECT_MESSAGE """ Unlock RSVPs on an event. """ UNLOCK_EVENT_RSVPS """ Send a welcome cheer to a new member. """ WELCOME_NEW_MEMBER } """ The connection type for AutomationRule. """ type AutomationRuleConnection { """ A list of edges. """ edges: [AutomationRuleEdge] """ A list of nodes. """ nodes: [AutomationRule] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type AutomationRuleEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: AutomationRule } """ The audience and content filter applied to an automation rule before it runs. """ type AutomationRuleFilter implements DatabaseRecord & Node { """ Natural-language prompt evaluated against content-aware triggers, when set. """ aiFilterPrompt: String """ ID of the object. """ id: ID! """ Audiences the triggering member must match. Empty when no audience filter is applied. """ marketingAudiences: [MarketingAudience!]! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! } """ The audience and content filter to apply to an automation rule. """ input AutomationRuleFilterInput { """ Natural-language prompt evaluated against content-aware triggers. """ aiFilterPrompt: String """ ID of an existing filter to update — resource ID or GlobalID. """ id: ID """ Audiences the triggering member must match — resource IDs or GlobalIDs. """ marketingAudienceIds: [ID!] } """ One execution-history entry for the Network's automations. """ type AutomationRuleLogEntry { """ The action recorded for the entry, as logged. """ action: String """ JSON-encoded action parameters snapshot, as logged. """ actionParameters: String """ The rule the entry belongs to, or null when absent or deleted. """ automationRule: AutomationRule """ Human-readable log message. """ message: String """ The universal operation that ran, when recorded. """ operationName: String """ JSON-encoded parameters snapshot, as logged. """ parameters: String """ Name of the rule that produced the entry. """ ruleName: String """ What produced the entry, when recorded. """ sourceKind: UniversalActionSourceKind """ When the entry was logged (UTC). """ timestamp: ISO8601DateTime """ The trigger recorded for the entry, as logged. """ trigger: String """ JSON-encoded trigger parameters snapshot, as logged. """ triggerParameters: String """ The member the entry is about, when resolvable. """ user: User """ The member ID recorded on the entry, as logged. Use when the member is no longer resolvable (for example, they left the Network). """ userId: String } """ How an automation action's fire time is derived. """ enum AutomationRuleScheduleKind { """ Fires at a fixed instant. """ ABSOLUTE """ Fires a delay after the trigger fires. """ RELATIVE } """ Field to sort automation rules by. """ enum AutomationRuleSortField { """ Sort by when the rule was created (default). """ CREATED_AT """ Sort by the rule's name. """ NAME """ Sort by the rule's status. """ STATUS } """ Status bucket used to filter automation rules. """ enum AutomationRuleStatus { """ The rule is active and running. """ ACTIVE """ The rule is disabled by the Network's billing plan. """ DISABLED """ The rule is paused by a host. """ PAUSED """ The rule is suspended after an error. """ SUSPENDED } """ The object an automation trigger or action targets (a post, space, badge, tag, plan, custom field, coupon, gift, or Host). """ union AutomationRuleTarget = Badge | Coupon | CustomField | Event | GiftDefinition | PaymentPlan | Poll | Post | Segment | Space | User """ The kind of object an automation trigger or action targets. """ enum AutomationRuleTargetType { """ A coupon. """ COUPON """ A custom field. """ CUSTOM_FIELD """ A gift definition. """ GIFT_DEFINITION """ A payment plan. """ PAYMENT_PLAN """ A post (including events and polls). """ POST """ A space, badge, or tag. """ SPACE } """ The event that fires an automation rule. """ enum AutomationRuleTrigger { """ A badge was added to a member. """ ADDED_BADGE """ A custom field response was added for a member. """ ADDED_CUSTOM_FIELD_RESPONSE """ A member added a custom profile photo. """ ADDED_CUSTOM_PROFILE_PHOTO """ A tag was added to a member. """ ADDED_TAG """ A member answered a poll. """ ANSWERED_POLL """ A member attended a livestream. """ ATTENDED_LIVESTREAM """ A member bought a plan. """ BOUGHT_BUNDLE """ A member canceled a plan subscription. """ CANCELED_BUNDLE_SUBSCRIPTION """ A member commented on a post. """ COMMENTED_ON_POST """ A member completed a lesson. """ COMPLETED_LESSON """ A member completed a quiz. """ COMPLETED_QUIZ """ A member completed a section. """ COMPLETED_SECTION """ A member completed the welcome checklist. """ COMPLETED_WELCOME_CHECKLIST """ A member converted a plan free trial to a paid subscription. """ CONVERTED_BUNDLE_FREE_TRIAL """ A member redeemed a coupon. """ COUPON_REDEEMED """ A member enabled mobile push notifications. """ ENABLED_MOBILE_PUSH_NOTIFICATIONS """ An event reached a target RSVP count. """ EVENT_REACHED_RSVP_COUNT """ A member failed a quiz. """ FAILED_QUIZ """ A host received a direct message. """ HOST_RECEIVED_DIRECT_MESSAGE """ A member joined the Network. """ JOINED_NETWORK """ A member joined a space. """ JOINED_SPACE """ A member left the Network. """ LEFT_NETWORK """ A member left a space. """ LEFT_SPACE """ A member became inactive. """ MEMBER_BECAME_INACTIVE """ A member reached a days-since-joining milestone. """ MEMBER_MILESTONE """ A member reached a days-since-joining milestone on a plan. """ PLAN_MILESTONE """ A member reached an ambassador level. """ REACHED_AMBASSADOR_LEVEL """ A member reached a leaderboard rank. """ REACHED_LEADERBOARD """ A member reached a membership-days milestone. """ REACHED_MILESTONE """ A member reached a target number of contributions. """ REACHED_NUMBER_OF_CONTRIBUTIONS """ A member reached a target number of points. """ REACHED_NUMBER_OF_POINTS """ A badge was removed from a member. """ REMOVED_BADGE """ A custom field response was removed for a member. """ REMOVED_CUSTOM_FIELD_RESPONSE """ A member was removed from a plan. """ REMOVED_FROM_BUNDLE """ A tag was removed from a member. """ REMOVED_TAG """ A member RSVPed to an event. """ RSVPED_TO_EVENT """ A member signed in on the mobile app. """ SIGN_IN_ON_MOBILE_APP """ A space reached a target chat message count. """ SPACE_REACHED_CHAT_COUNT } """ A hosts-assigned recognition members can earn on the Network. """ type Badge implements DatabaseRecord & Node { """ URL of the badge's image. """ avatarUrl: String """ Hex color code for the badge, e.g. #FF5733. """ color: String createdAt: ISO8601DateTime! """ The member who created this badge. """ creator: User """ The badge custom field this badge belongs to. """ customField: CustomField! """ Optional description of the badge. """ description: String """ ID of the object. """ id: ID! """ Number of members who currently hold this badge. Computed live. """ memberCount: Int """ Bounded preview (up to 30) of the members who currently hold this badge, from active memberships. The authoritative size is `memberCount`, not this list's length. """ members: [User!]! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ The badge's display name. """ title: String! updatedAt: ISO8601DateTime! """ Canonical URL of the badge. """ url: String! } """ The connection type for Badge. """ type BadgeConnection { """ A list of edges. """ edges: [BadgeEdge] """ A list of nodes. """ nodes: [Badge] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type BadgeEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: Badge } """ Sort key for badge queries. """ enum BadgeSort { """ Sort by when the badge was created (default). """ CREATED_AT """ Sort by the number of members who currently hold the badge. """ MEMBER_COUNT """ Sort alphabetically by badge title (case-insensitive). """ TITLE } """ Autogenerated input type of BanMember """ input BanMemberInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the member to ban — resource ID or GlobalID. """ memberId: ID! """ Optional reason for the ban, kept with the moderation record. """ reason: String } """ Autogenerated return type of BanMember. """ type BanMemberPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! member: User } """ Represents non-fractional signed whole numeric values. Since the value may exceed the size of a 32-bit integer, it's encoded as a string. """ scalar BigInt """ A single feature on a Mighty Networks billing plan, with its display label and availability state. """ type BillingFeature { """ Canonical feature key (e.g. custom_domain, max_hosts). """ key: String! """ Human-readable label, with the value interpolated when the feature is numeric (e.g. "3 Hosts"). """ label: String! """ Whether the feature is available on this plan. """ state: BillingFeatureStateEnum! """ Numeric quota when applicable (e.g. host count, storage bytes). Null for boolean features. """ value: BigInt } """ State of a billing feature on a Mighty Networks plan. """ enum BillingFeatureStateEnum { """ Feature is enabled (boolean true or numeric value > 0). """ AVAILABLE """ Feature is disabled or has zero quota. """ NOT_AVAILABLE } """ A Mighty Networks billing plan tier (e.g. Free, Launch, Scale) — the plan the Host pays for to run the Network. """ type BillingPlan { """ Canonical identifier (e.g. creator, explore-2026-v2, launch-2026). """ canonicalName: String! """ Marketing display name (e.g. Free, Explore, Launch). """ displayName: String! """ User-facing features included in the plan, with availability state and any numeric quotas. """ features: [BillingFeature!]! """ Plan group bucket (e.g. free, brand, courses, business). """ group: String """ Ordering position within the plan group. """ level: Int } """ The kind of negative signal a member applied — mute, hide, or a moderation report category. """ enum BlacklistType { """ Hide the content from the member's own feed. Not reported to moderators. """ NOT_INTERESTING """ Report as offensive. """ OFFENSIVE """ Report for another reason. """ OTHER """ Report as spam. """ SPAM """ Mute: suppress notifications only. Not reported to moderators. """ UNFOLLOW } type BlocklistEntry implements DatabaseRecord & Node { """ Why the address is blocked. Null only for legacy rows with no recorded type. """ blocklistType: EmailBlocklistType """ When the entry was added. """ createdAt: ISO8601DateTime! """ The blocked email address. Member PII, visible to Network Hosts only, and obfuscated for an application without the `read:userinfo` scope. """ email: String! """ ID of the object. """ id: ID! """ Free-text reason recorded with the entry, when present. """ reason: String """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ When the entry was last changed. """ updatedAt: ISO8601DateTime! } """ The connection type for BlocklistEntry. """ type BlocklistEntryConnection { """ A list of edges. """ edges: [BlocklistEntryEdge] """ A list of nodes. """ nodes: [BlocklistEntry] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type BlocklistEntryEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: BlocklistEntry } """ A branding image slot on a Network or a Space, pairing the slot with the image currently in it. """ type BrandingImage { """ Which branding image slot this is. """ imageType: SpaceImageType! """ URL of the image currently in the slot, or null when the slot is empty. """ url: String } """ Autogenerated input type of CancelPaymentSubscription """ input CancelPaymentSubscriptionInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Cancel and revoke access immediately. Defaults to false; when false, an active paid subscription lapses at the end of its billing period. """ immediate: Boolean = false """ Subscription to cancel — resource ID or GlobalID. """ subscriptionId: ID! } """ Autogenerated return type of CancelPaymentSubscription. """ type CancelPaymentSubscriptionPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! paymentSubscription: PaymentSubscription } """ Who authored a chat message """ enum ChatActorType { """ The AI cohost """ COHOST """ A system-generated lifecycle event (rename, member added or removed) """ SYSTEM """ A community member """ USER } """ A message within a public space chat """ type ChatMessage implements DatabaseRecord & Message & Node & Reactable { """ Who authored the message """ actorType: ChatActorType! """ Attached artifact (e.g. a Cohost-generated HTML page), when present """ artifact: Artifact """ File attachments (images, documents, audio, video) """ assets: [Asset!] """ The conversation this message belongs to """ conversation: PublicConversation createdAt: ISO8601DateTime! """ Link-preview metadata when the message contains a link """ embeddedLink: EmbeddedLink """ ID of the object. """ id: ID! """ When the most recent reply was sent, or null when the message has no replies """ lastReplyAt: ISO8601DateTime """ Emoji reaction counts grouped by base emoji (skin-tone modifiers are stripped server-side). """ reactions: [ReactionGroup!]! """ Number of replies in the thread rooted at this message """ replyCount: Int! """ Parent message (null for root messages) """ replyTo: ChatMessage """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ HTML content; internal classes and attributes are stripped on external API surfaces """ textHtml: String """ Plain text content with HTML stripped """ textText: String """ Title of the thread rooted at this message, or null when the message has no thread """ threadTitle: String updatedAt: ISO8601DateTime! """ The member who sent the message; null when the author no longer resolves """ user: User } """ The connection type for ChatMessage. """ type ChatMessageConnection { """ A list of edges. """ edges: [ChatMessageEdge] """ A list of nodes. """ nodes: [ChatMessage] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type ChatMessageEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: ChatMessage } """ Client-observed stats for a completed upload transfer (telemetry only). """ input ClientTransferStatsInput { """ How many part uploads the client actually ran concurrently. Distinct from the width it was offered — it cannot exceed that. """ maxWidthUsed: Int """ How many part uploads the client retried across the transfer. """ partRetryCount: Int } """ A comment on a post, or a reply to another comment **Required scopes:** `read:network`, `write:comments`, `host:read:network` (any one) """ type Comment implements DatabaseRecord & Node & Reactable { """ File attachments (images, documents, audio, video) """ assets: [Asset!] author: User """ HTML content with semantic mention and hashtag anchors; internal classes and attributes are stripped on external API surfaces """ bodyHtml: String """ Plain text content with HTML stripped """ bodyText: String cheerCount: Int! createdAt: ISO8601DateTime! """ Link-preview metadata — populated for comments containing a link """ embeddedLink: EmbeddedLink """ ID of the object. """ id: ID! """ The post this comment belongs to """ post: PostContent """ Emoji reaction counts grouped by base emoji (skin-tone modifiers are stripped server-side). """ reactions: [ReactionGroup!]! """ Threaded replies to this comment """ replies( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int ): CommentConnection replyCount: Int! """ Parent comment (null for root comments) """ replyTo: Comment """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! space: Space updatedAt: ISO8601DateTime! } """ The connection type for Comment. """ type CommentConnection { """ A list of edges. """ edges: [CommentEdge] """ A list of nodes. """ nodes: [Comment] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type CommentEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: Comment } """ Autogenerated input type of CompleteLiveSpace """ input CompleteLiveSpaceInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the livestream to end — resource ID or GlobalID. """ id: ID! } """ Autogenerated return type of CompleteLiveSpace. """ type CompleteLiveSpacePayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! liveSpace: LiveSpace } """ Autogenerated input type of CompleteQuizAttempt """ input CompleteQuizAttemptInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ The quiz attempt to submit — resource ID or GlobalID. """ quizAttemptId: ID! } """ Autogenerated return type of CompleteQuizAttempt. """ type CompleteQuizAttemptPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! """ The scored attempt, with its resulting status and percentage """ quizAttempt: QuizAttempt } """ Autogenerated input type of CompleteUploadSession """ input CompleteUploadSessionInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Optional client-observed transfer stats for telemetry. Omitted by clients that predate parallel uploads. """ clientTransferStats: ClientTransferStatsInput """ Per-part etags the client captured PUTting directly to storage (presigned strategy). Ignored by server-mediated. """ receipts: [UploadReceiptInput!] """ The UUID returned by CreateUploadSession — NOT the GlobalID """ sessionToken: String! """ Optional client-reported elapsed upload time for telemetry. Float so a sub-second transfer can report its real duration rather than 0 or 1. """ uploadTimeSeconds: Float """ Optional client-reported total size for telemetry. BigInt for parity with file_size_bytes on the create mutation. """ uploadedFileSizeBytes: Long } """ Autogenerated return type of CompleteUploadSession. """ type CompleteUploadSessionPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! session: UploadSession } """ A conversation carrying a chat timeline — a direct message, a chat-enabled space, or a thread """ interface Conversation { """ When the viewer bookmarked this conversation, or null when it is not bookmarked """ bookmarkedAt: ISO8601DateTime """ ID of the object. """ id: ID! """ When the most recent message was sent """ lastChatAt: ISO8601DateTime """ Display title — the group name or member names for direct messages, the space title for space chats, or a preview of the parent message for threads """ title: String """ Number of messages the viewer has not read in this conversation """ unreadCount: Int! } """ A threaded reply conversation rooted at a message in a direct message or space chat **Required scopes:** `read:chats`, `write:chats` (any one) """ type ConversationThread implements Conversation & DatabaseRecord & Node & PrivateConversation { """ When the viewer bookmarked this conversation, or null when it is not bookmarked """ bookmarkedAt: ISO8601DateTime """ ID of the object. """ id: ID! """ When the most recent message was sent """ lastChatAt: ISO8601DateTime """ The most recent message in the conversation """ lastMessage: PrivateMessage """ Messages in this conversation, newest first. System messages (renames, member changes) are excluded unless includeSystemMessages is true. """ messages( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Include system lifecycle messages (renames, member adds and removes). Defaults to false. """ includeSystemMessages: Boolean = false """ Returns the last _n_ elements from the list. """ last: Int ): PrivateMessageConnection! """ The message this thread was started from """ parentMessage: Message """ Members of the conversation """ participants: [User!] """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ Display title — the group name or member names for direct messages, the space title for space chats, or a preview of the parent message for threads """ title: String """ Number of messages the viewer has not read in this conversation """ unreadCount: Int! } """ A discount coupon. """ type Coupon implements DatabaseRecord & Node { """ The coupon's redemption code. """ code: String """ ID of the object. """ id: ID! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! } type Course implements DatabaseRecord & Node & SpaceInterface { """ Dark-mode variant of the avatar image URL. """ avatarDarkModeUrl: String """ Avatar image URL. """ avatarUrl: String """ Coursework items within the course, ordered by position. Filter by type, status, or a parent item. """ coursework( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int """ Only the direct children of this coursework item (its resource ID or GlobalID). """ parentId: ID """ Only items with this visibility status. """ status: CourseworkStatus """ Only items of this kind (lesson, quiz, section, overview). """ type: CourseworkType ): CourseworkConnection! """ The course's description as sanitized HTML. """ descriptionHtml: String """ The course's description as plain text, with HTML stripped. """ descriptionText: String """ ID of the object. """ id: ID! """ Posts, events, and polls that make up the course's content. """ posts( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int ): PostContentConnection! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! title: String! """ Canonical web URL. """ url: String! } """ The connection type for Course. """ type CourseConnection { """ A list of edges. """ edges: [CourseEdge] """ A list of nodes. """ nodes: [Course] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type CourseEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: Course } """ The format of a course, determining how members progress through it. """ enum CourseFormat { """ A cohort course — members move through the material together on a shared schedule. """ COHORT """ A self-paced course — members progress through the material on their own. """ CONTENT } type CourseProgress { """ The course this progress is for. """ course: Course! """ The coursework item the member should work on next (the "Next up" item). Null for hosts and moderators. """ current: Coursework """ The member's progress on each coursework item in the course, ordered by position. """ items( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int ): CourseworkProgressConnection! """ The coursework item that follows the current one, or null when there is none. """ next: Coursework """ The member's overall completion percentage for the course, from 0 to 100. Null when the member has no membership in the course. """ progressPercent: Int } """ A member's progress state on a coursework item. """ enum CourseProgressState { """ The member has completed the item. """ COMPLETED """ The member has viewed the item but not completed it. """ VIEWED } enum CourseProgressStatus { """ Completed the course """ COMPLETE """ Completed up to a quarter of the course """ IN_PROGRESS_FIRST_QUARTER """ Completed more than three quarters of the course """ IN_PROGRESS_FOURTH_QUARTER """ Completed up to half of the course """ IN_PROGRESS_SECOND_QUARTER """ Completed up to three quarters of the course """ IN_PROGRESS_THIRD_QUARTER """ Have not started the course """ NOT_STARTED } type Coursework implements DatabaseRecord & Node { """ Direct child items (sections/lessons/quizzes under this one), ordered by position. """ children( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int ): CourseworkConnection! """ How the item is marked complete for a member. """ completionCriteria: CourseworkCompletionCriteria! """ The course this item belongs to. """ course: Course! createdAt: ISO8601DateTime! """ HTML body with formatted mentions, hashtags, and links; internal classes and attributes are stripped on external API surfaces. """ descriptionHtml: String """ Plain text body with HTML stripped. """ descriptionText: String """ ID of the object. """ id: ID! """ Representative image URL for the item, falling back to a default course header image when the item has no display image of its own. """ imageUrl: String """ True when the item's content leads with audio, either as the header media or in the body. Never true at the same time as isVideo. """ isAudio: Boolean! """ True when the item's content leads with a video. Never true at the same time as isAudio: audio header media wins, then video, then body audio. """ isVideo: Boolean! """ Parent section or overview; null for the overview itself. """ parent: Coursework """ Sort position within its siblings (lower comes first). Compare only between items sharing the same parent. """ position: Int """ Number of distinct members with an active membership who have at least one attempt in the given status. Null for non-quiz coursework and for viewers who are not a host of the quiz's space. """ quizAttemptMemberCount( """ The attempt status to count members by. """ status: QuizAttemptStatus! ): Int """ Members' attempts at this quiz, newest first. Hosts and moderators see every member's attempts (member identity and scores); members see only their own. Empty for non-quiz coursework and signed-out viewers. """ quizAttempts( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int """ Optionally filter to one or more attempt statuses. """ statuses: [QuizAttemptStatus!] ): QuizAttemptConnection! """ Questions in this quiz, in display order. Empty for non-quiz coursework. """ quizQuestions( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int ): PollConnection! """ Aggregate results for this quiz. Null for non-quiz coursework and for viewers who are not a host or moderator of the quiz's space. """ quizStats: QuizStats """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ Visibility status. """ status: CourseworkStatus! title: String """ The kind of coursework item. """ type: CourseworkType! """ When the item becomes available to a member. """ unlockingCriteria: CourseworkUnlockingCriteria! updatedAt: ISO8601DateTime! """ Canonical web URL of the coursework item. """ url: String! } """ How a coursework item is marked complete for a member. """ enum CourseworkCompletionCriteria { """ Complete when the member taps the completion button. """ BUTTON """ Complete when a quiz score meets the minimum correct percentage. """ MINIMUM_CORRECT_PERCENTAGE """ No completion tracking. """ NONE """ Complete when the member finishes the media in the content's hero slot. """ PRIMARY_MEDIA """ Complete when the member finishes the video. """ VIDEO """ Complete once the member opens it. """ VISITED } """ The connection type for Coursework. """ type CourseworkConnection { """ A list of edges. """ edges: [CourseworkEdge] """ A list of nodes. """ nodes: [Coursework] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type CourseworkEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: Coursework } type CourseworkProgress { """ How complete the item is for the member, from 0 to 100. """ completionPercent: Int! """ The coursework item this progress is for. """ coursework: Coursework! """ Whether the item is currently available to the member. """ isUnlocked: Boolean! """ The status of the member's quiz attempt. Present only for quiz items the member has attempted. """ quizAttemptStatus: QuizAttemptStatus """ The member's recorded progress state, or null when the member has not started the item. """ state: CourseProgressState """ When the item unlocks for the member. Null when it is already unlocked or has no scheduled unlock. """ unlocksAt: ISO8601DateTime } """ The connection type for CourseworkProgress. """ type CourseworkProgressConnection { """ A list of edges. """ edges: [CourseworkProgressEdge] """ A list of nodes. """ nodes: [CourseworkProgress] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type CourseworkProgressEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CourseworkProgress } """ Visibility status of a coursework item. """ enum CourseworkStatus { """ Hidden from members. """ HIDDEN """ Awaiting publication of its parent before becoming visible. """ PENDING """ Published and visible to members who can access it. """ POSTED } """ The kind of coursework item within a course. """ enum CourseworkType { """ A lesson — a leaf item holding instructional content. """ LESSON """ The course overview — the single root the hierarchy hangs from. """ OVERVIEW """ A quiz — a leaf item that assesses the member. """ QUIZ """ A section — groups lessons and quizzes under the overview. """ SECTION } """ When a coursework item becomes available to a member. """ enum CourseworkUnlockingCriteria { """ Always available. """ NONE """ Unlocks for all members on a scheduled date. """ SCHEDULED_DATE """ Unlocks after the preceding item is completed. """ SEQUENTIAL """ Unlocks a set number of days after the member joins the course. """ TIME_FROM_COURSE_JOIN } """ Autogenerated input type of CreateAmbassadorAnnouncement """ input CreateAmbassadorAnnouncementInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String } """ Autogenerated return type of CreateAmbassadorAnnouncement. """ type CreateAmbassadorAnnouncementPayload { ambassadorStats: AmbassadorStats """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! } """ Autogenerated input type of CreateAnnouncement """ input CreateAnnouncementInput { """ The announcement message. Simple HTML is sanitized server-side. """ body: String! """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Optional URL to attach to the announcement. Only available on Networks with external announcement links enabled; supplying one otherwise is rejected. """ externalLink: String """ Notify every member the filter matches. Cannot be combined with recipientIds. An empty filter notifies everyone. """ filter: MemberFilter """ People Magic cluster ID ("clu_") whose live roster receives the announcement. Cannot be combined with recipientIds or filter, and requires People Magic to be enabled for the Network. """ pmeClusterId: String """ Resource IDs or GlobalIDs of the members to notify. Cannot be combined with filter. Omit both to notify everyone; an empty list is rejected. """ recipientIds: [ID!] """ Resource ID or GlobalID of the space or Network to broadcast to. """ spaceId: ID! """ Short notification text shown to recipients, truncated to 150 characters. Defaults to a greeting attributed to the sender's role when omitted. """ subject: String } """ Autogenerated return type of CreateAnnouncement. """ type CreateAnnouncementPayload { announcement: Announcement """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! """ True when recipient resolution was deferred to a background job, in which case the returned announcement is created but sent shortly. False when the announcement was created and sent synchronously. """ queued: Boolean! } """ Autogenerated input type of CreateAnswerCheer """ input CreateAnswerCheerInput { """ GlobalID of the poll answer to cheer """ answerId: ID! """ A unique identifier for the client performing the mutation. """ clientMutationId: String } """ Autogenerated return type of CreateAnswerCheer. """ type CreateAnswerCheerPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! pollAnswer: PollAnswer } """ Autogenerated input type of CreateAutomationRule """ input CreateAutomationRuleInput { """ The actions the rule performs. At least one is required. """ automationRuleActions: [AutomationRuleActionInput!]! """ An audience and content filter applied before the rule runs. """ automationRuleFilter: AutomationRuleFilterInput """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Display name for the rule. """ name: String """ Whether the rule starts paused. """ paused: Boolean """ The event that fires the rule. """ trigger: AutomationRuleTrigger! """ Trigger-specific configuration. """ triggerParameters: JSONObject """ The object the trigger is scoped to — resource ID or GlobalID. """ triggerTargetableId: ID """ The kind of object the trigger is scoped to, when it has one. """ triggerTargetableType: AutomationRuleTargetType } """ Autogenerated return type of CreateAutomationRule. """ type CreateAutomationRulePayload { automationRule: AutomationRule """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! } """ Autogenerated input type of CreateBadge """ input CreateBadgeInput { """ ID of the image asset for the badge — resource ID or GlobalID. """ avatarId: ID! """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Hex color code for the badge, e.g. #FF5733. """ color: String """ Optional description of the badge. """ description: String """ The badge's display name. """ title: String! } """ Autogenerated input type of CreateBadgeMemberships """ input CreateBadgeMembershipsInput { """ ID of the badge — resource ID or GlobalID. """ badgeId: ID! """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ IDs of the members to grant the badge — resource IDs or GlobalIDs. """ memberIds: [ID!]! } """ Autogenerated return type of CreateBadgeMemberships. """ type CreateBadgeMembershipsPayload { badge: Badge """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! } """ Autogenerated return type of CreateBadge. """ type CreateBadgePayload { badge: Badge """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! } """ Autogenerated input type of CreateBlocklistEntry """ input CreateBlocklistEntryInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ The email address to block. Stored lowercased. """ email: String! """ Free-text reason to record with the entry. """ reason: String } """ Autogenerated return type of CreateBlocklistEntry. """ type CreateBlocklistEntryPayload { blocklistEntry: BlocklistEntry """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! } """ Autogenerated input type of CreateChatReport """ input CreateChatReportInput { """ How to flag the chat message. """ blacklistType: BlacklistType! """ ID of the chat message to flag — resource ID or GlobalID. """ chatId: ID! """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Free-text reason, stored with the report. """ reason: String } """ Autogenerated return type of CreateChatReport. """ type CreateChatReportPayload { chatMessage: Message """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! } """ Autogenerated input type of CreateComment """ input CreateCommentInput { """ Comment text (HTML is sanitized server-side) """ body: String! """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID of the post to comment on """ postId: ID! """ GlobalID of the parent comment when replying """ replyToId: ID } """ Autogenerated return type of CreateComment. """ type CreateCommentPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String comment: Comment errors: [String!]! } """ Autogenerated input type of CreateCommentReport """ input CreateCommentReportInput { """ How to flag the comment. """ blacklistType: BlacklistType! """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the comment to flag — resource ID or GlobalID. """ commentId: ID! """ Free-text reason, stored with the report. """ reason: String } """ Autogenerated return type of CreateCommentReport. """ type CreateCommentReportPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String comment: Comment errors: [String!]! } """ Autogenerated input type of CreateConversationBookmark """ input CreateConversationBookmarkInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ The conversation to bookmark — resource ID or GlobalID. """ conversationId: ID! } """ Autogenerated return type of CreateConversationBookmark. """ type CreateConversationBookmarkPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ The bookmarked conversation """ conversation: Conversation errors: [String!]! } """ Autogenerated input type of CreateConversation """ input CreateConversationInput { """ IDs of previously uploaded assets (images, files) to attach to the opening message """ assetIds: [ID!] """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of an embedded link (link preview) to attach to the opening message """ embeddedLinkId: ID """ When true, convert TipTap paragraph boundaries to double line breaks so multi-paragraph messages keep their spacing after HTML scrubbing. Defaults to false. """ preserveParagraphSpacing: Boolean """ GlobalIDs of the recipients (excluding yourself) """ recipientIds: [ID!]! """ When true, the send-time conditions a direct-message automation gracefully skips (self-message, private chat disabled for the Network, sender, or recipient, a Limited Member recipient, or a non-Host sender) return a coded skipped outcome instead of raising or erroring. Defaults to false. """ reportSkipsAsOutcomes: Boolean """ Message text (HTML is sanitized server-side) """ text: String! """ Optional name for a newly created group conversation """ title: String } """ Autogenerated input type of CreateConversationMemberships """ input CreateConversationMembershipsInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID of the group conversation """ conversationId: ID! """ GlobalIDs of the members to add """ memberIds: [ID!]! } """ Autogenerated return type of CreateConversationMemberships. """ type CreateConversationMembershipsPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String conversation: PrivateConversation errors: [String!]! } """ Autogenerated return type of CreateConversation. """ type CreateConversationPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String conversation: PrivateConversation errors: [String!]! message: PrivateMessage outcome: DirectMessageOutcome } """ Autogenerated input type of CreateCourse """ input CreateCourseInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Optional collection to place the course in. Created on demand if it does not exist (case-insensitive name match). """ collectionName: String """ Optional one-line description persisted on the new course. """ description: String """ Course format — CONTENT (self-paced, the default) or COHORT (scheduled). Determines the course template. """ format: CourseFormat """ Display title for the new course. """ title: String! } """ Autogenerated return type of CreateCourse. """ type CreateCoursePayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String course: Course errors: [String!]! } """ Autogenerated input type of CreateCoursework """ input CreateCourseworkInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ How the item is marked complete. """ completionCriteria: CourseworkCompletionCriteria """ Course identifier — resource ID or GlobalID of a Space with course content enabled. """ courseId: ID! """ Body content of the item (HTML). """ description: String """ Parent section or overview to nest under. Defaults to the course overview when omitted. """ parentId: ID """ Initial visibility status. """ status: CourseworkStatus """ Title of the item. """ title: String """ The kind to create. Overview cannot be created — every course has exactly one, created with the course. """ type: CourseworkType! """ When the item becomes available. """ unlockingCriteria: CourseworkUnlockingCriteria } """ Autogenerated return type of CreateCoursework. """ type CreateCourseworkPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String coursework: Coursework errors: [String!]! } """ Autogenerated input type of CreateCustomDomain """ input CreateCustomDomainInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Fully qualified domain name to point at the Network. """ domain: String! } """ Autogenerated return type of CreateCustomDomain. """ type CreateCustomDomainPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String customDomain: CustomDomain errors: [String!]! } """ Autogenerated input type of CreateCustomField """ input CreateCustomFieldInput { """ Whether members may add their own dropdown options. """ allowAdHoc: Boolean """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Optional helper text shown with the field. """ description: String """ Maximum options a member may select; required for multi-select dropdowns. """ maxResponses: Int """ Initial dropdown option titles. """ options: [String!] """ Optional placeholder shown in the field's input. """ placeholder: String """ Who can see the field and its responses. """ privacy: CustomFieldPrivacy! """ Whether members answer for themselves or only hosts set responses. """ responseBy: CustomFieldResponseBy! """ The kind of response to collect. Only dropdown, text, and number types can be created. """ responseType: CustomFieldResponseType! """ The field's display name. """ title: String! } """ Autogenerated input type of CreateCustomFieldOption """ input CreateCustomFieldOptionInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Numeric resource ID or GlobalID of the dropdown custom field. """ customFieldId: ID! """ Optional description of the option. """ description: String """ The option's display name. """ title: String! } """ Autogenerated return type of CreateCustomFieldOption. """ type CreateCustomFieldOptionPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! option: CustomFieldOption } """ Autogenerated return type of CreateCustomField. """ type CreateCustomFieldPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String customField: CustomField errors: [String!]! } """ Autogenerated input type of CreateCustomOnboardingPointer """ input CreateCustomOnboardingPointerInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the Space this pointer routes members to — resource ID or GlobalID. """ spaceId: ID! """ Display title of the onboarding step. """ title: String! } """ Autogenerated return type of CreateCustomOnboardingPointer. """ type CreateCustomOnboardingPointerPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! """ The created pin at the top of the Welcome Checklist. Null only when a user-correctable error is returned. """ pin: Pin """ The full pin list this write landed in, post-write, in curator-set order. """ pins: [Pin!]! } """ Autogenerated input type of CreateDefaultGiftDefinitions """ input CreateDefaultGiftDefinitionsInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String } """ Autogenerated return type of CreateDefaultGiftDefinitions. """ type CreateDefaultGiftDefinitionsPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! """ The Network's gifts after seeding """ giftDefinitions: [GiftDefinition!] } """ Autogenerated input type of CreateDirectMessage """ input CreateDirectMessageInput { """ IDs of previously uploaded assets (images, files) to attach to the message """ assetIds: [ID!] """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID of the direct message or thread to post to. With replyToId, the GlobalID of the conversation containing the message being replied to. """ conversationId: ID! """ ID of an embedded link (link preview) to attach to the message """ embeddedLinkId: ID """ GlobalID of a message in the conversation to reply to. Finds or creates the thread rooted at that message and posts there. Omit to post to the conversation itself. """ replyToId: ID """ Message text (HTML is sanitized server-side) """ text: String! } """ Autogenerated return type of CreateDirectMessage. """ type CreateDirectMessagePayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! message: PrivateMessage } """ Autogenerated input type of CreateDirectMessageReaction """ input CreateDirectMessageReactionInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ The emoji (may include skin tone modifiers) """ emoji: String! """ GlobalID of the message to react to """ messageId: ID! } """ Autogenerated return type of CreateDirectMessageReaction. """ type CreateDirectMessageReactionPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! """ The message, with its updated reactions """ message: PrivateMessage } """ Autogenerated input type of CreateEventAnnouncement """ input CreateEventAnnouncementInput { """ The announcement message. Simple HTML is sanitized server-side. """ body: String! """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Event whose RSVP groups to message — resource ID or GlobalID. """ eventId: ID! """ ICS UTC-format occurrence key targeting one occurrence of a recurring event (e.g. "20240115T160000Z"). """ instanceIndex: String """ RSVP groups of the event to message. NONE (members who have not RSVPed) is limited to hosts and moderators. """ rsvpStatuses: [RsvpStatus!]! } """ Autogenerated return type of CreateEventAnnouncement. """ type CreateEventAnnouncementPayload { announcement: Announcement """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! } """ Autogenerated input type of CreateEvent """ input CreateEventInput { """ Recurrence days (SU, MO, TU, WE, TH, FR, SA) """ byDays: [String!] """ Days of the month for monthly recurrence """ byMonthDays: [String!] """ City of an in-person event — only accepted when event_type is local. Supplying street and city derives the event’s coordinates via geocoding. A state/province and postal code may be included after the city name (e.g. "Beverly Hills, California, 90210") to improve geocoding accuracy. """ city: String """ A unique identifier for the client performing the mutation. """ clientMutationId: String description: String endsAt: ISO8601DateTime! """ One of: local, live_chat, online_meeting, live_video, webinar, local_meetup """ eventType: String! """ Recurrence frequency (daily, weekly, monthly, yearly) """ frequency: String """ ID of an image asset to show as the event header image — resource ID or GlobalID. Upload the image first via POST /networks/:network_id/assets. Any image asset is accepted and takes the style of the slot it lands in, so asset_style=cinema_header is a recommendation, not a requirement. """ headerId: ID """ Recurrence interval — required when frequency is provided """ interval: Int """ External event link (e.g. a Zoom or Google Meet URL) """ link: String """ Deprecated alias for venue. """ location: String @deprecated(reason: "Use venue.") postInFeed: Boolean = true """ End date for recurrence """ recurUntil: ISO8601DateTime """ How many times the event recurs """ recurrenceCount: Int restrictedEvent: Boolean = false rsvpClosed: Boolean = false rsvpEnabled: Boolean = true """ GlobalID of the flex space to create the event in """ spaceId: ID! startsAt: ISO8601DateTime! """ Street address of an in-person event — only accepted when event_type is local. Supplying street and city derives the event’s coordinates via geocoding. """ street: String """ ID of an image asset to show as the event thumbnail — resource ID or GlobalID. Upload the image first via POST /networks/:network_id/assets. Any image asset is accepted and takes the style of the slot it lands in, so asset_style=square_thumbnail is a recommendation, not a requirement. An asset already styled cinema_header is refused here, as is one also named by headerId — pass either as headerId alone, which the card falls back to anyway. """ thumbnailId: ID """ IANA timezone identifier (defaults to the creator’s timezone) """ timeZone: String title: String! """ Free-text venue or place name, distinct from the street and city address. It does not contribute to the event’s coordinates — those come from street and city. """ venue: String } """ Autogenerated return type of CreateEvent. """ type CreateEventPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! event: Event } """ Autogenerated input type of CreateGiftDefinition """ input CreateGiftDefinitionInput { """ Resource ID of an uploaded image asset to use as the badge. Provide this or avatarName, not both. """ avatarId: ID """ Identifier of a built-in badge template (see the Network's gift templates). Provide this or avatarId, not both. """ avatarName: String """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Display name of the gift """ name: String! } """ Autogenerated return type of CreateGiftDefinition. """ type CreateGiftDefinitionPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! """ The gift that was created """ giftDefinition: GiftDefinition } """ Autogenerated input type of CreateGift """ input CreateGiftInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Optional GlobalID of a post, comment, or chat message the gift is given in the context of """ contextTargetableId: ID """ GlobalID of the gift to give """ giftDefinitionId: ID! """ Optional message to include (max 500 characters) """ message: String """ GlobalID of the member to give the gift to """ recipientId: ID! } """ Autogenerated return type of CreateGift. """ type CreateGiftPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! """ The gift that was given """ giftTransaction: Recognition } """ Autogenerated input type of CreateInviteRequest """ input CreateInviteRequestInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Answers to the Space's join screening questions. """ profileQuestionAnswers: [ProfileQuestionAnswerInput!] = [] """ ID of the Space to request to join — resource ID or GlobalID. """ spaceId: ID! } """ Autogenerated return type of CreateInviteRequest. """ type CreateInviteRequestPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! inviteRequest: InviteRequest } """ Autogenerated input type of CreateInvites """ input CreateInvitesInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ For plan invites to a checkout page: where to send recipients who are not signed in — sign_in or sign_up. """ fallbackRedirect: String """ For plan invites to a checkout page: the plan billing interval (e.g. month, year, one_time). """ interval: String """ For plan invites: where the invite link points — landing_page or checkout_page. """ linkDestination: String """ GlobalIDs or resource IDs of existing Network members to invite. """ memberIds: [ID!] """ Personal message included with the invite. Cannot contain links. """ message: String """ GlobalID or resource ID of a Payment Plan (Bundle) to invite to. When set, the invite grants access to the plan. """ planId: ID """ Email recipients to invite, each with an optional first and last name. """ recipients: [InviteRecipientInput!] """ GlobalID or resource ID of the member to attribute the invite to instead of the caller. Network hosts only. """ senderId: ID """ GlobalID or resource ID of the container to invite into — a Space or the Network itself. Defaults to the Network. """ spaceId: ID """ Membership role granted when the invite is redeemed: host, moderator, or contributor. Defaults to contributor. Only Network hosts may invite as host or moderator. """ spaceRole: String } """ Autogenerated return type of CreateInvites. """ type CreateInvitesPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Number of recipients accepted for invite creation. """ count: Int! errors: [String!]! """ Recipients skipped because they are already members or already have a pending invite, as email addresses or member names. """ ignoredRecipients: [String!]! """ How the invites were created: 'sync' when created immediately, 'async' when enqueued for background delivery. Null when the request was rejected. """ mode: String } """ Autogenerated input type of CreateLiveSpace """ input CreateLiveSpaceInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Notify members of the container Space that the livestream has started. """ notifyMembers: Boolean = false """ Record the livestream. Recording consumes the Network's storage allowance, so it is off unless asked for. """ record: Boolean = false """ ID of the Space to start the livestream in — resource ID or GlobalID. Omit it to start the livestream on the Network itself. A blank value is not the same as omitting it and is rejected. """ spaceId: ID """ Display title for the livestream. """ title: String! } """ Autogenerated return type of CreateLiveSpace. """ type CreateLiveSpacePayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! liveSpace: LiveSpace } """ Autogenerated input type of CreateMarketingBanner """ input CreateMarketingBannerInput { """ Label of the call-to-action button. """ buttonText: String """ URL the call-to-action button links to. Must be https. Cannot be combined with a targetable. """ buttonUrl: String """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ The Banner's body. HTML is sanitized server-side. """ description: String """ When the Banner stops showing. Omit for a Banner that never expires. """ endsAt: ISO8601DateTime """ The active Marketing Audience to target — resource ID or GlobalID. """ marketingAudienceId: ID! """ The Banner's internal name, shown only to Hosts. """ name: String! """ Whether a member can permanently dismiss the Banner. """ permanentlyDismissible: Boolean """ When the Banner starts showing. Defaults to immediately. """ startsAt: ISO8601DateTime """ The platforms the Banner is shown on. Defaults to every platform. """ targetPlatforms: MarketingBannerTargetPlatform """ The entity the Banner targets — a Payment Plan resource ID or GlobalID. Provide together with targetableType. """ targetableId: ID """ The kind of entity the Banner targets. Provide together with targetableId; cannot be combined with buttonUrl. """ targetableType: MarketingBannerTargetableType """ The Banner's headline shown to members. """ title: String! } """ Autogenerated return type of CreateMarketingBanner. """ type CreateMarketingBannerPayload { banner: MarketingBanner """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! } """ Autogenerated input type of CreateMemberBlock """ input CreateMemberBlockInput { """ Why the member is being blocked. Defaults to a silent block (not_interesting) when omitted. """ blacklistType: BlacklistType """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the member to block — resource ID or GlobalID. """ memberId: ID! """ Free-text reason, stored with the block. """ reason: String } """ Autogenerated return type of CreateMemberBlock. """ type CreateMemberBlockPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! member: User } """ Autogenerated input type of CreateMemberFollow """ input CreateMemberFollowInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the member to follow — resource ID or GlobalID. """ memberId: ID! } """ Autogenerated return type of CreateMemberFollow. """ type CreateMemberFollowPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! member: User } """ Autogenerated input type of CreateMemberReport """ input CreateMemberReportInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the post, comment, or space the report is filed from — resource ID or GlobalID. Provide together with contextType. """ contextId: ID """ The kind of content the report is filed from. Provide together with contextId. """ contextType: AbuseReportContextType """ ID of the member to report — resource ID or GlobalID. """ memberId: ID! """ Free-text reason, stored with the report. """ reason: String """ Why the member is being reported. """ reportType: AbuseReportType! } """ Autogenerated return type of CreateMemberReport. """ type CreateMemberReportPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! member: User } """ Autogenerated input type of CreateMessage """ input CreateMessageInput { """ IDs of previously uploaded assets (images, files) to attach to the message """ assetIds: [ID!] """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID of the chat-enabled space to send the message to """ conversationId: ID! """ ID of an embedded link (link preview) to attach to the message """ embeddedLinkId: ID """ Message text (HTML is sanitized server-side) """ text: String! } """ Autogenerated return type of CreateMessage. """ type CreateMessagePayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! message: ChatMessage } """ Autogenerated input type of CreateMessageReaction """ input CreateMessageReactionInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ The emoji (may include skin tone modifiers) """ emoji: String! """ GlobalID of the message to react to """ messageId: ID! } """ Autogenerated return type of CreateMessageReaction. """ type CreateMessageReactionPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! """ The message, with its updated reactions """ message: ChatMessage } """ Autogenerated input type of CreatePaymentCoupon """ input CreatePaymentCouponInput { """ Per-currency fixed discounts. Use with an amount-off Promo Code; omit for percentage. """ amountOff: [PaymentCouponAmountOffInput!] """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ The code a member enters to redeem the discount. Must be unique among active Promo Codes. """ code: String! """ Whether the discount is a percentage or a fixed amount off. """ couponType: PaymentCouponDiscountType! """ Host-facing description of the Promo Code. Plain text. """ description: String """ How long the discount applies: once, forever, or repeating. """ duration: PaymentCouponDuration! """ Number of months a repeating discount applies. Required when duration is repeating; must be omitted otherwise. """ durationInMonths: Int """ Percent off the plan price (0-100). Use with a percentage Promo Code; omit for amount-off. """ percentageOff: Int """ Payment Plans to restrict the Promo Code to (resource IDs or GlobalIDs). Omit to apply it to every plan. """ planIds: [ID!] } """ Autogenerated return type of CreatePaymentCoupon. """ type CreatePaymentCouponPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! paymentCoupon: PaymentCoupon } """ Autogenerated input type of CreatePaymentPlanAnnouncement """ input CreatePaymentPlanAnnouncementInput { """ The announcement message. Simple HTML is sanitized server-side. """ body: String! """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Optional URL to attach to the announcement. Only available on Networks with external announcement links enabled; supplying one otherwise is rejected. """ externalLink: String """ Payment Plan whose buyers to notify — resource ID or GlobalID. """ paymentPlanId: ID! """ Resource IDs or GlobalIDs of specific buyers to notify. Every entry must be a buyer of the plan. Omit to notify every buyer; an empty list is rejected. """ recipientIds: [ID!] """ Short notification text shown to recipients, truncated to 150 characters. Defaults to a greeting attributed to the sending Host when omitted. """ subject: String } """ Autogenerated return type of CreatePaymentPlanAnnouncement. """ type CreatePaymentPlanAnnouncementPayload { announcement: Announcement """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! } """ Autogenerated input type of CreatePaymentPlan """ input CreatePaymentPlanInput { """ Price as decimal string (e.g. "9.99"). Use for single-currency paid plans; omit for free plans. """ amount: String """ Whether to require Host approval for new members. Defaults to false. """ approvalEnabled: Boolean """ Bullet-style list of plan benefits. """ benefits: [String!] """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Three-letter currency code (e.g. usd). Used with amount; ignored when prices is provided. """ currency: String """ Custom description for the plan. """ description: String """ Host-only note for differentiating plans (max 150 chars). """ internalNotes: String """ Billing interval for subscriptions: day, week, biweekly, month, quarter, biannual, year. Defaults to month. """ interval: String """ Space members land on after joining via this plan. """ landingSpaceId: ID """ Plan name shown to members (4-60 characters). """ name: String! """ Payment platform: stripe (web) or apple (iOS). Defaults to stripe. """ paymentPlatform: String """ Short sales pitch shown to prospective members on the plan's landing surface. """ pitch: String """ Per-currency prices. Required when the Network has multiple enabled currencies for Stripe paid plans. """ prices: [PaymentPlanPriceInput!] """ Pricing model: free, subscription, or one_time. """ pricingType: String! """ Screening questions (max 5). Only used when profileQuestionsEnabled is true. """ profileQuestions: [PaymentPlanProfileQuestionInput!] """ Whether to ask screening questions during the join flow. Defaults to false. """ profileQuestionsEnabled: Boolean """ Price for the second pricing option (single-currency Networks). For installments, the per-installment amount. """ secondAmount: String """ Number of installments (2-50) when the second option is an installment plan. Only valid with pricingType one_time. """ secondInstallmentCount: Int """ Interval for a SECOND pricing option in the same plan. For subscriptions: a different subscription interval. For one_time: installment. """ secondInterval: String """ Per-currency prices for the second pricing option (multi-currency Stripe Networks). """ secondPrices: [PaymentPlanPriceInput!] """ Spaces to include in the plan. Must contain at least one active Space; the Cohost Space cannot be included. """ spaceIds: [ID!]! """ Existing Subscription Group to add this plan to. """ subscriptionGroupId: ID """ Free trial days (0-366). Only applies to subscriptions. """ trialPeriodDays: Int } """ Autogenerated return type of CreatePaymentPlan. """ type CreatePaymentPlanPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! paymentPlan: PaymentPlan } """ Autogenerated input type of CreatePaymentSubscriptionGroup """ input CreatePaymentSubscriptionGroupInput { """ Payment Plans to place in the group, with display order. Must be empty for iOS groups. """ bundleGroupItems: [PaymentSubscriptionGroupItemInput!] """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Host-visible group name. """ name: String! """ Platform the group bills on: WEB (Stripe) or IOS (Apple). iOS groups cannot contain Payment Plans at creation. """ platform: PaymentSubscriptionGroupPlatformEnum! } """ Autogenerated return type of CreatePaymentSubscriptionGroup. """ type CreatePaymentSubscriptionGroupPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! paymentSubscriptionGroup: PaymentSubscriptionGroup } """ Autogenerated input type of CreatePin """ input CreatePinInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Which curated list to add the target to. """ list: PinList! """ Space to file the pin under. Defaults to the Network root. A POST may name its own space or the root; every other target must be the root. """ spaceId: ID """ Resource ID or GlobalID of the target, interpreted per targetType. """ targetId: ID! """ The kind of resource targetId names. """ targetType: PinTargetType! } """ Autogenerated return type of CreatePin. """ type CreatePinPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! """ The created pin. Null only when a user-correctable error is returned. """ pin: Pin """ The full pin list this write landed in, post-write, in curator-set order. """ pins: [Pin!]! } """ Autogenerated input type of CreatePollAnswer """ input CreatePollAnswerInput { """ ID of the chosen option, as returned in the poll's choices field — for MULTIPLE_CHOICE polls """ choiceId: ID """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID of the poll """ pollId: ID! """ The numeric answer for HOT_COLD/PERCENTAGE polls, between minValue and maxValue """ value: Int } """ Autogenerated return type of CreatePollAnswer. """ type CreatePollAnswerPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! pollAnswer: PollAnswer } """ Autogenerated input type of CreatePoll """ input CreatePollInput { """ Choice texts in display order — required for MULTIPLE_CHOICE polls (2 to 5), not accepted for other variants """ choices: [String!] """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Follow-up question shown after answering """ commentPrompt: String """ Whether to notify the Network """ notify: Boolean = false """ The poll variant to create """ pollType: PollType! """ Whether voter identities are publicly listable (MULTIPLE_CHOICE polls only). Immutable once the poll has answers. """ publicAnswers: Boolean """ When to publish — required when status is SCHEDULED """ publishedAt: ISO8601DateTime """ ID of the space to post in — numeric resource ID or GlobalID. """ spaceId: ID! """ POSTED (default), DRAFT, or SCHEDULED """ status: PostStatus = POSTED """ The poll question """ title: String! } """ Autogenerated return type of CreatePoll. """ type CreatePollPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! poll: Poll } """ Autogenerated input type of CreatePost """ input CreatePostInput { """ IDs of previously uploaded assets to attach to the post """ assetIds: [ID!] """ Post body / description (style HTML only) """ body: String """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Whether to notify the Network """ notify: Boolean = false """ One of: post, article """ postType: String = "post" """ When to publish — required when status is SCHEDULED. A past timestamp publishes immediately. """ publishedAt: ISO8601DateTime """ ID of the space to post in — resource ID or GlobalID. """ spaceId: ID! """ POSTED (default), DRAFT, or SCHEDULED """ status: PostStatus = POSTED """ Post title """ title: String } """ Autogenerated input type of CreatePostMute """ input CreatePostMuteInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Resource ID or GlobalID of the member to mute the post for. Defaults to the current member; muting for another member requires host or moderator permission. """ memberId: ID """ Resource ID or GlobalID of the post to mute. """ postId: ID! } """ Autogenerated return type of CreatePostMute. """ type CreatePostMutePayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! post: Post } """ Autogenerated return type of CreatePost. """ type CreatePostPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! post: Post } """ Autogenerated input type of CreatePostReport """ input CreatePostReportInput { """ How to flag the post. """ blacklistType: BlacklistType! """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the post to flag — resource ID or GlobalID. """ postId: ID! """ Free-text reason, stored with the report. """ reason: String } """ Autogenerated return type of CreatePostReport. """ type CreatePostReportPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! post: PostContent } """ Autogenerated input type of CreateProfileQuestionAnswers """ input CreateProfileQuestionAnswersInput { """ The member's answers, one per question being answered. """ answers: [ProfileQuestionAnswerInput!]! """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the Payment Plan being joined — resource ID or GlobalID. """ planId: ID! } """ Autogenerated return type of CreateProfileQuestionAnswers. """ type CreateProfileQuestionAnswersPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! """ The member's answers after submission. """ profileQuestionAnswers: [ProfileQuestionAnswer!] } """ Autogenerated input type of CreatePromptMute """ input CreatePromptMuteInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ When true, dismiss the prompt permanently. When false (the default), the prompt resurfaces after 30 days. """ isPermanent: Boolean = false """ The feed prompt to mute. Accepts the raw prompt ID (e.g. profile_builder_avatar, with or without a leading prompt_ prefix) or the opaque FeedPromptItem node ID. """ promptId: ID! } """ Autogenerated return type of CreatePromptMute. """ type CreatePromptMutePayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! """ The sanitized ID of the prompt that was muted. """ promptId: String } """ Autogenerated input type of CreateQuizAnswer """ input CreateQuizAnswerInput { """ ID of the chosen option, as returned in the quiz question's choices """ choiceId: ID! """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID of the quiz question post """ quizQuestionId: ID! } """ Autogenerated return type of CreateQuizAnswer. """ type CreateQuizAnswerPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! """ The viewer's ongoing attempt, with the recorded answer """ quizAttempt: QuizAttempt } """ Autogenerated input type of CreateReaction """ input CreateReactionInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ The emoji (may include skin tone modifiers) """ emoji: String! """ GlobalID of the post or comment to react to """ targetId: ID! } """ Autogenerated return type of CreateReaction. """ type CreateReactionPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! reaction: Reaction } """ Autogenerated input type of CreateRsvp """ input CreateRsvpInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID of the event """ eventId: ID! """ For recurring events, the specific occurrence to RSVP to """ instanceAt: ISO8601DateTime """ One of: yes, maybe, no """ status: String! } """ Autogenerated return type of CreateRsvp. """ type CreateRsvpPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! rsvp: Rsvp } """ Autogenerated input type of CreateSavedPost """ input CreateSavedPostInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID of the post to save """ postId: ID! } """ Autogenerated return type of CreateSavedPost. """ type CreateSavedPostPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! """ The post that was saved """ savedPost: PostContent } """ Autogenerated input type of CreateSpaceBlacklist """ input CreateSpaceBlacklistInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the space to mark as not interested — resource ID or GlobalID. """ spaceId: ID! } """ Autogenerated return type of CreateSpaceBlacklist. """ type CreateSpaceBlacklistPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! space: Space } """ Autogenerated input type of CreateSpace """ input CreateSpaceInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Optional collection to place the Space in. Created on demand if it does not exist (case-insensitive name match). """ collectionName: String """ Optional one-line description persisted on the new Space. """ description: String """ Only used with build_your_own_v1. The list of feature_keys the Host picked. Each must be available on this Network's plan. """ enabledFeatureKeys: [String!] """ Canonical name of the Space template to use (e.g. feed_v3, build_your_own_v1). """ templateCanonicalName: String! """ Display title for the new Space. """ title: String! } """ Autogenerated input type of CreateSpaceLink """ input CreateSpaceLinkInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Display text of the Pinned Link. """ title: String! """ Destination the Pinned Link points to. """ url: String! } """ Autogenerated return type of CreateSpaceLink. """ type CreateSpaceLinkPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! spaceLink: SpaceLink } """ Autogenerated input type of CreateSpaceMemberships """ input CreateSpaceMembershipsInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID (or numeric ID) of the member to add. """ memberId: ID! """ Device platform to attribute the join to. Server-controlled; automation-sourced adds pass "automation" to suppress activity bubbling attribution. """ platform: String """ GlobalIDs (or numeric IDs) of the Spaces to add the member to. """ spaceIds: [ID!]! } """ Autogenerated return type of CreateSpaceMemberships. """ type CreateSpaceMembershipsPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! member: User outcome: MembershipOutcome spaces: [Space!]! } """ Autogenerated return type of CreateSpace. """ type CreateSpacePayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! space: Space } """ Autogenerated input type of CreateSpacesCollection """ input CreateSpacesCollectionInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Collection name. Reuses any existing collection with the same name. """ name: String! """ Optional list of exact Space titles to move into the collection (case-insensitive match). """ spaceTitles: [String!] } """ Autogenerated return type of CreateSpacesCollection. """ type CreateSpacesCollectionPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! spacesCollection: SpacesCollection } """ Autogenerated input type of CreateTag """ input CreateTagInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Hex color code for the tag, e.g. #FF5733. """ color: String """ Optional description of the tag. """ description: String """ The tag's display name. """ title: String! } """ Autogenerated input type of CreateTagMemberships """ input CreateTagMembershipsInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ IDs of the members to grant the tag — resource IDs or GlobalIDs. """ memberIds: [ID!]! """ ID of the tag — resource ID or GlobalID. """ tagId: ID! } """ Autogenerated return type of CreateTagMemberships. """ type CreateTagMembershipsPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! tag: Tag } """ Autogenerated return type of CreateTag. """ type CreateTagPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! tag: Tag } """ Autogenerated input type of CreateUploadSession """ input CreateUploadSessionInput { assetKind: UploadAssetKind! assetStyle: UploadAssetStyle! """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ MIME type of the source file; stored in placeholder asset metadata """ contentType: String fileName: String! fileSizeBytes: Long! """ How many part uploads this client can keep in flight. Omit it (or send 1) and the session is planned for sequential upload, which is what every client that does not implement concurrency should do. Declaring more than 1 lets the server grant a wider max_parallel; it does not oblige the client to use the full width it is granted, and it does not change the part size. """ maxParallelSupported: Int """ Part size this client would like, in bytes. Honored by the direct-presigned strategy, clamped to a range whose floor is the shared default — so a client can ask for larger parts than the default but never smaller. Larger parts mean fewer requests and a costlier retry, since a failed part is re-uploaded whole. Omit it to get the shared default. The server-mediated strategy ignores it. """ preferredChunkSizeBytes: Long """ Advisory. Must match the asset_kind's bound strategy or the manager rejects. """ preferredStrategy: UploadStrategy """ ID of the space to upload into — resource ID or GlobalID. """ spaceId: ID! } """ Autogenerated return type of CreateUploadSession. """ type CreateUploadSessionPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! session: UploadSession } """ Autogenerated input type of CreateWaitlist """ input CreateWaitlistInput { """ Whether closing the waitlist auto-invites its Leads to the target. Requires a target. """ autoInviteEnabled: Boolean """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Deadline after which the waitlist stops accepting signups, parsed in the Host's time zone (e.g. '2026-07-15 09:00'). Omit for no deadline. """ closeAt: String """ Deadline in days from now, resolved in the Host's time zone, for callers that do not know today's date. Mutually exclusive with closeAt. """ closeInDays: Int """ Whether the waitlist starts closed to new signups. """ closed: Boolean """ Message shown to a Lead after they join the waitlist. """ confirmationMessage: String """ Fallback redirect for the auto-invite link when the primary destination cannot be built. """ inviteFallbackRedirect: String """ Where the auto-invite link sends a Lead (only meaningful for a Plan target). """ inviteLinkDestination: String """ Message included with the invite sent to Leads when the waitlist auto-invites on close. """ inviteMessage: String """ Host-facing name of the waitlist. """ name: String! """ ID of the target (the Network for 'Space', or the Bundle for 'Finance::Payments::Bundle') — resource ID or GlobalID. Set together with target_type. """ targetId: ID """ What the waitlist points at: 'Space' for the Network, 'Finance::Payments::Bundle' for a Plan. Set together with target_id. """ targetType: String } """ Autogenerated return type of CreateWaitlist. """ type CreateWaitlistPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! waitlist: Waitlist } """ Autogenerated input type of CreateWebhookCallback """ input CreateWebhookCallbackInput { """ Optional secret sent with each delivery so your endpoint can verify the request """ apiKey: String """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Events to subscribe to. Omit or pass null to subscribe to every event; an empty list is rejected. """ includedEvents: [WebhookEventType!] """ HTTPS endpoint that receives webhook deliveries """ url: String! } """ Autogenerated return type of CreateWebhookCallback. """ type CreateWebhookCallbackPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! webhookCallback: WebhookCallback } type CustomDomain implements DatabaseRecord & Node { """ When the domain was registered. """ createdAt: ISO8601DateTime! """ Fully qualified domain name pointed at the Network. """ domain: String! """ ID of the object. """ id: ID! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ Verification lifecycle status of the domain. """ status: CustomDomainStatus! """ When the domain was last updated. """ updatedAt: ISO8601DateTime! } """ Validation result for a candidate custom domain. """ type CustomDomainCheckResult { """ Validation failures; empty when the domain is valid. """ errors: [String!]! """ Whether the domain passed format, DNS, and uniqueness checks. """ valid: Boolean! } """ The connection type for CustomDomain. """ type CustomDomainConnection { """ A list of edges. """ edges: [CustomDomainEdge] """ A list of nodes. """ nodes: [CustomDomain] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type CustomDomainEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CustomDomain } """ Verification lifecycle status of a custom domain. """ enum CustomDomainStatus { """ The domain is live and serving the Network. """ ACTIVE """ Registration or verification failed. """ ERROR """ SSL certificate issued; the domain is ready to be published. """ ISSUED """ SSL certificate issuance in progress. """ ISSUING_CERTIFICATE """ Registration and DNS validation in progress. """ PROCESSING """ Waiting for domain ownership verification. """ VERIFYING_OWNERSHIP } """ A profile field members answer or hosts assign — a dropdown, free-text field, tag, or badge on the Network. """ type CustomField implements DatabaseRecord & Node { """ Whether members may add their own dropdown options. """ allowAdHoc: Boolean! """ Members' responses to this field. Host/moderator-only; empty for other viewers. """ answers( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int ): CustomFieldAnswerConnection! createdAt: ISO8601DateTime! """ Optional helper text shown with the field. """ description: String """ ID of the object. """ id: ID! """ Maximum characters for a text response; null when not a text field. """ maxCharacters: Int """ Maximum options a member may select (multi-select dropdowns); null when not applicable. """ maxResponses: Int """ Minimum characters for a text response; null when not a text field. """ minCharacters: Int """ Selectable options for dropdown, tag, and badge fields; empty for text fields. """ options( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int """ Filter options to those whose title contains this text (case-insensitive). """ term: String ): CustomFieldOptionConnection! """ Optional placeholder shown in the field's input. """ placeholder: String """ Sort position of the field within its privacy group. """ position: Int """ Whether this is the Network's primary custom field, surfaced on member profiles. """ primary: Boolean! """ Who can see the field and its responses. """ privacy: CustomFieldPrivacy! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ Whether members answer for themselves or only hosts set responses. """ responseBy: CustomFieldResponseBy! """ The kind of response this field collects. """ responseType: CustomFieldResponseType! """ Whether the field is shown to members. Null for system tag/badge fields. """ status: CustomFieldStatus """ The field's display name. """ title: String! updatedAt: ISO8601DateTime! } """ A member's response to a custom field. """ type CustomFieldAnswer implements DatabaseRecord & Node { createdAt: ISO8601DateTime! """ The custom field being answered. """ customField: CustomField """ ID of the object. """ id: ID! """ When the response was last changed. """ lastEditedAt: ISO8601DateTime """ The member who provided this response. """ member: User """ The options the member selected, for dropdown, tag, and badge fields. """ options: [CustomFieldOption!]! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ The free-text response, for text fields. """ text: String updatedAt: ISO8601DateTime! } """ The connection type for CustomFieldAnswer. """ type CustomFieldAnswerConnection { """ A list of edges. """ edges: [CustomFieldAnswerEdge] """ A list of nodes. """ nodes: [CustomFieldAnswer] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type CustomFieldAnswerEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CustomFieldAnswer } """ The connection type for CustomField. """ type CustomFieldConnection { """ A list of edges. """ edges: [CustomFieldEdge] """ A list of nodes. """ nodes: [CustomField] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type CustomFieldEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CustomField } input CustomFieldFilter { """ Custom field to filter on — resource ID or GlobalID. """ customFieldId: ID! """ Choice-field selections to match — resource IDs or GlobalIDs. Only applies to choice custom fields. """ segmentIds: [ID!] """ True matches members who answered the field; false matches members who have not. Omit to match either. """ withResponse: Boolean } """ A selectable value on a dropdown, tag, or badge custom field. """ type CustomFieldOption implements DatabaseRecord & Node { createdAt: ISO8601DateTime! """ The member who created this option. """ creator: User """ The custom field this option belongs to. """ customField: CustomField """ Optional description of the option. """ description: String """ ID of the object. """ id: ID! """ Whether a member created this option, rather than a host. """ isAdHoc: Boolean! """ Number of members who have selected this option. """ memberCount: Int! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ The option's display name. """ title: String! updatedAt: ISO8601DateTime! } """ The connection type for CustomFieldOption. """ type CustomFieldOptionConnection { """ A list of edges. """ edges: [CustomFieldOptionEdge] """ A list of nodes. """ nodes: [CustomFieldOption] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type CustomFieldOptionEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: CustomFieldOption } """ Who can see a custom field and its responses. """ enum CustomFieldPrivacy { """ Visible only to Network hosts (and moderators for tag fields). """ ADMIN """ Visible only to signed-in members. """ PRIVATE """ Visible to everyone, including signed-out visitors. """ PUBLIC } """ Who provides the response to a custom field. """ enum CustomFieldResponseBy { """ Only hosts and moderators set responses on behalf of members. """ HOSTS_ONLY """ Each member sets their own response. """ INDIVIDUAL_MEMBER } """ The kind of response a custom field collects. """ enum CustomFieldResponseType { """ A host-managed public badge. """ BADGE """ A dropdown where each member may select several options. """ DROPDOWN_MULTI_SELECT """ A dropdown where each member selects exactly one option. """ DROPDOWN_SINGLE_SELECT """ A host-managed tag (admin-privacy segmentation). """ TAG """ A multi-line free-text response. """ TEXT_LONG """ A single-line free-text response. """ TEXT_SHORT } """ Whether a custom field is shown to members. """ enum CustomFieldStatus { """ Hidden because the Network's billing plan does not allow it. """ BILLING_DISABLED """ Hidden from members. """ HIDDEN """ Shown to members. """ VISIBLE } """ A host-authored custom onboarding pointer surfaced in the welcome checklist. """ type CustomOnboardingPointerPin implements DatabaseRecord & Node { """ Web path the pointer routes to when tapped. """ callToActionUrl: String """ ID of the object. """ id: ID! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ The Space this custom pointer routes members to. """ space: Space """ Display title of the onboarding step. """ title: String! } """ The user's current daily visit streak and its milestone progression """ type DailyVisitStreak { """ The current number of consecutive daily visits in the active streak """ count: Int! """ The highest streak milestone the user has currently reached """ currentMilestone: StreakMilestone """ The next streak milestone the user can reach """ nextMilestone: StreakMilestone } """ A node that maps to a single resource addressable by the Admin API. """ interface DatabaseRecord { """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! } """ A date range filter. Both bounds are optional; resolvers decide their own defaults. """ input DateRangeInput { """ Inclusive end date. """ endDate: ISO8601Date """ Inclusive start date. """ startDate: ISO8601Date } """ Autogenerated input type of DeleteAnswerCheer """ input DeleteAnswerCheerInput { """ GlobalID of the poll answer to un-cheer """ answerId: ID! """ A unique identifier for the client performing the mutation. """ clientMutationId: String } """ Autogenerated return type of DeleteAnswerCheer. """ type DeleteAnswerCheerPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! pollAnswer: PollAnswer } """ Autogenerated input type of DeleteAutomationRule """ input DeleteAutomationRuleInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the automation rule — resource ID or GlobalID. """ id: ID! } """ Autogenerated return type of DeleteAutomationRule. """ type DeleteAutomationRulePayload { automationRule: AutomationRule """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! } """ Autogenerated input type of DeleteBadge """ input DeleteBadgeInput { """ ID of the badge — resource ID or GlobalID. """ badgeId: ID! """ A unique identifier for the client performing the mutation. """ clientMutationId: String } """ Autogenerated input type of DeleteBadgeMemberships """ input DeleteBadgeMembershipsInput { """ ID of the badge — resource ID or GlobalID. """ badgeId: ID! """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ IDs of the members to revoke the badge from — resource IDs or GlobalIDs. """ memberIds: [ID!]! } """ Autogenerated return type of DeleteBadgeMemberships. """ type DeleteBadgeMembershipsPayload { badge: Badge """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! } """ Autogenerated return type of DeleteBadge. """ type DeleteBadgePayload { badge: Badge """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! } """ Autogenerated input type of DeleteBlocklistEntry """ input DeleteBlocklistEntryInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the blocklist entry to remove — resource ID or GlobalID. """ id: ID! } """ Autogenerated return type of DeleteBlocklistEntry. """ type DeleteBlocklistEntryPayload { blocklistEntry: BlocklistEntry """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! } """ Autogenerated input type of DeleteChatReport """ input DeleteChatReportInput { """ ID of the chat message to unflag — resource ID or GlobalID. """ chatId: ID! """ A unique identifier for the client performing the mutation. """ clientMutationId: String } """ Autogenerated return type of DeleteChatReport. """ type DeleteChatReportPayload { chatMessage: Message """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! } """ Autogenerated input type of DeleteComment """ input DeleteCommentInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID of the comment """ id: ID! } """ Autogenerated return type of DeleteComment. """ type DeleteCommentPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String deletedId: ID errors: [String!]! } """ Autogenerated input type of DeleteCommentReport """ input DeleteCommentReportInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the comment to unflag — resource ID or GlobalID. """ commentId: ID! } """ Autogenerated return type of DeleteCommentReport. """ type DeleteCommentReportPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String comment: Comment errors: [String!]! } """ Autogenerated input type of DeleteConversationBookmark """ input DeleteConversationBookmarkInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ The conversation to unbookmark — resource ID or GlobalID. """ conversationId: ID! } """ Autogenerated return type of DeleteConversationBookmark. """ type DeleteConversationBookmarkPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ The conversation that was unbookmarked """ conversation: Conversation errors: [String!]! } """ Autogenerated input type of DeleteConversationMemberships """ input DeleteConversationMembershipsInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID of the group conversation """ conversationId: ID! """ GlobalIDs of the members to remove """ memberIds: [ID!]! } """ Autogenerated return type of DeleteConversationMemberships. """ type DeleteConversationMembershipsPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String conversation: PrivateConversation errors: [String!]! } """ Autogenerated input type of DeleteCourse """ input DeleteCourseInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the course to delete — resource ID or GlobalID. """ id: ID! } """ Autogenerated return type of DeleteCourse. """ type DeleteCoursePayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID of the course that was deleted. """ deletedCourseId: ID errors: [String!]! } """ Autogenerated input type of DeleteCoursework """ input DeleteCourseworkInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Coursework identifier — resource ID or GlobalID. """ id: ID! } """ Autogenerated return type of DeleteCoursework. """ type DeleteCourseworkPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String deletedId: ID errors: [String!]! } """ Autogenerated input type of DeleteCustomDomain """ input DeleteCustomDomainInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the custom domain — resource ID or GlobalID. """ id: ID! } """ Autogenerated return type of DeleteCustomDomain. """ type DeleteCustomDomainPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String deletedId: ID errors: [String!]! } """ Autogenerated input type of DeleteCustomFieldAnswer """ input DeleteCustomFieldAnswerInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Numeric resource ID or GlobalID of the custom field. """ customFieldId: ID! """ Numeric resource ID or GlobalID of the member whose response is being cleared. """ memberId: ID! } """ Autogenerated return type of DeleteCustomFieldAnswer. """ type DeleteCustomFieldAnswerPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! response: MemberCustomFieldResponse } """ Autogenerated input type of DeleteCustomField """ input DeleteCustomFieldInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Numeric resource ID or GlobalID of the custom field to delete. """ id: ID! } """ Autogenerated input type of DeleteCustomFieldOption """ input DeleteCustomFieldOptionInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Numeric resource ID or GlobalID of the option to delete. """ id: ID! } """ Autogenerated return type of DeleteCustomFieldOption. """ type DeleteCustomFieldOptionPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! option: CustomFieldOption } """ Autogenerated return type of DeleteCustomField. """ type DeleteCustomFieldPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String customField: CustomField errors: [String!]! } """ Autogenerated input type of DeleteCustomOnboardingPointer """ input DeleteCustomOnboardingPointerInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the custom onboarding pointer to delete — resource ID or GlobalID. """ customOnboardingPointerId: ID! } """ Autogenerated return type of DeleteCustomOnboardingPointer. """ type DeleteCustomOnboardingPointerPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! """ The full pin list this write landed in, post-write, in curator-set order. """ pins: [Pin!]! } """ Autogenerated input type of DeleteDirectMessage """ input DeleteDirectMessageInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID of the message to delete """ messageId: ID! } """ Autogenerated return type of DeleteDirectMessage. """ type DeleteDirectMessagePayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID of the deleted message """ deletedId: ID errors: [String!]! } """ Autogenerated input type of DeleteDirectMessageReaction """ input DeleteDirectMessageReactionInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ The emoji to remove (skin tone modifiers are stripped to match the base emoji) """ emoji: String! """ GlobalID of the message """ messageId: ID! } """ Autogenerated return type of DeleteDirectMessageReaction. """ type DeleteDirectMessageReactionPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! """ The message, with its updated reactions """ message: PrivateMessage } """ Autogenerated input type of DeleteEvent """ input DeleteEventInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID of the event """ id: ID! } """ Autogenerated input type of DeleteEventInstance """ input DeleteEventInstanceInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the recurring event — resource ID or GlobalID. """ eventId: ID! """ ICS UTC-format occurrence key identifying the occurrence to delete (e.g. "20240115T160000Z"). """ instanceIndex: String! """ Optional cancellation message sent to the selected RSVP groups. """ message: String """ RSVP groups to message when a message is given. Any of: yes, maybe, no, none (none = members who have not RSVPed, hosts and moderators only). """ rsvpStatuses: [String!] } """ Autogenerated return type of DeleteEventInstance. """ type DeleteEventInstancePayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String deletedId: ID errors: [String!]! event: Event } """ Autogenerated return type of DeleteEvent. """ type DeleteEventPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String deletedId: ID errors: [String!]! } """ Autogenerated input type of DeleteEventRecurrenceException """ input DeleteEventRecurrenceExceptionInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the recurrence exception — resource ID or GlobalID. """ id: ID! } """ Autogenerated return type of DeleteEventRecurrenceException. """ type DeleteEventRecurrenceExceptionPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String deletedId: ID errors: [String!]! eventInstance: EventInstance } """ Autogenerated input type of DeleteGiftDefinition """ input DeleteGiftDefinitionInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the gift to delete — resource ID or GlobalID. """ id: ID! } """ Autogenerated return type of DeleteGiftDefinition. """ type DeleteGiftDefinitionPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID of the gift that was deleted """ deletedGiftDefinitionId: ID errors: [String!]! } """ Autogenerated input type of DeleteMarketingBanner """ input DeleteMarketingBannerInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Marketing Banner ID — resource ID or GlobalID. """ id: ID! } """ Autogenerated return type of DeleteMarketingBanner. """ type DeleteMarketingBannerPayload { banner: MarketingBanner """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! } """ Autogenerated input type of DeleteMemberBlock """ input DeleteMemberBlockInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the member to unblock — resource ID or GlobalID. """ memberId: ID! } """ Autogenerated return type of DeleteMemberBlock. """ type DeleteMemberBlockPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! member: User } """ Autogenerated input type of DeleteMemberFollow """ input DeleteMemberFollowInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the member to unfollow — resource ID or GlobalID. """ memberId: ID! } """ Autogenerated return type of DeleteMemberFollow. """ type DeleteMemberFollowPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! member: User } """ Autogenerated input type of DeleteMember """ input DeleteMemberInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Resource ID or GlobalID of the member. """ id: ID! } """ Autogenerated return type of DeleteMember. """ type DeleteMemberPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! member: User } """ Autogenerated input type of DeleteMessage """ input DeleteMessageInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID of the message to delete """ messageId: ID! } """ Autogenerated return type of DeleteMessage. """ type DeleteMessagePayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID of the deleted message """ deletedId: ID errors: [String!]! } """ Autogenerated input type of DeleteMessageReaction """ input DeleteMessageReactionInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ The emoji to remove (skin tone modifiers are stripped to match the base emoji) """ emoji: String! """ GlobalID of the message """ messageId: ID! } """ Autogenerated return type of DeleteMessageReaction. """ type DeleteMessageReactionPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! """ The message, with its updated reactions """ message: ChatMessage } """ Autogenerated input type of DeleteNetworkMembership """ input DeleteNetworkMembershipInput { """ Also cancel the member's purchased plans. Required when the member has paid plans. Network Hosts only. """ cancelPlans: Boolean = false """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Resource ID or GlobalID of the member to remove. """ id: ID! } """ Autogenerated return type of DeleteNetworkMembership. """ type DeleteNetworkMembershipPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! member: User } """ Autogenerated input type of DeletePaymentSubscriptionGroup """ input DeletePaymentSubscriptionGroupInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ The Payment Subscription Group to delete — resource ID or GlobalID. """ id: ID! } """ Autogenerated return type of DeletePaymentSubscriptionGroup. """ type DeletePaymentSubscriptionGroupPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID of the deleted Payment Subscription Group. """ deletedPaymentSubscriptionGroupId: ID errors: [String!]! } """ Autogenerated input type of DeletePin """ input DeletePinInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Which curated list to remove the target from. """ list: PinList! """ Space the pin is filed under. Defaults to the Network root. A POST may name its own space or the root; every other target must be the root. """ spaceId: ID """ Resource ID or GlobalID of the target, interpreted per targetType. """ targetId: ID! """ The kind of resource targetId names. """ targetType: PinTargetType! } """ Autogenerated return type of DeletePin. """ type DeletePinPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! """ The full pin list this write landed in, post-write, in curator-set order. """ pins: [Pin!]! } """ Autogenerated input type of DeletePost """ input DeletePostInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID of the post """ id: ID! } """ Autogenerated input type of DeletePostMute """ input DeletePostMuteInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Resource ID or GlobalID of the member to unmute the post for. Defaults to the current member; unmuting for another member requires host or moderator permission. """ memberId: ID """ Resource ID or GlobalID of the post to unmute. """ postId: ID! } """ Autogenerated return type of DeletePostMute. """ type DeletePostMutePayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! post: Post } """ Autogenerated return type of DeletePost. """ type DeletePostPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String deletedId: ID errors: [String!]! } """ Autogenerated input type of DeletePostReport """ input DeletePostReportInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the post to unflag — resource ID or GlobalID. """ postId: ID! } """ Autogenerated return type of DeletePostReport. """ type DeletePostReportPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! post: PostContent } """ Autogenerated input type of DeletePromptMute """ input DeletePromptMuteInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ The feed prompt to unmute. Accepts the raw prompt ID (e.g. profile_builder_avatar, with or without a leading prompt_ prefix) or the opaque FeedPromptItem node ID. """ promptId: ID! } """ Autogenerated return type of DeletePromptMute. """ type DeletePromptMutePayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! """ The sanitized ID of the prompt that was unmuted. """ promptId: String } """ Autogenerated input type of DeleteReaction """ input DeleteReactionInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ The emoji to remove (skin tone modifiers are stripped to match the base emoji) """ emoji: String! """ GlobalID of the post or comment """ targetId: ID! } """ Autogenerated return type of DeleteReaction. """ type DeleteReactionPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID of the deleted reaction """ deletedId: ID errors: [String!]! } """ Autogenerated input type of DeleteRsvp """ input DeleteRsvpInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID of the RSVP """ id: ID! } """ Autogenerated return type of DeleteRsvp. """ type DeleteRsvpPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String deletedId: ID errors: [String!]! } """ Autogenerated input type of DeleteSavedPost """ input DeleteSavedPostInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID of the post to unsave """ postId: ID! } """ Autogenerated return type of DeleteSavedPost. """ type DeleteSavedPostPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID of the post that was unsaved """ deletedPostId: ID errors: [String!]! } """ Autogenerated input type of DeleteSpaceBlacklist """ input DeleteSpaceBlacklistInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the space to restore — resource ID or GlobalID. """ spaceId: ID! } """ Autogenerated return type of DeleteSpaceBlacklist. """ type DeleteSpaceBlacklistPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! space: Space } """ Autogenerated input type of DeleteSpace """ input DeleteSpaceInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the Space to delete — resource ID or GlobalID. """ spaceId: ID! } """ Autogenerated input type of DeleteSpaceLink """ input DeleteSpaceLinkInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the link — resource ID or GlobalID. """ id: ID! } """ Autogenerated return type of DeleteSpaceLink. """ type DeleteSpaceLinkPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! spaceLink: SpaceLink } """ Autogenerated input type of DeleteSpaceMembership """ input DeleteSpaceMembershipInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID (or numeric ID) of the member to remove. """ memberId: ID! """ GlobalID (or numeric ID) of the Space to remove the member from. """ spaceId: ID! } """ Autogenerated return type of DeleteSpaceMembership. """ type DeleteSpaceMembershipPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! member: User outcome: MembershipOutcome space: Space } """ Autogenerated return type of DeleteSpace. """ type DeleteSpacePayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String deletedId: ID errors: [String!]! } """ Autogenerated input type of DeleteSpacesCollection """ input DeleteSpacesCollectionInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the Spaces Collection to delete — resource ID or GlobalID. """ collectionId: ID! } """ Autogenerated return type of DeleteSpacesCollection. """ type DeleteSpacesCollectionPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID of the Spaces Collection that was deleted. """ deletedSpacesCollectionId: ID errors: [String!]! } """ Autogenerated input type of DeleteTag """ input DeleteTagInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the tag — resource ID or GlobalID. """ tagId: ID! } """ Autogenerated input type of DeleteTagMemberships """ input DeleteTagMembershipsInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ IDs of the members to revoke the tag from — resource IDs or GlobalIDs. """ memberIds: [ID!]! """ ID of the tag — resource ID or GlobalID. """ tagId: ID! } """ Autogenerated return type of DeleteTagMemberships. """ type DeleteTagMembershipsPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! tag: Tag } """ Autogenerated return type of DeleteTag. """ type DeleteTagPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! tag: Tag } """ Autogenerated input type of DeleteWaitlist """ input DeleteWaitlistInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the waitlist to delete — resource ID or GlobalID. """ id: ID! } """ Autogenerated return type of DeleteWaitlist. """ type DeleteWaitlistPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! waitlist: Waitlist } """ Autogenerated input type of DeleteWebhookCallback """ input DeleteWebhookCallbackInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the webhook callback — resource ID or GlobalID. """ id: ID! } """ Autogenerated return type of DeleteWebhookCallback. """ type DeleteWebhookCallbackPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String deletedId: ID errors: [String!]! } """ A private direct-message conversation — one-on-one or a small group **Required scopes:** `read:chats`, `write:chats` (any one) """ type DirectMessage implements Conversation & DatabaseRecord & Node & PrivateConversation { """ When the viewer bookmarked this conversation, or null when it is not bookmarked """ bookmarkedAt: ISO8601DateTime """ ID of the object. """ id: ID! """ True for group chats (more than two participants) """ isGroup: Boolean! """ When the most recent message was sent """ lastChatAt: ISO8601DateTime """ The most recent message in the conversation """ lastMessage: PrivateMessage """ Messages in this conversation, newest first. System messages (renames, member changes) are excluded unless includeSystemMessages is true. """ messages( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Include system lifecycle messages (renames, member adds and removes). Defaults to false. """ includeSystemMessages: Boolean = false """ Returns the last _n_ elements from the list. """ last: Int ): PrivateMessageConnection! """ Members of the conversation """ participants: [User!] """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ Display title — the group name or member names for direct messages, the space title for space chats, or a preview of the parent message for threads """ title: String """ Number of messages the viewer has not read in this conversation """ unreadCount: Int! } """ The result of a direct-message send: sent, or a coded reason it was skipped. """ enum DirectMessageOutcome { """ The message was delivered. """ SENT """ The conversation or recipient is no longer available; no message was sent. """ SKIPPED_CONVERSATION_UNAVAILABLE """ Private chat is disabled for the Network; no message was sent. """ SKIPPED_NETWORK_CHAT_DISABLED """ Private chat is disabled for the recipient; no message was sent. """ SKIPPED_RECIPIENT_CHAT_DISABLED """ The recipient is a Limited Member; private chat does not apply, so no message was sent. """ SKIPPED_RECIPIENT_LIMITED_MEMBER """ The sender and the recipient are the same member; a self-message is not sent. """ SKIPPED_SELF_MESSAGE """ Private chat is disabled for the sender; no message was sent. """ SKIPPED_SENDER_CHAT_DISABLED """ The sender is not a Host or Moderator; to avoid spam controls, no message was sent. """ SKIPPED_SENDER_NOT_HOST } """ Why an email address is on a Network's blocklist. Manual and unsubscribe entries are host- or member-driven; provider entries record deliverability outcomes. """ enum EmailBlocklistType { """ A test address blocked to keep automated-test traffic out of real email delivery. """ AUTOMATED_TEST_USER """ Legacy unsubscribe recorded by a former marketing-email provider. """ BRAZE_UNSUBSCRIBED """ Added by a Network Host. Suppresses email delivery to this address. """ MANUAL """ The email provider reported a permanent bounce. """ PROVIDER_BOUNCED @deprecated(reason: "Replaced by PROVIDER_FAILED_PERMANENTLY. Retained for legacy rows.") """ The email provider reported that delivery failed permanently. """ PROVIDER_FAILED_PERMANENTLY """ The email provider reported the address as invalid. """ PROVIDER_INVALID_ADDRESS """ The recipient marked email from this Network as spam. """ PROVIDER_SPAM_COMPLAINT """ The email provider recorded an unsubscribe for this address. """ PROVIDER_UNSUBSCRIBED """ A system address that must never receive delivery. """ SYSTEM_EMAIL """ The recipient unsubscribed. A soft block: essential emails (verification codes, password resets, invitations) can still be delivered. """ UNSUBSCRIBED """ Email validation flagged the address as high risk to deliver to. """ VALIDATION_HIGH_RISK } """ Link-preview metadata for a link-type post (Open Graph / oEmbed data) """ type EmbeddedLink { actionText: String description: String faviconUrl: String id: ID! """ Preview image URL, when the embedded link has an attached image """ imageUrl: String """ True when the embedded link resolves to a video (YouTube, Vimeo, raw video URL, etc.) """ isVideo: Boolean! """ Embed media classification (photo, video, rich, link) """ mediaType: String """ Human-readable provider name (e.g. YouTube, LinkedIn) """ providerName: String """ The internal Mighty object the link points at, for rich internal previews; null for external links. """ targetable: EmbeddedLinkTargetable """ Class name of the internal object the link points at (e.g. 'Space', 'Post'), or null for external links. """ targetableType: String title: String url: String! } """ Plan (bundle) metadata shown in an embedded-link preview card. """ type EmbeddedLinkBundle { """ True for external (prospective-member) bundles; drives the network-avatar prefix. """ external: Boolean! id: ID! """ Pricing type (e.g. 'nonpaid'); the card hides price for nonpaid bundles. """ pricingType: String """ Avatar URLs of the bundle's products (spaces), for the preview avatar stack. """ productAvatarUrls: [String!]! } """ The internal object an embedded link points at (Space, Post, Event, Poll, Collection, Announcement, Recognition, or Plan). """ union EmbeddedLinkTargetable = AnnouncementPreview | EmbeddedLinkBundle | Event | GiftTransaction | Poll | Post | Recognition | Space | SpacesCollection """ An event post with scheduling, location, and RSVP data **Required scopes:** `read:network`, `write:posts`, `write:comments`, `host:read:network`, `host:read:network_posts`, `host:read:network_events` (any one) """ type Event implements DatabaseRecord & Node & PostInterface & Reactable { """ Attached media assets (images, files, videos) """ assets: [Asset!]! """ Deprecated alias for bodyHtml — the post's textual content as HTML. """ body: String @deprecated(reason: "Use bodyHtml for HTML output or bodyText for plain text.") """ HTML content with formatted mentions, hashtags, and links """ bodyHtml: String """ Plain text content (raw, no formatting) """ bodyText: String cheerCount: Int! cheersEnabled: Boolean! city: String commentCount: Int! """ Comments on this post """ comments( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int """ When true, return only root comments (exclude replies). Use this for feed views where replies are fetched via each comment's `replies` connection. """ rootOnly: Boolean = false ): CommentConnection commentsEnabled: Boolean! """ Content kind from the underlying NewContent model (e.g. text, link, article, file) """ contentKind: String createdAt: ISO8601DateTime! creator: User """ Link-preview metadata — populated for link-type posts only """ embeddedLink: EmbeddedLink """ The current/upcoming event instance, or a specific occurrence when instanceIndex is given. """ eventInstance( """ ICS UTC-format occurrence key selecting a specific occurrence (e.g. "20240115T160000Z"). Omit for the current/upcoming instance. """ instanceIndex: String ): EventInstance """ Event category (e.g. conference, workshop) """ eventType: String """ External provider type for the event link (e.g. zoom, google_meet, youtube) """ externalEventLinkType: String """ Position in the owning space's featured pin list; null when not pinned. """ featuredIndex: Int """ Whether the event has an external provider link (e.g. external livestream URL) """ hasExternalEventLink: Boolean! """ Header/banner image for the post (drives the event card banner). Returns the default-placeholder header when no header asset is set. """ header: PostHeader """ Header/banner image URL for the event card (cinema header, or the header video's preview image). """ headerImageUrl: String """ ID of the object. """ id: ID! """ Primary image URL """ imageUrl: String """ True when the post leads with audio, either as the header media or in the body. Never true at the same time as isVideo. A cheap scalar for list views; use primaryMedia to actually render a player. """ isAudio: Boolean! isHostPost: Boolean! isRecurring: Boolean! """ True when the post's weekly activity score meets the owning space's trending threshold """ isTrending: Boolean! """ True when the post leads with a video (uploaded video asset or video-image override). Never true at the same time as isAudio: audio header media wins, then video, then body audio. """ isVideo: Boolean! lastEditedAt: ISO8601DateTime """ Deprecated alias for venue. """ location: String @deprecated(reason: "Use venue.") lockRsvps: Boolean! """ Aspect ratio of the primary image """ mainImageAspectRatio: Float """ Position in the network-level featured pin list; null when not pinned. """ networkFeaturedIndex: Int """ Position in the network-level welcome-checklist pin list; null when not pinned. """ networkWelcomeIndex: Int """ Post type enum (post, article, event, poll, introduction, etc.) """ postType: String! """ The post's hero media upload — native audio or native video attached as the header. Null when the post has no header media; clients branch on the node's presence and type rather than on a boolean. """ primaryMedia: PrimaryMedia """ External meeting ID members use to join the event. For Zoom events using a personal meeting ID, this is the ID parsed from the meeting link; otherwise the provider's external ID. """ publicExternalId: String publishedAt: ISO8601DateTime """ Emoji reaction counts grouped by base emoji (skin-tone modifiers are stripped server-side). """ reactions: [ReactionGroup!]! """ Per-occurrence exceptions on this recurring event (deletions and time/RSVP overrides), ordered by occurrence. """ recurrenceExceptions( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int ): EventRecurrenceExceptionConnection! """ Human-readable recurrence rules, one per UTC-offset range; null for single events. """ recurrenceRuleTexts: [RecurrenceRuleText!] """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ Whether the event link is restricted to members who RSVP'd Going. """ restrictedEvent: Boolean! rsvpEnabled: Boolean! """ RSVPs for this event. Pass instanceAt to scope to a specific recurring-event occurrence. """ rsvps( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Filter to RSVPs applicable to this occurrence (series-level RSVPs are returned merged with instance-level overrides — same semantics as the REST endpoint). """ instanceAt: ISO8601DateTime """ Returns the last _n_ elements from the list. """ last: Int ): RsvpConnection! """ Whether the current viewer has saved (bookmarked) this post """ saved: Boolean! slug: String space: Space status: String! street: String """ Space tags associated with this post (used for feed card context) """ tags: [PostTag!]! timeZone: String title: String """ Up to 3 upcoming occurrences for a recurring event; empty for single events. """ upcomingEventInstances: [EventInstance!]! updatedAt: ISO8601DateTime! """ Canonical URL of the post. """ url: String! """ Free-text venue or place name, distinct from the street and city address. It does not contribute to the event’s coordinates — those come from street and city. """ venue: String """ The current member's own mute/hide/report flag on this post, or null if they have none. """ viewerBlacklistType: BlacklistType """ Position in the owning space's welcome pin list; null when not pinned. """ welcomeIndex: Int } """ Direction filter for event instances — upcoming or past relative to now. """ enum EventDirection { """ Events whose instances ended before the current time. """ PAST """ Events whose instances start at or after the current time. """ UPCOMING } """ A specific instance of an event (for recurring events, represents one occurrence) **Required scopes:** `read:network`, `write:posts`, `write:comments`, `host:read:network`, `host:read:network_posts`, `host:read:network_events` (any one) """ type EventInstance { """ Up to 6 attendees with a yes RSVP, used by the avatar stack. """ attendees: [User!]! endsAt: ISO8601DateTime hasNext: Boolean! hasPrevious: Boolean! id: ID! """ Stable identifier for this instance (ICS UTC-format occurrence key), used as the `instance_index` query param when linking to a specific occurrence. """ instanceIndex: String! """ The livestream linked to this occurrence, for live-video events. Null when none is active or retained. """ liveSpace: LiveSpace lockRsvps: Boolean! """ The next occurrence in the series, if any. """ nextInstance: EventInstance """ ID of the underlying post. """ postId: ID! """ Resource ID of the underlying post, for cross-call corroboration and Admin API interop. """ postResourceId: ID! """ The previous occurrence in the series, if any. """ previousInstance: EventInstance rsvpMaybeCount: Int! rsvpNoCount: Int! rsvpYesCount: Int! """ The space this event lives in. """ space: Space startsAt: ISO8601DateTime """ Title of the event post. """ title: String """ Canonical URL of the event. """ url: String! } """ A single-occurrence exception on a recurring event (a deletion or a time/RSVP override). **Required scopes:** `read:network`, `write:posts`, `write:comments`, `host:read:network`, `host:read:network_posts`, `host:read:network_events` (any one) """ type EventRecurrenceException implements DatabaseRecord & Node { """ Overridden end time for this occurrence (override exceptions only). """ endsAt: ISO8601DateTime """ The recurring event this exception belongs to. """ event: Event """ Whether this occurrence is deleted or overridden. """ exceptionType: EventRecurrenceExceptionType! """ ID of the object. """ id: ID! """ ICS UTC-format occurrence key identifying which occurrence this exception applies to. """ instanceIndex: String! """ Overridden RSVP-lock state for this occurrence. """ lockRsvps: Boolean """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ Overridden start time for this occurrence (override exceptions only). """ startsAt: ISO8601DateTime } """ The connection type for EventRecurrenceException. """ type EventRecurrenceExceptionConnection { """ A list of edges. """ edges: [EventRecurrenceExceptionEdge] """ A list of nodes. """ nodes: [EventRecurrenceException] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type EventRecurrenceExceptionEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: EventRecurrenceException } """ The kind of exception applied to a single occurrence of a recurring event. """ enum EventRecurrenceExceptionType { """ The occurrence is removed from the series. """ DELETE """ The occurrence's start/end time or RSVP lock is overridden. """ OVERRIDE } """ A host-toggleable boolean feature on a Network or a Space, pairing its key with whether it is currently enabled. """ type FeatureToggle { """ Whether the feature is currently enabled on this Network or Space. """ enabled: Boolean! """ The boolean feature key (e.g. feed, chat, events). """ key: String! } """ The type of activity that produced a feed item """ enum FeedAction { """ Someone answered a poll """ ANSWERED_POLL """ Someone answered a question """ ANSWERED_QUESTION """ Someone cheered/liked the post """ CHEERED """ Someone commented on the post """ COMMENTED """ Someone contributed to a profile prompt activity """ CONTRIBUTED """ Someone posted an introduction """ INTRODUCED """ Someone joined the space """ JOINED """ A new post was created """ POSTED """ The post was recommended by someone """ RECOMMENDED """ Someone RSVP'd maybe to an event """ RSVP_MAYBE """ Someone RSVP'd yes to an event """ RSVP_YES """ The post was shared by its creator """ SHARED """ The post was updated """ UPDATED } """ A paginated list of feed items """ type FeedConnection { """ Edges with cursors """ edges: [FeedEdge!]! """ Shorthand: just the feed items """ nodes: [FeedItem!]! """ Pagination information """ pageInfo: FeedPageInfo! } """ An edge in the feed connection """ type FeedEdge { """ Opaque cursor for this edge """ cursor: String! """ The feed item """ node: FeedItem! } input FeedFilters { """ Show only posts by hosts """ byHosts: Boolean """ Filter posts by space tag IDs """ filterTagIds: [ID!] """ Show only the current user's posts """ mine: Boolean """ Filter posts to within the distance cap of the current user's location """ nearMe: Boolean """ Use personalized feed ranking """ personalized: Boolean = true """ Filter to specific post types """ postTypes: [String!] """ Filter feed prompts to specific types. Omit to include all types; pass an empty list to exclude all prompts. """ promptTypes: [String!] """ Exclude introduction posts """ skipIntroductions: Boolean """ Sort order for the feed """ sortBy: FeedSortOrder """ Show only posts with no comments """ unanswered: Boolean } """ A polymorphic feed item — can be a post, prompt, or prompt set """ union FeedItem = FeedPostItem """ Pagination info for the feed """ type FeedPageInfo { """ Cursor of the last item (pass as 'after' for next page) """ endCursor: String hasNextPage: Boolean! hasPreviousPage: Boolean! """ Cursor of the first item """ startCursor: String } """ A post appearing in the activity feed, with feed-specific metadata """ type FeedPostItem implements Node { """ When the feed activity occurred """ actedAt: ISO8601DateTime """ The semantic activity that produced this feed item """ action: FeedAction! """ The user who performed the feed activity """ actor: User """ ID of the object. """ id: ID! """ The user being introduced (for introduction/join posts) """ introducedUser: User isIntroduction: Boolean! """ The post content (Post, Event, or Poll) — null if deleted """ post: PostContent """ The space this post belongs to """ space: Space } enum FeedSortOrder { """ Sort by most recent activity (default) """ LAST_ACTIVITY """ Sort by proximity to the current user """ NEAR_ME """ Sort by newest first """ NEWEST """ Sort by oldest first """ OLDEST """ Sort by popularity score """ POPULARITY } """ A gallery section that appears on a Discovery or Spaces Collection page. """ type GalleryGroup { """ Whether the section can be deleted. Only custom Top Spaces / Spaces Near You sections tied to a Spaces Collection can be deleted, by omitting them from updateGalleryGroups. """ canDelete: Boolean! """ The page this section is configured for. """ galleryPage: GalleryPage! """ The kind of content this section surfaces. """ galleryType: GalleryType! """ Opaque GlobalID of a persisted (customized) section. Null for a default section the Host has not customized yet — those cannot be targeted by write mutations until the container is customized via updateGalleryGroups. """ id: ID """ Whether the section is shown on the page. """ isEnabled: Boolean! """ Localized display name of the section. """ label: String! """ The Spaces Collection a custom Top Spaces / Spaces Near You section draws from. Null for standard sections. """ parameterSpacesCollection: SpacesCollection """ Display order within the page, lowest first. Null for a default section the Host has not customized yet, whose order follows the list order. """ position: Int } """ A gallery section in a declarative Discovery replace. Array order defines position. """ input GalleryGroupInput { """ The kind of content this section surfaces. """ galleryType: GalleryType! """ An existing section's resource ID or GlobalID. Omit to add a new custom section. """ id: ID """ Whether the section is shown on the page. """ isEnabled: Boolean! """ The Spaces Collection a custom Top Spaces / Spaces Near You section draws from — resource ID or GlobalID. """ spacesCollectionId: ID } """ The page a gallery section is configured for. """ enum GalleryPage { """ The Network or Space Discovery page. """ DISCOVERY """ A Spaces Collection page. """ SPACES_COLLECTION } """ The kind of content a Discovery gallery section surfaces. """ enum GalleryType { """ Bundles available for purchase. """ BUNDLES """ Events located near the viewer. """ EVENTS_NEAR_YOU """ Posts and Spaces the Host has pinned as featured. """ FEATURED """ Members located near the viewer. """ MEMBERS_NEAR_YOU """ Members sharing the viewer's display-field segment. """ SEGMENT_MEMBERS """ Spaces located near the viewer, optionally drawn from a Spaces Collection. """ SPACES_NEAR_YOU """ The most active members. """ TOP_MEMBERS """ The most active posts. """ TOP_POSTS """ The most active Spaces, optionally drawn from a Spaces Collection. """ TOP_SPACES """ Events happening soon. """ UPCOMING_EVENTS """ The welcome checklist and welcome content for new members. """ WELCOME } """ The post, comment, or chat message a gift was given in the context of. """ union GiftContextTargetable = ChatMessage | Comment | Post | PrivateMessage """ A gift (recognition) members can give one another. Each gift costs a fixed number of points. """ type GiftDefinition implements DatabaseRecord & Node { """ Whether the gift has been deactivated and can no longer be given. """ archived: Boolean! """ URL of the gift's badge image. """ avatarUrl: String """ Points the sender spends to give this gift. """ costInPoints: Int! createdAt: ISO8601DateTime! """ ID of the object. """ id: ID! """ Display name of the gift. """ name: String! """ Sort position of the gift within the Network's gift catalog. """ position: Int """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! updatedAt: ISO8601DateTime! """ URL of the gift's leaderboard page in the community. """ url: String! } """ The connection type for GiftDefinition. """ type GiftDefinitionConnection { """ A list of edges. """ edges: [GiftDefinitionEdge] """ A list of nodes. """ nodes: [GiftDefinition] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type GiftDefinitionEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: GiftDefinition } """ A built-in gift template a Host can use to create a gift. """ type GiftDefinitionTemplate { """ Identifier of the template's badge image. """ avatarName: String """ URL of the template's badge image. """ avatarUrl: String """ Suggested point cost for the gift. """ costInPoints: Int """ Suggested name for the gift. """ name: String! } """ A gift leaderboard ranking members, with the time the rankings next refresh. """ type GiftLeaderboard { """ Ranked entries, highest count first, capped at the Network's leaderboard size limit. """ entries: [GiftLeaderboardEntry!]! """ When the leaderboard rankings are next recalculated. """ nextRefreshAt: ISO8601DateTime } """ Whether a gift leaderboard ranks members by gifts received or gifts sent """ enum GiftLeaderboardDirection { """ Rank members by gifts received """ RECEIVED """ Rank members by gifts sent """ SENT } """ A member's rank entry on a gift leaderboard. """ type GiftLeaderboardEntry { """ Gift count for this entry, per the leaderboard's direction and period. """ count: Int! """ The gift this entry ranks. Null on an aggregated (cross-gift) leaderboard. """ giftDefinition: GiftDefinition """ The ranked member. """ member: User! } """ Time window over which a per-gift leaderboard is aggregated """ enum GiftLeaderboardPeriod { """ All time """ ALL_TIME """ The last 30 days """ LAST_30_DAYS """ The last 7 days """ LAST_7_DAYS } """ A count of gifts of one kind a member has received. """ type GiftSummaryEntry { """ How many gifts of this kind the member has received. """ count: Int! """ The gift these were given as. Null when that gift has since been deleted. """ giftDefinition: GiftDefinition } """ Deprecated: use Recognition. This type is never returned; it remains only so previously compiled queries keep validating. """ type GiftTransaction { """ The post, comment, or chat message the gift was given in the context of, when applicable. """ contextTargetable: GiftContextTargetable createdAt: ISO8601DateTime! """ The kind of gift that was given. """ giftDefinition: GiftDefinition """ Avatar/badge icon URL of the recognition. """ giftDefinitionAvatarUrl: String """ Name of the recognition/gift badge. """ giftDefinitionName: String id: ID! """ Optional message from the sender. Visible only to the sender and the receiver. """ message: String """ The member who received the gift. """ receiver: User! """ The member who gave the gift. Null for system-generated gifts. """ sender: User """ URL of the recognition in the Network. """ url: String! } """ An ISO 8601-encoded date """ scalar ISO8601Date @specifiedBy(url: "https://tools.ietf.org/html/rfc3339") """ An ISO 8601-encoded datetime """ scalar ISO8601DateTime @specifiedBy(url: "https://tools.ietf.org/html/rfc3339") """ An Income Report: the money a Network earned from its Payment Plans over one reporting period, on one payment platform, in one settlement currency. """ type IncomeReport implements DatabaseRecord & Node { """ ISO code of the currency the report settles in. Matches the Host's bank account currency for Stripe; always USD for Apple. """ currency: String! """ Apple fiscal period (month) within the fiscal year. Null when the report has no sales line items. """ fiscalPeriod: Int """ Human-readable label of the Apple fiscal month the period falls in. Null when the report has no sales line items. """ fiscalPeriodMonthLabel: String """ Apple fiscal year the period falls in. Null when the report has no sales line items. """ fiscalYear: Int """ What members paid in total — plan amounts plus taxes, including fees — in the currency's smallest unit such as cents. """ grossRevenue: Int """ ID of the object. """ id: ID! """ Apple fees paid by members on Apple purchases, in the currency's smallest unit such as cents. Null on reports from before fees were split by platform. """ iosFees: Int """ Mighty Networks fees on Stripe sales, in the currency's smallest unit such as cents. Null on reports from before fees were split by platform. """ mightyNetworksFees: Int """ The platform the reported sales were paid through. """ paymentPlatform: PaymentPlatform """ End of the reporting period. """ periodEnd: ISO8601DateTime! """ Start of the reporting period. """ periodStart: ISO8601DateTime! """ One price point's breakdown row in this report, by price ID. Unlike planBreakdowns, it also serves price points with no revenue in the period (totals report zero). """ planBreakdown( """ Price point ID (as exposed by planBreakdowns' price rows) — resource ID or GlobalID. """ priceId: ID! ): IncomeReportPlanBreakdown """ Per-Payment-Plan breakdown of the revenue in this report, highest earnings first. Only plans with revenue in the period appear. """ planBreakdowns( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int ): IncomeReportPlanBreakdownConnection! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ Stripe processing fees, in the currency's smallest unit such as cents. Null on reports from before fees were split by platform. """ stripeFees: Int """ When the payout was disbursed through Stripe. Null when nothing was disbursed through Stripe. """ stripeTransferDate: ISO8601DateTime """ Stripe Transfer ID of the disbursement. Null when nothing was disbursed through Stripe. """ stripeTransferId: String """ Taxes members paid, in the currency's smallest unit such as cents. Stripe sales only — Apple does not report taxes to us. """ taxes: Int """ All fees for the period combined, in the currency's smallest unit such as cents. """ totalFees: Int! """ The portion Mighty Networks pays out to the Host directly; today that is Apple sales only, since Stripe sales settle straight into the Host's Stripe account. In the currency's smallest unit such as cents. """ totalPayment: Int! """ The Network's earnings after fees, in the currency's smallest unit such as cents. """ totalRevenue: Int! """ Number of units sold across all Payment Plans in the period. """ units: Int } """ The connection type for IncomeReport. """ type IncomeReportConnection { """ A list of edges. """ edges: [IncomeReportEdge] """ A list of nodes. """ nodes: [IncomeReport] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type IncomeReportEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: IncomeReport } """ One reporting period a Network has Income Reports for. A period spans every platform and currency, so one period usually holds several Income Reports. """ type IncomeReportPeriod { """ Human-readable label of the Apple fiscal month the period falls in. """ fiscalPeriodMonthLabel: String! """ End of the reporting period. """ periodEnd: ISO8601DateTime! """ Start of the reporting period. Pass it to Network.incomeReports periodStart to fetch the period's reports. """ periodStart: ISO8601DateTime! } """ The connection type for IncomeReportPeriod. """ type IncomeReportPeriodConnection { """ A list of edges. """ edges: [IncomeReportPeriodEdge] """ A list of nodes. """ nodes: [IncomeReportPeriod] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type IncomeReportPeriodEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: IncomeReportPeriod } """ One Payment Plan's share of an Income Report: the units sold and money earned through a single plan price point during the report's period. """ type IncomeReportPlanBreakdown { """ List price of the price point, in the plan currency's smallest unit such as cents. Null when the plan carries no monetary charge. """ amount: Int """ What members paid through the Android app, in the currency's smallest unit such as cents. Null for plans sold through Apple. """ androidGrossRevenue: Int """ Units sold through the Android app. Null for plans sold through Apple. """ androidUnits: Int """ Avatar image URLs of up to three Spaces the plan grants access to. """ avatarUrls: [String!]! """ What members paid through this plan in the period, in the currency's smallest unit such as cents. """ grossRevenue: Int """ Human-readable billing cadence of the price point, such as Monthly. """ intervalDisplayName: String """ Apple fees and taxes on this plan's Apple sales, in the currency's smallest unit such as cents. Null for plans sold through Stripe. """ iosFees: Int """ What members paid through Apple, in the currency's smallest unit such as cents. Null for plans sold through Stripe. """ iosGrossRevenue: Int """ Units sold through Apple. Null for plans sold through Stripe. """ iosUnits: Int """ Mighty Networks fees on this plan's Stripe sales, in the currency's smallest unit such as cents. """ mightyNetworksFees: Int """ Display name of the price point in this report — the plan name with its billing cadence and currency. """ name: String! """ The Payment Plan the revenue came through. Null when the plan has since been deleted. """ paymentPlan: PaymentPlan """ The platform members paid through for this plan. """ paymentPlatform: PaymentPlatform """ ISO code of the currency the plan is priced in. Can differ from the report's settlement currency. """ planCurrency: String """ The price point this row aggregates — pass its ID to planBreakdown to fetch the row's detail. Null when the price point has since been hard-deleted. """ price: PaymentPlanPrice """ Stripe fees on this plan's sales, in the currency's smallest unit such as cents. Null for plans sold through Apple. """ stripeFees: Int """ Taxes members paid through this plan in the period, in the currency's smallest unit such as cents. """ taxes: Int """ What members paid through this plan in the period, in the currency's smallest unit such as cents. """ total: Int! """ All fees on this plan's sales in the period combined, in the currency's smallest unit such as cents. """ totalFees: Int """ The Network's earnings through this plan after fees, in the currency's smallest unit such as cents. """ totalRevenue: Int """ Units sold through this plan in the period. """ totalUnits: Int """ What members paid on the web (including mobile web), in the currency's smallest unit such as cents. Null for plans sold through Apple. """ webGrossRevenue: Int """ Units sold on the web (including mobile web). Null for plans sold through Apple. """ webUnits: Int } """ The connection type for IncomeReportPlanBreakdown. """ type IncomeReportPlanBreakdownConnection { """ A list of edges. """ edges: [IncomeReportPlanBreakdownEdge] """ A list of nodes. """ nodes: [IncomeReportPlanBreakdown] """ Information to aid in pagination. """ pageInfo: PageInfo! """ Total number of plans with revenue in this report, independent of pagination. """ totalCount: Int! } """ An edge in a connection. """ type IncomeReportPlanBreakdownEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: IncomeReportPlanBreakdown } """ An invitation for a recipient to join a Space or the Network, or to purchase a Payment Plan. """ type Invite implements DatabaseRecord & Node { """ Delivery channel the invite was sent through (e.g. email_manual, mightybell). """ channel: String """ When the recipient accepted the invite and joined. Null until the invite converts. """ convertedAt: ISO8601DateTime """ When the invite was created. """ createdAt: ISO8601DateTime! """ When the invite stops being redeemable (four weeks after it was last updated). """ expiresAt: ISO8601DateTime! """ ID of the object. """ id: ID! """ Personal message the sender included with the invite. """ message: String """ The Payment Plan (Bundle) this invite grants access to, for plan invites. Null for regular Space or Network invites. """ plan: PaymentPlan """ The invited user, once the recipient is a known member of the Network. Null for pending email-only invites. """ recipient: User """ Email the invite was addressed to. Masked for non-Hosts and for applications without the `read:userinfo` scope, and withheld entirely once a joined recipient opts out of showing their email. """ recipientEmail: String """ First name the invite was addressed to, when provided. """ recipientFirstName: String """ Last name the invite was addressed to, when provided. """ recipientLastName: String """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ The member who sent the invite. Null if the sender is no longer in the Network. """ sender: User """ Number of times the invite has been delivered, including reminders. """ sentCount: Int! """ The container the invite grants access to — the Network itself or a Space within it. """ space: Space """ Membership role granted in the target Space when the invite is redeemed (host, moderator, or contributor). """ spaceRole: String! """ Current lifecycle status of the invite, derived from its delivery state and the recipient's email deliverability. """ state: InviteState! """ When the invite was last updated. """ updatedAt: ISO8601DateTime! """ Shareable invite link. Present only for Payment Plan invites; null for regular Space or Network invites. """ url: String } """ The connection type for Invite. """ type InviteConnection { """ A list of edges. """ edges: [InviteEdge] """ A list of nodes. """ nodes: [Invite] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type InviteEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: Invite } """ An email address to invite, with an optional first and last name. """ input InviteRecipientInput { """ Email address to send the invite to. """ email: String! """ Recipient's first name, used to personalize the invite. """ firstName: String """ Recipient's last name, used to personalize the invite. """ lastName: String } """ A request to join a Network, Space, or Plan, awaiting a Host or Moderator decision. """ type InviteRequest implements DatabaseRecord & Node { """ The Host or Moderator who approved or rejected the request, when decided. """ approver: User """ URL of the requester's avatar, falling back to a generated default avatar. """ avatarUrl: String """ Whether an approved request has resulted in the requester joining (an accepted invite, or a membership for a Space/Plan request). """ converted: Boolean! createdAt: ISO8601DateTime! """ Requester's email. Shown in full only to Network Hosts holding the `read:userinfo` scope; obfuscated for everyone else, and blank when the requester is already a member who has not consented to sharing their email. """ email: String """ Requester's first name. """ firstName: String """ ID of the object. """ id: ID! """ Requester's last name. """ lastName: String """ Requester's self-reported location, when provided. """ location: String """ The paid Plan this request targets, when the request is a purchase-gated join. """ plan: PaymentPlan """ The requester's answers to the join screening questions. Empty when none were asked. """ profileQuestionAnswers: [ProfileQuestionAnswer!]! """ Human-readable rejection reason shown to the requester. """ rejectionReason: String """ Reason category set when the request was rejected. """ rejectionType: InviteRequestRejectionType """ The member who submitted the request, when they have an account. """ requester: User """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ The Space this request targets. Null when the request targets the Network as a whole or a Plan; a null space together with a null plan means a request to join the Network. """ space: Space """ Lifecycle state of the request. """ status: InviteRequestStatus! updatedAt: ISO8601DateTime! } """ The connection type for InviteRequest. """ type InviteRequestConnection { """ A list of edges. """ edges: [InviteRequestEdge] """ A list of nodes. """ nodes: [InviteRequest] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type InviteRequestEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: InviteRequest } """ Reason category a Host or Moderator gives when rejecting a request. """ enum InviteRequestRejectionType { """ The screening responses were insufficient. """ INSUFFICIENT_RESPONSES """ Another reason, spelled out in the rejection reason text. """ OTHER """ The responses violate the community guidelines. """ VIOLATES_GUIDELINES } """ Lifecycle state of a request to join a Network, Space, or Plan. """ enum InviteRequestStatus { """ The request was approved. """ APPROVED """ The request could not be processed (for example, the email address was undeliverable). """ INVALID """ Awaiting a Host or Moderator decision. """ PENDING """ The request was rejected. """ REJECTED } """ Field to sort sent invites by. """ enum InviteSortField { """ Sort by when the invite was created. """ CREATED_AT """ Sort by the recipient's first name. """ NAME """ Sort by the invite's delivery state. """ STATUS """ Sort by when the invite was last updated (default). """ UPDATED_AT } """ The current status of an invite, derived from its delivery lifecycle and the recipient's email deliverability. """ enum InviteState { """ Held back because the sender is flagged as an invite spammer. """ BLOCKED """ The invite email hard-bounced at the provider. """ BOUNCED """ The recipient clicked through the invite. """ CLICKED """ The invite was flagged for review. """ FLAGGED """ The invite was revoked. """ HIDDEN """ The invite could not be delivered because the address was invalid. """ INVALID """ The recipient accepted the invite and joined. """ JOINED """ The recipient opened the invite email. """ OPENED """ The invite was delivered and is awaiting a response. """ SENT """ The recipient's provider reported the invite as spam. """ SPAM """ The invite passed its expiration window without being accepted. """ STALE """ The invite has not been delivered yet. """ UNSENT """ The recipient unsubscribed from invite emails. """ UNSUBSCRIBED } """ Status bucket for filtering sent invites, matching the REST sent-invites status filter. """ enum InviteStatusFilter { """ The invite email hard-bounced at the provider. """ BOUNCED """ The recipient clicked through the invite. """ CLICKED """ Past its expiration window without being accepted. """ EXPIRED """ The recipient accepted the invite and joined. """ JOINED """ The recipient opened the invite email. """ OPENED """ Delivered and awaiting a response. """ SENT """ The recipient's provider reported the invite as spam. """ SPAM """ Past its expiration window without being accepted. """ STALE """ Not yet delivered. """ UNSENT """ The recipient unsubscribed from invite emails. """ UNSUBSCRIBED } """ An arbitrary JSON object: a map of string keys to values. """ scalar JSONObject """ Which audience a Network landing Space applies to. """ enum LandingSpaceAudience { """ The Space returning members land on. """ MEMBERS """ The Space members land on the first time they visit. """ NEW_MEMBERS """ The Space visitors (not yet members) land on. """ VISITORS } """ An email captured through a Waitlist — a prospective member who has not necessarily joined **Required scopes:** `read:network`, `host:read:network` (any one) """ type Lead implements DatabaseRecord & Node { """ When the Lead was captured. """ createdAt: ISO8601DateTime! """ Derived status of the Lead (waitlist, invited, pending approval, joined, or unsubscribed), computed at read time. """ displayedStatus: LeadDisplayedStatus! """ The captured signup email — prospective-member PII. Plain text only for a Network Host on a plan that includes member-emails visibility, and only for an application holding the `read:userinfo` scope; obfuscated for Network Moderators, for Hosts whose plan lacks it, and for an application without that scope. """ email: String! """ ID of the object. """ id: ID! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ The Waitlist the Lead signed up through. Retained after the Waitlist is soft-deleted (displayName then carries a "(deleted)" suffix); null once the Waitlist is hard-deleted or the Lead has no originating Waitlist. """ waitlist: Waitlist } """ The connection type for Lead. """ type LeadConnection { """ A list of edges. """ edges: [LeadEdge] """ A list of nodes. """ nodes: [Lead] """ Information to aid in pagination. """ pageInfo: PageInfo! """ Total number of Leads matching the active filters, independent of pagination. """ totalCount: Int! } """ Derived status of a Lead, computed from invites, invite requests, memberships, the email denylist, and whether the email belongs to a banned member. """ enum LeadDisplayedStatus { """ The Lead's email belongs to a member banned from this Network. Outranks every other status, and the email cannot rejoin a waitlist. """ BANNED """ An invite exists for the Lead's email, or the Lead has been promoted to an invite. """ INVITED """ The Lead's email belongs to a member of the Network. """ JOINED """ A pending invite request exists for the Lead's email, awaiting host approval. """ PENDING_APPROVAL """ The Lead unsubscribed, or its email is on the Network's denylist. """ UNSUBSCRIBED """ The default captured state: the Lead signed up and no further action has been taken. """ WAITLIST } """ An edge in a connection. """ type LeadEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: Lead } """ Autogenerated input type of LeaveConversation """ input LeaveConversationInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID of the group conversation to leave """ conversationId: ID! } """ Autogenerated return type of LeaveConversation. """ type LeaveConversationPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! success: Boolean! } type LiveSpace implements DatabaseRecord & Node { """ When the livestream was created. """ createdAt: ISO8601DateTime! """ The member who started the livestream. """ creator: User """ The linked event instance this livestream belongs to, for a recurring event. """ eventInstanceAt: ISO8601DateTime """ When the linked event instance starts. """ eventInstanceStartsAt: ISO8601DateTime """ The event post this livestream is linked to, if any. """ eventPost: PostContent """ ID of the object. """ id: ID! """ Whether the livestream is currently active. """ isActive: Boolean! """ Whether the livestream is currently broadcasting and joinable. """ isBroadcasting: Boolean! """ Whether a recording is currently in progress. """ isRecording: Boolean! """ Number of attendees on the livestream. """ memberCount: Int! """ Downloadable MP4 recording of the livestream. """ recordingDownload: Asset """ Duration of the downloadable recording, in seconds. """ recordingDurationSeconds: Int """ Status of the livestream's recording, if any. """ recordingStatus: LiveSpaceRecordingStatus """ Cover image URL for the recording, if any. """ recordingThumbnailUrl: String """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ The Space this livestream belongs to. Null when it is attached directly to the Network. """ space: Space """ Lifecycle status of the livestream. """ status: LiveSpaceStatus! """ The livestream's title. """ title: String! """ When the transmission's recording access expires. """ transmissionExpiresAt: ISO8601DateTime """ When the transmission started. """ transmissionStartedAt: ISO8601DateTime """ When the transmission stopped. """ transmissionStoppedAt: ISO8601DateTime """ Canonical URL of the livestream. """ url: String! } """ The connection type for LiveSpace. """ type LiveSpaceConnection { """ A list of edges. """ edges: [LiveSpaceEdge] """ A list of nodes. """ nodes: [LiveSpace] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type LiveSpaceEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: LiveSpace } """ Optional filter narrowing the completed livestreams list. """ enum LiveSpaceListFilter { """ Only livestreams the viewer created. """ MINE } """ Status of a livestream's recording. """ enum LiveSpaceRecordingStatus { """ The recording is ready and available. """ COMPLETED """ The recording was erased. """ ERASED """ The recording failed. """ FAILED """ Post-processing of the recording failed. """ FAILED_PROCESSING """ Recording of the transmission failed. """ FAILED_RECORDING """ The recording is being processed. """ PROCESSING """ The transmission is being recorded. """ RECORDING """ Recording was requested but has not started. """ REQUESTED """ The transmission was not set to record. """ SKIPPED } """ Lifecycle status of a livestream. """ enum LiveSpaceStatus { """ Cancelled before going live. """ ABORTED """ Being cancelled before going live; external resources are stopping. """ ABORTING """ Finished; no longer live. """ COMPLETED """ The broadcast has stopped and the transmission is winding down. """ ENDING """ Failed to start. """ FAILED """ Failing to start; external resources are stopping. """ FAILING """ Created and waiting for the broadcast to start. """ INITIALIZING """ Broadcasting live and available to join. """ ONLINE """ Attendees have gathered but the host has not started broadcasting. """ WAITING_ROOM } """ Signed integer in the JavaScript-safe range (up to 2^53 - 1). For byte counts that exceed Int32 (≈2.1B) but stay below 2^53. Serialized as a JSON number — clients consume the value directly without parsing. """ scalar Long """ Autogenerated input type of MarkAllConversationsRead """ input MarkAllConversationsReadInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String } """ Autogenerated return type of MarkAllConversationsRead. """ type MarkAllConversationsReadPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! success: Boolean! } """ Autogenerated input type of MarkConversationRead """ input MarkConversationReadInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID of the conversation to mark as read """ conversationId: ID! } """ Autogenerated return type of MarkConversationRead. """ type MarkConversationReadPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String conversation: PublicConversation errors: [String!]! """ Updated unread count (null when the viewer has no membership in the conversation) """ unreadCount: Int } """ Autogenerated input type of MarkDirectMessageRead """ input MarkDirectMessageReadInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID of the conversation to mark as read """ conversationId: ID! } """ Autogenerated return type of MarkDirectMessageRead. """ type MarkDirectMessageReadPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String conversation: PrivateConversation errors: [String!]! """ Updated unread count (null when the viewer has no membership in the conversation) """ unreadCount: Int } """ A reusable segment of members a Host targets with Marketing Banners, built from include and exclude rules. """ type MarketingAudience implements DatabaseRecord & Node { """ When the Audience was created. """ createdAt: ISO8601DateTime! """ The Host who created the Audience. """ creator: User """ The include and exclude rules that define the Audience's membership. """ filterItems( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int ): MarketingAudienceFilterItemConnection! """ ID of the object. """ id: ID! """ The Audience's display name. """ name: String! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ Lifecycle status of the Audience. """ status: MarketingAudienceStatus! """ Why the Audience was suspended. Null unless the Audience is suspended. """ suspendedReason: String } """ The connection type for MarketingAudience. """ type MarketingAudienceConnection { """ A list of edges. """ edges: [MarketingAudienceEdge] """ A list of nodes. """ nodes: [MarketingAudience] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type MarketingAudienceEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: MarketingAudience } """ An include or exclude rule within a Marketing Audience, targeting one Network entity. """ type MarketingAudienceFilterItem implements DatabaseRecord & Node { """ When the rule was added to the Audience. """ createdAt: ISO8601DateTime! """ Whether members matching the target are included in or excluded from the Audience. """ filterType: MarketingAudienceFilterType! """ ID of the object. """ id: ID! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ The Network entity this rule targets. Null when the target has been deleted. """ targetable: MarketingAudienceTargetable } """ The connection type for MarketingAudienceFilterItem. """ type MarketingAudienceFilterItemConnection { """ A list of edges. """ edges: [MarketingAudienceFilterItemEdge] """ A list of nodes. """ nodes: [MarketingAudienceFilterItem] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type MarketingAudienceFilterItemEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: MarketingAudienceFilterItem } """ Whether a Marketing Audience filter includes or excludes the members it matches. """ enum MarketingAudienceFilterType { """ Members matching the target are excluded from the Audience. """ EXCLUDE """ Members matching the target are included in the Audience. """ INCLUDE } """ Field to sort Marketing Audiences by. """ enum MarketingAudienceSortField { """ Sort by when the Audience was created. """ CREATED_AT """ Sort by the Audience name. """ NAME } """ Lifecycle status of a Marketing Audience. """ enum MarketingAudienceStatus { """ Active and available for targeting. """ ACTIVE """ Disabled by a Host; not used for targeting. """ DISABLED """ Suspended because a target became invalid; not used for targeting until resolved. """ SUSPENDED } """ The entity a Marketing Audience filter targets: a Network, Space, Segment, Payment Plan, custom field, or referring member. """ union MarketingAudienceTargetable = CustomField | Network | PaymentPlan | Segment | Space | User """ A Host-authored promotional banner shown to targeted members, with a call to action. """ type MarketingBanner implements DatabaseRecord & Node { """ Label of the call-to-action button. """ buttonText: String """ URL the call-to-action button links to. """ buttonUrl: String """ When the Banner was created. """ createdAt: ISO8601DateTime """ The Host who created the Banner. """ creator: User """ The Banner's body as sanitized HTML. """ descriptionHtml: String """ When the Banner stops showing. Null when it never expires. """ endsAt: ISO8601DateTime """ ID of the object. """ id: ID! """ Whether the Host has turned the Banner on. """ isActive: Boolean """ The Marketing Audience the Banner is targeted at. """ marketingAudience: MarketingAudience """ The Banner's internal name, shown only to Hosts. """ name: String """ Whether a member can permanently dismiss the Banner. """ permanentlyDismissible: Boolean! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ When the Banner starts showing. Null when it starts immediately. """ startsAt: ISO8601DateTime """ Lifecycle status of the Banner. """ status: MarketingBannerStatus """ The platforms the Banner is shown on. """ targetPlatforms: MarketingBannerTargetPlatform """ The entity the Banner links to (a Payment Plan). Null when the Banner uses a custom button URL instead. """ targetable: MarketingBannerTargetable """ The Banner's headline shown to members. """ title: String! } """ The connection type for MarketingBanner. """ type MarketingBannerConnection { """ A list of edges. """ edges: [MarketingBannerEdge] """ A list of nodes. """ nodes: [MarketingBanner] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type MarketingBannerEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: MarketingBanner } """ The platform a member is viewing from. """ enum MarketingBannerPlatform { """ Android. """ ANDROID """ iOS. """ IOS """ Web. """ WEB } """ Field to sort Marketing Banners by. """ enum MarketingBannerSortField { """ Sort by when the Banner was created. """ CREATED_AT """ Sort by the Banner name. """ NAME } """ Lifecycle status of a Marketing Banner. """ enum MarketingBannerStatus { """ Active and shown to eligible members. """ ACTIVE """ Past its end date; no longer shown. """ EXPIRED """ Turned off by a Host; not shown. """ INACTIVE """ Scheduled to start in the future; not yet shown. """ SCHEDULED """ Its target Audience is inactive, so it is not shown until the Audience is restored. """ SUSPENDED } """ The platforms a Marketing Banner is shown on. """ enum MarketingBannerTargetPlatform { """ Shown on every platform. """ ALL """ Shown on iOS only. """ IOS """ Shown on web and Android only. """ WEB_AND_ANDROID } """ The entity a Marketing Banner is targeted at: a Payment Plan. """ union MarketingBannerTargetable = PaymentPlan """ The kind of entity a Marketing Banner targets. """ enum MarketingBannerTargetableType { """ A Payment Plan. """ PAYMENT_PLAN } """ Current-month summary of MCP usage for a Network. """ type McpUsageSummary { """ Monthly request allowance. """ limit: Int! """ First day of the current usage month. """ periodStart: ISO8601Date! """ MCP requests made in the current calendar month. """ requestCount: Int! """ Day the usage count resets — the first of next month. """ resetDate: ISO8601Date! } """ A paginated member roster """ type MemberConnection { """ Edges with cursors """ edges: [MemberEdge!]! """ Shorthand: just the members """ nodes: [User!]! """ Pagination information """ pageInfo: MemberPageInfo! } """ A member's response to a custom field: the value matching the field's response type, or selected options for dropdown, tag, and badge fields. """ type MemberCustomFieldResponse { """ The custom field being responded to. """ customField: CustomField! """ When the member last changed this response. """ lastEditedAt: ISO8601DateTime """ The member whose response this is. """ member: User! """ The options the member selected, for dropdown, tag, and badge fields. """ selectedOptions: [CustomFieldOption!]! """ The member's free-text response, for text fields. """ text: String } """ The connection type for MemberCustomFieldResponse. """ type MemberCustomFieldResponseConnection { """ A list of edges. """ edges: [MemberCustomFieldResponseEdge] """ A list of nodes. """ nodes: [MemberCustomFieldResponse] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type MemberCustomFieldResponseEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: MemberCustomFieldResponse } """ An edge in the member roster connection """ type MemberEdge { """ Opaque cursor for this edge """ cursor: String! """ The member """ node: User! } input MemberFilter { """ Match members by their custom-field answers. """ customFields: [CustomFieldFilter!] """ Members to remove from the matched set — resource IDs or GlobalIDs. """ excludedRecipientIds: [ID!] """ True matches only members who have not been active recently. """ inactive: Boolean """ Match members in these marketing audiences — resource IDs or GlobalIDs. """ marketingAudienceIds: [ID!] """ Match members holding these badges — resource IDs or GlobalIDs. """ memberBadgeIds: [ID!] """ Match members with these member tags — resource IDs or GlobalIDs. """ memberTagIds: [ID!] """ Match members of these member types. """ memberTypes: [MemberType!] """ Match members holding these payment plans — resource IDs or GlobalIDs. """ paymentPlanIds: [ID!] """ Match members at these course-progress stages. Only meaningful when the target space is a course. """ progress: [CourseProgressStatus!] """ Match members of these spaces — resource IDs or GlobalIDs. """ spaceIds: [ID!] """ Match members whose name or email matches this search text. """ term: String } """ Pagination info for the member roster """ type MemberPageInfo { """ Cursor of the last item (pass as 'after' for next page) """ endCursor: String hasNextPage: Boolean! hasPreviousPage: Boolean! """ Cursor of the first item """ startCursor: String } """ Sort key for member roster queries. """ enum MemberSort { """ Sort by when the member joined the Space the roster is scoped to. """ DATE_JOINED """ Sort by the member's last visit time (default). """ LAST_VISIT """ Sort alphabetically by member name. """ MEMBER_NAME """ Sort by member type (Hosts, Moderators, full members, then limited members). """ MEMBER_TYPE """ Sort by referral count, highest first. Only valid together with the ambassador filter. """ REFERRAL_COUNT """ Sort by role (Hosts, then Moderators, then members) in the Space the roster is scoped to. """ ROLE } enum MemberType { """ Full members """ FULL_MEMBER """ Limited members """ LIMITED_MEMBER """ Hosts of the Network """ NETWORK_HOST """ Moderators of the Network """ NETWORK_MODERATOR """ Hosts of at least one space """ SPACE_HOST """ Moderators of at least one space """ SPACE_MODERATOR } """ A membership — the join between a member and a Space, carrying role, status, and plan access. Network memberships are the join on the Network itself. """ type Membership implements DatabaseRecord & Node { """ The Payment Plans granting the member access to this Space, via an active or past-due subscription or a one-time purchase. Empty for direct access. """ accessPathPlans( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int ): PaymentPlanConnection! """ How the member gained access: directly, or through one or more Payment Plans. """ accessPathSource: MembershipAccessPathSource! """ ID of the object. """ id: ID! """ When the member joined — the membership's creation time. """ joinedAt: ISO8601DateTime! """ When the member last visited the Space this membership joins. Restricted to Network Hosts and Moderators. """ lastActiveAt: ISO8601DateTime """ The member this membership joins to the Space. """ member: User! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ The member's role on the Space this membership joins (the Network itself for Network memberships). """ role: MembershipRole! """ The membership's lifecycle status. Visible to the member themselves and to Network Hosts and Moderators; null for other viewers. """ status: MembershipStatus } """ How the member gained access to the Space this membership joins. """ enum MembershipAccessPathSource { """ Joined directly, without purchasing a Payment Plan. """ DIRECT """ Access granted through more than one Payment Plan. """ MULTIPLE_PLANS """ Access granted through exactly one Payment Plan. """ SINGLE_PLAN } """ The result of a membership change: whether the member was newly added/removed or the target was already satisfied. """ enum MembershipOutcome { """ The member was added to the target. """ ADDED """ The member already belonged to the target; no change was made. """ ALREADY_MEMBER """ The member did not belong to the target; no change was made. """ NOT_A_MEMBER """ The member was removed from the target. """ REMOVED } """ A membership role, always scoped to a specific Space (a Network role is the role on the root Space). """ enum MembershipRole { """ Regular member of the Space the membership belongs to. """ CONTRIBUTOR """ Host of the Space the membership belongs to. """ HOST """ Moderator of the Space the membership belongs to. """ MODERATOR } """ A membership's lifecycle status. """ enum MembershipStatus { """ The membership is active. """ ACTIVE """ The membership is archived. """ ARCHIVED """ The membership is suspended — typically when the plan payment backing it lapses. """ SUSPENDED } """ A message within a conversation """ interface Message { """ Who authored the message """ actorType: ChatActorType! """ Attached artifact (e.g. a Cohost-generated HTML page), when present """ artifact: Artifact """ File attachments (images, documents, audio, video) """ assets: [Asset!] createdAt: ISO8601DateTime! """ When the most recent reply was sent, or null when the message has no replies """ lastReplyAt: ISO8601DateTime """ Number of replies in the thread rooted at this message """ replyCount: Int! """ HTML content; internal classes and attributes are stripped on external API surfaces """ textHtml: String """ Plain text content with HTML stripped """ textText: String """ Title of the thread rooted at this message, or null when the message has no thread """ threadTitle: String updatedAt: ISO8601DateTime! """ The member who sent the message; null when the author no longer resolves """ user: User } """ Aggregation granularity for time-series metrics. """ enum MetricGranularity { """ One row per day. """ DAILY """ One row per calendar month. """ MONTHLY } """ Autogenerated input type of MoveSpaceToCollection """ input MoveSpaceToCollectionInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the destination Spaces Collection. """ collectionId: ID! """ ID of the Space to move. """ spaceId: ID! } """ Autogenerated return type of MoveSpaceToCollection. """ type MoveSpaceToCollectionPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! space: Space } type Mutation { """ Cancel an in-flight upload session — the multipart upload is aborted and the placeholder asset is marked failed """ abortUploadSession( """ Parameters for AbortUploadSession """ input: AbortUploadSessionInput! ): AbortUploadSessionPayload """ Archive a direct-message conversation for the viewer, removing it from their conversation list **Required scope:** `write:chats` """ archiveConversation( """ Parameters for ArchiveConversation """ input: ArchiveConversationInput! ): ArchiveConversationPayload """ Archive a Payment Plan in the current Network, taking it off sale. Buyers' subscriptions are wound down asynchronously. """ archivePaymentPlan( """ Parameters for ArchivePaymentPlan """ input: ArchivePaymentPlanInput! ): ArchivePaymentPlanPayload """ Ban a member from the entire Network. This is permanent — the member's account is disabled, they are removed from every Space, their posts are deleted, and they cannot rejoin. """ banMember( """ Parameters for BanMember """ input: BanMemberInput! ): BanMemberPayload """ Cancel a member's Payment Plan subscription. Host only. """ cancelPaymentSubscription( """ Parameters for CancelPaymentSubscription """ input: CancelPaymentSubscriptionInput! ): CancelPaymentSubscriptionPayload """ End a livestream and stop it consuming the Network's streaming hours. A livestream that never went live is aborted; one that is broadcasting is stopped, disconnecting its attendees, and its recording (if any) starts processing. Ending an already-ended livestream succeeds and changes nothing. Returns the livestream in its post-transition state. """ completeLiveSpace( """ Parameters for CompleteLiveSpace """ input: CompleteLiveSpaceInput! ): CompleteLiveSpacePayload """ Submit and score the viewer's ongoing quiz attempt """ completeQuizAttempt( """ Parameters for CompleteQuizAttempt """ input: CompleteQuizAttemptInput! ): CompleteQuizAttemptPayload """ Finalize an upload session — the multipart upload is completed and asset processing begins """ completeUploadSession( """ Parameters for CompleteUploadSession """ input: CompleteUploadSessionInput! ): CompleteUploadSessionPayload """ Send the one-shot broadcast announcing the Network's Ambassador program. Notifies members who are not yet Ambassadors and who allow Ambassador notifications. Can be sent only once per availability window — sending it flips canAnnounce off. """ createAmbassadorAnnouncement( """ Parameters for CreateAmbassadorAnnouncement """ input: CreateAmbassadorAnnouncementInput! ): CreateAmbassadorAnnouncementPayload """ Send an announcement — a broadcast notification — to the members of a space or Network. This mutation's cost scales with the audience it reaches: the base mutation cost plus one unit per recipient, up to a per-request ceiling. Naming recipients with recipientIds is charged for exactly those members; every other shape is charged for the target space's whole membership, because the recipient set is not known until the send runs. """ createAnnouncement( """ Parameters for CreateAnnouncement """ input: CreateAnnouncementInput! ): CreateAnnouncementPayload """ Cheer a poll answer as the viewer """ createAnswerCheer( """ Parameters for CreateAnswerCheer """ input: CreateAnswerCheerInput! ): CreateAnswerCheerPayload """ Create an automation rule that runs actions automatically when a trigger fires. """ createAutomationRule( """ Parameters for CreateAutomationRule """ input: CreateAutomationRuleInput! ): CreateAutomationRulePayload """ Create a badge on the Network — a hosts-assigned recognition members can earn. """ createBadge( """ Parameters for CreateBadge """ input: CreateBadgeInput! ): CreateBadgePayload """ Assign a badge to members. Pass the badge ID and the member IDs to grant it to. """ createBadgeMemberships( """ Parameters for CreateBadgeMemberships """ input: CreateBadgeMembershipsInput! ): CreateBadgeMembershipsPayload """ Add an email address to the Network's blocklist, suppressing email delivery to it (invite emails and, for hard blocks, passwordless sign-in links included). It does not remove members or prevent joining. Re-blocking an address already blocked on this Network returns the existing entry when it is visible to the host; an address blocked by an entry the host cannot see, or blocked platform-wide, returns an "already blocked" payload error instead. On plans without the member-email visibility billing feature, only host-added (MANUAL) entries are visible to hosts. """ createBlocklistEntry( """ Parameters for CreateBlocklistEntry """ input: CreateBlocklistEntryInput! ): CreateBlocklistEntryPayload """ Flag a chat message for the current member: hide it (not_interesting) or report it to moderators (spam, offensive, other). Reporting notifies the space's moderators. """ createChatReport( """ Parameters for CreateChatReport """ input: CreateChatReportInput! ): CreateChatReportPayload """ Create a comment on a post **Required scope:** `write:comments` """ createComment( """ Parameters for CreateComment """ input: CreateCommentInput! ): CreateCommentPayload """ Flag a comment for the current member: hide it (not_interesting) or report it to moderators (spam, offensive, other). Reporting notifies the space's moderators. **Required scope:** `write:comments` """ createCommentReport( """ Parameters for CreateCommentReport """ input: CreateCommentReportInput! ): CreateCommentReportPayload """ Start a direct-message conversation with the given recipients, or post to the existing one if it already exists **Required scope:** `write:chats` """ createConversation( """ Parameters for CreateConversation """ input: CreateConversationInput! ): CreateConversationPayload """ Bookmark a conversation for the current viewer """ createConversationBookmark( """ Parameters for CreateConversationBookmark """ input: CreateConversationBookmarkInput! ): CreateConversationBookmarkPayload """ Add members to a direct-message group conversation **Required scope:** `write:chats` """ createConversationMemberships( """ Parameters for CreateConversationMemberships """ input: CreateConversationMembershipsInput! ): CreateConversationMembershipsPayload """ Create a course in the Network. It starts private, visible only to the Host until configured. Format is a self-paced CONTENT course (the default) or a scheduled COHORT course. """ createCourse( """ Parameters for CreateCourse """ input: CreateCourseInput! ): CreateCoursePayload """ Create a coursework item (lesson, quiz, or section) within a course """ createCoursework( """ Parameters for CreateCoursework """ input: CreateCourseworkInput! ): CreateCourseworkPayload """ Register a custom domain for this Network and start DNS verification and SSL certificate issuance """ createCustomDomain( """ Parameters for CreateCustomDomain """ input: CreateCustomDomainInput! ): CreateCustomDomainPayload """ Create a custom field on the Network. Supports dropdown, text, and number fields; tag and badge fields are system-managed. """ createCustomField( """ Parameters for CreateCustomField """ input: CreateCustomFieldInput! ): CreateCustomFieldPayload """ Add a selectable option to a dropdown custom field. """ createCustomFieldOption( """ Parameters for CreateCustomFieldOption """ input: CreateCustomFieldOptionInput! ): CreateCustomFieldOptionPayload """ Create a custom "go to Space" onboarding step and pin it to the top of the Welcome Checklist. """ createCustomOnboardingPointer( """ Parameters for CreateCustomOnboardingPointer """ input: CreateCustomOnboardingPointerInput! ): CreateCustomOnboardingPointerPayload """ Seed the Network with a default set of gifts (recognitions). No-op when the Network already has gifts. """ createDefaultGiftDefinitions( """ Parameters for CreateDefaultGiftDefinitions """ input: CreateDefaultGiftDefinitionsInput! ): CreateDefaultGiftDefinitionsPayload """ Send a message to a direct message or thread **Required scope:** `write:chats` """ createDirectMessage( """ Parameters for CreateDirectMessage """ input: CreateDirectMessageInput! ): CreateDirectMessagePayload """ Add an emoji reaction to a message in a direct message or thread **Required scope:** `write:chats` """ createDirectMessageReaction( """ Parameters for CreateDirectMessageReaction """ input: CreateDirectMessageReactionInput! ): CreateDirectMessageReactionPayload """ Create a new event in a space **Required scope:** `write:posts` """ createEvent( """ Parameters for CreateEvent """ input: CreateEventInput! ): CreateEventPayload """ Send an announcement — a broadcast notification — to the members of an event's selected RSVP groups. """ createEventAnnouncement( """ Parameters for CreateEventAnnouncement """ input: CreateEventAnnouncementInput! ): CreateEventAnnouncementPayload """ Give a gift (recognition) to another member, spending the gift's point cost """ createGift( """ Parameters for CreateGift """ input: CreateGiftInput! ): CreateGiftPayload """ Create a gift (recognition) members can give one another, using a built-in badge template or an uploaded image """ createGiftDefinition( """ Parameters for CreateGiftDefinition """ input: CreateGiftDefinitionInput! ): CreateGiftDefinitionPayload """ Request to join a private Space or the Network. Hosts and Moderators are notified and must approve before the requester joins. """ createInviteRequest( """ Parameters for CreateInviteRequest """ input: CreateInviteRequestInput! ): CreateInviteRequestPayload """ Invite people to a Space, the Network, or a Payment Plan by email or by existing member. """ createInvites( """ Parameters for CreateInvites """ input: CreateInvitesInput! ): CreateInvitesPayload """ Start a livestream in a Space, or on the Network itself. The livestream is created in the initializing state and becomes joinable once its transmission starts; open the returned url to join the room as its creator. Livestreams consume the Network's streaming hours until they are ended with completeLiveSpace. """ createLiveSpace( """ Parameters for CreateLiveSpace """ input: CreateLiveSpaceInput! ): CreateLiveSpacePayload """ Create a Marketing Banner in the Network, targeted at a Marketing Audience. """ createMarketingBanner( """ Parameters for CreateMarketingBanner """ input: CreateMarketingBannerInput! ): CreateMarketingBannerPayload """ Block or report a member. Blocking hides the two members from each other and archives their DM, reversibly. A reason category is recorded but does not notify moderators. """ createMemberBlock( """ Parameters for CreateMemberBlock """ input: CreateMemberBlockInput! ): CreateMemberBlockPayload """ Follow another member. Idempotent: following a member you already follow is a no-op. Only full Network members can follow or be followed. """ createMemberFollow( """ Parameters for CreateMemberFollow """ input: CreateMemberFollowInput! ): CreateMemberFollowPayload """ Report a member to the Network's hosts and moderators (spam, offensive, impersonation, or other). Reporting notifies the Network's moderators. """ createMemberReport( """ Parameters for CreateMemberReport """ input: CreateMemberReportInput! ): CreateMemberReportPayload """ Send a message to a space chat """ createMessage( """ Parameters for CreateMessage """ input: CreateMessageInput! ): CreateMessagePayload """ Add an emoji reaction to a message in a space chat """ createMessageReaction( """ Parameters for CreateMessageReaction """ input: CreateMessageReactionInput! ): CreateMessageReactionPayload """ Create a Promo Code (a discount on Payment Plans) in the current Network. Host only. """ createPaymentCoupon( """ Parameters for CreatePaymentCoupon """ input: CreatePaymentCouponInput! ): CreatePaymentCouponPayload """ Create a host-to-member Payment Plan in the current Network. The Plan is created hidden until the Host publishes it. """ createPaymentPlan( """ Parameters for CreatePaymentPlan """ input: CreatePaymentPlanInput! ): CreatePaymentPlanPayload """ Send an announcement — a broadcast notification — to the buyers of a Payment Plan. """ createPaymentPlanAnnouncement( """ Parameters for CreatePaymentPlanAnnouncement """ input: CreatePaymentPlanAnnouncementInput! ): CreatePaymentPlanAnnouncementPayload """ Create a Payment Subscription Group in the current Network. Members can switch between the distinct Payment Plans it contains on the same platform. """ createPaymentSubscriptionGroup( """ Parameters for CreatePaymentSubscriptionGroup """ input: CreatePaymentSubscriptionGroupInput! ): CreatePaymentSubscriptionGroupPayload """ Add a target to one of a Network's curated pin lists. Idempotent. """ createPin( """ Parameters for CreatePin """ input: CreatePinInput! ): CreatePinPayload """ Create a new poll or question in a space **Required scope:** `write:posts` """ createPoll( """ Parameters for CreatePoll """ input: CreatePollInput! ): CreatePollPayload """ Answer (vote on) a poll as the viewer """ createPollAnswer( """ Parameters for CreatePollAnswer """ input: CreatePollAnswerInput! ): CreatePollAnswerPayload """ Create a new post or article in a space **Required scope:** `write:posts` """ createPost( """ Parameters for CreatePost """ input: CreatePostInput! ): CreatePostPayload """ Mute a post to silence its notifications. By default mutes it for the current member; a host or moderator may pass memberId to mute it for another member. Idempotent. **Required scope:** `write:posts` """ createPostMute( """ Parameters for CreatePostMute """ input: CreatePostMuteInput! ): CreatePostMutePayload """ Flag a post for the current member: mute it (unfollow), hide it (not_interesting), or report it to moderators (spam, offensive, other). Reporting notifies the space's moderators. **Required scope:** `write:posts` """ createPostReport( """ Parameters for CreatePostReport """ input: CreatePostReportInput! ): CreatePostReportPayload """ Submit the current member's answers to a Payment Plan's profile questions during the join flow. Creates or updates the member's answers for the plan. """ createProfileQuestionAnswers( """ Parameters for CreateProfileQuestionAnswers """ input: CreateProfileQuestionAnswersInput! ): CreateProfileQuestionAnswersPayload """ Mute (dismiss) a feed prompt for the current member so it stops appearing in their feed. By default the prompt resurfaces after 30 days; pass isPermanent to dismiss it for good. Idempotent — muting an already-muted prompt succeeds. """ createPromptMute( """ Parameters for CreatePromptMute """ input: CreatePromptMuteInput! ): CreatePromptMutePayload """ Answer a quiz question as the viewer """ createQuizAnswer( """ Parameters for CreateQuizAnswer """ input: CreateQuizAnswerInput! ): CreateQuizAnswerPayload """ Add an emoji reaction to a post or comment """ createReaction( """ Parameters for CreateReaction """ input: CreateReactionInput! ): CreateReactionPayload """ Create or update an RSVP for the viewer on an event """ createRsvp( """ Parameters for CreateRsvp """ input: CreateRsvpInput! ): CreateRsvpPayload """ Save a post to the current viewer's bookmarks **Required scope:** `write:posts` """ createSavedPost( """ Parameters for CreateSavedPost """ input: CreateSavedPostInput! ): CreateSavedPostPayload """ Create a new Space in the Network from a Space template. The Space starts private, hidden from discovery, and visible only to the Host until further configuration. """ createSpace( """ Parameters for CreateSpace """ input: CreateSpaceInput! ): CreateSpacePayload """ Mark a space as 'not interested' for the current member, so its content is downranked in their feed. Silent — moderators are not notified. """ createSpaceBlacklist( """ Parameters for CreateSpaceBlacklist """ input: CreateSpaceBlacklistInput! ): CreateSpaceBlacklistPayload """ Create a Pinned Link in the Network navigation menu """ createSpaceLink( """ Parameters for CreateSpaceLink """ input: CreateSpaceLinkInput! ): CreateSpaceLinkPayload """ Add a member to one or more Spaces in this Network. Host/Moderator only. """ createSpaceMemberships( """ Parameters for CreateSpaceMemberships """ input: CreateSpaceMembershipsInput! ): CreateSpaceMembershipsPayload """ Create a Spaces Collection (or reuse an existing one with the same name) and optionally move existing Spaces into it. """ createSpacesCollection( """ Parameters for CreateSpacesCollection """ input: CreateSpacesCollectionInput! ): CreateSpacesCollectionPayload """ Create a tag on the Network — a hosts-managed label for categorizing members. """ createTag( """ Parameters for CreateTag """ input: CreateTagInput! ): CreateTagPayload """ Assign a tag to members. Pass the tag ID and the member IDs to grant it to. """ createTagMemberships( """ Parameters for CreateTagMemberships """ input: CreateTagMembershipsInput! ): CreateTagMembershipsPayload """ Create a new chunked upload session and return the canonical execution grant """ createUploadSession( """ Parameters for CreateUploadSession """ input: CreateUploadSessionInput! ): CreateUploadSessionPayload """ Create a signup waitlist on the current Network. """ createWaitlist( """ Parameters for CreateWaitlist """ input: CreateWaitlistInput! ): CreateWaitlistPayload """ Register an outbound webhook so this Network delivers event payloads to your endpoint """ createWebhookCallback( """ Parameters for CreateWebhookCallback """ input: CreateWebhookCallbackInput! ): CreateWebhookCallbackPayload """ Remove the viewer's cheer from a poll answer """ deleteAnswerCheer( """ Parameters for DeleteAnswerCheer """ input: DeleteAnswerCheerInput! ): DeleteAnswerCheerPayload """ Delete an automation rule. """ deleteAutomationRule( """ Parameters for DeleteAutomationRule """ input: DeleteAutomationRuleInput! ): DeleteAutomationRulePayload """ Delete a badge from the Network. Removes it from every member who holds it. """ deleteBadge( """ Parameters for DeleteBadge """ input: DeleteBadgeInput! ): DeleteBadgePayload """ Revoke a badge from members. Pass the badge ID and the member IDs to remove it from. """ deleteBadgeMemberships( """ Parameters for DeleteBadgeMemberships """ input: DeleteBadgeMembershipsInput! ): DeleteBadgeMembershipsPayload """ Remove an email address from the Network's blocklist, restoring email delivery to it. On plans without the member-email visibility billing feature, entries not visible to the host are not found. """ deleteBlocklistEntry( """ Parameters for DeleteBlocklistEntry """ input: DeleteBlocklistEntryInput! ): DeleteBlocklistEntryPayload """ Remove the current member's flag on a chat message — undoes a hide or report they previously created. """ deleteChatReport( """ Parameters for DeleteChatReport """ input: DeleteChatReportInput! ): DeleteChatReportPayload """ Delete a comment **Required scope:** `write:comments` """ deleteComment( """ Parameters for DeleteComment """ input: DeleteCommentInput! ): DeleteCommentPayload """ Remove the current member's flag on a comment — undoes a hide or report they previously created. **Required scope:** `write:comments` """ deleteCommentReport( """ Parameters for DeleteCommentReport """ input: DeleteCommentReportInput! ): DeleteCommentReportPayload """ Remove a conversation from the current viewer's bookmarks """ deleteConversationBookmark( """ Parameters for DeleteConversationBookmark """ input: DeleteConversationBookmarkInput! ): DeleteConversationBookmarkPayload """ Remove members from a direct-message group conversation **Required scope:** `write:chats` """ deleteConversationMemberships( """ Parameters for DeleteConversationMemberships """ input: DeleteConversationMembershipsInput! ): DeleteConversationMembershipsPayload """ Delete a course. A course is a Space, so deleting it also removes its coursework, posts, and memberships. This cannot be undone. """ deleteCourse( """ Parameters for DeleteCourse """ input: DeleteCourseInput! ): DeleteCoursePayload """ Delete a coursework item """ deleteCoursework( """ Parameters for DeleteCoursework """ input: DeleteCourseworkInput! ): DeleteCourseworkPayload """ Remove the Network's custom domain configuration. Tears down every registered custom domain and restores the default Mighty domain — not just the domain the ID references """ deleteCustomDomain( """ Parameters for DeleteCustomDomain """ input: DeleteCustomDomainInput! ): DeleteCustomDomainPayload """ Delete a custom field and all of its options and responses. Tag and badge fields are system-managed and cannot be deleted. """ deleteCustomField( """ Parameters for DeleteCustomField """ input: DeleteCustomFieldInput! ): DeleteCustomFieldPayload """ Clear a member's response to a custom field (removes the scalar answer or all selected options). """ deleteCustomFieldAnswer( """ Parameters for DeleteCustomFieldAnswer """ input: DeleteCustomFieldAnswerInput! ): DeleteCustomFieldAnswerPayload """ Delete an option from a dropdown custom field, removing every member's selection of it. """ deleteCustomFieldOption( """ Parameters for DeleteCustomFieldOption """ input: DeleteCustomFieldOptionInput! ): DeleteCustomFieldOptionPayload """ Remove a custom onboarding step from the Welcome Checklist and delete it. Idempotent. """ deleteCustomOnboardingPointer( """ Parameters for DeleteCustomOnboardingPointer """ input: DeleteCustomOnboardingPointerInput! ): DeleteCustomOnboardingPointerPayload """ Delete a message from a direct message or thread **Required scope:** `write:chats` """ deleteDirectMessage( """ Parameters for DeleteDirectMessage """ input: DeleteDirectMessageInput! ): DeleteDirectMessagePayload """ Remove the viewer's emoji reaction from a message in a direct message or thread **Required scope:** `write:chats` """ deleteDirectMessageReaction( """ Parameters for DeleteDirectMessageReaction """ input: DeleteDirectMessageReactionInput! ): DeleteDirectMessageReactionPayload """ Delete an event **Required scope:** `write:posts` """ deleteEvent( """ Parameters for DeleteEvent """ input: DeleteEventInput! ): DeleteEventPayload """ Delete a single occurrence of a recurring event, optionally messaging attendees. **Required scope:** `write:posts` """ deleteEventInstance( """ Parameters for DeleteEventInstance """ input: DeleteEventInstanceInput! ): DeleteEventInstancePayload """ Revert a single-occurrence exception on a recurring event, restoring the occurrence to the series schedule. **Required scope:** `write:posts` """ deleteEventRecurrenceException( """ Parameters for DeleteEventRecurrenceException """ input: DeleteEventRecurrenceExceptionInput! ): DeleteEventRecurrenceExceptionPayload """ Delete a gift (recognition) """ deleteGiftDefinition( """ Parameters for DeleteGiftDefinition """ input: DeleteGiftDefinitionInput! ): DeleteGiftDefinitionPayload """ Delete a Marketing Banner. """ deleteMarketingBanner( """ Parameters for DeleteMarketingBanner """ input: DeleteMarketingBannerInput! ): DeleteMarketingBannerPayload """ Permanently delete a member's account. This soft-deletes the account and asynchronously tears down their content; it is not rejoinable. For a rejoinable removal from the Network, use `deleteNetworkMembership` instead. """ deleteMember( """ Parameters for DeleteMember """ input: DeleteMemberInput! ): DeleteMemberPayload """ Unblock a member the current user previously blocked. Restores any direct-message conversation that was archived when the block was created. """ deleteMemberBlock( """ Parameters for DeleteMemberBlock """ input: DeleteMemberBlockInput! ): DeleteMemberBlockPayload """ Unfollow a member. Idempotent: unfollowing a member you do not follow is a no-op. """ deleteMemberFollow( """ Parameters for DeleteMemberFollow """ input: DeleteMemberFollowInput! ): DeleteMemberFollowPayload """ Delete a message from a space chat """ deleteMessage( """ Parameters for DeleteMessage """ input: DeleteMessageInput! ): DeleteMessagePayload """ Remove the viewer's emoji reaction from a message in a space chat """ deleteMessageReaction( """ Parameters for DeleteMessageReaction """ input: DeleteMessageReactionInput! ): DeleteMessageReactionPayload """ Remove a member from the Network. This is rejoinable — the member keeps their content and can rejoin the Network later. """ deleteNetworkMembership( """ Parameters for DeleteNetworkMembership """ input: DeleteNetworkMembershipInput! ): DeleteNetworkMembershipPayload """ Delete a Payment Subscription Group in the current Network. Only Web groups can be deleted; the Payment Plans themselves are not deleted. """ deletePaymentSubscriptionGroup( """ Parameters for DeletePaymentSubscriptionGroup """ input: DeletePaymentSubscriptionGroupInput! ): DeletePaymentSubscriptionGroupPayload """ Remove a target from one of a Network's curated pin lists. Idempotent. """ deletePin( """ Parameters for DeletePin """ input: DeletePinInput! ): DeletePinPayload """ Delete a post or article **Required scope:** `write:posts` """ deletePost( """ Parameters for DeletePost """ input: DeletePostInput! ): DeletePostPayload """ Unmute a post, restoring its notifications. By default unmutes it for the current member; a host or moderator may pass memberId to unmute it for another member. **Required scope:** `write:posts` """ deletePostMute( """ Parameters for DeletePostMute """ input: DeletePostMuteInput! ): DeletePostMutePayload """ Remove the current member's flag on a post — undoes a mute, hide, or report they previously created. **Required scope:** `write:posts` """ deletePostReport( """ Parameters for DeletePostReport """ input: DeletePostReportInput! ): DeletePostReportPayload """ Unmute a previously dismissed feed prompt for the current member so it can appear in their feed again. Idempotent — unmuting a prompt that was never muted succeeds. """ deletePromptMute( """ Parameters for DeletePromptMute """ input: DeletePromptMuteInput! ): DeletePromptMutePayload """ Remove an emoji reaction from a post or comment """ deleteReaction( """ Parameters for DeleteReaction """ input: DeleteReactionInput! ): DeleteReactionPayload """ Delete an RSVP """ deleteRsvp( """ Parameters for DeleteRsvp """ input: DeleteRsvpInput! ): DeleteRsvpPayload """ Remove a post from the current viewer's bookmarks **Required scope:** `write:posts` """ deleteSavedPost( """ Parameters for DeleteSavedPost """ input: DeleteSavedPostInput! ): DeleteSavedPostPayload """ Delete a Space from this Network. This is irreversible — the Space is removed immediately and its content is torn down asynchronously. """ deleteSpace( """ Parameters for DeleteSpace """ input: DeleteSpaceInput! ): DeleteSpacePayload """ Undo a 'not interested' mark the current member set on a space. """ deleteSpaceBlacklist( """ Parameters for DeleteSpaceBlacklist """ input: DeleteSpaceBlacklistInput! ): DeleteSpaceBlacklistPayload """ Delete a Pinned Link from the Network navigation menu """ deleteSpaceLink( """ Parameters for DeleteSpaceLink """ input: DeleteSpaceLinkInput! ): DeleteSpaceLinkPayload """ Remove a member from a Space in this Network. Host/Moderator only. """ deleteSpaceMembership( """ Parameters for DeleteSpaceMembership """ input: DeleteSpaceMembershipInput! ): DeleteSpaceMembershipPayload """ Delete a Spaces Collection. The Collection must be empty — a Collection that still contains active Spaces cannot be deleted; move or archive those Spaces first. """ deleteSpacesCollection( """ Parameters for DeleteSpacesCollection """ input: DeleteSpacesCollectionInput! ): DeleteSpacesCollectionPayload """ Delete a tag from the Network. Removes it from every member who holds it. """ deleteTag( """ Parameters for DeleteTag """ input: DeleteTagInput! ): DeleteTagPayload """ Revoke a tag from members. Pass the tag ID and the member IDs to remove it from. """ deleteTagMemberships( """ Parameters for DeleteTagMemberships """ input: DeleteTagMembershipsInput! ): DeleteTagMembershipsPayload """ Delete a signup waitlist on the current Network. Existing Leads keep their attribution and are not notified. """ deleteWaitlist( """ Parameters for DeleteWaitlist """ input: DeleteWaitlistInput! ): DeleteWaitlistPayload """ Remove an outbound webhook so this Network stops delivering event payloads to its endpoint """ deleteWebhookCallback( """ Parameters for DeleteWebhookCallback """ input: DeleteWebhookCallbackInput! ): DeleteWebhookCallbackPayload """ Leave a direct-message group conversation **Required scope:** `write:chats` """ leaveConversation( """ Parameters for LeaveConversation """ input: LeaveConversationInput! ): LeaveConversationPayload """ Mark every conversation as read for the viewer across the Network **Required scope:** `write:chats` """ markAllConversationsRead( """ Parameters for MarkAllConversationsRead """ input: MarkAllConversationsReadInput! ): MarkAllConversationsReadPayload """ Mark all messages in a space chat as read for the viewer """ markConversationRead( """ Parameters for MarkConversationRead """ input: MarkConversationReadInput! ): MarkConversationReadPayload """ Mark all messages in a direct message or thread as read for the viewer **Required scope:** `write:chats` """ markDirectMessageRead( """ Parameters for MarkDirectMessageRead """ input: MarkDirectMessageReadInput! ): MarkDirectMessageReadPayload """ Move a Space into a Spaces Collection. Pass the Space ID and the destination Collection ID. """ moveSpaceToCollection( """ Parameters for MoveSpaceToCollection """ input: MoveSpaceToCollectionInput! ): MoveSpaceToCollectionPayload """ Publish a coursework item, making it visible to members """ publishCoursework( """ Parameters for PublishCoursework """ input: PublishCourseworkInput! ): PublishCourseworkPayload """ Activate a custom domain so it becomes the live domain serving this Network """ publishCustomDomain( """ Parameters for PublishCustomDomain """ input: PublishCustomDomainInput! ): PublishCustomDomainPayload """ Publish a Payment Plan, making it visible to members. The plan must be publishable (not archived, with at least one Space and price, and Apple-approved where required). """ publishPaymentPlan( """ Parameters for PublishPaymentPlan """ input: PublishPaymentPlanInput! ): PublishPaymentPlanPayload """ Move a coursework item within its course — to the top or bottom of its siblings, above another sibling, or under a new parent """ reorderCoursework( """ Parameters for ReorderCoursework """ input: ReorderCourseworkInput! ): ReorderCourseworkPayload """ Reorder a gallery section within its page. Pass exactly one of `atTop`, `atBottom`, or `atItemId` (the ID of a sibling section to insert above). See docs/reordering.md for the full protocol. """ reorderGalleryGroup( """ Parameters for ReorderGalleryGroup """ input: ReorderGalleryGroupInput! ): ReorderGalleryGroupPayload """ Move a gift (recognition) to a new position in the Network's gift catalog """ reorderGiftDefinition( """ Parameters for ReorderGiftDefinition """ input: ReorderGiftDefinitionInput! ): ReorderGiftDefinitionPayload """ Reorder a pin within one of a Network's curated lists. Pass exactly one of `atTop`, `atBottom`, or `atItemId` (the ID of a sibling pin to insert above). """ reorderPin( """ Parameters for ReorderPin """ input: ReorderPinInput! ): ReorderPinPayload """ Reorder a Space within its Collection. Pass exactly one of `atTop`, `atBottom`, or `atItemId` (the ID of a sibling Space to insert above). See docs/reordering.md for the full protocol. """ reorderSpace( """ Parameters for ReorderSpace """ input: ReorderSpaceInput! ): ReorderSpacePayload """ Reorder a Spaces Collection within the Network sidebar. Pass exactly one of `atTop`, `atBottom`, or `atItemId` (the ID of a sibling Collection to insert above). See docs/reordering.md for the full protocol. """ reorderSpacesCollection( """ Parameters for ReorderSpacesCollection """ input: ReorderSpacesCollectionInput! ): ReorderSpacesCollectionPayload """ Resend an existing invite to its recipient. """ resendInvite( """ Parameters for ResendInvite """ input: ResendInviteInput! ): ResendInvitePayload """ Revoke an unaccepted invite. """ revokeInvite( """ Parameters for RevokeInvite """ input: RevokeInviteInput! ): RevokeInvitePayload """ Unpublish a coursework item, hiding it from members """ unpublishCoursework( """ Parameters for UnpublishCoursework """ input: UnpublishCourseworkInput! ): UnpublishCourseworkPayload """ Unpublish a Payment Plan, hiding it from members. Existing buyers keep their access. """ unpublishPaymentPlan( """ Parameters for UnpublishPaymentPlan """ input: UnpublishPaymentPlanInput! ): UnpublishPaymentPlanPayload """ Update an automation rule, its actions, and its audience filter. """ updateAutomationRule( """ Parameters for UpdateAutomationRule """ input: UpdateAutomationRuleInput! ): UpdateAutomationRulePayload """ Update a badge on the Network. """ updateBadge( """ Parameters for UpdateBadge """ input: UpdateBadgeInput! ): UpdateBadgePayload """ Update an existing comment **Required scope:** `write:comments` """ updateComment( """ Parameters for UpdateComment """ input: UpdateCommentInput! ): UpdateCommentPayload """ Update a direct-message group conversation — currently its title **Required scope:** `write:chats` """ updateConversation( """ Parameters for UpdateConversation """ input: UpdateConversationInput! ): UpdateConversationPayload """ Update a coursework item's fields, or move it under a new parent """ updateCoursework( """ Parameters for UpdateCoursework """ input: UpdateCourseworkInput! ): UpdateCourseworkPayload """ Record the current member's progress on a coursework item (lesson, quiz, section, or overview) """ updateCourseworkProgress( """ Parameters for UpdateCourseworkProgress """ input: UpdateCourseworkProgressInput! ): UpdateCourseworkProgressPayload """ Update a custom field's editable attributes. Tag and badge fields are system-managed and cannot be edited. """ updateCustomField( """ Parameters for UpdateCustomField """ input: UpdateCustomFieldInput! ): UpdateCustomFieldPayload """ Set a member's response to a custom field: the argument matching the field's response type, or the selected options for dropdown fields. """ updateCustomFieldAnswer( """ Parameters for UpdateCustomFieldAnswer """ input: UpdateCustomFieldAnswerInput! ): UpdateCustomFieldAnswerPayload """ Rename or re-describe an option on a dropdown custom field. """ updateCustomFieldOption( """ Parameters for UpdateCustomFieldOption """ input: UpdateCustomFieldOptionInput! ): UpdateCustomFieldOptionPayload """ Retitle an existing custom onboarding step. """ updateCustomOnboardingPointer( """ Parameters for UpdateCustomOnboardingPointer """ input: UpdateCustomOnboardingPointerInput! ): UpdateCustomOnboardingPointerPayload """ Update an existing event **Required scope:** `write:posts` """ updateEvent( """ Parameters for UpdateEvent """ input: UpdateEventInput! ): UpdateEventPayload """ Override a single occurrence of a recurring event — its start/end time or RSVP lock. **Required scope:** `write:posts` """ updateEventInstance( """ Parameters for UpdateEventInstance """ input: UpdateEventInstanceInput! ): UpdateEventInstancePayload """ Enable or disable a single Discovery gallery section. `isEnabled` is the only attribute updatable on one section; ordering is done with reorderGalleryGroup and adding/removing sections with updateGalleryGroups. The section must be persisted (customize the container via updateGalleryGroups first). """ updateGalleryGroup( """ Parameters for UpdateGalleryGroup """ input: UpdateGalleryGroupInput! ): UpdateGalleryGroupPayload """ Declaratively replace a container's Discovery gallery sections. The `galleryGroups` array defines the sections and their order (array order becomes position). Custom sections omitted from the array are deleted; new custom Top Spaces / Spaces Near You sections require a spacesCollectionId. Between 0 and 8 sections may be enabled. Requires the custom_gallery_groups billing feature. Returns the full refreshed list so newly-created sections' IDs are known. """ updateGalleryGroups( """ Parameters for UpdateGalleryGroups """ input: UpdateGalleryGroupsInput! ): UpdateGalleryGroupsPayload """ Update a gift (recognition) — rename it and/or change its badge image """ updateGiftDefinition( """ Parameters for UpdateGiftDefinition """ input: UpdateGiftDefinitionInput! ): UpdateGiftDefinitionPayload """ Approve or reject a request to join the Network, a Space, or a Plan. """ updateInviteRequest( """ Parameters for UpdateInviteRequest """ input: UpdateInviteRequestInput! ): UpdateInviteRequestPayload """ Bulk approve or reject pending requests to join a Space, the Network, or Plans. Processing is asynchronous. """ updateInviteRequests( """ Parameters for UpdateInviteRequests """ input: UpdateInviteRequestsInput! ): UpdateInviteRequestsPayload """ Update a Marketing Banner. Only the arguments you pass are changed. """ updateMarketingBanner( """ Parameters for UpdateMarketingBanner """ input: UpdateMarketingBannerInput! ): UpdateMarketingBannerPayload """ Update a member of the current Network. Members can only update themselves. """ updateMember( """ Parameters for UpdateMember """ input: UpdateMemberInput! ): UpdateMemberPayload """ Clear (ignore) or restore all abuse reports filed against a member. Host and moderator only. A moderator cannot clear reports that were filed by a host or another moderator. """ updateMemberReports( """ Parameters for UpdateMemberReports """ input: UpdateMemberReportsInput! ): UpdateMemberReportsPayload """ Update a member's Membership — their join record in a Space, defaulting to the Network membership. Role is the writable field; changing it requires a Host of the target Space (the Network itself for Network memberships). """ updateMembership( """ Parameters for UpdateMembership """ input: UpdateMembershipInput! ): UpdateMembershipPayload """ Update Network attributes the Host controls: title, purpose, description, the discoverable/explorable/joinable privacy triple, default language, and host-toggleable features. Pass only the fields you want to change. """ updateNetwork( """ Parameters for UpdateNetwork """ input: UpdateNetworkInput! ): UpdateNetworkPayload """ Attach an existing image asset to one of the Network's branding image slots. Setting HEADER also clears any Primary Video on the Network, because the two are one product field. Use updateNetworkPrimaryVideo to set the video instead. """ updateNetworkImage( """ Parameters for UpdateNetworkImage """ input: UpdateNetworkImageInput! ): UpdateNetworkImagePayload """ Set or clear the Network landing Space for an audience (the Space that audience lands on). Pass a spaceId to set it, or omit spaceId to clear it. Only a Network Host can change landing Spaces. """ updateNetworkLandingSpace( """ Parameters for UpdateNetworkLandingSpace """ input: UpdateNetworkLandingSpaceInput! ): UpdateNetworkLandingSpacePayload """ Change the Network's mn.co subdomain (its web address). Pass the subdomain label without the '.mn.co' suffix. """ updateNetworkSubdomain( """ Parameters for UpdateNetworkSubdomain """ input: UpdateNetworkSubdomainInput! ): UpdateNetworkSubdomainPayload """ Set the Network's branding colors. Pass primaryColor to derive the whole theme from one color, or lightTheme and darkTheme together to set all six colors explicitly. """ updateNetworkTheme( """ Parameters for UpdateNetworkTheme """ input: UpdateNetworkThemeInput! ): UpdateNetworkThemePayload """ Mark a notification as read or unread """ updateNotification( """ Parameters for UpdateNotification """ input: UpdateNotificationInput! ): UpdateNotificationPayload """ Update the authenticated member's own notification settings. """ updateNotificationSetting( """ Parameters for UpdateNotificationSetting """ input: UpdateNotificationSettingInput! ): UpdateNotificationSettingPayload """ Update a Promo Code's description, status, or amount-off currencies. Host only. """ updatePaymentCoupon( """ Parameters for UpdatePaymentCoupon """ input: UpdatePaymentCouponInput! ): UpdatePaymentCouponPayload """ Update a Payment Plan in the current Network, including which Spaces it grants access to. """ updatePaymentPlan( """ Parameters for UpdatePaymentPlan """ input: UpdatePaymentPlanInput! ): UpdatePaymentPlanPayload """ Replace the profile questions on a Payment Plan's join flow. Questions with an ID are updated, questions without one are created, and existing questions omitted from the list are removed. Host only. """ updatePaymentPlanProfileQuestions( """ Parameters for UpdatePaymentPlanProfileQuestions """ input: UpdatePaymentPlanProfileQuestionsInput! ): UpdatePaymentPlanProfileQuestionsPayload """ Update a Payment Subscription Group in the current Network. """ updatePaymentSubscriptionGroup( """ Parameters for UpdatePaymentSubscriptionGroup """ input: UpdatePaymentSubscriptionGroupInput! ): UpdatePaymentSubscriptionGroupPayload """ Update an existing poll or question **Required scope:** `write:posts` """ updatePoll( """ Parameters for UpdatePoll """ input: UpdatePollInput! ): UpdatePollPayload """ Update an existing post or article **Required scope:** `write:posts` """ updatePost( """ Parameters for UpdatePost """ input: UpdatePostInput! ): UpdatePostPayload """ Update an existing RSVP """ updateRsvp( """ Parameters for UpdateRsvp """ input: UpdateRsvpInput! ): UpdateRsvpPayload """ Update an existing Space — rename it and/or toggle its enabled features. """ updateSpace( """ Parameters for UpdateSpace """ input: UpdateSpaceInput! ): UpdateSpacePayload """ Attach an existing image asset to one of a Space's branding image slots. Use updateNetworkImage for the Network's own branding. Setting HEADER also clears any Primary Video on the Space, because the two are one product field. Use updateSpacePrimaryVideo to set the video instead. """ updateSpaceImage( """ Parameters for UpdateSpaceImage """ input: UpdateSpaceImageInput! ): UpdateSpaceImagePayload """ Update a Pinned Link in the Network navigation menu """ updateSpaceLink( """ Parameters for UpdateSpaceLink """ input: UpdateSpaceLinkInput! ): UpdateSpaceLinkPayload """ Replace the profile questions on a Space's join flow. Questions with an ID are updated, questions without one are created, and existing questions omitted from the list are removed. Host of the Space only. """ updateSpaceProfileQuestions( """ Parameters for UpdateSpaceProfileQuestions """ input: UpdateSpaceProfileQuestionsInput! ): UpdateSpaceProfileQuestionsPayload """ Update a Spaces Collection — currently rename only. Pass the new name; other attributes will be added as needed. """ updateSpacesCollection( """ Parameters for UpdateSpacesCollection """ input: UpdateSpacesCollectionInput! ): UpdateSpacesCollectionPayload """ Update a tag on the Network. """ updateTag( """ Parameters for UpdateTag """ input: UpdateTagInput! ): UpdateTagPayload """ Record the current member's playback progress for a video embedded in a post """ updateVideoProgress( """ Parameters for UpdateVideoProgress """ input: UpdateVideoProgressInput! ): UpdateVideoProgressPayload """ Update settings on an existing signup waitlist on the current Network. """ updateWaitlist( """ Parameters for UpdateWaitlist """ input: UpdateWaitlistInput! ): UpdateWaitlistPayload """ Modify an outbound webhook to change its endpoint, secret, or event subscription """ updateWebhookCallback( """ Parameters for UpdateWebhookCallback """ input: UpdateWebhookCallbackInput! ): UpdateWebhookCallbackPayload """ Void a member's one-time Payment Plan purchase — revoke their access and archive the purchase. Does not refund money. """ voidPurchase( """ Parameters for VoidPurchase """ input: VoidPurchaseInput! ): VoidPurchasePayload } type Network implements DatabaseRecord & Node { """ Abuse reports members have filed against other members, newest first. Empty unless the viewer is a host or moderator of the Network. """ abuseReports( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Filter by cleared state: true returns only cleared reports, false only uncleared. Omit to return both. """ ignored: Boolean """ Returns the last _n_ elements from the list. """ last: Int """ When true, return the moderation queue — one entry per reported member (their most recent uncleared report), current members only. """ latestPerMember: Boolean = false """ Filter to reports filed against one member — resource ID or GlobalID. """ reportedMemberId: ID ): AbuseReportConnection! """ Aggregate stats for the Network's Ambassador program. Restricted to Network Hosts and Moderators; returns null when the Ambassador program is not available on the Network. """ ambassadorStats: AmbassadorStats """ Announcements (host broadcasts to members) sent in the Network, newest first. Empty for non-host viewers. """ announcements( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int ): AnnouncementConnection! """ Media assets (images, files, videos, audio) uploaded to the Network, newest first. Empty for non-host viewers. """ assets( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int ): AssetConnection! """ A single automation rule by ID, scoped to the current Network. Host-only. """ automationRule( """ ID of the automation rule — resource ID or GlobalID. """ id: ID! ): AutomationRule! """ The Network's automation execution history — up to 200 entries from the last 48 hours. Host-only. Optionally filter by rule, action, or source. """ automationRuleLogs( """ Return only entries for this action — resource ID or GlobalID. """ actionId: ID """ Return only entries for this rule — resource ID or GlobalID. """ ruleId: ID """ Return only entries produced by this source. """ sourceKind: UniversalActionSourceKind ): [AutomationRuleLogEntry!]! """ Automation rules configured for the Network, newest first. Host-only. Filter by space, trigger, action type, status, or search term, and sort by name, status, or creation time. """ automationRules( """ Return only rules with these action types. """ actions: [AutomationRuleActionType!] """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int """ Field to sort by. Defaults to when the rule was created. """ sort: AutomationRuleSortField """ Sort direction. Defaults to descending. """ sortOrder: SortOrder """ Return only rules whose trigger or action targets these spaces — resource IDs or GlobalIDs. """ spaceIds: [ID!] """ Return only rules in these status buckets. """ statuses: [AutomationRuleStatus!] """ Case-insensitive search across rule names. """ term: String """ Return only rules with these triggers. """ triggers: [AutomationRuleTrigger!] ): AutomationRuleConnection! """ Space features available for the Build Your Own template, filtered to this Network's billing plan. Empty when Build Your Own is not enabled. """ availableSpaceFeatures: [SpaceFeature!]! """ Network avatar image URL. """ avatarUrl: String """ Fetch a single badge on the Network by resource ID or GlobalID. """ badge( """ ID of the badge — resource ID or GlobalID. """ id: ID! ): Badge! """ Badges on the Network. Newest first by default; sortable by title, member count, or creation time. """ badges( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int """ Sort key. Default: CREATED_AT. """ sortBy: BadgeSort = CREATED_AT """ Sort direction. Default: DESC. """ sortOrder: SortOrder = DESC """ Filter badges to those whose title contains this text (case-insensitive). """ term: String ): BadgeConnection! """ Display name of the Network's current billing plan (e.g. Community Plan). """ billingPlan: String """ Members the current user has blocked or reported. """ blockedMembers( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int ): UserConnection! """ Email addresses blocked from delivery on this Network. Restricted to Network Hosts — other viewers receive an empty connection. On plans without the member-email visibility billing feature, only host-added entries are returned. """ blocklist( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int ): BlocklistEntryConnection! """ The Network's branding image slots, each with the image currently in it. Slots the Network's Imagery settings do not offer appear only when they hold an image. Null to a viewer who may not change the Network's branding. """ brandingImages: [BrandingImage!] """ Comments on a post within the Network """ comments( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int """ GlobalID of the post whose comments to return """ postId: ID! ): CommentConnection! """ Fetch a course by resource ID or GlobalID, scoped to this Network. """ course( """ Course resource ID or GlobalID. Must resolve to a Space in this Network that has course content enabled. """ idOrSlug: String! ): Course """ Courses within the Network, filtered to those visible to the current viewer. """ courses( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int ): CourseConnection """ Fetch a single coursework item (lesson, quiz, section, or overview) by resource ID, URL slug, or GlobalID, scoped to this Network. """ coursework( """ Coursework resource ID, URL slug, or GlobalID. """ idOrSlug: String! ): Coursework createdAt: ISO8601DateTime! """ Features on the Network's current billing plan, with admin-granted overrides. Null when no data. """ currentBillingPlanFeatures: [BillingFeature!] """ Validates a candidate custom domain (format, DNS records, uniqueness) without registering it. """ customDomainCheck( """ Fully qualified domain name to validate. """ domain: String! ): CustomDomainCheckResult! """ Custom domains registered for the Network, newest first. Empty for viewers who are not members. """ customDomains( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int ): CustomDomainConnection! """ Fetch a custom field by numeric resource ID or GraphQL GlobalID, scoped to this Network. """ customField( """ Custom field numeric resource ID or GraphQL GlobalID. """ id: ID! ): CustomField """ Custom fields on the Network, filtered to those the viewer can see. """ customFields( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int """ Optionally filter to a single response type. """ responseType: CustomFieldResponseType ): CustomFieldConnection! """ The Network's default language locale (e.g. en, es_419). Null when it falls back to the platform default. """ defaultLocale: String description: String """ Whether the Network appears in Mighty discovery surfaces and can be found by non-members. """ discoverable: Boolean! """ Event instances scoped to the current Network. Use direction (UPCOMING/PAST) for forward/backward pagination, or pass start_at + end_at for a date range. space_id narrows to a specific flex space within the Network. **Required scopes:** `read:network`, `host:read:network`, `host:read:network_events` (any one) """ events( """ ISO8601 datetime cursor from a previous response. For UPCOMING/range, the lower bound on starts_at; for PAST, the upper bound on starts_at. """ cursor: String """ UPCOMING or PAST. Ignored when both start_at and end_at are provided. Default: UPCOMING. """ direction: EventDirection = UPCOMING """ Upper bound for date-range queries. """ endAt: ISO8601DateTime """ Results per page. Default: 10, maximum: 50. """ perPage: Int = 10 """ Optional GlobalID of a flex space within the Network. When omitted, returns instances across the Network. """ spaceId: ID """ Lower bound for date-range queries. When both start_at and end_at are provided, returns instances within that range. """ startAt: ISO8601DateTime ): [EventInstance!]! """ Whether non-members can preview the Network's content without joining. """ explorable: Boolean! """ The Network's host-toggleable boolean features, each with its current enabled state. Enum-valued settings (e.g. display styles, MFA level) are not included. """ featureToggles: [FeatureToggle!]! """ The activity feed for a Network or space **Required scopes:** `read:network`, `host:read:network` (any one) """ feed( """ Cursor from pageInfo.endCursor for the next page """ after: String """ Menu-driven filter selection: `feedOptions.filters[].id`s. Resolved server-side for the requesting client. Ignored when `filters` is supplied. """ filterIds: [String!] """ Feed filtering and sorting options. The programmatic surface — takes precedence over sortId/filterIds when supplied. """ filters: FeedFilters """ Number of items to return """ first: Int = 20 """ Feed prompt types to include on the menu-driven path. Omit for all; empty list excludes prompts. Ignored when `filters` is supplied. """ promptTypes: [String!] """ Menu-driven sort selection: a `feedOptions.sorts[].id`. Resolved server-side. Ignored when `filters` is supplied. """ sortId: String ): FeedConnection! """ Discovery-page gallery sections for a container (the Network or a Space), ordered by position, including disabled sections. Default (not-yet-customized) sections have null IDs. """ galleryGroups( """ Optional container — the Network itself or a Space within it — resource ID or GlobalID. Defaults to the Network. """ spaceId: ID ): [GalleryGroup!]! """ Leaderboard of members ranked across all gifts, for a direction (received or sent). All-time only. Null when gifts or leaderboards are disabled, or the viewer cannot see leaderboards. """ giftAggregatedLeaderboard( """ Rank by gifts received or sent. Defaults to received. """ direction: GiftLeaderboardDirection ): GiftLeaderboard """ Built-in gift templates a Host can use to create gifts. Empty for signed-out viewers. """ giftDefinitionTemplates: [GiftDefinitionTemplate!]! """ Gifts (recognitions) members can give one another, in catalog order. Empty for signed-out viewers, and when gifts are disabled for everyone but Hosts. """ giftDefinitions( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int ): GiftDefinitionConnection! """ Leaderboard of members ranked by one gift, for a direction (received or sent) and time window. Null when gifts or leaderboards are disabled, or the viewer cannot see leaderboards. """ giftLeaderboard( """ Rank by gifts received or sent. Defaults to received. """ direction: GiftLeaderboardDirection """ GlobalID of the gift to rank by """ giftDefinitionId: ID! """ Time window to aggregate over. Defaults to all time. """ period: GiftLeaderboardPeriod ): GiftLeaderboard """ A single recognition (gift) by its numeric resource ID. Null when gifts are disabled or the viewer cannot see recognitions; not found raises. """ giftTransaction( """ Numeric resource ID of the recognition (its GiftTransaction ID). """ resourceId: ID! ): Recognition """ Network header image URL. """ headerUrl: String """ The default home Space members land on, if the Network has one configured. """ homeSpace: Space """ The Network Discovery featured-host portrait URL (4:5). Null until a Host uploads one. """ hostHeroImageUrl: String """ ID of the object. """ id: ID! """ Brand colors read out of one of the Network's image assets, as 6-digit hex strings, ordered most dominant first. Empty when the image is not one of the Network's own, is not an image, or carries no color usable as a theme color. Null when the caller is not a Host or Moderator, which means unknown rather than none. """ imageBrandColors( """ ID of an image asset belonging to this Network. """ assetId: ID! ): [String!] """ Fetch an Income Report by ID, scoped to this Network. Network Hosts only. """ incomeReport( """ Income Report ID — resource ID or GlobalID. """ id: ID! ): IncomeReport """ Reporting periods the Network has Income Reports for, newest first. Empty for non-host viewers. Each period spans every platform and currency; pass a period's periodStart to Network.incomeReports to fetch its reports. """ incomeReportPeriods( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int ): IncomeReportPeriodConnection! """ Income Reports in the Network, newest reporting period first. Empty for non-host viewers. Filter by periodStart (an exact reporting-period start, as returned by incomeReportPeriods) to fetch one period's reports across platforms and currencies. """ incomeReports( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int """ Return only reports whose period starts at exactly this time, as returned by incomeReportPeriods. """ periodStart: ISO8601DateTime ): IncomeReportConnection! """ A single invite request by ID. Readable by the requester and by Network/Space Hosts and Moderators; anyone else gets a NOT_FOUND so existence is never leaked. """ inviteRequest( """ ID of the invite request — resource ID or GlobalID. """ id: ID! ): InviteRequest """ Requests to join the Network, a Space, or a Plan. Filter by space_id (omit for Network-level requests), a name/email search term, or only_plan_requests to restrict to purchase-gated requests. Readable by a Host or Moderator of the container the requests belong to; other viewers get an empty connection. """ inviteRequests( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int """ When true, return only purchase-gated (Plan) requests. """ onlyPlanRequests: Boolean = false """ Limit to requests targeting a specific Space — resource ID or GlobalID. Omit for Network-level requests. """ spaceId: ID """ Filter to requests whose requester name or email matches this search term. """ term: String ): InviteRequestConnection! """ Invites sent within the Network, newest first. A viewer sees every invite in a container they host or moderate, plus invites they sent; other members see only invites they sent. Optionally narrow to a single container with space_id, and filter by search term, status, sender, plan, or reminder state. """ invites( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int """ Return only invites to these Payment Plans (Bundle resource IDs or GlobalIDs). """ planIds: [ID!] """ When true, only invites that have been resent at least once; when false, only invites never resent. """ reminded: Boolean """ Return only invites sent by these users (resource IDs or GlobalIDs). """ senderIds: [ID!] """ Field to sort by. Defaults to when the invite was last updated. """ sort: InviteSortField """ Sort direction. Defaults to descending. """ sortOrder: SortOrder """ Optional GlobalID or resource ID of a container — the Network itself or a Space within it. When omitted, returns invites across the whole Network. """ spaceId: ID """ Return only invites in these status buckets. """ statuses: [InviteStatusFilter!] """ Case-insensitive search across recipient and sender names and email addresses. """ term: String ): InviteConnection! """ Whether prospective members can join the Network directly, without an invite or request. """ joinable: Boolean! """ The Space a given audience lands on, or null when none is configured. """ landingSpace( """ Which audience's landing Space to return. """ audience: LandingSpaceAudience! ): Space """ The Network's captured Leads, with email search (term), waitlist/source/status filters, and created-at sort. Readable by Network hosts and moderators — other viewers receive an empty connection. **Required scopes:** `read:network`, `host:read:network` (any one) """ leads( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int """ Sort direction by capture time. Default: DESC (newest first). """ sortOrder: SortOrder = DESC """ Filter to Leads whose signup came from these landing pages — resource IDs or GlobalIDs. """ sourceLandingPageIds: [ID!] """ Filter to Leads whose derived displayed status is one of these values. """ statuses: [LeadDisplayedStatus!] """ Search Leads by email substring, case-insensitive. Ignored for a viewer who cannot read raw Lead emails (see LeadType.email), an application without the `read:userinfo` scope included — searching the plaintext address for them would leak it through matches and totalCount. """ term: String """ Filter to Leads that signed up through these Waitlists — resource IDs or GlobalIDs. """ waitlistIds: [ID!] ): LeadConnection! """ A single livestream by ID; NOT_FOUND when it is not visible to the viewer. """ liveSpace( """ The livestream's resource ID or GlobalID. """ id: ID! ): LiveSpace """ Completed livestreams in the Network, optionally narrowed to one container Space. Hosts see all; members see their own plus those of Spaces they host. """ liveSpaces( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Optionally restrict the listing (e.g. MINE for only the viewer's own livestreams). """ filter: LiveSpaceListFilter """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int """ Optionally narrow to a single container — the Network or a Space within it. Resource ID or GlobalID. """ spaceId: ID """ When true, return only livestreams that have a recording. """ withRecording: Boolean ): LiveSpaceConnection! """ Fetch a Marketing Audience by ID, scoped to this Network. """ marketingAudience( """ Marketing Audience ID — resource ID or GlobalID. """ id: ID! ): MarketingAudience """ Marketing Audiences in the Network, newest first. Empty for non-host viewers. Filter by a term (a case-insensitive substring match on the name) or by statuses (ACTIVE, SUSPENDED, and/or DISABLED; omitting the argument returns all). Sort by NAME or CREATED_AT with sortOrder (ASC or DESC). """ marketingAudiences( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int """ Field to sort by. Defaults to when the Audience was created. """ sort: MarketingAudienceSortField """ Sort direction. Defaults to descending. """ sortOrder: SortOrder """ Filter by status. Omitting the argument returns Audiences of every status. """ statuses: [MarketingAudienceStatus!] """ Filter by a case-insensitive substring match on the Audience name. """ term: String ): MarketingAudienceConnection! """ Fetch a Marketing Banner by ID, scoped to this Network. """ marketingBanner( """ Marketing Banner ID — resource ID or GlobalID. """ id: ID! ): MarketingBanner """ Marketing Banners in the Network, newest first. Empty for non-host viewers. Filter by a term (a case-insensitive substring match on the name or title), by statuses (ACTIVE, SCHEDULED, INACTIVE, EXPIRED, and/or SUSPENDED), and/or by target platforms (ALL, IOS, WEB_AND_ANDROID); omitting a filter returns Banners of every value. Sort by NAME or CREATED_AT with sortOrder (ASC or DESC). """ marketingBanners( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int """ Field to sort by. Defaults to when the Banner was created. """ sort: MarketingBannerSortField """ Sort direction. Defaults to descending. """ sortOrder: SortOrder """ Filter by status. Omitting the argument returns Banners of every status. """ statuses: [MarketingBannerStatus!] """ Filter by target platform. Omitting the argument returns Banners for every platform. """ targetPlatforms: [MarketingBannerTargetPlatform!] """ Filter by a case-insensitive substring match on the Banner name or title. """ term: String ): MarketingBannerConnection! """ Current-month MCP usage summary for this Network. """ mcpUsageSummary: McpUsageSummary! """ Fetch a member of this Network by numeric ID or GraphQL GlobalID. Restricted to Network Hosts and Moderators. **Required scopes:** `read:network`, `host:read:network`, `host:read:network_members` (any one) """ member( """ The member's numeric ID (as used by the Admin API) or GraphQL GlobalID. """ id: ID! ): User """ The Network's member roster with name search (term), filters (role, member type, space, segments), and sorting. Restricted to Network Hosts and Moderators — other viewers receive an empty connection. **Required scopes:** `read:network`, `host:read:network`, `host:read:network_members` (any one) """ members( """ Opaque cursor from pageInfo.endCursor for the next page. """ after: String """ Filter to Ambassadors — members whose referral count has reached the lowest Ambassador level. Results are ordered by referral count, highest first, and sort is fixed to referral count. Cannot be combined with term, role, memberType, spaceId, or segmentIds. """ ambassador: Boolean """ Number of items per page. Default: 25, maximum: 50. """ first: Int = 25 """ Filter by member type, using the consolidated Member Type vocabulary (Network/space host or moderator, full member, or limited member). """ memberType: MemberType """ Filter by role in the Space this roster is scoped to (the Network here). """ role: MembershipRole """ GlobalIDs of Segments — Tags, Badges, and Custom Field choices are all Segment-backed. Members must match at least one Segment per Custom Field group (OR within a field, AND across fields). """ segmentIds: [ID!] """ Sort key. Default: LAST_VISIT. """ sort: MemberSort = LAST_VISIT """ Sort direction. Default: ASC. """ sortOrder: SortOrder = ASC """ GlobalID of a flex space within the Network; filters to members who belong to that Space. """ spaceId: ID """ Search by member name. """ term: String ): MemberConnection! """ Livestreams currently live in the Network, plus the viewer's own still-initializing livestreams. """ onlineLiveSpaces( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int ): LiveSpaceConnection! """ Fetch a Promo Code by ID, scoped to this Network. """ paymentCoupon( """ Promo Code ID — resource ID or GlobalID. """ id: ID! ): PaymentCoupon """ Check whether a Promo Code can be applied to a Payment Plan at checkout. """ paymentCouponValidation( """ Payment Plan ID — resource ID or GlobalID. """ paymentPlanId: ID! """ Price the buyer picked on the Payment Plan — resource ID or GlobalID. Narrows the check to that price point. """ priceId: ID """ The Promo Code the buyer entered. """ promoCode: String! ): PaymentCouponValidation """ Promo Codes in the Network. Empty for non-host viewers. Filter by a term (matched against code or description) or by statuses (passing both, or none, returns all). Sort by status (the default: active first, then newest), creation time, or redemption count. """ paymentCoupons( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int """ Field to sort by. Defaults to status (active first, then newest). """ sort: PaymentCouponSortField """ Sort direction. Defaults to ascending. Ignored when sorting by status. """ sortOrder: SortOrder """ Filter by status. Passing both ACTIVE and INACTIVE, or omitting the argument, returns all. """ statuses: [PaymentCouponStatus!] """ Filter by a case-insensitive substring match on the code or description. """ term: String ): PaymentCouponConnection! """ Configured payment currencies, with the default currency annotated. """ paymentCurrencies: [String!] """ Fetch a Payment Plan by ID, scoped to this Network. **Required scopes:** `read:network`, `host:read:network`, `host:read:network_plans` (any one) """ paymentPlan( """ Payment Plan ID — resource ID or GlobalID. """ id: ID! ): PaymentPlan """ Payment Plans in the Network. Hosts see every plan; members see only plans published to them. Filter by a term (matched against the name or the Host-only internal notes), statuses, or pricing types. Sort by creation time (the default: newest first) or name. **Required scopes:** `read:network`, `host:read:network`, `host:read:network_plans` (any one) """ paymentPlans( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int """ Filter by pricing model. """ pricingTypes: [PaymentPlanPricingType!] """ Field to sort by. Defaults to creation time. """ sort: PaymentPlanSortField """ Sort direction. Defaults to descending for creation time and ascending for name. """ sortOrder: SortOrder """ Filter by status. Omitting the argument returns all but archived plans. """ statuses: [PaymentPlanStatus!] """ Filter by a case-insensitive substring match on the name or internal notes. """ term: String ): PaymentPlanConnection! """ Fetch a member Payment Plan subscription by ID, scoped to this Network. """ paymentSubscription( """ Subscription ID — resource ID or GlobalID. """ id: ID! ): PaymentSubscription """ Subscription groups on the Network. Each lets members switch between distinct Payment Plans. """ paymentSubscriptionGroups: [PaymentSubscriptionGroup!]! """ Member Payment Plan subscriptions in the Network, newest first. A Network Host sees every subscription; a non-host member sees only their own; non-members get an empty connection. Filter by statuses (CANCELED selects canceled subscriptions; other values match active ones), by memberId, or by planIds (Payment Plan Bundle IDs). """ paymentSubscriptions( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int """ Return only subscriptions held by this member — resource ID or GlobalID. """ memberId: ID """ Return only subscriptions to these Payment Plans (Bundle resource IDs or GlobalIDs). """ planIds: [ID!] """ Field to sort by. Defaults to when the subscription was created. """ sort: PaymentSubscriptionSortField """ Sort direction. Defaults to descending. """ sortOrder: SortOrder """ Filter by status. CANCELED selects canceled (archived) subscriptions; other values match non-canceled ones. """ statuses: [PaymentSubscriptionStatus!] ): PaymentSubscriptionConnection! """ Curated pins on the Network's root space for the given list, in curator-set order. **Required scopes:** `read:network`, `host:read:network` (any one) """ pins( """ Which curated list to return. """ list: PinList! ): [Pin!]! """ Fetch a single poll or question by ID, scoped to the current Network. Host-only. """ poll( """ ID of the poll or question — resource ID or GlobalID. """ id: ID! ): Poll! """ The current Network's polls and questions, newest first, optionally filtered to a single container. Host-only. """ polls( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int """ Filter to polls in a single container — a flex space or the Network itself. Resource ID or GlobalID. """ spaceId: ID ): PollConnection! """ Fetch a post by resource ID, URL slug, or GlobalID, scoped to this Network. """ post( """ Post resource ID, URL slug, or GlobalID. """ idOrSlug: String! ): PostInterface """ Posts, events, and polls within the Network, optionally filtered to a single container (Network or flex space) """ posts( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int """ Optional filter to specific post kinds — e.g. [POLL, QUESTION] for polls. When omitted, returns every kind. """ postTypes: [PostType!] """ Optional GlobalID of a container — the Network itself or a flex space within it. When omitted, returns posts across all containers in the Network. """ spaceId: ID """ Optional filter by lifecycle status. Defaults to POSTED. DRAFT and SCHEDULED return only the viewer's own posts; SCHEDULED also includes posts in Spaces where the viewer is a host or moderator. """ statuses: [PostStatus!] ): PostContentConnection! """ Fetch a member one-time Payment Plan purchase by ID, scoped to this Network. """ purchase( """ Purchase ID — resource ID or GlobalID. """ id: ID! ): Purchase """ Member one-time Payment Plan purchases in the Network, newest first. A Network Host sees every purchase; a non-host member sees only their own; non-members get an empty connection. Voided purchases are excluded unless includeVoided is true. Filter by memberId or by planIds (Payment Plan IDs). """ purchases( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Include voided (archived) purchases alongside active ones. Defaults to false. """ includeVoided: Boolean """ Returns the last _n_ elements from the list. """ last: Int """ Return only purchases made by this member — resource ID or GlobalID. """ memberId: ID """ Return only purchases of these Payment Plans — resource IDs or GlobalIDs. """ planIds: [ID!] """ Field to sort by. Defaults to when the purchase was made. """ sort: PurchaseSortField """ Sort direction. Defaults to descending. """ sortOrder: SortOrder ): PurchaseConnection! """ The Network's Big Purpose statement. """ purpose: String """ Fetch a member's quiz attempt by resource ID or GlobalID, scoped to this Network. **Required scopes:** `read:network`, `host:read:network`, `host:read:network_posts` (any one) """ quizAttempt( """ Quiz Attempt resource ID or GlobalID. """ id: ID! ): QuizAttempt """ Quiz attempts across the Network, newest first. Hosts and moderators of a space see every member's attempts in that space (member identity and scores); members see only their own. Empty for signed-out viewers. **Required scopes:** `read:network`, `host:read:network`, `host:read:network_posts` (any one) """ quizAttempts( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int """ Optionally filter to one member — resource ID or GlobalID. """ memberId: ID """ Optionally filter to one quiz — resource ID or GlobalID. """ quizId: ID """ Optionally filter to one or more attempt statuses. """ statuses: [QuizAttemptStatus!] ): QuizAttemptConnection! """ Reactions on a post or comment within the Network """ reactions( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int """ GlobalID of the post or comment whose reactions to return """ targetId: ID! ): ReactionConnection! """ All recognitions (gifts) given in the Network, newest first. Empty when gifts are disabled, and for signed-out viewers unless the Network is explorable. """ recognitions( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int ): RecognitionConnection! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ Posts the current viewer has saved (bookmarked), newest first, optionally filtered to a single container. """ savedPosts( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int """ Optional GlobalID of a container — the Network itself or a flex space within it. When omitted, returns saved posts across all containers in the Network. """ spaceId: ID ): PostContentConnection! """ Search the Network for posts, events, spaces, members, and comments. **Required scopes:** `read:network`, `host:read:network` (any one) """ search( """ Opaque cursor from a previous response. """ after: String """ Number of items per page (max 50). """ first: Int = 20 """ Natural language query or exact phrase. """ query: String! """ Filter by content type. Omit for all types. """ types: [SearchResultType!] ): SearchConnection! """ Fetch a Segment by resource ID or GlobalID, scoped to this Network. """ segment( """ Segment resource ID or GlobalID. """ id: ID! ): Segment """ Segments in the Network, newest first, filtered to those visible to the current viewer. """ segments( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Optionally filter to the Segments of a single custom field — resource ID or GlobalID. """ customFieldId: ID """ Returns the first _n_ elements from the list. """ first: Int """ Optionally filter to one or more Segment flavors. """ flavors: [SegmentFlavor!] """ Returns the last _n_ elements from the list. """ last: Int ): SegmentConnection! """ The mn.co subdomain slug identifying the Network (distinct from the canonical URL). """ slug: String """ Fetch a flex space by resource ID or GlobalID, scoped to this Network. """ space( """ Space resource ID or GlobalID. (Flex spaces have no URL slugs; those are reserved for Networks.) Must resolve to a flex space in this Network. """ idOrSlug: String! ): Space """ Fetch a single Pinned Link on the Network by ID. """ spaceLink( """ ID of the link — resource ID or GlobalID. """ id: ID! ): SpaceLink """ Pinned Links shown in the Network navigation menu, ordered oldest first. Empty when the custom menu link feature is not enabled on the Network. """ spaceLinks: [SpaceLink!]! """ Space templates the Host can pick from when creating a new Space. Includes the Build Your Own template only when the Network has that capability enabled. """ spaceTemplates: [SpaceTemplate!]! """ Spaces within the Network, filtered to those visible to the current viewer. """ spaces( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int ): SpaceConnection """ Spaces Collections in the Network, ordered by sidebar position. Excludes the system collection. Filtered to collections visible to the current viewer. """ spacesCollections: [SpacesCollection!]! """ The Stripe account connected for member payments. Null when none is connected; readable by Network Hosts only. """ stripeAccount: StripeAccount """ Whether the Network has a connected Stripe account. """ stripeConnected: Boolean """ Network subtitle — a short plain-text tagline. """ subtitle: String """ Fetch a single tag on the Network by resource ID or GlobalID. """ tag( """ ID of the tag — resource ID or GlobalID. """ id: ID! ): Tag! """ Tags on the Network. Newest first by default; sortable by title, member count, or creation time. Visible to Network Hosts and Moderators. """ tags( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int """ Sort key. Default: CREATED_AT. """ sortBy: TagSort = CREATED_AT """ Sort direction. Default: DESC. """ sortOrder: SortOrder = DESC """ Filter tags to those whose title contains this text (case-insensitive). """ term: String ): TagConnection! """ The Network's branding theme — its light- and dark-mode colors and font. """ theme: Theme! title: String """ Built-in onboarding steps not yet on the Welcome Checklist, in curator-set order. """ unpinnedOnboardingPointers: [OnboardingPointer!]! updatedAt: ISO8601DateTime! """ Canonical URL of the Network home. """ url: String! """ Fetch a single signup waitlist by ID, scoped to the current Network. Host-only. """ waitlist( """ ID of the waitlist — resource ID or GlobalID. """ id: ID! ): Waitlist! """ Signup waitlists configured for the current Network, newest first. Readable by Network hosts and moderators — other viewers receive an empty connection. """ waitlists( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int ): WaitlistConnection! """ Outbound event webhooks configured for the Network, newest first. """ webhookCallbacks( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int ): WebhookCallbackConnection """ The welcome-checklist items for this Space, in curator-set order, with the viewer's completion state. **Required scopes:** `read:network`, `host:read:network` (any one) """ welcomeChecklistItems: [WelcomeChecklistItem!]! } """ An object with an ID. """ interface Node { """ ID of the object. """ id: ID! } """ A notification surfaced in the recipient's notification center. """ type Notification implements DatabaseRecord & Node { """ Avatar image URL for the notification. """ avatarUrl: String """ ID of the object. """ id: ID! """ Whether this notification has been read. """ isRead: Boolean! """ When this notification last had activity. """ lastActivityAt: ISO8601DateTime """ URL that opens the notification target and marks it as read when visited. """ link: String """ The Network this notification belongs to. """ network: Network! """ The member who received this notification. """ recipient: User! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ The Network or space where this notification was created. """ space: Node """ Notification message. May contain HTML markup; clients are responsible for safe rendering. Matches the web API's `text` attribute. For an HTML-stripped, render-safe variant, strip HTML on your client or use the legacy REST endpoint's `plain_text` field. """ text: String! } """ A paginated list of notifications """ type NotificationConnection { """ Edges with cursors """ edges: [NotificationEdge!]! """ Shorthand: just the notifications """ nodes: [Notification!]! """ Pagination information """ pageInfo: NotificationPageInfo! } """ An edge in the notifications connection """ type NotificationEdge { """ Opaque cursor for this edge """ cursor: String! """ The notification """ node: Notification! } """ How often notification emails are sent. """ enum NotificationEmailFrequency { """ Send emails as activity happens. """ ALL """ Send a single daily digest email. """ DAILY """ Do not send notification emails. """ NONE """ Send a single weekly digest email. """ WEEKLY } """ How a member receives notifications: email, mobile push, both, or none. """ enum NotificationMethod { """ Both email and mobile push notifications. """ ALL """ Email notifications only. """ EMAIL """ No notifications. """ NONE """ Mobile push notifications only. """ PUSH } """ Pagination info for the notifications list """ type NotificationPageInfo { """ Cursor of the last item (pass as 'after' for next page) """ endCursor: String hasNextPage: Boolean! hasPreviousPage: Boolean! """ Cursor of the first item """ startCursor: String } """ A per-topic notification preference and the member's current setting for it. """ type NotificationPreference { """ Localized description of what this preference controls. """ description: String! """ Which notification preference this is. """ key: NotificationPreferenceKey! """ Localized display name for this preference. """ label: String! """ Whether this preference applies to mobile push notifications only, with no email equivalent. """ pushOnly: Boolean! """ Whether the member currently has this preference enabled. """ value: Boolean! } """ A per-topic notification preference a member can turn on or off. """ enum NotificationPreferenceKey { """ Find out when members you referred join the Network, and when you level up. """ ALLOW_AMBASSADOR_NOTIFICATION """ Reactions on posts, articles, questions, polls, and comments you created. """ ALLOW_NOTIFICATION_FOR_CHEER """ Comments on posts, articles, events, questions, and polls you created, and lessons you created or own. """ ALLOW_NOTIFICATION_FOR_COMMENT """ Find out when new course material is published or unlocked. """ ALLOW_NOTIFICATION_FOR_COURSEWORK """ Get updates from the event Host, and reminders when the event is about to start. """ ALLOW_NOTIFICATION_FOR_EVENTS """ Be notified about your recognitions. """ ALLOW_NOTIFICATION_FOR_GAMIFICATION_GIFT_RECEIVED """ Be notified about leaderboard updates and your ranking. """ ALLOW_NOTIFICATION_FOR_GAMIFICATION_LEADERBOARDS """ Be notified about your streaks. """ ALLOW_NOTIFICATION_FOR_GAMIFICATION_STREAKS """ Be notified when a member requests to join a Plan. Only Hosts and moderators see this. """ ALLOW_NOTIFICATION_FOR_INVITE_REQUESTS """ We'll notify you when a Host starts a livestream anywhere in the Network. """ ALLOW_NOTIFICATION_FOR_LIVE_VIDEOS """ Be notified when members gain access to a plan. Only Hosts and moderators see this. This can be noisy when the New Members Joined notification is also enabled. """ ALLOW_NOTIFICATION_FOR_MEMBER_PLAN_PURCHASED """ See when other members tag you directly in a post, comment, or chat. """ ALLOW_NOTIFICATION_FOR_MENTIONS """ Private messages from other members and Hosts. """ ALLOW_NOTIFICATION_FOR_MESSAGING """ Keep tabs on all the activity from the members that matter to you. """ ALLOW_NOTIFICATION_FOR_NEW_FOLLOWED_MEMBERS_POST """ Be notified when a Host makes updates in the Network. """ ALLOW_NOTIFICATION_FOR_NEW_HOST_POST """ Be notified when new members join the Mighty Network. Only Hosts and Moderators see this. """ ALLOW_NOTIFICATION_FOR_NEW_MEMBERS_JOINED """ Get notified about every new post. Careful, this can get noisy. """ ALLOW_NOTIFICATION_FOR_NEW_POST_FROM_ALL """ Comments after your comment or replies after your reply. """ ALLOW_NOTIFICATION_FOR_PARTICIPANT_COMMENT """ Be notified about the results of your polls. """ ALLOW_NOTIFICATION_FOR_POLL_RESULTS """ Messages from other members in a Space. """ ALLOW_NOTIFICATION_FOR_SPACE_MESSAGING """ Be notified when someone signs up to one of your waitlists. """ ALLOW_NOTIFICATION_FOR_WAITLIST_SIGNUP """ Receive a notification each time a member in the network completes their Welcome Checklist. """ ALLOW_NOTIFICATION_FOR_WELCOME_CHECKLIST """ Be notified about new Mighty Networks features and releases. Only Hosts see this. """ ALLOW_NOTIFICATION_FROM_MIGHTY_NETWORKS """ Receive an email notification after a member has deleted or deactivated their account. """ ALLOW_NOTIFICATION_WHEN_USER_LEAVES_NETWORK """ Find out when people near you join, or when there is relevant trending activity. """ ALLOW_SCHEDULED_NOTIFICATION } """ A single per-topic notification preference to turn on or off. """ input NotificationPreferenceOverrideInput { """ Which notification preference to set. """ key: NotificationPreferenceKey! """ Whether to enable (true) or disable (false) the preference. """ value: Boolean! } """ A member's notification settings. Readable only by the member the settings belong to. """ type NotificationSetting implements DatabaseRecord & Node { """ Whether email is delivered as a daily digest rather than as activity happens. """ emailDigest: Boolean! """ How often notification emails are sent. """ emailFrequency: NotificationEmailFrequency! """ Whether email notifications are enabled. """ emailNotificationDelivery: Boolean! """ ID of the object. """ id: ID! """ How the member receives notifications: email, mobile push, both, or none. """ notificationMethod: NotificationMethod! """ The member's per-topic notification preferences, filtered to those that apply to them. """ notificationPreferences: [NotificationPreference!]! """ Whether mobile push notifications are enabled. """ pushNotificationDelivery: Boolean! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! } """ A built-in onboarding step a Host can add to the Welcome Checklist. """ type OnboardingPointer implements DatabaseRecord { """ Web path the step routes to when tapped. """ callToActionUrl: String """ The Space feature this step depends on, if any. """ feature: String """ Human-readable name of the feature this step depends on, if any. """ featureTitle: String """ Whether the step's feature is a member content-creation capability. """ isCreationFeature: Boolean! """ Whether the step can currently be added to the Welcome Checklist (its content type is enabled). """ pinnable: Boolean! """ Ordering position among the built-in steps, lowest first. """ position: Int! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ Display title of the onboarding step. """ title: String! } """ A built-in onboarding pointer surfaced in the welcome checklist (e.g. complete your profile). """ type OnboardingPointerPin implements DatabaseRecord & Node { """ Web path the pointer routes to when tapped. """ callToActionUrl: String """ ID of the object. """ id: ID! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ Display title of the onboarding step. """ title: String! } """ Information about pagination in a connection. """ type PageInfo { """ When paginating forwards, the cursor to continue. """ endCursor: String """ When paginating forwards, are there more items? """ hasNextPage: Boolean! """ When paginating backwards, are there more items? """ hasPreviousPage: Boolean! """ When paginating backwards, the cursor to continue. """ startCursor: String } """ A Promo Code: a discount a Host offers on its Payment Plans. """ type PaymentCoupon implements DatabaseRecord & Node { """ Per-currency fixed discounts. Empty for percentage Promo Codes. """ amountOff: [PaymentCouponAmountOff!]! """ The code a member enters to redeem the discount. """ code: String! """ Whether the discount is a percentage or a fixed amount off. """ couponType: PaymentCouponDiscountType! """ When the Promo Code was created. """ createdAt: ISO8601DateTime! """ Host-facing description of the Promo Code. Plain text. """ description: String """ How long the discount applies: once, forever, or repeating. """ duration: PaymentCouponDuration! """ Number of months a repeating discount applies. Null unless duration is repeating. """ durationInMonths: Int """ ID of the object. """ id: ID! """ Percent off the plan price (0-100). Null for amount-off Promo Codes. """ percentageOff: Int """ Payment Plans the Promo Code is restricted to. Empty when it applies to every plan. """ plans: [PaymentPlan!]! """ Redemptions of this Promo Code, oldest first. Empty for non-host viewers. """ redemptions( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int """ Filter by a case-insensitive substring match on the Payment Plan name or the member's first or last name. """ term: String ): PaymentCouponRedemptionConnection! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ Whether the Promo Code is active or inactive. """ status: PaymentCouponStatus! """ How many times the Promo Code has been redeemed. Null until first computed. """ timesRedeemed: Int """ When the Promo Code was last updated. """ updatedAt: ISO8601DateTime! } """ A per-currency fixed discount on a Promo Code. """ type PaymentCouponAmountOff { """ Three-letter currency code (e.g. usd). """ currency: String! """ Discount amount in the currency's smallest unit (e.g. cents). """ value: Int! } """ A per-currency fixed discount to set on a Promo Code. """ input PaymentCouponAmountOffInput { """ Three-letter currency code (e.g. usd). """ currency: String! """ Discount amount in the currency's smallest unit (e.g. cents). Must be non-negative. """ value: Int! } """ The discount a Promo Code applies, as shown to a buyer at checkout. """ type PaymentCouponCheckout { """ Per-currency fixed discounts. Empty for percentage Promo Codes. """ amountOff: [PaymentCouponAmountOff!]! """ The code the buyer entered to redeem the discount. """ code: String! """ Whether the discount is a percentage or a fixed amount off. """ couponType: PaymentCouponDiscountType! """ How long the discount applies: once, forever, or repeating. """ duration: PaymentCouponDuration! """ Number of months a repeating discount applies. Null unless duration is repeating. """ durationInMonths: Int """ Percent off the plan price (0-100). Null for amount-off Promo Codes. """ percentageOff: Int } """ The connection type for PaymentCoupon. """ type PaymentCouponConnection { """ A list of edges. """ edges: [PaymentCouponEdge] """ A list of nodes. """ nodes: [PaymentCoupon] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ Whether a Promo Code discounts by a percentage or a fixed amount. """ enum PaymentCouponDiscountType { """ A fixed amount off, per currency (see amountOff). """ AMOUNT_OFF """ A percentage off the plan price (see percentageOff). """ PERCENTAGE } """ How long a Promo Code discount applies. """ enum PaymentCouponDuration { """ Applies to every payment for as long as the plan is held. """ FOREVER """ Applies to a single payment. """ ONCE """ Applies for a fixed number of months (see durationInMonths). """ REPEATING } """ An edge in a connection. """ type PaymentCouponEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: PaymentCoupon } """ A single redemption of a Promo Code by a member. """ type PaymentCouponRedemption implements DatabaseRecord & Node { """ Whether the discount has fully applied for this redemption. """ completed: Boolean! """ The Promo Code that was redeemed. """ coupon: PaymentCoupon """ When the redemption occurred. """ createdAt: ISO8601DateTime! """ ID of the object. """ id: ID! """ The member who redeemed the Promo Code. """ member: User """ The Payment Plan the Promo Code was applied to. """ plan: PaymentPlan """ The pricing option within `plan` (the Payment Plan) the member bought. Null when that price point is no longer available. """ price: PaymentPlanPrice """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ The subscription this redemption is tied to. Null for one-time purchase redemptions. """ subscription: PaymentSubscription """ When the redemption record was last updated. """ updatedAt: ISO8601DateTime! } """ The connection type for PaymentCouponRedemption. """ type PaymentCouponRedemptionConnection { """ A list of edges. """ edges: [PaymentCouponRedemptionEdge] """ A list of nodes. """ nodes: [PaymentCouponRedemption] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type PaymentCouponRedemptionEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: PaymentCouponRedemption } """ Field to sort Promo Codes by. """ enum PaymentCouponSortField { """ Sort by when the Promo Code was created. """ CREATED_AT """ Sort by how many times the Promo Code has been redeemed. """ REDEMPTIONS """ Sort by status (active first), then newest first. Ignores sort direction. """ STATUS } """ Whether a Promo Code is active or inactive. """ enum PaymentCouponStatus { """ Active and redeemable. """ ACTIVE """ Deactivated; cannot be redeemed. """ INACTIVE } """ Whether a Promo Code can be applied to a Payment Plan at checkout. """ type PaymentCouponValidation { """ The discount that would be applied. Null when the Promo Code was refused. """ coupon: PaymentCouponCheckout """ Why the Promo Code was refused, phrased for the buyer. Null when valid. """ errorMessage: String """ Whether the Promo Code can be applied. """ valid: Boolean! } """ A host-to-member Payment Plan (a Bundle with pricing) that grants access to one or more Spaces. """ type PaymentPlan implements DatabaseRecord & Node { """ Whether new members require Host approval before joining through this plan. """ approvalEnabled: Boolean! """ Bullet-style list of plan benefits. Empty when the Host has not added any. """ benefits: [String!]! """ When the Payment Plan was created. """ createdAt: ISO8601DateTime! """ Custom description shown to prospective members. Plain text. """ description: String """ Whether the plan is sold to people outside the Network (its landing page grants Network membership). """ external: Boolean! id: ID! """ Host-only note for differentiating plans. Not shown to members. """ internalNotes: String """ Space members land on after joining via this plan. """ landingSpace: SpaceInterface """ Number of members who currently hold this plan. Counts subscribers for a subscription plan and purchasers for a one-time plan; a plan sold both ways counts both. Computed live. """ memberCount: Int """ Whether the plan grants access to more than one Space. """ multiple: Boolean! """ Plan name shown to members. """ name: String! """ Short sales pitch shown to prospective members on the plan's landing surface. Plain text. """ pitch: String """ Pricing options (price points) offered by this plan. """ prices: [PaymentPlanPrice!]! """ Pricing model: free, subscription, one_time, installment, or one_time_installment. """ pricingType: String! """ Screening questions shown during the plan's join flow. Only active questions, in display order. """ profileQuestions( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Filter to a single join flow. Omit to return questions for every context. """ context: ProfileQuestionContext """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int ): ProfileQuestionConnection! """ Whether the join flow asks screening questions. """ profileQuestionsEnabled: Boolean! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ Spaces this plan grants access to, in display order. """ spaces: [SpaceInterface!]! """ Lifecycle status of the plan. """ status: PaymentPlanStatus! """ Tax category the plan's sales are reported under. """ taxCategory: String """ Admin URL where the Host can review and publish this plan. """ url: String! """ Whether members can see this plan. Newly created plans start hidden until the Host publishes them. """ visibleToMembers: Boolean! } """ The connection type for PaymentPlan. """ type PaymentPlanConnection { """ A list of edges. """ edges: [PaymentPlanEdge] """ A list of nodes. """ nodes: [PaymentPlan] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type PaymentPlanEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: PaymentPlan } """ A pricing option (price point) within a Payment Plan, such as a monthly subscription or an installment plan. """ type PaymentPlanPrice implements DatabaseRecord { """ Price charged for this option, in cents. Null when the plan carries no monetary charge. """ amount: Int """ ISO currency code the amount is charged in. """ currency: String! """ Number of payments this plan is split into. Null unless it is an installment plan. """ installmentCount: Int """ Recurring billing cadence, such as month or year. Null for a one-time purchase. """ interval: String """ Whether this is a single one-time purchase rather than a recurring plan. """ isOneTime: Boolean! """ Price point name shown to members, such as Monthly or 3 Monthly Installments. """ name: String! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! } """ One currency/amount pair for a multi-currency Payment Plan price. """ input PaymentPlanPriceInput { """ Price as a decimal string (e.g. "9.99"). """ amount: String! """ Three-letter currency code (e.g. usd, eur). """ currency: String! } """ Pricing model of a Payment Plan. """ enum PaymentPlanPricingType { """ Free to join. """ FREE """ Paid in a fixed number of installments. """ INSTALLMENT """ No payment collected (e.g. approval- or question-gated only). """ NONPAID """ Single one-time purchase. """ ONE_TIME """ Offers both a one-time price and an installment option. """ ONE_TIME_INSTALLMENT """ Recurring subscription. """ SUBSCRIPTION """ Access gated by holding a crypto token. """ TOKEN_GATED } """ One screening question shown to members joining via a Payment Plan. """ input PaymentPlanProfileQuestionInput { """ Whether the member must answer this question to complete the join flow. """ isRequired: Boolean! """ Question text shown to the member. """ text: String! } """ Field to sort Payment Plans by. """ enum PaymentPlanSortField { """ Sort by when the Payment Plan was created. """ CREATED_AT """ Sort by plan name. """ NAME } """ Lifecycle status of a Payment Plan. """ enum PaymentPlanStatus { """ Archived; no longer for sale and hidden from members. """ ARCHIVED """ Approved but not visible to members yet. """ HIDDEN """ A legacy plan predating the current Payment Plan system. """ LEGACY """ Awaiting Apple approval before it can be sold. """ PENDING """ Rejected by Apple review; cannot be sold on iOS. """ REJECTED """ Published and visible to members. """ VISIBLE } """ The platform a member paid through for a subscription. """ enum PaymentPlatform { """ Purchased through an Apple in-app purchase. """ APPLE """ Paid through Stripe (web or mobile web). """ STRIPE """ Paid through a web3 wallet. """ WEB3 } """ A member's subscription to a host's Payment Plan. """ type PaymentSubscription implements DatabaseRecord & Node { """ The amount the member is billed each period, in cents, after any coupon discount. """ amount: Int! """ Whether the subscription is set to end at the close of the current billing period. """ cancelAtPeriodEnd: Boolean! """ When the subscription was canceled. Null while active. """ canceledAt: ISO8601DateTime """ Number of installment payments made so far. Null for subscriptions that are not paid in installments. """ completedInstallments: Int """ When the subscription record was created. """ createdAt: ISO8601DateTime! """ When the current billing period ends. """ currentPeriodEnd: ISO8601DateTime """ When the current billing period started. """ currentPeriodStart: ISO8601DateTime """ When the subscription ended. Null while active. """ endedAt: ISO8601DateTime """ Days left in the past-due grace period before access is revoked. Null unless past due; zero after the period elapses. """ gracePeriodDaysLeft: Int """ ID of the object. """ id: ID! """ Whether this subscription costs nothing. """ isFree: Boolean! """ The member who holds this subscription. """ member: User """ The platform the member paid through. Null for free subscriptions. """ paymentPlatform: PaymentPlatform """ The Payment Plan a pending move will switch to. Null when no move is pending. """ pendingPlan: PaymentPlan """ The Payment Plan this subscription grants access to. """ plan: PaymentPlan """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ When the subscription started. """ start: ISO8601DateTime """ Lifecycle status of the subscription. Briefly null while recovering from an interrupted payment provider sync. """ status: PaymentSubscriptionStatus """ Whether the billed amount includes tax. Null when tax inclusivity is not set. """ taxInclusive: Boolean """ When the free trial ends. Null when there was no trial. """ trialEnd: ISO8601DateTime """ When the free trial started. Null when there was no trial. """ trialStart: ISO8601DateTime } """ The connection type for PaymentSubscription. """ type PaymentSubscriptionConnection { """ A list of edges. """ edges: [PaymentSubscriptionEdge] """ A list of nodes. """ nodes: [PaymentSubscription] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type PaymentSubscriptionEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: PaymentSubscription } """ A Payment Subscription Group — a host-configured set of distinct Payment Plans members can switch between on the same platform. """ type PaymentSubscriptionGroup { """ Payment Plans in the group, in display order. """ bundles: [PaymentPlan!]! id: ID! """ Host-visible group name. """ name: String! """ Platform the group bills on (WEB via Stripe, IOS via Apple). """ platform: PaymentSubscriptionGroupPlatformEnum! } """ A Payment Plan and its position within a Payment Subscription Group. """ input PaymentSubscriptionGroupItemInput { """ Payment Plan to include in the group — resource ID or GlobalID. """ bundleId: ID! """ 1-based display order within the group. Omit to append; positions are normalized after each change. """ position: Int } """ Platform a Payment Subscription Group bills on. Web subscription groups bill via Stripe; iOS groups bill via Apple StoreKit. """ enum PaymentSubscriptionGroupPlatformEnum { """ Apple-backed subscription group (StoreKit checkout). """ IOS """ Stripe-backed subscription group (web checkout). """ WEB } """ Field to sort payment subscriptions by. """ enum PaymentSubscriptionSortField { """ Sort by when the subscription was created. """ CREATED_AT } """ Lifecycle status of a member's Payment Plan subscription. """ enum PaymentSubscriptionStatus { """ Active and paid. """ ACTIVE """ Canceled. """ CANCELED """ Migrated from another platform, not yet activated by the member. """ IMPORTED """ Migrated and active, trialing until the original subscription lapses. """ IMPORTED_TRIALING """ Awaiting the initial payment or card authentication. """ INCOMPLETE """ Card authentication failed and the subscription was canceled. """ INCOMPLETE_CANCELED """ The initial payment was never completed and the subscription expired. """ INCOMPLETE_EXPIRED """ All installments have been paid. """ INSTALLMENTS_COMPLETE """ Payment failed; in its grace period. """ PAST_DUE """ Past due, awaiting card authentication before payment can retry. """ PAST_DUE_INCOMPLETE """ In a free trial period. """ TRIALING """ Trialing, awaiting card authentication (3D Secure). """ TRIALING_INCOMPLETE } type Pin { """ Identifier for this pin. Not refetchable via `node(id:)`. """ id: ID! """ Which curated list this pin belongs to. """ list: PinList! """ Current member count of a Cluster target. Null unless the target is a Cluster. """ memberCount: Int """ Position within its list, lowest first. """ position: Int! """ Bounded preview (up to 4) of a Cluster target's current members. Null unless the target is a Cluster. """ previewMembers: [User!] """ The resource this pin points at. """ target: PinTarget! } """ A curated list of pinned items within a Space, keyed by pin type. """ enum PinList { """ The Featured section shown on a Space's feed. """ FEATURED """ The Members Explore Featured row of highlighted members and Clusters. """ FEATURED_MEMBERS """ The Welcome Checklist section shown to new members. """ WELCOME } """ The resource a pin points at — a post, space, member, Cluster, or onboarding pointer. """ union PinTarget = CustomOnboardingPointerPin | Event | OnboardingPointerPin | Poll | Post | Segment | Space | User """ The kind of resource a pin points at. """ enum PinTargetType { """ A saved audience Cluster (a cluster-flavor Segment). """ CLUSTER """ A host-authored custom onboarding pointer. """ CUSTOM_ONBOARDING_POINTER """ An individual member, addressed by their user ID. """ MEMBER """ A built-in onboarding pointer. """ ONBOARDING_POINTER """ A post (including events and polls). """ POST """ A space. """ SPACE } """ A poll or question post with choices and answer data **Required scopes:** `read:network`, `write:posts`, `write:comments`, `host:read:network`, `host:read:network_posts` (any one) """ type Poll implements DatabaseRecord & Node & PostInterface & Reactable { """ Total number of answers """ answerCount: Int """ Poll answer type (single, multiple, ordered, text) """ answerType: String """ Top answerers across the poll (public-answers polls only) """ answerers: [User!] """ Answers (votes) on this poll, newest first. Empty unless the poll has public answers. """ answers( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Filter to answers for a single choice, by the ID returned in the poll's choices field """ choiceId: ID """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int ): PollAnswerConnection! """ Attached media assets (images, files, videos) """ assets: [Asset!]! """ Deprecated alias for bodyHtml — the post's textual content as HTML. """ body: String @deprecated(reason: "Use bodyHtml for HTML output or bodyText for plain text.") """ HTML content with formatted mentions, hashtags, and links """ bodyHtml: String """ Plain text content (raw, no formatting) """ bodyText: String cheerCount: Int! cheersEnabled: Boolean! """ Poll answer options with vote tallies """ choices: [PollChoice!] commentCount: Int! """ Follow-up question shown after answering """ commentPrompt: String """ Comments on this post """ comments( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int """ When true, return only root comments (exclude replies). Use this for feed views where replies are fetched via each comment's `replies` connection. """ rootOnly: Boolean = false ): CommentConnection commentsEnabled: Boolean! """ Content kind from the underlying NewContent model (e.g. text, link, article, file) """ contentKind: String createdAt: ISO8601DateTime! creator: User """ Link-preview metadata — populated for link-type posts only """ embeddedLink: EmbeddedLink """ Position in the owning space's featured pin list; null when not pinned. """ featuredIndex: Int """ Header/banner image for the post (drives the event card banner). Returns the default-placeholder header when no header asset is set. """ header: PostHeader """ ID of the object. """ id: ID! """ Primary image URL """ imageUrl: String """ True when the post leads with audio, either as the header media or in the body. Never true at the same time as isVideo. A cheap scalar for list views; use primaryMedia to actually render a player. """ isAudio: Boolean! isHostPost: Boolean! """ True when this is a text-answer question rather than a choice poll """ isQuestion: Boolean! """ True when the post's weekly activity score meets the owning space's trending threshold """ isTrending: Boolean! """ True when the post leads with a video (uploaded video asset or video-image override). Never true at the same time as isAudio: audio header media wins, then video, then body audio. """ isVideo: Boolean! lastEditedAt: ISO8601DateTime """ Aspect ratio of the primary image """ mainImageAspectRatio: Float """ Maximum value for continuous/percentage polls """ maxValue: Int """ Minimum value for continuous/percentage polls """ minValue: Int """ Position in the network-level featured pin list; null when not pinned. """ networkFeaturedIndex: Int """ Position in the network-level welcome-checklist pin list; null when not pinned. """ networkWelcomeIndex: Int """ Minimum answers before results are shown """ pollAnswerCountThreshold: Int """ Poll theme color (derived from space/Network) """ pollColor: String """ Poll treatment (list, continuous, percentage, media, binary, swipe) """ pollTreatment: String """ The externally supported poll variant; null for internal-only legacy treatments """ pollType: PollType """ Post type enum (post, article, event, poll, introduction, etc.) """ postType: String! """ The post's hero media upload — native audio or native video attached as the header. Null when the post has no header media; clients branch on the node's presence and type rather than on a boolean. """ primaryMedia: PrimaryMedia """ Whether poll answers are publicly visible """ publicAnswers: Boolean publishedAt: ISO8601DateTime """ Emoji reaction counts grouped by base emoji (skin-tone modifiers are stripped server-side). """ reactions: [ReactionGroup!]! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ Whether the current viewer has saved (bookmarked) this post """ saved: Boolean! slug: String space: Space status: String! """ Space tags associated with this post (used for feed card context) """ tags: [PostTag!]! """ Number of unique text poll answerers (questions only) """ textAnswersCount: Int title: String """ Recent answerers for text polls (questions only) """ topTextPollAnswerers: [User!] updatedAt: ISO8601DateTime! """ Canonical URL of the post. """ url: String! """ Free-text venue or place name, distinct from the street and city address. """ venue: String """ The current viewer's answer to this poll; null when unanswered, signed out, or for text questions (answered via comments) """ viewerAnswer: PollAnswer """ The current member's own mute/hide/report flag on this post, or null if they have none. """ viewerBlacklistType: BlacklistType """ Whether the current viewer has answered — votes for choice/value polls, a root comment for text questions """ viewerHasAnswered: Boolean! """ Position in the owning space's welcome pin list; null when not pinned. """ welcomeIndex: Int } """ A member's answer (vote) on a poll **Required scopes:** `read:network`, `write:posts`, `write:comments`, `host:read:network`, `host:read:network_posts` (any one) """ type PollAnswer implements DatabaseRecord & Node { """ Number of cheers on this answer """ cheerCount: Int! """ The chosen option for choice polls; null for continuous/percentage polls, which carry value """ choice: PollChoice createdAt: ISO8601DateTime! """ ID of the object. """ id: ID! """ The member who answered """ member: User """ The poll this answer belongs to """ poll: Poll """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! updatedAt: ISO8601DateTime! """ The numeric answer for continuous/percentage polls; null for choice polls """ value: Int """ Whether the current viewer has cheered this answer """ viewerHasCheered: Boolean! } """ The connection type for PollAnswer. """ type PollAnswerConnection { """ A list of edges. """ edges: [PollAnswerEdge] """ A list of nodes. """ nodes: [PollAnswer] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type PollAnswerEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: PollAnswer } """ A choice/option in a poll or quiz """ type PollChoice { """ Top answerers for this choice (public-answers polls only) """ answerers: [User!] """ Per-choice color (used by some poll treatments) """ color: String id: ID! """ Whether this is the correct answer (quiz only) """ isCorrect: Boolean """ Display order of the choice (null for the synthetic value buckets of continuous/percentage polls) """ position: Int """ Number of votes for this choice (nil if results not ready) """ tally: Int """ The choice text """ text: String """ Numeric value for ordered continuous/percentage poll choices """ value: Int } """ A poll choice for updatePoll's full-list reconciliation: entries with an ID update (and reposition) the existing choice, entries without an ID are created, and existing choices omitted from the list are deleted along with their votes """ input PollChoiceInput { """ ID of an existing choice, as returned in the poll's choices field """ id: ID """ The choice text """ text: String! } """ The connection type for Poll. """ type PollConnection { """ A list of edges. """ edges: [PollEdge] """ A list of nodes. """ nodes: [Poll] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type PollEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: Poll } """ The externally supported poll variants — mirrors the REST poll_type values """ enum PollType { """ Slider from 0 (cold) to 9 (hot) """ HOT_COLD """ Pick one of up to five choices """ MULTIPLE_CHOICE """ Slider from 0 to 100 percent """ PERCENTAGE """ Open-ended text question, answered with comments """ QUESTION } """ A post or article in a space **Required scopes:** `read:network`, `write:posts`, `write:comments`, `host:read:network`, `host:read:network_posts` (any one) """ type Post implements DatabaseRecord & Node & PostInterface & Reactable { """ Answer count (questions only) """ answerCount: Int """ Attached media assets (images, files, videos) """ assets: [Asset!]! """ Deprecated alias for bodyHtml — the post's textual content as HTML. """ body: String @deprecated(reason: "Use bodyHtml for HTML output or bodyText for plain text.") """ HTML content with formatted mentions, hashtags, and links """ bodyHtml: String """ Plain text content (raw, no formatting) """ bodyText: String cheerCount: Int! cheersEnabled: Boolean! commentCount: Int! """ Comments on this post """ comments( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int """ When true, return only root comments (exclude replies). Use this for feed views where replies are fetched via each comment's `replies` connection. """ rootOnly: Boolean = false ): CommentConnection commentsEnabled: Boolean! """ Content kind from the underlying NewContent model (e.g. text, link, article, file) """ contentKind: String createdAt: ISO8601DateTime! creator: User """ Link-preview metadata — populated for link-type posts only """ embeddedLink: EmbeddedLink """ Position in the owning space's featured pin list; null when not pinned. """ featuredIndex: Int """ Header/banner image for the post (drives the event card banner). Returns the default-placeholder header when no header asset is set. """ header: PostHeader """ ID of the object. """ id: ID! """ Primary image URL """ imageUrl: String """ True when the post leads with audio, either as the header media or in the body. Never true at the same time as isVideo. A cheap scalar for list views; use primaryMedia to actually render a player. """ isAudio: Boolean! isHostPost: Boolean! """ True when the post's weekly activity score meets the owning space's trending threshold """ isTrending: Boolean! """ True when the post leads with a video (uploaded video asset or video-image override). Never true at the same time as isAudio: audio header media wins, then video, then body audio. """ isVideo: Boolean! lastEditedAt: ISO8601DateTime """ Aspect ratio of the primary image """ mainImageAspectRatio: Float """ Position in the network-level featured pin list; null when not pinned. """ networkFeaturedIndex: Int """ Position in the network-level welcome-checklist pin list; null when not pinned. """ networkWelcomeIndex: Int """ Post type enum (post, article, event, poll, introduction, etc.) """ postType: String! """ The post's hero media upload — native audio or native video attached as the header. Null when the post has no header media; clients branch on the node's presence and type rather than on a boolean. """ primaryMedia: PrimaryMedia publishedAt: ISO8601DateTime """ Emoji reaction counts grouped by base emoji (skin-tone modifiers are stripped server-side). """ reactions: [ReactionGroup!]! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ Whether the current viewer has saved (bookmarked) this post """ saved: Boolean! slug: String space: Space status: String! """ Space tags associated with this post (used for feed card context) """ tags: [PostTag!]! title: String updatedAt: ISO8601DateTime! """ Canonical URL of the post. """ url: String! """ Free-text venue or place name, distinct from the street and city address. """ venue: String """ The current member's own mute/hide/report flag on this post, or null if they have none. """ viewerBlacklistType: BlacklistType """ Position in the owning space's welcome pin list; null when not pinned. """ welcomeIndex: Int } """ A post, event, or poll — the content wrapped by a feed item """ union PostContent = Event | Poll | Post """ The connection type for PostContent. """ type PostContentConnection { """ A list of edges. """ edges: [PostContentEdge] """ A list of nodes. """ nodes: [PostContent] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type PostContentEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: PostContent } """ A post's header/banner image (the wide cinema header shown on event cards). Falls back to a deterministic default image when no header asset is set. """ type PostHeader { """ Asset ID of the header image; null for the default fallback. """ id: ID """ Header image URL (sized for display). """ imageUrl: String """ True when this is the default placeholder header (no header asset uploaded). """ isDefault: Boolean! } """ Common fields shared by all post content types (Post, Event, Poll) """ interface PostInterface implements Node & Reactable { """ Attached media assets (images, files, videos) """ assets: [Asset!]! """ Deprecated alias for bodyHtml — the post's textual content as HTML. """ body: String @deprecated(reason: "Use bodyHtml for HTML output or bodyText for plain text.") """ HTML content with formatted mentions, hashtags, and links """ bodyHtml: String """ Plain text content (raw, no formatting) """ bodyText: String cheerCount: Int! cheersEnabled: Boolean! commentCount: Int! """ Comments on this post """ comments( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int """ When true, return only root comments (exclude replies). Use this for feed views where replies are fetched via each comment's `replies` connection. """ rootOnly: Boolean = false ): CommentConnection commentsEnabled: Boolean! """ Content kind from the underlying NewContent model (e.g. text, link, article, file) """ contentKind: String createdAt: ISO8601DateTime! creator: User """ Link-preview metadata — populated for link-type posts only """ embeddedLink: EmbeddedLink """ Position in the owning space's featured pin list; null when not pinned. """ featuredIndex: Int """ Header/banner image for the post (drives the event card banner). Returns the default-placeholder header when no header asset is set. """ header: PostHeader """ ID of the object. """ id: ID! """ Primary image URL """ imageUrl: String """ True when the post leads with audio, either as the header media or in the body. Never true at the same time as isVideo. A cheap scalar for list views; use primaryMedia to actually render a player. """ isAudio: Boolean! isHostPost: Boolean! """ True when the post's weekly activity score meets the owning space's trending threshold """ isTrending: Boolean! """ True when the post leads with a video (uploaded video asset or video-image override). Never true at the same time as isAudio: audio header media wins, then video, then body audio. """ isVideo: Boolean! lastEditedAt: ISO8601DateTime """ Aspect ratio of the primary image """ mainImageAspectRatio: Float """ Position in the network-level featured pin list; null when not pinned. """ networkFeaturedIndex: Int """ Position in the network-level welcome-checklist pin list; null when not pinned. """ networkWelcomeIndex: Int """ Post type enum (post, article, event, poll, introduction, etc.) """ postType: String! """ The post's hero media upload — native audio or native video attached as the header. Null when the post has no header media; clients branch on the node's presence and type rather than on a boolean. """ primaryMedia: PrimaryMedia publishedAt: ISO8601DateTime """ Emoji reaction counts grouped by base emoji (skin-tone modifiers are stripped server-side). """ reactions: [ReactionGroup!]! """ Whether the current viewer has saved (bookmarked) this post """ saved: Boolean! slug: String space: Space status: String! """ Space tags associated with this post (used for feed card context) """ tags: [PostTag!]! title: String updatedAt: ISO8601DateTime! """ Canonical URL of the post. """ url: String! """ The current member's own mute/hide/report flag on this post, or null if they have none. """ viewerBlacklistType: BlacklistType """ Position in the owning space's welcome pin list; null when not pinned. """ welcomeIndex: Int } """ Lifecycle status for posts and polls — a create/update input or a Network.posts query filter """ enum PostStatus { """ Saved but not published """ DRAFT """ Published immediately (default) """ POSTED """ Published automatically at publishedAt """ SCHEDULED } """ A space tag associated with a post (used to show space context in feed cards) """ type PostTag implements DatabaseRecord & Node { avatarDarkModeUrl: String avatarUrl: String """ ID of the object. """ id: ID! """ Display name (space title) """ name: String! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ The tag type (e.g. FlexSpace) """ type: String! } """ The kind of post — mirrors the REST post_types filter values """ enum PostType { ANNOUNCEMENT ARTICLE COURSEWORK EVENT EVENT_PAGE INTRODUCTION POLL POST QUESTION QUIZ_QUESTION SPACE_PAGE } """ The post's hero media upload — the native audio or native video a Host attached as the header. Absent when the post has no header media. """ type PrimaryMedia { """ Asset ID of the artwork, and the handle for taking it off: the cover is an asset in its own right, so removing it means archiving that asset. Null when the attachment carries no artwork. """ coverImageId: ID """ Artwork for the player. Null when the attachment carries none. """ coverImageUrl: String """ Asset ID to pass to the native playback endpoints. Null when the slot holds a raw upload with no delivery rendition. """ externalAssetId: ID """ Asset ID of the attachment. """ id: ID! """ Medium and delivery format of the attachment: `audio/hls` or `video/hls`. Picks the player; not a MIME type. """ type: String! """ HLS manifest URL. Null while the transcode has published nothing yet — show a processing placeholder rather than a player. """ url: String } """ A private conversation carrying a chat timeline — a direct message or a thread """ interface PrivateConversation implements Conversation { """ When the viewer bookmarked this conversation, or null when it is not bookmarked """ bookmarkedAt: ISO8601DateTime """ ID of the object. """ id: ID! """ When the most recent message was sent """ lastChatAt: ISO8601DateTime """ The most recent message in the conversation """ lastMessage: PrivateMessage """ Messages in this conversation, newest first. System messages (renames, member changes) are excluded unless includeSystemMessages is true. """ messages( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Include system lifecycle messages (renames, member adds and removes). Defaults to false. """ includeSystemMessages: Boolean = false """ Returns the last _n_ elements from the list. """ last: Int ): PrivateMessageConnection! """ Members of the conversation """ participants: [User!] """ Display title — the group name or member names for direct messages, the space title for space chats, or a preview of the parent message for threads """ title: String """ Number of messages the viewer has not read in this conversation """ unreadCount: Int! } """ A paginated list of the viewer's direct messages """ type PrivateConversationConnection { """ Edges with cursors """ edges: [PrivateConversationEdge!]! """ Shorthand: just the conversations """ nodes: [PrivateConversation!]! """ Pagination information """ pageInfo: PrivateConversationPageInfo! } """ An edge in the direct-messages connection """ type PrivateConversationEdge { """ Opaque cursor for this edge """ cursor: String! """ The conversation """ node: PrivateConversation! } """ Pagination info for the direct-messages list """ type PrivateConversationPageInfo { """ Cursor of the last item (pass as 'after' for next page) """ endCursor: String hasNextPage: Boolean! hasPreviousPage: Boolean! """ Cursor of the first item """ startCursor: String } """ A message within a private direct-message conversation or thread **Required scopes:** `read:chats`, `write:chats` (any one) """ type PrivateMessage implements DatabaseRecord & Message & Node & Reactable { """ Who authored the message """ actorType: ChatActorType! """ Attached artifact (e.g. a Cohost-generated HTML page), when present """ artifact: Artifact """ File attachments (images, documents, audio, video) """ assets: [Asset!] """ The conversation this message belongs to """ conversation: PrivateConversation createdAt: ISO8601DateTime! """ Link-preview metadata when the message contains a link """ embeddedLink: EmbeddedLink """ ID of the object. """ id: ID! """ When the most recent reply was sent, or null when the message has no replies """ lastReplyAt: ISO8601DateTime """ Emoji reaction counts grouped by base emoji (skin-tone modifiers are stripped server-side). """ reactions: [ReactionGroup!]! """ Number of replies in the thread rooted at this message """ replyCount: Int! """ Parent message (null for root messages) """ replyTo: PrivateMessage """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ HTML content; internal classes and attributes are stripped on external API surfaces """ textHtml: String """ Plain text content with HTML stripped """ textText: String """ Title of the thread rooted at this message, or null when the message has no thread """ threadTitle: String updatedAt: ISO8601DateTime! """ The member who sent the message; null when the author no longer resolves """ user: User } """ The connection type for PrivateMessage. """ type PrivateMessageConnection { """ A list of edges. """ edges: [PrivateMessageEdge] """ A list of nodes. """ nodes: [PrivateMessage] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type PrivateMessageEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: PrivateMessage } """ A profile question shown to a prospective member during a join flow. """ type ProfileQuestion implements DatabaseRecord & Node { """ The join flow this question belongs to. """ context: ProfileQuestionContext! """ ID of the object. """ id: ID! """ Sort position within its owner and context; lower positions show first. """ position: Int """ Whether an answer is required to complete the join flow. """ required: Boolean! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ The question prompt shown to the prospective member. """ text: String! } """ A member's answer to a profile question. """ type ProfileQuestionAnswer implements DatabaseRecord & Node { createdAt: ISO8601DateTime! """ ID of the object. """ id: ID! """ The member who provided this answer. """ member: User """ The question being answered. """ profileQuestion: ProfileQuestion """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ The member's free-text answer. """ text: String } """ The connection type for ProfileQuestionAnswer. """ type ProfileQuestionAnswerConnection { """ A list of edges. """ edges: [ProfileQuestionAnswerEdge] """ A list of nodes. """ nodes: [ProfileQuestionAnswer] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type ProfileQuestionAnswerEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: ProfileQuestionAnswer } """ An answer to a single profile question. """ input ProfileQuestionAnswerInput { """ ID of the question being answered — resource ID or GlobalID. """ profileQuestionId: ID! """ The member's free-text answer. Required questions must have a non-blank answer. """ text: String } """ The connection type for ProfileQuestion. """ type ProfileQuestionConnection { """ A list of edges. """ edges: [ProfileQuestionEdge] """ A list of nodes. """ nodes: [ProfileQuestion] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ The join flow a profile question belongs to. """ enum ProfileQuestionContext { """ The fallback question used when no custom questions are configured. """ DEFAULT """ Asked during the join flow. """ JOIN """ Asked when a prospective member requests access to a private space or Network. """ REQUEST_ACCESS } """ An edge in a connection. """ type ProfileQuestionEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: ProfileQuestion } """ A profile question to create or update on a Space's or plan's join flow. """ input ProfileQuestionInput { """ The join flow this question belongs to. """ context: ProfileQuestionContext! """ ID of an existing question to update — resource ID or GlobalID. Omit to create a new question. """ id: ID """ Whether an answer is required to complete the join flow. """ required: Boolean = false """ The question prompt shown to the prospective member. """ text: String! } """ A public conversation carrying a chat timeline — a chat-enabled space """ interface PublicConversation implements Conversation { """ When the viewer bookmarked this conversation, or null when it is not bookmarked """ bookmarkedAt: ISO8601DateTime """ ID of the object. """ id: ID! """ When the most recent message was sent """ lastChatAt: ISO8601DateTime """ The most recent message in the conversation """ lastMessage: ChatMessage """ Messages in this conversation, newest first. System messages (renames, member changes) are excluded unless includeSystemMessages is true. """ messages( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Include system lifecycle messages (renames, member adds and removes). Defaults to false. """ includeSystemMessages: Boolean = false """ Returns the last _n_ elements from the list. """ last: Int ): ChatMessageConnection! """ Display title — the group name or member names for direct messages, the space title for space chats, or a preview of the parent message for threads """ title: String """ Number of messages the viewer has not read in this conversation """ unreadCount: Int! } """ A paginated list of the viewer's public conversations """ type PublicConversationConnection { """ Edges with cursors """ edges: [PublicConversationEdge!]! """ Shorthand: just the conversations """ nodes: [PublicConversation!]! """ Pagination information """ pageInfo: PublicConversationPageInfo! } """ An edge in the public conversations connection """ type PublicConversationEdge { """ Opaque cursor for this edge """ cursor: String! """ The conversation """ node: PublicConversation! } """ Pagination info for the public conversations list """ type PublicConversationPageInfo { """ Cursor of the last item (pass as 'after' for next page) """ endCursor: String hasNextPage: Boolean! hasPreviousPage: Boolean! """ Cursor of the first item """ startCursor: String } """ Autogenerated input type of PublishCoursework """ input PublishCourseworkInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Also publish all of the item's children. """ enableAll: Boolean = false """ Coursework identifier — resource ID or GlobalID. """ id: ID! """ Notify all members that the content is available. """ notifyAllMembers: Boolean = false } """ Autogenerated return type of PublishCoursework. """ type PublishCourseworkPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String coursework: Coursework errors: [String!]! } """ Autogenerated input type of PublishCustomDomain """ input PublishCustomDomainInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the custom domain — resource ID or GlobalID. """ id: ID! } """ Autogenerated return type of PublishCustomDomain. """ type PublishCustomDomainPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String customDomain: CustomDomain errors: [String!]! } """ Autogenerated input type of PublishPaymentPlan """ input PublishPaymentPlanInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Payment Plan ID — resource ID or GlobalID. """ id: ID! } """ Autogenerated return type of PublishPaymentPlan. """ type PublishPaymentPlanPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! paymentPlan: PaymentPlan } """ A member's one-time purchase of a host's Payment Plan. """ type Purchase implements DatabaseRecord & Node { """ The amount the member paid, in cents, after any coupon discount. Null when the price point no longer exists. """ amount: Int """ The Promo Code redemption applied to this purchase. Null when no Promo Code was used. """ couponRedemption: PaymentCouponRedemption """ When the purchase was made. """ createdAt: ISO8601DateTime! """ ISO currency code the amount was charged in. Null when the price point no longer exists. """ currency: String """ The device platform the member purchased on. """ devicePlatform: String """ ID of the object. """ id: ID! """ The member who made this purchase. """ member: User """ The client the member purchased from (for example web, apple, or android). """ paymentClient: String """ The platform the member paid through. """ paymentPlatform: PaymentPlatform """ The Payment Plan this purchase granted access to. """ plan: PaymentPlan """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ Whether tax collection was enabled for the purchase. """ taxEnabled: Boolean """ Whether the paid amount includes tax. Null when tax inclusivity is not set. """ taxInclusive: Boolean """ Tax percentage applied to the purchase. Null when no tax was applied. """ taxPercent: Float """ When the purchase record was last updated. """ updatedAt: ISO8601DateTime! """ When the purchase was voided — the member's access revoked and the record archived. Null while active. """ voidedAt: ISO8601DateTime """ The wallet address that completed a token-gated (web3) purchase. Null for other payment platforms. """ walletAddress: String } """ The connection type for Purchase. """ type PurchaseConnection { """ A list of edges. """ edges: [PurchaseEdge] """ A list of nodes. """ nodes: [Purchase] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type PurchaseEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: Purchase } """ Field to sort purchases by. """ enum PurchaseSortField { """ Sort by when the purchase was made. """ CREATED_AT } """ The query root of this schema """ type Query { """ Look up a Mighty Networks billing plan tier by canonical name (e.g. creator, launch-2026). """ billingPlan( """ Canonical plan identifier (e.g. creator, explore-2026-v2, launch-2026). """ canonicalName: String! ): BillingPlan """ The currently authenticated user """ me: User """ Fetch the current Network's settings, membership, and spaces. """ network: Network! """ Fetches an object given its ID. """ node( """ ID of the object. """ id: ID! ): Node """ Fetches a list of objects given a list of IDs. """ nodes( """ IDs of the objects. """ ids: [ID!]! ): [Node] } """ A member's attempt at a quiz **Required scopes:** `read:network`, `write:posts`, `write:comments`, `host:read:network`, `host:read:network_posts` (any one) """ type QuizAttempt implements DatabaseRecord & Node { """ Answers recorded in this attempt, oldest first """ answers: [PollAnswer!]! """ When the attempt was submitted; null while ongoing """ completedAt: ISO8601DateTime """ Percent of questions answered correctly; set once the attempt is submitted """ correctPercentage: Float createdAt: ISO8601DateTime! """ ID of the object. """ id: ID! """ The member taking the quiz """ member: User """ Passing threshold; null when the quiz has no pass criteria """ minimumCorrectPercentage: Float """ The quiz this attempt is for """ quiz: Coursework """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ Whether correct answers are revealed to the member """ showCorrectChoices: Boolean! """ Lifecycle state of the attempt """ status: QuizAttemptStatus! } """ The connection type for QuizAttempt. """ type QuizAttemptConnection { """ A list of edges. """ edges: [QuizAttemptEdge] """ A list of nodes. """ nodes: [QuizAttempt] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type QuizAttemptEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: QuizAttempt } """ Lifecycle state of a member's quiz attempt """ enum QuizAttemptStatus { """ Submitted, quiz has no pass criteria """ COMPLETED """ Submitted and did not meet the pass criteria """ FAILED """ Canceled by a host before submission """ FORCE_CANCELED """ In progress, not yet submitted """ ONGOING """ Submitted and met the pass criteria """ PASSED } """ Aggregate results for a quiz """ type QuizStats { """ Average number of submitted attempts per member who has submitted at least one. """ averageNumberAttempts: Float! """ Most recent members to pass; null when the quiz has no pass criteria. """ passedAttemptsTopAnswerers: [User!] """ Most recent members to submit an attempt. """ submittedAttemptsTopAnswerers: [User!]! """ Number of attempts that met the pass criteria; null when the quiz has no pass criteria. """ totalPassedAttempts: Int """ Number of submitted attempts across all members. """ totalSubmittedAttempts: Int! } """ An object that supports emoji reactions (e.g. Post, Comment). """ interface Reactable { """ Emoji reaction counts grouped by base emoji (skin-tone modifiers are stripped server-side). """ reactions: [ReactionGroup!]! } """ An individual emoji reaction by a user on a post or comment **Required scopes:** `read:network`, `write:posts`, `write:comments`, `host:read:network` (any one) """ type Reaction implements DatabaseRecord & Node { """ The base emoji without skin tone modifiers """ baseEmoji: String! """ The comment this reaction targets (null when reacting to a post) """ comment: Comment createdAt: ISO8601DateTime! """ The emoji (may include skin tone modifiers) """ emoji: String! """ ID of the object. """ id: ID! """ The post this reaction targets (null when reacting to a comment) """ post: Post """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! space: Space updatedAt: ISO8601DateTime! """ The user who created the reaction """ user: User } """ The connection type for Reaction. """ type ReactionConnection { """ A list of edges. """ edges: [ReactionEdge] """ A list of nodes. """ nodes: [Reaction] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type ReactionEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: Reaction } """ A group of reactions with the same base emoji on a reactable (post, comment, or chat message). Skin-tone modifiers are stripped server-side, so an emoji and its skin-toned variant collapse into the same group. """ type ReactionGroup { """ Number of reactions with this emoji """ count: Int! """ The base emoji character (skin-tone modifiers stripped) """ emoji: String! """ Whether the current viewer has reacted to this target with this emoji """ reactedByViewer: Boolean! } """ A recognition (gift) one member gave another, optionally in the context of a post or comment. """ type Recognition { """ The post, comment, or chat message the gift was given in the context of, when applicable. """ contextTargetable: GiftContextTargetable createdAt: ISO8601DateTime! """ The kind of gift that was given. """ giftDefinition: GiftDefinition """ Avatar/badge icon URL of the recognition. """ giftDefinitionAvatarUrl: String """ Name of the recognition/gift badge. """ giftDefinitionName: String id: ID! """ Optional message from the sender. Visible only to the sender and the receiver. """ message: String """ The member who received the gift. """ receiver: User! """ The member who gave the gift. Null for system-generated gifts. """ sender: User """ URL of the recognition in the Network. """ url: String! } """ The connection type for Recognition. """ type RecognitionConnection { """ A list of edges. """ edges: [RecognitionEdge] """ A list of nodes. """ nodes: [Recognition] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type RecognitionEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: Recognition } """ A human-readable recurrence rule together with the UTC-offset range it applies to. The wording of a recurrence rule depends on the viewer's UTC offset (a weekly event's local weekday shifts across timezones), so clients pick the entry whose offset range contains their own offset. """ type RecurrenceRuleText { """ Upper bound (inclusive) of the UTC offset range, in hours. """ max: Float! """ Lower bound (inclusive) of the UTC offset range, in hours. """ min: Float! """ Human-readable recurrence rule for viewers within this offset range. """ text: String! } """ Autogenerated input type of ReorderCoursework """ input ReorderCourseworkInput { """ Move to the bottom of its sibling list. """ atBottom: Boolean """ Move directly above this sibling item (resource ID or GlobalID). """ atItemId: ID """ Move to the top of its sibling list. """ atTop: Boolean """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Coursework item to move — resource ID or GlobalID. """ id: ID! """ Move under this section or overview, to the bottom (resource ID or GlobalID). """ toParentId: ID } """ Autogenerated return type of ReorderCoursework. """ type ReorderCourseworkPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String coursework: Coursework errors: [String!]! } """ Autogenerated input type of ReorderGalleryGroup """ input ReorderGalleryGroupInput { """ Move the section to the bottom of its page. Mutually exclusive with atTop and atItemId. """ atBottom: Boolean """ ID of a sibling section to insert above. Mutually exclusive with atTop and atBottom. """ atItemId: ID """ Move the section to the top of its page. Mutually exclusive with atBottom and atItemId. """ atTop: Boolean """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the gallery section to move — resource ID or GlobalID. """ galleryGroupId: ID! } """ Autogenerated return type of ReorderGalleryGroup. """ type ReorderGalleryGroupPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! galleryGroup: GalleryGroup } """ Autogenerated input type of ReorderGiftDefinition """ input ReorderGiftDefinitionInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the gift to move — resource ID or GlobalID. """ id: ID! """ 1-based target position within the gift catalog """ position: Int! } """ Autogenerated return type of ReorderGiftDefinition. """ type ReorderGiftDefinitionPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! """ The moved gift """ giftDefinition: GiftDefinition } """ Autogenerated input type of ReorderPin """ input ReorderPinInput { """ Move the pin to the bottom of the list. Mutually exclusive with atTop and atItemId. """ atBottom: Boolean """ ID of a sibling pin to insert above. Mutually exclusive with atTop and atBottom. """ atItemId: ID """ Move the pin to the top of the list. Mutually exclusive with atBottom and atItemId. """ atTop: Boolean """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the pin to move. """ pinId: ID! } """ Autogenerated return type of ReorderPin. """ type ReorderPinPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! """ The reordered pin. Null only when a user-correctable error is returned. """ pin: Pin """ The full pin list this write landed in, post-write, in curator-set order. """ pins: [Pin!]! } """ Autogenerated input type of ReorderSpace """ input ReorderSpaceInput { """ Move the Space to the bottom of its Collection. Mutually exclusive with atTop and atItemId. """ atBottom: Boolean """ ID of a sibling Space to insert above (the Space being moved takes that sibling's position). Mutually exclusive with atTop and atBottom. """ atItemId: ID """ Move the Space to the top of its Collection. Mutually exclusive with atBottom and atItemId. """ atTop: Boolean """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the Space to move. """ spaceId: ID! } """ Autogenerated return type of ReorderSpace. """ type ReorderSpacePayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! space: Space } """ Autogenerated input type of ReorderSpacesCollection """ input ReorderSpacesCollectionInput { """ Move the Collection to the bottom of the Network sidebar. Mutually exclusive with atTop and atItemId. """ atBottom: Boolean """ ID of a sibling Collection to insert above. Mutually exclusive with atTop and atBottom. """ atItemId: ID """ Move the Collection to the top of the Network sidebar. Mutually exclusive with atBottom and atItemId. """ atTop: Boolean """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the Spaces Collection to move. """ collectionId: ID! } """ Autogenerated return type of ReorderSpacesCollection. """ type ReorderSpacesCollectionPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! spacesCollection: SpacesCollection } """ Autogenerated input type of ResendInvite """ input ResendInviteInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID or resource ID of the invite to resend. """ id: ID! } """ Autogenerated return type of ResendInvite. """ type ResendInvitePayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! invite: Invite } """ Autogenerated input type of RevokeInvite """ input RevokeInviteInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID or resource ID of the invite to revoke. """ id: ID! } """ Autogenerated return type of RevokeInvite. """ type RevokeInvitePayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! invite: Invite } """ A member's RSVP for an event **Required scopes:** `read:network`, `write:posts`, `write:comments`, `host:read:network`, `host:read:network_posts`, `host:read:network_events` (any one) """ type Rsvp implements DatabaseRecord & Node { createdAt: ISO8601DateTime! """ The event this RSVP is for """ event: Event """ The specific event instance — present only when instance_at is set """ eventInstance: EventInstance """ ID of the object. """ id: ID! """ Set when the RSVP targets a specific occurrence of a recurring event; null for series-level RSVPs """ instanceAt: ISO8601DateTime """ The member who set the RSVP """ member: User """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ One of: yes, maybe, no """ status: String! updatedAt: ISO8601DateTime! } """ The connection type for Rsvp. """ type RsvpConnection { """ A list of edges. """ edges: [RsvpEdge] """ A list of nodes. """ nodes: [Rsvp] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type RsvpEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: Rsvp } enum RsvpStatus { """ Members who RSVPed maybe """ MAYBE """ Members who RSVPed no """ NO """ Members who have not RSVPed """ NONE """ Members who RSVPed yes """ YES } """ A paginated list of search results """ type SearchConnection { """ Edges with cursors """ edges: [SearchEdge!]! """ Shorthand: just the search results """ nodes: [SearchResult!]! """ Pagination information """ pageInfo: SearchPageInfo! } """ An edge in the search results connection """ type SearchEdge { """ Opaque cursor for this edge """ cursor: String! """ The search result """ node: SearchResult! } """ Pagination info for the search results list """ type SearchPageInfo { """ Cursor of the last edge (pass as 'after' for next page) """ endCursor: String hasNextPage: Boolean! hasPreviousPage: Boolean! """ Cursor of the first edge """ startCursor: String } """ A heterogeneous search hit — a post, event, poll, space, segment, user, or comment. """ union SearchResult = Comment | Event | Poll | Post | Segment | Space | User """ Content types searchable in the Network. """ enum SearchResultType { """ Search for articles """ ARTICLE """ Search for badges """ BADGE """ Search for comments """ COMMENT """ Search for courseworks """ COURSEWORK """ Search for events """ EVENT """ Search for introductions """ INTRODUCTION """ Search for members """ MEMBER """ Search for polls """ POLL """ Search for posts """ POST """ Search for questions """ QUESTION """ Search for segments """ SEGMENT """ Search for spaces """ SPACE } type Segment implements DatabaseRecord & Node { """ URL of the Segment's avatar image, or null when it has none. """ avatarUrl: String """ The Segment's display color as a hex code, or null when unset. Visible to hosts and moderators only. """ color: String createdAt: ISO8601DateTime! """ The member who created this Segment, or null when none is recorded. """ creator: User """ The custom field this Segment is an option of, for tag, badge, and choice Segments. """ customField: CustomField """ Plain-text description of the Segment (up to 200 characters). Not HTML. """ description: String """ What this Segment represents (cluster, tag, badge, or choice). """ flavor: SegmentFlavor! """ ID of the object. """ id: ID! """ Whether a member created this Segment, rather than a host. """ isAdHoc: Boolean! """ Whether this Segment is currently pinned to the Network's Featured Members list (Members Explore). Curation state, so host/moderator-only like the mutations that change it. Null for non-managers. """ isPinnedToFeaturedMembers: Boolean """ Always null; no Segment flavor currently populates this field. """ lastActivityAt: ISO8601DateTime """ Number of members currently in the Segment. Computed live. """ memberCount: Int """ Bounded preview (up to 30) of the Segment's current members, from active memberships. The authoritative size is `memberCount`, not this list's length. """ members: [User!]! """ The PME cluster ID ("clu_") this Segment was saved from, or null when the Segment isn't a cluster. Distinct from `resourceId`: `Network.pmeCluster(id:)` and the `/clusters/:cluster_id` route key off this PME ID, not the Segment's database ID. """ pmeClusterId: ID """ How a saved Cluster was created: "suggested", "custom", or null when unset. """ provenance: String """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! title: String! updatedAt: ISO8601DateTime! """ Canonical URL of the Segment. """ url: String! } """ The connection type for Segment. """ type SegmentConnection { """ A list of edges. """ edges: [SegmentEdge] """ A list of nodes. """ nodes: [Segment] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type SegmentEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: Segment } """ What a Segment represents, derived from how it is backed. """ enum SegmentFlavor { """ A badge: a host-managed public option on a badge custom field. """ BADGE """ A selectable option on a dropdown custom field. """ CHOICE """ A saved People Magic cluster. """ CLUSTER """ A tag: a host-managed segmentation option on a tag custom field. """ TAG } """ Sort direction. """ enum SortOrder { """ Ascending order. """ ASC """ Descending order. """ DESC } type Space implements Conversation & DatabaseRecord & Node & PublicConversation & SpaceInterface { """ Dark-mode variant of the avatar image URL. """ avatarDarkModeUrl: String """ Avatar image URL. """ avatarUrl: String """ When the viewer bookmarked this conversation, or null when it is not bookmarked """ bookmarkedAt: ISO8601DateTime """ The Space's branding image slots, each with the image currently in it. Slots the Space's Imagery settings do not offer appear only when they hold an image. Null to a viewer who may not change this Space's branding. """ brandingImages: [BrandingImage!] """ Whether the space is discoverable by non-members (drives welcome-checklist pin eligibility and other visibility-aware UI). """ discoverable: Boolean! """ Whether a non-member can preview the space without joining (drives welcome-checklist routing between preview and join). """ explorable: Boolean! """ The Space's per-Space features (Feed, Course, Chat, Events, Members, Page, Hashtags, Single Event, Discovery), each with whether it is currently enabled on this Space. Same key vocabulary as `Network.availableSpaceFeatures` and `updateSpace(featureToggles:)`; network-wide toggles live on `Network.featureToggles`. """ featureToggles: [FeatureToggle!]! """ ID of the object. """ id: ID! """ When the most recent message was sent """ lastChatAt: ISO8601DateTime """ The most recent message in the conversation """ lastMessage: ChatMessage """ Number of members in the Space. Computed live. """ memberCount: Int """ Messages in this conversation, newest first. System messages (renames, member changes) are excluded unless includeSystemMessages is true. """ messages( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Include system lifecycle messages (renames, member adds and removes). Defaults to false. """ includeSystemMessages: Boolean = false """ Returns the last _n_ elements from the list. """ last: Int ): ChatMessageConnection! """ Curated pins on this Space for the given list, in curator-set order. **Required scopes:** `read:network`, `host:read:network` (any one) """ pins( """ Which curated list to return. """ list: PinList! ): [Pin!]! """ Sort position of the Space within its Collection (lower = higher in the sidebar). Compare positions only between Spaces in the same Collection. """ position: Int """ Posts, events, and polls within the space """ posts( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int ids: [ID!] """ Returns the last _n_ elements from the list. """ last: Int ): PostContentConnection! """ Profile questions shown to prospective members joining this Space. """ profileQuestions( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Filter to a single join flow. Omit to return questions for every context. """ context: ProfileQuestionContext """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int ): ProfileQuestionConnection! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ The Collection this Space belongs to, if any. """ spacesCollection: SpacesCollection title: String! """ Number of messages the viewer has not read in this conversation """ unreadCount: Int! """ Canonical web URL. """ url: String! """ Whether the current member marked this space as not interested (downranked in their feed). """ viewerNotInterested: Boolean! """ The welcome-checklist items for this Space, in curator-set order, with the viewer's completion state. **Required scopes:** `read:network`, `host:read:network` (any one) """ welcomeChecklistItems: [WelcomeChecklistItem!]! } """ The connection type for Space. """ type SpaceConnection { """ A list of edges. """ edges: [SpaceEdge] """ A list of nodes. """ nodes: [Space] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type SpaceEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: Space } """ A Space feature available on the Build Your Own template for the current Network's billing plan. """ type SpaceFeature { """ Stable feature key (e.g., feed, chat). Pass these to create_space as enabled_feature_keys. """ key: String! """ Localized human-readable label for the feature. """ label: String! } """ A single Space feature toggle. Pairs a feature key with the desired enabled state. """ input SpaceFeatureToggleInput { """ True to enable the feature on this Space; false to disable it. """ enabled: Boolean! """ Boolean Space feature key (e.g. feed, chat, events). Must be a boolean feature toggle Hosts can control on this Network's plan; enum-valued settings (display styles, MFA level) are not accepted. """ key: String! } """ Identifies which branding image slot on a Space or Network an image is being set for. """ enum SpaceImageType { """ Network Logo, Light Mode on a Network; Space Logo, Light Mode on a Space. The square logo a Host means by "my logo", "my Network logo", or "my Space logo" — the default choice for any logo request. On a Network it shows in the main navigation bar on web and the navigation tab bar and home title bar in the mobile apps; on a Space it shows in the Navigation Panel, the Space header, and other areas that reference the Space. This is NOT the wide Global Header Brand banner (BRAND_BANNER_ON_COLOR) and NOT the Space Branding Image (BRAND_BANNER_ON_WHITE); both of those are separate, optional slots that replace this logo. Minimum 500 x 500px. """ AVATAR """ Network Logo, Dark Mode on a Network; Space Logo, Dark Mode on a Space. The dark-background counterpart of AVATAR — the same square logo, and the slot to use when a Host asks for a dark mode logo. Minimum 500 x 500px. """ AVATAR_DARK_MODE """ Space Banner in its Full Width - Thin display style — a Space-only strip below the main header that holds a constant height and stretches to the width of the screen. Mutually exclusive with BACKGROUND_IMAGE_BANNER_FIXED_RATIO: setting this one clears that one. Shown to Hosts only on the Advanced Branding billing feature. Minimum 2880 x 150px. """ BACKGROUND_IMAGE_BANNER """ Space Banner in its Fixed Aspect Ratio - Tall display style — a Space-only banner below the main header that keeps its aspect ratio at every screen size. Mutually exclusive with BACKGROUND_IMAGE_BANNER: setting this one clears that one. Shown to Hosts only on the Advanced Branding billing feature. Minimum 2144 x 460px. """ BACKGROUND_IMAGE_BANNER_FIXED_RATIO """ Space Banner, the Include Custom Image for Mobile Apps companion — the iOS and Android variant of the Tall banner. It renders only alongside BACKGROUND_IMAGE_BANNER_FIXED_RATIO, so setting it on a Space using the Thin style leaves an image that never appears. Minimum 2144 x 460px. """ BACKGROUND_IMAGE_BANNER_FIXED_RATIO_MOBILE """ One slot with a different name at each level: on a Network it is Global Header Brand, Dark Mode (the counterpart of BRAND_BANNER_ON_COLOR); on a Space it is Space Branding Image, Dark Mode (the counterpart of BRAND_BANNER_ON_WHITE). Read it as whichever of those two the target is. Shown to Hosts only on the Advanced Branding billing feature. Minimum 1155 x 245px. """ BRAND_BANNER_DARK_MODE """ Global Header Brand, Light Mode — a Network-only slot that REPLACES the Network Logo in the main navigation bar on web and the navigation tab bar in the mobile apps. A wide banner, not a square logo, and shown to Hosts only on the Advanced Branding billing feature. Set it only when the Host names the Global Header Brand or asks for a wide banner across the header; a plain "set my logo" request means AVATAR. Pairs with BRAND_BANNER_DARK_MODE. Minimum 1155 x 245px. """ BRAND_BANNER_ON_COLOR """ Space Branding Image, Light Mode — a Space-only slot that replaces the Space's logo and name in the Space header, always on a white background. Shown to Hosts only on the Advanced Branding billing feature. This is NOT the Network's Global Header Brand (BRAND_BANNER_ON_COLOR) and NOT the Space Logo (AVATAR). Minimum 1155 x 245px. """ BRAND_BANNER_ON_WHITE """ The logo shown on the Network's linked customer site. Part of the customer site settings, not of the Imagery settings, and never what a Host means by their Network logo — that is AVATAR. """ CUSTOMER_SITE_LOGO """ Primary Image or Video, on either a Network or a Space. Appears on the About page and when viewing the Space's Collection. A Host may call it the primary, cover, or About image. Minimum 1920 x 1080px at a 16:9 ratio. """ HEADER """ The Network Discovery featured-host portrait (4:5), shown alongside the Note from the Host on discovery surfaces. Part of Network Discovery, not of the Imagery settings. """ HOST_HERO_IMAGE """ The background image behind a landing page's header. Edited from the landing page itself, not from the Imagery settings. """ LANDING_PAGE_BACKGROUND } """ Common fields shared by Space-backed types (Space, Course). """ interface SpaceInterface implements DatabaseRecord & Node { """ Dark-mode variant of the avatar image URL. """ avatarDarkModeUrl: String """ Avatar image URL. """ avatarUrl: String """ ID of the object. """ id: ID! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! title: String! """ Canonical web URL. """ url: String! } type SpaceLink implements DatabaseRecord & Node { """ ID of the object. """ id: ID! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ Display text of the Pinned Link shown in the Network navigation menu. """ title: String """ Destination the Pinned Link points to. """ url: String } """ A Space template that a Host can pick when creating a new Space. """ type SpaceTemplate { """ Stable identifier for the template (e.g., feed_v3). Pass this to create_space. """ canonicalName: String! """ Localized lines describing what the template sets up. """ descriptionLines: [String!] """ Localized upsell copy shown when the template enables a Premium feature. """ freeTrialPremiumMessage: String """ Whether the Free Trial Premium upsell copy is hidden for this template. """ hideFreeTrialMessage: Boolean """ URL of the template's preview image. """ imageUrl: String """ URL to more information about the template. """ learnMoreLink: String """ Suggested placeholder copy (name and tagline) for the new Space. """ placeholders: SpaceTemplatePlaceholders """ Localized one-line description of the template. """ subtitle: String """ Whether the template applies a preset configuration or starts from scratch. """ templateType: SpaceTemplateType! """ Localized display title of the template. """ title: String! } """ Suggested placeholder copy for a Space created from this template. """ type SpaceTemplatePlaceholders { """ Suggested placeholder name for the new Space. """ spaceName: String """ Suggested placeholder tagline for the new Space. """ spaceTagline: String } """ Whether a Space template applies a preset configuration or starts from scratch. """ enum SpaceTemplateType { """ Creates the Space with no preset configuration. """ FROM_SCRATCH """ Applies a preset configuration of features when creating the Space. """ STANDARD } """ A collection of Spaces grouped together for navigation. """ type SpacesCollection { """ Avatar URLs of the collection's visible spaces (used for link-preview avatar stacks). """ avatarUrls: [String!]! """ Gallery sections on this Spaces Collection page, ordered by position, including disabled sections. """ galleryGroups: [GalleryGroup!]! """ The collection's resource ID. """ id: ID! """ Display name of the collection. """ name: String! """ Canonical URL of the Spaces Collection. """ url: String! """ Whether the collection is visible to members. """ visibleToMembers: Boolean! } """ A streak milestone definition """ type StreakMilestone { """ The streak day threshold for this milestone """ day: Int! """ The emoji shown for this milestone """ emoji: String! } """ The Stripe account a Network connected to sell its Payment Plans through. """ type StripeAccount implements DatabaseRecord & Node { """ ISO code of the Network's default payment currency. Null until a default is chosen. """ defaultCurrency: String """ Display symbol of the Network's default payment currency, such as $. Null until a default is chosen. """ defaultCurrencySymbol: String """ ID of the object. """ id: ID! """ Message of the most recent Stripe connection error. Null when the account is healthy. """ lastError: String """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ Lifecycle status of the Stripe connection. """ status: StripeAccountStatus! """ Stripe's ID for the connected account (the acct_ identifier). """ stripeUserId: String } """ Lifecycle status of a Network's connected Stripe account. """ enum StripeAccountStatus { """ Connected and being verified with Stripe. """ ACTIVATING """ Connected and accepting payments. """ ACTIVE """ Access to the Stripe account was revoked by the Host, so payments cannot be processed until it is reconnected. """ CONNECTION_LOST """ Access to the Stripe account has been revoked. """ DEAUTHORIZED """ Access to the Stripe account is being revoked; wind-down is in progress. """ DEAUTHORIZING """ Payments are disabled; the account is no longer attached to the Network. """ DISABLED """ The Host asked to disable payments; wind-down is in progress. """ DISABLING } """ A hosts-managed label used to categorize and segment members on the Network. """ type Tag implements DatabaseRecord & Node { """ Hex color code for the tag, e.g. #FF5733. """ color: String createdAt: ISO8601DateTime! """ The member who created this tag. """ creator: User """ The tag custom field this tag belongs to. """ customField: CustomField! """ Optional description of the tag. """ description: String """ ID of the object. """ id: ID! """ Number of members who currently hold this tag. Computed live. """ memberCount: Int """ Bounded preview (up to 30) of the members who currently hold this tag, from active memberships. The authoritative size is `memberCount`, not this list's length. """ members: [User!]! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ The tag's display name. """ title: String! updatedAt: ISO8601DateTime! """ Canonical URL of the tag. """ url: String! } """ The connection type for Tag. """ type TagConnection { """ A list of edges. """ edges: [TagEdge] """ A list of nodes. """ nodes: [Tag] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type TagEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: Tag } """ Sort key for tag queries. """ enum TagSort { """ Sort by when the tag was created (default). """ CREATED_AT """ Sort by the number of members who currently hold the tag. """ MEMBER_COUNT """ Sort alphabetically by tag title (case-insensitive). """ TITLE } """ A Network's branding theme — its light- and dark-mode colors and font. """ type Theme { """ Colors used in dark mode. """ darkTheme: ThemeColors! """ The Network's font identifier (e.g. inter). """ font: String! """ Colors used in light mode. """ lightTheme: ThemeColors! } """ A Network branding color scheme — header, button, and link colors as 6-digit hex strings. """ type ThemeColors { """ Button color, as a 6-digit hex string (e.g. #00A78B). """ button: String! """ Header color, as a 6-digit hex string (e.g. #F7F7F7). """ header: String! """ Link color, as a 6-digit hex string (e.g. #00A78B). """ link: String! } """ One color scheme of a Network's branding theme. Every color is a 6-digit hex string including the leading #. """ input ThemeColorsInput { """ Button color, as a 6-digit hex string (e.g. #00A78B). """ button: String! """ Header color, as a 6-digit hex string (e.g. #F7F7F7). """ header: String! """ Link color, as a 6-digit hex string (e.g. #00A78B). """ link: String! } """ What produced a universal action. """ enum UniversalActionSourceKind { """ Produced by a one-off action. """ AD_HOC """ Produced by an automation rule. """ AUTOMATION """ Produced by Cohost. """ COHOST } """ Autogenerated input type of UnpublishCoursework """ input UnpublishCourseworkInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Coursework identifier — resource ID or GlobalID. """ id: ID! } """ Autogenerated return type of UnpublishCoursework. """ type UnpublishCourseworkPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String coursework: Coursework errors: [String!]! } """ Autogenerated input type of UnpublishPaymentPlan """ input UnpublishPaymentPlanInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Payment Plan ID — resource ID or GlobalID. """ id: ID! } """ Autogenerated return type of UnpublishPaymentPlan. """ type UnpublishPaymentPlanPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! paymentPlan: PaymentPlan } """ Autogenerated input type of UpdateAutomationRule """ input UpdateAutomationRuleInput { """ The full set of actions for the rule. Existing actions are matched by ID; omitted ones are removed. """ automationRuleActions: [AutomationRuleActionInput!]! """ An audience and content filter applied before the rule runs. """ automationRuleFilter: AutomationRuleFilterInput """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the automation rule — resource ID or GlobalID. """ id: ID! """ Display name for the rule. """ name: String """ Whether the rule is paused. """ paused: Boolean """ The event that fires the rule. """ trigger: AutomationRuleTrigger! """ Trigger-specific configuration. """ triggerParameters: JSONObject """ The object the trigger is scoped to — resource ID or GlobalID. """ triggerTargetableId: ID """ The kind of object the trigger is scoped to, when it has one. """ triggerTargetableType: AutomationRuleTargetType } """ Autogenerated return type of UpdateAutomationRule. """ type UpdateAutomationRulePayload { automationRule: AutomationRule """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! } """ Autogenerated input type of UpdateBadge """ input UpdateBadgeInput { """ ID of the image asset for the badge — resource ID or GlobalID. """ avatarId: ID """ ID of the badge — resource ID or GlobalID. """ badgeId: ID! """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Hex color code for the badge, e.g. #FF5733. Pass null to clear. """ color: String """ Optional description of the badge. Pass null to clear. """ description: String """ The badge's display name. """ title: String } """ Autogenerated return type of UpdateBadge. """ type UpdateBadgePayload { badge: Badge """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! } """ Autogenerated input type of UpdateComment """ input UpdateCommentInput { """ Comment text (HTML is sanitized server-side) """ body: String! """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID of the comment """ id: ID! } """ Autogenerated return type of UpdateComment. """ type UpdateCommentPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String comment: Comment errors: [String!]! } """ Autogenerated input type of UpdateConversation """ input UpdateConversationInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID of the group conversation """ conversationId: ID! """ New group title. Pass an empty string to clear it and fall back to the member-name title. """ title: String! } """ Autogenerated return type of UpdateConversation. """ type UpdateConversationPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String conversation: PrivateConversation errors: [String!]! } """ Autogenerated input type of UpdateCoursework """ input UpdateCourseworkInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ New completion rule. """ completionCriteria: CourseworkCompletionCriteria """ New body content (HTML). """ description: String """ Coursework identifier — resource ID or GlobalID. """ id: ID! """ Move the item under this section or overview (resource ID or GlobalID). """ parentId: ID """ New visibility status. """ status: CourseworkStatus """ New title. """ title: String """ New unlocking rule. """ unlockingCriteria: CourseworkUnlockingCriteria } """ Autogenerated return type of UpdateCoursework. """ type UpdateCourseworkPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String coursework: Coursework errors: [String!]! } """ Autogenerated input type of UpdateCourseworkProgress """ input UpdateCourseworkProgressInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the coursework item — resource ID or GlobalID. """ courseworkId: ID! """ The progress state to record for the member: VIEWED or COMPLETED. """ state: CourseProgressState! } """ Autogenerated return type of UpdateCourseworkProgress. """ type UpdateCourseworkProgressPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ The member's refreshed progress through the coursework item's course. """ courseProgress: CourseProgress errors: [String!]! } """ Autogenerated input type of UpdateCustomFieldAnswer """ input UpdateCustomFieldAnswerInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Numeric resource ID or GlobalID of the custom field. """ customFieldId: ID! """ Numeric resource ID or GlobalID of the member whose response is being set. """ memberId: ID! """ Titles of new ad-hoc options to create and select, for dropdown fields that allow member-created options. """ newOptionTitles: [String!] """ The option IDs to select, for dropdown fields. Replaces the member's current selection; pass [] to clear. """ optionIds: [ID!] """ The free-text response, for text fields. """ text: String } """ Autogenerated return type of UpdateCustomFieldAnswer. """ type UpdateCustomFieldAnswerPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! response: MemberCustomFieldResponse } """ Autogenerated input type of UpdateCustomField """ input UpdateCustomFieldInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Optional helper text shown with the field. """ description: String """ Numeric resource ID or GlobalID of the custom field. """ id: ID! """ Notify all members when the field becomes visible. """ notifyAllMembers: Boolean """ Optional placeholder shown in the field's input. """ placeholder: String """ Whether this is the Network's primary custom field. """ primary: Boolean """ Whether the field is shown to members. """ status: CustomFieldStatus """ The field's display name. """ title: String } """ Autogenerated input type of UpdateCustomFieldOption """ input UpdateCustomFieldOptionInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Optional description of the option. """ description: String """ Numeric resource ID or GlobalID of the option. """ id: ID! """ The option's display name. """ title: String } """ Autogenerated return type of UpdateCustomFieldOption. """ type UpdateCustomFieldOptionPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! option: CustomFieldOption } """ Autogenerated return type of UpdateCustomField. """ type UpdateCustomFieldPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String customField: CustomField errors: [String!]! } """ Autogenerated input type of UpdateCustomOnboardingPointer """ input UpdateCustomOnboardingPointerInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the custom onboarding pointer to update — resource ID or GlobalID. """ customOnboardingPointerId: ID! """ New display title for the onboarding step. """ title: String! } """ Autogenerated return type of UpdateCustomOnboardingPointer. """ type UpdateCustomOnboardingPointerPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! """ The pointer's Welcome Checklist pin. Null when the pointer is not currently pinned. """ pin: Pin } """ Autogenerated input type of UpdateEvent """ input UpdateEventInput { byDays: [String!] byMonthDays: [String!] """ City of an in-person event — only accepted when the event is local. Supplying street and city derives the event’s coordinates via geocoding. A state/province and postal code may be included after the city name (e.g. "Beverly Hills, California, 90210") to improve geocoding accuracy. Send null to clear it, which is allowed for any event type. """ city: String """ A unique identifier for the client performing the mutation. """ clientMutationId: String description: String endsAt: ISO8601DateTime eventType: String """ The lastEditedAt you loaded before editing, so the server can detect someone else saved a change first. Omit to skip the check. """ expectedLastEditedAt: ISO8601DateTime frequency: String """ ID of an image asset to show as the event header image — resource ID or GlobalID. Upload the image first via POST /networks/:network_id/assets. Any image asset is accepted and takes the style of the slot it lands in, so asset_style=cinema_header is a recommendation, not a requirement. Pass null to drop the current header image. """ headerId: ID """ GlobalID of the event """ id: ID! interval: Int link: String """ Deprecated alias for venue. """ location: String @deprecated(reason: "Use venue.") postInFeed: Boolean recurUntil: ISO8601DateTime recurrenceCount: Int restrictedEvent: Boolean rsvpClosed: Boolean rsvpEnabled: Boolean startsAt: ISO8601DateTime """ Street address of an in-person event — only accepted when the event is local. Supplying street and city derives the event’s coordinates via geocoding. Send null to clear it, which is allowed for any event type. """ street: String """ ID of an image asset to show as the event thumbnail — resource ID or GlobalID. Upload the image first via POST /networks/:network_id/assets. Any image asset is accepted and takes the style of the slot it lands in, so asset_style=square_thumbnail is a recommendation, not a requirement. An asset already styled cinema_header is refused here, as is one also named by headerId — pass either as headerId alone, which the card falls back to anyway. Pass null to drop the current thumbnail, leaving the event to fall back to its header image. """ thumbnailId: ID timeZone: String title: String """ Free-text venue or place name, distinct from the street and city address. It does not contribute to the event’s coordinates — those come from street and city. Send null to clear it. """ venue: String } """ Autogenerated input type of UpdateEventInstance """ input UpdateEventInstanceInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ New end time for this occurrence. """ endsAt: ISO8601DateTime """ ID of the recurring event — resource ID or GlobalID. """ eventId: ID! """ ICS UTC-format occurrence key identifying the occurrence to override (e.g. "20240115T160000Z"). """ instanceIndex: String! """ Whether RSVPs are locked for this occurrence. """ lockRsvps: Boolean """ New start time for this occurrence. """ startsAt: ISO8601DateTime } """ Autogenerated return type of UpdateEventInstance. """ type UpdateEventInstancePayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! eventInstance: EventInstance } """ Autogenerated return type of UpdateEvent. """ type UpdateEventPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! event: Event } """ Autogenerated input type of UpdateGalleryGroup """ input UpdateGalleryGroupInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the gallery section to update — resource ID or GlobalID. """ galleryGroupId: ID! """ Whether the section is shown on the page. """ isEnabled: Boolean! } """ Autogenerated return type of UpdateGalleryGroup. """ type UpdateGalleryGroupPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! galleryGroup: GalleryGroup } """ Autogenerated input type of UpdateGalleryGroups """ input UpdateGalleryGroupsInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ The ordered set of sections. Array order defines position. """ galleryGroups: [GalleryGroupInput!]! """ Optional container — the Network itself or a Space within it — resource ID or GlobalID. Defaults to the Network. """ spaceId: ID } """ Autogenerated return type of UpdateGalleryGroups. """ type UpdateGalleryGroupsPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! galleryGroups: [GalleryGroup!] } """ Autogenerated input type of UpdateGiftDefinition """ input UpdateGiftDefinitionInput { """ Resource ID of an uploaded image asset to set as the new badge. Omit to leave the badge unchanged. """ avatarId: ID """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the gift to update — resource ID or GlobalID. """ id: ID! """ New display name for the gift """ name: String } """ Autogenerated return type of UpdateGiftDefinition. """ type UpdateGiftDefinitionPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! """ The updated gift """ giftDefinition: GiftDefinition } """ Autogenerated input type of UpdateInviteRequest """ input UpdateInviteRequestInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the invite request to update — resource ID or GlobalID. """ id: ID! """ Free-text rejection reason shown to the requester. Required when rejection_type is OTHER. """ rejectionReason: String """ Reason category when rejecting. Must not be set together with an APPROVED status. """ rejectionType: InviteRequestRejectionType """ The decision to apply. Only APPROVED or REJECTED are accepted; any other value is a BAD_USER_INPUT error. """ status: InviteRequestStatus! } """ Autogenerated return type of UpdateInviteRequest. """ type UpdateInviteRequestPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! inviteRequest: InviteRequest } """ Autogenerated input type of UpdateInviteRequests """ input UpdateInviteRequestsInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Requests to exclude from a select_all operation — resource IDs or GlobalIDs. Only valid together with select_all. """ deselectedIds: [ID!] """ When true, act only on purchase-gated (Plan) requests. """ onlyPlanRequests: Boolean = false """ Free-text rejection reason shown to the requesters. Required when rejection_type is OTHER. """ rejectionReason: String """ Reason category when rejecting. Must not be set together with an APPROVED status. """ rejectionType: InviteRequestRejectionType """ Select every pending request in scope. Provide this or selected_ids, not both. """ selectAll: Boolean """ Explicit requests to update — resource IDs or GlobalIDs. Provide this or select_all, not both. """ selectedIds: [ID!] """ ID of the Space whose pending requests to update — resource ID or GlobalID. """ spaceId: ID! """ The decision to apply. Only APPROVED or REJECTED are accepted; any other value is a BAD_USER_INPUT error. """ status: InviteRequestStatus! } """ Autogenerated return type of UpdateInviteRequests. """ type UpdateInviteRequestsPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Number of pending requests enqueued for asynchronous processing. """ count: Int! errors: [String!]! } """ Autogenerated input type of UpdateMarketingBanner """ input UpdateMarketingBannerInput { """ Label of the call-to-action button. """ buttonText: String """ URL the call-to-action button links to. Must be https. Cannot be combined with a targetable. """ buttonUrl: String """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ The Banner's body. HTML is sanitized server-side. """ description: String """ When the Banner stops showing. Pass null to clear the end date. """ endsAt: ISO8601DateTime """ Marketing Banner ID — resource ID or GlobalID. """ id: ID! """ Whether the Host has turned the Banner on. Activating is rejected when the Network is at its active-Banner limit. """ isActive: Boolean """ The active Marketing Audience to target — resource ID or GlobalID. """ marketingAudienceId: ID """ The Banner's internal name, shown only to Hosts. """ name: String """ Whether a member can permanently dismiss the Banner. """ permanentlyDismissible: Boolean """ When the Banner starts showing. """ startsAt: ISO8601DateTime """ The platforms the Banner is shown on. """ targetPlatforms: MarketingBannerTargetPlatform """ The entity the Banner targets — a Payment Plan resource ID or GlobalID. Provide together with targetableType. """ targetableId: ID """ The kind of entity the Banner targets. Provide together with targetableId; cannot be combined with buttonUrl. """ targetableType: MarketingBannerTargetableType """ The Banner's headline shown to members. """ title: String } """ Autogenerated return type of UpdateMarketingBanner. """ type UpdateMarketingBannerPayload { banner: MarketingBanner """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! } """ Autogenerated input type of UpdateMember """ input UpdateMemberInput { """ ID of an asset previously uploaded via POST /Networks/:network_id/assets with asset_style=avatar """ avatarId: ID """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Member's email address """ email: String """ Verification code required when changing email """ emailVerificationCode: String """ Member's first name """ firstName: String """ ID of the member — resource ID or GlobalID. """ id: ID! """ Member's last name """ lastName: String """ Member's short bio (max 160 characters) """ shortBio: String } """ Autogenerated return type of UpdateMember. """ type UpdateMemberPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! member: User } """ Autogenerated input type of UpdateMemberReports """ input UpdateMemberReportsInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ True to clear (ignore) the member's abuse reports; false to restore them. """ ignored: Boolean! """ ID of the reported member — resource ID or GlobalID. """ memberId: ID! } """ Autogenerated return type of UpdateMemberReports. """ type UpdateMemberReportsPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! member: User } """ Autogenerated input type of UpdateMembership """ input UpdateMembershipInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID (or numeric ID) of the member whose membership to update. """ memberId: ID! """ The member's new role on the Space this membership joins. """ role: MembershipRole """ ID of the Space whose membership to update — resource ID or GlobalID. Omit for the member's Network membership. """ spaceId: ID } """ Autogenerated return type of UpdateMembership. """ type UpdateMembershipPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! membership: Membership } """ Autogenerated input type of UpdateNetworkImage """ input UpdateNetworkImageInput { """ ID of the image asset to attach. Must be an image asset in the current Network. """ assetId: ID! """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Which branding image slot to set. """ imageType: SpaceImageType! } """ Autogenerated return type of UpdateNetworkImage. """ type UpdateNetworkImagePayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! network: Network } """ Autogenerated input type of UpdateNetwork """ input UpdateNetworkInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ The Network's default language locale (e.g. en, es_419). Pass an empty string to clear it back to the platform default. """ defaultLocale: String """ New Network description. """ description: String """ Whether the Network appears in Mighty discovery surfaces and can be found by non-members. """ discoverable: Boolean """ Whether non-members can preview the Network's content without joining. """ explorable: Boolean """ Host-toggleable boolean features to apply. Each entry pairs a feature key with the desired enabled state; keys must be boolean feature toggles (enum-valued settings like display styles or MFA level are not accepted here). """ featureToggles: [SpaceFeatureToggleInput!] """ Whether prospective members can join the Network directly, without an invite or request. """ joinable: Boolean """ New Big Purpose statement. """ purpose: String """ New Network title. """ title: String } """ Autogenerated input type of UpdateNetworkLandingSpace """ input UpdateNetworkLandingSpaceInput { """ Which audience's landing Space to set or clear. """ audience: LandingSpaceAudience! """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ The Space to use as the landing Space — resource ID or GlobalID. Omit to clear the landing Space for this audience. """ spaceId: ID } """ Autogenerated return type of UpdateNetworkLandingSpace. """ type UpdateNetworkLandingSpacePayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! landingSpace: Space network: Network } """ Autogenerated return type of UpdateNetwork. """ type UpdateNetworkPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! network: Network } """ Autogenerated input type of UpdateNetworkSubdomain """ input UpdateNetworkSubdomainInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ New subdomain label, without the '.mn.co' suffix (e.g. 'my-community'). """ slug: String! } """ Autogenerated return type of UpdateNetworkSubdomain. """ type UpdateNetworkSubdomainPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! network: Network } """ Autogenerated input type of UpdateNetworkTheme """ input UpdateNetworkThemeInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Explicit dark-mode colors. Must be paired with lightTheme. """ darkTheme: ThemeColorsInput """ Explicit light-mode colors. Must be paired with darkTheme. """ lightTheme: ThemeColorsInput """ A single 6-digit hex color (e.g. #00A78B) to build the whole theme from. The header takes this color in both light and dark mode; button and link colors are derived from it. Cannot be combined with lightTheme or darkTheme. """ primaryColor: String } """ Autogenerated return type of UpdateNetworkTheme. """ type UpdateNetworkThemePayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! network: Network } """ Autogenerated input type of UpdateNotification """ input UpdateNotificationInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID of the notification """ id: ID! """ Whether to mark the notification read (true, the default) or unread (false) """ isRead: Boolean = true } """ Autogenerated return type of UpdateNotification. """ type UpdateNotificationPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! notification: Notification } """ Autogenerated input type of UpdateNotificationSetting """ input UpdateNotificationSettingInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ How often notification emails are sent: as activity happens, daily, weekly, or never. """ emailFrequency: NotificationEmailFrequency """ How the member receives notifications: email, mobile push, both, or none. """ notificationMethod: NotificationMethod """ Per-topic notification preferences to turn on or off. """ notificationPreferencesOverrides: [NotificationPreferenceOverrideInput!] } """ Autogenerated return type of UpdateNotificationSetting. """ type UpdateNotificationSettingPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! notificationSetting: NotificationSetting } """ Autogenerated input type of UpdatePaymentCoupon """ input UpdatePaymentCouponInput { """ Per-currency fixed discounts. Add-only: currencies already set cannot be removed (attempting to drop one is rejected). New currencies are added to Stripe. """ amountOff: [PaymentCouponAmountOffInput!] """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ New host-facing description. Plain text. """ description: String """ Promo Code to update — resource ID or GlobalID. """ id: ID! """ Activate or deactivate the Promo Code. This toggles the matching promotion code in Stripe. """ status: PaymentCouponStatus } """ Autogenerated return type of UpdatePaymentCoupon. """ type UpdatePaymentCouponPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! paymentCoupon: PaymentCoupon } """ Autogenerated input type of UpdatePaymentPlan """ input UpdatePaymentPlanInput { """ Spaces to attach to the plan. """ addSpaceIds: [ID!] """ Whether to require Host approval for new members. """ approvalEnabled: Boolean """ Bullet-style list of plan benefits. Replaces the existing list. """ benefits: [String!] """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Custom description for the plan. """ description: String """ Payment Plan ID — resource ID or GlobalID. """ id: ID! """ Host-only note for differentiating plans (max 150 chars). """ internalNotes: String """ Space members land on after joining via this plan — resource ID or GlobalID. """ landingSpaceId: ID """ Plan name shown to members (4-60 characters). """ name: String """ Short sales pitch shown to prospective members on the plan's landing surface. """ pitch: String """ Whether to ask screening questions during the join flow. """ profileQuestionsEnabled: Boolean """ Spaces to detach from the plan. A plan must keep at least one Space. """ removeSpaceIds: [ID!] """ Replace the full set of Spaces the plan grants access to. Ignored when addSpaceIds or removeSpaceIds is passed. """ spaceIds: [ID!] """ Display order for the plan's Spaces. """ spaceIdsOrder: [ID!] """ Tax category the plan's sales are reported under: eservice, standard, or non_taxable. """ taxCategory: String } """ Autogenerated return type of UpdatePaymentPlan. """ type UpdatePaymentPlanPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! paymentPlan: PaymentPlan } """ Autogenerated input type of UpdatePaymentPlanProfileQuestions """ input UpdatePaymentPlanProfileQuestionsInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the Payment Plan whose questions to update — resource ID or GlobalID. """ planId: ID! """ The full set of questions for the plan. Existing questions not included are removed. """ questions: [ProfileQuestionInput!]! } """ Autogenerated return type of UpdatePaymentPlanProfileQuestions. """ type UpdatePaymentPlanProfileQuestionsPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! """ The plan's questions after the update. """ profileQuestions: [ProfileQuestion!] } """ Autogenerated input type of UpdatePaymentSubscriptionGroup """ input UpdatePaymentSubscriptionGroupInput { """ The complete set of Payment Plans the group should contain, with display order. This is a full replace: Plans currently in the group but absent here are removed, and omitting it removes every Plan from a Web group. iOS groups only allow reordering the existing Plans, not adding or removing them. """ bundleGroupItems: [PaymentSubscriptionGroupItemInput!] """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ The Payment Subscription Group to update — resource ID or GlobalID. """ id: ID! """ Host-visible group name. """ name: String! } """ Autogenerated return type of UpdatePaymentSubscriptionGroup. """ type UpdatePaymentSubscriptionGroupPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! paymentSubscriptionGroup: PaymentSubscriptionGroup } """ Autogenerated input type of UpdatePoll """ input UpdatePollInput { """ The full choice list for MULTIPLE_CHOICE polls; omit to leave choices unchanged. Removing a choice deletes its votes. """ choices: [PollChoiceInput!] """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Follow-up question shown after answering """ commentPrompt: String """ The lastEditedAt you loaded before editing, so the server can detect someone else saved a change first. Omit to skip the check. """ expectedLastEditedAt: ISO8601DateTime """ GlobalID of the poll """ id: ID! """ Whether voter identities are publicly listable — cannot be changed once a multiple-choice poll has answers """ publicAnswers: Boolean """ The poll question """ title: String } """ Autogenerated return type of UpdatePoll. """ type UpdatePollPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! poll: Poll } """ Autogenerated input type of UpdatePost """ input UpdatePostInput { """ Replace the post's attached assets with these IDs. Omit to leave them unchanged. """ assetIds: [ID!] """ Post body / description (style HTML only) """ body: String """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ The lastEditedAt you loaded before editing, so the server can detect someone else saved a change first. Omit to skip the check. """ expectedLastEditedAt: ISO8601DateTime """ GlobalID of the post """ id: ID! notify: Boolean = false """ Reschedule the post. Required when status is SCHEDULED. A past timestamp publishes immediately. """ publishedAt: ISO8601DateTime """ Change lifecycle status: POSTED (publish a draft or scheduled post), DRAFT, or SCHEDULED. Omit to leave unchanged. """ status: PostStatus title: String } """ Autogenerated return type of UpdatePost. """ type UpdatePostPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! post: Post } """ Autogenerated input type of UpdateRsvp """ input UpdateRsvpInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ GlobalID of the RSVP """ id: ID! """ For recurring events, the specific occurrence to RSVP to """ instanceAt: ISO8601DateTime """ Optional. When supplied, must match the RSVP's existing member. """ memberId: ID """ One of: yes, maybe, no """ status: String! } """ Autogenerated return type of UpdateRsvp. """ type UpdateRsvpPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! rsvp: Rsvp } """ Autogenerated input type of UpdateSpaceImage """ input UpdateSpaceImageInput { """ ID of the image asset to attach. Must be an image asset in the current Network. """ assetId: ID! """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Which branding image slot to set. """ imageType: SpaceImageType! """ ID of the Space whose branding image is being set. Must be a Space within the current Network, not the Network itself. """ spaceId: ID! } """ Autogenerated return type of UpdateSpaceImage. """ type UpdateSpaceImagePayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! space: Space } """ Autogenerated input type of UpdateSpace """ input UpdateSpaceInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ New one-line description for the Space. """ description: String """ List of boolean feature toggles to apply. Each entry pairs a boolean feature key with the desired enabled state; enum-valued settings are not accepted. """ featureToggles: [SpaceFeatureToggleInput!] """ ID of the Space to update. """ spaceId: ID! """ New title for the Space. """ title: String } """ Autogenerated input type of UpdateSpaceLink """ input UpdateSpaceLinkInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the link — resource ID or GlobalID. """ id: ID! """ New display text of the Pinned Link. """ title: String """ New destination the Pinned Link points to. """ url: String } """ Autogenerated return type of UpdateSpaceLink. """ type UpdateSpaceLinkPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! spaceLink: SpaceLink } """ Autogenerated return type of UpdateSpace. """ type UpdateSpacePayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! space: Space } """ Autogenerated input type of UpdateSpaceProfileQuestions """ input UpdateSpaceProfileQuestionsInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ The full set of questions for the Space. Existing questions not included are removed. """ questions: [ProfileQuestionInput!]! """ ID of the Space whose questions to update — resource ID or GlobalID. """ spaceId: ID! } """ Autogenerated return type of UpdateSpaceProfileQuestions. """ type UpdateSpaceProfileQuestionsPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! """ The Space's questions after the update. """ profileQuestions: [ProfileQuestion!] } """ Autogenerated input type of UpdateSpacesCollection """ input UpdateSpacesCollectionInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the Spaces Collection to update. """ collectionId: ID! """ New name for the Spaces Collection. """ name: String } """ Autogenerated return type of UpdateSpacesCollection. """ type UpdateSpacesCollectionPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! spacesCollection: SpacesCollection } """ Autogenerated input type of UpdateTag """ input UpdateTagInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Hex color code for the tag, e.g. #FF5733. Pass null to clear. """ color: String """ Optional description of the tag. Pass null to clear. """ description: String """ ID of the tag — resource ID or GlobalID. """ tagId: ID! """ The tag's display name. """ title: String } """ Autogenerated return type of UpdateTag. """ type UpdateTagPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! tag: Tag } """ Autogenerated input type of UpdateVideoProgress """ input UpdateVideoProgressInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ How much of the video has been watched, from 0 to 100. """ percentageComplete: Int! """ The current playback position in the video, in seconds. """ positionSeconds: Int! """ ID of the post containing the video — resource ID or GlobalID. """ postId: ID! """ Identifies the embedded video within the post's content (its data-video-id in the post body). This is not a resource ID. """ videoId: ID! } """ Autogenerated return type of UpdateVideoProgress. """ type UpdateVideoProgressPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! """ The member's recorded video progress. """ videoProgress: VideoProgress } """ Autogenerated input type of UpdateWaitlist """ input UpdateWaitlistInput { """ Whether closing the waitlist auto-invites its Leads to the target. Requires a target. """ autoInviteEnabled: Boolean """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Deadline after which the waitlist stops accepting signups, parsed in the Host's time zone (e.g. '2026-07-15 09:00'). Omit to leave unchanged. """ closeAt: String """ Whether the waitlist is closed to new signups. """ closed: Boolean """ Message shown to a Lead after they join the waitlist. """ confirmationMessage: String """ ID of the waitlist to update — resource ID or GlobalID. """ id: ID! """ Fallback redirect for the auto-invite link when the primary destination cannot be built. """ inviteFallbackRedirect: String """ Where the auto-invite link sends a Lead (only meaningful for a Plan target). """ inviteLinkDestination: String """ Message included with the invite sent to Leads when the waitlist auto-invites on close. """ inviteMessage: String """ Host-facing name of the waitlist. """ name: String """ ID of the target (the Network for 'Space', or the Bundle for 'Finance::Payments::Bundle') — resource ID or GlobalID. Set together with target_type. """ targetId: ID """ What the waitlist points at: 'Space' for the Network, 'Finance::Payments::Bundle' for a Plan. Set together with target_id. """ targetType: String } """ Autogenerated return type of UpdateWaitlist. """ type UpdateWaitlistPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! waitlist: Waitlist } """ Autogenerated input type of UpdateWebhookCallback """ input UpdateWebhookCallbackInput { """ Secret sent with each delivery so your endpoint can verify the request """ apiKey: String """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ ID of the webhook callback — resource ID or GlobalID. """ id: ID! """ Events to subscribe to. Pass null to subscribe to every event; an empty list is rejected. """ includedEvents: [WebhookEventType!] """ HTTPS endpoint that receives webhook deliveries """ url: String } """ Autogenerated return type of UpdateWebhookCallback. """ type UpdateWebhookCallbackPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! webhookCallback: WebhookCallback } """ The kind of asset being uploaded via the universal upload API """ enum UploadAssetKind { """ An audio file """ AUDIO """ A generic file attachment (non-media document) """ FILE """ Mighty-hosted native video (managed storage + our transcode pipeline) """ NATIVE_VIDEO } """ The asset_style of the upload target. Drives authorization (each asset kind and style pairing is gated by an ability) and downstream rendering. """ enum UploadAssetStyle { """ Audio media embedded in a body / rich-text field. """ BODY_MEDIA """ A file in a plan/bundle description. """ BUNDLE_DESCRIPTION """ A file attached to a comment or chat message. """ COMMENT """ A video attached to a comment. """ COMMENT_VIDEO """ A course/learning-content video. """ COURSE_VIDEO """ A file in a landing-page description. """ LANDING_PAGE_DESCRIPTION """ A Network landing-page hero video. """ LANDING_PAGE_VIDEO """ A file attached to a post. """ POST """ A file in a post body / rich-text description. """ POST_DESCRIPTION """ The media a content item leads with — native audio or native video. """ PRIMARY_MEDIA """ A file in a space description. """ SPACE_DESCRIPTION """ A post video (top-level Network/space post). """ VIDEO } """ A contiguous byte range of the source file, in offset+length form """ type UploadByteRange { """ Number of bytes in this range """ length: Long! """ 0-indexed byte offset from the start of the source file """ offset: Long! } """ One executable step of the upload plan (one chunk PUT in v1) """ type UploadInstruction { byteRange: UploadByteRange! """ 1-indexed part number (1-10000). """ partNumber: Int! """ How to extract the receipt (etag) from the response — nil if the wire does not return one """ receipt: UploadReceipt request: UploadRequest! } """ Where binary upload bytes flow — server-mediated vs direct-to-storage """ enum UploadMode { """ Client uploads the whole file directly to storage using a single presigned URL. Reserved; no shipped strategy uses this in v1. """ DIRECT_PRESIGNED """ Client uploads each chunk directly to storage using per-part presigned URLs. Reserved; no shipped strategy uses this in v1. """ DIRECT_PRESIGNED_PER_PART """ Bytes flow through Mighty's servers; the server holds the multipart upload and re-emits each chunk to storage. """ SERVER_MEDIATED } """ The destination service for an upload (storage + transcode owner) """ enum UploadProvider { """ Deprecated alias of LEGACY_EXTERNAL. """ KALTURA @deprecated(reason: "Use LEGACY_EXTERNAL.") """ Legacy externally hosted upload + transcode (reserved; the legacy shim is its own controller path, not exposed via universal API in v1) """ LEGACY_EXTERNAL """ Mighty-hosted audio storage (no transcode) """ MIGHTY_AUDIO """ Mighty-hosted file storage (no transcode) """ MIGHTY_FILE """ Mighty-hosted storage + native transcode pipeline """ MIGHTY_VIDEO } """ How the client extracts the per-part receipt (etag, etc.) from the response of an upload instruction """ type UploadReceipt { extractors: [UploadReceiptExtractor!]! } """ A rule for extracting a value from an upload-part response (e.g. part etag) """ type UploadReceiptExtractor { """ The receipt field name to populate """ as: String! """ Where to read the value — 'response_json' or 'response_header' """ from: String! """ The key (for response_json) or header name (for response_header) """ name: String! } """ A per-part upload receipt (part number + ETag) reported back at completion. """ input UploadReceiptInput { """ The ETag the storage backend returned for this uploaded part. """ etag: String! """ 1-indexed part number. """ partNumber: Int! } """ The HTTP request the client must execute when uploading one chunk """ type UploadRequest { body: UploadRequestBody! headers: [UploadRequestHeader!]! """ HTTP method — typically PUT """ method: String! """ Full URL the client must PUT to. Server-mediated strategies emit a relative path; direct-presigned strategies emit an absolute storage URL. """ url: String! } """ Describes the body shape the client must send when executing an upload instruction """ type UploadRequestBody { """ Optional Content-Type the client should send. Strategy-dependent. """ contentType: String """ Body shape — 'raw' for raw bytes (v1 default); reserved values include 'multipart_form'. """ kind: String! } """ A single HTTP header (name/value pair) the client must send when executing an upload instruction """ type UploadRequestHeader { name: String! value: String! } """ An in-flight upload session with executable instructions for the client """ type UploadSession { """ Integer ID of the placeholder asset the upload targets. Clients use this to attach the asset to a downstream post/comment/message via existing asset_ids parameters. """ assetId: ID! """ Status of the placeholder asset (processing / complete / failed). Clients that gate playback / processing UI on the asset lifecycle (e.g. realtime transcode-status subscriptions) should read this field, not `status`. Mirrors the REST complete-upload response's `status` key. """ assetStatus: String! """ Kind-agnostic canonical URL for the session's asset — the video playback URL for NATIVE_VIDEO, the stored file URL for FILE. Clients that don't branch on asset kind should read this instead of `video_url`. """ assetUrl: String """ Version tag of the estimate model, for accuracy attribution. """ estimateModelVersion: String """ Which estimator produced these values (e.g. static). """ estimateSource: String """ Predicted processing duration in seconds. Present from session creation (size-based); nil when unknown. """ estimatedProcessingSeconds: Int expiresAt: ISO8601DateTime! """ GlobalID of the backing session row """ id: ID! instructions: [UploadInstruction!]! """ Maximum number of instructions a client may have in flight simultaneously. Per strategy: server-mediated is always 1, direct-presigned is configurable. Read it rather than assuming a value. """ maxParallel: Int! """ Absolute predicted completion; nil at create (duration unknown), set once completion starts processing. """ predictedCompletionAt: ISO8601DateTime provider: UploadProvider! """ Suggested delay before the first progress poll. """ recommendedPollAfterSeconds: Int """ UUID — the client's bearer for the chunk and session-inspection endpoints """ sessionToken: String! """ Upload-session lifecycle: pending / in_progress / completed / failed / aborted. Distinct from `assetStatus` — on a fresh complete_upload_session, this is COMPLETED but `assetStatus` is still 'processing' until transcoding finishes. """ status: UploadSessionStatus! strategy: UploadStrategy! totalSizeBytes: Long! uploadMode: UploadMode! """ Cumulative bytes already accepted across the session's parts """ uploadedBytes: Long! """ Playback URL of the underlying video asset once it's processed. Nil for sessions whose assets are not videos (none in v1 — all NATIVE_VIDEO uploads); nil before transcode produces a streamable rendition. """ videoUrl: String } """ Current state of an upload session """ enum UploadSessionStatus { """ Cancelled explicitly (by the client) or implicitly (by the expiry sweeper). """ ABORTED """ The multipart upload was finalized and asset processing ran. """ COMPLETED """ An upload-time error tore down the session. """ FAILED """ First chunk has arrived; the multipart upload is open. """ IN_PROGRESS """ Session row created at grant time; no multipart upload started yet. """ PENDING } """ Wire protocol for moving upload bytes from client to storage """ enum UploadStrategy { """ Deprecated alias of LEGACY_MULTIPART_FORM. """ KALTURA_MULTIPART_FORM @deprecated(reason: "Use LEGACY_MULTIPART_FORM.") """ Legacy multipart/form-data wire (shim path). Reserved on the API surface; not exposed via universal API in v1. """ LEGACY_MULTIPART_FORM """ Direct-to-storage multipart via per-part presigned URLs. Serves every direct-presigned kind (native video, file, audio); the resolved provider identifies the kind. """ MULTIPART_PRESIGNED """ Server-mediated multipart: raw-bytes PUT to an internal endpoint; the server re-emits each chunk to storage. """ MULTIPART_SERVER_MEDIATED """ Deprecated alias of MULTIPART_PRESIGNED. """ S3_MULTIPART_PRESIGNED @deprecated(reason: "Use MULTIPART_PRESIGNED.") """ Deprecated alias of MULTIPART_SERVER_MEDIATED. """ S3_MULTIPART_SERVER_MEDIATED @deprecated(reason: "Use MULTIPART_SERVER_MEDIATED.") """ Deprecated alias of SINGLE_PUT. """ S3_SINGLE_PUT @deprecated(reason: "Use SINGLE_PUT.") """ Single presigned PUT to storage for the whole file. Reserved; the existing native-video one-shot path is exposed via REST today. """ SINGLE_PUT } type User implements DatabaseRecord & Node { avatarUrl: String """ Badge Segments assigned to this member. Visibility follows the badge Custom Field's privacy (public, private, or admin-only). """ badges: [Badge!]! """ The viewer's public conversations — chat-enabled spaces — ordered by most recent message. Only the authenticated user can fetch their own conversations. """ conversations( """ Cursor from pageInfo.endCursor for the next page. """ after: String """ Number of items to return. Default: 25, maximum: 50. """ first: Int = 25 ): PublicConversationConnection! """ The current member's own progress through a course. Visible only to the member themselves. """ courseProgress( """ ID of the course — resource ID or GlobalID. """ courseId: ID! ): CourseProgress """ This member's responses to the Network's custom fields, filtered to the fields the viewer may see on this member's profile. """ customFieldResponses( """ Returns the elements in the list that come after the specified cursor. """ after: String """ When true, return only fields the member has actually responded to (has an answer value or at least one selected option). """ answeredOnly: Boolean """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int ): MemberCustomFieldResponseConnection! """ The user's current daily visit streak, including milestone details. """ dailyVisitStreak: DailyVisitStreak """ The viewer's direct messages and (optionally) their threads, ordered by most recent message. Only the authenticated user can fetch their own conversations. **Required scopes:** `read:chats`, `write:chats` (any one) """ directMessages( """ Cursor from pageInfo.endCursor for the next page. """ after: String """ Number of items to return. Default: 25, maximum: 50. """ first: Int = 25 """ If true, threaded reply conversations are included in the list. """ includeThreads: Boolean = false ): PrivateConversationConnection! """ The promotional Marketing Banner currently eligible for the viewer, or null when none applies. """ eligibleMarketingBanner( """ The platform the viewer is on. Defaults to WEB. """ platform: MarketingBannerPlatform = WEB ): MarketingBanner """ The member's email. Members see only their own; Network Hosts and Moderators see member emails only when the Network's plan includes member-emails visibility — plain text for Hosts, obfuscated for Moderators, and only with the member's sharing consent. An OAuth application reads the plain address only with the `read:userinfo` scope and on a plan that includes member-emails visibility, the member's own address included; without the scope every address comes back obfuscated. """ email: String firstName: String """ Number of members this member follows. Counts active members of the Network only. """ followedMemberCount: Int! """ Members this member follows. Limited to active members of the Network, oldest follow first. """ followedMembers( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int ): UserConnection! """ Number of members following this member. Counts active members of the Network only. """ followerCount: Int! """ Members who follow this member. Limited to active members of the Network, oldest follow first. """ followers( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int ): UserConnection! """ Whether this member's daily-visit streak calendar is publicly visible. """ gamificationStreaksPublicCalendarEnabled: Boolean """ Counts of gifts this member has received, grouped by gift. """ giftSummary: [GiftSummaryEntry!]! """ Gifts (recognitions) this member has received, newest first. Empty when gifts are disabled. """ giftsReceived( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int ): RecognitionConnection! """ Gifts (recognitions) this member has given, newest first. Empty when gifts are disabled. """ giftsSent( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int ): RecognitionConnection! """ Whether the viewer has a confirmed mobile app installation. Only present on the viewer's own user. """ hasConfirmedInstallation: Boolean """ Whether the viewer has a registered device that can receive push notifications. Only present on the viewer's own user. """ hasPushEnabled: Boolean """ ID of the object. """ id: ID! """ Whether this member has space access but not a full Network membership. """ isLimitedMember: Boolean! """ When the member joined the Network — the Network membership's creation time, or account creation for Limited Members. """ joinedAt: ISO8601DateTime """ When the member last visited the Network. Restricted to Network Hosts and Moderators. """ lastActiveAt: ISO8601DateTime lastName: String """ FULL_MEMBER when the member holds a Network membership; LIMITED_MEMBER when they belong only to specific Spaces. """ memberType: MemberType """ The member's Membership — the join record carrying role, status, and plan access. Defaults to the Network membership; pass spaceId for the membership in one Space. Null when no membership exists (e.g. the Network membership of a Limited Member). """ membership( """ ID of the Space whose membership to return — resource ID or GlobalID. Omit for the member's Network membership. """ spaceId: ID ): Membership name: String """ The member's role on the Network itself. Null for Limited Members, whose memberships are per-Space only. """ networkRole: MembershipRole """ The viewer's own notification settings. Only present on the viewer's own user; null when they have no settings row yet. """ notificationSetting: NotificationSetting """ Notifications surfaced in the authenticated user's notification center, newest first. Only the authenticated user can fetch their own notifications. """ notifications( """ Cursor from pageInfo.endCursor for the next page. """ after: String """ Number of items to return. Default: 25, maximum: 50. """ first: Int = 25 """ If true, return only unread notifications. If false, return only read notifications. Omit to return both. """ unread: Boolean ): NotificationConnection! """ Social links the member added to their profile. Returns the most recently added (up to 10), ordered oldest first. """ personalLinks: [EmbeddedLink!]! """ The member's primary profile field value (e.g. a custom field like "Snowboarder"). Null when the member has no primary profile field. """ primaryProfileFieldLabel: String """ Whether this member has private (1:1) chat enabled. """ privateChatEnabled: Boolean """ This member's answers to profile questions. Visible only to the member themselves and to Network hosts and moderators. """ profileQuestionAnswers( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int ): ProfileQuestionAnswerConnection! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ The member's short bio (max 160 characters). """ shortBio: String """ Spaces within the Network this member belongs to. Restricted to the member themselves and Network Hosts/Moderators; empty for other viewers. """ spaces( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int ): SpaceConnection! """ Tags assigned to this member. Visibility follows the tag Custom Field's privacy (public, private, or admin-only). """ tags: [Tag!]! """ The current member's own video-watch progress for a post. Visible only to the member themselves; other viewers get an empty list. """ videoProgresses( """ Returns the elements in the list that come after the specified cursor. """ after: String """ Returns the elements in the list that come before the specified cursor. """ before: String """ Returns the first _n_ elements from the list. """ first: Int """ Returns the last _n_ elements from the list. """ last: Int """ ID of the post — resource ID or GlobalID. """ postId: ID! ): VideoProgressConnection! } """ The connection type for User. """ type UserConnection { """ A list of edges. """ edges: [UserEdge] """ A list of nodes. """ nodes: [User] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type UserEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: User } type VideoProgress implements DatabaseRecord & Node { createdAt: ISO8601DateTime! """ ID of the object. """ id: ID! """ How much of the video the member has watched, from 0 to 100. """ percentageComplete: Int! """ The member's last playback position in the video, in seconds. """ positionSeconds: Int! """ The post whose content contains the video this progress tracks. """ post: PostContent """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! updatedAt: ISO8601DateTime! """ Identifies one embedded video within the post's content — it matches the data-video-id attribute on that video in the post body. This is not a resource ID and cannot be looked up as one. """ videoId: ID! } """ The connection type for VideoProgress. """ type VideoProgressConnection { """ A list of edges. """ edges: [VideoProgressEdge] """ A list of nodes. """ nodes: [VideoProgress] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type VideoProgressEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: VideoProgress } """ Autogenerated input type of VoidPurchase """ input VoidPurchaseInput { """ A unique identifier for the client performing the mutation. """ clientMutationId: String """ Purchase ID — resource ID or GlobalID. """ id: ID! } """ Autogenerated return type of VoidPurchase. """ type VoidPurchasePayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String errors: [String!]! purchase: Purchase } type Waitlist implements DatabaseRecord & Node { """ Whether closing the waitlist auto-invites its Leads to the target. """ autoInviteEnabled: Boolean! """ Deadline after which the waitlist stops accepting signups. Null when there is no deadline. """ closeAt: ISO8601DateTime """ Whether the host has manually closed the waitlist to new signups. """ closed: Boolean! """ Message shown to a Lead after they join the waitlist. """ confirmationMessage: String """ Name shown in admin lists; suffixed "(deleted)" once the waitlist is soft-deleted. """ displayName: String! """ ID of the object. """ id: ID! """ Fallback redirect for the auto-invite link when the primary destination cannot be built. Null when unconfigured. """ inviteFallbackRedirect: String """ Where the auto-invite link sends a Lead (only meaningful for a Plan target). Null when unconfigured. """ inviteLinkDestination: String """ Message included with the invite sent to Leads when the waitlist auto-invites on close. """ inviteMessage: String """ Number of Leads currently on the waitlist. """ leadsCount: Int! """ Host-facing name of the waitlist. """ name: String! """ Effective signup state: false once the waitlist is manually closed, soft-deleted, or past its closeAt deadline. """ open: Boolean! """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ What the waitlist admits Leads to: the whole Network or a paid Plan. Null when untargeted. """ target: WaitlistTargetUnion """ Human name of the waitlist's target (a Network's title or a Plan/Bundle's name). Null when the waitlist has no target. """ targetLabel: String } """ The connection type for Waitlist. """ type WaitlistConnection { """ A list of edges. """ edges: [WaitlistEdge] """ A list of nodes. """ nodes: [Waitlist] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type WaitlistEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: Waitlist } """ The target a waitlist admits Leads to: the whole Network, or a paid Plan. """ union WaitlistTargetUnion = Network | PaymentPlan type WebhookCallback implements DatabaseRecord & Node { """ Secret sent with each delivery so the endpoint can verify the request. """ apiKey: String """ Number of consecutive failed deliveries since the last success. """ consecutiveFailures: Int! """ When the callback was created. """ createdAt: ISO8601DateTime! """ Whether deliveries are currently paused after repeated failures. """ disabled: Boolean! """ When the callback was disabled, or null when active. """ disabledAt: ISO8601DateTime """ ID of the object. """ id: ID! """ Events this callback is subscribed to. Null means every event; an empty list means no events. """ includedEvents: [WebhookEventType!] """ Resource ID for this object, for interop with the Admin API. """ resourceId: ID! """ When the callback was last updated. """ updatedAt: ISO8601DateTime! """ HTTPS endpoint that receives webhook deliveries. """ url: String! } """ The connection type for WebhookCallback. """ type WebhookCallbackConnection { """ A list of edges. """ edges: [WebhookCallbackEdge] """ A list of nodes. """ nodes: [WebhookCallback] """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An edge in a connection. """ type WebhookCallbackEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of the edge. """ node: WebhookCallback } """ An event a webhook callback can subscribe to. """ enum WebhookEventType { """ Article Created """ ARTICLE_CREATED """ Article Updated """ ARTICLE_UPDATED """ Comment Created """ COMMENT_CREATED """ Custom Field Response Created """ CUSTOM_FIELD_RESPONSE_CREATED """ Custom Field Response Removed """ CUSTOM_FIELD_RESPONSE_REMOVED """ Custom Field Response Updated """ CUSTOM_FIELD_RESPONSE_UPDATED """ Event Created """ EVENT_CREATED """ Event Updated """ EVENT_UPDATED """ Gift Leaderboard Updated """ GIFT_LEADERBOARD_UPDATED """ Hot Cold Poll Created """ HOT_COLD_POLL_CREATED """ Hot Cold Poll Updated """ HOT_COLD_POLL_UPDATED """ Invite Requested """ INVITE_REQUESTED """ Member Ambassador Leveled Up """ MEMBER_AMBASSADOR_LEVELED_UP """ Member Badge Added """ MEMBER_BADGE_ADDED """ Member Badge Removed """ MEMBER_BADGE_REMOVED """ Member Course Progress Completed """ MEMBER_COURSE_PROGRESS_COMPLETED """ Member Course Progress Started """ MEMBER_COURSE_PROGRESS_STARTED """ Member Course Progress Updated """ MEMBER_COURSE_PROGRESS_UPDATED """ Member Joined """ MEMBER_JOINED """ Member Join Requested """ MEMBER_JOIN_REQUESTED """ Member Left """ MEMBER_LEFT """ Member Plan Changed """ MEMBER_PLAN_CHANGED """ Member Purchased """ MEMBER_PURCHASED """ Member Purchase Requested """ MEMBER_PURCHASE_REQUESTED """ Member Removed From Plan """ MEMBER_REMOVED_FROM_PLAN """ Member Subscription Canceled """ MEMBER_SUBSCRIPTION_CANCELED """ Member Subscription Renewed """ MEMBER_SUBSCRIPTION_RENEWED """ Member Tag Added """ MEMBER_TAG_ADDED """ Member Tag Removed """ MEMBER_TAG_REMOVED """ Member Updated """ MEMBER_UPDATED """ Multiple Choice Poll Created """ MULTIPLE_CHOICE_POLL_CREATED """ Multiple Choice Poll Updated """ MULTIPLE_CHOICE_POLL_UPDATED """ Percentage Poll Created """ PERCENTAGE_POLL_CREATED """ Percentage Poll Updated """ PERCENTAGE_POLL_UPDATED """ Post Created """ POST_CREATED """ Post Updated """ POST_UPDATED """ Question Created """ QUESTION_CREATED """ Question Updated """ QUESTION_UPDATED """ Reaction Created """ REACTION_CREATED """ Reaction Deleted """ REACTION_DELETED """ Reported Content Created """ REPORTED_CONTENT_CREATED """ Rsvp Created """ RSVP_CREATED """ Rsvp Deleted """ RSVP_DELETED """ Rsvp Updated """ RSVP_UPDATED } """ An item in a welcome-checklist feed prompt, with the viewer's completion state. """ type WelcomeChecklistItem { """ Whether the viewer has completed this checklist item. Null for anonymous viewers. """ completed: Boolean """ The post, space, or onboarding pointer this row points at. """ target: WelcomeChecklistTarget! } """ The item a welcome-checklist row points at — a post, a space, or an onboarding pointer. """ union WelcomeChecklistTarget = CustomOnboardingPointerPin | Event | OnboardingPointerPin | Poll | Post | Space