From 68eca930633c62350c50f5511dea10f6102de2c0 Mon Sep 17 00:00:00 2001 From: Isabel Martin Date: Thu, 5 Dec 2024 18:40:38 +0100 Subject: [PATCH] - Updated schema.graphqls (#2183) - Gradle upgrade - re-writted thirdPartyEvents mutation - Adopted Apollo3 version of `override fun triggerThirdPartyEvent(eventInput: TPEventInputData): Observable>` in KSApolloClientV2 Co-authored-by: jlplks Co-authored-by: Leigh Douglas --- app/src/main/graphql/schema.graphqls | 4565 +++++++++++++++-- app/src/main/graphql/thirdPartyEvents.graphql | 14 +- .../kickstarter/services/KSApolloClientV2.kt | 46 +- .../transformers/GraphQLTransformers.kt | 69 +- build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- 6 files changed, 4325 insertions(+), 373 deletions(-) diff --git a/app/src/main/graphql/schema.graphqls b/app/src/main/graphql/schema.graphqls index 0dc299b68f..471e1a45c3 100644 --- a/app/src/main/graphql/schema.graphqls +++ b/app/src/main/graphql/schema.graphqls @@ -1,3 +1,13 @@ +""" +Represents `true` or `false` values. +""" +scalar Boolean + +""" +Represents textual data as UTF-8 character sequences. This type is most often used by GraphQL to represent free-form human-readable text. +""" +scalar String + """ The query root of the Kickstarter GraphQL interface. """ @@ -6,130 +16,168 @@ type Query { Fetches a backing given its id. """ backing(id: ID!): Backing + """ Languages that are eligible for creating captions for video tracks """ captionLanguages: [CaptionLanguage!]! + """ Fetch a project category by param.. """ category(param: String!): Category + """ Fetches a checkout given its id. """ checkout(id: ID!): Checkout + """ Extracts claims from text. """ claims(text: String!, useStanford: Boolean): Claims + """ The visitor's chosen currency """ currentCurrency: CurrencyCode! - editorial("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String, slug: String!, revision: String, admin: Boolean = false): EditorialConnection + + editorial("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String, slug: String!, revision: String, admin: Boolean = false): EditorialConnection + editorialPage(slug: String!): EditorialPage + editorialPageForAdmin(slug: String!): EditorialPageForAdmin - editorialPages("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String, search: String, pageType: EditorialPageType, sortField: EditorialPageSortField, sortDirection: EditorialPageSortDirection): EditorialPageForAdminConnection + + editorialPages("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String, search: String, pageType: EditorialPageType, sortField: EditorialPageSortField, sortDirection: EditorialPageSortDirection): EditorialPageForAdminConnection + editorialRevision(uuid: String!): EditorialRevision + editorialRevisionForAdmin(uuid: String!): EditorialRevisionForAdmin + """ Fetches a address given its id. """ fulfillmentAddress(id: ID!): Address + """ Currencies a creator can choose between for collecting pledges on a project """ fundingCurrencies: [FundingCurrency!]! + """ Fetches an item given its relay id. """ item(id: ID!): RewardItem + """ Get a kickstarter fact """ ksrFact: KsrFact + """ Searches locations. """ - locations("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String, """Location search term.""" term: String, """Only return locations assignable (to a Project or User).""" assignable: Boolean, """Only return locations for searching Projects.""" searchable: Boolean): LocationsConnection + locations("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String, "Location search term." term: String, "Only return locations assignable (to a Project or User)." assignable: Boolean, "Only return locations for searching Projects." searchable: Boolean): LocationsConnection + """ You. """ me: User + """ Fetches an object given its ID. """ - node("""ID of the object.""" id: ID!): Node + node("ID of the object." id: ID!): Node + """ Fetches an order given its id. """ order(id: ID!): Order + photoForEditor(id: ID!): Photo + """ Provides an overview of pledge projects """ pledgeProjectsOverview: PledgeProjectsOverview + """ Fetches a post given its ID. """ post(id: ID!): Postable + """ Fetches a project given its slug or pid. """ project(slug: String, pid: Int): Project + """ Get some projects """ - projects("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String, """Get projects backed by the current user.""" backed: Boolean, """Get projects where the current user is a collaborator.""" collaborated: Boolean, """Get projects in only this category.""" categoryId: String, """Get projects created by the current user.""" created: Boolean, """Get projects with a USD goal amount in this bucket.""" goal: GoalBuckets, """Get projects from this location.""" locationId: ID, """Get projects with a USD pledged amount in this bucket.""" pledged: PledgedBuckets, """Get projects with a raised percent in this bucket.""" raised: RaisedBuckets, """Get projects recommended for the current user.""" recommended: Boolean, """The recommendations models to use""" recommendationsModels: [RecommendationsModel!], """The source for recommendations.""" recommendationsSource: [RecommendationsSource!], """Seed for ordering the projects""" seed: Int, """Find projects similar to the given project by pid.""" similarToPid: String, """Find projects similar to the given project term.""" similarTo: String, """The sort order for returned projects.""" sort: ProjectSort, """Get project selected as staff picks.""" staffPicks: Boolean, """Get projects starred by the current user.""" starred: Boolean, """Get projects with this state.""" state: PublicProjectState, """Get projects with this tag.""" tagId: Int, """Project search term.""" term: String, """A list of pids corresponding to projects to be excluded from the results""" excludePids: [Int!], """Get projects with deadlines after this date""" deadlineAfter: DateTime, """Get projects with deadlines before this date""" deadlineBefore: DateTime): ProjectsConnectionWithTotalCount + projects("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String, "Get projects backed by the current user." backed: Boolean, "Get projects where the current user is a collaborator." collaborated: Boolean, "Get projects in only this category." categoryId: String, "Get projects created by the current user." created: Boolean, "Get projects with a USD goal amount in this bucket." goal: GoalBuckets, "Get projects from this location." locationId: ID, "Get projects with a USD pledged amount in this bucket." pledged: PledgedBuckets, "Get projects with a raised percent in this bucket." raised: RaisedBuckets, "Get projects recommended for the current user." recommended: Boolean, "The recommendations models to use" recommendationsModels: [RecommendationsModel!], "The source for recommendations." recommendationsSource: [RecommendationsSource!], "Seed for ordering the projects" seed: Int, "Find projects similar to the given project by pid." similarToPid: String, "Find projects similar to the given project term." similarTo: String, "The sort order for returned projects." sort: ProjectSort, "Get project selected as staff picks." staffPicks: Boolean, "Get projects starred by the current user." starred: Boolean, "Get projects with this state." state: PublicProjectState, "Get projects with this tag." tagId: Int, "Project search term." term: String, "A list of pids corresponding to projects to be excluded from the results" excludePids: [Int!], "Get projects with deadlines after this date" deadlineAfter: DateTime, "Get projects with deadlines before this date" deadlineBefore: DateTime): ProjectsConnectionWithTotalCount + """ Editorialized quiz projects for the taste profile quiz. """ - quizProjects("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String, """Exclude certain quiz projects from the results""" excludeQuizProjectIds: [ID!]): QuizProjectsConnection! + quizProjects("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String, "Exclude certain quiz projects from the results" excludeQuizProjectIds: [ID!]): QuizProjectsConnection! + """ Fetches a refund checkout given its id. """ refundCheckout(id: ID!): RefundCheckout + """ Regional tax authorities """ regionalAuthorities(country: String!): [Location!]! + reward(id: ID!): Reward + """ Root project categories. """ rootCategories: [Category!]! + """ Country locations for shipping rewards """ shippingCountryLocations: [Location!]! + """ Regional locations for shipping rewards """ shippingRegionalLocations: [Location!]! + """ Root location for shipping rewards """ shippingRoot: Location! + """ Countries that can launch projects. """ supportedCountries: [Country!]! + """ Tags. """ - tags("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String, """Scoped to a provided scope""" scope: TagScope!): TagsConnection + tags("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String, "Scoped to a provided scope" scope: TagScope!): TagsConnection + """ Fetches a project update given its ID. """ update(id: ID!): FreeformPost @deprecated(reason: "Use post field instead") + """ The maximum file size of an upload by type. """ - uploadLimit("""The type of file we are checking the upload limit of.""" filetype: UploadLimitFiletype!): UploadLimit! + uploadLimit("The type of file we are checking the upload limit of." filetype: UploadLimitFiletype!): UploadLimit! + """ How USD currencies should be rendered, based on user's location """ usdType: UsdType + """ Countries that are visible to the current user. This may include countries that cannot launch projects. """ @@ -146,6 +194,11 @@ interface Node { id: ID! } +""" +Represents a unique identifier that is Base64 obfuscated. It is often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"VXNlci0xMA=="`) or integer (such as `4`) input value will be accepted as an ID. +""" +scalar ID + """ A member of Kickstarter. """ @@ -153,294 +206,368 @@ type User implements Node { """ Projects a user has created or is an active collaborator on """ - activeProjects("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): UserActiveProjectsConnection + activeProjects("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): UserActiveProjectsConnection + """ This user's saved shipping addresses """ - addresses("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): AddressConnection + addresses("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): AddressConnection + """ Indicates whether or not the user allows other Kickstarter users to follow them """ allowsFollows: Boolean! + """ Projects a user has backed. """ - backedProjects("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): UserBackedProjectsConnection + backedProjects("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): UserBackedProjectsConnection + """ A user's backings. """ - backings("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String, """Filter backings to only those with this status""" status: BackingState): UserBackingsConnection + backings("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String, "Filter backings to only those with this status" status: BackingState): UserBackingsConnection + """ Number of backings for this user. """ backingsCount: Int! + """ A description of the user's background. """ biography: String + """ List of users blocked by current user """ blockedUsers: [User!] + """ Whether or not the user can curate pages """ canCurate: Boolean + """ Whether a user is trusted to configure prelaunch early. """ canPrelaunchEarly: Boolean! + """ Whether user can see the confirmation modal that appears after the user likes or dislike a project for the first time """ canSeeConfirmSignalModal: Boolean + """ Whether user can see the confirmation modal that appears after the user watches a project for the first time """ canSeeConfirmWatchModal: Boolean + """ Whether user can see PYL toast notification """ canSeePylToast: Boolean + """ Whether user can see the reward images toast notification that appears on build pages """ canSeeRewardImagesToast: Boolean + """ Whether user can see the taste profile toast notification that appears on the thanks page """ canSeeTasteProfileToast: Boolean + """ The user's chosen currency """ chosenCurrency: String + """ Conversations the user had """ - conversations("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String, """The mailbox""" mailbox: MailboxType, """The project id""" project_id: String): UserConversationsConnection + conversations("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String, "The mailbox" mailbox: MailboxType, "The project id" project_id: String): UserConversationsConnection + """ Projects a user has created. """ - createdProjects("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String, """Column to order the list of projects by""" orderBy: String, """Order in ascending or descending order""" order: OrderDirection): UserCreatedProjectsConnection + createdProjects("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String, "Column to order the list of projects by" orderBy: String, "Order in ascending or descending order" order: OrderDirection): UserCreatedProjectsConnection + """ Pages curated by the user """ - curatedPages("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): UserCuratedPagesConnection + curatedPages("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): UserCuratedPagesConnection + """ A user's email address. """ email: String + enabledFeatures: [Feature!]! + """ Users following a user. """ - followers("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): UserFollowersConnection + followers("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): UserFollowersConnection + """ Users a user is following. """ - following("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): UserFollowingConnection + following("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): UserFollowingConnection + """ Projects a user has launched that are successful, - but have not completed fulfillment + but have not completed fulfillment """ fulfillingProjects: [Project!]! + """ If the user has uploaded an avatar. """ hasImage: Boolean! + """ Whether or not the user has a password. """ hasPassword: Boolean + """ Whether a user has their slug set. """ hasSlug: Boolean! + """ Whether or not a user has unread messages. """ hasUnreadMessages: Boolean + """ Whether or not a user has unseen activity. """ hasUnseenActivity: Boolean + """ Whether or not a user has unseen saved projects activity. """ hasUnseenSavedProjectsActivity: Boolean + """ The highest sentiment for successful projects for a user """ highestProjectSentiment: Float + id: ID! + """ The user's avatar. """ - imageUrl("""Whether or not to blur the image.""" blur: Boolean, """The width of the image in pixels.""" width: Int!): String! + imageUrl("Whether or not to blur the image." blur: Boolean, "The width of the image in pixels." width: Int!): String! + """ Projects a user has been invited to collaborate on """ - invitedProjects("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): UserInvitedProjectsConnection + invitedProjects("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): UserInvitedProjectsConnection + """ Whether or not the user has authenticated with Apple. """ isAppleConnected: Boolean + """ Is user blocked by current user """ isBlocked: Boolean + """ Whether a user is a creator of any project """ isCreator: Boolean + """ Whether a user's email address is deliverable """ isDeliverable: Boolean + """ Whether or not the user's email is verified. """ isEmailVerified: Boolean + """ Whether or not the user is connected to Facebook. """ isFacebookConnected: Boolean + """ Whether or not you are following the user. """ isFollowing: Boolean! + """ Whether a KSR admin is ghosting as another user """ isGhosting: Boolean + """ Whether or not you are a KSR admin. """ isKsrAdmin: Boolean + """ Whether the user is registered """ isRegistered: Boolean! + """ Whether the user can create SEPA account payment sources """ isSepaEligible: Boolean! + """ Whether a user's entered slug is valid. """ - isSlugValid("""The user's entered slug.""" slug: String!): Validation! + isSlugValid("The user's entered slug." slug: String!): Validation! + """ Whether or not the user is either Facebook connected or has follows/followings. """ isSocializing: Boolean + """ Whether the user is a superbacker """ isSuperbacker: Boolean! + """ The timestamp of when the user joined Kickstarter """ joinedOn: ISO8601DateTime! + """ The last time a user logged in, time since epoch """ lastLogin: DateTime + """ The most recent successful project that has a positive sentiment and a qualifying backer coverage rate """ latestBackerFavoriteProject: Project + """ Projects a user has launched. """ - launchedProjects("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): ProjectsConnectionWithTotalCount + launchedProjects("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): ProjectsConnectionWithTotalCount + """ Where the user is based. """ location: Location + """ Projects the user has collaborated on. """ - membershipProjects("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): MembershipProjectsConnection + membershipProjects("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): MembershipProjectsConnection + """ The user's provided name. """ name: String! + """ Does the user to refresh their facebook token? """ needsFreshFacebookToken: Boolean + """ Which newsleters are the users subscribed to """ newsletterSubscriptions: NewsletterSubscriptions + """ All of a user's notifications """ notifications: [Notification!] + """ Is the user opted out from receiving recommendations """ optedOutOfRecommendations: Boolean + """ Organizations a user is a member of """ - organizations("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String, """Filter organizations by membership state.""" state: OrganizationMembershipState): UserOrganizationsConnection + organizations("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String, "Filter organizations by membership state." state: OrganizationMembershipState): UserOrganizationsConnection + """ Whether backer has any action in PPO """ ppoHasAction: Boolean + """ A user's project notification settings """ projectNotifications: [Notification!] + """ Projects a user has saved. """ - savedProjects("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String, """Filter projects by publically accessible state.""" state: PublicProjectState, """Get saved projects with deadlines after this date""" deadlineAfter: DateTime, """Get saved projects with deadlines before this date""" deadlineBefore: DateTime, """Get saved projects that are upcoming""" upcoming: Boolean): UserSavedProjectsConnection + savedProjects("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String, "Filter projects by publically accessible state." state: PublicProjectState, "Get saved projects with deadlines after this date" deadlineAfter: DateTime, "Get saved projects with deadlines before this date" deadlineBefore: DateTime, "Get saved projects that are upcoming" upcoming: Boolean, "Get saved projects that have launched" launched: Boolean): UserSavedProjectsConnection + """ Is the user's profile public """ showPublicProfile: Boolean + """ The user's slug. """ slug: String! + """ SEPA accounts stored for this user. """ - storedBankAccounts("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String, """Should expired accounts be included.""" includeExpired: Boolean): BankAccountConnection + storedBankAccounts("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String, "Should expired accounts be included." includeExpired: Boolean): BankAccountConnection + """ Stored Cards """ - storedCards("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): UserCreditCardTypeConnection + storedCards("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): UserCreditCardTypeConnection + """ Projects a user has launched that are successful. """ - successfulProjects("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): ProjectsConnectionWithTotalCount + successfulProjects("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): ProjectsConnectionWithTotalCount + """ This user's survey responses """ - surveyResponses("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String, """Filter by projects that have or have not been answered.""" answered: Boolean): SurveyResponsesConnection + surveyResponses("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String, "Filter by projects that have or have not been answered." answered: Boolean): SurveyResponsesConnection + """ The total number of backers across all the user's projects """ totalBackersAcrossProjects: Int! + """ The total number of projects the user has created that are staff picked """ totalProjectsWeLove: Int! + """ A user's uid """ uid: String! + """ A URL to the user's profile. """ url: String! + """ Details about a user's restrictions """ userRestrictions: [UserRestriction!] + """ A user's websites """ @@ -452,113 +579,233 @@ The list of available public features """ enum Feature { device_components + show_posts_feed + ios_crashlytics + ios_mixpanel + ios_new_relic + ios_hockey_app + ios_koala + ios_i18n + ios_tappable_category_location + ios_favorite_categories + ios_wh_tout + ios_qualtrics + ios_native_checkout + ios_native_checkout_pledge_view + ios_live_streams + ios_live_stream_discovery + ios_live_stream_chat + ios_scroll_output_observe_for_ui + ios_backer_dashboard + ios_email_verification_flow + ios_email_verification_skip + ios_segment + ios_braze + android_segment + android_braze + native_creator_breakdown_chart + identity_verification_project_overview + message_archiving + message_spam + emoji_locale + default_to_campaign_on_mobile + pinned_posts_on_feed + image_uploader_alt_text + rich_text_embedifier + admin_checkout_debugger + accounts_upgrade + ksr10_build_overview + me_generative_art + project_build_rewards_explorer + project_build_zendesk + project_build_milestones + user_menu_draft_project + make_100_2020 + funding_sheet + qualtrics + track_define_namespace + how_it_works + disable_manual_create_stripe_elements_postal_code + project_update_requests + project_header_media_carousel_hero + PL + GR + SI + featured_project_mobile_optimizations + IBAN_flexibility + inside_voices_footer + stacked_recs_on_mobile + project_prelaunch_summaries + ch_currency_selector + dk_currency_selector + no_currency_selector + se_currency_selector + projects_on_project_page + datalake_fe_events + creator_demographics_survey + save_project_experiment + segment_tracking_events + segment_hide_project_deadline_property + web_error_on_retry_of_failed_3ds_backing + hide_facebook_login_button_2022 + creator_onboarding_flow_2021 + updated_risks_flow + payment_element_project_build_2022 + hk_bank_account_holder_name + creator_osat_survey_2022 + uk_created_projects_accept_usd_currency - updated_referrer_codes_2023 + enable_spotlight_bg_image + ecovadis_component_2023 + web_braze - midas_beta_2023 + ccp_search_projects + global_nav_2023 + late_pledges_learn_more_cta + post_campaign_backings_2024 + ckeditor_project_updates + backer_discovery_features_2023 + payments_stripe_link_on_checkout + address_collection_2024 + backer_report_update_2024 + delay_backer_trust_module_2024 - signal_of_fulfillment_2024 + reset_backer_survey_2024 + disable_shipping_at_pledge + pledge_projects_overview_2024 + + pledge_projects_overview_ios_2024 + copy_rewards + pledge_redemption_v1 + survey_reward_questions_2024 + address_collection_for_digital_rewards_2024 + prelaunch_story_editor + prelaunch_story_exception + creator_nav_refresh + sku_editing_2024 - pledge_redemption_cross_sells + superbacker_progress + backers_can_choose_plot_v1 + + backer_survey_intro_2024 + + sepa_debit_payment_element + + trust_and_safety_project_banner + + partial_refunds_2024 + + notification_banner_update_2024 + + multiple_shipfrom_locations_2024 + + separate_payment_section + + react_backed_projects } +""" +Represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1. +""" +scalar Int + """ Epoch time stamp. """ @@ -572,7 +819,9 @@ type UserUrl implements Node { The domain of a user's website """ domain: String + id: ID! + """ The URL of a user's website """ @@ -587,41 +836,55 @@ type Location implements Node { The country code. """ country: String! + """ The localized country name. """ countryName: String + """ The county name or code. Can be null. """ county: String + """ A URL to a discover page filtered by location """ - discoverUrl("""The ref tag""" ref_tag: String): String! + discoverUrl("The ref tag" ref_tag: String): String! + """ The displayable name. It includes the state code for US cities. ex: 'Seattle, WA' """ displayableName: String! + id: ID! + """ The latitude of the location. """ latitude: Float + """ The longitude of the location. """ longitude: Float + """ The localized name """ name: String! + """ The state name or code. Can be null. """ state: String } +""" +Represents signed double-precision fractional values as specified by [IEEE 754](http://en.wikipedia.org/wiki/IEEE_floating_point). +""" +scalar Float + """ Validity and associated messages. """ @@ -630,10 +893,12 @@ type Validation { Error keys for validation error, if any """ errorTypes: [String!] + """ Error messages associated with the value """ messages: [String!]! + """ Whether a value is valid. """ @@ -648,14 +913,17 @@ type UserCreditCardTypeConnection { A list of edges. """ edges: [CreditCardEdge] + """ A list of nodes. """ nodes: [CreditCard] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -667,14 +935,17 @@ 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. """ @@ -689,6 +960,7 @@ type CreditCardEdge { A cursor for use in pagination. """ cursor: String! + """ The item at the end of the edge. """ @@ -703,26 +975,32 @@ type CreditCard { When the credit card expires. """ expirationDate: Date! + """ The card ID """ id: String! + """ The last four digits of the credit card number. """ lastFour: String! + """ The card's payment type. """ paymentType: CreditCardPaymentType! + """ The card's state. """ state: CreditCardState! + """ Stripe card id """ stripeCardId: String! + """ The card type. """ @@ -739,11 +1017,17 @@ Credit card types. """ enum CreditCardTypes { AMEX + DISCOVER + JCB + MASTERCARD + VISA + DINERS + UNIONPAY } @@ -752,8 +1036,11 @@ Credit card payment types. """ enum CreditCardPaymentType { ANDROID_PAY + APPLE_PAY + BANK_ACCOUNT + CREDIT_CARD } @@ -762,8 +1049,11 @@ States of Credit Cards """ enum CreditCardState { UNAUTHORIZED + VERIFYING + ACTIVE + INACTIVE } @@ -775,10 +1065,12 @@ type BankAccountConnection { A list of edges. """ edges: [BankAccountEdge] + """ A list of nodes. """ nodes: [BankAccount] + """ Information to aid in pagination. """ @@ -793,6 +1085,7 @@ type BankAccountEdge { A cursor for use in pagination. """ cursor: String! + """ The item at the end of the edge. """ @@ -807,11 +1100,18 @@ type BankAccount { The bank name if available. """ bankName: String + id: String! + """ The last four digits of the account number. """ lastFour: String! + + """ + The stripe bank account id + """ + stripeCardId: String! } """ @@ -822,14 +1122,17 @@ type UserBackedProjectsConnection { A list of edges. """ edges: [ProjectEdge] + """ A list of nodes. """ nodes: [Project] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! @deprecated(reason: "Please use backingsCount instead.") } @@ -841,6 +1144,7 @@ type ProjectEdge { A cursor for use in pagination. """ cursor: String! + """ The item at the end of the edge. """ @@ -855,573 +1159,758 @@ type Project implements Node & Commentable { Account information. """ accountInfo: AccountInfo + """ Actions you can currently perform """ actions: ProjectActions! + """ The active checkout_wave, if there is one """ activeWave: CheckoutWave + """ Backing Add-ons """ - addOns("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String, """Filters available add ons by given location""" forLocation: ID, """Enables/disables add-ons sort by cost and title, with sorting enabled by default""" sort: Boolean): ProjectRewardConnection + addOns("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String, "Filters available add ons by given location" forLocation: ID, "Enables\/disables add-ons sort by cost and title, with sorting enabled by default" sort: Boolean): ProjectRewardConnection + """ The project's additional category. """ additionalSubcategory: Category + """ Whether or not the creator has enabled address collection """ addressCollectionEnabled: Boolean + """ Whether or not the creator has enabled address collection for digital reward backers """ addressCollectionForDigitalReward: Boolean + aiDisclosure: AiDisclosure + + """ + The total amount collected for shipping during pledge redemption + """ + amountCollectedForShipping: Int! + """ Available card types. """ availableCardTypes: [CreditCardTypes!]! + """ A list of currencies that the project's country can use """ availableFundingCurrenciesForCountry: [CurrencyCode!]! + """ The average sentiment of the project """ averageSentiment: Float! + """ The lockout date for address collection """ backerAddressLockoutDate: DateTime + """ Whether or not the backer address lockout date has passed. """ backerAddressLockoutDatePassed: Boolean! + """ Backer survey for the project """ backerSurvey: BackerSurvey + + """ + An optional introduction to the backer survey. + """ + backerSurveyIntro("The width of embedded assets in pixels." assetWidth: Int): HTML + """ Backers of the project """ - backers("""Limit the number of backers returned""" limit: Int, """Limit to backers that the current user is following""" followed: Boolean): [User!] + backers("Limit the number of backers returned" limit: Int, "Limit to backers that the current user is following" followed: Boolean): [User!] + """ Total backers for the project """ backersCount: Int! + + """ + The number of backers who have yet to go through pledge redemption + """ + backersRemainingForPledgeRedemption: Int! + """ The current user's backing of this project. Does not include inactive backings. """ backing: Backing + """ True if the current user can comment (considers restrictions) """ canComment: Boolean! + """ True if the current user can comment (does not consider restrictions) """ canCommentSansRestrictions: Boolean! + """ Whether user is allowed to edit project status """ canUserEditProjectStatus: Boolean! + """ Whether a user can request an update about this project from the Creator """ canUserRequestUpdate: Boolean! + """ Whether user is a backer of the project or not """ canUserViewProjectStatusFeedback: Boolean! + """ If the project is in a canceled state, when was it canceled? """ canceledAt: DateTime + """ The project's category. """ category: Category + """ The path to change the current user's payment method for their pledge to this project. """ changeMethodProjectPledgePath: String! + """ Permissions that can be assigned to a collaborator on a project """ collaboratorPermissions: [CollaboratorPermission!]! + """ A project's collaborators. """ - collaborators("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String, """include creator in list of collaborators""" withCreator: Boolean, """include both active and invited users in list of collaborators""" withInvited: Boolean): ProjectCollaboratorConnection + collaborators("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String, "include creator in list of collaborators" withCreator: Boolean, "include both active and invited users in list of collaborators" withInvited: Boolean): ProjectCollaboratorConnection + """ List of comments on the commentable """ - comments("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): CommentConnection + comments("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): CommentConnection + """ Comment count - defaults to root level comments only """ commentsCount(withReplies: Boolean = false): Int! + """ Representation of the Project Milestones """ completedMilestones: [ProjectMilestone!] + """ Number of watchers who went on to back the project. """ convertedWatchesCount: Int + """ The project's country """ country: Country! + """ The project's country. """ countryCode: CountryCode! @deprecated(reason: "Moved to country which returns CountryType.") + """ When the project was created """ createdAt: DateTime + """ The project's creator. """ creator: User + """ The draft projects that have a share token for the project creator """ creatorSharedDrafts: [ProjectSharedDraft] + """ The paths for the creator tools pages """ creatorToolsPaths: CreatorToolsPaths! + """ The Curated Collection that a project is in e.g. Make 100 """ curatedCollection: CuratedCollection + """ The project's currency code. """ currency: CurrencyCode! + """ The current amount pledged in USD """ currentAmountPledgedUsd: Float + """ When is the project scheduled to end? """ deadlineAt: DateTime + """ The default currency for the project's country """ defaultFundingCurrencyForCountry: CurrencyCode! + """ The default no reward pledge amount based on the project's currency. """ defaultPledge: Int! + """ A short description of the project. """ description: String! + + """ + The path to destroy the current user's pledge for this project. + """ + destroyProjectPledgePath: String! + """ Funding duration in days """ duration: Int + """ The path to edit the current user's pledge for this project. """ editProjectPledgePath: String! + """ The environmental commitments of the project. """ environmentalCommitments: [EnvironmentalCommitment] + """ List of FAQs of a project """ - faqs("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): ProjectFaqConnection + faqs("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): ProjectFaqConnection + """ The date at which pledge collections will end """ finalCollectionDate: ISO8601DateTime + """ A report by the current user for the project. """ flagging: Flagging + """ A project's friendly backers. """ - friends("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): ProjectBackerFriendsConnection + friends("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): ProjectBackerFriendsConnection + """ When the fulfillment modal was dismissed """ fulfillmentModalDismissedAt: DateTime + """ Status of fulfillment """ fulfillmentStatus: FulfillmentStatus + """ When the fulfillment status was updated """ fulfillmentStatusUpdatedAt: DateTime + """ The ratio of funding progress. """ fundingRatio: Ratio! + """ Exchange rate for the current user's currency """ fxRate: Float! + """ The project's title converted to a slug. """ generatedSlug: String! + """ The minimum amount to raise for the project to be successful. """ goal: Money + """ API secret for Google Analytics event """ googleAnalyticsApiSecret: String + """ The Google Analytics tracking ID. """ googleAnalyticsTrackingId: String + """ Does this project have any post-campaign config? """ hasPostCampaignConfig: Boolean! + """ Whether or not the project has reward images """ hasRewardImages: Boolean! + """ Whether a project has its slug set. """ hasSlug: Boolean! + """ Whether or not the project has supporting materials (Prototype Gallery) """ hasSupportingMaterials: Boolean! + id: ID! + """ The project's primary image. """ image: Photo + """ A read-only representation of the image (complete with fallback default image) """ - imageUrl("""Whether or not to blur the image.""" blur: Boolean, """The width of the image in pixels.""" width: Int!): String! + imageUrl("Whether or not to blur the image." blur: Boolean, "The width of the image in pixels." width: Int!): String! + """ Is the project's submission state accepted. """ isApproved: Boolean! + """ Has the current user disliked this project? """ isDisliked: Boolean! + """ Is the project tagged with one of the Forward Fund tags? """ isForwardFundTagged: Boolean! + """ Is this project currently accepting post-campaign pledges? """ isInPostCampaignPledgingPhase: Boolean! + """ The project has launched """ isLaunched: Boolean! + """ Has the current user liked this project? """ isLiked: Boolean! + + """ + Whether a project is enrolled in plot + """ + isPledgeOverTimeAllowed: Boolean! + """ Whether or not this is a Project of the Day. """ isProjectOfTheDay: Boolean + """ Whether or not this is a Kickstarter-featured project. """ isProjectWeLove: Boolean! + """ Whether the project is sharing it's budgeting information with the everyone """ isSharingProjectBudget: Boolean! + """ Whether current user is creator of current project """ isUserCreator: Boolean! + """ Whether a not the project can be watched. """ isWatchable: Boolean! + """ Is the current user watching this project? """ isWatched: Boolean! + """ Items available through the project's backer rewards. """ - items("""Whether to exclude the items that are not attached to any reward or addon.""" excludeItemsWithoutRewards: Boolean): [RewardItem]! + items("Whether to exclude the items that are not attached to any reward or addon." excludeItemsWithoutRewards: Boolean): [RewardItem]! + """ A project's last uploaded video, if it's processing, or the current project video. """ lastUploadedVideo: Video + """ The last checkout_wave, if there is one """ lastWave: CheckoutWave + """ Total backers for the project during late pledge phase """ latePledgeBackersCount: Int! + """ How much money is pledged to the project during late pledge phase. """ latePledgePledged: Money! + """ The datetime at which post-campaign pledging will end. This can be set to a future date if we have automatically scheduled an end to late pledging. """ latePledgesEndedAt: DateTime + """ When the project launched """ launchedAt: DateTime + """ Where the project is based. """ location: Location + """ The max pledge amount for a single reward tier. """ maxPledge: Int! + + """ + Whether or not the project has met KYC requirement + """ + metKycRequirements: Boolean! + """ Access token for Meta Conversion API """ metaCapiAccessToken: String + """ The unique identifier for the project's Meta Pixel ID """ metaPixelId: String + """ List of milestones available to project, empty array if project has no possible milestones """ milestoneCategories: [MilestoneCategory!]! + """ The min pledge amount for a single reward tier. """ minPledge: Int! + """ The project's name. """ name: String! + """ A Stripe account identifier """ onBehalfOf: String + """ Payment source on creator's account used to issue refunds. """ paymentSource: CreditCard + """ What percent the project has towards meeting its funding goal. """ percentFunded: Int! + """ The project's pid. """ pid: Int! + """ How much money is pledged to the project. """ pledged: Money! + + """ + The percentage of pledges that have been redeemed + """ + pledgesRedeemedPercentage: Float! + """ Is this project configured for post-campaign pledges? """ postCampaignPledgingEnabled: Boolean! + """ Project updates. """ - posts("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String, """Scoped to draft or published posts""" state: PostState, """Scoped to post type: creator_interview or freeform_post""" postType: PostFormat, """Scoped to a creator’s post associated with the active prompt""" forActivePrompt: Boolean): PostConnection + posts("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String, "Scoped to draft or published posts" state: PostState, "Scoped to post type: creator_interview or freeform_post" postType: PostFormat, "Scoped to a creator’s post associated with the active prompt" forActivePrompt: Boolean): PostConnection + """ Whether a project has activated prelaunch. """ prelaunchActivated: Boolean! + """ The rich text story for a prelaunch campaign. """ - prelaunchStory("""The number of visible characters to fetch (does not include HTML markup).""" first: Int, """The width of embedded assets in pixels.""" assetWidth: Int): HTML + prelaunchStory("The number of visible characters to fetch (does not include HTML markup)." first: Int, "The width of embedded assets in pixels." assetWidth: Int): HTML + """ The rich text story for a prelaunch campaign in raw form. """ - prelaunchStoryForEditor("""The number of visible characters to fetch (does not include HTML markup).""" first: Int, """The width of embedded assets in pixels.""" assetWidth: Int): HTML + prelaunchStoryForEditor("The number of visible characters to fetch (does not include HTML markup)." first: Int, "The width of embedded assets in pixels." assetWidth: Int): HTML + """ Return an itemized version of the prelaunch story. This feature is in BETA: types can change anytime! """ prelaunchStoryRichText: RichText! + """ The project's preview url. """ previewUrl: String + """ The project's profile. """ profile: ProjectProfile + """ When this project was Project of the Day. """ projectOfTheDayAt: DateTime + """ The root project id under which the comment is nested """ projectRelayId: ID! + """ The project's bitly short URL """ - projectShortLink("""The ref tag type for the bitly hash""" ref_tag: BitlyHashes): String + projectShortLink("The ref tag type for the bitly hash" ref_tag: BitlyHashes): String + """ Project's now and next status """ projectStatus: ProjectStatus + """ Exchange rate to US Dollars (USD) for the project's currency """ projectUsdExchangeRate: Float! + """ Survey questions asked of all the project's backers """ questions: [Question!]! + recommendations: Recommendations + """ Project rewards. """ - rewards("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String, """Filters by active backings""" withActiveBackings: Boolean, """Sort the rewards by availability and cost""" sort: Boolean): ProjectRewardConnection + rewards("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String, "Filters by active backings" withActiveBackings: Boolean, "Sort the rewards by availability and cost" sort: Boolean): ProjectRewardConnection + """ Risk questions for the project plan. """ riskQuestions: [RiskQuestion!]! + """ The risk mitigation strategies outlined for this project. """ riskStrategies: [RiskStrategy!] + """ Potential hurdles to project completion. """ - risks("""The number of characters to fetch.""" first: Int): String! + risks("The number of characters to fetch." first: Int): String! + """ Is this project configured so that events should be triggered for Meta's Conversions API? """ sendMetaCapiEvents: Boolean! + """ Is this project configured for third party analytics events? """ sendThirdPartyEvents: Boolean! + """ Whether or not to show ended to live cta """ showCtaToLiveProjects: Boolean! + """ Whether or not to show the signal of fulfillment modal """ showSignalOfFulfillmentModal: Boolean! + """ The project's unique URL identifier. """ slug: String! + """ The Google Sheet associated to this project """ spreadsheet: Spreadsheet + """ The project's current state. """ state: ProjectState! + """ The last time a project's state changed, time since epoch """ stateChangedAt: DateTime! + """ The initial project stats polling duration in ms """ statsInterval: Int + """ Locations from which the project fulfills """ stockLocations: [StockLocation!]! + """ The story behind the project, parsed for presentation. """ - story("""The number of visible characters to fetch (does not include HTML markup).""" first: Int, """The width of embedded assets in pixels.""" assetWidth: Int): HTML! + story("The number of visible characters to fetch (does not include HTML markup)." first: Int, "The width of embedded assets in pixels." assetWidth: Int): HTML! + """ The project description without conversion for usage by Rich Text Editors. """ - storyForEditor("""The number of visible characters to fetch (does not include HTML markup).""" first: Int, """The width of embedded assets in pixels.""" assetWidth: Int): HTML! + storyForEditor("The number of visible characters to fetch (does not include HTML markup)." first: Int, "The width of embedded assets in pixels." assetWidth: Int): HTML! + """ Return an itemized version of the story. This feature is in BETA: types can change anytime! """ storyRichText: RichText! + """ The Rich Text Editor version that was used to generate the project story """ storyRteVersion: String + """ A project submission. """ submission: Submission + """ Tags project has been tagged with """ - tags("""Scoped to an optionally provided scope""" scope: TagScope!): [Tag]! + tags("Scoped to an optionally provided scope" scope: TagScope!): [Tag]! + """ The project's target launch date """ targetLaunchDate: ISO8601DateTime + """ The time that the project's target launch date was updated """ targetLaunchDateUpdatedAt: ISO8601DateTime + """ Tax categories configured for the project excluding the non-taxable category """ taxCategories: [TaxCategory!]! + """ The timeline of project events, including updates and milestones. """ - timeline("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String, """Makes any pinned post the first item in the timeline""" withPinnedFirst: Boolean): ProjectTimelineConnection + timeline("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String, "Makes any pinned post the first item in the timeline" withPinnedFirst: Boolean): ProjectTimelineConnection + + """ + Backer countries that have not been assigned a ship-from location + """ + unassignedBackingLocations: [Location!]! + """ A URL to the project's page. """ url: String! + """ Exchange rate to US Dollars (USD), null for draft projects. """ usdExchangeRate: Float + """ Whether or not the project has used legacy surveys. """ usedLegacySurveys: Boolean! + """ The feedback the current user has left for the project """ - userFeedback("""Which question to fetch""" questionName: String): [ProjectFeedback] + userFeedback("Which question to fetch" questionName: String): [ProjectFeedback] + """ Was the current user removed from this project? """ userWasRemoved: Boolean! + """ Name of user on verified account """ verifiedCreatorName: String + """ Name of user on verified account """ verifiedIdentity: String @deprecated(reason: "Use verified_creator_name instead") + """ A project video. """ video: Video + """ Number of watchers a project has. """ @@ -1436,22 +1925,27 @@ interface Commentable { True if the current user can comment (considers restrictions) """ canComment: Boolean! + """ True if the current user can comment (does not consider restrictions) """ canCommentSansRestrictions: Boolean! + """ Whether a user can request an update about this project from the Creator """ canUserRequestUpdate: Boolean! + """ List of comments on the commentable """ - comments("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): CommentConnection + comments("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): CommentConnection + """ Comment count - defaults to root level comments only """ commentsCount(withReplies: Boolean = false): Int! + """ The root project id under which the comment is nested """ @@ -1466,14 +1960,17 @@ type CommentConnection { A list of edges. """ edges: [CommentEdge] + """ A list of nodes. """ nodes: [Comment] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -1485,6 +1982,7 @@ type CommentEdge { A cursor for use in pagination. """ cursor: String! + """ The item at the end of the edge. """ @@ -1499,71 +1997,89 @@ type Comment implements Node { The author of the comment """ author: User + """ The author's backing information """ authorBacking: Backing + """ The badges for the comment author """ authorBadges: [CommentBadge] + """ Whether the author has canceled their pledge """ authorCanceledPledge: Boolean! + """ The body of the comment """ body: String! + """ Whether the current user can delete the comment """ canDelete: Boolean! + """ Whether current user can pin a comment """ canPin: Boolean! + """ Whether current user can report a comment """ canReport: Boolean! + """ When was this comment posted """ createdAt: DateTime + """ Whether the comment is deleted """ deleted: Boolean! + """ Whether the comment author is a deleted user and not the creator """ deletedAuthor: Boolean! + """ Whether a comment has any flaggings """ hasFlaggings: Boolean! + id: ID! + """ The ID of the parent comment """ parentId: String + """ When the comment was pinned """ pinnedAt: ISO8601DateTime + """ Whether the comment author has been removed by kickstarter """ removedPerGuidelines: Boolean! + """ The replies on a comment """ - replies("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): CommentConnection + replies("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): CommentConnection + """ Is this comment spam """ spam: Boolean! + """ Whether this comment has been reviewed and sustained by an admin """ @@ -1578,10 +2094,12 @@ enum CommentBadge { Indicates the author is a creator """ creator + """ Indicates the author is a collaborator """ collaborator + """ Indicates the author is a superbacker """ @@ -1595,165 +2113,237 @@ type Backing implements Node { """ The add-ons that the backer selected """ - addOns("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): RewardTotalCountConnection + addOns("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): RewardTotalCountConnection + """ The add-ons that the backer selected """ addOnsWithQuantity: [BackingAddon!] + + """ + A summary of refunds and removal issued by the creator + """ + adjustmentSummary: AdjustmentSummary + """ Countries that the backing's reward can be shipped to. If null, the backing's reward can be shipped to any country. """ allowedCountries: [CountryCode!] + """ Total amount pledged by the backer to the project, including shipping. """ amount: Money! + + """ + Add-ons available to be added at Pledge Redemption + """ + availableCrossSells: [Reward!]! + """ The backer """ backer: User + """ If the backer_completed_at is set or not """ backerCompleted: Boolean! + """ Backer's note regarding their backing """ backerNote: String + + """ + The sentiment feedback the backer has submitted for the backing, if any + """ + backerSentiment: String + """ URL/path for the backing details page """ backingDetailsPageRoute(type: Route!, tab: BackingDetailsPageTab): String! + """ The backing rewards on a backing """ backingRewards: [BackingAddon!] + """ A link to the backing information """ backingUrl: String! + """ Extra amount the backer pledged on top of the minimum. """ bonusAmount: Money! + """ If the backing can be cancelled """ cancelable: Boolean! + """ Contains the backer's item preferences and responses to survey questions """ cart: Cart + """ If `requires_action` is true, `client_secret` should be used to initiate additional client-side authentication steps """ clientSecret: String + + """ + When the backing was completed + """ + completedAt: DateTime + """ Message thread between backer and creator """ conversation: Conversation + """ The delivery address associated with the backing """ deliveryAddress: Address + """ The reason for an errored backing """ errorReason: String + """ The fulfillment status of a backing. """ fulfillmentStatus: FulfillmentStatusDisplayOptions! + """ Whether or not the backing has any open flaggings """ hasFlaggings: Boolean! + id: ID! + + """ + If the backing was incremental, ie pledged over time + """ + incremental: Boolean! + """ Whether or not the backing is a late pledge """ isLatePledge: Boolean! + """ Is this backing a late pledge or did it occur during the crowdfunding campaign? """ isPostCampaign: Boolean! + """ If present, the most recent setup_intent data from Stripe. """ latestSetupIntent: SetupIntent + """ The backing location. """ location: Location + """ The order associated with the backing """ order: Order + + """ + Scheduled incremental payments + """ + paymentIncrements: [PaymentIncrement!] + """ Payment source used on a backing. """ paymentSource: PaymentSource + """ When the backing was created """ pledgedOn: DateTime + """ Is this pledge processing? """ processing: Boolean + """ The project """ project: Project + """ URL for redeeming the backing """ redemptionPageUrl: String! + """ If the backing was refunded """ refunded: Boolean! + """ Whether or not a removal request task is marked as nonissue """ removalRequestIsNonissue: Boolean! + """ Whether this checkout requires additional client-side authentication steps (e.g. 3DS2) to complete the on-session pledge flow """ requiresAction: Boolean + """ The reward the backer is expecting """ reward: Reward + """ Amount pledged for all rewards, the sum off all minimums, excluding shipping """ rewardsAmount: Money! + """ Admin tree for the associated Rosie Pledge """ rosiePledgeAdminTree: String + """ Sequence of the backing """ sequence: Int + """ Shipping amount for the rewards chosen by the backer for their location """ shippingAmount: Money + """ A brief description of shipping selections for backing """ shippingSummary: String + """ The status of a backing """ status: BackingState! + """ Refunds """ successfulRefunds: [String!]! + surveyResponses: [SurveyResponse!] + """ All of the backer's saved addresses that match the backing country """ @@ -1765,6 +2355,7 @@ enum Route { Just the path (does not include the domain) """ path + """ The entire URL (include the domain) """ @@ -1776,14 +2367,17 @@ enum BackingDetailsPageTab { Details """ details + """ Survey responses """ survey_responses + """ Messages """ messages + """ Pledge redemption """ @@ -1798,10 +2392,12 @@ type Money { Floating-point numeric value of monetary amount represented as a string """ amount: String + """ Currency of the monetary amount """ currency: CurrencyCode + """ Symbol of the currency in which the monetary amount appears """ @@ -1813,19 +2409,33 @@ A list of Iso4217–supported currencies. """ enum CurrencyCode { AUD + CAD + CHF + DKK + EUR + GBP + HKD + JPY + MXN + NOK + NZD + PLN + SEK + SGD + USD } @@ -1836,60 +2446,80 @@ type Address implements Node { """ Address line 1 (Street address/PO Box/Company name) """ - addressLine1: String + addressLine1: String! + """ Address line 2 (Apartment/Suite/Unit/Building) """ addressLine2: String + """ City """ - city: String + city: String! + """ 2-letter country code """ - countryCode: CountryCode + countryCode: CountryCode! + + """ + The name of the country associated with the country code + """ + countryName: String + id: ID! + """ The number of non updatable survey responses to this address """ nonUpdatableSurveyResponsesCount: Int! + """ Recipient's phone number """ phoneNumber: String + """ ZIP or postal code """ postalCode: String + """ Is this the user's primary address? """ primary: Boolean! + """ The title of projects with updatable survey responses """ projectsWithUpdatableSurveyResponses: [String!]! + """ The title of projects with non updatable survey responses """ projectsWithoutUpdatableSurveyResponses: [String!]! + """ Address recipient name """ recipientName: String + """ Address reference or nickname """ referenceName: String + """ State/County/Province/Region. """ region: String + """ The number of current updatable survey responses to this address """ updatableSurveyResponsesCount: Int! + """ The user associated with the shipping address """ @@ -1901,255 +2531,505 @@ Two letter ISO code for a country. """ enum CountryCode { AD + AE + AF + AG + AI + AL + AM + AN + AO + AQ + AR + AS + AT + AU + AW + AX + AZ + BA + BB + BD + BE + BF + BG + BH + BI + BJ + BL + BM + BN + BO + BQ + BR + BS + BT + BV + BW + BY + BZ + CA + CC + CD + CF + CG + CH + CI + CK + CL + CM + CN + CO + CR + CU + CW + CV + CX + CY + CZ + DE + DJ + DK + DM + DO + DZ + EC + EE + EG + EH + ER + ES + ET + FI + FJ + FK + FM + FO + FR + GA + GB + GD + GE + GF + GG + GH + GI + GL + GM + GN + GP + GQ + GR + GS + GT + GU + GW + GY + HK + HM + HN + HR + HT + HU + ID + IE + IL + IM + IN + IO + IQ + IR + IS + IT + JE + JM + JO + JP + KE + KG + KH + KI + KM + KN + KP + KR + KW + KY + KZ + LA + LB + LC + LI + LK + LR + LS + LT + LU + LV + LY + MA + MC + MD + ME + MF + MG + MH + MK + ML + MM + MN + MO + MP + MQ + MR + MS + MT + MU + MV + MW + MX + MY + MZ + NA + NC + NE + NF + NG + NI + NL + NO + NP + NR + NU + NZ + OM + PA + PE + PF + PG + PH + PK + PL + PM + PN + PR + PS + PT + PW + PY + QA + RE + RO + RS + RU + RW + SA + SB + SC + SD + SE + SG + SH + SI + SJ + SK + SL + SM + SN + SO + SR + SS + ST + SV + SX + SY + SZ + TC + TD + TF + TG + TH + TJ + TK + TL + TM + TN + TO + TR + TT + TV + TW + TZ + UA + UG + UM + US + UY + UZ + VA + VC + VE + VG + VI + VN + VU + WF + WS + XK + YE + YT + ZA + ZM + ZW } @@ -2157,27 +3037,68 @@ enum CountryCode { A cart associated with a backing """ type Cart { + """ + The add-on questions + """ + addOnQuestions: [CartQuestion!]! + + """ + Whether the cart required backer action or was finalized on creation + """ + autoFinalized: Boolean! + """ Answers associated with a cart's backing rewards """ backingRewardAnswers: [Answer!]! + """ The answers to reward-level questions """ baseRewardAnswers: [Answer!]! + + """ + The base reward questions + """ + baseRewardQuestions: [CartQuestion!]! + """ When the cart was finalized (i.e., when the backer submitted responses) """ finalizedAt: DateTime + + """ + Whether the cart has non-optional questions + """ + hasNonOptionalQuestions: Boolean! + id: ID! + + """ + Whether the backer has begun answering their survey + """ + inProgress: Boolean! + """ The associated line items """ lineItems: [LineItem!]! + """ The answers to project-level questions """ projectAnswers: [Answer!]! + + """ + The project-level questions + """ + projectQuestions: [CartQuestion!]! + + """ + Whether the cart could be finalized or is missing required info + """ + readyToBeFinalized: Boolean! + """ Whether or not this cart needs an address to be finalized """ @@ -2192,15 +3113,33 @@ type LineItem { The answers associated with the line item """ answers: [Answer!] + id: ID! + """ The item associated with the line item """ item: RewardItem! + """ The item variant the backer selected (unless master variant) """ itemVariant: ItemVariant + + """ + The option values that comprise the selected item variant, if present. + """ + optionValues: [OptionValue!]! + + """ + The questions associated with the line item + """ + questions: [CartQuestion!]! + + """ + True if the backer needs to select a variant or answer an item question + """ + requiresSelection: Boolean! } """ @@ -2208,14 +3147,17 @@ A unique item variant aka SKU """ type ItemVariant { id: ID! + """ The name (e.g. 'Hoodie Small Blue Checkered') """ name: String! + """ The option values associated with this variant """ optionValues: [OptionValue!] + """ The sku value (e.g. 'Hoodie-Small-Blue-Checkered') """ @@ -2227,10 +3169,12 @@ An option value (e.g. "red") associated with an option type (e.g. "color") """ type OptionValue { id: ID! + """ The option type """ optionType: OptionType! + """ The option value """ @@ -2242,18 +3186,22 @@ An option type associated with an item (e.g. "size" or "color") """ type OptionType { id: ID! + """ The item associated with the option type """ item: RewardItem! + """ The option type name (e.g. "size" or "color") """ name: String! + """ The option type prompt (e.g. "What size do you want?") """ prompt: String! + """ The associated option values """ @@ -2268,55 +3216,69 @@ type RewardItem implements Node { The add-ons that the item is included in. """ addOns: [Reward!]! + """ The numer of add-ons that the item is included in. """ addOnsCount: Int! + """ Whether backers have backed rewards this item belongs to """ hasBackers: Boolean + id: ID! + """ The item image """ image: Photo + """ Variants of this item """ itemVariants: [ItemVariant!]! + """ The max amount of this item that may have to be produced based on reward limits. """ maxInventoryCount: Int + """ An item name. """ name: String + """ Option types tied to this item """ optionTypes: [OptionType!]! + """ The project """ project: Project + """ Questions tied to this item that will be posed to backers """ questions: [Question!]! + """ The rewards that the item is included in. """ rewards: [Reward!]! + """ The number of rewards that the item is included in. """ rewardsCount: Int! + """ Tax related configuration """ taxConfig: ItemTaxConfig + """ Whether the item is completely configured for tax purposes """ @@ -2329,205 +3291,254 @@ A project reward. type Reward implements Node { """ Add-ons which can be combined with this reward. -Uses creator preferences and shipping rules to determine allow-ability. -Inclusion in this list does not necessarily indicate that the add-on is available for backing. - + Uses creator preferences and shipping rules to determine allow-ability. + Inclusion in this list does not necessarily indicate that the add-on is available for backing. """ - allowedAddons("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): RewardConnection! + allowedAddons("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): RewardConnection! + """ Base rewards which can be combined with this addon. -Uses creator preferences and shipping rules to determine allow-ability. -Inclusion in this list does not necessarily indicate that the reward is available for backing. - + Uses creator preferences and shipping rules to determine allow-ability. + Inclusion in this list does not necessarily indicate that the reward is available for backing. """ - allowedRewards("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): RewardConnection! + allowedRewards("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): RewardConnection! + """ Amount for claiming this reward. """ amount: Money! + """ Whether or not the reward is available for new pledges """ available: Boolean! + """ Profile images for backers of this reward """ - backerImages("""Limit the number of images returned""" limit: Int!): [Photo!] + backerImages("Limit the number of images returned" limit: Int!): [Photo!] + """ URL for the Backer Report filtered to only this reward """ backerReportUrl: String! + """ count of backers for this reward """ - backersCount("""Filters out backings in an inactive state""" excludeInactive: Boolean): Int + backersCount("Filters out backings in an inactive state" excludeInactive: Boolean): Int + """ The type of the reward content - physical, non-physical, both, or - legacy (for projects launched before rollout of this feature). + legacy (for projects launched before rollout of this feature). """ contentsType: ContentsType + """ Amount for claiming this reward, in the current user's chosen - currency + currency """ convertedAmount: Money! + """ What state is cross sell configuration in for this - reward (complete, incomplete, or not_started)? + reward (complete, incomplete, or not_started)? """ crossSellsCompletion: PrereqCompletionStatus! + """ A reward description. """ description: String! + """ A reward's title plus the amount, or a default title (the reward amount) if it doesn't - have a title. + have a title. """ displayName: String! + """ The same as allowed_addons but with an additional scope that filters out addons with a start date that falls in the future - """ - displayableAddons("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): RewardConnection! + displayableAddons("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): RewardConnection! + """ For post-campaign enabled rewards, the conditions under which to - stop offering the reward. + stop offering the reward. """ endCondition: Int + """ When the reward is scheduled to end in seconds """ endsAt: DateTime + """ Estimated delivery day. """ estimatedDeliveryOn: Date + """ Whether any has pledged for this reward during the late pledges period """ hasLatePledgeBackers: Boolean + id: ID! + """ The reward image. """ image: Photo + """ Is this reward currently accepting post-campaign pledges? """ inPostCampaignPledgingPhase: Boolean! + """ Does reward amount meet or exceed maximum pledge for the project """ isMaxPledge: Boolean! + """ Items in the reward. """ - items("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): RewardItemsConnection + items("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): RewardItemsConnection + """ Amount for claiming this reward after the campaign. """ latePledgeAmount: Money! + """ A reward limit. """ limit: Int + """ Per backer reward limit. """ - limitPerBacker("""Returns system wide limit per backer if not set by creator.""" withFallback: Boolean): Int + limitPerBacker("Returns system wide limit per backer if not set by creator." withFallback: Boolean): Int + """ Where the reward can be locally received if local receipt - is selected as the shipping preference + is selected as the shipping preference """ localReceiptLocation: Location + """ The maximum amount of this add-on in a single pledge selected by any - pledged backer. + pledged backer. """ maxPledgedInSingleBacking: Int! + """ A reward title. """ name: String + """ Cross-Sells configuration for this Reward """ orderableConfig: OrderableConfig + """ Amount for claiming this reward during the campaign. """ pledgeAmount: Money! + """ Is this reward available for post-campaign pledges? """ postCampaignPledgingEnabled: Boolean! + """ The project """ project: Project + """ Survey questions asked of all backers of this reward. """ questions: [Question!]! + """ Remaining reward quantity. """ remainingQuantity: Int + """ The type of the reward - base or addon. """ rewardType: RewardType! + """ Whether or not the reward has shipping enabled """ shippingEnabled: Boolean! + """ Shipping preference for this reward """ shippingPreference: ShippingPreference + """ Shipping rates defined by the creator for this reward """ shippingRates: [ShippingRate!]! + """ Whether the shipping rates are filled out and - not missing fields + not missing fields """ shippingRatesCompletion: PrereqCompletionStatus! + + """ + Shipping rates for all shippable countries, + including those that are children of superregions + """ + shippingRatesExpanded: [ShippingRate!]! + """ Shipping rules defined by the creator for - this reward + this reward """ shippingRules: [ShippingRule]! + """ Shipping rules for all shippable countries. """ - shippingRulesExpanded("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String, """Returns expanded shipping rules given location""" forLocation: ID): RewardShippingRulesConnection + shippingRulesExpanded("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String, "Returns expanded shipping rules given location" forLocation: ID): RewardShippingRulesConnection + """ A shipping summary """ shippingSummary: String + """ Reward shipping summary as a sentence """ shippingSummarySentence: String + """ Simple shipping rules - expanded as a faster alternative to - shippingRulesExpanded since connection - type is slow + expanded as a faster alternative to + shippingRulesExpanded since connection + type is slow """ simpleShippingRulesExpanded: [SimpleShippingRule]! + """ Whether or not the reward is out of inventory """ soldOut: Boolean! + """ For post-campaign enabled rewards, the conditions under which to - start offering the reward. + start offering the reward. """ startCondition: Int + """ When the reward is scheduled to start """ @@ -2542,19 +3553,23 @@ type Photo implements Node { Alt text on the image """ altText: String! + """ The fingerprint of the photo """ fingerprint: String + id: ID! + """ Upload status of the photo """ status: AssetState! + """ URL of the photo """ - url("""Whether or not to blur the image.""" blur: Boolean, """The width of the image in pixels.""" width: Int!): String + url("Whether or not to blur the image." blur: Boolean, "The width of the image in pixels." width: Int!): String } """ @@ -2565,14 +3580,17 @@ enum AssetState { A missing asset """ MISSING + """ Incomplete status of an asset """ PROCESSING + """ The asset file has been deleted """ DELETED + """ Processing the asset file successfully completed """ @@ -2587,6 +3605,7 @@ enum RewardType { A reward that cannot be combined with others """ base + """ A reward that can only be added to a backing for another reward """ @@ -2601,14 +3620,17 @@ type RewardItemsConnection { A list of edges. """ edges: [RewardItemEdge] + """ A list of nodes. """ nodes: [RewardItem] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -2620,14 +3642,17 @@ type RewardItemEdge { A cursor for use in pagination. """ cursor: String! + """ The item at the end of the edge. """ node: RewardItem + """ The position that an item has been ordered on a reward """ position: Int + """ The quantity of an item associated with a reward """ @@ -2642,10 +3667,12 @@ type RewardConnection { A list of edges. """ edges: [RewardEdge] + """ A list of nodes. """ nodes: [Reward] + """ Information to aid in pagination. """ @@ -2660,6 +3687,7 @@ type RewardEdge { A cursor for use in pagination. """ cursor: String! + """ The item at the end of the edge. """ @@ -2671,8 +3699,11 @@ A preference for shipping a reward """ enum ShippingPreference { none + restricted + unrestricted + local } @@ -2684,23 +3715,29 @@ type ShippingRule implements Node { Number of backers for the Shipping Rule """ backersCount: Int! + """ The shipping cost for this location. """ cost: Money + """ The estimated maximum shipping cost """ estimatedMax: Money + """ The estimated minimum shipping cost """ estimatedMin: Money + """ Shipping rule has backers """ hasBackers: Boolean! + id: ID! + """ The shipping location to which the rule pertains. """ @@ -2712,11 +3749,17 @@ Simple shipping rule for a reward """ type SimpleShippingRule { cost: String + country: String! + currency: String + estimatedMax: String + estimatedMin: String + locationId: ID + locationName: String } @@ -2728,14 +3771,17 @@ type RewardShippingRulesConnection { A list of edges. """ edges: [ShippingRuleEdge] + """ A list of nodes. """ nodes: [ShippingRule] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -2747,6 +3793,7 @@ type ShippingRuleEdge { A cursor for use in pagination. """ cursor: String! + """ The item at the end of the edge. """ @@ -2760,22 +3807,22 @@ type ShippingRate { """ The shipping cost for this location. """ - cost: Money! + cost: Int! + id: ID! + """ The shipping location for which this shipping rate is defined. """ location: Location! + """ The item or reward for which this shipping rate is defined. """ shippable: Shippable! } -""" -Types that can have shipping rates -""" -union Shippable = Reward | RewardItem +union Shippable = Reward|RewardItem """ Completion status of objects necessary for pledge redemption @@ -2785,10 +3832,12 @@ enum PrereqCompletionStatus { Prereq has not been started """ not_started + """ Prereq has been started but is not complete """ incomplete + """ Prereq is complete """ @@ -2800,8 +3849,11 @@ Whether a reward contains all physical goods, some, none, or belongs to a legacy """ enum ContentsType { all_physical_goods + no_physical_goods + some_physical_goods + legacy } @@ -2813,43 +3865,48 @@ type Question { The question choice selection limit """ choiceSelectionLimit: Int + """ The question choices """ choices: [String!] + id: ID! + """ Whether the question is optional """ optional: Boolean! + """ Position of a question """ position: Int! + """ The question prompt """ prompt: String! + """ The object associated with the question """ questionable: Questionable! + """ The question type """ type: QuestionType! } -""" -An object that can be associated with a question -""" -union Questionable = Project | RewardItem | Reward +union Questionable = Project|RewardItem|Reward """ Question types """ enum QuestionType { text + choices } @@ -2857,23 +3914,37 @@ enum QuestionType { Configuration for an Orderable for Cross-Sells. """ type OrderableConfig { + """ + Is this reward currently available to add to an Order + """ + available: Boolean! + """ Is this orderable available for cross-sells in Pledge Redemption. """ enabled: Boolean! + id: ID! + """ The total number of an orderable available to be purchased """ limit: Int + """ The number of an orderable a backer is allowed to add to their order """ limitPerOrder: Int + """ The price charged for an orderable """ price: Money + + """ + How many of this reward are still available to claim during Pledge Redemption + """ + remainingQuantity: Int! } """ @@ -2881,10 +3952,12 @@ Tax configuration data related to an item """ type ItemTaxConfig { id: ID! + """ Value of item pre any bundling discounts """ - marketValue: Money + marketValue: Int + taxCategory: TaxCategory } @@ -2896,15 +3969,19 @@ type TaxCategory { Whether or not the category is associated with multiple items """ associatedWithMultipleItems: Boolean! + id: ID! + """ Whether or not the category is nontaxable """ nontaxable: Boolean! + """ Third party tax code """ taxCode: String! + """ The user assigned label for the vendor tax code """ @@ -2912,28 +3989,28 @@ type TaxCategory { } """ -An answer associated with one of the following: LineItem, Cart, BackingAddon +An answer associated with one of the following: LineItem, Cart, BackingAddon, CartReward """ type Answer { """ The object associated with the answer (e.g. Item, Project, Reward) """ answerable: Answerable! + id: ID! + """ The associated question """ question: Question! + """ The response to the question """ response: [String!]! } -""" -An object that can be associated with an answer -""" -union Answerable = LineItem | Cart | BackingAddon +union Answerable = LineItem|Cart|BackingAddon|CartReward """ An add-on reward included in a backing. @@ -2943,42 +4020,86 @@ type BackingAddon { Amount the add-on costs. """ amount: Money! + """ The addon reward """ backerReward: Reward! + """ The add-on description. """ description: String! + id: ID! + """ Items in the add-on. """ - items("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): RewardItemsConnection! + items("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): RewardItemsConnection! + """ The add-on name. """ name: String + """ Amount for claiming this add-on during the campaign. """ pledgeAmount: Money! + """ The quantity of the add-on included in a backing. """ quantity: Int! } +""" +A reward in the cart (currently scoped to cross-sell rewards only) +""" +type CartReward { + """ + The addon reward + """ + backerReward: Reward! + + id: ID! + + """ + The add-on name. + """ + name: String +} + +""" +A question associated with a cart, composed with an answer if one is present +""" +type CartQuestion { + """ + The answer to the question. Will return an "empty answer" if not yet answered. + """ + answer: Answer! + + """ + The cart question + """ + question: Question! +} + """ All values for backing fulfillment status, including where not provided/available """ enum FulfillmentStatusDisplayOptions { not_started + in_progress + shipped + delayed + not_provided + not_available } @@ -2990,14 +4111,17 @@ type RewardTotalCountConnection { A list of edges. """ edges: [RewardEdge] + """ A list of nodes. """ nodes: [Reward] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -3009,10 +4133,12 @@ type SetupIntent { Stripe ID of the SetupIntent. """ id: String! + """ The error encountered in the previous SetupIntent confirmation. """ lastSetupError: SetupIntentError + """ Status of the SetupIntent. """ @@ -3024,22 +4150,27 @@ enum SetupIntentStatus { When the SetupIntent is created, it has this status until a payment method is attached. If a SetupIntent fails, it will revert to this status. """ REQUIRES_PAYMENT_METHOD + """ After the customer provides their payment method information, the SetupIntent is ready to be confirmed. """ REQUIRES_CONFIRMATION + """ If the setup requires additional actions, such as authenticating with 3D Secure """ REQUIRES_ACTION + """ Once required actions are handled, the SetupIntent moves to this status, which can be brief or take a few days depending on the payment method. """ PROCESSING + """ SetupIntent can be canceled at any point before it is processing or succeeded. """ CANCELED + """ Setup of payment source was successful. """ @@ -3051,14 +4182,17 @@ type SetupIntentError { For some errors that could be handled programmatically, a short string indicating the error code reported. https://stripe.com/docs/error-codes """ code: String! + """ A short string indicating the card issuer’s reason for the decline if they provide one. """ declineCode: String! + """ A human-readable message providing more details about the error. For card errors, these messages can be shown to your users. """ message: String! + """ The type of error returned. """ @@ -3070,51 +4204,61 @@ enum SetupIntentErrorType { Failure to connect to Stripe's API. """ API_CONNECTION_ERROR + """ API errors cover any other type of problem (e.g., a temporary problem with Stripe's servers), and are extremely uncommon. """ API_ERROR + """ Failure to properly authenticate in the request. """ AUTHENTICATION_ERROR + """ Card errors are very common and they result when the user enters a card that can't be charged for some reason. """ CARD_ERROR + """ Idempotency errors occur when an Idempotency-Key is re-used on a request that does not match the first request's API endpoint and parameters. """ IDEMPOTENCY_ERROR + """ Invalid request errors arise when your request has invalid parameters eg., 3DS authentication failed. """ INVALID_REQUEST_ERROR + """ Too many requests hit the Stripe API too quickly. """ RATE_LIMIT_ERROR + """ Errors triggered by Stripe's client-side libraries when failing to validate fields (e.g., when a card number or expiration date is invalid or incomplete). """ VALIDATION_ERROR } -""" -Payment sources -""" -union PaymentSource = BankAccount | CreditCard +union PaymentSource = BankAccount|CreditCard """ Various backing states. """ enum BackingState { preauth + pledged + canceled + collected + errored + authentication_required + dropped } @@ -3126,27 +4270,34 @@ type SurveyResponse { Is the address still editable """ addressEditable: Boolean! + """ The date past which no further updates are allowed. """ answerDeadline: DateTime + """ Is the survey currently unlocked and answerable. """ answerable: Boolean! + """ The date on which the backer answered the survey """ answeredAt: DateTime + """ An array of question and answer data for this survey response """ answers: [SurveyAnswer!]! + """ The date on which the backer edited their survey response """ editedAt: DateTime + id: ID! + """ The url used to access the survey """ @@ -3158,14 +4309,17 @@ type SurveyAnswer { The response to the question. """ answer: [String!]! + """ The ID of the answer. """ id: String + """ The question prompt or template name. """ question: String! + """ The type of question, e.g. choices, checkbox, address, etc """ @@ -3180,22 +4334,27 @@ enum SurveyQuestionTemplateEnum { address """ address + """ email """ email + """ name """ name + """ other """ other + """ choices """ choices + """ checkboxes """ @@ -3210,19 +4369,39 @@ type Conversation implements Node { The backing made by the backer on the project this conversation is about """ backing: Backing + """ When the first message was sent """ createdAt: DateTime! + id: ID! + + """ + Are there unread messages for the current user + """ + isUnread: Boolean! + + """ + Timestamp of the most recent message in the thread + """ + lastReceivedAt: DateTime + + """ + The number of messages between the backer and creator + """ + messageCount: Int! + """ Messages that are part of this conversation """ - messages("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): ConversationMessagesConnection + messages("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): ConversationMessagesConnection + """ The other participant to this conversation """ otherParticipant: User + """ The project this conversation is about """ @@ -3237,14 +4416,17 @@ type ConversationMessagesConnection { A list of edges. """ edges: [MessageEdge] + """ A list of nodes. """ nodes: [Message] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -3256,6 +4438,7 @@ type MessageEdge { A cursor for use in pagination. """ cursor: String! + """ The item at the end of the edge. """ @@ -3270,27 +4453,34 @@ type Message implements Node { Body of the message """ body: String! + id: ID! + """ The message is an submission appeal """ isAppeal: Boolean! + """ When the message was first read """ readAt: DateTime + """ The user who received this message """ recipient: User + """ The user who sent this message """ sender: User + """ When the message was sent """ sentAt: DateTime + """ The message is spam """ @@ -3305,55 +4495,73 @@ type Order implements Node { The delivery or home address associated with the order. """ address: Address + + """ + Whether the order requires shipping or tax + """ + autoExemptable: Boolean! + """ The associated backer """ backer: User! + """ The associated backing """ backing: Backing! + + """ + Contains the backer's item preferences and responses to survey questions + """ + cart: Cart + """ - The difference between the voucher amount and the total market value, if positive + Add-ons selected for this order during Pledge Redemption """ - bonusAmount: Int! + crossSells: [OrderCrossSell!]! + """ The currency of the order """ currency: CurrencyCode! + + """ + Whether the order is in a finalized state + """ + finalized: Boolean! + id: ID! + """ - The cost of tax on reward items + Payment source used on an order. """ - itemTax: Int + paymentSource: PaymentSource + """ The project associated with the order """ project: Project! + """ The cost of shipping """ shippingAmount: Int + """ - The cost of tax on shipping - """ - shippingTax: Int - """ - The order's state, e.g. draft, submitted, successful, errored, missed + The order's state, e.g. draft, collected, dropped, etc. """ state: OrderStateEnum! + """ The total cost for the order including taxes and shipping """ total: Int + """ The total tax amount for the order """ totalTax: Int - """ - The amount pledged during the crowdfunding campaign - """ - voucherAmount: Int! } """ @@ -3364,10 +4572,22 @@ enum OrderStateEnum { draft """ draft + + """ + auto_exempt + """ + auto_exempt + """ - successful + calculated_exempt """ - successful + calculated_exempt + + """ + collected + """ + collected + """ dropped """ @@ -3375,109 +4595,475 @@ enum OrderStateEnum { } """ -An ISO 8601-encoded datetime +An add-on reward included in an Order during Pledge Redemption as a Cross Sell. """ -scalar ISO8601DateTime +type OrderCrossSell { + """ + The content type of the reward + """ + contentsType: String! -""" -An HTML string. -""" -scalar HTML + """ + Description of the add-on + """ + description: String! -""" -Itemized rich text -""" -type RichText { - items: [RichTextItem]! -} + id: ID! -""" -Rich text items: Paragraph, Headers, List, Quote, Photo, Audio, Video or Oembed -""" -union RichTextItem = RichTextParagraph | RichTextHeader1 | RichTextHeader2 | RichTextHeader3 | RichTextHeader4 | RichTextList | RichTextQuote | RichTextPhoto | RichTextAudio | RichTextVideo | RichTextOembed + """ + The add-on name. + """ + name: String -""" -A Paragraph.

-""" -type RichTextParagraph { - html: String! -} + """ + Configuration for the add-on + """ + orderableConfig: OrderableConfig! -""" -A Header 1.

-""" -type RichTextHeader1 { - html: String! -} + """ + The ID of the orderable + """ + orderableId: String! -""" -A Header 2.

-""" -type RichTextHeader2 { - html: String! -} + """ + The quantity of the add-on in the Order + """ + quantity: Int! -""" -A Header 3.

-""" -type RichTextHeader3 { - html: String! -} + """ + The shipping preference of the reward + """ + shippingPreference: String! -""" -A Header 4.

-""" -type RichTextHeader4 { - html: String! + """ + Shipping rates for all shippable countries, + including those that are children of superregions + """ + shippingRatesExpanded: [ShippingRate!]! } -""" -A list.
    -""" -type RichTextList { - items: [RichTextListItem!]! -} +type PaymentIncrement { + amount: Money! -""" -A list item.
  • -""" -type RichTextListItem { - html: String! -} + id: ID! -""" -A quote.
    -""" -type RichTextQuote { - html: String! + paymentIncrementableId: ID! + + paymentIncrementableType: String! + + scheduledCollection: DateTime! + + state: String! + + stateReason: String } """ -A Photo asset +An adjustment summary. """ -type RichTextPhoto { - altText: String! - asset: Photo - caption: String! - url("""The width of the image in pixels.""" width: Int): String! +type AdjustmentSummary implements Node { + """ + The associated backing/order + """ + adjustable: Backing! + + """ + current state of backing + """ + adjustedSummary: AdjustedSummary + + """ + An array of adjustments associated with the AdjustmentSummary + """ + adjustments: [Adjustment!]! + + id: ID! } """ -An Audio asset +Adjustment to an order, created to issue a refund. """ -type RichTextAudio { - altText: String! +type Adjustment { + """ + ID of backing that adjustment is associated with + """ + backingId: String! + + """ + Timestamp at which adjustment was created + """ + createdAt: ISO8601DateTime! + + """ + Adjustment ID + """ + id: String! + + """ + optional message from creator issuing adjustment + """ + message: String + + """ + Metadata for the adjustment, including refunds and removals + """ + metadata: AdjustmentMetadata! + + """ + Status of adjustment + """ + status: AdjustmentStatusType! + + """ + Rosie Stripe transaction ID + """ + transactionId: String + + """ + Timestamp at which adjustment was last updated + """ + updatedAt: ISO8601DateTime! +} + +""" +Status of an adjustment +""" +enum AdjustmentStatusType { + """ + Adjustment is pending (default status on creation) + """ + PENDING + + """ + Adjustment has successfully been processed + """ + COMPLETED + + """ + Failure in processing adjustment + """ + FAILED + + """ + Adjustment was cancelled before it could be processed + """ + CANCELLED +} + +""" +An ISO 8601-encoded datetime +""" +scalar ISO8601DateTime + +""" +Metadata for adjustment to order +""" +type AdjustmentMetadata { + """ + Reason for adjustment + """ + reason: RefundReasonType! + + """ + ID of associated RefundCheckout + """ + refundCheckoutId: String! + + """ + Refunds to be issued in adjustment + """ + refunds: [Refund!]! + + """ + Objects to be removed from order in adjustment + """ + removals: [Removal!]! +} + +""" +Reasons for refunds +""" +enum RefundReasonType { + """ + Change of reward or removal of reward item + """ + CHANGE_REMOVAL + + """ + Issues with or delays in fulfillment + """ + FULFILLMENT_ISSUES_DELAYS + + """ + Creator issued credit + """ + CREDIT + + """ + Backer overpaid for reward + """ + OVERPAYMENT + + """ + Backer requested refund + """ + BACKER_REQUEST + + """ + Other reason for refund + """ + OTHER +} + +""" +An object removed as part of an adjustment. +""" +type Removal { + """ + id of object to be removed + """ + id: ID! + + """ + type of object to be removed (reward, reward item, or order item) + """ + type: RefundAdjustmentType! +} + +""" +All types of refund adjustments that can be issued +""" +enum RefundAdjustmentType { + """ + refund for full reward tier + """ + REWARD + + """ + refund for individual item in a reward tier + """ + REWARD_ITEM + + """ + refund for an add-on or cross-sell in the order + """ + ORDER_ITEM + + """ + refund for bonus support + """ + BONUS_SUPPORT + + """ + refund for shipping fees + """ + SHIPPING_CREDIT + + """ + general refund + """ + GENERAL_REFUND +} + +""" +A refund issued as part of an adjustment. +""" +type Refund { + """ + amount to be refunded + """ + amount: Int! + + """ + id of object to be refunded + """ + id: ID! + + """ + type of refund + """ + type: RefundAdjustmentType! +} + +""" +Current state of a backing after all adjustments are applied. +""" +type AdjustedSummary { + """ + list of rewards, original total costs, and totals after adjustments + """ + allRewards: [AdjustmentReward!]! + + """ + current total amount for backing + """ + amount: Int! + + """ + current bonus amount for backing + """ + bonusAmount: Int + + """ + items in backing and their quantities + """ + itemCounts: [AdjustmentItem!]! + + """ + current shipping amount for backing + """ + shippingAmount: Int + + """ + current backing status + """ + status: BackingState! +} + +""" +A reward that is modified by an adjustment. +""" +type AdjustmentReward { + """ + original total for reward + """ + originalTotal: Int! + + """ + amount that has been refunded after all adjustments are applied + """ + refundedTotal: Int! + + """ + amount remaining after all adjustments are applied + """ + remainingTotal: Int! + + """ + id of reward to be refunded + """ + rewardId: ID! +} + +""" +An item in a backing that might be modified (removal, change in quantity) by an adjustment. +""" +type AdjustmentItem { + """ + id of item in backing + """ + itemId: ID! + + """ + quantity of item in backing + """ + itemQuantity: ID! +} + +""" +An HTML string. +""" +scalar HTML + +""" +Itemized rich text +""" +type RichText { + items: [RichTextItem]! +} + +union RichTextItem = RichTextParagraph|RichTextHeader1|RichTextHeader2|RichTextHeader3|RichTextHeader4|RichTextList|RichTextQuote|RichTextPhoto|RichTextAudio|RichTextVideo|RichTextOembed + +""" +A Paragraph.

    +""" +type RichTextParagraph { + html: String! +} + +""" +A Header 1.

    +""" +type RichTextHeader1 { + html: String! +} + +""" +A Header 2.

    +""" +type RichTextHeader2 { + html: String! +} + +""" +A Header 3.

    +""" +type RichTextHeader3 { + html: String! +} + +""" +A Header 4.

    +""" +type RichTextHeader4 { + html: String! +} + +""" +A list.
      +""" +type RichTextList { + items: [RichTextListItem!]! +} + +""" +A list item.
    • +""" +type RichTextListItem { + html: String! +} + +""" +A quote.
      +""" +type RichTextQuote { + html: String! +} + +""" +A Photo asset +""" +type RichTextPhoto { + altText: String! + + asset: Photo + + caption: String! + + url("The width of the image in pixels." width: Int): String! +} + +""" +An Audio asset +""" +type RichTextAudio { + altText: String! + asset: AttachedAudio + caption: String! + url: String! } type AttachedAudio implements Node { id: ID! + """ Upload status of the audio """ status: AssetEncodingState! + url: String } @@ -3489,10 +5075,12 @@ enum AssetEncodingState { Initial, incomplete status of an asset upload """ ENCODING + """ Processing the asset successfully completed """ ENCODED + """ Processing the asset failed """ @@ -3504,26 +5092,34 @@ A Video asset """ type RichTextVideo { altText: String! + asset: AttachedVideo + caption: String! + url: String! } type AttachedVideo implements Node { formats: [AttachedVideoFormat] + id: ID! + """ Image preview url """ poster: String + """ The rendered HTML player for a video asset """ - renderedHtml("""The width of the video asset in pixels.""" assetWidth: Int): String + renderedHtml("The width of the video asset in pixels." assetWidth: Int): String + """ Upload status of the video """ status: AssetEncodingState! + """ Original video url """ @@ -3532,9 +5128,13 @@ type AttachedVideo implements Node { type AttachedVideoFormat { encoding: String! + height: String! + profile: String! + url: String! + width: String! } @@ -3546,62 +5146,77 @@ type RichTextOembed { ex: Bryson Lovett """ authorName: String! + """ ex: https://www.youtube.com/user/brysonlovett """ authorUrl: String! + """ ex: 270 """ height: Int! + """ ex: """ html: String! + """ ex: https://www.youtube.com/embed/ijeaVn8znJ8?feature=oembed """ iframeUrl: String! + """ ex: https://youtu.be/ijeaVn8znJ8 """ originalUrl: String! + """ only for photo """ photoUrl: String! + """ Ex: Embedly, Flickr, Kickstarter, Kickstarter Live, Scribd, SoundCloud, Spotify, Sketchfab, Twitter, Vimeo, YouTube """ providerName: String! + """ ex: https://www.youtube.com/ """ providerUrl: String! + """ ex: 360 """ thumbnailHeight: Int! + """ ex: https://i.ytimg.com/vi/ijeaVn8znJ8/hqdefault.jpg """ thumbnailUrl: String! + """ ex: 480 """ thumbnailWidth: Int! + """ ex: Bird Photo Booth bird feeder kickstarter preview 2 """ title: String! + """ one of: photo, video, link, rich """ type: String! + """ always "1.0" """ version: String! + """ ex: 480 """ @@ -3616,27 +5231,34 @@ type AccountInfo { Payment sources available to the project. """ availablePaymentSources: [CreditCard]! + """ The account for funds. """ depositAccount: DepositAccount + """ A project's email contact. """ email: String! + """ Whether or not a project's email contact has been verified. """ isEmailVerified: Boolean! + """ Payment source for dispute resolution. """ paymentSource: CreditCard + paymentsOnboarding: PaymentsOnboarding! + """ True if the project accepts an account holder name. """ usesAccountHolderName: Boolean! + """ True if the project accepts a routing number. """ @@ -3658,10 +5280,12 @@ enum PaymentsOnboardingStatus { The creator successfully completed payments & identity onboarding """ complete + """ The creator has started onboarding but has not yet finished """ in_progress + """ The creator must proceed to Stripe Hosted Onboarding to finish onboarding """ @@ -3676,42 +5300,52 @@ type DepositAccount { The deposit account business type. """ accountBusinessType: DepositAccountBusiness + """ The last four digits of the account number. """ accountLastFour: String + """ Identity verifications for anyone owning > 25% of the company (if the identity is a legal entity) """ additionalOwners: [AdditionalOwner] + """ The company associated with this deposit account. """ company: Company + """ The name associated with either the associated company or identity """ contactName: String + """ The Rosie ID for this DepositAccount """ id: ID! + """ The identity associated with this deposit account. """ identity: Identity + """ Has the Stripe Account been created for this deposit account. """ isStripeAccountCreated: Boolean! + """ The routing number. """ routingNumber: String + """ The deposit account's state. """ state: DepositAccountState! + """ Either the company or identity street address """ @@ -3726,22 +5360,27 @@ type StreetAddress { 2-letter country code """ country: String + """ City/District/Suburb/Town/Village """ locality: String + """ ZIP or postal code """ postalCode: String + """ State/County/Province/Region. """ region: String + """ Address line 1 (Street address/PO Box/Company name) """ street1: String + """ Address line 2 (Apartment/Suite/Unit/Building) """ @@ -3756,9 +5395,13 @@ type Company { The company name. """ name: String! + phoneNumber: String + streetAddress: StreetAddress! + vatNumber: String + verification: AsynchronousVerification! } @@ -3767,6 +5410,7 @@ type AsynchronousVerification { If it didn't pass verification, this array will contain the names of the attributes that failed (e.g., for a Company: ['address.line1']) """ fieldsNeeded: [String!]! + state: AsynchronousVerificationState! } @@ -3775,7 +5419,9 @@ Something that is expected to eventually become either 'verified' or 'unverified """ enum AsynchronousVerificationState { pending + unverified + verified } @@ -3787,14 +5433,17 @@ type Identity { ID of the identity """ id: Int + """ The most recent identity document """ identityDocument: IdentityDocument + """ The account-holder name. """ name: String + verification: AsynchronousVerification } @@ -3806,6 +5455,7 @@ type IdentityDocument { The associated identity's verification state """ identityState: IdentityVerificationState + verificationState: IdentityDocumentVerificationStates! } @@ -3814,9 +5464,13 @@ Identity document verification states. """ enum IdentityDocumentVerificationStates { SUCCESSFUL + FAILED + STARTED + PENDING + ABANDONED } @@ -3825,9 +5479,13 @@ Identity verification states. """ enum IdentityVerificationState { ERROR + FAILED + PASSED + STARTED + VERIFYING } @@ -3836,9 +5494,13 @@ Deposit account states. """ enum DepositAccountState { ACTIVE + FAILED + INACTIVE + UNAUTHORIZED + VERIFYING } @@ -3847,11 +5509,17 @@ Needed for the verification of legal entities that have multiple owners """ type AdditionalOwner { address: AdditionalOwnerAddress! + birthdate: AdditionalOwnerBirthdate + firstName: String + id: ID! + lastName: String + personalIdNumberProvided: Boolean! + verification: AdditionalOwnerVerification! } @@ -3861,15 +5529,21 @@ type AdditionalOwnerAddress { type AdditionalOwnerBirthdate { day: Int + month: Int + year: Int } type AdditionalOwnerVerification { details: String + detailsCode: String + document: String + documentBack: String + state: AsynchronousVerificationState! } @@ -3878,7 +5552,9 @@ Deposit account business types. """ enum DepositAccountBusiness { individual + company + non_profit } @@ -3887,15 +5563,25 @@ An AI disclosure. """ type AiDisclosure implements Node { fundingForAiAttribution: Boolean + fundingForAiConsent: Boolean + fundingForAiOption: Boolean + generatedByAiConsent: String + generatedByAiDetails: String + id: ID! + involvesAi: Boolean! + involvesFunding: Boolean! + involvesGeneration: Boolean! + involvesOther: Boolean! + otherAiDetails: String } @@ -3907,40 +5593,51 @@ type Category implements Node { Category name in English for analytics use. """ analyticsName: String! + """ Advised maximum goal limit in USD """ goalHelperLimit: Float + id: ID! + """ Category name. """ name: String! + """ Category parent """ parentCategory: Category + """ Parent id of the category. """ parentId: ID + """ The translatable phrase (e.g. "An art project")) """ projectPhrase: String + """ Projects in a category. """ - projects("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String, """Filter projects by publically accessible state.""" state: PublicProjectState!): CategoryProjectsConnection + projects("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String, "Filter projects by publically accessible state." state: PublicProjectState!): CategoryProjectsConnection + """ Category slug. """ slug: String! + """ Subcategories. """ - subcategories("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): CategorySubcategoriesConnection + subcategories("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): CategorySubcategoriesConnection + totalProjectCount: Int! + """ A URL to the category page. """ @@ -3955,14 +5652,17 @@ type CategoryProjectsConnection { A list of edges. """ edges: [ProjectEdge] + """ A list of nodes. """ nodes: [Project] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -3974,14 +5674,17 @@ enum PublicProjectState { Active and accepting pledges. """ LIVE + """ Successfully funded by deadline. """ SUCCESSFUL + """ Failed to fund by deadline. """ FAILED + """ Project is submitted and in prelaunch state. """ @@ -3996,14 +5699,17 @@ type CategorySubcategoriesConnection { A list of edges. """ edges: [CategoryEdge] + """ A list of nodes. """ nodes: [Category] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -4015,6 +5721,7 @@ type CategoryEdge { A cursor for use in pagination. """ cursor: String! + """ The item at the end of the edge. """ @@ -4026,10 +5733,15 @@ A permission for a collaborator on a project """ enum CollaboratorPermission { edit_project + edit_faq + post + comment + view_pledges + fulfillment } @@ -4041,14 +5753,17 @@ type Country { ISO ALPHA-2 code. """ code: CountryCode! + """ Country name. """ name: String! + """ Regions part of this country """ regions: [Region]! + """ Regions that Stripe supports for Stripe Accounts """ @@ -4063,6 +5778,7 @@ type Region { Region code. """ code: String! + """ Region name. """ @@ -4077,6 +5793,7 @@ type ProjectSharedDraft { The project id of a shared draft """ id: String! + """ The project name of a shared draft """ @@ -4088,7 +5805,9 @@ Curated collections of projects, represented by badges. """ type CuratedCollection { badge: String + name: String! + url: String! } @@ -4097,10 +5816,12 @@ type EnvironmentalCommitment { The type of environmental commitment """ commitmentCategory: EnvironmentalCommitmentCategory! + """ An environmental commitment description """ description: String! + id: ID! } @@ -4112,22 +5833,27 @@ enum EnvironmentalCommitmentCategory { long lasting design """ long_lasting_design + """ sustainable materials """ sustainable_materials + """ environmentally friendly factories """ environmentally_friendly_factories + """ sustainable distribution """ sustainable_distribution + """ reusability and recyclability """ reusability_and_recyclability + """ something else """ @@ -4147,15 +5873,19 @@ type ProjectProfile implements Node { The description of the projects from the project's profile. """ blurb: String + """ Featured image for this project profile. """ - featureImageUrl("""The width of the image in pixels.""" width: Int!): String + featureImageUrl("The width of the image in pixels." width: Int!): String + id: ID! + """ The name from the project's profile. """ name: String + """ The project profile's current state. """ @@ -4167,6 +5897,7 @@ Various project profile states. """ enum ProjectProfileState { INACTIVE + ACTIVE } @@ -4178,14 +5909,17 @@ enum BitlyHashes { A project's share link """ SHARE + """ A project's twitter share link """ TWEET + """ A project's facebook share link """ FACEBOOK + """ A project's email share link """ @@ -4200,10 +5934,12 @@ type Recommendations { Model used for these recommendations. """ modelName: String + """ Raw score from recommendations. """ rawScore: Float + """ Recommendations score. """ @@ -4218,14 +5954,17 @@ type RiskQuestion { The input type of the risk category. """ inputType: RiskCategoryInput! + """ The question associated with the risk category. """ question: String! + """ Whether or not this is a required category. """ required: Boolean! + """ The category identifier. """ @@ -4234,10 +5973,15 @@ type RiskQuestion { enum RiskCategoryType { delays + unexpected_pledge_volume + previous_experience + fulfillment_plan + project_budget_contingency + alternative_fulfillment_path } @@ -4246,6 +5990,7 @@ Describes the expected input type for a risk category. """ enum RiskCategoryInput { text + radio } @@ -4254,11 +5999,14 @@ type RiskStrategy { Creator's answer for mitigating this particular risk category. """ description: String! + id: ID! + """ The type of risk """ riskCategory: RiskCategoryType! + """ The question the creator is answering. """ @@ -4273,30 +6021,37 @@ enum ProjectState { Created and preparing for launch. """ STARTED + """ Ready for launch with a draft submitted for auto-approval. """ SUBMITTED + """ Active and accepting pledges. """ LIVE + """ Canceled by creator. """ CANCELED + """ Suspended for investigation, visible. """ SUSPENDED + """ Suspended and hidden. """ PURGED + """ Successfully funded by deadline. """ SUCCESSFUL + """ Failed to fund by deadline. """ @@ -4311,22 +6066,27 @@ type Spreadsheet { The data of the Google Sheet associated to this project """ data: [SpreadsheetDatum] + """ When the data for the sheet was last fetched successfully """ dataLastUpdatedAt: ISO8601DateTime + """ Can be `amount` or `percent` based on the creator's choice """ displayMode: String! + """ Whether a spreadsheet contains the minimum information to render a graphic budget """ hasDisplayableData: Boolean! + """ Whether the sheet is shareable with the public """ public: Boolean! + """ The URL of the Google Sheet associated to this project """ @@ -4341,18 +6101,22 @@ type SpreadsheetDatum { Expanded description of the purpose of that row """ description: String + """ The name of the row """ name: String + """ The funding category of the row """ phase: String + """ The spreadsheet row number """ rowNum: Int! + """ The dollar value of the row """ @@ -4367,22 +6131,27 @@ type ProjectStatus { Whether the project status is currently enabled or not (opted-in / opted-out) """ enabled: Boolean! + """ Id of a project status """ id: String! + """ The estimated due date for the next_status of the project """ nextDueDate: ISO8601DateTime! + """ The next_status of the project """ nextStatus: String! + """ The now_status of the project """ nowStatus: String! + """ When project status is updated """ @@ -4397,10 +6166,12 @@ type ProjectFeedback { When the answer was provided """ createdAt: ISO8601DateTime + """ The answer the user provided """ questionAnswer: String! + """ The name of the question the user answered """ @@ -4415,6 +6186,7 @@ type ProjectMilestone { When the Milestone was marked as completed """ completedAt: ISO8601DateTime + """ The category for the Milestone """ @@ -4426,6 +6198,7 @@ type MilestoneCategory { Name of category """ name: String! + """ Order to display category in for Project """ @@ -4437,18 +6210,22 @@ A project tag. """ type Tag implements Node { id: ID! + """ Tag name. """ name: String! + """ Projects associated with a tag. """ - projects("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String, """Filter projects by publically accessible state.""" state: PublicProjectState!): TagProjectsConnection + projects("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String, "Filter projects by publically accessible state." state: PublicProjectState!): TagProjectsConnection + """ Tag slug. """ slug: String! + """ A URL for the tag page. """ @@ -4463,14 +6240,17 @@ type TagProjectsConnection { A list of edges. """ edges: [ProjectEdge] + """ A list of nodes. """ nodes: [Project] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -4482,6 +6262,7 @@ enum TagScope { Tags currently visible in discovery interfaces. """ DISCOVER + """ Tags currently available as creative prompts. """ @@ -4496,23 +6277,29 @@ type Submission { The message from the creator appealing a rejection. """ appeal: Message + """ If the submission has messages between the creator and KSR staff. """ hasMessages: Boolean! + id: ID! + """ If the system has processed a submission for review. """ isProcessed: Boolean! + """ A submission's messages between the creator and KSR staff. """ messages: [Message] + """ The submission's current state. """ state: SubmissionState! + """ When was the project first submitted? """ @@ -4527,18 +6314,22 @@ enum SubmissionState { Not yet submitted. """ DRAFT + """ Submitted for review, waiting for acception or rejection. """ PENDING + """ Accepted by a reviewer, can launch. """ ACCEPTED + """ Rejection appealed, asking for re-review. """ APPEALED + """ Rejected by a reviewer, cannot launch. """ @@ -4550,18 +6341,22 @@ A project video """ type Video implements Node { id: ID! + """ Preview image url for the video """ previewImageUrl: String + """ Upload status of the video """ status: VideoState! + """ A video's tracks """ - tracks("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): VideoTracksConnection + tracks("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): VideoTracksConnection + """ A video's sources (hls, high, base) """ @@ -4576,10 +6371,12 @@ enum VideoState { Initial, incomplete status of a video """ PROCESSING + """ Processing the video file failed """ FAILED + """ Processing the video file successfully completed """ @@ -4591,7 +6388,9 @@ A video's sources """ type VideoSources { base: VideoSourceInfo + high: VideoSourceInfo + hls: VideoSourceInfo } @@ -4600,6 +6399,7 @@ The details of a video's source """ type VideoSourceInfo { src: String + type: String } @@ -4611,14 +6411,17 @@ type VideoTracksConnection { A list of edges. """ edges: [VideoTrackEdge] + """ A list of nodes. """ nodes: [VideoTrack] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -4630,6 +6433,7 @@ type VideoTrackEdge { A cursor for use in pagination. """ cursor: String! + """ The item at the end of the edge. """ @@ -4643,24 +6447,30 @@ type VideoTrack implements Node { """ A video track's cues (individaul caption with timestamp) """ - cues("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): VideoTrackCuesConnection + cues("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): VideoTrackCuesConnection + id: ID! + """ Import status of a video track """ importStatus: VideoTrackState! + """ The type of a video track (caption, subtitle) """ kind: String! + """ The language of the video track """ language: CaptionLanguage! + """ A video track public ID """ tid: Int! + trackSourceUrl: String! } @@ -4672,6 +6482,7 @@ type CaptionLanguage { The code used as a key for the language. """ code: CaptionLanguageCode! + """ The name of the language. """ @@ -4686,162 +6497,202 @@ enum CaptionLanguageCode { English """ EN + """ العربية """ AR + """ Català """ CA + """ Čeština """ CS + """ Dansk """ DA + """ Deutsch """ DE + """ ελληνικά """ EL + """ Español (España) """ ES_ES + """ Español (México) """ ES_MX + """ Suomi """ FI + """ Français """ FR + """ Gaeilge """ GA + """ עברית """ HE + """ हिन्दी """ HI + """ Hrvatski """ HR + """ Magyar """ HU + """ Bahasa Indonesia """ ID + """ Italiano """ IT + """ 日本語 """ JA + """ 한국어 """ KO + """ Bahasa Melayu """ MS + """ Norsk bokmål """ NB + """ नेपाली """ NPI + """ Nederlands """ NL + """ Diné bizaad """ NV + """ Polski """ PL + """ فارسی """ PES + """ دری """ PRS + """ Português (Brasil) """ PT_BR + """ Português (Portugal) """ PT_PT + """ Română """ RO + """ Русский """ RU + """ Slovenčina """ SK + """ Svenska """ SV + """ ภาษาไทย """ TH + """ Türkçe """ TR + """ українська """ UK + """ tiếng Việt """ VI + """ יידיש """ YI + """ 简体中文 """ ZH_CN + """ 繁體中文 """ @@ -4856,14 +6707,17 @@ enum VideoTrackState { Not import exists """ NONE + """ An import is in progress """ IMPORTING + """ An import was successful """ SUCCESS + """ An import attempt was unsuccessful """ @@ -4878,14 +6732,17 @@ type VideoTrackCuesConnection { A list of edges. """ edges: [VideoTrackCueEdge] + """ A list of nodes. """ nodes: [VideoTrackCue] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -4897,6 +6754,7 @@ type VideoTrackCueEdge { A cursor for use in pagination. """ cursor: String! + """ The item at the end of the edge. """ @@ -4918,25 +6776,26 @@ type Flagging implements Node { The detailed reason for the flagging. """ details: String! + """ The content that has been flagged by the user. """ flaggedContent: FlaggableContent + id: ID! + """ The general reason for the flagging. """ kind: FlaggingKind + """ The user who created the flagging. """ user: User } -""" -Types that can be reported by users -""" -union FlaggableContent = Message | Project +union FlaggableContent = Message|Project """ The bucket for a flagging (general reason). @@ -4946,206 +6805,257 @@ enum FlaggingKind { prohibited-items """ PROHIBITED_ITEMS + """ charity """ CHARITY + """ resale """ RESALE + """ false-claims """ FALSE_CLAIMS + """ misrep-support """ MISREP_SUPPORT + """ not-project """ NOT_PROJECT + """ guidelines-violation """ GUIDELINES_VIOLATION + """ post-funding-issues """ POST_FUNDING_ISSUES + """ spam """ SPAM + """ abuse """ ABUSE + """ vices-drugs """ VICES_DRUGS + """ vices-alcohol """ VICES_ALCOHOL + """ vices-weapons """ VICES_WEAPONS + """ health-claims """ HEALTH_CLAIMS + """ health-regulations """ HEALTH_REGULATIONS + """ health-gmos """ HEALTH_GMOS + """ health-live-animals """ HEALTH_LIVE_ANIMALS + """ health-energy-food-and-drink """ HEALTH_ENERGY_FOOD_AND_DRINK + """ financial-contests-coupons """ FINANCIAL_CONTESTS_COUPONS + """ financial-services """ FINANCIAL_SERVICES + """ financial-political-donations """ FINANCIAL_POLITICAL_DONATIONS + """ offensive-content-hate """ OFFENSIVE_CONTENT_HATE + """ offensive-content-porn """ OFFENSIVE_CONTENT_PORN + """ reselling """ RESELLING + """ plagiarism """ PLAGIARISM + """ prototype-misrepresentation """ PROTOTYPE_MISREPRESENTATION + """ misrep-support-impersonation """ MISREP_SUPPORT_IMPERSONATION + """ misrep-support-outstanding-fulfillment """ MISREP_SUPPORT_OUTSTANDING_FULFILLMENT + """ misrep-support-suspicious-pledging """ MISREP_SUPPORT_SUSPICIOUS_PLEDGING + """ misrep-support-other """ MISREP_SUPPORT_OTHER + """ not-project-charity """ NOT_PROJECT_CHARITY + """ not-project-stunt-or-hoax """ NOT_PROJECT_STUNT_OR_HOAX + """ not-project-personal-expenses """ NOT_PROJECT_PERSONAL_EXPENSES + """ not-project-barebones """ NOT_PROJECT_BAREBONES + """ not-project-other """ NOT_PROJECT_OTHER + """ guidelines-spam """ GUIDELINES_SPAM + """ guidelines-abuse """ GUIDELINES_ABUSE + """ post-funding-reward-not-as-described """ POST_FUNDING_REWARD_NOT_AS_DESCRIBED + """ post-funding-reward-delayed """ POST_FUNDING_REWARD_DELAYED + """ post-funding-shipped-never-received """ POST_FUNDING_SHIPPED_NEVER_RECEIVED + """ post-funding-creator-selling-elsewhere """ POST_FUNDING_CREATOR_SELLING_ELSEWHERE + """ post-funding-creator-uncommunicative """ POST_FUNDING_CREATOR_UNCOMMUNICATIVE + """ post-funding-creator-inappropriate """ POST_FUNDING_CREATOR_INAPPROPRIATE + """ post-funding-suspicious-third-party """ POST_FUNDING_SUSPICIOUS_THIRD_PARTY + """ comment-abuse """ COMMENT_ABUSE + """ comment-doxxing """ COMMENT_DOXXING + """ comment-offtopic """ COMMENT_OFFTOPIC + """ comment-spam """ COMMENT_SPAM + """ backing-abuse """ BACKING_ABUSE + """ backing-doxxing """ BACKING_DOXXING + """ backing-fraud """ BACKING_FRAUD + """ backing-spam """ @@ -5160,14 +7070,17 @@ type ProjectBackerFriendsConnection { A list of edges. """ edges: [UserEdge] + """ A list of nodes. """ nodes: [User] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -5179,6 +7092,7 @@ type UserEdge { A cursor for use in pagination. """ cursor: String! + """ The item at the end of the edge. """ @@ -5193,14 +7107,17 @@ type ProjectFaqConnection { A list of edges. """ edges: [ProjectFaqEdge] + """ A list of nodes. """ nodes: [ProjectFaq] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -5212,6 +7129,7 @@ type ProjectFaqEdge { A cursor for use in pagination. """ cursor: String! + """ The item at the end of the edge. """ @@ -5226,19 +7144,24 @@ type ProjectFaq { Faq answer """ answer: String! + """ When faq was posted """ createdAt: DateTime + id: ID! + """ position """ position: Int! + """ Faq question """ question: String! + """ When faq was updated """ @@ -5253,14 +7176,17 @@ type ProjectCollaboratorConnection { A list of edges. """ edges: [ProjectCollaboratorEdge] + """ A list of nodes. """ nodes: [User] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -5272,22 +7198,27 @@ type ProjectCollaboratorEdge { A cursor for use in pagination. """ cursor: String! + """ The email of a collaborator on a project """ email: String + """ The state of a collaborator's membership on a project """ membershipState: CollaboratorMembershipState! + """ The item at the end of the edge. """ node: User + """ The permissions of the collaborator """ permissions: [CollaboratorPermission!]! + """ The title of a collaborator on a project """ @@ -5299,8 +7230,11 @@ State of membership for a collaborator on a project """ enum CollaboratorMembershipState { invited + active + declined + inactive } @@ -5312,14 +7246,17 @@ type ProjectRewardConnection { A list of edges. """ edges: [RewardEdge] + """ A list of nodes. """ nodes: [Reward] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -5331,14 +7268,17 @@ type PostConnection { A list of edges. """ edges: [PostableEdge] + """ A list of nodes. """ nodes: [Postable] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -5350,6 +7290,7 @@ type PostableEdge { A cursor for use in pagination. """ cursor: String! + """ The item at the end of the edge. """ @@ -5364,91 +7305,114 @@ interface Postable { Actions you can currently perform """ actions: PostActions! + """ The author of the project update. """ author: User! + """ The author role of the project update. """ authorRole: PostAuthorRole! + """ The date the project update was created. """ createdAt: DateTime! + """ All rewards belonging to a post that were specifically marked by a creator to be excluded from receiving a post notification. This does not, however, include the no reward tier. """ - excludedRewards("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): RewardConnection + excludedRewards("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): RewardConnection + """ Users that have liked this project update. """ - fans("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): UserConnection + fans("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): UserConnection + """ True if creator has excluded the no reward tier from receiving a post notification. """ hasExcludedNoRewardTier: Boolean + id: ID! + """ All rewards that were marked to recieve a post notification, excluding the no reward tier. """ - includedRewards("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): RewardConnection + includedRewards("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): RewardConnection + """ Whether or not the current user has liked this project update. """ isLiked: Boolean! + """ True if marked as a public public post, false if the post is backers only. """ isPublic: Boolean! + """ True if the post's content is visible to the user. """ isVisible: Boolean! @deprecated(reason: "Query the read field in post abilities instead.") + """ The number of likes a post has. """ likesCount: Int! + """ The next post. """ nextPost: Postable + """ The project update number. """ number: Int! + """ The date the project update was pinned. """ pinnedAt: DateTime + """ The previous post. """ previousPost: Postable + """ Project that belongs to post. """ project: Project! + """ The date the project update was published. """ publishedAt: DateTime + """ How much time a creator or collaborator has left to edit the post. """ timeLeftToEdit: String + """ The project update's title. """ title: String + """ The post type. """ type: Post! + """ The date the project update was last edited. """ updatedAt: DateTime + """ The project update's URL. """ @@ -5460,6 +7424,7 @@ Post types """ enum Post { FreeformPost + CreatorInterview } @@ -5468,6 +7433,7 @@ The project roles a project update author can have. """ enum PostAuthorRole { creator + collaborator } @@ -5476,10 +7442,15 @@ List actions current user can perform on a post """ type PostActions { destroy: Boolean! + edit: Boolean! + pin: Boolean! + publish: Boolean! + read: Boolean! + update: Boolean! } @@ -5491,14 +7462,17 @@ type UserConnection { A list of edges. """ edges: [UserEdge] + """ A list of nodes. """ nodes: [User] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -5507,7 +7481,9 @@ Possible states for project posts. """ enum PostState { processing + published + draft } @@ -5516,6 +7492,7 @@ The possible post types. """ enum PostFormat { freeform_post + creator_interview } @@ -5527,14 +7504,17 @@ type ProjectTimelineConnection { A list of edges. """ edges: [ProjectTimelineEventEdge] + """ A list of nodes. """ nodes: [ProjectTimelineEvent] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -5546,6 +7526,7 @@ type ProjectTimelineEventEdge { A cursor for use in pagination. """ cursor: String! + """ The item at the end of the edge. """ @@ -5560,20 +7541,19 @@ type ProjectTimelineEvent { Entity attached to the event, e.g. project or post """ data: TimelineEventData + """ The time the event occurred """ timestamp: DateTime! + """ The event type. Corresponds to a subset of activity types """ type: String! } -""" -Types that can be reported by users -""" -union TimelineEventData = CreatorInterview | FreeformPost | Project +union TimelineEventData = CreatorInterview|FreeformPost|Project """ A creator interview. @@ -5583,123 +7563,154 @@ type CreatorInterview implements Node & Commentable & Postable { Actions you can currently perform """ actions: PostActions! + """ The interview answers associated with the creator interview. """ - answers("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String, """Includes skipped answers""" withSkipped: Boolean, """Includes blank answers""" withBlank: Boolean): InterviewAnswerConnection! + answers("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String, "Includes skipped answers" withSkipped: Boolean, "Includes blank answers" withBlank: Boolean): InterviewAnswerConnection! + """ The author of the project update. """ author: User! + """ The author role of the project update. """ authorRole: PostAuthorRole! + """ True if the current user can comment (considers restrictions) """ canComment: Boolean! + """ True if the current user can comment (does not consider restrictions) """ canCommentSansRestrictions: Boolean! + """ Whether a user can request an update about this project from the Creator """ canUserRequestUpdate: Boolean! + """ List of comments on the commentable """ - comments("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): CommentConnection + comments("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): CommentConnection + """ Comment count - defaults to root level comments only """ commentsCount(withReplies: Boolean = false): Int! + """ The date the project update was created. """ createdAt: DateTime! + """ The prompt for the creator interview. """ creatorPrompt: CreatorPrompt! + """ All rewards belonging to a post that were specifically marked by a creator to be excluded from receiving a post notification. This does not, however, include the no reward tier. """ - excludedRewards("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): RewardConnection + excludedRewards("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): RewardConnection + """ Users that have liked this project update. """ - fans("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): UserConnection + fans("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): UserConnection + """ True if creator has excluded the no reward tier from receiving a post notification. """ hasExcludedNoRewardTier: Boolean + id: ID! + """ All rewards that were marked to recieve a post notification, excluding the no reward tier. """ - includedRewards("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): RewardConnection + includedRewards("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): RewardConnection + """ Whether or not the current user has liked this project update. """ isLiked: Boolean! + """ True if marked as a public public post, false if the post is backers only. """ isPublic: Boolean! + """ True if the post's content is visible to the user. """ isVisible: Boolean! @deprecated(reason: "Query the read field in post abilities instead.") + """ The number of likes a post has. """ likesCount: Int! + """ The next post. """ nextPost: Postable + """ The project update number. """ number: Int! + """ The date the project update was pinned. """ pinnedAt: DateTime + """ The previous post. """ previousPost: Postable + """ Project that belongs to post. """ project: Project! + """ The root project id under which the comment is nested """ projectRelayId: ID! + """ The date the project update was published. """ publishedAt: DateTime + """ How much time a creator or collaborator has left to edit the post. """ timeLeftToEdit: String + """ The project update's title. """ title: String + """ The post type. """ type: Post! + """ The date the project update was last edited. """ updatedAt: DateTime + """ The project update's URL. """ @@ -5711,10 +7722,12 @@ A set of interview questions to be answered. """ type CreatorPrompt implements Node { id: ID! + """ All the questions in a creator prompt. """ - questions("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): InterviewQuestionConnection! + questions("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): InterviewQuestionConnection! + """ The creator prompt title. """ @@ -5729,14 +7742,17 @@ type InterviewQuestionConnection { A list of edges. """ edges: [InterviewQuestionEdge] + """ A list of nodes. """ nodes: [InterviewQuestion] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -5748,6 +7764,7 @@ type InterviewQuestionEdge { A cursor for use in pagination. """ cursor: String! + """ The item at the end of the edge. """ @@ -5761,15 +7778,18 @@ type InterviewQuestion implements Node { """ All the answers to the question. """ - answers("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): InterviewAnswerConnection! + answers("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): InterviewAnswerConnection! + """ The interview question text. """ body: String! + """ The interview question category. """ category: InterviewQuestionCategory! + id: ID! } @@ -5778,9 +7798,13 @@ The interview question category. """ enum InterviewQuestionCategory { learnings + blockers + inspiration + retrospective + process } @@ -5792,14 +7816,17 @@ type InterviewAnswerConnection { A list of edges. """ edges: [InterviewAnswerEdge] + """ A list of nodes. """ nodes: [InterviewAnswer] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -5811,6 +7838,7 @@ type InterviewAnswerEdge { A cursor for use in pagination. """ cursor: String! + """ The item at the end of the edge. """ @@ -5825,11 +7853,14 @@ type InterviewAnswer implements Node { The interview answer text. """ body: HTML + id: ID! + """ True if the creator skipped the associated question. """ isSkipped: Boolean! + """ The question """ @@ -5844,123 +7875,154 @@ type FreeformPost implements Node & Commentable & Postable { Actions you can currently perform """ actions: PostActions! + """ The author of the project update. """ author: User! + """ The author role of the project update. """ authorRole: PostAuthorRole! + """ The body of the post. """ body: HTML + """ True if the current user can comment (considers restrictions) """ canComment: Boolean! + """ True if the current user can comment (does not consider restrictions) """ canCommentSansRestrictions: Boolean! + """ Whether a user can request an update about this project from the Creator """ canUserRequestUpdate: Boolean! + """ List of comments on the commentable """ - comments("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): CommentConnection + comments("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): CommentConnection + """ Comment count - defaults to root level comments only """ commentsCount(withReplies: Boolean = false): Int! + """ The date the project update was created. """ createdAt: DateTime! + """ All rewards belonging to a post that were specifically marked by a creator to be excluded from receiving a post notification. This does not, however, include the no reward tier. """ - excludedRewards("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): RewardConnection + excludedRewards("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): RewardConnection + """ Users that have liked this project update. """ - fans("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): UserConnection + fans("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): UserConnection + """ True if creator has excluded the no reward tier from receiving a post notification. """ hasExcludedNoRewardTier: Boolean + id: ID! + """ All rewards that were marked to recieve a post notification, excluding the no reward tier. """ - includedRewards("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): RewardConnection + includedRewards("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): RewardConnection + """ Whether or not the current user has liked this project update. """ isLiked: Boolean! + """ True if marked as a public public post, false if the post is backers only. """ isPublic: Boolean! + """ True if the post's content is visible to the user. """ isVisible: Boolean! @deprecated(reason: "Query the read field in post abilities instead.") + """ The number of likes a post has. """ likesCount: Int! + """ The images associated with the post via native ui. """ nativeImages: [Image!] + """ The next post. """ nextPost: Postable + """ The project update number. """ number: Int! + """ The date the project update was pinned. """ pinnedAt: DateTime + """ The previous post. """ previousPost: Postable + """ Project that belongs to post. """ project: Project! + """ The root project id under which the comment is nested """ projectRelayId: ID! + """ The date the project update was published. """ publishedAt: DateTime + """ How much time a creator or collaborator has left to edit the post. """ timeLeftToEdit: String + """ The project update's title. """ title: String + """ The post type. """ type: Post! + """ The date the project update was last edited. """ updatedAt: DateTime + """ The project update's URL. """ @@ -5972,10 +8034,11 @@ A post image """ type Image { id: ID! + """ URL of the image """ - url("""The width of the image in pixels.""" width: Int): String + url("The width of the image in pixels." width: Int): String } """ @@ -5986,7 +8049,9 @@ type ProjectActions { Whether or not the user is in a state to see currency conversions """ displayConvertAmount: Boolean! + shareDraft: Boolean! + """ Whether or not the external survey should be displayed """ @@ -6001,36 +8066,65 @@ type BackerSurvey { Project- and reward- level survey questions """ backerQuestions: [Question!]! + """ The number of backers who have not answered the survey """ backersRemaining: Int! + """ Whether the survey has at least one question or option """ hasBackerQuestionsOrItemOptions: Boolean! + """ Whether the survey has at least one item-level question or option """ hasItemQuestionsOrOptions: Boolean! + id: ID! + + """ + An optional introduction to the backer survey. + """ + intro("The width of embedded assets in pixels." assetWidth: Int, "Whether to return the intro for the editor." forEditor: Boolean): HTML + """ When the survey was sent """ sentAt: DateTime + + """ + The percentage of surveys that have been completed + """ + surveyCompletePercentage: Float! +} + +""" +Location from which a project fulfills +""" +type StockLocation { + address: Address! + + id: ID! + + project: Project! + """ - The percentage of surveys that have been completed + Places this stock location ships to """ - surveyCompletePercentage: Float! + stockLocationMappings: [StockLocationMapping!]! } """ -Location from which a project fulfills +A place that a project stock location ships to """ -type StockLocation { - address: Address! +type StockLocationMapping { id: ID! - project: Project! + + location: Location! + + stockLocation: StockLocation! } """ @@ -6041,15 +8135,19 @@ type CheckoutWave { Whether the wave is currently active """ active: Boolean! + """ The end date of the wave """ endsAt: DateTime! + id: ID! + """ The associated project """ project: Project! + """ The start date of the wave """ @@ -6064,22 +8162,27 @@ enum FulfillmentStatus { No rewards made; default value """ NO_REWARDS_MADE + """ Some rewards made """ SOME_REWARDS_MADE + """ All rewards made """ ALL_REWARDS_MADE + """ Fulfilling some rewards """ FULFILLING_SOME_REWARDS + """ Fulfilling all rewards """ FULFILLING_ALL_REWARDS + """ Fulfillment complete """ @@ -6091,70 +8194,87 @@ type CreatorToolsPaths { The advanced analytics path """ advancedAnalyticsPath: String! + """ The backer report path """ backerReportPath: String! + """ The backer survey path """ backerSurveyPath: String! + """ The project collaborators path """ collaboratorsPath: String! + """ The contact path """ contactPath: String! + """ The creator faq path """ creatorFaqPath: String! + """ The creator handbook path """ creatorHandbookPath: String! + """ The project dashboard path """ dashboardPath: String! + """ The path to the disbursement page for a successful post-pledge redemption payout """ disbursementPath: String + """ The edit rewards project path """ editRewardsProjectPath: String! + """ The fulfillment dashboard path """ fulfillmentDashboardPath: String! + """ The help resources path """ helpResourcesPath: String! + """ The messages thread path """ messageThreadsPath: String! + """ The path to access creator pledge redemption tools """ pledgeRedemptionPath: String! + """ The draft posts path """ postsDashboardDraftsPath: String! + """ The published posts path """ postsDashboardPublishedPath: String! + """ The project build path """ projectBuildPath: String! + """ The project path """ @@ -6169,14 +8289,17 @@ type UserBackingsConnection { A list of edges. """ edges: [BackingEdge] + """ A list of nodes. """ nodes: [Backing] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! @deprecated(reason: "Please use backingsCount instead.") } @@ -6188,6 +8311,7 @@ type BackingEdge { A cursor for use in pagination. """ cursor: String! + """ The item at the end of the edge. """ @@ -6202,14 +8326,17 @@ type UserCreatedProjectsConnection { A list of edges. """ edges: [ProjectEdge] + """ A list of nodes. """ nodes: [Project] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -6218,6 +8345,7 @@ Ordering direction values """ enum OrderDirection { ASC + DESC } @@ -6229,16 +8357,21 @@ type ProjectsConnectionWithTotalCount { A list of edges. """ edges: [ProjectEdge] + """ A list of nodes. """ nodes: [Project] + """ Information to aid in pagination. """ pageInfo: PageInfo! + recommendationsEnabled: Boolean! + refTag: String + totalCount: Int! } @@ -6250,14 +8383,17 @@ type MembershipProjectsConnection { A list of edges. """ edges: [ProjectEdge] + """ A list of nodes. """ nodes: [Project] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -6269,14 +8405,17 @@ type UserActiveProjectsConnection { A list of edges. """ edges: [ProjectEdge] + """ A list of nodes. """ nodes: [Project] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -6288,14 +8427,17 @@ type UserInvitedProjectsConnection { A list of edges. """ edges: [ProjectEdge] + """ A list of nodes. """ nodes: [Project] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -6307,14 +8449,17 @@ type UserOrganizationsConnection { A list of edges. """ edges: [OrganizationEdge] + """ A list of nodes. """ nodes: [Organization] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -6326,6 +8471,7 @@ type OrganizationEdge { A cursor for use in pagination. """ cursor: String! + """ The item at the end of the edge. """ @@ -6337,10 +8483,12 @@ An organization """ type Organization implements Node { id: ID! + """ An organization's name """ name: String! + """ An organization's slug """ @@ -6352,9 +8500,13 @@ Possible states for an organization membership """ enum OrganizationMembershipState { PENDING + DENIED + ACTIVE + ADMIN + INACTIVE } @@ -6366,14 +8518,17 @@ type UserCuratedPagesConnection { A list of edges. """ edges: [CuratedPageEdge] + """ A list of nodes. """ nodes: [CuratedPage] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -6385,6 +8540,7 @@ type CuratedPageEdge { A cursor for use in pagination. """ cursor: String! + """ The item at the end of the edge. """ @@ -6399,11 +8555,14 @@ type CuratedPage implements Node { A curated page's description. """ description: String! + id: ID! + """ A curated page's unique URL identifier. """ slug: String! + """ A curated page's title. """ @@ -6418,14 +8577,17 @@ type UserFollowersConnection { A list of edges. """ edges: [UserEdge] + """ A list of nodes. """ nodes: [User] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -6437,14 +8599,17 @@ type UserFollowingConnection { A list of edges. """ edges: [UserEdge] + """ A list of nodes. """ nodes: [User] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -6456,14 +8621,17 @@ type UserSavedProjectsConnection { A list of edges. """ edges: [ProjectEdge] + """ A list of nodes. """ nodes: [Project] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -6475,14 +8643,17 @@ type UserConversationsConnection { A list of edges. """ edges: [ConversationEdge] + """ A list of nodes. """ nodes: [Conversation] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -6494,6 +8665,7 @@ type ConversationEdge { A cursor for use in pagination. """ cursor: String! + """ The item at the end of the edge. """ @@ -6505,10 +8677,15 @@ A mailbox """ enum MailboxType { ALL + INBOX + SENT + UNREAD + ARCHIVE + SPAM } @@ -6520,14 +8697,17 @@ type SurveyResponsesConnection { A list of edges. """ edges: [SurveyResponseEdge] + """ A list of nodes. """ nodes: [SurveyResponse] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -6539,6 +8719,7 @@ type SurveyResponseEdge { A cursor for use in pagination. """ cursor: String! + """ The item at the end of the edge. """ @@ -6553,14 +8734,17 @@ type AddressConnection { A list of edges. """ edges: [AddressEdge] + """ A list of nodes. """ nodes: [Address] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -6572,6 +8756,7 @@ type AddressEdge { A cursor for use in pagination. """ cursor: String! + """ The item at the end of the edge. """ @@ -6586,26 +8771,32 @@ type Notification { Are email notifications enabled for this topic """ email: Boolean! + """ The frequency of the notification """ frequency: UserNotificationFrequency + """ The ID of the Notification """ id: String! + """ Are mobile notifications enabled for this topic """ mobile: Boolean! + """ The ID of the associated Project """ projectId: String + """ The name of the associated Project """ projectName: String + """ The topic of the notification """ @@ -6617,16 +8808,27 @@ User notification topics """ enum UserNotificationTopic { messages + backings + creator_digest + updates + follower + friend_activity + friend_signup + comments + comment_replies + creator_edu + marketing_update + project_launch } @@ -6635,6 +8837,7 @@ User notification frequencies """ enum UserNotificationFrequency { once_a_day + twice_a_day } @@ -6646,46 +8849,62 @@ type NewsletterSubscriptions { The subscription to the AlumniNewsletter newsletter """ alumniNewsletter: Boolean! + """ The subscription to the ArtsCultureNewsletter newsletter """ artsCultureNewsletter: Boolean! + + """ + The subscription to the ComicsNewsletter newsletter + """ + comicsNewsletter: Boolean! + """ The subscription to the CreatorNewsletter newsletter """ creatorNewsletter: Boolean! + """ The subscription to the FilmNewsletter newsletter """ filmNewsletter: Boolean! + """ The subscription to the GamesNewsletter newsletter """ gamesNewsletter: Boolean! + """ The subscription to the HappeningNewsletter newsletter """ happeningNewsletter: Boolean! + """ The subscription to the InventNewsletter newsletter """ inventNewsletter: Boolean! + """ The subscription to the MusicNewsletter newsletter """ musicNewsletter: Boolean! + """ The subscription to the ProjectsYoullLoveNewsletter newsletter """ projectsYoullLoveNewsletter: Boolean! + """ The subscription to the PromoNewsletter newsletter """ promoNewsletter: Boolean! + """ The subscription to the PublishingNewsletter newsletter """ publishingNewsletter: Boolean! + """ The subscription to the WeeklyNewsletter newsletter """ @@ -6700,6 +8919,7 @@ type UserRestriction { Date when the restriction will be lifted. If null, the restriction is indefinite. """ releaseAt: DateTime + """ Type of restriction a user has """ @@ -6711,10 +8931,16 @@ Various restriction states, e.g. messaging, commenting """ enum UserRestrictionKind { messaging + commenting + pledging + submitting + edit_spotlight_pages + + phone } """ @@ -6725,6 +8951,7 @@ enum UsdType { The user has chosen USD as their currency and they are in the US """ domestic + """ The user has chosen USD as their currency but they are not in the US """ @@ -6739,14 +8966,17 @@ type LocationsConnection { A list of edges. """ edges: [LocationEdge] + """ A list of nodes. """ nodes: [Location] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -6758,6 +8988,7 @@ type LocationEdge { A cursor for use in pagination. """ cursor: String! + """ The item at the end of the edge. """ @@ -6772,84 +9003,111 @@ type Checkout implements Node { The action that the backer is attempting to complete with this checkout """ action: CheckoutAction! + """ The addons that the backer has chosen """ - addOns("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): RewardTotalCountConnection! + addOns("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): RewardTotalCountConnection! + """ The backing that the checkout is modifying. """ backing: Backing! + """ Desired amount backer wishes to pledge to the project, including the shipping amount, converted to the backer’s chosen currency """ convertedTotal: Money! + """ Estimated shipping maximum for the reward/addons chosen by the backer for their location """ estimatedShippingTotalMax: Money + """ Estimated shipping minimum for the reward/addons chosen by the backer for their location """ estimatedShippingTotalMin: Money + """ The translated reason that a checkout might have failed """ failedStateReason: String + """ Is true when the checkout was created by a guest account """ guest: Boolean! + id: ID! + + """ + Whether this checkout should be given the option to pledge over time + """ + isPledgeOverTimeEligible: Boolean! + """ Is true when more than one backer is checking out a limited/scarce reward at once """ isRacing: Boolean! + """ Whether the project can accept a pledge with SEPA account as the payment source """ isSepaEligible: Boolean! + """ Checks whether the checkout is valid prior to charging the user's card. """ - isValidForOnSessionCheckout("""the stripe payment method id, starting with either `card_` or `pm_` (the same id passed to stripe)""" stripePaymentMethodId: String!, """the client_secret returned by createPaymentIntent, starts with `pi_` (the same secret passed to stripe)""" paymentIntentClientSecret: String!): Validation! + isValidForOnSessionCheckout("the stripe payment method id, starting with either `card_` or `pm_` (the same id passed to stripe)" stripePaymentMethodId: String!, "the client_secret returned by createPaymentIntent, starts with `pi_` (the same secret passed to stripe)" paymentIntentClientSecret: String!): Validation! + """ If the checkout contains a limited reward, returns an ISO8601 date for when the claim on the reward is expired """ limitedRewardClaimedUntil: ISO8601DateTime + paymentUrl: String + """ Desired amount backer wishes to pledge to the project, excluding the shipping amount """ pledgeTotal: Money! + """ The URL to redirect to on a successful checkout """ redirectUrl: String! + """ The reward the backer is expecting """ reward: Reward + """ Where the user is based. """ shippingLocation: Location + """ Shipping amount for the reward chosen by the backer for their location """ shippingTotal: Money! + """ The current state of the checkout """ state: CheckoutState! + """ The full URL to redirect to after an on_session payment via Stripe """ stripeOnSessionPaymentRedirectUrl: String! + """ The full URL to redirect to after payment setup via Stripe """ stripePaymentSetupRedirectUrl: String! + """ Desired amount backer wishes to pledge to the project, including the shipping amount """ @@ -6861,8 +9119,11 @@ All available states for a checkout """ enum CheckoutState { AUTHORIZING + VERIFYING + SUCCESSFUL + FAILED } @@ -6871,10 +9132,15 @@ All actions a user may attempt to complete with a checkout """ enum CheckoutAction { PLEDGE + LATE_PLEDGE + ADJUSTMENT + SOURCE + REAUTH + AUTHENTICATE } @@ -6886,27 +9152,34 @@ type RefundCheckout { The total amount of the refund """ amount: Money! + """ The backing associated with the refund """ backing: Backing + """ If `requires_action` is true, `client_secret` should be used to initiate additional client-side authentication steps """ clientSecret: String + id: ID! + """ Whether this refund checkout requires additional client-side authentication steps (e.g. 3DS2) """ requiresAction: Boolean! + """ The state of the redund checkout """ state: RefundCheckoutState! + """ Reason given when state is in a failed state """ stateReason: String + """ The full URL to redirect to after payment setup via Stripe in refunds """ @@ -6918,8 +9191,11 @@ All available states for a refund checkout """ enum RefundCheckoutState { AUTHORIZING + SUCCESSFUL + ERRORED + FAILED } @@ -6941,14 +9217,17 @@ type ClaimMatches { The end position of the token in the source text """ end: Int + """ The matching strategy used to find the token (either 'POS' or 'regex'). """ matchType: String + """ The start position of the token in the source text """ start: Int + """ Token/phrase of matched claims language. """ @@ -6963,18 +9242,22 @@ enum GoalBuckets { Range from 0 to 1000 USD """ BUCKET_0 + """ Range from 1000 to 10000 USD """ BUCKET_1 + """ Range from 10000 to 100000 USD """ BUCKET_2 + """ Range from 100000 to 1000000 USD """ BUCKET_3 + """ Range from 1000000 to Infinity USD """ @@ -6989,18 +9272,22 @@ enum PledgedBuckets { Range from 0 to 1000 USD """ BUCKET_0 + """ Range from 1000 to 10000 USD """ BUCKET_1 + """ Range from 10000 to 100000 USD """ BUCKET_2 + """ Range from 100000 to 1000000 USD """ BUCKET_3 + """ Range from 1000000 to Infinity USD """ @@ -7015,10 +9302,12 @@ enum RaisedBuckets { Range from 0 to 75 percent """ BUCKET_0 + """ Range from 75 to 100 percent """ BUCKET_1 + """ Range from 100 to Infinity percent """ @@ -7030,7 +9319,9 @@ What model to use for project recommendations """ enum RecommendationsModel { CF + LSI + LDA } @@ -7039,9 +9330,13 @@ What source to use for project recommendations """ enum RecommendationsSource { PROJECT + BACKINGS + WATCHES + TASTE_PROFILE_LIKES + TASTE_PROFILE_DISLIKES } @@ -7050,11 +9345,17 @@ What order to sort projects in """ enum ProjectSort { MAGIC + POPULARITY + NEWEST + END_DATE + MOST_FUNDED + MOST_BACKED + DISTANCE } @@ -7066,10 +9367,11 @@ type UploadLimit { An array of the valid content types for an upload of this type. """ contentTypes: [String]! + """ Maximum file size in the provided units. """ - fileSize("""The unit to return the file size in.""" unit: UploadLimitFileSizeUnit!): Int! + fileSize("The unit to return the file size in." unit: UploadLimitFileSizeUnit!): Int! } """ @@ -7080,10 +9382,12 @@ enum UploadLimitFileSizeUnit { Bytes. """ BYTES + """ Kilobytes. """ KILOBYTES + """ Megabytes. """ @@ -7098,22 +9402,27 @@ enum UploadLimitFiletype { An asset video file. """ ASSET_VIDEO + """ An audio file. """ AUDIO + """ A photo file. """ PHOTO + """ A smaller video file. """ SMALLER_VIDEO + """ A sound file """ SOUND + """ A video file. """ @@ -7128,14 +9437,17 @@ type EditorialPageForAdminConnection { A list of edges. """ edges: [EditorialPageForAdminEdge] + """ A list of nodes. """ nodes: [EditorialPageForAdmin] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -7147,6 +9459,7 @@ type EditorialPageForAdminEdge { A cursor for use in pagination. """ cursor: String! + """ The item at the end of the edge. """ @@ -7161,59 +9474,74 @@ type EditorialPageForAdmin { Rich Text Editor property for attachableAssoc. """ attachableAssoc: String! + """ Rich Text Editor property for attachableId. """ attachableId: String! + """ When this page was created """ createdAt: DateTime! + """ This page's editor. """ editor: User! + """ (Deprecated) Slug where `/` is replaced by `-`. Used for ref tag and admin routing. """ flatSlug: String! + id: ID! + """ An identifier for the page. Used for ref tags. """ identifier: String! + """ Last revision """ lastRevision: EditorialRevisionForAdmin! + """ A link to the Looker Dashboard for this page, if any """ lookerDashboardUrl: String + """ The page name. """ name: String! + """ The page type. """ pageType: EditorialPageType! + """ Published revision """ publishedRevision: EditorialRevisionForAdmin + """ The revisions in reverse chronological order. """ - revisions("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): EditorialRevisionForAdminConnection! + revisions("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): EditorialRevisionForAdminConnection! + """ The slug of this page. Can include `/'. """ slug: String! + """ Stats for the past 30 days """ stats: EditorialPageStats! + """ When this page was last updated """ @@ -7225,9 +9553,13 @@ Editorial page types. """ enum EditorialPageType { article + resource + prompt + international + category } @@ -7239,46 +9571,57 @@ type EditorialRevisionForAdmin { The person who created this revision """ author: User! + """ When this editorial layout was created """ createdAt: DateTime! + """ The page metadata """ metadata: EditorialRevisionMetadata! + """ The modules for the editorial revision """ modules: [Editorial!]! + """ The page that this revision belongs to """ page: EditorialPage! + """ Is the editorial revision published? """ published: Boolean! + """ When the editorial revision was published. """ publishedAt: DateTime + """ The person who published this revision """ publisher: User + """ The sequence number for this revision """ sequence: Int! + """ Counts of translated / total strings for each locale """ translationStatus: [EditorialTranslationStatus!]! + """ When this editorial layout was created """ updatedAt: DateTime! + """ The revision uuid """ @@ -7293,23 +9636,29 @@ type EditorialPage { When this page was created """ createdAt: DateTime! + id: ID! + """ The page name. """ name: String! + """ The page type. """ pageType: EditorialPageType! + """ The currently published revision. Can be null. """ publishedRevision: EditorialRevision + """ The slug of this page. Can include `/'. """ slug: String! + """ When this page was last updated """ @@ -7324,14 +9673,17 @@ type EditorialRevision { The page metadata """ metadata: EditorialRevisionMetadata! + """ The modules for the editorial revision """ modules: [Editorial!]! + """ The page that this revision belongs to """ page: EditorialPage! + """ The revision uuid """ @@ -7343,42 +9695,46 @@ type EditorialRevisionMetadata { The revision description """ description: String! + """ The revision og_image """ ogImage: String + """ The revision title """ title: String! } -""" -Editorial tool to create and modify content modules on discovery pages -""" -union Editorial = ProjectCollection | NewsletterSignUp | PromoCollection | NewsCollection | FeaturedProjectCollection | SingleProjectContainer | BespokeComponent | Header | MastheadImage | ExploreSubcategories | Article | ShortText | EditorialRichText | SurveyEmbed +union Editorial = ProjectCollection|NewsletterSignUp|PromoCollection|NewsCollection|FeaturedProjectCollection|SingleProjectContainer|BespokeComponent|Header|MastheadImage|ExploreSubcategories|Article|ShortText|EditorialRichText|SurveyEmbed """ A curated set of projects based off a search query """ type ProjectCollection { id: ID! + """ The projects to display in this collection """ - projects("""The number of projects needed for this collection""" count: Int = 4): [Project!]! + projects("The number of projects needed for this collection" count: Int = 4): [Project!]! + """ The raw search query to populate the project collection """ query: String + """ The localized title of this project collection """ title: String + """ The label to track this project collection """ trackingLabel: String + """ The url that is linked to the project collection """ @@ -7393,19 +9749,24 @@ type NewsletterSignUp { Description of the newsletter """ description: String + id: ID! + """ The source that should be recorded for the newsletter signup """ newsletterSource: String + """ ID of the newsletter """ newsletterType: String + """ Headline in the newsletter signup """ signupHeadline: String + """ Name of the newsletter """ @@ -7417,26 +9778,32 @@ A curated set of promos """ type PromoCollection { id: ID! + """ Layout for this promo collection """ layout: EditorialPromoCollectionLayout! + """ Maximum number of items to display """ maxFeaturedItems: Int! + """ The promos in this collection """ - promos("""Request all the items""" all: Boolean = false): [Promo]! + promos("Request all the items" all: Boolean = false): [Promo]! + """ True if single item should be displayed full width """ soloItemFullWidth: Boolean! + """ Visual theme for this promo collection """ theme: EditorialPromoCollectionTheme! + """ Title for this collection. Can be blank. """ @@ -7448,6 +9815,7 @@ Visual themes for Editorial Promo Collections """ enum EditorialPromoCollectionTheme { PROMO + FLEX } @@ -7456,6 +9824,7 @@ Layouts for Editorial Promo Collections """ enum EditorialPromoCollectionLayout { TWO_COLUMNS + THREE_COLUMNS } @@ -7467,39 +9836,49 @@ type Promo { The url for the audio player. """ audioUrl: String + """ The background color within the promo """ backgroundColor: String + """ Promo call to action """ cta: String + """ The details of the promo module """ description: String + """ When this promo should be featured """ featuredAt: Date + id: ID! + """ The url for the background image of the promo module. """ imageUrl: String + """ The primary language of the promo module. """ language: String + """ The localized title of this promo module. """ title: String + """ The label to track this promo module """ trackingLabel: String + """ The url that is linked to the promo module. """ @@ -7511,10 +9890,12 @@ A curated set of news articles """ type NewsCollection { id: ID! + """ The news items in this collection """ - newsItems("""The number of news items to display in this collection""" limit: Int = 3, """Request all the items""" all: Boolean = false): [NewsItem]! + newsItems("The number of news items to display in this collection" limit: Int = 3, "Request all the items" all: Boolean = false): [NewsItem]! + """ The localized title of this news collection """ @@ -7529,35 +9910,44 @@ type NewsItem { The byline of this news item. """ attribution: String + """ The localized description of this news item. """ description: String + """ When this news item should be featured """ featuredAt: Date + id: ID! + """ The url for the background image of the news item. """ imageUrl: String + """ The primary language of the news item. `null` if available in all languages. """ language: String + """ The type of content of this news item. """ mediaType: String + """ The source or author of the news article. """ source: String + """ The localized title of this news item. """ title: String + """ The url that links to the news article. """ @@ -7572,19 +9962,24 @@ type FeaturedProjectCollection { The project collection query used to generate the featured project's project list """ collectionQueryOverride: String + """ The currently featured project """ currentlyFeaturedProject: FeaturedProjectItem! + """ The featured project items in this collection """ - featuredProjectItems("""The number of featured project items to display in this collection""" limit: Int = 1, """Request all the items""" all: Boolean = false): [FeaturedProjectItem]! + featuredProjectItems("The number of featured project items to display in this collection" limit: Int = 1, "Request all the items" all: Boolean = false): [FeaturedProjectItem]! + id: ID! + """ A recommended collection of projects, optionally controlled by collectionQueryOverride """ projectList: ProjectCollection! + """ The localized title of the featured project section. (eg: 'Featured project') """ @@ -7599,27 +9994,34 @@ type FeaturedProjectItem { The project description or, if specified, the project description override """ description: String! + """ When this featured project item should be featured """ featuredAt: Date + id: ID! + """ If specified, will override the image of the associated project """ imageOverride: String + """ The project that is featured """ project: Project! + """ The project id (pid) of the featured project """ projectId: Int! + """ The see more url for this featured section """ sectionUrl: String! + """ The project title or, if specified, the project title override """ @@ -7631,10 +10033,12 @@ Projects that can be shown in article """ type SingleProjectContainer { id: ID! + """ The currently selected project """ selectedProject: SingleProjectItem! + """ The selected project items in this collection """ @@ -7649,23 +10053,29 @@ type SingleProjectItem { The project description or, if specified, the project description override """ description: String! + id: ID! + """ If specified, will override the image of the associated project """ imageOverride: String + """ The project that is featured """ project: Project! + """ The project id (pid) of the featured project """ projectId: Int! + """ The see more url for this featured section """ sectionUrl: String! + """ The project title or, if specified, the project title override """ @@ -7680,11 +10090,14 @@ type BespokeComponent { Exact name of the React component (used to lookup the component) """ component: String + id: ID! + """ Language for which to display the React component """ language: String + """ Data properties to be passed down to the React component """ @@ -7701,15 +10114,19 @@ type Header { The localized blurb of this header """ blurb: String + """ The categories linked to this header """ categories: [Category!]! + id: ID! + """ The links of this header """ links: [HeaderLink!]! + """ The localized title of this header """ @@ -7724,10 +10141,12 @@ type HeaderLink { The localized text content of this link """ content: String! + """ True if the link should open a new tab when clicked on """ openInNewTab: Boolean! + """ The url this link points to """ @@ -7742,11 +10161,14 @@ type MastheadImage { The header text overlaying the masthead image. """ header: String + id: ID! + """ The url for the backgrorund image of the masthead. """ imageUrl: String + """ The smaller subheader text overlaying the masthead image. """ @@ -7761,15 +10183,18 @@ type ExploreSubcategories { The root category """ category: Category! + """ The root category database id """ categoryId: Int! + id: ID! + """ Top subcategories ordered by number of live projects descending """ - subcategories("""The maximum number of subcategories to return""" count: Int = 10): [ExploreSubcategory!]! + subcategories("The maximum number of subcategories to return" count: Int = 10): [ExploreSubcategory!]! } """ @@ -7780,14 +10205,16 @@ type ExploreSubcategory { The category database id """ categoryId: Int! + """ The subcategory name for the current language """ name: String! + """ The projects to display in this collection """ - projects("""The number of projects needed for this collection""" count: Int = 10): [Project!]! + projects("The number of projects needed for this collection" count: Int = 10): [Project!]! } """ @@ -7798,31 +10225,39 @@ type Article { AdminUI: Rich Text Editor property for attachableAssoc. """ attachableAssoc: String! + """ AdminUI: Rich Text Editor property for attachableId. """ attachableId: String! + """ The html body of the article. """ body: String! + """ The author of the article. Can be an empty string. """ byline: String! + """ Determines if the byline should be displayed at the top of the article """ displayTopByline: Boolean! + id: ID! + """ The date this article is published on. This date is only informative and won't affect module visibility. """ publicationDate: Date! + """ The subtitle of the article. Can be an empty string. """ subtitle: String! + """ The title of the article. Can be an empty string. """ @@ -7837,27 +10272,34 @@ type ShortText { Hex value of the background color. """ backgroundColor: String! + """ The plain text body of the Short Text. May contain line breaks. """ body: String! + """ The text of the CTA. Can be an empty string. """ ctaText: String! + """ The url the CTA points to. Can be an empty string. """ ctaUrl: String! + id: ID! + """ Hex value of the rule color. """ ruleColor: String! + """ The subtitle of the Short Text. Can be an empty string. """ subtitle: String! + """ The title of the Short Text. Can be an empty string. """ @@ -7872,14 +10314,17 @@ type EditorialRichText { AdminUI: Rich Text Editor property for attachableAssoc. """ attachableAssoc: String! + """ AdminUI: Rich Text Editor property for attachableId. """ attachableId: String! + """ The html body of the rich text module. """ body: String! + id: ID! } @@ -7891,10 +10336,12 @@ type SurveyEmbed { The url of the survey being embedded """ embedUrl: String! + """ Height of the embedded iframe """ height: Int + id: ID! } @@ -7903,10 +10350,12 @@ type EditorialTranslationStatus { The language """ locale: EditorialTranslationStatusLocale! + """ Total number of strings """ total: Int! + """ Number of strings translated """ @@ -7918,10 +10367,15 @@ Editorial locale """ enum EditorialTranslationStatusLocale { de + es + fr + it + ja + zh } @@ -7933,10 +10387,12 @@ type EditorialRevisionForAdminConnection { A list of edges. """ edges: [EditorialRevisionForAdminEdge] + """ A list of nodes. """ nodes: [EditorialRevisionForAdmin] + """ Information to aid in pagination. """ @@ -7951,6 +10407,7 @@ type EditorialRevisionForAdminEdge { A cursor for use in pagination. """ cursor: String! + """ The item at the end of the edge. """ @@ -7959,8 +10416,11 @@ type EditorialRevisionForAdminEdge { type EditorialPageStats { backingsCount: Int! + backingsUsd: Int! + pageViews: Int! + projectClicks: Int! } @@ -7969,8 +10429,11 @@ Field you can sort Editorial Pages by """ enum EditorialPageSortField { NAME + CREATED_AT + UPDATED_AT + SLUG } @@ -7979,6 +10442,7 @@ Direction to sort Editorial Pages """ enum EditorialPageSortDirection { ASC + DESC } @@ -7990,14 +10454,17 @@ type EditorialConnection { A list of edges. """ edges: [EditorialEdge] + """ A list of nodes. """ nodes: [Editorial] + """ Information to aid in pagination. """ pageInfo: PageInfo! + slug: String! } @@ -8009,6 +10476,7 @@ type EditorialEdge { A cursor for use in pagination. """ cursor: String! + """ The item at the end of the edge. """ @@ -8023,18 +10491,22 @@ type FundingCurrency { Currency code """ currency: CurrencyCode! + """ Does the currency use decimals (not zero-decimal) """ decimal: Boolean! + """ Maximum amount a creator can specify for a project goal """ maxGoal: Int! + """ Maximum amount a backer can specify for a pledge """ maxPledge: Int! + """ Minimum amount a backer can specify for a pledge """ @@ -8049,14 +10521,17 @@ type TagsConnection { A list of edges. """ edges: [TagEdge] + """ A list of nodes. """ nodes: [Tag] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -8068,6 +10543,7 @@ type TagEdge { A cursor for use in pagination. """ cursor: String! + """ The item at the end of the edge. """ @@ -8082,14 +10558,17 @@ type QuizProjectsConnection { A list of edges. """ edges: [QuizProjectEdge] + """ A list of nodes. """ nodes: [QuizProject] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -8101,6 +10580,7 @@ type QuizProjectEdge { A cursor for use in pagination. """ cursor: String! + """ The item at the end of the edge. """ @@ -8115,7 +10595,9 @@ type QuizProject { The editorialized version of the project blurb """ editorializedBlurb: String! + id: ID! + """ All the likeable attributes for a quiz project """ @@ -8127,6 +10609,7 @@ An attribute about a quiz project that a user can select in the taste profile qu """ type LikeableAttribute { id: ID! + """ The text of the attribute. """ @@ -8141,10 +10624,12 @@ type KsrFact { Fact contributor """ contributor: String + """ Fact date """ date: String + """ Kickstarter fact """ @@ -8158,7 +10643,7 @@ type PledgeProjectsOverview { """ List of pledged projects """ - pledges("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): PledgedProjectsOverviewPledgesConnection + pledges("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): PledgedProjectsOverviewPledgesConnection } """ @@ -8169,14 +10654,17 @@ type PledgedProjectsOverviewPledgesConnection { A list of edges. """ edges: [PledgeProjectOverviewItemEdge] + """ A list of nodes. """ nodes: [PledgeProjectOverviewItem] + """ Information to aid in pagination. """ pageInfo: PageInfo! + totalCount: Int! } @@ -8188,6 +10676,7 @@ type PledgeProjectOverviewItemEdge { A cursor for use in pagination. """ cursor: String! + """ The item at the end of the edge. """ @@ -8202,10 +10691,12 @@ type PledgeProjectOverviewItem { backing details """ backing: Backing + """ tags """ flags: [PledgedProjectsOverviewPledgeFlags!] + """ tier type """ @@ -8220,10 +10711,12 @@ type PledgedProjectsOverviewPledgeFlags { Flag icon type, e.g. time, alert, etc. """ icon: String + """ Translated flag message """ message: String + """ Flag type, e.g. warning, alert, etc. """ @@ -8238,550 +10731,721 @@ type Mutation { Updates an address if the user rejects or accepts a suggestion """ acceptOrRejectAddressSuggestion(input: AcceptOrRejectAddressSuggestionInput!): AcceptOrRejectAddressSuggestionPayload + """ Activates the prelaunch page for a project """ activatePrelaunch(input: ActivateProjectPrelaunchInput!): ActivateProjectPrelaunchPayload + """ Updates the toggle-able options of the spreadsheet graph """ answerProjectFeedbackQuestion(input: AnswerProjectFeedbackQuestionInput!): AnswerProjectFeedbackQuestionPayload + """ Given a checkout that already exists, this mutation just applies a specific payment source to its backing. That's it! If you need to create a checkout and backing from scratch, use CreateBackingType. """ applyPaymentSourceToCheckout(input: ApplyPaymentSourceToCheckoutInput!): ApplyPaymentSourceToCheckoutPayload + """ Batch updates addresses for users's active survey responses """ batchUpdateSurveyResponseAddresses(input: BatchUpdateSurveyResponseAddressesInput!): BatchUpdateSurveyResponseAddressesPayload + """ Block a user """ blockUser(input: BlockUserInput!): BlockUserPayload + """ Bulk edits the entire set of backer questions for a backer survey """ bulkEditQuestions(input: BulkEditQuestionsInput!): BulkEditQuestionsPayload + """ Cancel a pledged backing """ cancelBacking(input: CancelBackingInput!): CancelBackingPayload + """ Cancel a live Kickstarter project. """ cancelProject(input: CancelProjectInput!): CancelProjectPayload + clearUserUnseenActivity(input: ClearUserUnseenActivityInput!): ClearUserUnseenActivityPayload + """ Complete a checkout originating from an session payment """ completeOnSessionCheckout(input: CompleteOnSessionCheckoutInput!): CompleteOnSessionCheckoutPayload + """ Confirm payment and complete the order """ completeOrder(input: CompleteOrderInput!): CompleteOrderPayload + + """ + Complete a $0 order + """ + completeZeroDollarOrder(input: CompleteZeroDollarOrderInput!): CompleteZeroDollarOrderPayload + """ Confirm order address """ confirmOrderAddress(input: ConfirmOrderAddressInput!): ConfirmOrderAddressPayload + """ Copy Reward Items from one Project to another. """ copyRewardItems(input: CopyRewardItemsInput!): CopyRewardItemsPayload + """ Save a new address. """ createAddress(input: CreateAddressInput!): CreateAddressPayload + + """ + Add an adjustment to a backing + """ + createAdjustment(input: CreateAdjustmentInput!): CreateAdjustmentPayload + """ [DEPRECATED in favor of CreateBackingType] Create a checkout with Apple Pay. """ createApplePayBacking(input: CreateApplePayBackingInput!): CreateApplePayBackingPayload + """ Create an asset. """ createAsset(input: CreateAssetInput!): CreateAssetPayload + """ Creates an attribution event. Specifying a project will pass the project properties for attribution events. Sending this request as a logged-in user passes that user's properties as well. Any passed-in property with the same name overwrites the generated properties. """ createAttributionEvent(input: CreateAttributionEventInput!): CreateAttributionEventPayload + """ Creates a backer survey and generates master variants for each project item if needed """ createBackerSurvey(input: CreateBackerSurveyInput!): CreateBackerSurveyPayload + """ Create a backing and checkout and process payment. """ createBacking(input: CreateBackingInput!): CreateBackingPayload + """ Create a backing and checkout without syncing to Rosie """ createCheckout(input: CreateCheckoutInput!): CreateCheckoutPayload + """ Post a comment """ createComment(input: PostCommentInput!): PostCommentPayload + """ Create a country signup. """ createCountrySignup(input: CreateCountrySignupInput!): CreateCountrySignupPayload + """ Create a new creator interview """ createCreatorInterview(input: CreateCreatorInterviewInput!): CreateCreatorInterviewPayload + """ Create an Editorial Layout. """ createEditorialLayout(input: CreateEditorialLayoutTypeInput!): CreateEditorialLayoutTypePayload + """ Create a flagging (report) of a piece flaggable content. """ createFlagging(input: CreateFlaggingInput!): CreateFlaggingPayload + """ Create a new project post/update """ createFreeformPost(input: CreateFreeformPostInput!): CreateFreeformPostPayload + """ Creates an option type and values for an item """ createOption(input: CreateOptionInput!): CreateOptionPayload + createOrUpdateBackingAddress(input: CreateOrUpdateBackingAddressInput!): CreateOrUpdateBackingAddressPayload + """ Creates/updates item tax config and creates/updates tax category for an item """ createOrUpdateItemTaxConfig(input: CreateOrUpdateItemTaxConfigInput!): CreateOrUpdateItemTaxConfigPayload + """ Create a Stripe PaymentIntent in order to collect an on-session payment via the Stripe PaymentElement """ createPaymentIntent(input: CreatePaymentIntentInput!): CreatePaymentIntentPayload + """ Create a payment source """ createPaymentSource(input: CreatePaymentSourceInput!): CreatePaymentSourcePayload + """ Start a Kickstarter project. """ createProject(input: CreateProjectInput!): CreateProjectPayload + """ Post a project comment """ createProjectComment(input: PostProjectCommentInput!): PostProjectCommentPayload + """ Creates a Deposit Account on Rosie, and a Stripe Connect Account. """ createProjectDepositAccount(input: CreateProjectDepositAccountInput!): CreateProjectDepositAccountPayload + """ Create a project image. """ createProjectImage(input: CreateProjectImageInput!): CreateProjectImagePayload + createProjectPaymentSource(input: CreateProjectPaymentSourceInput!): CreateProjectPaymentSourcePayload + createProjectUpdateRequest(input: CreateProjectUpdateRequestInput!): CreateProjectUpdateRequestPayload + """ Create a project video. """ createProjectVideo(input: CreateProjectVideoInput!): CreateProjectVideoPayload + """ Creates a question for an object """ createQuestion(input: CreateQuestionInput!): CreateQuestionPayload + """ create a reward on a Kickstarter project. """ createReward(input: CreateRewardInput!): CreateRewardPayload + """ Create an item which is available through the project's backer rewards. """ createRewardItem(input: CreateRewardItemInput!): CreateRewardItemPayload + """ Create a Stripe SetupIntent in order to render new Stripe Elements """ createSetupIntent(input: CreateSetupIntentInput!): CreateSetupIntentPayload + """ Creates a copy of the master Sheet and shares it with the project owner """ createSheetForProject(input: CreateSheetForProjectInput!): CreateSheetForProjectPayload + """ Creates a track event """ createTrackEvent(input: CreateTrackEventInput!): CreateTrackEventPayload + """ Creates a new registered user """ createUser(input: CreateUserInput!): CreateUserPayload + """ Add a user's slug. """ createUserSlug(input: CreateUserSlugInput!): CreateUserSlugPayload + """ Add a user's website. """ createUserUrl(input: CreateUserUrlsInput!): CreateUserUrlsPayload + """ Create a video track (caption) for a Project Video """ createVideoTrack(input: CreateVideoTrackInput!): CreateVideoTrackPayload + """ Creates a checkout wave for a given project, assuming all pre-requisites are complete. """ createWave(input: CreateWaveInput!): CreateWavePayload + """ Deactivates the prelaunch page for a project """ deactivatePrelaunch(input: DeactivateProjectPrelaunchInput!): DeactivateProjectPrelaunchPayload + """ Deactivate a collaborator on a project. """ deactivateProjectCollaborator(input: DeactivateProjectCollaboratorInput!): DeactivateProjectCollaboratorPayload + """ Deletes an address """ deleteAddress(input: DeleteAddressInput!): DeleteAddressPayload + """ Delete a asset. """ deleteAsset(input: DeleteAssetInput!): DeleteAssetPayload + """ Deletes a backer survey """ deleteBackerSurvey(input: DeleteBackerSurveyInput!): DeleteBackerSurveyPayload + """ Delete a comment """ deleteComment(input: DeleteCommentInput!): DeleteCommentPayload + """ Deletes an option type and values for an item """ deleteOption(input: DeleteOptionInput!): DeleteOptionPayload + """ Delete a project post """ deletePost(input: DeletePostInput!): DeletePostPayload + """ Delete an unlaunched Kickstarter project. """ deleteProject(input: DeleteProjectInput!): DeleteProjectPayload + """ Delete a comment """ deleteProjectComment(input: DeleteProjectCommentInput!): DeleteProjectCommentPayload + """ Delete a project image. """ deleteProjectImage(input: DeleteProjectImageInput!): DeleteProjectImagePayload + """ Delete a project video. """ deleteProjectVideo(input: DeleteProjectVideoInput!): DeleteProjectVideoPayload + """ Deletes a question """ deleteQuestion(input: DeleteQuestionInput!): DeleteQuestionPayload + """ Delete a reward from a project """ deleteReward(input: DeleteRewardInput!): DeleteRewardPayload + """ Delete a reward item from a project """ deleteRewardItem(input: DeleteRewardItemInput!): DeleteRewardItemPayload + + """ + Deletes a stock location and associated address + """ + deleteStockLocation(input: DeleteStockLocationInput!): DeleteStockLocationPayload + """ Delete a user's url """ deleteUserUrl(input: DeleteUserUrlsInput!): DeleteUserUrlsPayload + """ Delete a video track (caption) from a video """ deleteVideoTrack(input: DeleteVideoTrackInput!): DeleteVideoTrackPayload + """ Adds disliked projects to a users taste profile """ dislikeProject(input: DislikeProjectInput!): DislikeProjectPayload + """ End late pledges for a Kickstarter project. """ endLatePledges(input: EndLatePledgesInput!): EndLatePledgesPayload + """ Causes the current user to follow a specified user """ followUser(input: FollowUserInput!): FollowUserPayload + """ Enable the preview url for a Kickstarter project. """ generateProjectPreview(input: GenerateProjectPreviewInput!): GenerateProjectPreviewPayload + """ Invite a new collaborator on a project """ inviteProjectCollaborator(input: InviteProjectCollaboratorInput!): InviteProjectCollaboratorPayload + """ Launch a Kickstarter project. """ launchProject(input: LaunchProjectInput!): LaunchProjectPayload + """ Like a specified project update """ likePost(input: LikePostInput!): LikePostPayload + """ Adds a like for the passed in project to the user's taste profile """ likeProject(input: LikeProjectInput!): LikeProjectPayload + """ Adds a quiz project and any attributes the user has liked to their taste profile """ likeQuizProject(input: LikeQuizProjectInput!): LikeQuizProjectPayload + """ Locks backer address changes for a project """ lockAddresses(input: LockAddressesInput!): LockAddressesPayload + """ Migrate's a project's eligible backings to new fulfillment status tool. """ migrateToFulfillmentStatus(input: MigrateToFulfillmentStatusInput!): MigrateToFulfillmentStatusPayload + """ Delete a user's payment source """ paymentSourceDelete(input: PaymentSourceDeleteInput!): PaymentSourceDeletePayload + """ Pin a project update """ pinPost(input: PinPostInput!): PinPostPayload + """ Exclude a reward's backers from getting notifications about a post. """ postExcludeReward(input: PostExcludeRewardInput!): PostExcludeRewardPayload + """ Include a reward's backers in notifications about a post. """ postIncludeReward(input: PostIncludeRewardInput!): PostIncludeRewardPayload + """ Publish an Editorial Layout. """ publishEditorialLayout(input: PublishEditorialLayoutTypeInput!): PublishEditorialLayoutTypePayload + """ Publish a project post """ publishPost(input: PublishPostInput!): PublishPostPayload + """ Refreshes the spreadsheet data from the sheet """ refreshSpreadsheetData(input: RefreshSpreadsheetDataInput!): RefreshSpreadsheetDataPayload + """ Removes the spreadsheet associated to a project """ removeSheetFromProject(input: RemoveSheetFromProjectInput!): RemoveSheetFromProjectPayload + reportSpam(input: ReportSpamInput!): ReportSpamPayload + """ Requests a password reset email. """ requestPasswordReset(input: RequestPasswordResetInput!): RequestPasswordResetPayload + """ Reset a backer survey """ resetBackerSurvey(input: ResetBackerSurveyInput!): ResetBackerSurveyPayload + """ Send a message """ sendMessage(input: SendMessageInput!): SendMessagePayload + """ Send a message for a project submission """ sendSubmissionMessage(input: SendSubmissionMessageInput!): SendSubmissionMessagePayload + """ Sends a backer survey and creates backer carts """ sendSurvey(input: SendSurveyInput!): SendSurveyPayload + """ Sets an address as the primary/default address for the user """ setAddressAsPrimary(input: SetAddressAsPrimaryInput!): SetAddressAsPrimaryPayload + """ Sets address_collection_enabled """ setAddressCollectionEnabled(input: SetAddressCollectionEnabledInput!): SetAddressCollectionEnabledPayload + """ Sets the fulfillment status of multiple backings at once. """ setBackingFulfillmentStatuses(input: SetBackingFulfillmentStatusesInput!): SetBackingFulfillmentStatusesPayload + setBackingNote(input: SetBackingNoteInput!): SetBackingNotePayload + """ Set a project slug. """ setProjectSlug(input: SetProjectSlugInput!): SetProjectSlugPayload + """ Updates the project status """ setProjectStatus(input: SetProjectStatusInput!): SetProjectStatusPayload + """ Sets tax category for an item """ setTaxCategory(input: SetTaxCategoryInput!): SetTaxCategoryPayload + """ Signs in or sign up a user via the Sign in With Apple service """ signInWithApple(input: SignInWithAppleInput!): SignInWithApplePayload + submitProject(input: SubmitProjectInput!): SubmitProjectPayload + """ Refund a backing. """ submitRefundCheckout(input: SubmitRefundCheckoutInput!): SubmitRefundCheckoutPayload + """ Associates backing with an address, updates cart with item preference selections, and creates answers to survey questions. """ submitResponses(input: SubmitResponsesInput!): SubmitResponsesPayload + """ Submits the VAT number to rosie """ submitVatNumber(input: SubmitVatNumberInput!): SubmitVatNumberPayload + """ Confirm payment and complete the order """ succeedOrder(input: SucceedOrderInput!): SucceedOrderPayload + """ Toggle whether a comment is pinned. """ toggleCommentPin(input: ToggleCommentPinInput!): ToggleCommentPinPayload + """ Toggles a milestone for a given project and category to completed or not completed """ toggleProjectMilestone(input: ToggleProjectMilestoneInput!): ToggleProjectMilestonePayload + """ Enable & disable the preview url for a Kickstarter project. """ toggleProjectPreview(input: ToggleProjectPreviewInput!): ToggleProjectPreviewPayload + """ Translate an Editorial Layout. """ translateEditorialLayout(input: TranslateEditorialLayoutTypeInput!): TranslateEditorialLayoutTypePayload + """ Triggers third party event """ triggerThirdPartyEvent(input: TriggerThirdPartyEventInput!): TriggerThirdPartyEventPayload + """ Unblock a user """ unblockUser(input: UnblockUserInput!): UnblockUserPayload + """ Removes a like for the passed in project from the user's taste profile """ undislikeProject(input: UndislikeProjectInput!): UndislikeProjectPayload + """ Causes the current user to unfollow a specified user """ unfollowUser(input: UnfollowUserInput!): UnfollowUserPayload + """ Unlike a specified project update """ unlikePost(input: UnlikePostInput!): UnlikePostPayload + """ Removes a like for the passed in project from the user's taste profile """ unlikeProject(input: UnlikeProjectInput!): UnlikeProjectPayload + """ Unpin a project update """ unpinPost(input: UnpinPostInput!): UnpinPostPayload + """ Unpublish an Editorial Layout. """ unpublishEditorialLayout(input: UnpublishEditorialLayoutTypeInput!): UnpublishEditorialLayoutTypePayload + untagProject(input: UntagProjectInput!): UntagProjectPayload + unwatchProject(input: UnwatchProjectInput!): UnwatchProjectPayload + """ Update the backing completed at field with a backing_completed toggle """ updateBackerCompleted(input: UpdateBackerCompletedInput!): UpdateBackerCompletedPayload + + """ + Updates backer survey with a rich text intro + """ + updateBackerSurveyIntro(input: UpdateBackerSurveyIntroInput!): UpdateBackerSurveyIntroPayload + """ Update an existing backing for a Kickstarter project. """ updateBacking(input: UpdateBackingInput!): UpdateBackingPayload + """ Update a backing's payment source """ updateBackingPaymentSource(input: UpdateBackingPaymentSourceInput!): UpdateBackingPaymentSourcePayload + """ Handle a user's updated consent for data collection purposes. """ updateConsent(input: UpdateConsentInput!): UpdateConsentPayload + """ Update a creator interview """ updateCreatorInterview(input: UpdateCreatorInterviewInput!): UpdateCreatorInterviewPayload + + """ + Creates, updates, or destroys associations between an Order and a backer's selected Cross Sells + """ + updateCrossSellsOnOrder(input: UpdateCrossSellsOnOrderInput!): UpdateCrossSellsOnOrderPayload + """ Update a project's fulfillment_modal_dismissed_at timestamp. """ updateFulfillmentModalDismissedAt(input: UpdateFulfillmentModalDismissedAtInput!): UpdateFulfillmentModalDismissedAtPayload + """ Update a project's fulfillment_status. """ updateFulfillmentStatus(input: UpdateFulfillmentStatusInput!): UpdateFulfillmentStatusPayload + """ Updates an array of ItemVariant """ updateItemVariants(input: UpdateItemVariantsInput!): UpdateItemVariantsPayload + """ Updates an option type and values for an item """ updateOption(input: UpdateOptionInput!): UpdateOptionPayload + """ Update OrderableConfig for an Orderable """ updateOrderableConfig(input: UpdateOrderableConfigInput!): UpdateOrderableConfigPayload + """ Update a project post """ updatePost(input: UpdatePostInput!): UpdatePostPayload + """ Update an existing Kickstarter project. """ updateProject(input: UpdateProjectInput!): UpdateProjectPayload + """ Update a collaborator on a project. """ updateProjectCollaborator(input: UpdateProjectCollaboratorInput!): UpdateProjectCollaboratorPayload + updateProjectPaymentSource(input: UpdateProjectPaymentSourceInput!): UpdateProjectPaymentSourcePayload + updateProjectRiskStrategies(input: UpdateProjectRiskStrategiesInput!): UpdateProjectRiskStrategiesPayload + updateProjectVerifiedCreatorName(input: UpdateProjectVerifiedCreatorNameInput!): UpdateProjectVerifiedCreatorNamePayload + """ Updates a question """ updateQuestion(input: UpdateQuestionInput!): UpdateQuestionPayload + """ Update a reward on a Kickstarter project. """ updateReward(input: UpdateRewardInput!): UpdateRewardPayload + """ Update an item which is available through the project's backer rewards. """ updateRewardItem(input: UpdateRewardItemInput!): UpdateRewardItemPayload + """ Update ShippingRates for a BackerReward """ updateRewardShippingRates(input: UpdateRewardShippingRatesInput!): UpdateRewardShippingRatesPayload + """ Updates the toggle-able options of the spreadsheet graph """ updateSpreadsheetToggles(input: UpdateSpreadsheetTogglesInput!): UpdateSpreadsheetTogglesPayload + """ Update user account """ updateUserAccount(input: UpdateUserAccountInput!): UpdateUserAccountPayload + """ Update user notification for a topic """ updateUserNotification(input: UpdateUserNotificationInput!): UpdateUserNotificationPayload + """ Update user notification frequency for a topic """ updateUserNotificationFrequency(input: UpdateUserNotificationFrequencyInput!): UpdateUserNotificationFrequencyPayload + """ Update user's profile """ updateUserProfile(input: UpdateUserProfileInput!): UpdateUserProfilePayload + """ Creates a valid user setting """ updateUserSetting(input: UpdateUserSettingInput!): UpdateUserSettingPayload + """ send email verification """ userSendEmailVerification(input: UserSendEmailVerificationInput!): UserSendEmailVerificationPayload + watchProject(input: WatchProjectInput!): WatchProjectPayload } @@ -8793,6 +11457,7 @@ type RequestPasswordResetPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + email: Email } @@ -8806,6 +11471,7 @@ Autogenerated input type of RequestPasswordReset """ input RequestPasswordResetInput { email: Email + """ A unique identifier for the client performing the mutation. """ @@ -8820,6 +11486,7 @@ type FollowUserPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + user: User } @@ -8828,6 +11495,7 @@ Autogenerated input type of FollowUser """ input FollowUserInput { id: ID! + """ A unique identifier for the client performing the mutation. """ @@ -8842,6 +11510,7 @@ type UnfollowUserPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + user: User } @@ -8850,6 +11519,7 @@ Autogenerated input type of UnfollowUser """ input UnfollowUserInput { id: ID! + """ A unique identifier for the client performing the mutation. """ @@ -8864,7 +11534,9 @@ type BlockUserPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + currentUser: User + success: Boolean! } @@ -8873,6 +11545,7 @@ Autogenerated input type of BlockUser """ input BlockUserInput { blockUserId: ID! + """ A unique identifier for the client performing the mutation. """ @@ -8887,7 +11560,9 @@ type UnblockUserPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + currentUser: User + success: Boolean! } @@ -8896,6 +11571,7 @@ Autogenerated input type of UnblockUser """ input UnblockUserInput { blockUserId: ID! + """ A unique identifier for the client performing the mutation. """ @@ -8910,6 +11586,7 @@ type CreateFreeformPostPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + post: FreeformPost } @@ -8918,6 +11595,7 @@ Autogenerated input type of CreateFreeformPost """ input CreateFreeformPostInput { projectId: ID! + """ A unique identifier for the client performing the mutation. """ @@ -8932,6 +11610,7 @@ type CreateCreatorInterviewPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + creatorInterview: CreatorInterview } @@ -8940,6 +11619,7 @@ Autogenerated input type of CreateCreatorInterview """ input CreateCreatorInterviewInput { projectId: ID! + """ A unique identifier for the client performing the mutation. """ @@ -8954,6 +11634,7 @@ type UpdatePostPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + post: FreeformPost } @@ -8962,9 +11643,13 @@ Autogenerated input type of UpdatePost """ input UpdatePostInput { id: ID! + title: String + body: HTML + public: Boolean + """ A unique identifier for the client performing the mutation. """ @@ -8979,6 +11664,7 @@ type UpdateCreatorInterviewPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + creatorInterview: CreatorInterview } @@ -8987,9 +11673,13 @@ Autogenerated input type of UpdateCreatorInterview """ input UpdateCreatorInterviewInput { id: ID! + title: String + public: Boolean + answers: [InterviewAnswerInput!] + """ A unique identifier for the client performing the mutation. """ @@ -9004,10 +11694,12 @@ input InterviewAnswerInput { The associated interview question id """ interviewQuestionId: ID! + """ The body of the interview answer """ body: String! + """ True if the creator chose to skip the question """ @@ -9022,6 +11714,7 @@ type PublishPostPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + post: Postable } @@ -9030,6 +11723,7 @@ Autogenerated input type of PublishPost """ input PublishPostInput { id: ID! + """ A unique identifier for the client performing the mutation. """ @@ -9044,6 +11738,7 @@ type DeletePostPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + post: Postable } @@ -9052,6 +11747,7 @@ Autogenerated input type of DeletePost """ input DeletePostInput { id: ID! + """ A unique identifier for the client performing the mutation. """ @@ -9066,6 +11762,7 @@ type LikePostPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + post: Postable } @@ -9074,6 +11771,7 @@ Autogenerated input type of LikePost """ input LikePostInput { id: ID! + """ A unique identifier for the client performing the mutation. """ @@ -9088,6 +11786,7 @@ type UnlikePostPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + post: Postable } @@ -9096,6 +11795,7 @@ Autogenerated input type of UnlikePost """ input UnlikePostInput { id: ID! + """ A unique identifier for the client performing the mutation. """ @@ -9110,6 +11810,7 @@ type PinPostPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + post: Postable } @@ -9118,6 +11819,7 @@ Autogenerated input type of PinPost """ input PinPostInput { id: ID! + """ A unique identifier for the client performing the mutation. """ @@ -9132,6 +11834,7 @@ type UnpinPostPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + post: Postable } @@ -9140,6 +11843,7 @@ Autogenerated input type of UnpinPost """ input UnpinPostInput { id: ID! + """ A unique identifier for the client performing the mutation. """ @@ -9154,6 +11858,7 @@ type PostExcludeRewardPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + post: Postable } @@ -9162,7 +11867,9 @@ Autogenerated input type of PostExcludeReward """ input PostExcludeRewardInput { rewardId: ID + postId: ID! + """ A unique identifier for the client performing the mutation. """ @@ -9177,6 +11884,7 @@ type PostIncludeRewardPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + post: Postable } @@ -9185,7 +11893,9 @@ Autogenerated input type of PostIncludeReward """ input PostIncludeRewardInput { rewardId: ID + postId: ID! + """ A unique identifier for the client performing the mutation. """ @@ -9200,6 +11910,7 @@ type CreateProjectPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + project: Project } @@ -9208,10 +11919,15 @@ Autogenerated input type of CreateProject """ input CreateProjectInput { categoryId: ID! + additionalSubcategoryId: ID + countryCode: CountryCode! + description: String + tag: String + """ A unique identifier for the client performing the mutation. """ @@ -9226,6 +11942,7 @@ type SubmitProjectPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + project: Project } @@ -9234,6 +11951,7 @@ Autogenerated input type of SubmitProject """ input SubmitProjectInput { id: ID! + """ A unique identifier for the client performing the mutation. """ @@ -9248,6 +11966,7 @@ type CancelProjectPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + project: Project! } @@ -9256,7 +11975,9 @@ Autogenerated input type of CancelProject """ input CancelProjectInput { id: ID! + password: String! + """ A unique identifier for the client performing the mutation. """ @@ -9268,6 +11989,7 @@ Autogenerated return type of CancelBacking """ type CancelBackingPayload { backing: Backing! + """ A unique identifier for the client performing the mutation. """ @@ -9282,10 +12004,12 @@ input CancelBackingInput { ID of the backing being canceled """ id: ID! + """ Optional cancellation note """ note: String + """ A unique identifier for the client performing the mutation. """ @@ -9300,6 +12024,7 @@ type DeleteProjectPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + creator: User } @@ -9308,7 +12033,9 @@ Autogenerated input type of DeleteProject """ input DeleteProjectInput { id: ID! + password: String! + """ A unique identifier for the client performing the mutation. """ @@ -9323,6 +12050,7 @@ type UpdateProjectPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + project: Project } @@ -9331,32 +12059,56 @@ Autogenerated input type of UpdateProject """ input UpdateProjectInput { id: ID! + name: String + aiDisclosure: AiDisclosureInput + deadline: Int + description: String + """ Duration of campaign, in days. """ duration: Int + environmentalCommitments: [EnvironmentalCommitmentInput] + story: HTML + risks: String + storyRteVersion: String + goal: Int + googleAnalyticsTrackingId: String + googleAnalyticsApiSecret: String + metaPixelId: String + metaCapiAccessToken: String + categoryId: ID + additionalSubcategoryId: ID + locationId: ID + paymentSourceId: String + targetLaunchDate: ISO8601DateTime + currency: CurrencyCode + faqs: [FaqInput!] + postCampaignPledgesEnabled: Boolean + prelaunchStory: HTML + """ A unique identifier for the client performing the mutation. """ @@ -9365,10 +12117,15 @@ input UpdateProjectInput { input AiDisclosureInput { fundingForAiAttribution: Boolean + fundingForAiConsent: Boolean + fundingForAiOption: Boolean + generatedByAiConsent: String + generatedByAiDetails: String + otherAiDetails: String } @@ -9377,7 +12134,9 @@ An environmental commitment for a project. """ input EnvironmentalCommitmentInput { id: ID! + commitmentCategory: EnvironmentalCommitmentCategory! + description: String! } @@ -9386,8 +12145,11 @@ A FAQ question and answer for a project. """ input FaqInput { id: ID + position: Int! + question: String! + answer: String! } @@ -9399,6 +12161,7 @@ type LaunchProjectPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + project: Project } @@ -9407,6 +12170,7 @@ Autogenerated input type of LaunchProject """ input LaunchProjectInput { id: ID! + """ A unique identifier for the client performing the mutation. """ @@ -9421,6 +12185,7 @@ type UntagProjectPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + project: Project } @@ -9429,7 +12194,9 @@ Autogenerated input type of UntagProject """ input UntagProjectInput { id: ID! + tag: String! + """ A unique identifier for the client performing the mutation. """ @@ -9444,6 +12211,7 @@ type SetProjectSlugPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + project: Project } @@ -9452,6 +12220,7 @@ Autogenerated input type of SetProjectSlug """ input SetProjectSlugInput { id: ID! + """ A unique identifier for the client performing the mutation. """ @@ -9466,6 +12235,7 @@ type UpdateProjectVerifiedCreatorNamePayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + project: Project! } @@ -9474,7 +12244,9 @@ Autogenerated input type of UpdateProjectVerifiedCreatorName """ input UpdateProjectVerifiedCreatorNameInput { id: ID! + name: String! + """ A unique identifier for the client performing the mutation. """ @@ -9489,6 +12261,7 @@ type SetProjectStatusPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + projectStatus: ProjectStatus } @@ -9497,10 +12270,15 @@ Autogenerated input type of SetProjectStatus """ input SetProjectStatusInput { projectId: ID! + nowStatus: String + nextStatus: String + nextDueDate: ISO8601DateTime! + enabled: Boolean = true + """ A unique identifier for the client performing the mutation. """ @@ -9515,6 +12293,7 @@ type ActivateProjectPrelaunchPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + project: Project } @@ -9523,6 +12302,7 @@ Autogenerated input type of ActivateProjectPrelaunch """ input ActivateProjectPrelaunchInput { id: ID! + """ A unique identifier for the client performing the mutation. """ @@ -9537,6 +12317,7 @@ type DeactivateProjectPrelaunchPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + project: Project } @@ -9545,6 +12326,7 @@ Autogenerated input type of DeactivateProjectPrelaunch """ input DeactivateProjectPrelaunchInput { id: ID! + """ A unique identifier for the client performing the mutation. """ @@ -9559,6 +12341,7 @@ type UpdateProjectRiskStrategiesPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + updatedRiskStrategies: [RiskStrategy!] } @@ -9567,7 +12350,9 @@ Autogenerated input type of UpdateProjectRiskStrategies """ input UpdateProjectRiskStrategiesInput { projectId: ID! + riskStrategies: [RiskStrategyInput!]! + """ A unique identifier for the client performing the mutation. """ @@ -9579,6 +12364,7 @@ Inputs required to create a risk strategy for a project. """ input RiskStrategyInput { riskCategory: RiskCategoryType! + description: String! } @@ -9590,7 +12376,9 @@ type CreateSheetForProjectPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + sheetsUrl: String + spreadsheetData: [SpreadsheetDatum] } @@ -9599,7 +12387,9 @@ Autogenerated input type of CreateSheetForProject """ input CreateSheetForProjectInput { id: ID! + email: String + """ A unique identifier for the client performing the mutation. """ @@ -9614,6 +12404,7 @@ type RemoveSheetFromProjectPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + sheetsUrl: String } @@ -9622,6 +12413,7 @@ Autogenerated input type of RemoveSheetFromProject """ input RemoveSheetFromProjectInput { id: ID! + """ A unique identifier for the client performing the mutation. """ @@ -9636,6 +12428,7 @@ type RefreshSpreadsheetDataPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + spreadsheet: Spreadsheet } @@ -9644,6 +12437,7 @@ Autogenerated input type of RefreshSpreadsheetData """ input RefreshSpreadsheetDataInput { id: ID! + """ A unique identifier for the client performing the mutation. """ @@ -9658,6 +12452,7 @@ type UpdateSpreadsheetTogglesPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + spreadsheet: Spreadsheet } @@ -9666,8 +12461,11 @@ Autogenerated input type of UpdateSpreadsheetToggles """ input UpdateSpreadsheetTogglesInput { id: ID! + public: Boolean + displayMode: String + """ A unique identifier for the client performing the mutation. """ @@ -9682,6 +12480,7 @@ type AnswerProjectFeedbackQuestionPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + feedback: ProjectFeedback } @@ -9690,8 +12489,11 @@ Autogenerated input type of AnswerProjectFeedbackQuestion """ input AnswerProjectFeedbackQuestionInput { id: ID! + questionName: String! + questionAnswer: String! + """ A unique identifier for the client performing the mutation. """ @@ -9706,6 +12508,7 @@ type ToggleProjectMilestonePayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + milestone: ProjectMilestone } @@ -9714,7 +12517,9 @@ Autogenerated input type of ToggleProjectMilestone """ input ToggleProjectMilestoneInput { id: ID! + milestoneCategory: String! + """ A unique identifier for the client performing the mutation. """ @@ -9729,6 +12534,7 @@ type DeactivateProjectCollaboratorPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + project: Project! } @@ -9740,10 +12546,12 @@ input DeactivateProjectCollaboratorInput { The project id """ projectId: ID! + """ The collaborator's user id """ userId: ID! + """ A unique identifier for the client performing the mutation. """ @@ -9758,6 +12566,7 @@ type InviteProjectCollaboratorPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + project: Project! } @@ -9769,18 +12578,22 @@ input InviteProjectCollaboratorInput { ID of project getting the collaborator """ projectId: ID! + """ Email of the collaborator """ userEmail: String! + """ Title of the collaborator """ title: String + """ Permissions granted to the collaborator """ permissions: [CollaboratorPermission!]! + """ A unique identifier for the client performing the mutation. """ @@ -9795,6 +12608,7 @@ type UpdateProjectCollaboratorPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + project: Project! } @@ -9806,18 +12620,22 @@ input UpdateProjectCollaboratorInput { ID of project updating the collaborator """ projectId: ID! + """ ID of the collaborator """ userId: ID! + """ Title of the collaborator """ title: String! + """ Updated permissions granted to the collaborator """ permissions: [CollaboratorPermission!]! + """ A unique identifier for the client performing the mutation. """ @@ -9832,6 +12650,7 @@ type GenerateProjectPreviewPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + project: Project! } @@ -9840,6 +12659,7 @@ Autogenerated input type of GenerateProjectPreview """ input GenerateProjectPreviewInput { id: ID! + """ A unique identifier for the client performing the mutation. """ @@ -9854,6 +12674,7 @@ type ToggleProjectPreviewPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + project: Project! } @@ -9862,6 +12683,7 @@ Autogenerated input type of ToggleProjectPreview """ input ToggleProjectPreviewInput { id: ID! + """ A unique identifier for the client performing the mutation. """ @@ -9876,6 +12698,7 @@ type CreateVideoTrackPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + videoTrack: VideoTrack } @@ -9884,7 +12707,9 @@ Autogenerated input type of CreateVideoTrack """ input CreateVideoTrackInput { videoId: ID! + languageCode: CaptionLanguageCode! + """ A unique identifier for the client performing the mutation. """ @@ -9899,6 +12724,7 @@ type DeleteVideoTrackPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + video: Video } @@ -9907,6 +12733,7 @@ Autogenerated input type of DeleteVideoTrack """ input DeleteVideoTrackInput { id: ID! + """ A unique identifier for the client performing the mutation. """ @@ -9921,7 +12748,9 @@ type SendMessagePayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + conversation: Conversation + message: Message } @@ -9930,9 +12759,13 @@ Autogenerated input type of SendMessage """ input SendMessageInput { recipientId: ID! + projectId: ID! + body: String! + gRecaptchaResponse: String! + """ A unique identifier for the client performing the mutation. """ @@ -9947,6 +12780,7 @@ type SendSubmissionMessagePayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + message: Message } @@ -9955,7 +12789,9 @@ Autogenerated input type of SendSubmissionMessage """ input SendSubmissionMessageInput { projectId: ID! + body: String! + """ A unique identifier for the client performing the mutation. """ @@ -9970,6 +12806,7 @@ type ReportSpamPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + spam: Boolean! } @@ -9978,6 +12815,7 @@ Autogenerated input type of ReportSpam """ input ReportSpamInput { messageId: ID! + """ A unique identifier for the client performing the mutation. """ @@ -9992,6 +12830,7 @@ type CreateCountrySignupPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + isSuccessful: Boolean! } @@ -10000,7 +12839,9 @@ Autogenerated input type of CreateCountrySignup """ input CreateCountrySignupInput { email: Email! + country: CountryCode! + """ A unique identifier for the client performing the mutation. """ @@ -10015,7 +12856,9 @@ type WatchProjectPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + project: Project + user: User } @@ -10024,7 +12867,9 @@ Autogenerated input type of WatchProject """ input WatchProjectInput { id: ID! + trackingContext: String + """ A unique identifier for the client performing the mutation. """ @@ -10039,7 +12884,9 @@ type UnwatchProjectPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + project: Project + user: User } @@ -10048,7 +12895,9 @@ Autogenerated input type of UnwatchProject """ input UnwatchProjectInput { id: ID! + trackingContext: String + """ A unique identifier for the client performing the mutation. """ @@ -10063,6 +12912,7 @@ type CreateProjectImagePayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + image: Photo } @@ -10071,11 +12921,17 @@ Autogenerated input type of CreateProjectImage """ input CreateProjectImageInput { id: ID! + s3Key: String! + fileName: String! + contentType: String! + updatedAt: Int! + fileSize: Int! + """ A unique identifier for the client performing the mutation. """ @@ -10090,6 +12946,7 @@ type DeleteProjectImagePayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + project: Project } @@ -10098,6 +12955,7 @@ Autogenerated input type of DeleteProjectImage """ input DeleteProjectImageInput { id: ID! + """ A unique identifier for the client performing the mutation. """ @@ -10112,6 +12970,7 @@ type CreateProjectVideoPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + video: Video } @@ -10120,11 +12979,17 @@ Autogenerated input type of CreateProjectVideo """ input CreateProjectVideoInput { id: ID! + s3Key: String! + fileName: String! + contentType: String! + updatedAt: Int! + fileSize: Int! + """ A unique identifier for the client performing the mutation. """ @@ -10139,6 +13004,7 @@ type DeleteProjectVideoPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + project: Project } @@ -10150,6 +13016,7 @@ input DeleteProjectVideoInput { The project ID """ id: ID! + """ A unique identifier for the client performing the mutation. """ @@ -10164,6 +13031,7 @@ type PostCommentPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + comment: Comment } @@ -10175,14 +13043,17 @@ input PostCommentInput { The ID of the object you are commenting on """ commentableId: ID! + """ The body of the comment """ body: String! + """ The ID of the comment you are replying to """ parentId: ID + """ A unique identifier for the client performing the mutation. """ @@ -10197,6 +13068,7 @@ type DeleteCommentPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + commentable: Project } @@ -10208,6 +13080,7 @@ input DeleteCommentInput { The comment ID """ id: ID! + """ A unique identifier for the client performing the mutation. """ @@ -10222,6 +13095,7 @@ type ToggleCommentPinPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + comment: Comment! } @@ -10230,7 +13104,9 @@ Autogenerated input type of ToggleCommentPin """ input ToggleCommentPinInput { commentId: ID! + pinned: Boolean! + """ A unique identifier for the client performing the mutation. """ @@ -10245,6 +13121,7 @@ type PostProjectCommentPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + comment: Comment } @@ -10256,14 +13133,17 @@ input PostProjectCommentInput { The ID of the project you are commenting on """ projectId: ID! + """ The body of the comment """ body: String! + """ The ID of the comment you are replying to """ parentId: ID + """ A unique identifier for the client performing the mutation. """ @@ -10278,6 +13158,7 @@ type DeleteProjectCommentPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + project: Project } @@ -10289,6 +13170,7 @@ input DeleteProjectCommentInput { The comment ID """ id: ID! + """ A unique identifier for the client performing the mutation. """ @@ -10300,16 +13182,14 @@ Autogenerated return type of CreateAsset """ type CreateAssetPayload { asset: AttachedMedia + """ A unique identifier for the client performing the mutation. """ clientMutationId: String } -""" -Attached Media -""" -union AttachedMedia = AttachedAudio | AttachedVideo | Photo +union AttachedMedia = AttachedAudio|AttachedVideo|Photo """ Autogenerated input type of CreateAsset @@ -10319,21 +13199,28 @@ input CreateAssetInput { ID of the object to attach the asset to """ id: ID! + s3Key: String! + fileName: String! + """ mime type. ex: 'image/png' """ contentType: String! + updatedAt: Int! + """ attachable attribute. ex: 'hero_media', 'avatar', ... """ attachableAssoc: String! + """ File size of asset in bytes. """ fileSize: Int! + """ A unique identifier for the client performing the mutation. """ @@ -10345,16 +13232,14 @@ Autogenerated return type of DeleteAsset """ type DeleteAssetPayload { attachable: Attachable! + """ A unique identifier for the client performing the mutation. """ clientMutationId: String } -""" -An object that can be associated with uploaded assets -""" -union Attachable = Project | FreeformPost | InterviewAnswer | Survey +union Attachable = Project|FreeformPost|InterviewAnswer|Survey """ A survey @@ -10368,7 +13253,9 @@ Autogenerated input type of DeleteAsset """ input DeleteAssetInput { attachable_id: ID! + asset_id: ID! + """ A unique identifier for the client performing the mutation. """ @@ -10383,18 +13270,22 @@ type CreateAddressPayload { Address that was created """ address: Address! + """ - A unique identifier for the client performing the mutation. + Object associated with the address """ - clientMutationId: String + associatedObject: AddressAssociatedObject + """ - Order associated with the address if present + A unique identifier for the client performing the mutation. """ - order: Order + clientMutationId: String + """ Address suggestion """ suggestedAddress: Address + """ Validation status for created address """ @@ -10406,27 +13297,44 @@ Status returned from an address validation """ enum ValidationStatus { exact + suggestion + not_found + error } +union AddressAssociatedObject = Order|Project|StockLocation|Backing + """ Autogenerated input type of CreateAddress """ input CreateAddressInput { recipientName: String! + referenceName: String! + addressLine1: String! + addressLine2: String + city: String! + region: String + postalCode: String! + countryCode: CountryCode! + phoneNumber: String! + primary: Boolean + associatedObjectId: ID + source: AddressCreationSource! + """ A unique identifier for the client performing the mutation. """ @@ -10437,9 +13345,14 @@ input CreateAddressInput { Source of address creation """ enum AddressCreationSource { - stock_location + stock_location_create + + stock_location_edit + user_settings + survey + pledge_redemption } @@ -10451,6 +13364,7 @@ type BatchUpdateSurveyResponseAddressesPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + """ The count of SurveyResponses that were successfully updated """ @@ -10462,6 +13376,7 @@ Autogenerated input type of BatchUpdateSurveyResponseAddresses """ input BatchUpdateSurveyResponseAddressesInput { fulfillmentAddressId: ID! + """ A unique identifier for the client performing the mutation. """ @@ -10473,17 +13388,14 @@ Autogenerated return type of AcceptOrRejectAddressSuggestion """ type AcceptOrRejectAddressSuggestionPayload { """ - A unique identifier for the client performing the mutation. - """ - clientMutationId: String - """ - Order associated with the address if present + Object associated with the address """ - order: Order + associatedObject: AddressAssociatedObject + """ - True if address was successfully updated + A unique identifier for the client performing the mutation. """ - success: Boolean! + clientMutationId: String } """ @@ -10491,9 +13403,13 @@ Autogenerated input type of AcceptOrRejectAddressSuggestion """ input AcceptOrRejectAddressSuggestionInput { fulfillmentAddressId: ID! + suggestionAccepted: Boolean! + associatedObjectId: ID + source: AddressCreationSource! + """ A unique identifier for the client performing the mutation. """ @@ -10508,6 +13424,7 @@ type DeleteAddressPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + """ Success if address was deleted successfully """ @@ -10519,6 +13436,7 @@ Autogenerated input type of DeleteAddress """ input DeleteAddressInput { fulfillmentAddressId: ID! + """ A unique identifier for the client performing the mutation. """ @@ -10533,6 +13451,7 @@ type SetAddressAsPrimaryPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + """ Success if address was updated successfully """ @@ -10544,6 +13463,7 @@ Autogenerated input type of SetAddressAsPrimary """ input SetAddressAsPrimaryInput { fulfillmentAddressId: ID! + """ A unique identifier for the client performing the mutation. """ @@ -10558,6 +13478,7 @@ type CreateOrUpdateBackingAddressPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + success: Boolean! } @@ -10566,7 +13487,9 @@ Autogenerated input type of CreateOrUpdateBackingAddress """ input CreateOrUpdateBackingAddressInput { backingId: ID! + addressId: ID! + """ A unique identifier for the client performing the mutation. """ @@ -10581,6 +13504,7 @@ type SetBackingFulfillmentStatusesPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + """ Lists the ids of all successfully updated backings. """ @@ -10592,8 +13516,11 @@ Autogenerated input type of SetBackingFulfillmentStatuses """ input SetBackingFulfillmentStatusesInput { backingIds: [ID!]! + projectId: ID! + status: FulfillmentStatusSelectOptions! + """ A unique identifier for the client performing the mutation. """ @@ -10605,8 +13532,11 @@ Values for backing fulfillment status """ enum FulfillmentStatusSelectOptions { not_started + in_progress + shipped + delayed } @@ -10618,6 +13548,7 @@ type MigrateToFulfillmentStatusPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + """ Succeeds if backings are being updated in backend. """ @@ -10629,6 +13560,7 @@ Autogenerated input type of MigrateToFulfillmentStatus """ input MigrateToFulfillmentStatusInput { projectId: ID! + """ A unique identifier for the client performing the mutation. """ @@ -10643,6 +13575,7 @@ type UpdateFulfillmentModalDismissedAtPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + project: Project } @@ -10651,6 +13584,7 @@ Autogenerated input type of UpdateFulfillmentModalDismissedAt """ input UpdateFulfillmentModalDismissedAtInput { projectId: ID! + """ A unique identifier for the client performing the mutation. """ @@ -10665,6 +13599,7 @@ type UpdateFulfillmentStatusPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + project: Project } @@ -10673,7 +13608,9 @@ Autogenerated input type of UpdateFulfillmentStatus """ input UpdateFulfillmentStatusInput { projectId: ID! + fulfillmentStatus: FulfillmentStatus! + """ A unique identifier for the client performing the mutation. """ @@ -10688,6 +13625,7 @@ type UpdateUserSettingPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + user: User } @@ -10696,7 +13634,9 @@ Autogenerated input type of UpdateUserSetting """ input UpdateUserSettingInput { setting: UserSetting! + enable: Boolean + """ A unique identifier for the client performing the mutation. """ @@ -10708,16 +13648,27 @@ Possible user settings """ enum UserSetting { manual_play_videos + superbacker_not_visible + confirmed_watch_notice + confirmed_signal_notice + opted_out_of_recommendations + viz_notification + opt_in_ksr_research + show_public_profile + dismissed_taste_profile_toast + dismissed_pyl_toast + dismissed_reward_images_toast + admin_message_badge } @@ -10729,6 +13680,7 @@ type UpdateUserAccountPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + user: User } @@ -10737,9 +13689,13 @@ Autogenerated input type of UpdateUserAccount """ input UpdateUserAccountInput { currentPassword: String + password: String + passwordConfirmation: String + email: Email + """ A unique identifier for the client performing the mutation. """ @@ -10754,6 +13710,7 @@ type UpdateUserProfilePayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + user: User } @@ -10762,9 +13719,13 @@ Autogenerated input type of UpdateUserProfile """ input UpdateUserProfileInput { name: String + biography: String + locationId: ID + chosenCurrency: CurrencyCode + """ A unique identifier for the client performing the mutation. """ @@ -10779,6 +13740,7 @@ type UpdateUserNotificationPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + userNotification: Notification } @@ -10787,8 +13749,11 @@ Autogenerated input type of UpdateUserNotification """ input UpdateUserNotificationInput { topic: UserNotificationTopic! + kind: UserNotificationKind! + value: Boolean! + """ A unique identifier for the client performing the mutation. """ @@ -10803,6 +13768,7 @@ enum UserNotificationKind { Email """ email + """ Mobile """ @@ -10817,6 +13783,7 @@ type UpdateUserNotificationFrequencyPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + userNotification: Notification } @@ -10825,7 +13792,9 @@ Autogenerated input type of UpdateUserNotificationFrequency """ input UpdateUserNotificationFrequencyInput { topic: UserNotificationTopic! + frequency: UserNotificationFrequency! + """ A unique identifier for the client performing the mutation. """ @@ -10840,6 +13809,7 @@ type CreateUserUrlsPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + user: User } @@ -10848,6 +13818,7 @@ Autogenerated input type of CreateUserUrls """ input CreateUserUrlsInput { url: String! + """ A unique identifier for the client performing the mutation. """ @@ -10862,6 +13833,7 @@ type DeleteUserUrlsPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + user: User } @@ -10870,6 +13842,7 @@ Autogenerated input type of DeleteUserUrls """ input DeleteUserUrlsInput { urlId: ID! + """ A unique identifier for the client performing the mutation. """ @@ -10884,6 +13857,7 @@ type CreateUserSlugPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + user: User } @@ -10892,6 +13866,7 @@ Autogenerated input type of CreateUserSlug """ input CreateUserSlugInput { slug: String! + """ A unique identifier for the client performing the mutation. """ @@ -10903,6 +13878,7 @@ Autogenerated return type of ClearUserUnseenActivity """ type ClearUserUnseenActivityPayload { activityIndicatorCount: Int! + """ A unique identifier for the client performing the mutation. """ @@ -10927,6 +13903,7 @@ type CreateUserPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + user: User } @@ -10935,25 +13912,36 @@ Autogenerated input type of CreateUser """ input CreateUserInput { name: String! + email: String! + emailConfirmation: String! + """ If the user agrees to opt into weekly newsletters """ optIntoNewsletters: Boolean = false + """ If the user agrees to opt into receiving surveys for user research """ optIntoUserResearch: Boolean = false + password: String! + """ Supply if creating an account via backing flow -- used for tracking purposes """ projectPid: String + recaptchaV2Token: String + recaptchaV3Token: String + checkoutId: String + n: String! + """ A unique identifier for the client performing the mutation. """ @@ -10965,10 +13953,12 @@ Autogenerated return type of SignInWithApple """ type SignInWithApplePayload { apiAccessToken: String + """ A unique identifier for the client performing the mutation. """ clientMutationId: String + user: User } @@ -10977,9 +13967,13 @@ Autogenerated input type of SignInWithApple """ input SignInWithAppleInput { firstName: String + lastName: String + authCode: String! + iosAppId: String! + """ A unique identifier for the client performing the mutation. """ @@ -10994,6 +13988,7 @@ type CreateProjectDepositAccountPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + project: Project } @@ -11002,7 +13997,9 @@ Autogenerated input type of CreateProjectDepositAccount """ input CreateProjectDepositAccountInput { projectId: ID! + accountBusinessType: String! + """ A unique identifier for the client performing the mutation. """ @@ -11017,6 +14014,7 @@ type SubmitVatNumberPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + project: Project } @@ -11025,7 +14023,9 @@ Autogenerated input type of SubmitVatNumber """ input SubmitVatNumberInput { projectId: ID! + vatNumber: String! + """ A unique identifier for the client performing the mutation. """ @@ -11040,6 +14040,7 @@ type CreateSetupIntentPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + clientSecret: String! } @@ -11051,7 +14052,14 @@ input CreateSetupIntentInput { Context in which this stripe intent is created """ setupIntentContext: StripeIntentContextTypes + projectId: ID + + """ + If sepa should be added to the payment method types + """ + sepaEligible: Boolean + """ A unique identifier for the client performing the mutation. """ @@ -11063,8 +14071,11 @@ Different contexts for which stripe intents can be created """ enum StripeIntentContextTypes { CROWDFUNDING_CHECKOUT + POST_CAMPAIGN_CHECKOUT + PROJECT_BUILD + PROFILE_SETTINGS } @@ -11076,6 +14087,7 @@ type CreatePaymentIntentPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + """ the stripe payment intent client secret used to complete a payment """ @@ -11090,26 +14102,32 @@ input CreatePaymentIntentInput { kickstarter project id """ projectId: ID! + """ total amount to be paid (eg. 10.55) """ amount: String! + """ Context in which this stripe intent is created """ paymentIntentContext: StripeIntentContextTypes + """ if the payment is attributed to digital marketing (default: false) """ digitalMarketingAttributed: Boolean + """ Current backing id for tracking purposes """ backingId: ID + """ Current checkout id for tracking purposes """ checkoutId: ID + """ A unique identifier for the client performing the mutation. """ @@ -11124,8 +14142,11 @@ type CreatePaymentSourcePayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + errorMessage: String @deprecated(reason: "inconsistent use of GraphQL errors") + isSuccessful: Boolean! + paymentSource: CreditCard } @@ -11134,10 +14155,15 @@ Autogenerated input type of CreatePaymentSource """ input CreatePaymentSourceInput { paymentType: PaymentTypes + stripeToken: String + stripeCardId: String + reusable: Boolean + intentClientSecret: String + """ A unique identifier for the client performing the mutation. """ @@ -11159,6 +14185,7 @@ type CreateProjectPaymentSourcePayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + paymentSource: CreditCard } @@ -11167,82 +14194,188 @@ Autogenerated input type of CreateProjectPaymentSource """ input CreateProjectPaymentSourceInput { id: ID! + paymentType: CreditCardPaymentType! + token: String! + reusable: Boolean! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +Autogenerated return type of UpdateProjectPaymentSource +""" +type UpdateProjectPaymentSourcePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + paymentSource: CreditCard +} + +""" +Autogenerated input type of UpdateProjectPaymentSource +""" +input UpdateProjectPaymentSourceInput { + id: ID! + + paymentSourceId: String! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +Autogenerated return type of PaymentSourceDelete +""" +type PaymentSourceDeletePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + user: User +} + +""" +Autogenerated input type of PaymentSourceDelete +""" +input PaymentSourceDeleteInput { + paymentSourceId: String! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +Autogenerated return type of SubmitRefundCheckout +""" +type SubmitRefundCheckoutPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String + + redirectUrl: String! + + refundCheckout: RefundCheckout! } """ -Autogenerated return type of UpdateProjectPaymentSource +Autogenerated input type of SubmitRefundCheckout """ -type UpdateProjectPaymentSourcePayload { +input SubmitRefundCheckoutInput { + paymentSourceId: String! + + refundCheckoutId: ID! + """ A unique identifier for the client performing the mutation. """ clientMutationId: String - paymentSource: CreditCard } """ -Autogenerated input type of UpdateProjectPaymentSource +Autogenerated return type of CreateAdjustment """ -input UpdateProjectPaymentSourceInput { - id: ID! - paymentSourceId: String! +type CreateAdjustmentPayload { """ A unique identifier for the client performing the mutation. """ clientMutationId: String + + refundCheckout: RefundCheckout! } """ -Autogenerated return type of PaymentSourceDelete +Autogenerated input type of CreateAdjustment """ -type PaymentSourceDeletePayload { +input CreateAdjustmentInput { + """ + ID of associated adjustable + """ + adjustableId: ID! + + adjustmentParams: AdjustmentInput! + + amount: Int + + message: String + + """ + Stripe SetupIntent client secret + """ + intentClientSecret: String + """ A unique identifier for the client performing the mutation. """ clientMutationId: String - user: User } """ -Autogenerated input type of PaymentSourceDelete +Parameters to create adjustment to a backing's order, created when issuing a refund. """ -input PaymentSourceDeleteInput { - paymentSourceId: String! +input AdjustmentInput { """ - A unique identifier for the client performing the mutation. + Reason for adjustment """ - clientMutationId: String + reason: RefundReasonType! + + """ + Objects to be removed from order + """ + removals: [RemovalInput!]! + + """ + Refunds to be issued + """ + refunds: [RefundInput!]! } """ -Autogenerated return type of SubmitRefundCheckout +An object removed as part of an adjustment """ -type SubmitRefundCheckoutPayload { +input RemovalInput { """ - A unique identifier for the client performing the mutation. + id of object to be removed """ - clientMutationId: String - redirectUrl: String! - refundCheckout: RefundCheckout! + id: ID! + + """ + type of object to be removed (reward, reward item, or order item) + """ + type: RefundAdjustmentType! } """ -Autogenerated input type of SubmitRefundCheckout +An amount to be refunded as part of an adjustment. """ -input SubmitRefundCheckoutInput { - paymentSourceId: String! - refundCheckoutId: ID! +input RefundInput { """ - A unique identifier for the client performing the mutation. + id of object to be refunded """ - clientMutationId: String + id: ID! + + """ + type of refund + """ + type: RefundAdjustmentType! + + """ + amount to be refunded + """ + amount: Int! } """ @@ -11253,6 +14386,7 @@ type CreateRewardPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + project: Project } @@ -11261,25 +14395,47 @@ Autogenerated input type of CreateReward """ input CreateRewardInput { projectId: ID! + name: String! + description: String + estimatedDeliveryOn: Date! + amount: Int! + latePledgeAmount: Int + limit: Int + image: S3AssetInput + altText: String + limitPerBacker: Int + rewardType: RewardType + items: [RewardItemInput] + shippingPreference: ShippingPreference + + shippingRates: [ShippingRateInput] + shippingRules: [ShippingRuleInput] + startsAt: Int + endsAt: Int + contentsType: ContentsType! + localReceiptLocationId: ID + startCondition: Int + endCondition: Int + """ A unique identifier for the client performing the mutation. """ @@ -11291,10 +14447,15 @@ S3 information for an asset. """ input S3AssetInput { id: ID + s3Key: String! + fileName: String! + contentType: String! + updatedAt: Int! + fileSize: Int! } @@ -11303,18 +14464,35 @@ Item for a reward """ input RewardItemInput { id: ID + position: Int! + quantity: Int! } +""" +Shipping rule for a reward +""" +input ShippingRateInput { + id: ID + + cost: Int + + locationId: String! +} + """ Shipping rule for a reward """ input ShippingRuleInput { id: ID + cost: Int! + locationId: String! + estimatedMin: Int + estimatedMax: Int } @@ -11326,6 +14504,7 @@ type DeleteRewardPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + project: Project } @@ -11337,6 +14516,7 @@ input DeleteRewardInput { The reward ID """ id: ID! + """ A unique identifier for the client performing the mutation. """ @@ -11351,6 +14531,7 @@ type UpdateRewardPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + project: Project } @@ -11359,26 +14540,47 @@ Autogenerated input type of UpdateReward """ input UpdateRewardInput { id: ID! + name: String + description: String + estimatedDeliveryOn: Date + amount: Int + latePledgeAmount: Int + image: S3AssetInput + altText: String + deleteAsset: Boolean + limit: Int + limitPerBacker: Int + rewardType: RewardType + items: [RewardItemInput] + shippingPreference: ShippingPreference + shippingRules: [ShippingRuleInput] + startsAt: Int + endsAt: Int + contentsType: ContentsType + localReceiptLocationId: ID + startCondition: Int + endCondition: Int + """ A unique identifier for the client performing the mutation. """ @@ -11393,7 +14595,9 @@ type CopyRewardItemsPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + items: [RewardItem!]! + reward: Reward! } @@ -11402,7 +14606,9 @@ Autogenerated input type of CopyRewardItems """ input CopyRewardItemsInput { rewardId: ID! + projectId: ID! + """ A unique identifier for the client performing the mutation. """ @@ -11417,6 +14623,7 @@ type EndLatePledgesPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + project: Project } @@ -11425,6 +14632,7 @@ Autogenerated input type of EndLatePledges """ input EndLatePledgesInput { projectId: ID! + """ A unique identifier for the client performing the mutation. """ @@ -11439,6 +14647,7 @@ type CreateFlaggingPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + flagging: Flagging } @@ -11447,8 +14656,11 @@ Autogenerated input type of CreateFlagging """ input CreateFlaggingInput { contentId: ID! + kind: NonDeprecatedFlaggingKind! + details: String + """ A unique identifier for the client performing the mutation. """ @@ -11463,202 +14675,252 @@ enum NonDeprecatedFlaggingKind { prohibited-items """ PROHIBITED_ITEMS + """ charity """ CHARITY + """ resale """ RESALE + """ false-claims """ FALSE_CLAIMS + """ misrep-support """ MISREP_SUPPORT + """ not-project """ NOT_PROJECT + """ guidelines-violation """ GUIDELINES_VIOLATION + """ post-funding-issues """ POST_FUNDING_ISSUES + """ spam """ SPAM + """ vices-drugs """ VICES_DRUGS + """ vices-alcohol """ VICES_ALCOHOL + """ vices-weapons """ VICES_WEAPONS + """ health-claims """ HEALTH_CLAIMS + """ health-regulations """ HEALTH_REGULATIONS + """ health-gmos """ HEALTH_GMOS + """ health-live-animals """ HEALTH_LIVE_ANIMALS + """ health-energy-food-and-drink """ HEALTH_ENERGY_FOOD_AND_DRINK + """ financial-contests-coupons """ FINANCIAL_CONTESTS_COUPONS + """ financial-services """ FINANCIAL_SERVICES + """ financial-political-donations """ FINANCIAL_POLITICAL_DONATIONS + """ offensive-content-hate """ OFFENSIVE_CONTENT_HATE + """ offensive-content-porn """ OFFENSIVE_CONTENT_PORN + """ reselling """ RESELLING + """ plagiarism """ PLAGIARISM + """ prototype-misrepresentation """ PROTOTYPE_MISREPRESENTATION + """ misrep-support-impersonation """ MISREP_SUPPORT_IMPERSONATION + """ misrep-support-outstanding-fulfillment """ MISREP_SUPPORT_OUTSTANDING_FULFILLMENT + """ misrep-support-suspicious-pledging """ MISREP_SUPPORT_SUSPICIOUS_PLEDGING + """ misrep-support-other """ MISREP_SUPPORT_OTHER + """ not-project-charity """ NOT_PROJECT_CHARITY + """ not-project-stunt-or-hoax """ NOT_PROJECT_STUNT_OR_HOAX + """ not-project-personal-expenses """ NOT_PROJECT_PERSONAL_EXPENSES + """ not-project-barebones """ NOT_PROJECT_BAREBONES + """ not-project-other """ NOT_PROJECT_OTHER + """ guidelines-spam """ GUIDELINES_SPAM + """ guidelines-abuse """ GUIDELINES_ABUSE + """ post-funding-reward-not-as-described """ POST_FUNDING_REWARD_NOT_AS_DESCRIBED + """ post-funding-reward-delayed """ POST_FUNDING_REWARD_DELAYED + """ post-funding-shipped-never-received """ POST_FUNDING_SHIPPED_NEVER_RECEIVED + """ post-funding-creator-selling-elsewhere """ POST_FUNDING_CREATOR_SELLING_ELSEWHERE + """ post-funding-creator-uncommunicative """ POST_FUNDING_CREATOR_UNCOMMUNICATIVE + """ post-funding-creator-inappropriate """ POST_FUNDING_CREATOR_INAPPROPRIATE + """ post-funding-suspicious-third-party """ POST_FUNDING_SUSPICIOUS_THIRD_PARTY + """ comment-abuse """ COMMENT_ABUSE + """ comment-doxxing """ COMMENT_DOXXING + """ comment-offtopic """ COMMENT_OFFTOPIC + """ comment-spam """ COMMENT_SPAM + """ backing-abuse """ BACKING_ABUSE + """ backing-doxxing """ BACKING_DOXXING + """ backing-fraud """ BACKING_FRAUD + """ backing-spam """ @@ -11673,6 +14935,7 @@ type CreateRewardItemPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + item: RewardItem } @@ -11681,10 +14944,15 @@ Autogenerated input type of CreateRewardItem """ input CreateRewardItemInput { projectId: ID! + name: String! + deliveryType: String! + image: S3AssetInput + altText: String + """ A unique identifier for the client performing the mutation. """ @@ -11699,6 +14967,7 @@ type DeleteRewardItemPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + project: Project } @@ -11710,6 +14979,7 @@ input DeleteRewardItemInput { The reward item ID """ id: ID! + """ A unique identifier for the client performing the mutation. """ @@ -11724,6 +14994,7 @@ type UpdateRewardItemPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + item: RewardItem } @@ -11732,11 +15003,17 @@ Autogenerated input type of UpdateRewardItem """ input UpdateRewardItemInput { id: ID! + name: String + deliveryType: String + image: S3AssetInput + altText: String + deleteAsset: Boolean + """ A unique identifier for the client performing the mutation. """ @@ -11751,6 +15028,7 @@ type CreateEditorialLayoutTypePayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + layout: Layout } @@ -11762,31 +15040,39 @@ type Layout { When this editorial layout was created """ createdAt: DateTime! + """ The description of the editorial layout """ description: String + id: ID! + """ All the modules for an editorial layout """ - modules("""Returns the first _n_ elements from the list.""" first: Int, """Returns the elements in the list that come after the specified cursor.""" after: String, """Returns the last _n_ elements from the list.""" last: Int, """Returns the elements in the list that come before the specified cursor.""" before: String): EditorialConnection! + modules("Returns the first _n_ elements from the list." first: Int, "Returns the elements in the list that come after the specified cursor." after: String, "Returns the last _n_ elements from the list." last: Int, "Returns the elements in the list that come before the specified cursor." before: String): EditorialConnection! + """ Is the editorial layout published? """ published: Boolean! + """ The revision of the editorial layout """ revision: String! + """ The sequence number of the currently published revision of the editorial """ sequence: Int + """ The slug for the url of the editorial layout oage """ slug: String! + """ The title of the editorial layout """ @@ -11801,18 +15087,22 @@ input CreateEditorialLayoutTypeInput { Slug for the Editorial Layout url """ slug: String! + """ Title for the Editorial Layout """ title: String! + """ Short description for the Editorial Layout """ description: String + """ All the Editorial Modules for this layout """ modules: [EditorialModuleInput] + """ A unique identifier for the client performing the mutation. """ @@ -11827,14 +15117,17 @@ input EditorialModuleInput { Module type """ type: EditorialModuleType! + """ Module GraphQL id """ id: ID + """ Order of the Module """ sequence: Int + """ Module data """ @@ -11849,54 +15142,67 @@ enum EditorialModuleType { ProjectCollection """ ProjectCollection + """ NewsletterSignUp """ NewsletterSignUp + """ PromoCollection """ PromoCollection + """ NewsCollection """ NewsCollection + """ FeaturedProjectCollection """ FeaturedProjectCollection + """ SingleProjectContainer """ SingleProjectContainer + """ BespokeComponent """ BespokeComponent + """ Header """ Header + """ MastheadImage """ MastheadImage + """ ExploreSubcategories """ ExploreSubcategories + """ Article """ Article + """ ShortText """ ShortText + """ EditorialRichText """ EditorialRichText + """ SurveyEmbed """ @@ -11911,6 +15217,7 @@ type PublishEditorialLayoutTypePayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + layout: Layout } @@ -11922,10 +15229,12 @@ input PublishEditorialLayoutTypeInput { Slug for the Editorial Layout """ slug: String! + """ Revision for the Editorial Layout """ revision: String! + """ A unique identifier for the client performing the mutation. """ @@ -11940,6 +15249,7 @@ type UnpublishEditorialLayoutTypePayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + layout: Layout } @@ -11951,10 +15261,12 @@ input UnpublishEditorialLayoutTypeInput { Slug for the Editorial Layout """ slug: String! + """ Revision for the Editorial Layout """ revision: String! + """ A unique identifier for the client performing the mutation. """ @@ -11969,6 +15281,7 @@ type TranslateEditorialLayoutTypePayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + layout: Layout } @@ -11980,10 +15293,12 @@ input TranslateEditorialLayoutTypeInput { Slug for the Editorial Layout """ slug: String! + """ Revision for the Editorial Layout """ revision: String! + """ A unique identifier for the client performing the mutation. """ @@ -11998,6 +15313,7 @@ type UserSendEmailVerificationPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + user: User } @@ -12016,6 +15332,7 @@ Autogenerated return type of ApplyPaymentSourceToCheckout """ type ApplyPaymentSourceToCheckoutPayload { checkout: Checkout! + """ A unique identifier for the client performing the mutation. """ @@ -12027,7 +15344,13 @@ Autogenerated input type of ApplyPaymentSourceToCheckout """ input ApplyPaymentSourceToCheckoutInput { checkoutId: String! + paymentSourceId: String! + + incremental: Boolean + + intentClientSecret: String + """ A unique identifier for the client performing the mutation. """ @@ -12039,6 +15362,7 @@ Autogenerated return type of CreateCheckout """ type CreateCheckoutPayload { checkout: Checkout + """ A unique identifier for the client performing the mutation. """ @@ -12050,10 +15374,15 @@ Autogenerated input type of CreateCheckout """ input CreateCheckoutInput { projectId: ID! + amount: String + locationId: String + rewardIds: [ID!] + refParam: String + """ A unique identifier for the client performing the mutation. """ @@ -12065,6 +15394,7 @@ Autogenerated return type of CompleteOnSessionCheckout """ type CompleteOnSessionCheckoutPayload { checkout: Checkout + """ A unique identifier for the client performing the mutation. """ @@ -12079,22 +15409,27 @@ input CompleteOnSessionCheckoutInput { The graphql relay id of the checkout (base64 encoded) """ checkoutId: ID! + """ the client_secret returned by createPaymentIntent, starts with `pi_` (the same secret passed to stripe) """ paymentIntentClientSecret: String! + """ Kickstarter internal payment source id. Expects a number (not the stripe id starting with `pm_`). Pass in when using a saved card (optional) """ paymentSourceId: String + """ If the payment source can be reused for future payments (optional) """ paymentSourceReusable: Boolean + """ Apple pay attributes for creating a payment source (optional) """ applePay: ApplePayInput + """ A unique identifier for the client performing the mutation. """ @@ -12109,8 +15444,11 @@ input ApplePayInput { Stripe token """ token: String! + paymentInstrumentName: String! + paymentNetwork: String! + transactionIdentifier: String! } @@ -12119,6 +15457,7 @@ Autogenerated return type of CreateBacking """ type CreateBackingPayload { checkout: Checkout + """ A unique identifier for the client performing the mutation. """ @@ -12130,24 +15469,36 @@ Autogenerated input type of CreateBacking """ input CreateBackingInput { projectId: ID! + """ Optional, will default to combined reward minimums + shipping """ amount: String + locationId: String + """ Relay encoded Reward ID - legacy - mutually exclusive with reward_ids """ rewardId: ID + """ List of Relay encoded Reward/Add-on IDs - mutually exclusive with reward_id """ rewardIds: [ID!] + paymentType: String + refParam: String + paymentSourceId: String + setupIntentClientSecret: String + applePay: ApplePayInput + + incremental: Boolean + """ A unique identifier for the client performing the mutation. """ @@ -12159,6 +15510,7 @@ Autogenerated return type of UpdateBacking """ type UpdateBackingPayload { checkout: Checkout + """ A unique identifier for the client performing the mutation. """ @@ -12170,25 +15522,33 @@ Autogenerated input type of UpdateBacking """ input UpdateBackingInput { id: ID! + amount: String + """ Relay encoded Reward ID - legacy """ rewardId: ID + """ List of Relay encoded Reward/Add-on IDs """ rewardIds: [ID!] + locationId: String + """ new payment source id """ paymentSourceId: String + """ Stripe SetupIntent client secret """ intentClientSecret: String + applePay: ApplePayInput + """ A unique identifier for the client performing the mutation. """ @@ -12200,7 +15560,9 @@ Autogenerated return type of UpdateBackingPaymentSource """ type UpdateBackingPaymentSourcePayload { backing: Backing + checkout: Checkout + """ A unique identifier for the client performing the mutation. """ @@ -12215,11 +15577,14 @@ input UpdateBackingPaymentSourceInput { ID of the backing being updated """ id: ID! + """ new payment source id """ paymentSourceId: String + applePay: ApplePayInput + """ A unique identifier for the client performing the mutation. """ @@ -12231,6 +15596,7 @@ Autogenerated return type of UpdateBackerCompleted """ type UpdateBackerCompletedPayload { backing: Backing + """ A unique identifier for the client performing the mutation. """ @@ -12242,7 +15608,9 @@ Autogenerated input type of UpdateBackerCompleted """ input UpdateBackerCompletedInput { id: ID! + backerCompleted: Boolean! + """ A unique identifier for the client performing the mutation. """ @@ -12257,6 +15625,7 @@ type SetBackingNotePayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + noteBody: String } @@ -12265,8 +15634,11 @@ Autogenerated input type of SetBackingNote """ input SetBackingNoteInput { backingId: ID! + noteBody: String + noteType: BackingNoteType! + """ A unique identifier for the client performing the mutation. """ @@ -12275,6 +15647,7 @@ input SetBackingNoteInput { enum BackingNoteType { CreatorBackingNote + BackerBackingNote } @@ -12283,6 +15656,7 @@ Autogenerated return type of CreateApplePayBacking """ type CreateApplePayBackingPayload { checkout: Checkout + """ A unique identifier for the client performing the mutation. """ @@ -12294,14 +15668,23 @@ Autogenerated input type of CreateApplePayBacking """ input CreateApplePayBackingInput { projectId: ID! + amount: String + locationId: String + rewardId: ID + token: String! + paymentInstrumentName: String! + paymentNetwork: String! + transactionIdentifier: String! + refParam: String + """ A unique identifier for the client performing the mutation. """ @@ -12316,6 +15699,7 @@ type LikeQuizProjectPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + success: Boolean } @@ -12327,14 +15711,17 @@ input LikeQuizProjectInput { A list of selected likeable attribute ids associated to the quiz project """ selectedLikeableAttributeIds: [ID!]! + """ The id of the quiz project that the user has liked """ quizProjectId: ID! + """ Whether or not the user has indicated that they like something else about the project other than the attributes presented """ likedSomethingElse: Boolean + """ A unique identifier for the client performing the mutation. """ @@ -12349,7 +15736,9 @@ type LikeProjectPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + project: Project + user: User } @@ -12361,10 +15750,12 @@ input LikeProjectInput { The id of the project that the user has liked """ id: ID! + """ The context or page that the user liked this project from. Used for tracking """ trackingContext: String + """ A unique identifier for the client performing the mutation. """ @@ -12379,7 +15770,9 @@ type UnlikeProjectPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + project: Project + user: User } @@ -12391,10 +15784,12 @@ input UnlikeProjectInput { The id of the project that the user has unliked """ id: ID! + """ The context or page that the user unliked this project from. Used for tracking """ trackingContext: String + """ A unique identifier for the client performing the mutation. """ @@ -12409,7 +15804,9 @@ type DislikeProjectPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + project: Project + user: User } @@ -12421,10 +15818,12 @@ input DislikeProjectInput { The id of the project that the user has disliked """ id: ID! + """ The context or page that the user disliked this project from. Used for tracking """ trackingContext: String + """ A unique identifier for the client performing the mutation. """ @@ -12439,7 +15838,9 @@ type UndislikeProjectPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + project: Project + user: User } @@ -12451,10 +15852,12 @@ input UndislikeProjectInput { The id of the project that the user has un-disliked """ id: ID! + """ The context or page that the user undisliked this project from. Used for tracking """ trackingContext: String + """ A unique identifier for the client performing the mutation. """ @@ -12469,6 +15872,7 @@ type CreateProjectUpdateRequestPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + project: Project! } @@ -12477,7 +15881,9 @@ Autogenerated input type of CreateProjectUpdateRequest """ input CreateProjectUpdateRequestInput { projectId: ID! + location: ProjectUpdateRequestLocation! + """ A unique identifier for the client performing the mutation. """ @@ -12489,10 +15895,12 @@ enum ProjectUpdateRequestLocation { Project Update Request from the prompt at the top of Project Updates """ updates + """ Project Update Request from the Backer Bar flow """ backer_bar + """ Project Update Request from the inline prompt on a comment """ @@ -12507,7 +15915,9 @@ type TriggerThirdPartyEventPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + message: String + success: Boolean! } @@ -12516,16 +15926,30 @@ Autogenerated input type of TriggerThirdPartyEvent """ input TriggerThirdPartyEventInput { deviceId: String! + eventName: String! + firebaseScreen: String = null + firebasePreviousScreen: String = null + items: [ThirdPartyEventItemInput!] = [] + projectId: ID! + pledgeAmount: Float = null + shipping: Float = null + transactionId: String = null + userId: String = null - appData: AppDataInput = {} + + appData: AppDataInput = { + + } + + """ A unique identifier for the client performing the mutation. """ @@ -12537,10 +15961,12 @@ input ThirdPartyEventItemInput { The ID of the item. """ itemId: String! + """ The name of the item. """ itemName: String! + """ The monetary price of the item, in units of the specified currency parameter. """ @@ -12555,10 +15981,12 @@ input AppDataInput { Use this field to specify ATT permission on an iOS 14.5+ device. """ advertiserTrackingEnabled: Boolean! + """ A person can choose to enable ad tracking on an app level. Your SDK should allow an app developer to put an opt-out setting into their app. Use this field to specify the person's choice. """ applicationTrackingEnabled: Boolean! + """ Extended device information, such as screen width and height. Required only for native. """ @@ -12573,6 +16001,7 @@ type CreateTrackEventPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + successful: Boolean! } @@ -12581,7 +16010,9 @@ Autogenerated input type of CreateTrackEvent """ input CreateTrackEventInput { eventName: String! + eventProperties: JSON + """ A unique identifier for the client performing the mutation. """ @@ -12596,6 +16027,7 @@ type UpdateConsentPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + user: User } @@ -12604,7 +16036,9 @@ Autogenerated input type of UpdateConsent """ input UpdateConsentInput { consentJson: String! + userIdentifier: String! + """ A unique identifier for the client performing the mutation. """ @@ -12619,6 +16053,7 @@ type CreateAttributionEventPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + successful: Boolean! } @@ -12627,8 +16062,11 @@ Autogenerated input type of CreateAttributionEvent """ input CreateAttributionEventInput { eventName: String! + eventProperties: JSON + projectId: ID + """ A unique identifier for the client performing the mutation. """ @@ -12643,14 +16081,28 @@ type CompleteOrderPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + """ The stripe payment intent client secret used to complete a payment """ clientSecret: String! + """ The stripe payment intent status (if requires_action, it will be) """ - status: String! + status: OnSessionPaymentIntentStatus! +} + +enum OnSessionPaymentIntentStatus { + """ + If the setup requires additional actions, such as authenticating with 3D Secure + """ + REQUIRES_ACTION + + """ + Setup of payment source was successful. + """ + SUCCEEDED } """ @@ -12661,26 +16113,62 @@ input CompleteOrderInput { The order id """ orderId: ID! + """ The stripe confirmation token used to complete a payment (web only) """ stripeConfirmationTokenId: String + """ The stripe payment method id, starting with either `card_` or `pm_` (mobile only) """ stripePaymentMethodId: String + """ Kickstarter internal payment source id. Expects a number (not the stripe id starting with `pm_`). Pass in when using a saved card (optional) """ paymentSourceId: String + """ If the new payment source can be reused for future payments (optional) """ paymentSourceReusable: Boolean + """ List of accepted stripe payment method types """ paymentMethodTypes: [String!] + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +Autogenerated return type of CompleteZeroDollarOrder +""" +type CompleteZeroDollarOrderPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Whether the state transition succeeded + """ + success: Boolean! +} + +""" +Autogenerated input type of CompleteZeroDollarOrder +""" +input CompleteZeroDollarOrderInput { + """ + The order id + """ + orderId: ID! + """ A unique identifier for the client performing the mutation. """ @@ -12695,6 +16183,7 @@ type SucceedOrderPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + """ Whether the state transition succeeded """ @@ -12709,6 +16198,7 @@ input SucceedOrderInput { The order id """ orderId: ID! + """ A unique identifier for the client performing the mutation. """ @@ -12723,6 +16213,7 @@ type ConfirmOrderAddressPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + order: Order! } @@ -12734,10 +16225,12 @@ input ConfirmOrderAddressInput { The order id """ orderId: ID! + """ The address id """ addressId: ID! + """ A unique identifier for the client performing the mutation. """ @@ -12749,6 +16242,7 @@ Autogenerated return type of CreateWave """ type CreateWavePayload { checkoutWave: CheckoutWave! + """ A unique identifier for the client performing the mutation. """ @@ -12763,6 +16257,7 @@ input CreateWaveInput { The project id """ projectId: ID! + """ A unique identifier for the client performing the mutation. """ @@ -12777,6 +16272,7 @@ type SetTaxCategoryPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + """ The updated item tax config """ @@ -12791,14 +16287,17 @@ input SetTaxCategoryInput { The item id """ itemId: ID! + """ The tax category id """ taxCategoryId: ID + """ Input for creating or updating a tax category """ taxCategoryInput: TaxCategoryInput + """ A unique identifier for the client performing the mutation. """ @@ -12810,6 +16309,7 @@ Input to create or update a tax category """ input TaxCategoryInput { userLabel: String! + taxCode: String! } @@ -12821,6 +16321,7 @@ type CreateOrUpdateItemTaxConfigPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + """ Success if item tax config was created or updated successfully """ @@ -12835,14 +16336,17 @@ input CreateOrUpdateItemTaxConfigInput { The item id """ itemId: ID! + """ If the item is taxable """ itemIsTaxExempt: Boolean! + """ The market value of the item """ marketValue: Int + """ A unique identifier for the client performing the mutation. """ @@ -12857,6 +16361,7 @@ type UpdateRewardShippingRatesPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + """ The updated BackerReward """ @@ -12871,22 +16376,15 @@ input UpdateRewardShippingRatesInput { Kickstarter BackerReward (base or addon) id """ rewardId: ID! + shippingRates: [ShippingRateInput!]! + """ A unique identifier for the client performing the mutation. """ clientMutationId: String } -""" -Shipping rule for a reward -""" -input ShippingRateInput { - id: ID - cost: Int - locationId: String! -} - """ Autogenerated return type of UpdateOrderableConfig """ @@ -12895,6 +16393,7 @@ type UpdateOrderableConfigPayload { The updated BackerReward """ addOn: Reward! + """ A unique identifier for the client performing the mutation. """ @@ -12909,22 +16408,95 @@ input UpdateOrderableConfigInput { Kickstarter BackerReward id (for now) """ orderableId: ID! + """ Available for cross-sells or not """ enabled: Boolean! + """ Price for cross-sells """ crossSellPrice: Int + """ How many are cross-sellable total """ limit: Int + """ How many a backer can add to their order """ limitPerOrder: Int + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +Autogenerated return type of UpdateCrossSellsOnOrder +""" +type UpdateCrossSellsOnOrderPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Order that has been updated + """ + order: Order! +} + +""" +Autogenerated input type of UpdateCrossSellsOnOrder +""" +input UpdateCrossSellsOnOrderInput { + """ + Order ID that the Cross Sells are being added onto + """ + orderId: ID! + + crossSells: [SelectedCrossSellInput!]! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +Cross Sell selection to add to an Order +""" +input SelectedCrossSellInput { + id: ID! + + quantity: Int! +} + +""" +Autogenerated return type of DeleteStockLocation +""" +type DeleteStockLocationPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Project associated with the stock location + """ + project: Project! +} + +""" +Autogenerated input type of DeleteStockLocation +""" +input DeleteStockLocationInput { + stockLocationId: ID! + """ A unique identifier for the client performing the mutation. """ @@ -12939,6 +16511,7 @@ type CreateOptionPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + optionType: OptionType } @@ -12947,9 +16520,13 @@ Autogenerated input type of CreateOption """ input CreateOptionInput { itemId: ID! + name: String! + prompt: String + values: [String!]! + """ A unique identifier for the client performing the mutation. """ @@ -12964,6 +16541,7 @@ type UpdateOptionPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + optionType: OptionType } @@ -12972,9 +16550,13 @@ Autogenerated input type of UpdateOption """ input UpdateOptionInput { optionTypeId: ID! + name: String! + prompt: String + values: [String!]! + """ A unique identifier for the client performing the mutation. """ @@ -12989,10 +16571,12 @@ type DeleteOptionPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + """ The item that the deleted option type was associated with """ item: RewardItem! + """ Succeeds if option_type is deleted. """ @@ -13004,6 +16588,7 @@ Autogenerated input type of DeleteOption """ input DeleteOptionInput { optionTypeId: ID! + """ A unique identifier for the client performing the mutation. """ @@ -13018,6 +16603,7 @@ type CreateQuestionPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + question: Question } @@ -13026,12 +16612,19 @@ Autogenerated input type of CreateQuestion """ input CreateQuestionInput { questionableId: ID! + questionableType: QuestionableType! + type: QuestionType! + prompt: String! + choices: [String!] + choiceSelectionLimit: Int + optional: Boolean! + """ A unique identifier for the client performing the mutation. """ @@ -13043,7 +16636,9 @@ Types that can be associated with a Question """ enum QuestionableType { Project + RewardItem + Reward } @@ -13055,6 +16650,7 @@ type UpdateQuestionPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + question: Question } @@ -13063,11 +16659,17 @@ Autogenerated input type of UpdateQuestion """ input UpdateQuestionInput { questionId: ID! + type: QuestionType! + prompt: String! + choices: [String!] + choiceSelectionLimit: Int + optional: Boolean! + """ A unique identifier for the client performing the mutation. """ @@ -13082,6 +16684,7 @@ type DeleteQuestionPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + """ Succeeds if question is deleted. """ @@ -13093,6 +16696,7 @@ Autogenerated input type of DeleteQuestion """ input DeleteQuestionInput { questionId: ID! + """ A unique identifier for the client performing the mutation. """ @@ -13107,6 +16711,7 @@ type BulkEditQuestionsPayload { The updated backer survey. """ backerSurvey: BackerSurvey + """ A unique identifier for the client performing the mutation. """ @@ -13118,7 +16723,9 @@ Autogenerated input type of BulkEditQuestions """ input BulkEditQuestionsInput { projectId: ID! + questions: [QuestionInput!]! + """ A unique identifier for the client performing the mutation. """ @@ -13130,11 +16737,17 @@ Question associated with a particular questionable. """ input QuestionInput { type: QuestionType! + prompt: String! + questionableId: String! + questionableType: QuestionableType! + choices: [String!] + choiceSelectionLimit: Int + optional: Boolean! } @@ -13146,6 +16759,7 @@ type UpdateItemVariantsPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + """ The updated item variants """ @@ -13156,8 +16770,8 @@ type UpdateItemVariantsPayload { Autogenerated input type of UpdateItemVariants """ input UpdateItemVariantsInput { - projectId: ID! itemVariants: [ItemVariantInput!] + """ A unique identifier for the client performing the mutation. """ @@ -13168,7 +16782,8 @@ input UpdateItemVariantsInput { Input for updating an Item Variant """ input ItemVariantInput { - id: ID! + id: Int! + name: String! } @@ -13180,6 +16795,7 @@ type DeleteBackerSurveyPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + """ Succeeds if backer survey is deleted. """ @@ -13191,6 +16807,7 @@ Autogenerated input type of DeleteBackerSurvey """ input DeleteBackerSurveyInput { projectId: ID! + """ A unique identifier for the client performing the mutation. """ @@ -13205,6 +16822,7 @@ type ResetBackerSurveyPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + """ Succeeds if backer survey responses are reset. """ @@ -13216,6 +16834,7 @@ Autogenerated input type of ResetBackerSurvey """ input ResetBackerSurveyInput { projectId: ID! + """ A unique identifier for the client performing the mutation. """ @@ -13230,14 +16849,17 @@ type SubmitResponsesPayload { The finalized cart, if submission is successful. """ cart: Cart + """ A unique identifier for the client performing the mutation. """ clientMutationId: String + """ The delivery address attached to backing. """ deliveryAddress: Address + """ Succeeds if cart is finalized. """ @@ -13249,9 +16871,15 @@ Autogenerated input type of SubmitResponses """ input SubmitResponsesInput { cartId: ID! + addressId: ID + lineItemUpdates: [LineItemInput!]! + backerQuestionAnswers: [AnswerInput!]! + + finalizeOnSubmit: Boolean + """ A unique identifier for the client performing the mutation. """ @@ -13263,7 +16891,9 @@ Line item belonging to a cart """ input LineItemInput { id: ID! + optionValueIds: [ID!] + answers: [AnswerInput] } @@ -13272,7 +16902,9 @@ Answer associated with a particular question and answerable. """ input AnswerInput { questionId: ID! + response: [String!] + answerableId: ID } @@ -13284,6 +16916,7 @@ type CreateBackerSurveyPayload { The backer survey if creation was successful. """ backerSurvey: BackerSurvey + """ A unique identifier for the client performing the mutation. """ @@ -13295,6 +16928,7 @@ Autogenerated input type of CreateBackerSurvey """ input CreateBackerSurveyInput { projectId: ID! + """ A unique identifier for the client performing the mutation. """ @@ -13309,10 +16943,12 @@ type SetAddressCollectionEnabledPayload { Whether or not the creator has enabled address collection for this project. """ addressCollectionEnabled: Boolean! + """ Whether or not addresses should be collected for digital reward backers. """ addressCollectionForDigitalReward: Boolean! + """ A unique identifier for the client performing the mutation. """ @@ -13324,8 +16960,11 @@ Autogenerated input type of SetAddressCollectionEnabled """ input SetAddressCollectionEnabledInput { projectId: ID! + addressCollectionEnabled: Boolean! + addressCollectionForDigitalReward: Boolean! + """ A unique identifier for the client performing the mutation. """ @@ -13340,6 +16979,7 @@ type LockAddressesPayload { Returns the address lockout date if successful. """ addressLockoutDate: DateTime + """ A unique identifier for the client performing the mutation. """ @@ -13351,6 +16991,7 @@ Autogenerated input type of LockAddresses """ input LockAddressesInput { projectId: ID! + """ A unique identifier for the client performing the mutation. """ @@ -13365,6 +17006,7 @@ type SendSurveyPayload { A unique identifier for the client performing the mutation. """ clientMutationId: String + """ The updated survey. """ @@ -13376,12 +17018,319 @@ Autogenerated input type of SendSurvey """ input SendSurveyInput { surveyId: ID! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +Autogenerated return type of UpdateBackerSurveyIntro +""" +type UpdateBackerSurveyIntroPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The updated survey. + """ + survey: BackerSurvey! +} + +""" +Autogenerated input type of UpdateBackerSurveyIntro +""" +input UpdateBackerSurveyIntroInput { + surveyId: ID! + + intro: HTML + """ A unique identifier for the client performing the mutation. """ clientMutationId: String } +""" +A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations. +""" +type __Schema { + """ + A list of all directives supported by this server. + """ + directives: [__Directive!]! + + """ + If this server supports mutation, the type that mutation operations will be rooted at. + """ + mutationType: __Type + + """ + The type that query operations will be rooted at. + """ + queryType: __Type! + + """ + If this server support subscription, the type that subscription operations will be rooted at. + """ + subscriptionType: __Type + + """ + A list of all types supported by this server. + """ + types: [__Type!]! +} + +""" +The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + +Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. +""" +type __Type { + description: String + + enumValues(includeDeprecated: Boolean = false): [__EnumValue!] + + fields(includeDeprecated: Boolean = false): [__Field!] + + inputFields: [__InputValue!] + + interfaces: [__Type!] + + kind: __TypeKind! + + name: String + + ofType: __Type + + possibleTypes: [__Type!] +} + +""" +Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type. +""" +type __Field { + args: [__InputValue!]! + + deprecationReason: String + + description: String + + isDeprecated: Boolean! + + name: String! + + type: __Type! +} + +""" +A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document. + +In some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor. +""" +type __Directive { + args: [__InputValue!]! + + description: String + + locations: [__DirectiveLocation!]! + + name: String! + + onField: Boolean! @deprecated(reason: "Use `locations`.") + + onFragment: Boolean! @deprecated(reason: "Use `locations`.") + + onOperation: Boolean! @deprecated(reason: "Use `locations`.") +} + +""" +One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string. +""" +type __EnumValue { + deprecationReason: String + + description: String + + isDeprecated: Boolean! + + name: String! +} + +""" +Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value. +""" +type __InputValue { + """ + A GraphQL-formatted string representing the default value for this input value. + """ + defaultValue: String + + description: String + + name: String! + + type: __Type! +} + +""" +An enum describing what kind of type a given `__Type` is. +""" +enum __TypeKind { + """ + Indicates this type is a scalar. + """ + SCALAR + + """ + Indicates this type is an object. `fields` and `interfaces` are valid fields. + """ + OBJECT + + """ + Indicates this type is an interface. `fields` and `possibleTypes` are valid fields. + """ + INTERFACE + + """ + Indicates this type is a union. `possibleTypes` is a valid field. + """ + UNION + + """ + Indicates this type is an enum. `enumValues` is a valid field. + """ + ENUM + + """ + Indicates this type is an input object. `inputFields` is a valid field. + """ + INPUT_OBJECT + + """ + Indicates this type is a list. `ofType` is a valid field. + """ + LIST + + """ + Indicates this type is a non-null. `ofType` is a valid field. + """ + NON_NULL +} + +""" +A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies. +""" +enum __DirectiveLocation { + """ + Location adjacent to a query operation. + """ + QUERY + + """ + Location adjacent to a mutation operation. + """ + MUTATION + + """ + Location adjacent to a subscription operation. + """ + SUBSCRIPTION + + """ + Location adjacent to a field. + """ + FIELD + + """ + Location adjacent to a fragment definition. + """ + FRAGMENT_DEFINITION + + """ + Location adjacent to a fragment spread. + """ + FRAGMENT_SPREAD + + """ + Location adjacent to an inline fragment. + """ + INLINE_FRAGMENT + + """ + Location adjacent to a schema definition. + """ + SCHEMA + + """ + Location adjacent to a scalar definition. + """ + SCALAR + + """ + Location adjacent to an object type definition. + """ + OBJECT + + """ + Location adjacent to a field definition. + """ + FIELD_DEFINITION + + """ + Location adjacent to an argument definition. + """ + ARGUMENT_DEFINITION + + """ + Location adjacent to an interface definition. + """ + INTERFACE + + """ + Location adjacent to a union definition. + """ + UNION + + """ + Location adjacent to an enum definition. + """ + ENUM + + """ + Location adjacent to an enum value definition. + """ + ENUM_VALUE + + """ + Location adjacent to an input object type definition. + """ + INPUT_OBJECT + + """ + Location adjacent to an input object field definition. + """ + INPUT_FIELD_DEFINITION +} + +""" +Directs the executor to include this field or fragment only when the `if` argument is true. +""" +directive @include ("Included when true." if: Boolean!) on FIELD|FRAGMENT_SPREAD|INLINE_FRAGMENT + +""" +Directs the executor to skip this field or fragment when the `if` argument is true. +""" +directive @skip ("Skipped when true." if: Boolean!) on FIELD|FRAGMENT_SPREAD|INLINE_FRAGMENT + +""" +Marks an element of a GraphQL schema as no longer supported. +""" +directive @deprecated ("Explains why this element was deprecated, usually also including a suggestion for how to access supported similar data. Formatted in [Markdown](https:\/\/daringfireball.net\/projects\/markdown\/)." reason: String = "No longer supported") on FIELD_DEFINITION|ENUM_VALUE + schema { query: Query mutation: Mutation diff --git a/app/src/main/graphql/thirdPartyEvents.graphql b/app/src/main/graphql/thirdPartyEvents.graphql index 5116d04911..d0072cc65d 100644 --- a/app/src/main/graphql/thirdPartyEvents.graphql +++ b/app/src/main/graphql/thirdPartyEvents.graphql @@ -1,6 +1,8 @@ -#mutation triggerThirdPartyEvent ($triggerThirdPartyEventInput: TriggerThirdPartyEventInput!) { -# triggerThirdPartyEvent(input: $triggerThirdPartyEventInput) { -# message -# success -# } -#} \ No newline at end of file +mutation triggerThirdPartyEvent($deviceId: String!, $eventName: String!, $firebaseScreen: String, $firebasePreviousScreen: String, $items: [ThirdPartyEventItemInput!], +$projectId: ID!, $pledgeAmount: Float, $shipping: Float, $transactionId: String, $userId: String, $appData: AppDataInput ) { + triggerThirdPartyEvent(input: {deviceId: $deviceId, eventName: $eventName, firebaseScreen: $firebaseScreen, firebasePreviousScreen: $firebasePreviousScreen, + items: $items, projectId: $projectId, pledgeAmount: $pledgeAmount, shipping: $shipping, transactionId: $transactionId, userId: $userId, appData: $appData}) { + message + success + } +} \ No newline at end of file diff --git a/app/src/main/java/com/kickstarter/services/KSApolloClientV2.kt b/app/src/main/java/com/kickstarter/services/KSApolloClientV2.kt index 347f90a2c7..186390fbda 100644 --- a/app/src/main/java/com/kickstarter/services/KSApolloClientV2.kt +++ b/app/src/main/java/com/kickstarter/services/KSApolloClientV2.kt @@ -94,6 +94,7 @@ import com.kickstarter.services.transformers.encodeRelayId import com.kickstarter.services.transformers.getCreateAttributionEventMutation import com.kickstarter.services.transformers.getCreateOrUpdateBackingAddressMutation import com.kickstarter.services.transformers.getPledgedProjectsOverviewQuery +import com.kickstarter.services.transformers.getTriggerThirdPartyEventMutation import com.kickstarter.services.transformers.pledgedProjectsOverviewEnvelopeTransformer import com.kickstarter.services.transformers.projectTransformer import com.kickstarter.services.transformers.rewardTransformer @@ -876,28 +877,27 @@ class KSApolloClientV2(val service: ApolloClient, val gson: Gson) : ApolloClient override fun triggerThirdPartyEvent(eventInput: TPEventInputData): Observable> { return Observable.defer { val ps = PublishSubject.create>() -// TODO: rewrite this query on the thirdPartyEvents.graphQL file, something is off here -// val mutation = getTriggerThirdPartyEventMutation(eventInput) -// -// service.mutate(mutation) -// .enqueue(object : ApolloCall.Callback() { -// override fun onFailure(exception: ApolloException) { -// ps.onError(exception) -// } -// -// override fun onResponse(response: Response) { -// if (response.hasErrors()) { -// ps.onError(Exception(response.errors?.first()?.message ?: "")) -// } -// -// response.data?.let { -// val message = it.triggerThirdPartyEvent()?.message() ?: "" -// val isSuccess = it.triggerThirdPartyEvent()?.success() ?: false -// ps.onNext(Pair(isSuccess, message)) -// } -// ps.onComplete() -// } -// }) + + val mutation = getTriggerThirdPartyEventMutation(eventInput) + + service + .mutation(mutation) + .rxSingle() + .doOnError { throwable -> + ps.onError(throwable) + } + .subscribe { response -> + if (response.hasErrors()) { + ps.onError(java.lang.Exception(response.errors?.first()?.message)) + } else { + val message = response.data?.triggerThirdPartyEvent?.message + val isSuccess = response.data?.triggerThirdPartyEvent?.success ?: false + + ps.onNext(Pair(isSuccess, message)) + } + + ps.onComplete() + }.addToDisposable(disposables) return@defer ps } } @@ -1710,7 +1710,7 @@ class KSApolloClientV2(val service: ApolloClient, val gson: Gson) : ApolloClient response.data?.completeOrder?.let { val payload = CompleteOrderPayload( - status = it.status, + status = it.status.name, clientSecret = it.clientSecret ?: "" ) ps.onNext(payload) diff --git a/app/src/main/java/com/kickstarter/services/transformers/GraphQLTransformers.kt b/app/src/main/java/com/kickstarter/services/transformers/GraphQLTransformers.kt index c96b784908..328236619b 100644 --- a/app/src/main/java/com/kickstarter/services/transformers/GraphQLTransformers.kt +++ b/app/src/main/java/com/kickstarter/services/transformers/GraphQLTransformers.kt @@ -7,6 +7,7 @@ import com.kickstarter.CreateAttributionEventMutation import com.kickstarter.CreateOrUpdateBackingAddressMutation import com.kickstarter.FetchProjectRewardsQuery import com.kickstarter.PledgedProjectsOverviewQuery +import com.kickstarter.TriggerThirdPartyEventMutation import com.kickstarter.UserPrivacyQuery import com.kickstarter.features.pledgedprojectsoverview.data.Flag import com.kickstarter.features.pledgedprojectsoverview.data.PPOCard @@ -19,6 +20,7 @@ import com.kickstarter.fragment.PpoCard.DeliveryAddress import com.kickstarter.fragment.ProjectCard import com.kickstarter.libs.Permission import com.kickstarter.libs.utils.extensions.isNotNull +import com.kickstarter.libs.utils.extensions.isNull import com.kickstarter.libs.utils.extensions.isPresent import com.kickstarter.libs.utils.extensions.negate import com.kickstarter.mock.factories.RewardFactory @@ -48,6 +50,7 @@ import com.kickstarter.services.apiresponses.ShippingRulesEnvelope import com.kickstarter.services.apiresponses.commentresponse.PageInfoEnvelope import com.kickstarter.services.mutations.CreateAttributionEventData import com.kickstarter.services.mutations.CreateOrUpdateBackingAddressData +import com.kickstarter.type.AppDataInput import com.kickstarter.type.CollaboratorPermission import com.kickstarter.type.CreateAttributionEventInput import com.kickstarter.type.CreateOrUpdateBackingAddressInput @@ -56,6 +59,8 @@ import com.kickstarter.type.CurrencyCode import com.kickstarter.type.Feature import com.kickstarter.type.RewardType import com.kickstarter.type.ShippingPreference +import com.kickstarter.type.ThirdPartyEventItemInput +import com.kickstarter.viewmodels.usecases.TPEventInputData import org.jetbrains.annotations.Nullable import org.joda.time.DateTime import java.nio.charset.Charset @@ -880,40 +885,36 @@ fun shippingRulesListTransformer(shippingRulesExpanded: List = eventInput.items -// .map { -// ThirdPartyEventItemInput.builder() -// .itemId(it.itemId) -// .itemName(it.itemName) -// .price(it.price) -// .build() -// } -// -// val graphInput = -// TriggerThirdPartyEventInput.builder() -// .userId(eventInput.userId) -// .eventName(eventInput.eventName) -// .deviceId(eventInput.deviceId) -// .firebaseScreen(eventInput.firebaseScreen) -// .firebasePreviousScreen(eventInput.firebasePreviousScreen) -// .projectId(eventInput.projectId) -// .pledgeAmount(eventInput.pledgeAmount) -// .shipping(eventInput.shipping) -// .appData(graphAppData) -// .items(items) -// .transactionId(eventInput.transactionId) -// .build() -// -// return TriggerThirdPartyEventMutation.builder().triggerThirdPartyEventInput(graphInput) -// .build() -// } +fun getTriggerThirdPartyEventMutation(eventInput: TPEventInputData): TriggerThirdPartyEventMutation { + val graphAppData = AppDataInput( + advertiserTrackingEnabled = eventInput.appData.iOSConsent, + applicationTrackingEnabled = eventInput.appData.androidConsent, + extinfo = eventInput.appData.extInfo + ) + + val items: List = eventInput.items + .map { + ThirdPartyEventItemInput( + itemId = it.itemId, + itemName = it.itemName, + price = if (it.price.isNotNull()) Optional.present(it.price) else Optional.absent() + ) + } + + return TriggerThirdPartyEventMutation( + userId = if (eventInput.isNull()) Optional.absent() else Optional.present(eventInput.userId), + eventName = eventInput.eventName, + deviceId = eventInput.deviceId, + firebaseScreen = if (eventInput.firebaseScreen.isNull()) Optional.absent() else Optional.present(eventInput.firebaseScreen), + firebasePreviousScreen = if (eventInput.firebasePreviousScreen.isNull()) Optional.absent() else Optional.present(eventInput.firebasePreviousScreen), + projectId = eventInput.projectId, + pledgeAmount = if (eventInput.pledgeAmount.isNull()) Optional.absent() else Optional.present(eventInput.pledgeAmount), + shipping = if (eventInput.shipping.isNull()) Optional.absent() else Optional.present(eventInput.shipping), + appData = if (graphAppData.isNull()) Optional.absent() else Optional.present(graphAppData), + items = if (items.isNull()) Optional.absent() else Optional.present(items), + transactionId = if (eventInput.isNull()) Optional.absent() else Optional.present(eventInput.transactionId) + ) +} /** * From KS dataModel CreateAttributionEventData, transform it into diff --git a/build.gradle b/build.gradle index 6ce5c518f1..37b747b0ba 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:8.6.1' + classpath 'com.android.tools.build:gradle:8.7.2' classpath 'com.google.gms:google-services:4.3.15' classpath "org.jacoco:org.jacoco.core:$jacoco_version" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 9e773f392c..0d36650620 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Wed Jan 26 16:41:20 PST 2022 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip distributionPath=wrapper/dists zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME