diff --git a/packages/server/graphql/private/typeDefs/ChangeEmailDomainPayload.graphql b/packages/server/graphql/private/typeDefs/ChangeEmailDomainPayload.graphql new file mode 100644 index 00000000000..8312d47fdb5 --- /dev/null +++ b/packages/server/graphql/private/typeDefs/ChangeEmailDomainPayload.graphql @@ -0,0 +1,4 @@ +""" +Return value for changeEmailDomain, which could be an error +""" +union ChangeEmailDomainPayload = ErrorPayload | ChangeEmailDomainSuccess diff --git a/packages/server/graphql/private/typeDefs/ChangeEmailDomainSuccess.graphql b/packages/server/graphql/private/typeDefs/ChangeEmailDomainSuccess.graphql new file mode 100644 index 00000000000..7dd04d71e98 --- /dev/null +++ b/packages/server/graphql/private/typeDefs/ChangeEmailDomainSuccess.graphql @@ -0,0 +1,11 @@ +type ChangeEmailDomainSuccess { + """ + The users whose domains were changed + """ + usersUpdated: [User!]! + + """ + Users whose domains were not changed as they were already in the new domain + """ + usersNotUpdated: [User!]! +} diff --git a/packages/server/graphql/private/typeDefs/DomainCountPayload.graphql b/packages/server/graphql/private/typeDefs/DomainCountPayload.graphql new file mode 100644 index 00000000000..7085736f700 --- /dev/null +++ b/packages/server/graphql/private/typeDefs/DomainCountPayload.graphql @@ -0,0 +1,11 @@ +type DomainCountPayload { + """ + the email domain + """ + domain: ID! + + """ + the sum total + """ + total: Int! +} diff --git a/packages/server/graphql/private/typeDefs/DraftEnterpriseInvoicePayload.graphql b/packages/server/graphql/private/typeDefs/DraftEnterpriseInvoicePayload.graphql new file mode 100644 index 00000000000..83c241db6f3 --- /dev/null +++ b/packages/server/graphql/private/typeDefs/DraftEnterpriseInvoicePayload.graphql @@ -0,0 +1,8 @@ +type DraftEnterpriseInvoicePayload { + error: StandardMutationError + + """ + The updated organization + """ + organization: Organization +} diff --git a/packages/server/graphql/private/typeDefs/EndTrialPayload.graphql b/packages/server/graphql/private/typeDefs/EndTrialPayload.graphql new file mode 100644 index 00000000000..ff06dc50d82 --- /dev/null +++ b/packages/server/graphql/private/typeDefs/EndTrialPayload.graphql @@ -0,0 +1,4 @@ +""" +Return value for endTrial, which could be an error +""" +union EndTrialPayload = ErrorPayload | EndTrialSuccess diff --git a/packages/server/graphql/private/typeDefs/EndTrialSuccess.graphql b/packages/server/graphql/private/typeDefs/EndTrialSuccess.graphql new file mode 100644 index 00000000000..2da06369c5b --- /dev/null +++ b/packages/server/graphql/private/typeDefs/EndTrialSuccess.graphql @@ -0,0 +1,11 @@ +type EndTrialSuccess { + """ + The updated organization + """ + organization: Organization! + + """ + The start time of the ended trial + """ + trialStartDate: DateTime +} diff --git a/packages/server/graphql/private/typeDefs/FlagConversionModalPayload.graphql b/packages/server/graphql/private/typeDefs/FlagConversionModalPayload.graphql new file mode 100644 index 00000000000..87ac2a62b8e --- /dev/null +++ b/packages/server/graphql/private/typeDefs/FlagConversionModalPayload.graphql @@ -0,0 +1,8 @@ +type FlagConversionModalPayload { + error: StandardMutationError + + """ + the org with the limit added or removed + """ + org: Organization +} diff --git a/packages/server/graphql/private/typeDefs/FlagOverLimitPayload.graphql b/packages/server/graphql/private/typeDefs/FlagOverLimitPayload.graphql new file mode 100644 index 00000000000..836c5c5beb2 --- /dev/null +++ b/packages/server/graphql/private/typeDefs/FlagOverLimitPayload.graphql @@ -0,0 +1,8 @@ +type FlagOverLimitPayload { + error: StandardMutationError + + """ + the users with the limit added or removed + """ + users: [User!] +} diff --git a/packages/server/graphql/private/typeDefs/LoginsPayload.graphql b/packages/server/graphql/private/typeDefs/LoginsPayload.graphql new file mode 100644 index 00000000000..050f469785a --- /dev/null +++ b/packages/server/graphql/private/typeDefs/LoginsPayload.graphql @@ -0,0 +1,11 @@ +type LoginsPayload { + """ + the total number of records + """ + total: Int! + + """ + The total broken down by email domain + """ + byDomain: [DomainCountPayload!]! +} diff --git a/packages/server/graphql/private/typeDefs/MessageAllSlackUsersPayload.graphql b/packages/server/graphql/private/typeDefs/MessageAllSlackUsersPayload.graphql new file mode 100644 index 00000000000..22612fa4b2b --- /dev/null +++ b/packages/server/graphql/private/typeDefs/MessageAllSlackUsersPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for MessageAllSlackUsersPayload +""" +union MessageAllSlackUsersPayload = ErrorPayload | MessageAllSlackUsersSuccess diff --git a/packages/server/graphql/private/typeDefs/MessageAllSlackUsersSuccess.graphql b/packages/server/graphql/private/typeDefs/MessageAllSlackUsersSuccess.graphql new file mode 100644 index 00000000000..c09591763ba --- /dev/null +++ b/packages/server/graphql/private/typeDefs/MessageAllSlackUsersSuccess.graphql @@ -0,0 +1,11 @@ +type MessageAllSlackUsersSuccess { + """ + A list of the Parabol user ids that have been sent a direct message in Slack + """ + messagedUserIds: [ID!]! + + """ + Slack messages that failed to send + """ + errors: [MessageSlackUserError!] +} diff --git a/packages/server/graphql/private/typeDefs/MessageSlackUserError.graphql b/packages/server/graphql/private/typeDefs/MessageSlackUserError.graphql new file mode 100644 index 00000000000..7927560d4fd --- /dev/null +++ b/packages/server/graphql/private/typeDefs/MessageSlackUserError.graphql @@ -0,0 +1,11 @@ +""" +An error from sending a message to a Slack user +""" +type MessageSlackUserError { + userId: ID! + + """ + The error message received from Slack + """ + error: String! +} diff --git a/packages/server/graphql/private/typeDefs/Mutation.graphql b/packages/server/graphql/private/typeDefs/Mutation.graphql new file mode 100644 index 00000000000..0c96e5e2c37 --- /dev/null +++ b/packages/server/graphql/private/typeDefs/Mutation.graphql @@ -0,0 +1,530 @@ +type Mutation { + """ + Updates the user email + """ + updateEmail( + """ + User current email + """ + oldEmail: Email! + + """ + User new email + """ + newEmail: Email! + ): Boolean! + + """ + broadcast a new feature to the entire userbase + """ + addNewFeature( + """ + The text of the action button in the snackbar + """ + actionButtonCopy: String! + + """ + The description of the new feature + """ + snackbarMessage: String! + + """ + The permalink to the blog post describing the new feature + """ + url: String! + ): AddNewFeaturePayload + + """ + automatically pause users that have been inactive for 30 days. returns the number of users paused + """ + autopauseUsers: Int + + """ + copies all the records from RethinkDB for a list of organizations + """ + backupOrganization(orgIds: [ID!]!): String! + + """ + check equality of a table between rethinkdb and postgres + """ + checkRethinkPgEquality( + """ + The table name to be compared + """ + tableName: String! + + """ + How many errors should be returned + """ + maxErrors: Int + + """ + Whether the output should be written to file + """ + writeToFile: Boolean + ): String! + + """ + a server-side mutation called when a client connects + """ + connectSocket( + """ + The ID of the server this socket is connected to + """ + socketInstanceId: ID! + ): User! + + """ + profile the CPU + """ + profileCPU: String + + """ + a server-side mutation called when a client disconnects + """ + disconnectSocket( + """ + the userId to disconnect + """ + userId: ID! + ): DisconnectSocketPayload + + """ + Create a stripe customer & subscription in stripe, send them an invoice for an enterprise license + """ + draftEnterpriseInvoice( + """ + the org requesting the upgrade + """ + orgId: ID! + + """ + The number of users the license grants the organization + """ + quantity: Int! + + """ + Email address of billing leader, if different from the org billing leader + """ + email: ID + + """ + The email address for Accounts Payable. Use only if the invoice will be sent to a non-user! + """ + apEmail: ID + + """ + the stripe id of the plan in stripe, if not using the default plan + """ + plan: ID + ): DraftEnterpriseInvoicePayload + + """ + dump the memory heap to a file + """ + dumpHeap( + """ + must pass true to make it work + """ + isDangerous: Boolean! + ): String + + """ + add/remove a flag on an org asking them to pay + """ + flagConversionModal( + """ + true to turn the modal on, false to turn it off + """ + active: Boolean! + + """ + the orgId to toggle the flag for + """ + orgId: ID! + ): FlagConversionModalPayload + + """ + hard deletes a user and all its associated objects + """ + hardDeleteUser( + """ + a userId + """ + userId: ID + + """ + the user email + """ + email: ID + + """ + the reason why the user wants to delete their account + """ + reasonText: String + ): DeleteUserPayload! + + """ + Lock/Unlock teams, flagging them as unpaid/paid. Return true if successful + """ + lockTeams( + """ + List of teams to target + """ + teamIds: [ID!]! + + """ + true to unlock the teams, false to lock + """ + isPaid: Boolean! + + """ + The HTML to show if isPaid is false + """ + message: String + ): Boolean! + + """ + Send a message to all authorised Slack users + """ + messageAllSlackUsers( + """ + The slack message that will be sent to all Slack users + """ + message: String! + ): MessageAllSlackUsersPayload! + + """ + Remove Slack integrations for all users + """ + removeAllSlackAuths: RemoveAllSlackAuthsPayload! + + """ + schedule upcoming jobs to be run + """ + runScheduledJobs( + """ + Queue up all jobs that are scheduled to run within this many seconds + """ + seconds: Int! + ): Int + + """ + Send summary emails of unread notifications to all users who have not been seen within the last 24 hours + """ + sendBatchNotificationEmails: [String] + + """ + send an email to organizations including all the users that were added in the current billing cycle + """ + sendUpcomingInvoiceEmails: [String] + + """ + manually set the domain that the organization belongs to + """ + setOrganizationDomain( + """ + The unique identifier for the organization + """ + orgId: ID! + + """ + The top level domain of the company. Usually the part after the "@" in their email address + """ + domain: ID! + ): Boolean! + + """ + When stripe tells us an invoice is ready, create a pretty version + """ + stripeCreateInvoice( + """ + The stripe invoice ID + """ + invoiceId: ID! + ): Boolean + + """ + When stripe tells us an invoice payment failed, update it in our DB + """ + stripeFailPayment( + """ + The stripe invoice ID + """ + invoiceId: ID! + ): StripeFailPaymentPayload + + """ + When stripe tells us an invoice payment was successful, update it in our DB + """ + stripeSucceedPayment( + """ + The stripe invoice ID + """ + invoiceId: ID! + ): Boolean + + """ + When stripe tells us a credit card was updated, update the details in our own DB + """ + stripeUpdateCreditCard( + """ + The stripe customer ID, or stripeId + """ + customerId: ID! + ): Boolean + + """ + When stripe tells us a subscription was updated, update the details in our own DB + """ + stripeCreateSubscription( + """ + The stripe customer ID, or stripeId + """ + customerId: ID! + + """ + The stripe subscription ID + """ + subscriptionId: ID! + ): Boolean + + """ + When stripe tells us a subscription was deleted, update the details in our own DB + """ + stripeDeleteSubscription( + """ + The stripe customer ID, or stripeId + """ + customerId: ID! + + """ + The stripe subscription ID + """ + subscriptionId: ID! + ): Boolean + + """ + When a new invoiceitem is sent from stripe, tag it with metadata + """ + stripeUpdateInvoiceItem( + """ + The stripe invoice ID + """ + invoiceItemId: ID! + ): Boolean + + """ + An invice has been sent from stripe, meaning it is finalized + """ + stripeInvoiceFinalized( + """ + The stripe invoice ID + """ + invoiceId: ID! + ): Boolean + + """ + add/remove user(s) to/from the watchlist so that we start/stop recording their sessions + """ + updateWatchlist( + """ + a list of email addresses of users whose sessions we want to start/stop recording + """ + emails: [String!] + + """ + add/remove the entire domain to/from the watchlist. The part of the email after the @ + """ + domain: String + + """ + true if the user should be added to the watchlist, false if not + """ + includeInWatchlist: Boolean! + ): UpdateWatchlistPayload! + + """ + Updates Atlassian OAuth tokens that haven't been updated since the date specified in input + """ + updateOAuthRefreshTokens( + """ + Threshold date for `updatedAt` from AtlassianAuth + """ + updatedBefore: DateTime! + ): Int + + """ + Change a company's domain so that affected users can only log in with the new domain + """ + changeEmailDomain( + """ + The company's old domain that we want to change + """ + oldDomain: String! + + """ + The new domain that we're changing to + """ + newDomain: String! + ): ChangeEmailDomainPayload! + + """ + Ends the trial for an org iff there is an active trial. + """ + endTrial( + """ + ID of the org on which to end the trial + """ + orgId: ID! + ): EndTrialPayload! + + """ + add/remove a flag on a user saying they are over the free tier + """ + flagOverLimit( + """ + The text body of the over limit message, null to remove the previous value + """ + copy: String = "" + + """ + the user orgId that went over the limit + """ + orgId: ID! + ): FlagOverLimitPayload + + """ + Log in using SAML single sign on (SSO) + """ + loginSAML( + """ + The querystring provided by the IdP including SAMLResponse and RelayState + """ + queryString: String! + + """ + The name of the SAML identifier. The slug used in the redirect URL + """ + samlName: ID! + ): UserLogInPayload! + + """ + Processes recurrence for meetings that should start and end. + """ + processRecurrence: ProcessRecurrencePayload! + + """ + Remove the auth identity for users with a specific domain. Example use case: signed up with Gmail but they're deleting their Google account + """ + removeAuthIdentity( + """ + Change the auth identity for users with this domain + """ + domain: String! + + """ + The type of auth to remove + """ + identityType: AuthIdentityTypeEnum! + + """ + Add a local auth with a dummy hashed password + """ + addLocal: Boolean! + ): RemoveAuthIdentityPayload! + + """ + Set the isFree tier on a meeting template to determine if it's accessible to free users + """ + setIsFreeMeetingTemplate( + isFree: Boolean! + templateIds: [ID!] + templateNames: [String!] + ): SetIsFreeMeetingTemplatePayload! + + """ + Starts a free trial for the org iff the org is on a free tier. + """ + startTrial( + """ + ID of the org on which to start the trial + """ + orgId: ID! + ): StartTrialPayload! + + """ + When stripe tells us an invoice is paid (inside or outside of stripe), update it in our DB + """ + stripeInvoicePaid( + """ + The stripe invoice ID + """ + invoiceId: ID! + ): Boolean + + """ + Allow or deny the User to view insights for the provided domain + """ + toggleAllowInsights( + """ + The tier we are squeezing the user to upgrade to. If null, will unset previous value + """ + suggestedTier: TierEnum + + """ + The domain (e.g. parabol.co) that the user should be able to view insights on + """ + domain: String! + + """ + emails to give the insights priviledge to + """ + emails: [String!]! + ): ToggleAllowInsightsPayload! + + """ + Give some organizations advanced features in a flag + """ + updateOrgFeatureFlag( + """ + a list of organization ids + """ + orgIds: [String!]! + + """ + the flag that you want to give to the organization + """ + flag: OrganizationFeatureFlagsEnum! + + """ + whether or not you want to give the organization the flag + """ + addFlag: Boolean! + ): UpdateOrgFeatureFlagPayload! + + """ + Describe the mutation here + """ + verifyDomain( + """ + Add the following domains to the list that org has control over. A domain is usually the part after the @ of their email. + """ + addDomains: [ID!] + + """ + organization id. If the record already exists, this will overwite the value + """ + orgId: ID! + + """ + The name of the company, used as a slug in signon URLs. Usually the domain without the tld + """ + slug: ID! + + """ + A list of domains to remove from the control of the org. Useful if you previously added the incorrect domains + """ + removeDomains: [ID!] + ): VerifyDomainPayload! +} diff --git a/packages/server/graphql/private/typeDefs/OrganizationFeatureFlagsEnum.graphql b/packages/server/graphql/private/typeDefs/OrganizationFeatureFlagsEnum.graphql new file mode 100644 index 00000000000..c464347283c --- /dev/null +++ b/packages/server/graphql/private/typeDefs/OrganizationFeatureFlagsEnum.graphql @@ -0,0 +1,17 @@ +""" +A flag to give an individual organization super powers +""" +enum OrganizationFeatureFlagsEnum { + noAISummary + standupAISummary + noPromptToJoinOrg + suggestGroups + zoomTranscription + shareSummary + teamsLimit + noTeamInsights + singleColumnStandups + publicTeams + aiTemplate + relatedDiscussions +} diff --git a/packages/server/graphql/private/typeDefs/ping.graphql b/packages/server/graphql/private/typeDefs/PingableServices.graphql similarity index 73% rename from packages/server/graphql/private/typeDefs/ping.graphql rename to packages/server/graphql/private/typeDefs/PingableServices.graphql index a5fac9c81f4..8fe88d9e09c 100644 --- a/packages/server/graphql/private/typeDefs/ping.graphql +++ b/packages/server/graphql/private/typeDefs/PingableServices.graphql @@ -3,19 +3,14 @@ type PingableServices { Response time for RethinkDB (in milliseconds) -1 if unreachable after 5 seconds """ rethinkdb: Int! + """ Response time for Postgres (in milliseconds) -1 if unreachable after 5 seconds """ postgres: Int! + """ Response time for Redis (in milliseconds) -1 if unreachable after 5 seconds """ redis: Int! } - -extend type Query { - """ - Ping various services to determine response time & availability - """ - ping: PingableServices! -} diff --git a/packages/server/graphql/private/typeDefs/ProcessRecurrencePayload.graphql b/packages/server/graphql/private/typeDefs/ProcessRecurrencePayload.graphql new file mode 100644 index 00000000000..cad4ee5dbc1 --- /dev/null +++ b/packages/server/graphql/private/typeDefs/ProcessRecurrencePayload.graphql @@ -0,0 +1,4 @@ +""" +Return value for processRecurrence, which could be an error +""" +union ProcessRecurrencePayload = ErrorPayload | ProcessRecurrenceSuccess diff --git a/packages/server/graphql/private/typeDefs/ProcessRecurrenceSuccess.graphql b/packages/server/graphql/private/typeDefs/ProcessRecurrenceSuccess.graphql new file mode 100644 index 00000000000..a16ddbc4565 --- /dev/null +++ b/packages/server/graphql/private/typeDefs/ProcessRecurrenceSuccess.graphql @@ -0,0 +1,11 @@ +type ProcessRecurrenceSuccess { + """ + Number of meetings that were ended because of this mutation. + """ + meetingsEnded: Int! + + """ + Number of meetings that were started because of this mutation. + """ + meetingsStarted: Int! +} diff --git a/packages/server/graphql/private/typeDefs/Query.graphql b/packages/server/graphql/private/typeDefs/Query.graphql new file mode 100644 index 00000000000..e03d9be4f6e --- /dev/null +++ b/packages/server/graphql/private/typeDefs/Query.graphql @@ -0,0 +1,136 @@ +""" +This file was generated from before we moved to SDL-driven development +It's HUGE, and editing it directly could result in a headache. +Please don't add anything to this file. +Instead, add your new types to their own typeDef file +""" +type Query { + """ + Get the number of logins, optionally broken down by domain + """ + logins( + """ + only include users whose accounts were created after this date + """ + after: DateTime + + """ + if true, only include active users, else count all users + """ + isActive: Boolean = false + ): LoginsPayload! + + """ + Ping various services to determine response time & availability + """ + ping: PingableServices! + + """ + All the info about a specific company + """ + company( + """ + the top level doamin for a company (e.g. parabol.co) + """ + domain: ID + + """ + if domain is not provided, the userId that belongs to the company + """ + userId: ID + ): Company + + """ + Post signup and login metrics to slack + """ + dailyPulse( + """ + the earliest time to run the query + """ + after: DateTime! + + """ + the email that holds the credentials to the channelId + """ + email: String! + + """ + the ID of channel to post to + """ + channelId: ID! + ): Boolean + + """ + Check if this server is alive (an example query). + """ + pingActionTick: String + suCountTiersForUser( + """ + the user for which you want the count of tier membership + """ + userId: ID! + ): UserTiersCount + suUserCount( + """ + which tier of org shall we count? + """ + tier: TierEnum = team + ): Int + suOrgCount( + """ + the minimum number of users within the org to count it + """ + minOrgSize: Int = 2 + + """ + which tier of org shall we count? + """ + tier: TierEnum = team + ): Int + + """ + Dig into a user by providing the email or userId + """ + user( + """ + the email of the user + """ + email: String + + """ + the ID of the user + """ + userId: ID + ): User + + """ + Dig into many users by providing the userId + """ + users( + """ + a list of userIds + """ + userIds: [ID!]! + ): [User]! + + """ + Get the number of signups, optionally broken down by domain + """ + signups( + """ + only include users whose accounts were created after this date + """ + after: DateTime + + """ + if true, only include active users, else count all users + """ + isActive: Boolean = false + ): SignupsPayload! + suProOrgInfo( + """ + should organizations without active users be included? + """ + includeInactive: Boolean! = false + ): [Organization!] +} diff --git a/packages/server/graphql/private/typeDefs/RemoveAllSlackAuthsPayload.graphql b/packages/server/graphql/private/typeDefs/RemoveAllSlackAuthsPayload.graphql new file mode 100644 index 00000000000..86228334d8a --- /dev/null +++ b/packages/server/graphql/private/typeDefs/RemoveAllSlackAuthsPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for RemoveAllSlackAuthsPayload +""" +union RemoveAllSlackAuthsPayload = ErrorPayload | RemoveAllSlackAuthsSuccess diff --git a/packages/server/graphql/private/typeDefs/RemoveAllSlackAuthsSuccess.graphql b/packages/server/graphql/private/typeDefs/RemoveAllSlackAuthsSuccess.graphql new file mode 100644 index 00000000000..4185d7e9197 --- /dev/null +++ b/packages/server/graphql/private/typeDefs/RemoveAllSlackAuthsSuccess.graphql @@ -0,0 +1,11 @@ +type RemoveAllSlackAuthsSuccess { + """ + Response from removing all Slack auths + """ + slackAuthRes: String! + + """ + Response from removing all Slack notifications + """ + slackNotificationRes: String! +} diff --git a/packages/server/graphql/private/typeDefs/RemoveAuthIdentityPayload.graphql b/packages/server/graphql/private/typeDefs/RemoveAuthIdentityPayload.graphql new file mode 100644 index 00000000000..340c766687e --- /dev/null +++ b/packages/server/graphql/private/typeDefs/RemoveAuthIdentityPayload.graphql @@ -0,0 +1,4 @@ +""" +Return value for removeAuthIdentity, which could be an error +""" +union RemoveAuthIdentityPayload = ErrorPayload | RemoveAuthIdentitySuccess diff --git a/packages/server/graphql/private/typeDefs/RemoveAuthIdentitySuccess.graphql b/packages/server/graphql/private/typeDefs/RemoveAuthIdentitySuccess.graphql new file mode 100644 index 00000000000..b859ca5b605 --- /dev/null +++ b/packages/server/graphql/private/typeDefs/RemoveAuthIdentitySuccess.graphql @@ -0,0 +1,6 @@ +type RemoveAuthIdentitySuccess { + """ + The users who had their auth identity removed + """ + users: [User!]! +} diff --git a/packages/server/graphql/private/typeDefs/SetIsFreeMeetingTemplatePayload.graphql b/packages/server/graphql/private/typeDefs/SetIsFreeMeetingTemplatePayload.graphql new file mode 100644 index 00000000000..4e8ae099215 --- /dev/null +++ b/packages/server/graphql/private/typeDefs/SetIsFreeMeetingTemplatePayload.graphql @@ -0,0 +1 @@ +union SetIsFreeMeetingTemplatePayload = ErrorPayload | SetIsFreeMeetingTemplateSuccess diff --git a/packages/server/graphql/private/typeDefs/SetIsFreeMeetingTemplateSuccess.graphql b/packages/server/graphql/private/typeDefs/SetIsFreeMeetingTemplateSuccess.graphql new file mode 100644 index 00000000000..0ce9fe46e5f --- /dev/null +++ b/packages/server/graphql/private/typeDefs/SetIsFreeMeetingTemplateSuccess.graphql @@ -0,0 +1,6 @@ +type SetIsFreeMeetingTemplateSuccess { + """ + The meeting templates that have been updated + """ + updatedTemplates: [MeetingTemplate!]! +} diff --git a/packages/server/graphql/private/typeDefs/SignupsPayload.graphql b/packages/server/graphql/private/typeDefs/SignupsPayload.graphql new file mode 100644 index 00000000000..e53bbec20c0 --- /dev/null +++ b/packages/server/graphql/private/typeDefs/SignupsPayload.graphql @@ -0,0 +1,11 @@ +type SignupsPayload { + """ + the total number of signups for the given time range + """ + total: Int! + + """ + The total broken down by email domain + """ + byDomain: [DomainCountPayload!]! +} diff --git a/packages/server/graphql/private/typeDefs/StartTrialPayload.graphql b/packages/server/graphql/private/typeDefs/StartTrialPayload.graphql new file mode 100644 index 00000000000..08e71909056 --- /dev/null +++ b/packages/server/graphql/private/typeDefs/StartTrialPayload.graphql @@ -0,0 +1,4 @@ +""" +Return value for startTrial, which could be an error +""" +union StartTrialPayload = ErrorPayload | StartTrialSuccess diff --git a/packages/server/graphql/private/typeDefs/StartTrialSuccess.graphql b/packages/server/graphql/private/typeDefs/StartTrialSuccess.graphql new file mode 100644 index 00000000000..3324b723199 --- /dev/null +++ b/packages/server/graphql/private/typeDefs/StartTrialSuccess.graphql @@ -0,0 +1,6 @@ +type StartTrialSuccess { + """ + The updated organization + """ + organization: Organization! +} diff --git a/packages/server/graphql/private/typeDefs/ToggleAllowInsightsPayload.graphql b/packages/server/graphql/private/typeDefs/ToggleAllowInsightsPayload.graphql new file mode 100644 index 00000000000..be410ac6cbc --- /dev/null +++ b/packages/server/graphql/private/typeDefs/ToggleAllowInsightsPayload.graphql @@ -0,0 +1,4 @@ +""" +Return value for toggleAllowInsights, which could be an error +""" +union ToggleAllowInsightsPayload = ErrorPayload | ToggleAllowInsightsSuccess diff --git a/packages/server/graphql/private/typeDefs/ToggleAllowInsightsSuccess.graphql b/packages/server/graphql/private/typeDefs/ToggleAllowInsightsSuccess.graphql new file mode 100644 index 00000000000..14037bf7a69 --- /dev/null +++ b/packages/server/graphql/private/typeDefs/ToggleAllowInsightsSuccess.graphql @@ -0,0 +1,6 @@ +type ToggleAllowInsightsSuccess { + """ + How many records were updated + """ + organizationUsersAffected: Int! +} diff --git a/packages/server/graphql/private/typeDefs/UpdateOrgFeatureFlagPayload.graphql b/packages/server/graphql/private/typeDefs/UpdateOrgFeatureFlagPayload.graphql new file mode 100644 index 00000000000..cc79b4a21d3 --- /dev/null +++ b/packages/server/graphql/private/typeDefs/UpdateOrgFeatureFlagPayload.graphql @@ -0,0 +1 @@ +union UpdateOrgFeatureFlagPayload = ErrorPayload | UpdateOrgFeatureFlagSuccess diff --git a/packages/server/graphql/private/typeDefs/UpdateOrgFeatureFlagSuccess.graphql b/packages/server/graphql/private/typeDefs/UpdateOrgFeatureFlagSuccess.graphql new file mode 100644 index 00000000000..e3bf3b86821 --- /dev/null +++ b/packages/server/graphql/private/typeDefs/UpdateOrgFeatureFlagSuccess.graphql @@ -0,0 +1,6 @@ +type UpdateOrgFeatureFlagSuccess { + """ + the organizations given the super power + """ + updatedOrganizations: [Organization] +} diff --git a/packages/server/graphql/private/typeDefs/UpdateWatchlistPayload.graphql b/packages/server/graphql/private/typeDefs/UpdateWatchlistPayload.graphql new file mode 100644 index 00000000000..6031516d840 --- /dev/null +++ b/packages/server/graphql/private/typeDefs/UpdateWatchlistPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for UpdateWatchlistPayload +""" +union UpdateWatchlistPayload = ErrorPayload | UpdateWatchlistSuccess diff --git a/packages/server/graphql/private/typeDefs/UpdateWatchlistSuccess.graphql b/packages/server/graphql/private/typeDefs/UpdateWatchlistSuccess.graphql new file mode 100644 index 00000000000..2ff55c0b682 --- /dev/null +++ b/packages/server/graphql/private/typeDefs/UpdateWatchlistSuccess.graphql @@ -0,0 +1,6 @@ +type UpdateWatchlistSuccess { + """ + true if the mutation was successfully executed + """ + success: Boolean +} diff --git a/packages/server/graphql/private/typeDefs/VerifyDomainPayload.graphql b/packages/server/graphql/private/typeDefs/VerifyDomainPayload.graphql new file mode 100644 index 00000000000..511b6eb9193 --- /dev/null +++ b/packages/server/graphql/private/typeDefs/VerifyDomainPayload.graphql @@ -0,0 +1,4 @@ +""" +Return value for verifyDomain, which could be an error +""" +union VerifyDomainPayload = ErrorPayload | VerifyDomainSuccess diff --git a/packages/server/graphql/private/typeDefs/VerifyDomainSuccess.graphql b/packages/server/graphql/private/typeDefs/VerifyDomainSuccess.graphql new file mode 100644 index 00000000000..6ea44065cec --- /dev/null +++ b/packages/server/graphql/private/typeDefs/VerifyDomainSuccess.graphql @@ -0,0 +1,6 @@ +type VerifyDomainSuccess { + """ + Describe the first return field here + """ + saml: SAML! +} diff --git a/packages/server/graphql/private/typeDefs/_legacy.graphql b/packages/server/graphql/private/typeDefs/_legacy.graphql deleted file mode 100644 index 48da89dfeff..00000000000 --- a/packages/server/graphql/private/typeDefs/_legacy.graphql +++ /dev/null @@ -1,1803 +0,0 @@ -""" -This file was generated from before we moved to SDL-driven development -It's HUGE, and editing it directly could result in a headache. -Please don't add anything to this file. -Instead, add your new types to their own typeDef file -""" -type Query { - """ - Get the number of logins, optionally broken down by domain - """ - logins( - """ - only include users whose accounts were created after this date - """ - after: DateTime - - """ - if true, only include active users, else count all users - """ - isActive: Boolean = false - ): LoginsPayload! - - """ - Ping various services to determine response time & availability - """ - ping: PingableServices! - - """ - All the info about a specific company - """ - company( - """ - the top level doamin for a company (e.g. parabol.co) - """ - domain: ID - - """ - if domain is not provided, the userId that belongs to the company - """ - userId: ID - ): Company - - """ - Post signup and login metrics to slack - """ - dailyPulse( - """ - the earliest time to run the query - """ - after: DateTime! - - """ - the email that holds the credentials to the channelId - """ - email: String! - - """ - the ID of channel to post to - """ - channelId: ID! - ): Boolean - - """ - Check if this server is alive (an example query). - """ - pingActionTick: String - suCountTiersForUser( - """ - the user for which you want the count of tier membership - """ - userId: ID! - ): UserTiersCount - suUserCount( - """ - which tier of org shall we count? - """ - tier: TierEnum = team - ): Int - - suOrgCount( - """ - the minimum number of users within the org to count it - """ - minOrgSize: Int = 2 - - """ - which tier of org shall we count? - """ - tier: TierEnum = team - ): Int - - """ - Dig into a user by providing the email or userId - """ - user( - """ - the email of the user - """ - email: String - - """ - the ID of the user - """ - userId: ID - ): User - - """ - Dig into many users by providing the userId - """ - users( - """ - a list of userIds - """ - userIds: [ID!]! - ): [User]! - - """ - Get the number of signups, optionally broken down by domain - """ - signups( - """ - only include users whose accounts were created after this date - """ - after: DateTime - - """ - if true, only include active users, else count all users - """ - isActive: Boolean = false - ): SignupsPayload! -} - -type LoginsPayload { - """ - the total number of records - """ - total: Int! - - """ - The total broken down by email domain - """ - byDomain: [DomainCountPayload!]! -} - -type DomainCountPayload { - """ - the email domain - """ - domain: ID! - - """ - the sum total - """ - total: Int! -} - -type PingableServices { - """ - Response time for RethinkDB (in milliseconds) -1 if unreachable after 5 seconds - """ - rethinkdb: Int! - - """ - Response time for Postgres (in milliseconds) -1 if unreachable after 5 seconds - """ - postgres: Int! - - """ - Response time for Redis (in milliseconds) -1 if unreachable after 5 seconds - """ - redis: Int! -} - -type Mutation { - """ - Updates the user email - """ - updateEmail( - """ - User current email - """ - oldEmail: Email! - - """ - User new email - """ - newEmail: Email! - ): Boolean! - - """ - broadcast a new feature to the entire userbase - """ - addNewFeature( - """ - The text of the action button in the snackbar - """ - actionButtonCopy: String! - - """ - The description of the new feature - """ - snackbarMessage: String! - - """ - The permalink to the blog post describing the new feature - """ - url: String! - ): AddNewFeaturePayload - - """ - automatically pause users that have been inactive for 30 days. returns the number of users paused - """ - autopauseUsers: Int - - """ - copies all the records from RethinkDB for a list of organizations - """ - backupOrganization(orgIds: [ID!]!): String! - - """ - check equality of a table between rethinkdb and postgres - """ - checkRethinkPgEquality( - """ - The table name to be compared - """ - tableName: String! - - """ - How many errors should be returned - """ - maxErrors: Int - - """ - Whether the output should be written to file - """ - writeToFile: Boolean - ): String! - - """ - a server-side mutation called when a client connects - """ - connectSocket( - """ - The ID of the server this socket is connected to - """ - socketInstanceId: ID! - ): User! - - """ - profile the CPU - """ - profileCPU: String - - """ - a server-side mutation called when a client disconnects - """ - disconnectSocket( - """ - the userId to disconnect - """ - userId: ID! - ): DisconnectSocketPayload - - """ - Create a stripe customer & subscription in stripe, send them an invoice for an enterprise license - """ - draftEnterpriseInvoice( - """ - the org requesting the upgrade - """ - orgId: ID! - - """ - The number of users the license grants the organization - """ - quantity: Int! - - """ - Email address of billing leader, if different from the org billing leader - """ - email: ID - - """ - The email address for Accounts Payable. Use only if the invoice will be sent to a non-user! - """ - apEmail: ID - - """ - the stripe id of the plan in stripe, if not using the default plan - """ - plan: ID - ): DraftEnterpriseInvoicePayload - - """ - dump the memory heap to a file - """ - dumpHeap( - """ - must pass true to make it work - """ - isDangerous: Boolean! - ): String - - """ - add/remove a flag on an org asking them to pay - """ - flagConversionModal( - """ - true to turn the modal on, false to turn it off - """ - active: Boolean! - - """ - the orgId to toggle the flag for - """ - orgId: ID! - ): FlagConversionModalPayload - - """ - hard deletes a user and all its associated objects - """ - hardDeleteUser( - """ - a userId - """ - userId: ID - - """ - the user email - """ - email: ID - - """ - the reason why the user wants to delete their account - """ - reasonText: String - ): DeleteUserPayload! - - """ - Lock/Unlock teams, flagging them as unpaid/paid. Return true if successful - """ - lockTeams( - """ - List of teams to target - """ - teamIds: [ID!]! - - """ - true to unlock the teams, false to lock - """ - isPaid: Boolean! - - """ - The HTML to show if isPaid is false - """ - message: String - ): Boolean! - - """ - Send a message to all authorised Slack users - """ - messageAllSlackUsers( - """ - The slack message that will be sent to all Slack users - """ - message: String! - ): MessageAllSlackUsersPayload! - - """ - Remove Slack integrations for all users - """ - removeAllSlackAuths: RemoveAllSlackAuthsPayload! - - """ - schedule upcoming jobs to be run - """ - runScheduledJobs( - """ - Queue up all jobs that are scheduled to run within this many seconds - """ - seconds: Int! - ): Int - - """ - Send summary emails of unread notifications to all users who have not been seen within the last 24 hours - """ - sendBatchNotificationEmails: [String] - - """ - send an email to organizations including all the users that were added in the current billing cycle - """ - sendUpcomingInvoiceEmails: [String] - - """ - manually set the domain that the organization belongs to - """ - setOrganizationDomain( - """ - The unique identifier for the organization - """ - orgId: ID! - - """ - The top level domain of the company. Usually the part after the "@" in their email address - """ - domain: ID! - ): Boolean! - - """ - When stripe tells us an invoice is ready, create a pretty version - """ - stripeCreateInvoice( - """ - The stripe invoice ID - """ - invoiceId: ID! - ): Boolean - - """ - When stripe tells us an invoice payment failed, update it in our DB - """ - stripeFailPayment( - """ - The stripe invoice ID - """ - invoiceId: ID! - ): StripeFailPaymentPayload - - """ - When stripe tells us an invoice payment was successful, update it in our DB - """ - stripeSucceedPayment( - """ - The stripe invoice ID - """ - invoiceId: ID! - ): Boolean - - """ - When stripe tells us a credit card was updated, update the details in our own DB - """ - stripeUpdateCreditCard( - """ - The stripe customer ID, or stripeId - """ - customerId: ID! - ): Boolean - - """ - When stripe tells us a subscription was updated, update the details in our own DB - """ - stripeCreateSubscription( - """ - The stripe customer ID, or stripeId - """ - customerId: ID! - """ - The stripe subscription ID - """ - subscriptionId: ID! - ): Boolean - - """ - When stripe tells us a subscription was deleted, update the details in our own DB - """ - stripeDeleteSubscription( - """ - The stripe customer ID, or stripeId - """ - customerId: ID! - """ - The stripe subscription ID - """ - subscriptionId: ID! - ): Boolean - - """ - When a new invoiceitem is sent from stripe, tag it with metadata - """ - stripeUpdateInvoiceItem( - """ - The stripe invoice ID - """ - invoiceItemId: ID! - ): Boolean - - """ - An invice has been sent from stripe, meaning it is finalized - """ - stripeInvoiceFinalized( - """ - The stripe invoice ID - """ - invoiceId: ID! - ): Boolean - - """ - add/remove user(s) to/from the watchlist so that we start/stop recording their sessions - """ - updateWatchlist( - """ - a list of email addresses of users whose sessions we want to start/stop recording - """ - emails: [String!] - - """ - add/remove the entire domain to/from the watchlist. The part of the email after the @ - """ - domain: String - - """ - true if the user should be added to the watchlist, false if not - """ - includeInWatchlist: Boolean! - ): UpdateWatchlistPayload! - - """ - Updates Atlassian OAuth tokens that haven't been updated since the date specified in input - """ - updateOAuthRefreshTokens( - """ - Threshold date for `updatedAt` from AtlassianAuth - """ - updatedBefore: DateTime! - ): Int -} - -""" -An authentication provider configuration -""" -interface IntegrationProvider { - """ - The provider's unique identifier - """ - id: ID! - - """ - The team that created the provider. "aGhostTeam" if global - """ - teamId: ID! - - """ - The timestamp the provider was created - """ - createdAt: DateTime! - - """ - The timestamp the token was updated at - """ - updatedAt: DateTime! - - """ - The name of the integration service (GitLab, Mattermost, etc) - """ - service: IntegrationProviderServiceEnum! - - """ - The kind of token used by this provider (OAuth2, PAT, Webhook) - """ - authStrategy: IntegrationProviderAuthStrategyEnum! - - """ - The scope this provider configuration was created at (globally, org-wide, or by the team) - """ - scope: IntegrationProviderScopeEnum! - - """ - true if the provider configuration should be used - """ - isActive: Boolean! -} - -scalar DateTime - -""" -The name of the service of the Integration Provider -""" -enum IntegrationProviderServiceEnum { - jira - github - gitlab - mattermost - jiraServer - azureDevOps -} - -""" -The kind of token provided by the service -""" -enum IntegrationProviderAuthStrategyEnum { - oauth1 - oauth2 - pat - webhook -} - -""" -The scope this provider was created on (globally, org-wide, or on the team) -""" -enum IntegrationProviderScopeEnum { - global - org - team -} - -scalar URL - -""" -An authentication strategy to log in to Parabol -""" -interface AuthIdentity { - """ - true if the email address using this strategy is verified, else false - """ - isEmailVerified: Boolean! - type: AuthIdentityTypeEnum! -} - -""" -The types of authentication strategies -""" -enum AuthIdentityTypeEnum { - LOCAL - GOOGLE -} - -interface NewMeetingPhase { - """ - shortid - """ - id: ID! - meetingId: ID! - teamId: ID! - - """ - The type of phase - """ - phaseType: NewMeetingPhaseTypeEnum! - stages: [NewMeetingStage!]! -} - -""" -The phase of the meeting -""" -enum NewMeetingPhaseTypeEnum { - lobby - checkin - updates - firstcall - agendaitems - lastcall - reflect - group - vote - discuss - SUMMARY - SCOPE - ESTIMATE - RESPONSES -} - -""" -An instance of a meeting phase item. On the client, this usually represents a single view -""" -interface NewMeetingStage { - """ - stageId, shortid - """ - id: ID! - - """ - The datetime the stage was completed - """ - endAt: DateTime - - """ - foreign key. try using meeting - """ - meetingId: ID! - - """ - The meeting this stage belongs to - """ - meeting: NewMeeting - - """ - true if the facilitator has completed this stage, else false. Should be boolean(endAt) - """ - isComplete: Boolean! - - """ - true if any meeting participant can navigate to this stage - """ - isNavigable: Boolean! - - """ - true if the facilitator can navigate to this stage - """ - isNavigableByFacilitator: Boolean! - - """ - The phase this stage belongs to - """ - phase: NewMeetingPhase - - """ - The type of the phase - """ - phaseType: NewMeetingPhaseTypeEnum - - """ - The datetime the stage was started - """ - startAt: DateTime - - """ - Number of times the facilitator has visited this stage - """ - viewCount: Int - - """ - true if a time limit is set, false if end time is set, null if neither is set - """ - isAsync: Boolean - - """ - true if the viewer is ready to advance, else false - """ - isViewerReady: Boolean! - - """ - the number of meeting members ready to advance, excluding the facilitator - """ - readyCount: Int! - - """ - The datetime the phase is scheduled to be finished, null if no time limit or end time is set - """ - scheduledEndTime: DateTime - - """ - The suggested ending datetime for a phase to be completed async, null if not enough data to make a suggestion - """ - suggestedEndTime: DateTime - - """ - The suggested time limit for a phase to be completed together, null if not enough data to make a suggestion - """ - suggestedTimeLimit: Float - teamId: ID! - - """ - The number of milliseconds left before the scheduled end time. Useful for unsynced client clocks. null if scheduledEndTime is null - """ - timeRemaining: Float -} - -""" -An item that can be put in a thread -""" -interface Threadable { - """ - shortid - """ - id: ID! - - """ - The rich text body of the item - """ - content: String! - - """ - The timestamp the item was created - """ - createdAt: DateTime! - - """ - The userId that created the item - """ - createdBy: ID - - """ - The user that created the item - """ - createdByUser: User - - """ - the replies to this threadable item - """ - replies: [Threadable!]! - - """ - The FK of the discussion this task was created in. Null if task was not created in a discussion - """ - discussionId: ID - - """ - the parent, if this threadable is a reply, else null - """ - threadParentId: ID - - """ - the order of this threadable, relative to threadParentId - """ - threadSortOrder: Float - - """ - The timestamp the item was updated - """ - updatedAt: DateTime! -} - -""" -The suggested repos and projects a user can integrate with -""" -interface RepoIntegration { - id: ID! - service: IntegrationProviderServiceEnum! -} - -""" -The right drawer types available on the team dashboard -""" -enum TeamDrawer { - agenda - manageTeam -} - -scalar Email - -""" -A connection to a list of items. -""" -type JiraIssueConnection { - """ - Page info with cursors - """ - pageInfo: PageInfo - - """ - A list of edges. - """ - edges: [JiraIssueEdge!]! - - """ - An error with the connection, if any - """ - error: StandardMutationError -} - -""" -An edge in a connection. -""" -type JiraIssueEdge { - """ - The item at the end of the edge - """ - node: JiraIssue! - cursor: String -} - -interface TaskIntegration { - id: ID! -} - -type StandardMutationError { - """ - The title of the error - """ - title: String - - """ - The full error - """ - message: String! -} - - -""" -The auth credentials for a token, specific to a team member -""" -interface TeamMemberIntegrationAuth { - """ - The token's unique identifier - """ - id: ID! - - """ - The team that the token is linked to - """ - teamId: ID! - - """ - The timestamp the token was created - """ - createdAt: DateTime! - - """ - The timestamp the token was updated at - """ - updatedAt: DateTime! - - """ - The GQL GUID of the DB providerId foreign key - """ - providerId: ID! - - """ - The service this token is associated with, denormalized from the provider - """ - service: IntegrationProviderServiceEnum! - - """ - true if the token configuration should be used - """ - isActive: Boolean! - - """ - The provider to connect to - """ - provider: IntegrationProvider! -} - - - - -""" -The event that triggers a slack notification -""" -enum SlackNotificationEventEnum { - meetingStart - meetingEnd - MEETING_STAGE_TIME_LIMIT_END - MEETING_STAGE_TIME_LIMIT_START -} - -""" -The type of event for a slack notification -""" -enum SlackNotificationEventTypeEnum { - """ - notification that concerns the whole team - """ - team - - """ - notification that concerns a single member on the team - """ - member -} - -""" -All the user details for a specific meeting -""" -interface MeetingMember { - """ - A composite of userId::meetingId - """ - id: ID! - - """ - true if present, false if absent, else null - """ - isCheckedIn: Boolean - @deprecated( - reason: "Members are checked in when they enter the meeting now & not created beforehand" - ) - meetingId: ID! - meetingType: MeetingTypeEnum! - teamId: ID! - teamMember: TeamMember! - user: User! - userId: ID! - - """ - The last time a meeting was updated (stage completed, finished, etc) - """ - updatedAt: DateTime! -} - -""" -The type of meeting -""" -enum MeetingTypeEnum { - action - retrospective - poker - teamPrompt -} - -""" -The scope of a shareable item -""" -enum SharingScopeEnum { - TEAM - ORGANIZATION - PUBLIC -} - -""" -The team settings for a specific type of meeting -""" -interface TeamMeetingSettings { - id: ID! - - """ - The type of meeting these settings apply to - """ - meetingType: MeetingTypeEnum! - - """ - The broad phase types that will be addressed during the meeting - """ - phaseTypes: [NewMeetingPhaseTypeEnum!]! - - """ - FK - """ - teamId: ID! - - """ - The team these settings belong to - """ - team: Team! -} - -""" -The pay tier of the team -""" -enum TierEnum { - starter - team - enterprise -} - -""" -A grouping of organizations. Automatically grouped by top level domain of each -""" -type Company { - """ - the top level domain - """ - id: ID! - - """ - the number of active teams across all organizations - """ - activeTeamCount: Int! - - """ - the number of active users across all organizations - """ - activeUserCount: Int! - - """ - the last time any team in the organization started a meeting, null if no meetings were ever run - """ - lastMetAt: DateTime - - """ - the total number of meetings started across all teams on all organizations - """ - meetingCount: Int! - - """ - the longest monthly streak for meeting at least once per month for any team in the company - """ - monthlyTeamStreakMax: Int! - - """ - Get the list of all organizations that belong to the company - """ - organizations: [Organization!]! - - """ - The highest tier for any organization within the company - """ - tier: TierEnum! - - """ - the total number of users across all organizations - """ - userCount: Int! -} - -""" -The role of the org user -""" -enum OrgUserRole { - BILLING_LEADER -} - -type OrgUserCount { - """ - The number of orgUsers who have an inactive flag - """ - inactiveUserCount: Int! - - """ - The number of orgUsers who do not have an inactive flag - """ - activeUserCount: Int! -} - -""" -The source that a change to a record came in through -""" -enum ChangeSourceEnum { - meeting - task - external -} - -type TaskEditorDetails { - """ - The userId of the person editing the task - """ - userId: ID! - - """ - The name of the userId editing the task - """ - preferredName: String! -} - -""" -The status of the task -""" -enum TaskStatusEnum { - active - stuck - done - future -} - -""" -A big picture line item -""" -enum InvoiceLineItemEnum { - ADDED_USERS - INACTIVITY_ADJUSTMENTS - OTHER_ADJUSTMENTS - REMOVED_USERS -} - -""" -The payment status of the invoice -""" -enum InvoiceStatusEnum { - PENDING - PAID - FAILED - UPCOMING -} - -""" -A past event that is important to the viewer -""" -interface SuggestedAction { - """ - shortid - """ - id: ID! - - """ - * The timestamp the action was created at - """ - createdAt: DateTime! - - """ - The priority of the suggested action compared to other suggested actions (smaller number is higher priority) - """ - priority: Float - - """ - * The timestamp the action was removed at - """ - removedAt: DateTime! - - """ - The specific type of suggested action - """ - type: SuggestedActionTypeEnum! - - """ - * The userId this action is for - """ - userId: ID! - - """ - The user than can see this event - """ - user: User! -} - -""" -The specific type of the suggested action -""" -enum SuggestedActionTypeEnum { - inviteYourTeam - tryTheDemo - tryRetroMeeting - createNewTeam - tryActionMeeting -} - -""" -A past event that is important to the viewer -""" -interface TimelineEvent { - """ - shortid - """ - id: ID! - - """ - * The timestamp the event was created at - """ - createdAt: DateTime! - - """ - the number of times the user has interacted with (ie clicked) this event - """ - interactionCount: Int! - - """ - true if the timeline event is active, false if archived - """ - isActive: Boolean! - - """ - The orgId this event is associated with. Null if not traceable to one org - """ - orgId: ID - - """ - The organization this event is associated with - """ - organization: Organization - - """ - the number of times the user has seen this event - """ - seenCount: Int! - - """ - The teamId this event is associated with. Null if not traceable to one team - """ - teamId: ID - - """ - The team that can see this event - """ - team: Team - - """ - The specific type of event - """ - type: TimelineEventEnum! - - """ - * The userId that can see this event - """ - userId: ID! - - """ - The user than can see this event - """ - user: User! -} - -""" -The specific type of event -""" -enum TimelineEventEnum { - retroComplete - actionComplete - joinedParabol - createdTeam - POKER_COMPLETE - TEAM_PROMPT_COMPLETE -} - -""" -The topic being discussed -""" -enum DiscussionTopicTypeEnum { - agendaItem - reflectionGroup - task - teamPromptResponse - githubIssue - jiraIssue -} - -interface Notification { - """ - A shortid for the notification - """ - id: ID! - - """ - UNREAD if new, READ if viewer has seen it, CLICKED if viewed clicked it - """ - status: NotificationStatusEnum! - - """ - The datetime to activate the notification & send it to the client - """ - createdAt: DateTime! - type: NotificationEnum! - - """ - *The userId that should see this notification - """ - userId: ID! -} - -""" -The status of the notification interaction -""" -enum NotificationStatusEnum { - UNREAD - READ - CLICKED -} - -""" -The kind of notification -""" -enum NotificationEnum { - KICKED_OUT - PAYMENT_REJECTED - PROMOTE_TO_BILLING_LEADER - TEAM_INVITATION - TEAM_ARCHIVED - TASK_INVOLVES - MEETING_STAGE_TIME_LIMIT_END - TEAMS_LIMIT_EXCEEDED - TEAMS_LIMIT_REMINDER - PROMPT_TO_JOIN_ORG - REQUEST_TO_JOIN_ORG -} - -""" -An item that can have reactjis -""" -interface Reactable { - """ - shortid - """ - id: ID! - - """ - All the reactjis for the given reflection - """ - reactjis: [Reactji!]! -} - -type GoogleAnalyzedEntity { - """ - The lemma (dictionary entry) of the entity name. Fancy way of saying the singular form of the name, if plural. - """ - lemma: String! - - """ - The name of the entity. Usually 1 or 2 words. Always a noun, sometimes a proper noun. - """ - name: String! - - """ - The salience of the entity in the provided text. The salience of all entities always sums to 1 - """ - salience: Float! -} - -""" -An instance of a meeting phase item. On the client, this usually represents a single view -""" -interface NewMeetingTeamMemberStage { - """ - The meeting member that is the focus for this phase item - """ - meetingMember: MeetingMember! - - """ - foreign key. use teamMember - """ - teamMemberId: ID! - - """ - The team member that is the focus for this phase item - """ - teamMember: TeamMember! -} - -type MeetingGreeting { - """ - The foreign-language greeting - """ - content: String! - - """ - The source language for the greeting - """ - language: String! -} - -""" -A meeting template that can be shared across team, orgnization and public -""" -interface MeetingTemplate { - """ - shortid - """ - id: ID! - createdAt: DateTime! - - """ - True if template can be used, else false - """ - isActive: Boolean! - - """ - The time of the meeting the template was last used - """ - lastUsedAt: DateTime - - """ - The name of the template - """ - name: String! - - """ - *Foreign key. The organization that owns the team that created the template - """ - orgId: ID! - - """ - Who can see this template - """ - scope: SharingScopeEnum! - - """ - *Foreign key. The team this template belongs to - """ - teamId: ID! - - """ - The team this template belongs to - """ - team: Team! - - """ - The type of the template - """ - type: MeetingTypeEnum! - updatedAt: DateTime! -} - -""" -A meeting stage that includes a discussion thread -""" -interface DiscussionThreadStage { - """ - The ID to find the discussion that goes in the stage - """ - discussionId: ID! - - """ - The discussion about the stage - """ - discussion: Discussion! -} - -""" -The meeting phase where each of the team members can respond to prompts -""" -type TeamPromptResponsesPhase implements NewMeetingPhase { - """ - shortid - """ - id: ID! - meetingId: ID! - teamId: ID! - - """ - The type of phase - """ - phaseType: NewMeetingPhaseTypeEnum! - stages: [TeamPromptResponseStage!]! -} - -""" -The stage where the single team member responds to a prompt -""" -type TeamPromptResponseStage implements NewMeetingStage & DiscussionThreadStage { - """ - stageId, shortid - """ - id: ID! - - """ - The datetime the stage was completed - """ - endAt: DateTime - - """ - foreign key. try using meeting - """ - meetingId: ID! - - """ - The meeting this stage belongs to - """ - meeting: NewMeeting - - """ - true if the facilitator has completed this stage, else false. Should be boolean(endAt) - """ - isComplete: Boolean! - - """ - true if any meeting participant can navigate to this stage - """ - isNavigable: Boolean! - - """ - true if the facilitator can navigate to this stage - """ - isNavigableByFacilitator: Boolean! - - """ - The phase this stage belongs to - """ - phase: NewMeetingPhase - - """ - The type of the phase - """ - phaseType: NewMeetingPhaseTypeEnum - - """ - The datetime the stage was started - """ - startAt: DateTime - - """ - Number of times the facilitator has visited this stage - """ - viewCount: Int - - """ - true if a time limit is set, false if end time is set, null if neither is set - """ - isAsync: Boolean - - """ - true if the viewer is ready to advance, else false - """ - isViewerReady: Boolean! - - """ - the number of meeting members ready to advance, excluding the facilitator - """ - readyCount: Int! - - """ - The datetime the phase is scheduled to be finished, null if no time limit or end time is set - """ - scheduledEndTime: DateTime - - """ - The suggested ending datetime for a phase to be completed async, null if not enough data to make a suggestion - """ - suggestedEndTime: DateTime - - """ - The suggested time limit for a phase to be completed together, null if not enough data to make a suggestion - """ - suggestedTimeLimit: Float - teamId: ID! - - """ - The number of milliseconds left before the scheduled end time. Useful for unsynced client clocks. null if scheduledEndTime is null - """ - timeRemaining: Float - - """ - The ID to find the discussion that goes in the stage - """ - discussionId: ID! - - """ - The discussion about the stage - """ - discussion: Discussion! - - """ - The response to the prompt - """ - response: TeamPromptResponse! -} - -""" -A response of a single team member in a team prompt -""" -type TeamPromptResponse implements Reactable { - """ - shortid - """ - id: ID! - - """ - All the reactjis for the given reflection - """ - reactjis: [Reactji!]! - - """ - Id of the user who created the team prompt response - """ - userId: ID! - - """ - The user who created the response - """ - user: User - - """ - the content of the response - """ - content: String! - - """ - the plain text content of the response - """ - plaintextContent: String! - - """ - the shared sort order for reponses - """ - sortOrder: Float! - - """ - The team this response belongs to - """ - team: Team! -} - -interface TeamNotification { - id: ID - type: NotificationEnum -} - -""" -sorts for the reflection group. default is sortOrder. sorting by voteCount filters out items without votes. -""" -enum ReflectionGroupSortEnum { - voteCount - stageOrder -} - -""" -A count of the number of account tiers a user belongs to. -""" -type UserTiersCount { - """ - The number of starter orgs the user is active upon - """ - tierStarterCount: Int - - """ - The number of team orgs the user is active upon - """ - tierTeamCount: Int - - """ - The number of pro orgs the user holds the role of Billing Leader - """ - tierTeamBillingLeaderCount: Int - user: User -} - -type SignupsPayload { - """ - the total number of signups for the given time range - """ - total: Int! - - """ - The total broken down by email domain - """ - byDomain: [DomainCountPayload!]! -} - -type AddNewFeaturePayload { - """ - the new feature broadcast - """ - newFeature: NewFeatureBroadcast -} - -type DisconnectSocketPayload { - """ - The user that disconnected - """ - user: User -} - -type DraftEnterpriseInvoicePayload { - error: StandardMutationError - - """ - The updated organization - """ - organization: Organization -} - -type FlagConversionModalPayload { - error: StandardMutationError - - """ - the org with the limit added or removed - """ - org: Organization -} - -type DeleteUserPayload { - error: StandardMutationError -} - -type ErrorPayload { - error: StandardMutationError! -} - -""" -Return object for MessageAllSlackUsersPayload -""" -union MessageAllSlackUsersPayload = ErrorPayload | MessageAllSlackUsersSuccess - -type MessageAllSlackUsersSuccess { - """ - A list of the Parabol user ids that have been sent a direct message in Slack - """ - messagedUserIds: [ID!]! - - """ - Slack messages that failed to send - """ - errors: [MessageSlackUserError!] -} - -""" -An error from sending a message to a Slack user -""" -type MessageSlackUserError { - userId: ID! - - """ - The error message received from Slack - """ - error: String! -} - -""" -Return object for RemoveAllSlackAuthsPayload -""" -union RemoveAllSlackAuthsPayload = ErrorPayload | RemoveAllSlackAuthsSuccess - -type RemoveAllSlackAuthsSuccess { - """ - Response from removing all Slack auths - """ - slackAuthRes: String! - - """ - Response from removing all Slack notifications - """ - slackNotificationRes: String! -} - -type StripeFailPaymentPayload { - error: StandardMutationError - organization: Organization - - """ - The notification to a billing leader stating the payment was rejected - """ - notification: NotifyPaymentRejected! -} - -""" -Return object for UpdateWatchlistPayload -""" -union UpdateWatchlistPayload = ErrorPayload | UpdateWatchlistSuccess - -type UpdateWatchlistSuccess { - """ - true if the mutation was successfully executed - """ - success: Boolean -} diff --git a/packages/server/graphql/private/typeDefs/changeEmailDomain.graphql b/packages/server/graphql/private/typeDefs/changeEmailDomain.graphql deleted file mode 100644 index 8e43836d4e3..00000000000 --- a/packages/server/graphql/private/typeDefs/changeEmailDomain.graphql +++ /dev/null @@ -1,33 +0,0 @@ -extend type Mutation { - """ - Change a company's domain so that affected users can only log in with the new domain - """ - changeEmailDomain( - """ - The company's old domain that we want to change - """ - oldDomain: String! - - """ - The new domain that we're changing to - """ - newDomain: String! - ): ChangeEmailDomainPayload! -} - -""" -Return value for changeEmailDomain, which could be an error -""" -union ChangeEmailDomainPayload = ErrorPayload | ChangeEmailDomainSuccess - -type ChangeEmailDomainSuccess { - """ - The users whose domains were changed - """ - usersUpdated: [User!]! - - """ - Users whose domains were not changed as they were already in the new domain - """ - usersNotUpdated: [User!]! -} diff --git a/packages/server/graphql/private/typeDefs/endTrial.graphql b/packages/server/graphql/private/typeDefs/endTrial.graphql deleted file mode 100644 index 200565c65d3..00000000000 --- a/packages/server/graphql/private/typeDefs/endTrial.graphql +++ /dev/null @@ -1,28 +0,0 @@ -extend type Mutation { - """ - Ends the trial for an org iff there is an active trial. - """ - endTrial( - """ - ID of the org on which to end the trial - """ - orgId: ID! - ): EndTrialPayload! -} - -""" -Return value for endTrial, which could be an error -""" -union EndTrialPayload = ErrorPayload | EndTrialSuccess - -type EndTrialSuccess { - """ - The updated organization - """ - organization: Organization! - - """ - The start time of the ended trial - """ - trialStartDate: DateTime -} diff --git a/packages/server/graphql/private/typeDefs/flagOverLimit.graphql b/packages/server/graphql/private/typeDefs/flagOverLimit.graphql deleted file mode 100644 index 9e53a0d636d..00000000000 --- a/packages/server/graphql/private/typeDefs/flagOverLimit.graphql +++ /dev/null @@ -1,25 +0,0 @@ -extend type Mutation { - """ - add/remove a flag on a user saying they are over the free tier - """ - flagOverLimit( - """ - The text body of the over limit message, null to remove the previous value - """ - copy: String = "" - - """ - the user orgId that went over the limit - """ - orgId: ID! - ): FlagOverLimitPayload -} - -type FlagOverLimitPayload { - error: StandardMutationError - - """ - the users with the limit added or removed - """ - users: [User!] -} diff --git a/packages/server/graphql/private/typeDefs/loginSAML.graphql b/packages/server/graphql/private/typeDefs/loginSAML.graphql deleted file mode 100644 index 047944b7768..00000000000 --- a/packages/server/graphql/private/typeDefs/loginSAML.graphql +++ /dev/null @@ -1,16 +0,0 @@ -extend type Mutation { - """ - Log in using SAML single sign on (SSO) - """ - loginSAML( - """ - The querystring provided by the IdP including SAMLResponse and RelayState - """ - queryString: String! - - """ - The name of the SAML identifier. The slug used in the redirect URL - """ - samlName: ID! - ): UserLogInPayload! -} diff --git a/packages/server/graphql/private/typeDefs/logins.graphql b/packages/server/graphql/private/typeDefs/logins.graphql deleted file mode 100644 index ca9277ffe62..00000000000 --- a/packages/server/graphql/private/typeDefs/logins.graphql +++ /dev/null @@ -1,40 +0,0 @@ -extend type Query { - """ - Get the number of logins, optionally broken down by domain - """ - logins( - """ - only include users whose accounts were created after this date - """ - after: DateTime - - """ - if true, only include active users, else count all users - """ - isActive: Boolean = false - ): LoginsPayload! -} - -type LoginsPayload { - """ - the total number of records - """ - total: Int! - - """ - The total broken down by email domain - """ - byDomain: [DomainCountPayload!]! -} - -type DomainCountPayload { - """ - the email domain - """ - domain: ID! - - """ - the sum total - """ - total: Int! -} diff --git a/packages/server/graphql/private/typeDefs/processRecurrence.graphql b/packages/server/graphql/private/typeDefs/processRecurrence.graphql deleted file mode 100644 index f5ea962baaa..00000000000 --- a/packages/server/graphql/private/typeDefs/processRecurrence.graphql +++ /dev/null @@ -1,23 +0,0 @@ -extend type Mutation { - """ - Processes recurrence for meetings that should start and end. - """ - processRecurrence: ProcessRecurrencePayload! -} - -""" -Return value for processRecurrence, which could be an error -""" -union ProcessRecurrencePayload = ErrorPayload | ProcessRecurrenceSuccess - -type ProcessRecurrenceSuccess { - """ - Number of meetings that were ended because of this mutation. - """ - meetingsEnded: Int! - - """ - Number of meetings that were started because of this mutation. - """ - meetingsStarted: Int! -} diff --git a/packages/server/graphql/private/typeDefs/removeAuthIdentity.graphql b/packages/server/graphql/private/typeDefs/removeAuthIdentity.graphql deleted file mode 100644 index 8acff50605e..00000000000 --- a/packages/server/graphql/private/typeDefs/removeAuthIdentity.graphql +++ /dev/null @@ -1,33 +0,0 @@ -extend type Mutation { - """ - Remove the auth identity for users with a specific domain. Example use case: signed up with Gmail but they're deleting their Google account - """ - removeAuthIdentity( - """ - Change the auth identity for users with this domain - """ - domain: String! - - """ - The type of auth to remove - """ - identityType: AuthIdentityTypeEnum! - - """ - Add a local auth with a dummy hashed password - """ - addLocal: Boolean! - ): RemoveAuthIdentityPayload! -} - -""" -Return value for removeAuthIdentity, which could be an error -""" -union RemoveAuthIdentityPayload = ErrorPayload | RemoveAuthIdentitySuccess - -type RemoveAuthIdentitySuccess { - """ - The users who had their auth identity removed - """ - users: [User!]! -} diff --git a/packages/server/graphql/private/typeDefs/setIsFreeMeetingTemplate.graphql b/packages/server/graphql/private/typeDefs/setIsFreeMeetingTemplate.graphql deleted file mode 100644 index 2ad89f74c16..00000000000 --- a/packages/server/graphql/private/typeDefs/setIsFreeMeetingTemplate.graphql +++ /dev/null @@ -1,19 +0,0 @@ -extend type Mutation { - """ - Set the isFree tier on a meeting template to determine if it's accessible to free users - """ - setIsFreeMeetingTemplate( - isFree: Boolean! - templateIds: [ID!] - templateNames: [String!] - ): SetIsFreeMeetingTemplatePayload! -} - -union SetIsFreeMeetingTemplatePayload = ErrorPayload | SetIsFreeMeetingTemplateSuccess - -type SetIsFreeMeetingTemplateSuccess { - """ - The meeting templates that have been updated - """ - updatedTemplates: [MeetingTemplate!]! -} diff --git a/packages/server/graphql/private/typeDefs/startTrial.graphql b/packages/server/graphql/private/typeDefs/startTrial.graphql deleted file mode 100644 index 5b51c754da0..00000000000 --- a/packages/server/graphql/private/typeDefs/startTrial.graphql +++ /dev/null @@ -1,23 +0,0 @@ -extend type Mutation { - """ - Starts a free trial for the org iff the org is on a free tier. - """ - startTrial( - """ - ID of the org on which to start the trial - """ - orgId: ID! - ): StartTrialPayload! -} - -""" -Return value for startTrial, which could be an error -""" -union StartTrialPayload = ErrorPayload | StartTrialSuccess - -type StartTrialSuccess { - """ - The updated organization - """ - organization: Organization! -} diff --git a/packages/server/graphql/private/typeDefs/stripeInvoicePaid.graphql b/packages/server/graphql/private/typeDefs/stripeInvoicePaid.graphql deleted file mode 100644 index adaa12c3324..00000000000 --- a/packages/server/graphql/private/typeDefs/stripeInvoicePaid.graphql +++ /dev/null @@ -1,11 +0,0 @@ -extend type Mutation { - """ - When stripe tells us an invoice is paid (inside or outside of stripe), update it in our DB - """ - stripeInvoicePaid( - """ - The stripe invoice ID - """ - invoiceId: ID! - ): Boolean -} diff --git a/packages/server/graphql/private/typeDefs/suProOrgInfo.graphql b/packages/server/graphql/private/typeDefs/suProOrgInfo.graphql deleted file mode 100644 index 3b073ab43d2..00000000000 --- a/packages/server/graphql/private/typeDefs/suProOrgInfo.graphql +++ /dev/null @@ -1,8 +0,0 @@ -extend type Query { - suProOrgInfo( - """ - should organizations without active users be included? - """ - includeInactive: Boolean! = false - ): [Organization!] -} diff --git a/packages/server/graphql/private/typeDefs/toggleAllowInsights.graphql b/packages/server/graphql/private/typeDefs/toggleAllowInsights.graphql deleted file mode 100644 index 76996c7f27e..00000000000 --- a/packages/server/graphql/private/typeDefs/toggleAllowInsights.graphql +++ /dev/null @@ -1,31 +0,0 @@ -extend type Mutation { - """ - Allow or deny the User to view insights for the provided domain - """ - toggleAllowInsights( - """ - The tier we are squeezing the user to upgrade to. If null, will unset previous value - """ - suggestedTier: TierEnum - """ - The domain (e.g. parabol.co) that the user should be able to view insights on - """ - domain: String! - """ - emails to give the insights priviledge to - """ - emails: [String!]! - ): ToggleAllowInsightsPayload! -} - -""" -Return value for toggleAllowInsights, which could be an error -""" -union ToggleAllowInsightsPayload = ErrorPayload | ToggleAllowInsightsSuccess - -type ToggleAllowInsightsSuccess { - """ - How many records were updated - """ - organizationUsersAffected: Int! -} diff --git a/packages/server/graphql/private/typeDefs/updateEmail.graphql b/packages/server/graphql/private/typeDefs/updateEmail.graphql deleted file mode 100644 index 29a6d770756..00000000000 --- a/packages/server/graphql/private/typeDefs/updateEmail.graphql +++ /dev/null @@ -1,16 +0,0 @@ -extend type Mutation { - """ - Updates the user email - """ - updateEmail( - """ - User current email - """ - oldEmail: Email! - - """ - User new email - """ - newEmail: Email! - ): Boolean! -} diff --git a/packages/server/graphql/private/typeDefs/updateOrgFeatureFlag.graphql b/packages/server/graphql/private/typeDefs/updateOrgFeatureFlag.graphql deleted file mode 100644 index 095acdd2fd7..00000000000 --- a/packages/server/graphql/private/typeDefs/updateOrgFeatureFlag.graphql +++ /dev/null @@ -1,47 +0,0 @@ -""" -A flag to give an individual organization super powers -""" -enum OrganizationFeatureFlagsEnum { - noAISummary - standupAISummary - noPromptToJoinOrg - suggestGroups - zoomTranscription - shareSummary - teamsLimit - noTeamInsights - singleColumnStandups - publicTeams - aiTemplate - relatedDiscussions -} - -extend type Mutation { - """ - Give some organizations advanced features in a flag - """ - updateOrgFeatureFlag( - """ - a list of organization ids - """ - orgIds: [String!]! - - """ - the flag that you want to give to the organization - """ - flag: OrganizationFeatureFlagsEnum! - """ - whether or not you want to give the organization the flag - """ - addFlag: Boolean! - ): UpdateOrgFeatureFlagPayload! -} - -union UpdateOrgFeatureFlagPayload = ErrorPayload | UpdateOrgFeatureFlagSuccess - -type UpdateOrgFeatureFlagSuccess { - """ - the organizations given the super power - """ - updatedOrganizations: [Organization] -} diff --git a/packages/server/graphql/private/typeDefs/verifyDomain.graphql b/packages/server/graphql/private/typeDefs/verifyDomain.graphql deleted file mode 100644 index c3d7560d69c..00000000000 --- a/packages/server/graphql/private/typeDefs/verifyDomain.graphql +++ /dev/null @@ -1,38 +0,0 @@ -extend type Mutation { - """ - Describe the mutation here - """ - verifyDomain( - """ - Add the following domains to the list that org has control over. A domain is usually the part after the @ of their email. - """ - addDomains: [ID!] - - """ - organization id. If the record already exists, this will overwite the value - """ - orgId: ID! - - """ - The name of the company, used as a slug in signon URLs. Usually the domain without the tld - """ - slug: ID! - - """ - A list of domains to remove from the control of the org. Useful if you previously added the incorrect domains - """ - removeDomains: [ID!] - ): VerifyDomainPayload! -} - -""" -Return value for verifyDomain, which could be an error -""" -union VerifyDomainPayload = ErrorPayload | VerifyDomainSuccess - -type VerifyDomainSuccess { - """ - Describe the first return field here - """ - saml: SAML! -} diff --git a/packages/server/graphql/public/typeDefs/AcceptRequestToJoinDomainPayload.graphql b/packages/server/graphql/public/typeDefs/AcceptRequestToJoinDomainPayload.graphql new file mode 100644 index 00000000000..7b32eb75057 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AcceptRequestToJoinDomainPayload.graphql @@ -0,0 +1,4 @@ +""" +Return value for acceptRequestToJoinDomain, which could be an error +""" +union AcceptRequestToJoinDomainPayload = ErrorPayload | AcceptRequestToJoinDomainSuccess diff --git a/packages/server/graphql/public/typeDefs/AcceptRequestToJoinDomainSuccess.graphql b/packages/server/graphql/public/typeDefs/AcceptRequestToJoinDomainSuccess.graphql new file mode 100644 index 00000000000..106ac1da84c --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AcceptRequestToJoinDomainSuccess.graphql @@ -0,0 +1,6 @@ +type AcceptRequestToJoinDomainSuccess { + """ + Viewer + """ + viewer: User! +} diff --git a/packages/server/graphql/public/typeDefs/acceptTeamInvitation.graphql b/packages/server/graphql/public/typeDefs/AcceptTeamInvitationPayload.graphql similarity index 53% rename from packages/server/graphql/public/typeDefs/acceptTeamInvitation.graphql rename to packages/server/graphql/public/typeDefs/AcceptTeamInvitationPayload.graphql index 0499e4df44e..eb4e76a08d3 100644 --- a/packages/server/graphql/public/typeDefs/acceptTeamInvitation.graphql +++ b/packages/server/graphql/public/typeDefs/AcceptTeamInvitationPayload.graphql @@ -1,20 +1,3 @@ -extend type Mutation { - """ - Redeem an invitation token for a logged in user - """ - acceptTeamInvitation( - """ - The invitation token or mass invitation code - """ - invitationToken: ID! - - """ - the notification clicked to accept, if any - """ - notificationId: ID - ): AcceptTeamInvitationPayload! -} - type AcceptTeamInvitationPayload { error: StandardMutationError @@ -49,14 +32,3 @@ type AcceptTeamInvitationPayload { """ teamLead: User } - -""" -The reason the invitation failed -""" -enum TeamInvitationErrorEnum { - accepted - expired - notFound - restrictedDomain - unverifiedEmail -} diff --git a/packages/server/graphql/public/typeDefs/ActionMeeting.graphql b/packages/server/graphql/public/typeDefs/ActionMeeting.graphql index 8b855e1bad0..352e865a8a1 100644 --- a/packages/server/graphql/public/typeDefs/ActionMeeting.graphql +++ b/packages/server/graphql/public/typeDefs/ActionMeeting.graphql @@ -66,7 +66,6 @@ type ActionMeeting implements NewMeeting { The meeting series this meeting is associated with if the meeting is recurring """ meetingSeries: MeetingSeries - meetingType: MeetingTypeEnum! """ diff --git a/packages/server/graphql/public/typeDefs/ActionMeetingMember.graphql b/packages/server/graphql/public/typeDefs/ActionMeetingMember.graphql new file mode 100644 index 00000000000..778af0db013 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ActionMeetingMember.graphql @@ -0,0 +1,38 @@ +""" +All the meeting specifics for a user in a action meeting +""" +type ActionMeetingMember implements MeetingMember { + """ + A composite of userId::meetingId + """ + id: ID! + + """ + true if present, false if absent, else null + """ + isCheckedIn: Boolean + @deprecated( + reason: "Members are checked in when they enter the meeting now & not created beforehand" + ) + meetingId: ID! + meetingType: MeetingTypeEnum! + teamId: ID! + teamMember: TeamMember! + user: User! + userId: ID! + + """ + The last time a meeting was updated (stage completed, finished, etc) + """ + updatedAt: DateTime! + + """ + The tasks marked as done in the meeting + """ + doneTasks: [Task!]! + + """ + The tasks assigned to members during the meeting + """ + tasks: [Task!]! +} diff --git a/packages/server/graphql/public/typeDefs/ActionMeetingSettings.graphql b/packages/server/graphql/public/typeDefs/ActionMeetingSettings.graphql new file mode 100644 index 00000000000..d637b8bec9c --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ActionMeetingSettings.graphql @@ -0,0 +1,26 @@ +""" +The action-specific meeting settings +""" +type ActionMeetingSettings implements TeamMeetingSettings { + id: ID! + + """ + The type of meeting these settings apply to + """ + meetingType: MeetingTypeEnum! + + """ + The broad phase types that will be addressed during the meeting + """ + phaseTypes: [NewMeetingPhaseTypeEnum!]! + + """ + FK + """ + teamId: ID! + + """ + The team these settings belong to + """ + team: Team! +} diff --git a/packages/server/graphql/public/typeDefs/AddAgendaItemPayload.graphql b/packages/server/graphql/public/typeDefs/AddAgendaItemPayload.graphql new file mode 100644 index 00000000000..b1298211f82 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AddAgendaItemPayload.graphql @@ -0,0 +1,10 @@ +type AddAgendaItemPayload { + error: StandardMutationError + agendaItem: AgendaItem + meetingId: ID + + """ + The meeting with the updated agenda item, if any + """ + meeting: NewMeeting +} diff --git a/packages/server/graphql/public/typeDefs/AddApprovedOrganizationDomainsPayload.graphql b/packages/server/graphql/public/typeDefs/AddApprovedOrganizationDomainsPayload.graphql new file mode 100644 index 00000000000..046e00f1906 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AddApprovedOrganizationDomainsPayload.graphql @@ -0,0 +1 @@ +union AddApprovedOrganizationDomainsPayload = ErrorPayload | AddApprovedOrganizationDomainsSuccess diff --git a/packages/server/graphql/public/typeDefs/AddApprovedOrganizationDomainsSuccess.graphql b/packages/server/graphql/public/typeDefs/AddApprovedOrganizationDomainsSuccess.graphql new file mode 100644 index 00000000000..b871178530b --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AddApprovedOrganizationDomainsSuccess.graphql @@ -0,0 +1,8 @@ +type AddApprovedOrganizationDomainsSuccess { + orgId: ID! + + """ + Organization with the updated approvals + """ + organization: Organization! +} diff --git a/packages/server/graphql/public/typeDefs/AddAtlassianAuthPayload.graphql b/packages/server/graphql/public/typeDefs/AddAtlassianAuthPayload.graphql new file mode 100644 index 00000000000..e759912f3fa --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AddAtlassianAuthPayload.graphql @@ -0,0 +1,19 @@ +type AddAtlassianAuthPayload { + error: StandardMutationError + + """ + The newly created auth + """ + atlassianIntegration: AtlassianIntegration + teamId: ID + + """ + The team member with the updated atlassianAuth + """ + teamMember: TeamMember + + """ + The user with updated atlassianAuth + """ + user: User +} diff --git a/packages/server/graphql/public/typeDefs/AddCommentInput.graphql b/packages/server/graphql/public/typeDefs/AddCommentInput.graphql new file mode 100644 index 00000000000..d9c2ef2b1ed --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AddCommentInput.graphql @@ -0,0 +1,18 @@ +input AddCommentInput { + """ + A stringified draft-js document containing thoughts + """ + content: String! + + """ + true if the comment should be anonymous + """ + isAnonymous: Boolean + + """ + foreign key for the discussion this was created in + """ + discussionId: ID! + threadSortOrder: Float! + threadParentId: ID +} diff --git a/packages/server/graphql/public/typeDefs/AddCommentPayload.graphql b/packages/server/graphql/public/typeDefs/AddCommentPayload.graphql new file mode 100644 index 00000000000..5e41bb978e0 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AddCommentPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for AddCommentPayload +""" +union AddCommentPayload = ErrorPayload | AddCommentSuccess diff --git a/packages/server/graphql/public/typeDefs/AddCommentSuccess.graphql b/packages/server/graphql/public/typeDefs/AddCommentSuccess.graphql new file mode 100644 index 00000000000..a7de4a414d7 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AddCommentSuccess.graphql @@ -0,0 +1,11 @@ +type AddCommentSuccess { + """ + the comment just created + """ + comment: Comment! + + """ + The id of the meeting where the comment was added + """ + meetingId: ID! +} diff --git a/packages/server/graphql/public/typeDefs/AddGitHubAuthPayload.graphql b/packages/server/graphql/public/typeDefs/AddGitHubAuthPayload.graphql new file mode 100644 index 00000000000..e784459424a --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AddGitHubAuthPayload.graphql @@ -0,0 +1,18 @@ +type AddGitHubAuthPayload { + error: StandardMutationError + + """ + The newly created auth + """ + githubIntegration: GitHubIntegration + + """ + The team member with the updated auth + """ + teamMember: TeamMember + + """ + The user with updated githubAuth + """ + user: User +} diff --git a/packages/server/graphql/public/typeDefs/AddIntegrationProviderInput.graphql b/packages/server/graphql/public/typeDefs/AddIntegrationProviderInput.graphql new file mode 100644 index 00000000000..9799c973ca9 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AddIntegrationProviderInput.graphql @@ -0,0 +1,39 @@ +""" +An Integration Provider configuration +""" +input AddIntegrationProviderInput { + """ + The team that the token is linked to + """ + teamId: ID! + + """ + The service this provider is associated with + """ + service: IntegrationProviderServiceEnum! + + """ + The kind of token used by this provider + """ + authStrategy: IntegrationProviderAuthStrategyEnum! + + """ + The scope this provider configuration was created at (org-wide, or by the team) + """ + scope: IntegrationProviderEditableScopeEnum! + + """ + Webhook provider metadata, has to be non-null if token type is webhook, refactor once we get https://github.com/graphql/graphql-spec/pull/825 + """ + webhookProviderMetadataInput: IntegrationProviderMetadataInputWebhook + + """ + OAuth1 provider metadata, has to be non-null if token type is OAuth1, refactor once we get https://github.com/graphql/graphql-spec/pull/825 + """ + oAuth1ProviderMetadataInput: IntegrationProviderMetadataInputOAuth1 + + """ + OAuth2 provider metadata, has to be non-null if token type is OAuth2, refactor once we get https://github.com/graphql/graphql-spec/pull/825 + """ + oAuth2ProviderMetadataInput: IntegrationProviderMetadataInputOAuth2 +} diff --git a/packages/server/graphql/public/typeDefs/AddIntegrationProviderPayload.graphql b/packages/server/graphql/public/typeDefs/AddIntegrationProviderPayload.graphql new file mode 100644 index 00000000000..eb84bb95381 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AddIntegrationProviderPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for AddIntegrationProviderPayload +""" +union AddIntegrationProviderPayload = ErrorPayload | AddIntegrationProviderSuccess diff --git a/packages/server/graphql/public/typeDefs/AddIntegrationProviderSuccess.graphql b/packages/server/graphql/public/typeDefs/AddIntegrationProviderSuccess.graphql new file mode 100644 index 00000000000..d5cecb305c8 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AddIntegrationProviderSuccess.graphql @@ -0,0 +1,16 @@ +type AddIntegrationProviderSuccess { + """ + The provider that was added + """ + provider: IntegrationProvider! + + """ + Id of the team with the updated Integration Provider + """ + teamId: ID! + + """ + The team with the updated Integration Provider + """ + team: Team! +} diff --git a/packages/server/graphql/public/typeDefs/AddNewFeaturePayload.graphql b/packages/server/graphql/public/typeDefs/AddNewFeaturePayload.graphql new file mode 100644 index 00000000000..0d3a72e658f --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AddNewFeaturePayload.graphql @@ -0,0 +1,6 @@ +type AddNewFeaturePayload { + """ + the new feature broadcast + """ + newFeature: NewFeatureBroadcast +} diff --git a/packages/server/graphql/public/typeDefs/AddOrDeleteEnum.graphql b/packages/server/graphql/public/typeDefs/AddOrDeleteEnum.graphql new file mode 100644 index 00000000000..08a3a517aa1 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AddOrDeleteEnum.graphql @@ -0,0 +1,7 @@ +""" +Option to add or delete +""" +enum AddOrDeleteEnum { + ADD + DELETE +} diff --git a/packages/server/graphql/public/typeDefs/AddOrgPayload.graphql b/packages/server/graphql/public/typeDefs/AddOrgPayload.graphql new file mode 100644 index 00000000000..089d1b76840 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AddOrgPayload.graphql @@ -0,0 +1,20 @@ +type AddOrgPayload { + organization: Organization + error: StandardMutationError + + """ + The new auth token sent to the mutator + """ + authToken: ID + team: Team + + """ + The teamMember that just created the new team, if this is a creation + """ + teamMember: TeamMember + + """ + The ID of the suggestion to create a new team + """ + removedSuggestedActionId: ID +} diff --git a/packages/server/graphql/public/typeDefs/AddPokerTemplate.graphql b/packages/server/graphql/public/typeDefs/AddPokerTemplate.graphql deleted file mode 100644 index e9c6926d8eb..00000000000 --- a/packages/server/graphql/public/typeDefs/AddPokerTemplate.graphql +++ /dev/null @@ -1,31 +0,0 @@ -extend type Mutation { - """ - Adds a new poker template with a default dimension created. - """ - addPokerTemplate( - """ - The ID of the parent template, if this is a clone operation. - """ - parentTemplateId: ID - """ - The ID of the team for which the template is being created. - """ - teamId: ID! - ): AddPokerTemplatePayload! -} - -""" -Return value for addPokerTemplate, which could be an error -""" -union AddPokerTemplatePayload = ErrorPayload | AddPokerTemplateSuccess - -type AddPokerTemplateSuccess { - """ - The poker template that was created - """ - pokerTemplate: PokerTemplate! - """ - The user that created the template - """ - user: User! -} diff --git a/packages/server/graphql/public/typeDefs/AddPokerTemplateDimensionPayload.graphql b/packages/server/graphql/public/typeDefs/AddPokerTemplateDimensionPayload.graphql new file mode 100644 index 00000000000..87017a779b4 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AddPokerTemplateDimensionPayload.graphql @@ -0,0 +1,4 @@ +type AddPokerTemplateDimensionPayload { + error: StandardMutationError + dimension: TemplateDimension +} diff --git a/packages/server/graphql/public/typeDefs/AddPokerTemplatePayload.graphql b/packages/server/graphql/public/typeDefs/AddPokerTemplatePayload.graphql new file mode 100644 index 00000000000..4fe6f8145dd --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AddPokerTemplatePayload.graphql @@ -0,0 +1,4 @@ +""" +Return value for addPokerTemplate, which could be an error +""" +union AddPokerTemplatePayload = ErrorPayload | AddPokerTemplateSuccess diff --git a/packages/server/graphql/public/typeDefs/AddPokerTemplateScalePayload.graphql b/packages/server/graphql/public/typeDefs/AddPokerTemplateScalePayload.graphql new file mode 100644 index 00000000000..f83ac09e193 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AddPokerTemplateScalePayload.graphql @@ -0,0 +1,4 @@ +type AddPokerTemplateScalePayload { + error: StandardMutationError + scale: TemplateScale +} diff --git a/packages/server/graphql/public/typeDefs/AddPokerTemplateScaleValuePayload.graphql b/packages/server/graphql/public/typeDefs/AddPokerTemplateScaleValuePayload.graphql new file mode 100644 index 00000000000..bbaa22c06c1 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AddPokerTemplateScaleValuePayload.graphql @@ -0,0 +1,4 @@ +type AddPokerTemplateScaleValuePayload { + error: StandardMutationError + scale: TemplateScale +} diff --git a/packages/server/graphql/public/typeDefs/AddPokerTemplateSuccess.graphql b/packages/server/graphql/public/typeDefs/AddPokerTemplateSuccess.graphql new file mode 100644 index 00000000000..f6f41203e8e --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AddPokerTemplateSuccess.graphql @@ -0,0 +1,11 @@ +type AddPokerTemplateSuccess { + """ + The poker template that was created + """ + pokerTemplate: PokerTemplate! + + """ + The user that created the template + """ + user: User! +} diff --git a/packages/server/graphql/public/typeDefs/AddReactjiToReactablePayload.graphql b/packages/server/graphql/public/typeDefs/AddReactjiToReactablePayload.graphql index 3c0c3daca4f..d82e6a7f1c7 100644 --- a/packages/server/graphql/public/typeDefs/AddReactjiToReactablePayload.graphql +++ b/packages/server/graphql/public/typeDefs/AddReactjiToReactablePayload.graphql @@ -1,5 +1 @@ -type AddReactjiToReactableSuccess { - reactable: Reactable! -} - union AddReactjiToReactablePayload = AddReactjiToReactableSuccess | ErrorPayload diff --git a/packages/server/graphql/public/typeDefs/AddReactjiToReactableSuccess.graphql b/packages/server/graphql/public/typeDefs/AddReactjiToReactableSuccess.graphql new file mode 100644 index 00000000000..e282468d53a --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AddReactjiToReactableSuccess.graphql @@ -0,0 +1,3 @@ +type AddReactjiToReactableSuccess { + reactable: Reactable! +} diff --git a/packages/server/graphql/public/typeDefs/AddReactjiToReflectionSuccess.graphql b/packages/server/graphql/public/typeDefs/AddReactjiToReflectionSuccess.graphql new file mode 100644 index 00000000000..d3838f46b4c --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AddReactjiToReflectionSuccess.graphql @@ -0,0 +1,6 @@ +type AddReactjiToReflectionSuccess { + """ + the reflection with the updated list of reactjis + """ + reflection: RetroReflection! +} diff --git a/packages/server/graphql/public/typeDefs/AddReflectTemplate.graphql b/packages/server/graphql/public/typeDefs/AddReflectTemplate.graphql deleted file mode 100644 index ec7e1660e91..00000000000 --- a/packages/server/graphql/public/typeDefs/AddReflectTemplate.graphql +++ /dev/null @@ -1,31 +0,0 @@ -extend type Mutation { - """ - Adds a new reflect template with a default dimension created. - """ - addReflectTemplate( - """ - The ID of the parent template, if this is a clone operation. - """ - parentTemplateId: ID - """ - The ID of the team for which the template is being created. - """ - teamId: ID! - ): AddReflectTemplatePayload! -} - -""" -Return value for addReflectTemplate, which could be an error -""" -union AddReflectTemplatePayload = ErrorPayload | AddReflectTemplateSuccess - -type AddReflectTemplateSuccess { - """ - The reflect template that was created - """ - reflectTemplate: ReflectTemplate! - """ - The user that created the template - """ - user: User! -} diff --git a/packages/server/graphql/public/typeDefs/AddReflectTemplatePayload.graphql b/packages/server/graphql/public/typeDefs/AddReflectTemplatePayload.graphql new file mode 100644 index 00000000000..adfb645a643 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AddReflectTemplatePayload.graphql @@ -0,0 +1,4 @@ +""" +Return value for addReflectTemplate, which could be an error +""" +union AddReflectTemplatePayload = ErrorPayload | AddReflectTemplateSuccess diff --git a/packages/server/graphql/public/typeDefs/AddReflectTemplatePromptPayload.graphql b/packages/server/graphql/public/typeDefs/AddReflectTemplatePromptPayload.graphql new file mode 100644 index 00000000000..f44c50c5040 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AddReflectTemplatePromptPayload.graphql @@ -0,0 +1,4 @@ +type AddReflectTemplatePromptPayload { + error: StandardMutationError + prompt: ReflectPrompt +} diff --git a/packages/server/graphql/public/typeDefs/AddReflectTemplateSuccess.graphql b/packages/server/graphql/public/typeDefs/AddReflectTemplateSuccess.graphql new file mode 100644 index 00000000000..e4304f70633 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AddReflectTemplateSuccess.graphql @@ -0,0 +1,11 @@ +type AddReflectTemplateSuccess { + """ + The reflect template that was created + """ + reflectTemplate: ReflectTemplate! + + """ + The user that created the template + """ + user: User! +} diff --git a/packages/server/graphql/public/typeDefs/AddSlackAuthPayload.graphql b/packages/server/graphql/public/typeDefs/AddSlackAuthPayload.graphql new file mode 100644 index 00000000000..c53bdcd0f63 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AddSlackAuthPayload.graphql @@ -0,0 +1,13 @@ +type AddSlackAuthPayload { + error: StandardMutationError + + """ + The newly created auth + """ + slackIntegration: SlackIntegration + + """ + The user with updated slackAuth + """ + user: User +} diff --git a/packages/server/graphql/public/typeDefs/AddTeamMemberIntegrationAuthPayload.graphql b/packages/server/graphql/public/typeDefs/AddTeamMemberIntegrationAuthPayload.graphql new file mode 100644 index 00000000000..e3aa0d2cc8b --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AddTeamMemberIntegrationAuthPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for AddTeamMemberIntegrationAuthPayload +""" +union AddTeamMemberIntegrationAuthPayload = ErrorPayload | AddTeamMemberIntegrationAuthSuccess diff --git a/packages/server/graphql/public/typeDefs/AddTeamMemberIntegrationAuthSuccess.graphql b/packages/server/graphql/public/typeDefs/AddTeamMemberIntegrationAuthSuccess.graphql new file mode 100644 index 00000000000..ef2038da809 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AddTeamMemberIntegrationAuthSuccess.graphql @@ -0,0 +1,21 @@ +type AddTeamMemberIntegrationAuthSuccess { + """ + The auth that was just added + """ + integrationAuth: TeamMemberIntegrationAuth! + + """ + The service this provider is associated with + """ + service: IntegrationProviderServiceEnum! + + """ + The team member with the updated auth + """ + teamMember: TeamMember! + + """ + The user who updated TeamMemberIntegrationAuth object + """ + user: User! +} diff --git a/packages/server/graphql/public/typeDefs/AddTeamPayload.graphql b/packages/server/graphql/public/typeDefs/AddTeamPayload.graphql new file mode 100644 index 00000000000..98a7ce2a3fb --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AddTeamPayload.graphql @@ -0,0 +1,19 @@ +type AddTeamPayload { + error: StandardMutationError + + """ + The new auth token sent to the mutator + """ + authToken: ID + team: Team + + """ + The teamMember that just created the new team, if this is a creation + """ + teamMember: TeamMember + + """ + The ID of the suggestion to create a new team + """ + removedSuggestedActionId: ID +} diff --git a/packages/server/graphql/public/typeDefs/AddTemplateScaleInput.graphql b/packages/server/graphql/public/typeDefs/AddTemplateScaleInput.graphql new file mode 100644 index 00000000000..035a1e18b1a --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AddTemplateScaleInput.graphql @@ -0,0 +1,14 @@ +""" +Input for adding a new scale +""" +input AddTemplateScaleInput { + """ + The color used to visually group a scale value + """ + color: String! + + """ + The label for this value, e.g., XS, M, L + """ + label: String! +} diff --git a/packages/server/graphql/public/typeDefs/AddTranscriptionBotPayload.graphql b/packages/server/graphql/public/typeDefs/AddTranscriptionBotPayload.graphql new file mode 100644 index 00000000000..547db274161 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AddTranscriptionBotPayload.graphql @@ -0,0 +1,4 @@ +""" +Return value for addTranscriptionBot, which could be an error +""" +union AddTranscriptionBotPayload = ErrorPayload | AddTranscriptionBotSuccess diff --git a/packages/server/graphql/public/typeDefs/AddTranscriptionBotSuccess.graphql b/packages/server/graphql/public/typeDefs/AddTranscriptionBotSuccess.graphql new file mode 100644 index 00000000000..00972023cfd --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AddTranscriptionBotSuccess.graphql @@ -0,0 +1,6 @@ +type AddTranscriptionBotSuccess { + """ + The Parabol meeting where the videoMeetingURL and recallBotId were added + """ + meeting: RetrospectiveMeeting! +} diff --git a/packages/server/graphql/public/typeDefs/AgendaItem.graphql b/packages/server/graphql/public/typeDefs/AgendaItem.graphql index ec96cfa59ba..a2871a78b03 100644 --- a/packages/server/graphql/public/typeDefs/AgendaItem.graphql +++ b/packages/server/graphql/public/typeDefs/AgendaItem.graphql @@ -2,6 +2,11 @@ A request placeholder that will likely turn into 1 or more tasks """ type AgendaItem { + """ + The team member that created the agenda item + """ + teamMember: TeamMember! + """ The unique agenda item id teamId::shortid """ @@ -56,9 +61,4 @@ type AgendaItem { The timestamp the agenda item was updated """ updatedAt: DateTime - - """ - The team member that created the agenda item - """ - teamMember: TeamMember! } diff --git a/packages/server/graphql/public/typeDefs/AgendaItemsPhase.graphql b/packages/server/graphql/public/typeDefs/AgendaItemsPhase.graphql new file mode 100644 index 00000000000..07becc2220f --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AgendaItemsPhase.graphql @@ -0,0 +1,17 @@ +""" +The meeting phase where all team members discuss the topics with the most votes +""" +type AgendaItemsPhase implements NewMeetingPhase { + """ + shortid + """ + id: ID! + meetingId: ID! + teamId: ID! + + """ + The type of phase + """ + phaseType: NewMeetingPhaseTypeEnum! + stages: [AgendaItemsStage!]! +} diff --git a/packages/server/graphql/public/typeDefs/AgendaItemsStage.graphql b/packages/server/graphql/public/typeDefs/AgendaItemsStage.graphql new file mode 100644 index 00000000000..ca4e0b558aa --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AgendaItemsStage.graphql @@ -0,0 +1,111 @@ +""" +The stage where the team discusses a single agenda item +""" +type AgendaItemsStage implements NewMeetingStage & DiscussionThreadStage { + """ + stageId, shortid + """ + id: ID! + + """ + The datetime the stage was completed + """ + endAt: DateTime + + """ + foreign key. try using meeting + """ + meetingId: ID! + + """ + The meeting this stage belongs to + """ + meeting: NewMeeting + + """ + true if the facilitator has completed this stage, else false. Should be boolean(endAt) + """ + isComplete: Boolean! + + """ + true if any meeting participant can navigate to this stage + """ + isNavigable: Boolean! + + """ + true if the facilitator can navigate to this stage + """ + isNavigableByFacilitator: Boolean! + + """ + The phase this stage belongs to + """ + phase: NewMeetingPhase + + """ + The type of the phase + """ + phaseType: NewMeetingPhaseTypeEnum + + """ + The datetime the stage was started + """ + startAt: DateTime + + """ + Number of times the facilitator has visited this stage + """ + viewCount: Int + + """ + true if a time limit is set, false if end time is set, null if neither is set + """ + isAsync: Boolean + + """ + true if the viewer is ready to advance, else false + """ + isViewerReady: Boolean! + + """ + the number of meeting members ready to advance, excluding the facilitator + """ + readyCount: Int! + + """ + The datetime the phase is scheduled to be finished, null if no time limit or end time is set + """ + scheduledEndTime: DateTime + + """ + The suggested ending datetime for a phase to be completed async, null if not enough data to make a suggestion + """ + suggestedEndTime: DateTime + + """ + The suggested time limit for a phase to be completed together, null if not enough data to make a suggestion + """ + suggestedTimeLimit: Float + teamId: ID! + + """ + The number of milliseconds left before the scheduled end time. Useful for unsynced client clocks. null if scheduledEndTime is null + """ + timeRemaining: Float + + """ + The ID to find the discussion that goes in the stage + """ + discussionId: ID! + + """ + The discussion about the stage + """ + discussion: Discussion! + + """ + The id of the agenda item this relates to + """ + agendaItemId: ID! + agendaItem: AgendaItem! +} diff --git a/packages/server/graphql/public/typeDefs/ArchiveOrganizationPayload.graphql b/packages/server/graphql/public/typeDefs/ArchiveOrganizationPayload.graphql new file mode 100644 index 00000000000..325c4021709 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ArchiveOrganizationPayload.graphql @@ -0,0 +1,10 @@ +type ArchiveOrganizationPayload { + error: StandardMutationError + orgId: ID + teams: [Team!] + + """ + all the suggested actions that never happened + """ + removedSuggestedActionIds: [ID] +} diff --git a/packages/server/graphql/public/typeDefs/ArchiveTeamPayload.graphql b/packages/server/graphql/public/typeDefs/ArchiveTeamPayload.graphql new file mode 100644 index 00000000000..0b87aacb525 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ArchiveTeamPayload.graphql @@ -0,0 +1,19 @@ +type ArchiveTeamPayload { + error: StandardMutationError + team: Team + + """ + A notification explaining that the team was archived and removed from view + """ + notification: NotifyTeamArchived + + """ + all the suggested actions that never happened + """ + removedSuggestedActionIds: [ID] + + """ + A list of the ids of templates created by a team + """ + teamTemplateIds: [ID!]! +} diff --git a/packages/server/graphql/public/typeDefs/ArchiveTimelineEventPayload.graphql b/packages/server/graphql/public/typeDefs/ArchiveTimelineEventPayload.graphql new file mode 100644 index 00000000000..d1ce1100d39 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ArchiveTimelineEventPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for ArchiveTimelineEventPayload +""" +union ArchiveTimelineEventPayload = ErrorPayload | ArchiveTimelineEventSuccess diff --git a/packages/server/graphql/public/typeDefs/ArchiveTimelineEventSuccess.graphql b/packages/server/graphql/public/typeDefs/ArchiveTimelineEventSuccess.graphql new file mode 100644 index 00000000000..ea756fb26c9 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ArchiveTimelineEventSuccess.graphql @@ -0,0 +1,6 @@ +type ArchiveTimelineEventSuccess { + """ + the archived timelineEvent + """ + timelineEvent: TimelineEvent! +} diff --git a/packages/server/graphql/public/typeDefs/AreaEnum.graphql b/packages/server/graphql/public/typeDefs/AreaEnum.graphql new file mode 100644 index 00000000000..a0bdf39d941 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AreaEnum.graphql @@ -0,0 +1,8 @@ +""" +The part of the site that is calling the mutation +""" +enum AreaEnum { + meeting + teamDash + userDash +} diff --git a/packages/server/graphql/public/typeDefs/AuthIdentity.graphql b/packages/server/graphql/public/typeDefs/AuthIdentity.graphql new file mode 100644 index 00000000000..65278ff4390 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AuthIdentity.graphql @@ -0,0 +1,10 @@ +""" +An authentication strategy to log in to Parabol +""" +interface AuthIdentity { + """ + true if the email address using this strategy is verified, else false + """ + isEmailVerified: Boolean! + type: AuthIdentityTypeEnum! +} diff --git a/packages/server/graphql/public/typeDefs/AuthIdentityGoogle.graphql b/packages/server/graphql/public/typeDefs/AuthIdentityGoogle.graphql new file mode 100644 index 00000000000..16905a880b4 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AuthIdentityGoogle.graphql @@ -0,0 +1,15 @@ +""" +An authentication strategy using Google +""" +type AuthIdentityGoogle implements AuthIdentity { + """ + true if the email address using this strategy is verified, else false + """ + isEmailVerified: Boolean! + type: AuthIdentityTypeEnum! + + """ + The googleID for this strategy + """ + id: ID! +} diff --git a/packages/server/graphql/public/typeDefs/AuthIdentityLocal.graphql b/packages/server/graphql/public/typeDefs/AuthIdentityLocal.graphql new file mode 100644 index 00000000000..1915b869fd7 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AuthIdentityLocal.graphql @@ -0,0 +1,10 @@ +""" +An authentication strategy using an email & password +""" +type AuthIdentityLocal implements AuthIdentity { + """ + true if the email address using this strategy is verified, else false + """ + isEmailVerified: Boolean! + type: AuthIdentityTypeEnum! +} diff --git a/packages/server/graphql/public/typeDefs/AuthIdentityMicrosoft.graphql b/packages/server/graphql/public/typeDefs/AuthIdentityMicrosoft.graphql new file mode 100644 index 00000000000..d0fd4d7a538 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AuthIdentityMicrosoft.graphql @@ -0,0 +1,15 @@ +""" +An authentication strategy using Microsoft +""" +type AuthIdentityMicrosoft implements AuthIdentity { + """ + true if the email address using this strategy is verified, else false + """ + isEmailVerified: Boolean! + type: AuthIdentityTypeEnum! + + """ + The Microsoft ID for this strategy + """ + id: ID! +} diff --git a/packages/server/graphql/public/typeDefs/AuthIdentityTypeEnum.graphql b/packages/server/graphql/public/typeDefs/AuthIdentityTypeEnum.graphql new file mode 100644 index 00000000000..293ed34d851 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AuthIdentityTypeEnum.graphql @@ -0,0 +1,8 @@ +""" +The types of authentication strategies +""" +enum AuthIdentityTypeEnum { + LOCAL + GOOGLE + MICROSOFT +} diff --git a/packages/server/graphql/public/typeDefs/AuthTokenPayload.graphql b/packages/server/graphql/public/typeDefs/AuthTokenPayload.graphql new file mode 100644 index 00000000000..e2e02448daa --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AuthTokenPayload.graphql @@ -0,0 +1,9 @@ +""" +An auth token provided by Parabol to the client +""" +type AuthTokenPayload { + """ + The encoded JWT + """ + id: ID! +} diff --git a/packages/server/graphql/public/typeDefs/AutogroupPayload.graphql b/packages/server/graphql/public/typeDefs/AutogroupPayload.graphql new file mode 100644 index 00000000000..b5ebc5f28ef --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AutogroupPayload.graphql @@ -0,0 +1,4 @@ +""" +Return value for autogroup, which could be an error +""" +union AutogroupPayload = ErrorPayload | AutogroupSuccess diff --git a/packages/server/graphql/public/typeDefs/AutogroupReflectionGroup.graphql b/packages/server/graphql/public/typeDefs/AutogroupReflectionGroup.graphql new file mode 100644 index 00000000000..1a1ed843222 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AutogroupReflectionGroup.graphql @@ -0,0 +1,14 @@ +""" +A suggested reflection group created by OpenAI' +""" +type AutogroupReflectionGroup { + """ + The smart title for the reflection group created by OpenAI + """ + groupTitle: String! + + """ + The ids of the reflections in the group + """ + reflectionIds: [ID!]! +} diff --git a/packages/server/graphql/public/typeDefs/AutogroupSuccess.graphql b/packages/server/graphql/public/typeDefs/AutogroupSuccess.graphql new file mode 100644 index 00000000000..17104ea779e --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AutogroupSuccess.graphql @@ -0,0 +1,3 @@ +type AutogroupSuccess { + meeting: RetrospectiveMeeting! +} diff --git a/packages/server/graphql/public/typeDefs/AzureDevOpsWorkItem.graphql b/packages/server/graphql/public/typeDefs/AzureDevOpsWorkItem.graphql index 9a95773dec4..047876a2fa8 100644 --- a/packages/server/graphql/public/typeDefs/AzureDevOpsWorkItem.graphql +++ b/packages/server/graphql/public/typeDefs/AzureDevOpsWorkItem.graphql @@ -47,34 +47,3 @@ type AzureDevOpsWorkItem implements TaskIntegration { """ descriptionHTML: String! } - -""" -A connection to a list of items. -""" -type AzureDevOpsWorkItemConnection { - """ - Page info with cursors coerced to ISO8601 dates - """ - pageInfo: PageInfoDateCursor - - """ - A list of edges. - """ - edges: [AzureDevOpsWorkItemEdge!]! - - """ - An error with the connection, if any - """ - error: StandardMutationError -} - -""" -An edge in a connection. -""" -type AzureDevOpsWorkItemEdge { - """ - The item at the end of the edge - """ - node: AzureDevOpsWorkItem! - cursor: DateTime -} diff --git a/packages/server/graphql/public/typeDefs/AzureDevOpsWorkItemConnection.graphql b/packages/server/graphql/public/typeDefs/AzureDevOpsWorkItemConnection.graphql new file mode 100644 index 00000000000..98b4eccd038 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AzureDevOpsWorkItemConnection.graphql @@ -0,0 +1,19 @@ +""" +A connection to a list of items. +""" +type AzureDevOpsWorkItemConnection { + """ + Page info with cursors coerced to ISO8601 dates + """ + pageInfo: PageInfoDateCursor + + """ + A list of edges. + """ + edges: [AzureDevOpsWorkItemEdge!]! + + """ + An error with the connection, if any + """ + error: StandardMutationError +} diff --git a/packages/server/graphql/public/typeDefs/AzureDevOpsWorkItemEdge.graphql b/packages/server/graphql/public/typeDefs/AzureDevOpsWorkItemEdge.graphql new file mode 100644 index 00000000000..7b8b3d225c7 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/AzureDevOpsWorkItemEdge.graphql @@ -0,0 +1,10 @@ +""" +An edge in a connection. +""" +type AzureDevOpsWorkItemEdge { + """ + The item at the end of the edge + """ + node: AzureDevOpsWorkItem! + cursor: DateTime +} diff --git a/packages/server/graphql/public/typeDefs/BatchArchiveTasksPayload.graphql b/packages/server/graphql/public/typeDefs/BatchArchiveTasksPayload.graphql new file mode 100644 index 00000000000..64003ba723f --- /dev/null +++ b/packages/server/graphql/public/typeDefs/BatchArchiveTasksPayload.graphql @@ -0,0 +1,4 @@ +""" +Return value for batchArchiveTasks, which could be an error +""" +union BatchArchiveTasksPayload = ErrorPayload | BatchArchiveTasksSuccess diff --git a/packages/server/graphql/public/typeDefs/BatchArchiveTasksSuccess.graphql b/packages/server/graphql/public/typeDefs/BatchArchiveTasksSuccess.graphql new file mode 100644 index 00000000000..10a59551c31 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/BatchArchiveTasksSuccess.graphql @@ -0,0 +1,11 @@ +type BatchArchiveTasksSuccess { + """ + the id of achived tasks + """ + archivedTaskIds: [ID!] + + """ + the archived tasks + """ + archivedTasks: [Task!] +} diff --git a/packages/server/graphql/public/typeDefs/CanAccessEntity.graphql b/packages/server/graphql/public/typeDefs/CanAccessEntity.graphql new file mode 100644 index 00000000000..cca77ece4dd --- /dev/null +++ b/packages/server/graphql/public/typeDefs/CanAccessEntity.graphql @@ -0,0 +1,5 @@ +enum CanAccessEntity { + Team + Meeting + Organization +} diff --git a/packages/server/graphql/public/typeDefs/ChangeSourceEnum.graphql b/packages/server/graphql/public/typeDefs/ChangeSourceEnum.graphql new file mode 100644 index 00000000000..b543c6683f9 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ChangeSourceEnum.graphql @@ -0,0 +1,8 @@ +""" +The source that a change to a record came in through +""" +enum ChangeSourceEnum { + meeting + task + external +} diff --git a/packages/server/graphql/public/typeDefs/ChangeTaskTeamPayload.graphql b/packages/server/graphql/public/typeDefs/ChangeTaskTeamPayload.graphql new file mode 100644 index 00000000000..4fdfbb66f6a --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ChangeTaskTeamPayload.graphql @@ -0,0 +1,9 @@ +type ChangeTaskTeamPayload { + error: StandardMutationError + task: Task + + """ + the taskId sent to a user who is not on the new team so they can remove it from their client + """ + removedTaskId: ID +} diff --git a/packages/server/graphql/public/typeDefs/CheckInPhase.graphql b/packages/server/graphql/public/typeDefs/CheckInPhase.graphql new file mode 100644 index 00000000000..fb37bf8146c --- /dev/null +++ b/packages/server/graphql/public/typeDefs/CheckInPhase.graphql @@ -0,0 +1,27 @@ +""" +The meeting phase where all team members check in one-by-one +""" +type CheckInPhase implements NewMeetingPhase { + """ + shortid + """ + id: ID! + meetingId: ID! + teamId: ID! + + """ + The type of phase + """ + phaseType: NewMeetingPhaseTypeEnum! + stages: [CheckInStage!]! + + """ + The checkIn greeting (fun language) + """ + checkInGreeting: MeetingGreeting! + + """ + The checkIn question of the week (draft-js format) + """ + checkInQuestion: String! +} diff --git a/packages/server/graphql/public/typeDefs/CheckInStage.graphql b/packages/server/graphql/public/typeDefs/CheckInStage.graphql new file mode 100644 index 00000000000..c9f29488552 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/CheckInStage.graphql @@ -0,0 +1,110 @@ +""" +A stage that focuses on a single team member +""" +type CheckInStage implements NewMeetingStage & NewMeetingTeamMemberStage { + """ + stageId, shortid + """ + id: ID! + + """ + The datetime the stage was completed + """ + endAt: DateTime + + """ + foreign key. try using meeting + """ + meetingId: ID! + + """ + The meeting this stage belongs to + """ + meeting: NewMeeting + + """ + true if the facilitator has completed this stage, else false. Should be boolean(endAt) + """ + isComplete: Boolean! + + """ + true if any meeting participant can navigate to this stage + """ + isNavigable: Boolean! + + """ + true if the facilitator can navigate to this stage + """ + isNavigableByFacilitator: Boolean! + + """ + The phase this stage belongs to + """ + phase: NewMeetingPhase + + """ + The type of the phase + """ + phaseType: NewMeetingPhaseTypeEnum + + """ + The datetime the stage was started + """ + startAt: DateTime + + """ + Number of times the facilitator has visited this stage + """ + viewCount: Int + + """ + true if a time limit is set, false if end time is set, null if neither is set + """ + isAsync: Boolean + + """ + true if the viewer is ready to advance, else false + """ + isViewerReady: Boolean! + + """ + the number of meeting members ready to advance, excluding the facilitator + """ + readyCount: Int! + + """ + The datetime the phase is scheduled to be finished, null if no time limit or end time is set + """ + scheduledEndTime: DateTime + + """ + The suggested ending datetime for a phase to be completed async, null if not enough data to make a suggestion + """ + suggestedEndTime: DateTime + + """ + The suggested time limit for a phase to be completed together, null if not enough data to make a suggestion + """ + suggestedTimeLimit: Float + teamId: ID! + + """ + The number of milliseconds left before the scheduled end time. Useful for unsynced client clocks. null if scheduledEndTime is null + """ + timeRemaining: Float + + """ + The meeting member that is the focus for this phase item + """ + meetingMember: MeetingMember! + + """ + foreign key. use teamMember + """ + teamMemberId: ID! + + """ + The team member that is the focus for this phase item + """ + teamMember: TeamMember! +} diff --git a/packages/server/graphql/public/typeDefs/Comment.graphql b/packages/server/graphql/public/typeDefs/Comment.graphql new file mode 100644 index 00000000000..eadc0fe6fd3 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/Comment.graphql @@ -0,0 +1,74 @@ +""" +A comment on a thread +""" +type Comment implements Reactable & Threadable { + """ + shortid + """ + id: ID! + + """ + The rich text body of the item, if inactive, a tombstone text + """ + content: String! + + """ + The timestamp the item was created + """ + createdAt: DateTime! + + """ + The userId that created the item, null if anonymous + """ + createdBy: ID + + """ + The user that created the item, null if anonymous + """ + createdByUser: User + + """ + the replies to this threadable item + """ + replies: [Threadable!]! + + """ + The FK of the discussion this task was created in. Null if task was not created in a discussion + """ + discussionId: ID + + """ + the parent, if this threadable is a reply, else null + """ + threadParentId: ID + + """ + the order of this threadable, relative to threadParentId + """ + threadSortOrder: Float + + """ + The timestamp the item was updated + """ + updatedAt: DateTime! + + """ + All the reactjis for the given reflection + """ + reactjis: [Reactji!]! + + """ + true if the agenda item has not been processed or deleted + """ + isActive: Boolean! + + """ + true if the comment is anonymous, else false + """ + isAnonymous: Boolean! + + """ + true if the viewer wrote this comment, else false + """ + isViewerComment: Boolean! +} diff --git a/packages/server/graphql/public/typeDefs/CommentorDetails.graphql b/packages/server/graphql/public/typeDefs/CommentorDetails.graphql new file mode 100644 index 00000000000..34964fd23fe --- /dev/null +++ b/packages/server/graphql/public/typeDefs/CommentorDetails.graphql @@ -0,0 +1,14 @@ +""" +The user that is commenting +""" +type CommentorDetails { + """ + The userId of the person commenting + """ + id: ID! + + """ + The preferred name of the user commenting + """ + preferredName: String! +} diff --git a/packages/server/graphql/public/typeDefs/Coupon.graphql b/packages/server/graphql/public/typeDefs/Coupon.graphql new file mode 100644 index 00000000000..4e32dd49e01 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/Coupon.graphql @@ -0,0 +1,24 @@ +""" +The discount coupon from Stripe, if any +""" +type Coupon { + """ + The ID of the discount coupon from Stripe + """ + id: String! + + """ + The amount off the invoice, if any + """ + amountOff: Int + + """ + The name of the discount coupon from Stripe + """ + name: String! + + """ + The percent off the invoice, if any + """ + percentOff: Int +} diff --git a/packages/server/graphql/public/typeDefs/CreateAgendaItemInput.graphql b/packages/server/graphql/public/typeDefs/CreateAgendaItemInput.graphql new file mode 100644 index 00000000000..d04e556d7de --- /dev/null +++ b/packages/server/graphql/public/typeDefs/CreateAgendaItemInput.graphql @@ -0,0 +1,27 @@ +input CreateAgendaItemInput { + """ + The content of the agenda item + """ + content: String! + + """ + True if the agenda item has been pinned + """ + pinned: Boolean! + teamId: ID! + + """ + The team member ID of the person creating the agenda item + """ + teamMemberId: ID! + + """ + The sort order of the agenda item in the list + """ + sortOrder: Float + + """ + The meeting ID of the agenda item + """ + meetingId: String +} diff --git a/packages/server/graphql/public/typeDefs/CreateGcalEventInput.graphql b/packages/server/graphql/public/typeDefs/CreateGcalEventInput.graphql index 634041f5edd..78435a97ac8 100644 --- a/packages/server/graphql/public/typeDefs/CreateGcalEventInput.graphql +++ b/packages/server/graphql/public/typeDefs/CreateGcalEventInput.graphql @@ -3,20 +3,24 @@ input CreateGcalEventInput { The start timestamp of the event """ startTimestamp: Int! + """ The end timestamp of the event """ endTimestamp: Int! + """ The timezone of the event """ timeZone: String! - """ - The type of video call to added to the gcal event. If not provided, no video call will be added - """ - videoType: GcalVideoTypeEnum + """ The emails that will be invited to the gcal event. If not provided, the no one will be invited """ invitees: [Email!] + + """ + The type of video call to added to the gcal event. If not provided, no video call will be added + """ + videoType: GcalVideoTypeEnum } diff --git a/packages/server/graphql/public/typeDefs/CreateImposterTokenPayload.graphql b/packages/server/graphql/public/typeDefs/CreateImposterTokenPayload.graphql new file mode 100644 index 00000000000..2c25a4ef8d3 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/CreateImposterTokenPayload.graphql @@ -0,0 +1,13 @@ +type CreateImposterTokenPayload { + error: StandardMutationError + + """ + The new JWT + """ + authToken: ID + + """ + The user you have assumed + """ + user: User +} diff --git a/packages/server/graphql/public/typeDefs/CreateMassInvitationPayload.graphql b/packages/server/graphql/public/typeDefs/CreateMassInvitationPayload.graphql new file mode 100644 index 00000000000..647992c174a --- /dev/null +++ b/packages/server/graphql/public/typeDefs/CreateMassInvitationPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for CreateMassInvitationPayload +""" +union CreateMassInvitationPayload = ErrorPayload | CreateMassInvitationSuccess diff --git a/packages/server/graphql/public/typeDefs/CreateMassInvitationSuccess.graphql b/packages/server/graphql/public/typeDefs/CreateMassInvitationSuccess.graphql new file mode 100644 index 00000000000..d351bdd564f --- /dev/null +++ b/packages/server/graphql/public/typeDefs/CreateMassInvitationSuccess.graphql @@ -0,0 +1,6 @@ +type CreateMassInvitationSuccess { + """ + the team with the updated mass inivtation + """ + team: Team! +} diff --git a/packages/server/graphql/public/typeDefs/CreateOAuth1AuthorizationURLPayload.graphql b/packages/server/graphql/public/typeDefs/CreateOAuth1AuthorizationURLPayload.graphql new file mode 100644 index 00000000000..7873eb934f7 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/CreateOAuth1AuthorizationURLPayload.graphql @@ -0,0 +1,11 @@ +""" +Authorization URL constructed after creating a new request token +""" +type CreateOAuth1AuthorizationURLPayload { + error: StandardMutationError + + """ + Authorization URL including oauth_token to start authorization flow + """ + url: String +} diff --git a/packages/server/graphql/public/typeDefs/CreatePollInput.graphql b/packages/server/graphql/public/typeDefs/CreatePollInput.graphql new file mode 100644 index 00000000000..d73109d5924 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/CreatePollInput.graphql @@ -0,0 +1,21 @@ +input CreatePollInput { + """ + Foreign key for the discussion this was created in + """ + discussionId: ID! + + """ + The order of this threadable + """ + threadSortOrder: Float! + + """ + Poll question + """ + title: String! + + """ + All the poll voting options + """ + options: [PollOptionInput!]! +} diff --git a/packages/server/graphql/public/typeDefs/CreatePollPayload.graphql b/packages/server/graphql/public/typeDefs/CreatePollPayload.graphql new file mode 100644 index 00000000000..365685cf68e --- /dev/null +++ b/packages/server/graphql/public/typeDefs/CreatePollPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for CreatePollPayload +""" +union CreatePollPayload = ErrorPayload | CreatePollSuccess diff --git a/packages/server/graphql/public/typeDefs/CreatePollSuccess.graphql b/packages/server/graphql/public/typeDefs/CreatePollSuccess.graphql new file mode 100644 index 00000000000..3ce7e62b1e9 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/CreatePollSuccess.graphql @@ -0,0 +1,11 @@ +type CreatePollSuccess { + """ + Poll id in a format of `poll:idGeneratedByDatabase` + """ + pollId: ID! + + """ + the poll just created + """ + poll: Poll! +} diff --git a/packages/server/graphql/public/typeDefs/CreateReflectionInput.graphql b/packages/server/graphql/public/typeDefs/CreateReflectionInput.graphql new file mode 100644 index 00000000000..127f1a09fd5 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/CreateReflectionInput.graphql @@ -0,0 +1,13 @@ +input CreateReflectionInput { + """ + A stringified draft-js document containing thoughts + """ + content: String + meetingId: ID! + + """ + The prompt the reflection belongs to + """ + promptId: ID! + sortOrder: Float! +} diff --git a/packages/server/graphql/public/typeDefs/CreateReflectionPayload.graphql b/packages/server/graphql/public/typeDefs/CreateReflectionPayload.graphql new file mode 100644 index 00000000000..aa2c5469088 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/CreateReflectionPayload.graphql @@ -0,0 +1,16 @@ +type CreateReflectionPayload { + error: StandardMutationError + meeting: NewMeeting + reflectionId: ID + reflection: RetroReflection + + """ + The group automatically created for the reflection + """ + reflectionGroup: RetroReflectionGroup + + """ + The stages that were unlocked by navigating + """ + unlockedStages: [NewMeetingStage!] +} diff --git a/packages/server/graphql/public/typeDefs/CreateStripeSubscriptionPayload.graphql b/packages/server/graphql/public/typeDefs/CreateStripeSubscriptionPayload.graphql new file mode 100644 index 00000000000..3af21968de8 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/CreateStripeSubscriptionPayload.graphql @@ -0,0 +1,4 @@ +""" +Return value for createStripeSubscription, which could be an error +""" +union CreateStripeSubscriptionPayload = ErrorPayload | CreateStripeSubscriptionSuccess diff --git a/packages/server/graphql/public/typeDefs/CreateStripeSubscriptionSuccess.graphql b/packages/server/graphql/public/typeDefs/CreateStripeSubscriptionSuccess.graphql new file mode 100644 index 00000000000..527855ad237 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/CreateStripeSubscriptionSuccess.graphql @@ -0,0 +1,6 @@ +type CreateStripeSubscriptionSuccess { + """ + The client secret from the Stripe subscription. Used for client-side retrieval using a publishable key. + """ + stripeSubscriptionClientSecret: String! +} diff --git a/packages/server/graphql/public/typeDefs/CreateTaskInput.graphql b/packages/server/graphql/public/typeDefs/CreateTaskInput.graphql new file mode 100644 index 00000000000..374821407a8 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/CreateTaskInput.graphql @@ -0,0 +1,29 @@ +input CreateTaskInput { + content: String + plaintextContent: String + + """ + foreign key for the meeting this was created in + """ + meetingId: ID + + """ + foreign key for the thread this was created in + """ + discussionId: ID + threadSortOrder: Float + threadParentId: ID + sortOrder: Float + status: TaskStatusEnum! + + """ + teamId, the team the task is on + """ + teamId: ID! + + """ + userId, the owner of the task. This can be null if the task is not assigned to anyone. + """ + userId: ID + integration: CreateTaskIntegrationInput +} diff --git a/packages/server/graphql/public/typeDefs/CreateTaskIntegrationInput.graphql b/packages/server/graphql/public/typeDefs/CreateTaskIntegrationInput.graphql new file mode 100644 index 00000000000..6eab39b3dff --- /dev/null +++ b/packages/server/graphql/public/typeDefs/CreateTaskIntegrationInput.graphql @@ -0,0 +1,11 @@ +input CreateTaskIntegrationInput { + """ + The service to push this new task to + """ + service: TaskServiceEnum! + + """ + The key or composite key where the task should live in the service, e.g. nameWithOwner or cloudId:projectKey + """ + serviceProjectHash: String! +} diff --git a/packages/server/graphql/public/typeDefs/CreateTaskIntegrationPayload.graphql b/packages/server/graphql/public/typeDefs/CreateTaskIntegrationPayload.graphql new file mode 100644 index 00000000000..5052cf9017c --- /dev/null +++ b/packages/server/graphql/public/typeDefs/CreateTaskIntegrationPayload.graphql @@ -0,0 +1,4 @@ +type CreateTaskIntegrationPayload { + error: StandardMutationError + task: Task +} diff --git a/packages/server/graphql/public/typeDefs/CreateTaskPayload.graphql b/packages/server/graphql/public/typeDefs/CreateTaskPayload.graphql new file mode 100644 index 00000000000..4bc47198474 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/CreateTaskPayload.graphql @@ -0,0 +1,5 @@ +type CreateTaskPayload { + error: StandardMutationError + task: Task + involvementNotification: NotifyTaskInvolves +} diff --git a/packages/server/graphql/public/typeDefs/CreditCard.graphql b/packages/server/graphql/public/typeDefs/CreditCard.graphql new file mode 100644 index 00000000000..49ae8dffd14 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/CreditCard.graphql @@ -0,0 +1,19 @@ +""" +A credit card +""" +type CreditCard { + """ + The brand of the credit card, as provided by stripe + """ + brand: String! + + """ + The MM/YY string of the expiration date + """ + expiry: String! + + """ + The last 4 digits of a credit card + """ + last4: String! +} diff --git a/packages/server/graphql/public/typeDefs/DateTime.graphql b/packages/server/graphql/public/typeDefs/DateTime.graphql new file mode 100644 index 00000000000..68ab69c7bb7 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/DateTime.graphql @@ -0,0 +1 @@ +scalar DateTime diff --git a/packages/server/graphql/public/typeDefs/DeleteCommentPayload.graphql b/packages/server/graphql/public/typeDefs/DeleteCommentPayload.graphql new file mode 100644 index 00000000000..4d8be7d19c7 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/DeleteCommentPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for DeleteCommentPayload +""" +union DeleteCommentPayload = ErrorPayload | DeleteCommentSuccess diff --git a/packages/server/graphql/public/typeDefs/DeleteCommentSuccess.graphql b/packages/server/graphql/public/typeDefs/DeleteCommentSuccess.graphql new file mode 100644 index 00000000000..e95b9c91157 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/DeleteCommentSuccess.graphql @@ -0,0 +1,8 @@ +type DeleteCommentSuccess { + commentId: ID! + + """ + the comment just deleted + """ + comment: Comment! +} diff --git a/packages/server/graphql/public/typeDefs/DeleteTaskPayload.graphql b/packages/server/graphql/public/typeDefs/DeleteTaskPayload.graphql new file mode 100644 index 00000000000..402a6575042 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/DeleteTaskPayload.graphql @@ -0,0 +1,8 @@ +type DeleteTaskPayload { + error: StandardMutationError + + """ + The task that was deleted + """ + task: Task +} diff --git a/packages/server/graphql/public/typeDefs/DeleteUserPayload.graphql b/packages/server/graphql/public/typeDefs/DeleteUserPayload.graphql new file mode 100644 index 00000000000..8c6af3086dc --- /dev/null +++ b/packages/server/graphql/public/typeDefs/DeleteUserPayload.graphql @@ -0,0 +1,3 @@ +type DeleteUserPayload { + error: StandardMutationError +} diff --git a/packages/server/graphql/public/typeDefs/DenyPushInvitationPayload.graphql b/packages/server/graphql/public/typeDefs/DenyPushInvitationPayload.graphql new file mode 100644 index 00000000000..32262b3e124 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/DenyPushInvitationPayload.graphql @@ -0,0 +1,5 @@ +type DenyPushInvitationPayload { + error: StandardMutationError + teamId: ID + userId: ID +} diff --git a/packages/server/graphql/public/typeDefs/DisconnectSocketPayload.graphql b/packages/server/graphql/public/typeDefs/DisconnectSocketPayload.graphql new file mode 100644 index 00000000000..a4971482f0f --- /dev/null +++ b/packages/server/graphql/public/typeDefs/DisconnectSocketPayload.graphql @@ -0,0 +1,6 @@ +type DisconnectSocketPayload { + """ + The user that disconnected + """ + user: User +} diff --git a/packages/server/graphql/public/typeDefs/DiscussPhase.graphql b/packages/server/graphql/public/typeDefs/DiscussPhase.graphql new file mode 100644 index 00000000000..39c6a5a53f6 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/DiscussPhase.graphql @@ -0,0 +1,17 @@ +""" +The meeting phase where all team members discuss the topics with the most votes +""" +type DiscussPhase implements NewMeetingPhase { + """ + shortid + """ + id: ID! + meetingId: ID! + teamId: ID! + + """ + The type of phase + """ + phaseType: NewMeetingPhaseTypeEnum! + stages: [RetroDiscussStage!]! +} diff --git a/packages/server/graphql/public/typeDefs/Discussion.graphql b/packages/server/graphql/public/typeDefs/Discussion.graphql new file mode 100644 index 00000000000..ecb0b3ebd22 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/Discussion.graphql @@ -0,0 +1,63 @@ +""" +A discussion thread +""" +type Discussion { + id: ID! + teamId: ID! + + """ + Team + """ + team: Team! + meetingId: ID! + + """ + time the thread was created + """ + createdAt: DateTime! + + """ + The partial foreign key that references the object that is the topic of the discussion. E.g. AgendaItemId, TaskId, ReflectionGroupId + """ + discussionTopicId: ID! + + """ + The partial foregin key that describes the type of object that is the topic of the discussion. E.g. AgendaItem, TaskId, ReflectionGroup, GitHubIssue + """ + discussionTopicType: DiscussionTopicTypeEnum! + + """ + The stage where the discussion is + """ + stage: NewMeetingStage + + """ + The number of comments contained in the thread + """ + commentCount: Int! + + """ + The users writing a comment right now + """ + commentors: [User!]! + + """ + The comments & tasks thread in the discussion + """ + thread( + """ + How many items to show. optional if only comments are desired + """ + first: Int + + """ + the incrementing sort order in string format + """ + after: String + ): ThreadableConnection! + + """ + The AI generated summary of the discussion. Undefined if the user doesnt have access to the feature or the stage isn't completed + """ + summary: String +} diff --git a/packages/server/graphql/public/typeDefs/DiscussionThreadStage.graphql b/packages/server/graphql/public/typeDefs/DiscussionThreadStage.graphql new file mode 100644 index 00000000000..bab6ba8221f --- /dev/null +++ b/packages/server/graphql/public/typeDefs/DiscussionThreadStage.graphql @@ -0,0 +1,14 @@ +""" +A meeting stage that includes a discussion thread +""" +interface DiscussionThreadStage { + """ + The ID to find the discussion that goes in the stage + """ + discussionId: ID! + + """ + The discussion about the stage + """ + discussion: Discussion! +} diff --git a/packages/server/graphql/public/typeDefs/DiscussionTopicTypeEnum.graphql b/packages/server/graphql/public/typeDefs/DiscussionTopicTypeEnum.graphql new file mode 100644 index 00000000000..eaea7ce3874 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/DiscussionTopicTypeEnum.graphql @@ -0,0 +1,11 @@ +""" +The topic being discussed +""" +enum DiscussionTopicTypeEnum { + agendaItem + reflectionGroup + task + githubIssue + jiraIssue + teamPromptResponse +} diff --git a/packages/server/graphql/public/typeDefs/DismissNewFeaturePayload.graphql b/packages/server/graphql/public/typeDefs/DismissNewFeaturePayload.graphql new file mode 100644 index 00000000000..fdb21082751 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/DismissNewFeaturePayload.graphql @@ -0,0 +1,3 @@ +type DismissNewFeaturePayload { + error: StandardMutationError +} diff --git a/packages/server/graphql/public/typeDefs/DismissSuggestedActionPayload.graphql b/packages/server/graphql/public/typeDefs/DismissSuggestedActionPayload.graphql new file mode 100644 index 00000000000..325647c7466 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/DismissSuggestedActionPayload.graphql @@ -0,0 +1,13 @@ +type DismissSuggestedActionPayload { + error: StandardMutationError + + """ + The user that dismissed the action + """ + user: User + + """ + The id of the removed suggested action + """ + removedSuggestedActionId: ID +} diff --git a/packages/server/graphql/public/typeDefs/DowngradeToStarterPayload.graphql b/packages/server/graphql/public/typeDefs/DowngradeToStarterPayload.graphql new file mode 100644 index 00000000000..cd15571e351 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/DowngradeToStarterPayload.graphql @@ -0,0 +1,13 @@ +type DowngradeToStarterPayload { + error: StandardMutationError + + """ + The new Starter Org + """ + organization: Organization + + """ + The updated teams under the org + """ + teams: [Team] +} diff --git a/packages/server/graphql/public/typeDefs/DragDiscussionTopicPayload.graphql b/packages/server/graphql/public/typeDefs/DragDiscussionTopicPayload.graphql new file mode 100644 index 00000000000..96d48c6bbf7 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/DragDiscussionTopicPayload.graphql @@ -0,0 +1,5 @@ +type DragDiscussionTopicPayload { + error: StandardMutationError + meeting: NewMeeting + stage: RetroDiscussStage +} diff --git a/packages/server/graphql/public/typeDefs/DragEstimatingTaskPayload.graphql b/packages/server/graphql/public/typeDefs/DragEstimatingTaskPayload.graphql new file mode 100644 index 00000000000..9b65df44304 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/DragEstimatingTaskPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for DragEstimatingTaskPayload +""" +union DragEstimatingTaskPayload = ErrorPayload | DragEstimatingTaskSuccess diff --git a/packages/server/graphql/public/typeDefs/DragEstimatingTaskSuccess.graphql b/packages/server/graphql/public/typeDefs/DragEstimatingTaskSuccess.graphql new file mode 100644 index 00000000000..0bc246d36c6 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/DragEstimatingTaskSuccess.graphql @@ -0,0 +1,6 @@ +type DragEstimatingTaskSuccess { + meetingId: ID! + meeting: PokerMeeting! + stageIds: [ID!]! + stages: [EstimateStage!]! +} diff --git a/packages/server/graphql/public/typeDefs/DragReflectionDropTargetTypeEnum.graphql b/packages/server/graphql/public/typeDefs/DragReflectionDropTargetTypeEnum.graphql new file mode 100644 index 00000000000..79ff6d42450 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/DragReflectionDropTargetTypeEnum.graphql @@ -0,0 +1,7 @@ +""" +The possible places a reflection can be dropped +""" +enum DragReflectionDropTargetTypeEnum { + REFLECTION_GROUP + REFLECTION_GRID +} diff --git a/packages/server/graphql/public/typeDefs/EditCommentingPayload.graphql b/packages/server/graphql/public/typeDefs/EditCommentingPayload.graphql new file mode 100644 index 00000000000..26216992d81 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/EditCommentingPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for EditCommentingPayload +""" +union EditCommentingPayload = ErrorPayload | EditCommentingSuccess diff --git a/packages/server/graphql/public/typeDefs/EditCommentingSuccess.graphql b/packages/server/graphql/public/typeDefs/EditCommentingSuccess.graphql new file mode 100644 index 00000000000..9bd8d9f8080 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/EditCommentingSuccess.graphql @@ -0,0 +1,11 @@ +type EditCommentingSuccess { + """ + The discussion the comment was created in + """ + discussionId: ID! + + """ + The discussion where the commenting state changed + """ + discussion: Discussion! +} diff --git a/packages/server/graphql/public/typeDefs/EditReflectionPayload.graphql b/packages/server/graphql/public/typeDefs/EditReflectionPayload.graphql new file mode 100644 index 00000000000..487fd043097 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/EditReflectionPayload.graphql @@ -0,0 +1,14 @@ +type EditReflectionPayload { + error: StandardMutationError + promptId: ID + + """ + The socketId of the client editing the card (uses socketId to maintain anonymity) + """ + editorId: ID + + """ + true if the reflection is being edited, else false + """ + isEditing: Boolean +} diff --git a/packages/server/graphql/public/typeDefs/EditTaskPayload.graphql b/packages/server/graphql/public/typeDefs/EditTaskPayload.graphql new file mode 100644 index 00000000000..47e376e13ec --- /dev/null +++ b/packages/server/graphql/public/typeDefs/EditTaskPayload.graphql @@ -0,0 +1,10 @@ +type EditTaskPayload { + error: StandardMutationError + task: Task + editor: User + + """ + true if the editor is editing, false if they stopped editing + """ + isEditing: Boolean +} diff --git a/packages/server/graphql/public/typeDefs/Email.graphql b/packages/server/graphql/public/typeDefs/Email.graphql new file mode 100644 index 00000000000..041fcff429e --- /dev/null +++ b/packages/server/graphql/public/typeDefs/Email.graphql @@ -0,0 +1 @@ +scalar Email diff --git a/packages/server/graphql/public/typeDefs/EmailPasswordResetPayload.graphql b/packages/server/graphql/public/typeDefs/EmailPasswordResetPayload.graphql new file mode 100644 index 00000000000..04e79563e47 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/EmailPasswordResetPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for EmailPasswordResetPayload +""" +union EmailPasswordResetPayload = ErrorPayload | EmailPasswordResetSuccess diff --git a/packages/server/graphql/public/typeDefs/EmailPasswordResetSuccess.graphql b/packages/server/graphql/public/typeDefs/EmailPasswordResetSuccess.graphql new file mode 100644 index 00000000000..0fd9886822f --- /dev/null +++ b/packages/server/graphql/public/typeDefs/EmailPasswordResetSuccess.graphql @@ -0,0 +1,6 @@ +type EmailPasswordResetSuccess { + """ + True if the email password reset was successfully sent + """ + success: Boolean +} diff --git a/packages/server/graphql/public/typeDefs/Emoji.graphql b/packages/server/graphql/public/typeDefs/Emoji.graphql new file mode 100644 index 00000000000..763a834b879 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/Emoji.graphql @@ -0,0 +1,4 @@ +type Emoji { + id: ID! + count: Int! +} diff --git a/packages/server/graphql/public/typeDefs/EndCheckInPayload.graphql b/packages/server/graphql/public/typeDefs/EndCheckInPayload.graphql new file mode 100644 index 00000000000..625fad6d9c7 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/EndCheckInPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for EndCheckInPayload +""" +union EndCheckInPayload = ErrorPayload | EndCheckInSuccess diff --git a/packages/server/graphql/public/typeDefs/EndCheckInSuccess.graphql b/packages/server/graphql/public/typeDefs/EndCheckInSuccess.graphql new file mode 100644 index 00000000000..a2f2bd1c46d --- /dev/null +++ b/packages/server/graphql/public/typeDefs/EndCheckInSuccess.graphql @@ -0,0 +1,25 @@ +type EndCheckInSuccess { + """ + true if the meeting was killed (ended before reaching last stage) + """ + isKill: Boolean! + team: Team! + meeting: ActionMeeting! + + """ + The ID of the suggestion to try a check-in meeting, if tried + """ + removedSuggestedActionId: ID + removedTaskIds: [ID!] + + """ + An event that is important to the viewer, e.g. an ended meeting + """ + timelineEvent: TimelineEvent! + updatedTaskIds: [ID!] + + """ + Any tasks that were updated during the meeting + """ + updatedTasks: [Task!] +} diff --git a/packages/server/graphql/public/typeDefs/EndDraggingReflectionPayload.graphql b/packages/server/graphql/public/typeDefs/EndDraggingReflectionPayload.graphql new file mode 100644 index 00000000000..a96cd025216 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/EndDraggingReflectionPayload.graphql @@ -0,0 +1,39 @@ +type EndDraggingReflectionPayload { + error: StandardMutationError + dragId: ID + + """ + The drag as sent from the team member + """ + remoteDrag: RemoteReflectionDrag + + """ + the type of item the reflection was dropped on + """ + dropTargetType: DragReflectionDropTargetTypeEnum + + """ + The ID that the dragged item was dropped on, if dropTargetType is not specific enough + """ + dropTargetId: ID + meeting: RetrospectiveMeeting + meetingId: ID + reflection: RetroReflection + reflectionGroupId: ID + reflectionId: ID + + """ + foreign key to get user + """ + userId: ID + + """ + The group encapsulating the new reflection. A new one was created if one was not provided. + """ + reflectionGroup: RetroReflectionGroup + + """ + The old group the reflection was in + """ + oldReflectionGroup: RetroReflectionGroup +} diff --git a/packages/server/graphql/public/typeDefs/EndRetrospectivePayload.graphql b/packages/server/graphql/public/typeDefs/EndRetrospectivePayload.graphql new file mode 100644 index 00000000000..babe57ef1c0 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/EndRetrospectivePayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for EndRetrospectivePayload +""" +union EndRetrospectivePayload = ErrorPayload | EndRetrospectiveSuccess diff --git a/packages/server/graphql/public/typeDefs/EndRetrospectiveSuccess.graphql b/packages/server/graphql/public/typeDefs/EndRetrospectiveSuccess.graphql new file mode 100644 index 00000000000..41664c001d7 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/EndRetrospectiveSuccess.graphql @@ -0,0 +1,19 @@ +type EndRetrospectiveSuccess { + """ + true if the meeting was killed (ended before reaching last stage) + """ + isKill: Boolean! + team: Team! + meeting: RetrospectiveMeeting! + + """ + The ID of the suggestion to try a retro meeting, if tried + """ + removedSuggestedActionId: ID + removedTaskIds: [ID!]! + + """ + An event that is important to the viewer, e.g. an ended meeting + """ + timelineEvent: TimelineEvent! +} diff --git a/packages/server/graphql/public/typeDefs/EndSprintPokerPayload.graphql b/packages/server/graphql/public/typeDefs/EndSprintPokerPayload.graphql new file mode 100644 index 00000000000..0aac95a275c --- /dev/null +++ b/packages/server/graphql/public/typeDefs/EndSprintPokerPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for EndSprintPokerPayload +""" +union EndSprintPokerPayload = ErrorPayload | EndSprintPokerSuccess diff --git a/packages/server/graphql/public/typeDefs/EndSprintPokerSuccess.graphql b/packages/server/graphql/public/typeDefs/EndSprintPokerSuccess.graphql new file mode 100644 index 00000000000..f5435dd99be --- /dev/null +++ b/packages/server/graphql/public/typeDefs/EndSprintPokerSuccess.graphql @@ -0,0 +1,11 @@ +type EndSprintPokerSuccess { + """ + true if the meeting was killed (ended before reaching last stage) + """ + isKill: Boolean! + meetingId: ID! + meeting: PokerMeeting! + removedTaskIds: [ID!]! + team: Team! + teamId: ID! +} diff --git a/packages/server/graphql/public/typeDefs/EndTeamPromptPayload.graphql b/packages/server/graphql/public/typeDefs/EndTeamPromptPayload.graphql new file mode 100644 index 00000000000..d9a2e8ae752 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/EndTeamPromptPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for EndTeamPromptPayload +""" +union EndTeamPromptPayload = ErrorPayload | EndTeamPromptSuccess diff --git a/packages/server/graphql/public/typeDefs/endTeamPrompt.graphql b/packages/server/graphql/public/typeDefs/EndTeamPromptSuccess.graphql similarity index 100% rename from packages/server/graphql/public/typeDefs/endTeamPrompt.graphql rename to packages/server/graphql/public/typeDefs/EndTeamPromptSuccess.graphql diff --git a/packages/server/graphql/public/typeDefs/ErrorPayload.graphql b/packages/server/graphql/public/typeDefs/ErrorPayload.graphql new file mode 100644 index 00000000000..104f4574a10 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ErrorPayload.graphql @@ -0,0 +1,3 @@ +type ErrorPayload { + error: StandardMutationError! +} diff --git a/packages/server/graphql/public/typeDefs/EstimatePhase.graphql b/packages/server/graphql/public/typeDefs/EstimatePhase.graphql new file mode 100644 index 00000000000..11b532a4373 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/EstimatePhase.graphql @@ -0,0 +1,17 @@ +""" +The meeting phase where all team members estimate a the point value of a task +""" +type EstimatePhase implements NewMeetingPhase { + """ + shortid + """ + id: ID! + meetingId: ID! + teamId: ID! + + """ + The type of phase + """ + phaseType: NewMeetingPhaseTypeEnum! + stages: [EstimateStage!]! +} diff --git a/packages/server/graphql/public/typeDefs/EstimateStage.graphql b/packages/server/graphql/public/typeDefs/EstimateStage.graphql new file mode 100644 index 00000000000..93dbf33f157 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/EstimateStage.graphql @@ -0,0 +1,160 @@ +""" +The stage where the team estimates & discusses a single task +""" +type EstimateStage implements NewMeetingStage & DiscussionThreadStage { + """ + stageId, shortid + """ + id: ID! + + """ + The datetime the stage was completed + """ + endAt: DateTime + + """ + foreign key. try using meeting + """ + meetingId: ID! + + """ + The meeting this stage belongs to + """ + meeting: NewMeeting + + """ + true if the facilitator has completed this stage, else false. Should be boolean(endAt) + """ + isComplete: Boolean! + + """ + true if any meeting participant can navigate to this stage + """ + isNavigable: Boolean! + + """ + true if the facilitator can navigate to this stage + """ + isNavigableByFacilitator: Boolean! + + """ + The phase this stage belongs to + """ + phase: NewMeetingPhase + + """ + The type of the phase + """ + phaseType: NewMeetingPhaseTypeEnum + + """ + The datetime the stage was started + """ + startAt: DateTime + + """ + Number of times the facilitator has visited this stage + """ + viewCount: Int + + """ + true if a time limit is set, false if end time is set, null if neither is set + """ + isAsync: Boolean + + """ + true if the viewer is ready to advance, else false + """ + isViewerReady: Boolean! + + """ + the number of meeting members ready to advance, excluding the facilitator + """ + readyCount: Int! + + """ + The datetime the phase is scheduled to be finished, null if no time limit or end time is set + """ + scheduledEndTime: DateTime + + """ + The suggested ending datetime for a phase to be completed async, null if not enough data to make a suggestion + """ + suggestedEndTime: DateTime + + """ + The suggested time limit for a phase to be completed together, null if not enough data to make a suggestion + """ + suggestedTimeLimit: Float + teamId: ID! + + """ + The number of milliseconds left before the scheduled end time. Useful for unsynced client clocks. null if scheduledEndTime is null + """ + timeRemaining: Float + + """ + The ID to find the discussion that goes in the stage + """ + discussionId: ID! + + """ + The discussion about the stage + """ + discussion: Discussion! + + """ + The id of the user that added this stage. + """ + creatorUserId: ID! + + """ + The ID that points to the issue that exists in parabol + """ + taskId: ID! + + """ + The field name used by the service for this dimension + """ + serviceField: ServiceField! + + """ + The immutable index of the dimensionRef tied to this stage + """ + dimensionRefIdx: Int! + + """ + The immutable dimension linked to this stage + """ + dimensionRef: TemplateDimensionRef! + + """ + the final score, as defined by the facilitator + """ + finalScore: String + + """ + the userIds of the team members hovering the deck + """ + hoveringUserIds: [ID!]! + + """ + the users of the team members hovering the deck + """ + hoveringUsers: [User!]! + + """ + all the estimates, 1 per user + """ + scores: [EstimateUserScore!]! + + """ + The task referenced in the stage, as it exists in Parabol. null if the task was deleted + """ + task: Task + + """ + true when the participants are still voting and results are hidden. false when votes are revealed + """ + isVoting: Boolean! +} diff --git a/packages/server/graphql/public/typeDefs/EstimateUserScore.graphql b/packages/server/graphql/public/typeDefs/EstimateUserScore.graphql new file mode 100644 index 00000000000..025cf528468 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/EstimateUserScore.graphql @@ -0,0 +1,29 @@ +""" +The user and number of points they estimated for dimension (where 1 stage has 1 dimension) +""" +type EstimateUserScore { + """ + shortid + """ + id: ID! + + """ + The stageId + """ + stageId: ID! + + """ + The userId that for this score + """ + userId: ID! + + """ + The user that for this score + """ + user: User! + + """ + The label that was associated with the score at the time of the vote. Note: It may no longer exist on the dimension + """ + label: String! +} diff --git a/packages/server/graphql/public/typeDefs/File.graphql b/packages/server/graphql/public/typeDefs/File.graphql new file mode 100644 index 00000000000..f43deeb39ab --- /dev/null +++ b/packages/server/graphql/public/typeDefs/File.graphql @@ -0,0 +1,4 @@ +""" +A file buffer +""" +scalar File diff --git a/packages/server/graphql/public/typeDefs/FixedActivity.graphql b/packages/server/graphql/public/typeDefs/FixedActivity.graphql new file mode 100644 index 00000000000..a5677d6fec4 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/FixedActivity.graphql @@ -0,0 +1,80 @@ +""" +An activity that does not have a customizable template, e.g. standup, check-in +""" +type FixedActivity implements MeetingTemplate { + """ + teamPrompt | action + """ + id: ID! + + """ + Date the activity was created + """ + createdAt: DateTime! + + """ + Always true + """ + isActive: Boolean! + + """ + Always true + """ + isFree: Boolean! + + """ + The time of the meeting the template was last used + """ + lastUsedAt: DateTime + + """ + The name of the template + """ + name: String! + + """ + Always aGhostOrg + """ + orgId: ID! + + """ + Always public + """ + scope: SharingScopeEnum! + + """ + Always aGhostTeam + """ + teamId: ID! + + """ + aGhostTeam + """ + team: Team! + + """ + teamPrompt | action + """ + type: MeetingTypeEnum! + updatedAt: DateTime! + + """ + The category this template falls under, e.g. retro, feedback, strategy, etc. + """ + category: String! + + """ + Whether this template should be in the recommended/quick start sections in the UI. + """ + isRecommended: Boolean! + + """ + The url to the illustration used by the template + """ + illustrationUrl: String! + + """ + The lowest scope of the permissions available to the viewer + """ + viewerLowestScope: SharingScopeEnum! +} diff --git a/packages/server/graphql/public/typeDefs/FlagReadyToAdvancePayload.graphql b/packages/server/graphql/public/typeDefs/FlagReadyToAdvancePayload.graphql new file mode 100644 index 00000000000..944038f9df5 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/FlagReadyToAdvancePayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for FlagReadyToAdvancePayload +""" +union FlagReadyToAdvancePayload = ErrorPayload | FlagReadyToAdvanceSuccess diff --git a/packages/server/graphql/public/typeDefs/FlagReadyToAdvanceSuccess.graphql b/packages/server/graphql/public/typeDefs/FlagReadyToAdvanceSuccess.graphql new file mode 100644 index 00000000000..0bae3e8d509 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/FlagReadyToAdvanceSuccess.graphql @@ -0,0 +1,11 @@ +type FlagReadyToAdvanceSuccess { + """ + the meeting with the updated readyCount + """ + meeting: NewMeeting! + + """ + the stage with the updated readyCount + """ + stage: NewMeetingStage! +} diff --git a/packages/server/graphql/public/typeDefs/GcalVideoTypeEnum.graphql b/packages/server/graphql/public/typeDefs/GcalVideoTypeEnum.graphql new file mode 100644 index 00000000000..fe150ad5a6d --- /dev/null +++ b/packages/server/graphql/public/typeDefs/GcalVideoTypeEnum.graphql @@ -0,0 +1,7 @@ +""" +The type of video conferencing used in the gcal event +""" +enum GcalVideoTypeEnum { + meet + zoom +} diff --git a/packages/server/graphql/public/typeDefs/GenericMeetingPhase.graphql b/packages/server/graphql/public/typeDefs/GenericMeetingPhase.graphql new file mode 100644 index 00000000000..7c2ee918d70 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/GenericMeetingPhase.graphql @@ -0,0 +1,17 @@ +""" +An all-purpose meeting phase with no extra state +""" +type GenericMeetingPhase implements NewMeetingPhase { + """ + shortid + """ + id: ID! + meetingId: ID! + teamId: ID! + + """ + The type of phase + """ + phaseType: NewMeetingPhaseTypeEnum! + stages: [GenericMeetingStage!]! +} diff --git a/packages/server/graphql/public/typeDefs/GenericMeetingStage.graphql b/packages/server/graphql/public/typeDefs/GenericMeetingStage.graphql new file mode 100644 index 00000000000..ed56b2d700d --- /dev/null +++ b/packages/server/graphql/public/typeDefs/GenericMeetingStage.graphql @@ -0,0 +1,95 @@ +""" +A stage of a meeting that has no extra state. Only used for single-stage phases +""" +type GenericMeetingStage implements NewMeetingStage { + """ + stageId, shortid + """ + id: ID! + + """ + The datetime the stage was completed + """ + endAt: DateTime + + """ + foreign key. try using meeting + """ + meetingId: ID! + + """ + The meeting this stage belongs to + """ + meeting: NewMeeting + + """ + true if the facilitator has completed this stage, else false. Should be boolean(endAt) + """ + isComplete: Boolean! + + """ + true if any meeting participant can navigate to this stage + """ + isNavigable: Boolean! + + """ + true if the facilitator can navigate to this stage + """ + isNavigableByFacilitator: Boolean! + + """ + The phase this stage belongs to + """ + phase: NewMeetingPhase + + """ + The type of the phase + """ + phaseType: NewMeetingPhaseTypeEnum + + """ + The datetime the stage was started + """ + startAt: DateTime + + """ + Number of times the facilitator has visited this stage + """ + viewCount: Int + + """ + true if a time limit is set, false if end time is set, null if neither is set + """ + isAsync: Boolean + + """ + true if the viewer is ready to advance, else false + """ + isViewerReady: Boolean! + + """ + the number of meeting members ready to advance, excluding the facilitator + """ + readyCount: Int! + + """ + The datetime the phase is scheduled to be finished, null if no time limit or end time is set + """ + scheduledEndTime: DateTime + + """ + The suggested ending datetime for a phase to be completed async, null if not enough data to make a suggestion + """ + suggestedEndTime: DateTime + + """ + The suggested time limit for a phase to be completed together, null if not enough data to make a suggestion + """ + suggestedTimeLimit: Float + teamId: ID! + + """ + The number of milliseconds left before the scheduled end time. Useful for unsynced client clocks. null if scheduledEndTime is null + """ + timeRemaining: Float +} diff --git a/packages/server/graphql/public/typeDefs/GetDemoEntitiesPayload.graphql b/packages/server/graphql/public/typeDefs/GetDemoEntitiesPayload.graphql new file mode 100644 index 00000000000..e9289594dc4 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/GetDemoEntitiesPayload.graphql @@ -0,0 +1,4 @@ +type GetDemoEntitiesPayload { + error: StandardMutationError + entities: [GoogleAnalyzedEntity!] +} diff --git a/packages/server/graphql/public/typeDefs/GetTemplateSuggestionPayload.graphql b/packages/server/graphql/public/typeDefs/GetTemplateSuggestionPayload.graphql new file mode 100644 index 00000000000..14ea93c2e95 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/GetTemplateSuggestionPayload.graphql @@ -0,0 +1,4 @@ +""" +Return value for getTemplateSuggestion, which could be an error +""" +union GetTemplateSuggestionPayload = ErrorPayload | GetTemplateSuggestionSuccess diff --git a/packages/server/graphql/public/typeDefs/GetTemplateSuggestionSuccess.graphql b/packages/server/graphql/public/typeDefs/GetTemplateSuggestionSuccess.graphql new file mode 100644 index 00000000000..ecb9431570f --- /dev/null +++ b/packages/server/graphql/public/typeDefs/GetTemplateSuggestionSuccess.graphql @@ -0,0 +1,11 @@ +type GetTemplateSuggestionSuccess { + """ + The template the AI suggested + """ + suggestedTemplate: MeetingTemplate! + + """ + The explanation from the AI + """ + explanation: String! +} diff --git a/packages/server/graphql/public/typeDefs/GitLabIntegration.graphql b/packages/server/graphql/public/typeDefs/GitLabIntegration.graphql index 6308f2a967a..e5b592e42bb 100644 --- a/packages/server/graphql/public/typeDefs/GitLabIntegration.graphql +++ b/packages/server/graphql/public/typeDefs/GitLabIntegration.graphql @@ -51,34 +51,3 @@ type GitLabIntegration { state: String! ): GitLabIntegrationConnection! } - -""" -A connection to a list of items. -""" -type GitLabIntegrationConnection { - """ - Information to aid in pagination. - """ - pageInfo: PageInfo! - - """ - A list of edges. - """ - edges: [GitLabIntegrationEdge!]! - - """ - An error with the connection, if any - """ - error: StandardMutationError -} - -""" -An edge in a connection. -""" -type GitLabIntegrationEdge { - """ - The item at the end of the edge - """ - node: TaskIntegration! - cursor: String -} diff --git a/packages/server/graphql/public/typeDefs/GitLabIntegrationConnection.graphql b/packages/server/graphql/public/typeDefs/GitLabIntegrationConnection.graphql new file mode 100644 index 00000000000..c6bed6ef0c4 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/GitLabIntegrationConnection.graphql @@ -0,0 +1,19 @@ +""" +A connection to a list of items. +""" +type GitLabIntegrationConnection { + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + A list of edges. + """ + edges: [GitLabIntegrationEdge!]! + + """ + An error with the connection, if any + """ + error: StandardMutationError +} diff --git a/packages/server/graphql/public/typeDefs/GitLabIntegrationEdge.graphql b/packages/server/graphql/public/typeDefs/GitLabIntegrationEdge.graphql new file mode 100644 index 00000000000..4e350189785 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/GitLabIntegrationEdge.graphql @@ -0,0 +1,10 @@ +""" +An edge in a connection. +""" +type GitLabIntegrationEdge { + """ + The item at the end of the edge + """ + node: TaskIntegration! + cursor: String +} diff --git a/packages/server/graphql/public/typeDefs/GoogleAnalyzedEntity.graphql b/packages/server/graphql/public/typeDefs/GoogleAnalyzedEntity.graphql new file mode 100644 index 00000000000..eca94b86e1b --- /dev/null +++ b/packages/server/graphql/public/typeDefs/GoogleAnalyzedEntity.graphql @@ -0,0 +1,16 @@ +type GoogleAnalyzedEntity { + """ + The lemma (dictionary entry) of the entity name. Fancy way of saying the singular form of the name, if plural. + """ + lemma: String! + + """ + The name of the entity. Usually 1 or 2 words. Always a noun, sometimes a proper noun. + """ + name: String! + + """ + The salience of the entity in the provided text. The salience of all entities always sums to 1 + """ + salience: Float! +} diff --git a/packages/server/graphql/public/typeDefs/GroupPhaseCompletePayload.graphql b/packages/server/graphql/public/typeDefs/GroupPhaseCompletePayload.graphql new file mode 100644 index 00000000000..312806a91aa --- /dev/null +++ b/packages/server/graphql/public/typeDefs/GroupPhaseCompletePayload.graphql @@ -0,0 +1,16 @@ +type GroupPhaseCompletePayload { + """ + a list of empty reflection groups to remove + """ + emptyReflectionGroupIds: [ID!]! + + """ + the current meeting + """ + meeting: RetrospectiveMeeting! + + """ + a list of updated reflection groups + """ + reflectionGroups: [RetroReflectionGroup] +} diff --git a/packages/server/graphql/public/typeDefs/InactivateUserPayload.graphql b/packages/server/graphql/public/typeDefs/InactivateUserPayload.graphql new file mode 100644 index 00000000000..2bf0d26efaf --- /dev/null +++ b/packages/server/graphql/public/typeDefs/InactivateUserPayload.graphql @@ -0,0 +1,8 @@ +type InactivateUserPayload { + error: StandardMutationError + + """ + The user that has been inactivated + """ + user: User +} diff --git a/packages/server/graphql/public/typeDefs/IntegrationProvider.graphql b/packages/server/graphql/public/typeDefs/IntegrationProvider.graphql new file mode 100644 index 00000000000..bf21d34eeed --- /dev/null +++ b/packages/server/graphql/public/typeDefs/IntegrationProvider.graphql @@ -0,0 +1,44 @@ +""" +An authentication provider configuration +""" +interface IntegrationProvider { + """ + The provider's unique identifier + """ + id: ID! + + """ + The team that created the provider. "aGhostTeam" if global + """ + teamId: ID! + + """ + The timestamp the provider was created + """ + createdAt: DateTime! + + """ + The timestamp the token was updated at + """ + updatedAt: DateTime! + + """ + The name of the integration service (GitLab, Mattermost, etc) + """ + service: IntegrationProviderServiceEnum! + + """ + The kind of token used by this provider (OAuth2, PAT, Webhook) + """ + authStrategy: IntegrationProviderAuthStrategyEnum! + + """ + The scope this provider configuration was created at (globally, org-wide, or by the team) + """ + scope: IntegrationProviderScopeEnum! + + """ + true if the provider configuration should be used + """ + isActive: Boolean! +} diff --git a/packages/server/graphql/public/typeDefs/IntegrationProviderAuthStrategyEnum.graphql b/packages/server/graphql/public/typeDefs/IntegrationProviderAuthStrategyEnum.graphql new file mode 100644 index 00000000000..aa45386bd63 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/IntegrationProviderAuthStrategyEnum.graphql @@ -0,0 +1,9 @@ +""" +The kind of token provided by the service +""" +enum IntegrationProviderAuthStrategyEnum { + oauth1 + oauth2 + pat + webhook +} diff --git a/packages/server/graphql/public/typeDefs/IntegrationProviderEditableScopeEnum.graphql b/packages/server/graphql/public/typeDefs/IntegrationProviderEditableScopeEnum.graphql new file mode 100644 index 00000000000..cfd0e96994d --- /dev/null +++ b/packages/server/graphql/public/typeDefs/IntegrationProviderEditableScopeEnum.graphql @@ -0,0 +1,8 @@ +""" +The scope this provider was created on by a user (excluding global scope) +""" +enum IntegrationProviderEditableScopeEnum { + org + team + global +} diff --git a/packages/server/graphql/public/typeDefs/IntegrationProviderMetadataInputOAuth1.graphql b/packages/server/graphql/public/typeDefs/IntegrationProviderMetadataInputOAuth1.graphql new file mode 100644 index 00000000000..84ee5e10ccd --- /dev/null +++ b/packages/server/graphql/public/typeDefs/IntegrationProviderMetadataInputOAuth1.graphql @@ -0,0 +1,19 @@ +""" +OAuth1 provider metadata +""" +input IntegrationProviderMetadataInputOAuth1 { + """ + The base URL used to access the provider + """ + serverBaseUrl: URL! + + """ + The client key to give to the provider + """ + consumerKey: ID! + + """ + Secret or Private key of the generate private/public key pair + """ + consumerSecret: String! +} diff --git a/packages/server/graphql/public/typeDefs/IntegrationProviderMetadataInputOAuth2.graphql b/packages/server/graphql/public/typeDefs/IntegrationProviderMetadataInputOAuth2.graphql new file mode 100644 index 00000000000..883a150c01e --- /dev/null +++ b/packages/server/graphql/public/typeDefs/IntegrationProviderMetadataInputOAuth2.graphql @@ -0,0 +1,24 @@ +""" +OAuth2 provider metadata +""" +input IntegrationProviderMetadataInputOAuth2 { + """ + The base URL used to access the provider + """ + serverBaseUrl: URL! + + """ + The client id to give to the provider + """ + clientId: String! + + """ + The client id to give to the provider + """ + clientSecret: String! + + """ + The tenant id to give to the provider + """ + tenantId: String! +} diff --git a/packages/server/graphql/public/typeDefs/IntegrationProviderMetadataInputWebhook.graphql b/packages/server/graphql/public/typeDefs/IntegrationProviderMetadataInputWebhook.graphql new file mode 100644 index 00000000000..2a7bd81c3e0 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/IntegrationProviderMetadataInputWebhook.graphql @@ -0,0 +1,9 @@ +""" +Webhook provider metadata +""" +input IntegrationProviderMetadataInputWebhook { + """ + Webhook URL to be used by the provider + """ + webhookUrl: URL! +} diff --git a/packages/server/graphql/public/typeDefs/IntegrationProviderOAuth1.graphql b/packages/server/graphql/public/typeDefs/IntegrationProviderOAuth1.graphql new file mode 100644 index 00000000000..ca655217703 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/IntegrationProviderOAuth1.graphql @@ -0,0 +1,49 @@ +""" +An integration provider that connects via OAuth1.0 +""" +type IntegrationProviderOAuth1 implements IntegrationProvider { + """ + The provider's unique identifier + """ + id: ID! + + """ + The team that created the provider. "aGhostTeam" if global + """ + teamId: ID! + + """ + The timestamp the provider was created + """ + createdAt: DateTime! + + """ + The timestamp the token was updated at + """ + updatedAt: DateTime! + + """ + The name of the integration service (GitLab, Mattermost, etc) + """ + service: IntegrationProviderServiceEnum! + + """ + The kind of token used by this provider (OAuth2, PAT, Webhook) + """ + authStrategy: IntegrationProviderAuthStrategyEnum! + + """ + The scope this provider configuration was created at (globally, org-wide, or by the team) + """ + scope: IntegrationProviderScopeEnum! + + """ + true if the provider configuration should be used + """ + isActive: Boolean! + + """ + The base URL of the OAuth1 server + """ + serverBaseUrl: URL! +} diff --git a/packages/server/graphql/public/typeDefs/IntegrationProviderOAuth2.graphql b/packages/server/graphql/public/typeDefs/IntegrationProviderOAuth2.graphql new file mode 100644 index 00000000000..04dc844dfc8 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/IntegrationProviderOAuth2.graphql @@ -0,0 +1,59 @@ +""" +An integration provider that connects via OAuth2 +""" +type IntegrationProviderOAuth2 implements IntegrationProvider { + """ + The provider's unique identifier + """ + id: ID! + + """ + The team that created the provider. "aGhostTeam" if global + """ + teamId: ID! + + """ + The timestamp the provider was created + """ + createdAt: DateTime! + + """ + The timestamp the token was updated at + """ + updatedAt: DateTime! + + """ + The name of the integration service (GitLab, Mattermost, etc) + """ + service: IntegrationProviderServiceEnum! + + """ + The kind of token used by this provider (OAuth2, PAT, Webhook) + """ + authStrategy: IntegrationProviderAuthStrategyEnum! + + """ + The scope this provider configuration was created at (globally, org-wide, or by the team) + """ + scope: IntegrationProviderScopeEnum! + + """ + true if the provider configuration should be used + """ + isActive: Boolean! + + """ + The base URL of the OAuth2 server + """ + serverBaseUrl: URL! + + """ + The OAuth2 client id + """ + clientId: ID! + + """ + The tenant ID for Azure Active Directory Auth + """ + tenantId: ID +} diff --git a/packages/server/graphql/public/typeDefs/IntegrationProviderScopeEnum.graphql b/packages/server/graphql/public/typeDefs/IntegrationProviderScopeEnum.graphql new file mode 100644 index 00000000000..53328a8b2ce --- /dev/null +++ b/packages/server/graphql/public/typeDefs/IntegrationProviderScopeEnum.graphql @@ -0,0 +1,8 @@ +""" +The scope this provider was created on (globally, org-wide, or on the team) +""" +enum IntegrationProviderScopeEnum { + global + org + team +} diff --git a/packages/server/graphql/public/typeDefs/IntegrationProviderServiceEnum.graphql b/packages/server/graphql/public/typeDefs/IntegrationProviderServiceEnum.graphql new file mode 100644 index 00000000000..2711a56fc5b --- /dev/null +++ b/packages/server/graphql/public/typeDefs/IntegrationProviderServiceEnum.graphql @@ -0,0 +1,13 @@ +""" +The name of the service of the Integration Provider +""" +enum IntegrationProviderServiceEnum { + jira + github + gitlab + mattermost + jiraServer + gcal + azureDevOps + msTeams +} diff --git a/packages/server/graphql/public/typeDefs/IntegrationProviderWebhook.graphql b/packages/server/graphql/public/typeDefs/IntegrationProviderWebhook.graphql new file mode 100644 index 00000000000..932c3987b0c --- /dev/null +++ b/packages/server/graphql/public/typeDefs/IntegrationProviderWebhook.graphql @@ -0,0 +1,49 @@ +""" +An integration provider that connects via webhook +""" +type IntegrationProviderWebhook implements IntegrationProvider { + """ + The provider's unique identifier + """ + id: ID! + + """ + The team that created the provider. "aGhostTeam" if global + """ + teamId: ID! + + """ + The timestamp the provider was created + """ + createdAt: DateTime! + + """ + The timestamp the token was updated at + """ + updatedAt: DateTime! + + """ + The name of the integration service (GitLab, Mattermost, etc) + """ + service: IntegrationProviderServiceEnum! + + """ + The kind of token used by this provider (OAuth2, PAT, Webhook) + """ + authStrategy: IntegrationProviderAuthStrategyEnum! + + """ + The scope this provider configuration was created at (globally, org-wide, or by the team) + """ + scope: IntegrationProviderScopeEnum! + + """ + true if the provider configuration should be used + """ + isActive: Boolean! + + """ + The webhook URL + """ + webhookUrl: URL! +} diff --git a/packages/server/graphql/public/typeDefs/InvalidateSessionsPayload.graphql b/packages/server/graphql/public/typeDefs/InvalidateSessionsPayload.graphql new file mode 100644 index 00000000000..8b8dc8d330d --- /dev/null +++ b/packages/server/graphql/public/typeDefs/InvalidateSessionsPayload.graphql @@ -0,0 +1,8 @@ +type InvalidateSessionsPayload { + error: StandardMutationError + + """ + The new, only valid auth token + """ + authToken: ID +} diff --git a/packages/server/graphql/public/typeDefs/InviteToTeamPayload.graphql b/packages/server/graphql/public/typeDefs/InviteToTeamPayload.graphql new file mode 100644 index 00000000000..b9dc3473e0f --- /dev/null +++ b/packages/server/graphql/public/typeDefs/InviteToTeamPayload.graphql @@ -0,0 +1,28 @@ +type InviteToTeamPayload { + error: StandardMutationError + + """ + The team the inviter is inviting the invitee to + """ + team: Team + + """ + A list of email addresses the invitations were sent to + """ + invitees: [Email!] + + """ + the notification ID if this payload is sent to a subscriber, else null + """ + teamInvitationNotificationId: ID + + """ + The notification sent to the invitee if they are a parabol user + """ + teamInvitationNotification: NotificationTeamInvitation + + """ + the `invite your team` suggested action that was removed, if any + """ + removedSuggestedActionId: ID +} diff --git a/packages/server/graphql/public/typeDefs/Invoice.graphql b/packages/server/graphql/public/typeDefs/Invoice.graphql new file mode 100644 index 00000000000..9d046fffc4d --- /dev/null +++ b/packages/server/graphql/public/typeDefs/Invoice.graphql @@ -0,0 +1,104 @@ +""" +A monthly billing invoice for an organization +""" +type Invoice { + """ + A shortid for the invoice + """ + id: ID! + + """ + The tier this invoice pays for + """ + tier: TierEnum! + + """ + The amount the card will be charged (total + startingBalance with a min value of 0) + """ + amountDue: Float! + + """ + The datetime the invoice was first generated + """ + createdAt: DateTime! + + """ + The discount coupon information from Stripe, if any discount applied + """ + coupon: Coupon + + """ + The total amount for the invoice (in USD) + """ + total: Float! + + """ + The emails the invoice was sent to + """ + billingLeaderEmails: [Email!]! + + """ + the card used to pay the invoice + """ + creditCard: CreditCard + + """ + The timestamp for the end of the billing cycle + """ + endAt: DateTime! + + """ + The date the invoice was created + """ + invoiceDate: DateTime! + + """ + An invoice line item for previous month adjustments + """ + lines: [InvoiceLineItem!]! + + """ + The details that comprise the charges for next month + """ + nextPeriodCharges: NextPeriodCharges! + + """ + *The organization id to charge + """ + orgId: ID! + + """ + The persisted name of the org as it was when invoiced + """ + orgName: String! + + """ + the datetime the invoice was successfully paid + """ + paidAt: DateTime + + """ + The URL to pay via stripe if payment was not collected in app + """ + payUrl: String + + """ + The picture of the organization + """ + picture: URL + + """ + The timestamp for the beginning of the billing cycle + """ + startAt: DateTime! + + """ + The balance on the customer account (in cents) + """ + startingBalance: Float! + + """ + the status of the invoice. starts as pending, moves to paid or unpaid depending on if the payment succeeded + """ + status: InvoiceStatusEnum! +} diff --git a/packages/server/graphql/public/typeDefs/InvoiceConnection.graphql b/packages/server/graphql/public/typeDefs/InvoiceConnection.graphql new file mode 100644 index 00000000000..7d9da62cc54 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/InvoiceConnection.graphql @@ -0,0 +1,14 @@ +""" +A connection to a list of items. +""" +type InvoiceConnection { + """ + Page info with cursors coerced to ISO8601 dates + """ + pageInfo: PageInfoDateCursor + + """ + A list of edges. + """ + edges: [InvoiceEdge!]! +} diff --git a/packages/server/graphql/public/typeDefs/InvoiceEdge.graphql b/packages/server/graphql/public/typeDefs/InvoiceEdge.graphql new file mode 100644 index 00000000000..b09b8ae5186 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/InvoiceEdge.graphql @@ -0,0 +1,10 @@ +""" +An edge in a connection. +""" +type InvoiceEdge { + """ + The item at the end of the edge + """ + node: Invoice! + cursor: DateTime +} diff --git a/packages/server/graphql/public/typeDefs/InvoiceLineItem.graphql b/packages/server/graphql/public/typeDefs/InvoiceLineItem.graphql new file mode 100644 index 00000000000..c8b84bbed0c --- /dev/null +++ b/packages/server/graphql/public/typeDefs/InvoiceLineItem.graphql @@ -0,0 +1,34 @@ +""" +A single line item charge on the invoice +""" +type InvoiceLineItem { + """ + The unique line item id + """ + id: ID! + + """ + The amount for the line item (in USD) + """ + amount: Float! + + """ + A description of the charge. Only present if we have no idea what the charge is + """ + description: String + + """ + Array of user activity line items that roll up to total activity (add/leave/pause/unpause) + """ + details: [InvoiceLineItemDetails!]! + + """ + The total number of days that all org users have been inactive during the billing cycle + """ + quantity: Int + + """ + The line item type for a monthly billing invoice + """ + type: InvoiceLineItemEnum! +} diff --git a/packages/server/graphql/public/typeDefs/InvoiceLineItemDetails.graphql b/packages/server/graphql/public/typeDefs/InvoiceLineItemDetails.graphql new file mode 100644 index 00000000000..4dea9f99a7d --- /dev/null +++ b/packages/server/graphql/public/typeDefs/InvoiceLineItemDetails.graphql @@ -0,0 +1,34 @@ +""" +The per-user-action line item details, +""" +type InvoiceLineItemDetails { + """ + The unique detailed line item id + """ + id: ID! + + """ + The amount for the line item (in USD) + """ + amount: Float! + + """ + The email affected by this line item change + """ + email: Email! + + """ + End of the event. Only present if a pause action gets matched up with an unpause action + """ + endAt: DateTime + + """ + The parent line item id + """ + parentId: ID! + + """ + The timestamp for the beginning of the period of no charge + """ + startAt: DateTime +} diff --git a/packages/server/graphql/public/typeDefs/InvoiceLineItemEnum.graphql b/packages/server/graphql/public/typeDefs/InvoiceLineItemEnum.graphql new file mode 100644 index 00000000000..70402ffab9e --- /dev/null +++ b/packages/server/graphql/public/typeDefs/InvoiceLineItemEnum.graphql @@ -0,0 +1,9 @@ +""" +A big picture line item +""" +enum InvoiceLineItemEnum { + ADDED_USERS + INACTIVITY_ADJUSTMENTS + OTHER_ADJUSTMENTS + REMOVED_USERS +} diff --git a/packages/server/graphql/public/typeDefs/InvoiceStatusEnum.graphql b/packages/server/graphql/public/typeDefs/InvoiceStatusEnum.graphql new file mode 100644 index 00000000000..362eebf472f --- /dev/null +++ b/packages/server/graphql/public/typeDefs/InvoiceStatusEnum.graphql @@ -0,0 +1,9 @@ +""" +The payment status of the invoice +""" +enum InvoiceStatusEnum { + PENDING + PAID + FAILED + UPCOMING +} diff --git a/packages/server/graphql/public/typeDefs/JiraDimensionField.graphql b/packages/server/graphql/public/typeDefs/JiraDimensionField.graphql new file mode 100644 index 00000000000..0f17ff90b0a --- /dev/null +++ b/packages/server/graphql/public/typeDefs/JiraDimensionField.graphql @@ -0,0 +1,41 @@ +""" +Poker dimensions mapped to their corresponding fields in jira +""" +type JiraDimensionField { + id: ID! + + """ + The atlassian cloud that the field lives in + """ + cloudId: ID! + + """ + The name of the associated dimension + """ + dimensionName: String! + + """ + The project under the atlassian cloud the field lives in + """ + projectKey: ID! + + """ + Type id of the issue + """ + issueType: ID! + + """ + The ID referring to the field name + """ + fieldId: ID! + + """ + The field name in jira that the estimate is pushed to + """ + fieldName: String! + + """ + the type of field, e.g. number, string, any + """ + fieldType: String! +} diff --git a/packages/server/graphql/public/typeDefs/JiraIssue.graphql b/packages/server/graphql/public/typeDefs/JiraIssue.graphql index 5b364a1ba4c..c5a281c3def 100644 --- a/packages/server/graphql/public/typeDefs/JiraIssue.graphql +++ b/packages/server/graphql/public/typeDefs/JiraIssue.graphql @@ -1,23 +1,3 @@ -enum JiraIssueMissingEstimationFieldHintEnum { - teamManagedStoryPoints - companyManagedStoryPoints -} - -""" -Possible voting field -""" -type JiraIssueField { - """ - ID of the field in Jira - """ - fieldId: ID! - - """ - Name of the field - """ - fieldName: String! -} - """ The Jira Issue that comes direct from Jira """ @@ -107,34 +87,3 @@ type JiraIssue implements TaskIntegration { """ lastUpdated: DateTime! } - -""" -A connection to a list of items. -""" -type JiraIssueConnection { - """ - Page info with cursors - """ - pageInfo: PageInfo - - """ - A list of edges. - """ - edges: [JiraIssueEdge!]! - - """ - An error with the connection, if any - """ - error: StandardMutationError -} - -""" -An edge in a connection. -""" -type JiraIssueEdge { - """ - The item at the end of the edge - """ - node: JiraIssue! - cursor: String -} diff --git a/packages/server/graphql/public/typeDefs/JiraIssueConnection.graphql b/packages/server/graphql/public/typeDefs/JiraIssueConnection.graphql new file mode 100644 index 00000000000..b7db3f14acf --- /dev/null +++ b/packages/server/graphql/public/typeDefs/JiraIssueConnection.graphql @@ -0,0 +1,19 @@ +""" +A connection to a list of items. +""" +type JiraIssueConnection { + """ + Page info with cursors + """ + pageInfo: PageInfo + + """ + A list of edges. + """ + edges: [JiraIssueEdge!]! + + """ + An error with the connection, if any + """ + error: StandardMutationError +} diff --git a/packages/server/graphql/public/typeDefs/JiraIssueEdge.graphql b/packages/server/graphql/public/typeDefs/JiraIssueEdge.graphql new file mode 100644 index 00000000000..3fb602838ef --- /dev/null +++ b/packages/server/graphql/public/typeDefs/JiraIssueEdge.graphql @@ -0,0 +1,10 @@ +""" +An edge in a connection. +""" +type JiraIssueEdge { + """ + The item at the end of the edge + """ + node: JiraIssue! + cursor: String +} diff --git a/packages/server/graphql/public/typeDefs/JiraIssueField.graphql b/packages/server/graphql/public/typeDefs/JiraIssueField.graphql new file mode 100644 index 00000000000..012f7b14f58 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/JiraIssueField.graphql @@ -0,0 +1,14 @@ +""" +Possible voting field +""" +type JiraIssueField { + """ + ID of the field in Jira + """ + fieldId: ID! + + """ + Name of the field + """ + fieldName: String! +} diff --git a/packages/server/graphql/public/typeDefs/JiraIssueMissingEstimationFieldHintEnum.graphql b/packages/server/graphql/public/typeDefs/JiraIssueMissingEstimationFieldHintEnum.graphql new file mode 100644 index 00000000000..4e6862fb5fc --- /dev/null +++ b/packages/server/graphql/public/typeDefs/JiraIssueMissingEstimationFieldHintEnum.graphql @@ -0,0 +1,4 @@ +enum JiraIssueMissingEstimationFieldHintEnum { + teamManagedStoryPoints + companyManagedStoryPoints +} diff --git a/packages/server/graphql/public/typeDefs/JiraRemoteAvatarUrls.graphql b/packages/server/graphql/public/typeDefs/JiraRemoteAvatarUrls.graphql new file mode 100644 index 00000000000..a2e7eaace38 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/JiraRemoteAvatarUrls.graphql @@ -0,0 +1,9 @@ +""" +The URLs for avatars. NOTE: If they are custom, an Authorization header is required! +""" +type JiraRemoteAvatarUrls { + x48: ID! + x24: ID! + x16: ID! + x32: ID! +} diff --git a/packages/server/graphql/public/typeDefs/JiraRemoteProjectCategory.graphql b/packages/server/graphql/public/typeDefs/JiraRemoteProjectCategory.graphql new file mode 100644 index 00000000000..7fda09b7eaf --- /dev/null +++ b/packages/server/graphql/public/typeDefs/JiraRemoteProjectCategory.graphql @@ -0,0 +1,9 @@ +""" +A project category fetched from a JiraRemoteProject +""" +type JiraRemoteProjectCategory { + self: String! + id: String! + name: String! + description: String! +} diff --git a/packages/server/graphql/public/typeDefs/JiraSearchQueryInput.graphql b/packages/server/graphql/public/typeDefs/JiraSearchQueryInput.graphql new file mode 100644 index 00000000000..dd0261cdf3a --- /dev/null +++ b/packages/server/graphql/public/typeDefs/JiraSearchQueryInput.graphql @@ -0,0 +1,21 @@ +input JiraSearchQueryInput { + """ + The query string, either simple or JQL depending on the isJQL flag + """ + queryString: String! + + """ + true if the queryString is JQL, else false + """ + isJQL: Boolean! + + """ + The list of project keys selected as a filter. null if not set + """ + projectKeyFilters: [ID!] + + """ + true if this query should be deleted + """ + isRemove: Boolean +} diff --git a/packages/server/graphql/public/typeDefs/JiraServerIssue.graphql b/packages/server/graphql/public/typeDefs/JiraServerIssue.graphql index 38ca5e9c7a1..32cdb31c420 100644 --- a/packages/server/graphql/public/typeDefs/JiraServerIssue.graphql +++ b/packages/server/graphql/public/typeDefs/JiraServerIssue.graphql @@ -1,59 +1,3 @@ -""" -A connection to a list of items. -""" -type JiraServerIssueConnection { - """ - Information to aid in pagination. - """ - pageInfo: PageInfo! - - """ - A list of edges. - """ - edges: [JiraServerIssueEdge!]! - - """ - An error with the connection, if any - """ - error: StandardMutationError -} - -""" -Information about pagination in a connection. -""" -type PageInfo { - """ - When paginating forwards, are there more items? - """ - hasNextPage: Boolean! - - """ - When paginating backwards, are there more items? - """ - hasPreviousPage: Boolean! - - """ - When paginating backwards, the cursor to continue. - """ - startCursor: String - - """ - When paginating forwards, the cursor to continue. - """ - endCursor: String -} - -""" -An edge in a connection. -""" -type JiraServerIssueEdge { - """ - The item at the end of the edge - """ - node: JiraServerIssue! - cursor: String -} - """ The Jira Issue that comes direct from Jira Server """ diff --git a/packages/server/graphql/public/typeDefs/JiraServerIssueConnection.graphql b/packages/server/graphql/public/typeDefs/JiraServerIssueConnection.graphql new file mode 100644 index 00000000000..61381a559f5 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/JiraServerIssueConnection.graphql @@ -0,0 +1,19 @@ +""" +A connection to a list of items. +""" +type JiraServerIssueConnection { + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + A list of edges. + """ + edges: [JiraServerIssueEdge!]! + + """ + An error with the connection, if any + """ + error: StandardMutationError +} diff --git a/packages/server/graphql/public/typeDefs/JiraServerIssueEdge.graphql b/packages/server/graphql/public/typeDefs/JiraServerIssueEdge.graphql new file mode 100644 index 00000000000..a3ece819bcc --- /dev/null +++ b/packages/server/graphql/public/typeDefs/JiraServerIssueEdge.graphql @@ -0,0 +1,10 @@ +""" +An edge in a connection. +""" +type JiraServerIssueEdge { + """ + The item at the end of the edge + """ + node: JiraServerIssue! + cursor: String +} diff --git a/packages/server/graphql/public/typeDefs/JiraServerSearchQueryInput.graphql b/packages/server/graphql/public/typeDefs/JiraServerSearchQueryInput.graphql new file mode 100644 index 00000000000..9a6467e7416 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/JiraServerSearchQueryInput.graphql @@ -0,0 +1,5 @@ +input JiraServerSearchQueryInput { + queryString: String! + isJQL: Boolean! + projectKeyFilters: [ID!]! +} diff --git a/packages/server/graphql/public/typeDefs/JoinMeetingPayload.graphql b/packages/server/graphql/public/typeDefs/JoinMeetingPayload.graphql new file mode 100644 index 00000000000..2d2c1e109e5 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/JoinMeetingPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for JoinMeetingPayload +""" +union JoinMeetingPayload = ErrorPayload | JoinMeetingSuccess diff --git a/packages/server/graphql/public/typeDefs/JoinMeetingSuccess.graphql b/packages/server/graphql/public/typeDefs/JoinMeetingSuccess.graphql new file mode 100644 index 00000000000..4204facb9d5 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/JoinMeetingSuccess.graphql @@ -0,0 +1,8 @@ +type JoinMeetingSuccess { + meetingId: ID! + + """ + The meeting with the updated stages, if any + """ + meeting: NewMeeting! +} diff --git a/packages/server/graphql/public/typeDefs/MassInvitation.graphql b/packages/server/graphql/public/typeDefs/MassInvitation.graphql new file mode 100644 index 00000000000..1a0d810c304 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/MassInvitation.graphql @@ -0,0 +1,15 @@ +""" +An invitation and expiration +""" +type MassInvitation { + """ + the invitation token + """ + id: ID! + + """ + the expiration for the token + """ + expiration: DateTime! + meetingId: ID +} diff --git a/packages/server/graphql/public/typeDefs/MassInvitationPayload.graphql b/packages/server/graphql/public/typeDefs/MassInvitationPayload.graphql new file mode 100644 index 00000000000..5e78953d3e0 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/MassInvitationPayload.graphql @@ -0,0 +1,18 @@ +type MassInvitationPayload { + errorType: TeamInvitationErrorEnum + + """ + The name of the person that sent the invitation, present if errorType is expired + """ + inviterName: String + + """ + The teamId from the token + """ + teamId: ID + + """ + name of the inviting team, present if invitation exists + """ + teamName: String +} diff --git a/packages/server/graphql/public/typeDefs/MeetingEngagement.graphql b/packages/server/graphql/public/typeDefs/MeetingEngagement.graphql new file mode 100644 index 00000000000..2af4130fb5d --- /dev/null +++ b/packages/server/graphql/public/typeDefs/MeetingEngagement.graphql @@ -0,0 +1,6 @@ +type MeetingEngagement { + """ + Engagement across retros, poker and standups + """ + all: Float! +} diff --git a/packages/server/graphql/public/typeDefs/MeetingGreeting.graphql b/packages/server/graphql/public/typeDefs/MeetingGreeting.graphql new file mode 100644 index 00000000000..251b6553336 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/MeetingGreeting.graphql @@ -0,0 +1,11 @@ +type MeetingGreeting { + """ + The foreign-language greeting + """ + content: String! + + """ + The source language for the greeting + """ + language: String! +} diff --git a/packages/server/graphql/public/typeDefs/MeetingMember.graphql b/packages/server/graphql/public/typeDefs/MeetingMember.graphql new file mode 100644 index 00000000000..c24aabe0921 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/MeetingMember.graphql @@ -0,0 +1,28 @@ +""" +All the user details for a specific meeting +""" +interface MeetingMember { + """ + A composite of userId::meetingId + """ + id: ID! + + """ + true if present, false if absent, else null + """ + isCheckedIn: Boolean + @deprecated( + reason: "Members are checked in when they enter the meeting now & not created beforehand" + ) + meetingId: ID! + meetingType: MeetingTypeEnum! + teamId: ID! + teamMember: TeamMember! + user: User! + userId: ID! + + """ + The last time a meeting was updated (stage completed, finished, etc) + """ + updatedAt: DateTime! +} diff --git a/packages/server/graphql/public/typeDefs/MeetingStageTimeLimitPayload.graphql b/packages/server/graphql/public/typeDefs/MeetingStageTimeLimitPayload.graphql new file mode 100644 index 00000000000..26b98725ef8 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/MeetingStageTimeLimitPayload.graphql @@ -0,0 +1,6 @@ +type MeetingStageTimeLimitPayload { + """ + The new notification that was just created + """ + notification: NotificationMeetingStageTimeLimitEnd! +} diff --git a/packages/server/graphql/public/typeDefs/MeetingStat.graphql b/packages/server/graphql/public/typeDefs/MeetingStat.graphql new file mode 100644 index 00000000000..98e69e0c785 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/MeetingStat.graphql @@ -0,0 +1,5 @@ +type MeetingStat { + id: ID! + meetingType: MeetingTypeEnum! + createdAt: DateTime! +} diff --git a/packages/server/graphql/public/typeDefs/MeetingSubscriptionPayload.graphql b/packages/server/graphql/public/typeDefs/MeetingSubscriptionPayload.graphql new file mode 100644 index 00000000000..8444053315f --- /dev/null +++ b/packages/server/graphql/public/typeDefs/MeetingSubscriptionPayload.graphql @@ -0,0 +1,50 @@ +type MeetingSubscriptionPayload { + fieldName: String! + AddTranscriptionBotSuccess: AddTranscriptionBotSuccess + AutogroupSuccess: AutogroupSuccess + AddCommentSuccess: AddCommentSuccess + CreatePollSuccess: CreatePollSuccess + AddReactjiToReflectionSuccess: AddReactjiToReflectionSuccess + AddReactjiToReactableSuccess: AddReactjiToReactableSuccess + CreateReflectionPayload: CreateReflectionPayload + DeleteCommentSuccess: DeleteCommentSuccess + DragDiscussionTopicPayload: DragDiscussionTopicPayload + DragEstimatingTaskSuccess: DragEstimatingTaskSuccess + EditCommentingSuccess: EditCommentingSuccess + EditReflectionPayload: EditReflectionPayload + EndDraggingReflectionPayload: EndDraggingReflectionPayload + EndRetrospectiveSuccess: EndRetrospectiveSuccess + EndTeamPromptSuccess: EndTeamPromptSuccess + FlagReadyToAdvanceSuccess: FlagReadyToAdvanceSuccess + GenerateGroupsSuccess: GenerateGroupsSuccess + NewMeetingCheckInPayload: NewMeetingCheckInPayload + PromoteNewMeetingFacilitatorPayload: PromoteNewMeetingFacilitatorPayload + RemoveReflectionPayload: RemoveReflectionPayload + ResetReflectionGroupsSuccess: ResetReflectionGroupsSuccess + ResetRetroMeetingToGroupStagePayload: ResetRetroMeetingToGroupStagePayload + RevealTeamHealthVotesSuccess: RevealTeamHealthVotesSuccess + SetPhaseFocusPayload: SetPhaseFocusPayload + SetStageTimerPayload: SetStageTimerPayload + SetTaskHighlightSuccess: SetTaskHighlightSuccess + SetTeamHealthVoteSuccess: SetTeamHealthVoteSuccess + StartDraggingReflectionPayload: StartDraggingReflectionPayload + UpdateCommentContentSuccess: UpdateCommentContentSuccess + UpdateDragLocationPayload: UpdateDragLocationPayload + UpdateMeetingPromptSuccess: UpdateMeetingPromptSuccess + UpdateNewCheckInQuestionPayload: UpdateNewCheckInQuestionPayload + UpdatedNotification: UpdatedNotification + UpdateReflectionContentPayload: UpdateReflectionContentPayload + UpdateReflectionGroupTitlePayload: UpdateReflectionGroupTitlePayload + UpdateRetroMaxVotesSuccess: UpdateRetroMaxVotesSuccess + UpdatePokerScopeSuccess: UpdatePokerScopeSuccess + VoteForReflectionGroupPayload: VoteForReflectionGroupPayload + VoteForPokerStorySuccess: VoteForPokerStorySuccess + PokerRevealVotesSuccess: PokerRevealVotesSuccess + PokerResetDimensionSuccess: PokerResetDimensionSuccess + PokerAnnounceDeckHoverSuccess: PokerAnnounceDeckHoverSuccess + JoinMeetingSuccess: JoinMeetingSuccess + SetPokerSpectateSuccess: SetPokerSpectateSuccess + SetTaskEstimateSuccess: SetTaskEstimateSuccess + UpsertTeamPromptResponseSuccess: UpsertTeamPromptResponseSuccess + UpdateMeetingTemplateSuccess: UpdateMeetingTemplateSuccess +} diff --git a/packages/server/graphql/public/typeDefs/MeetingTemplate.graphql b/packages/server/graphql/public/typeDefs/MeetingTemplate.graphql index 92eff01d9f8..dafd05fa78d 100644 --- a/packages/server/graphql/public/typeDefs/MeetingTemplate.graphql +++ b/packages/server/graphql/public/typeDefs/MeetingTemplate.graphql @@ -63,356 +63,12 @@ interface MeetingTemplate { Whether this template should be in the recommended/quick start sections in the UI. """ isRecommended: Boolean! - """ - The url to the illustration used by the template - """ - illustrationUrl: String! - """ - The lowest scope of the permissions available to the viewer - """ - viewerLowestScope: SharingScopeEnum! -} - -""" -A connection to a list of items. -""" -type MeetingTemplateConnection { - """ - Information to aid in pagination. - """ - pageInfo: PageInfo! - - """ - A list of edges. - """ - edges: [MeetingTemplateEdge!]! -} - -""" -An edge in a connection. -""" -type MeetingTemplateEdge { - """ - The item at the end of the edge - """ - node: MeetingTemplate! - - """ - A cursor for use in pagination - """ - cursor: String! -} - -""" -The team-specific templates for the reflection prompts -""" -type ReflectTemplate implements MeetingTemplate { - """ - shortid - """ - id: ID! - createdAt: DateTime! - - """ - True if template can be used, else false - """ - isActive: Boolean! - - """ - True if template is available to all teams including non-paying teams, else false - """ - isFree: Boolean! - - """ - The time of the meeting the template was last used - """ - lastUsedAt: DateTime - - """ - The name of the template - """ - name: String! - - """ - *Foreign key. The organization that owns the team that created the template - """ - orgId: ID! - - """ - Who can see this template - """ - scope: SharingScopeEnum! - - """ - *Foreign key. The team this template belongs to - """ - teamId: ID! - """ - The team this template belongs to - """ - team: Team! - - """ - The type of the template - """ - type: MeetingTypeEnum! - updatedAt: DateTime! - - """ - The prompts that are part of this template - """ - prompts: [ReflectPrompt!]! - - """ - The category this template falls under, e.g. retro, feedback, strategy, etc. - """ - category: String! - - """ - Whether this template should be in the recommended/quick start sections in the UI. - """ - isRecommended: Boolean! """ The url to the illustration used by the template """ illustrationUrl: String! - """ - The lowest scope of the permissions available to the viewer - """ - viewerLowestScope: SharingScopeEnum! - - """ - Experimental: sub-categories that this template is in (e.g. "popular", "recentlyUsed", "unused", - etc.) - """ - subCategories: [String!]! -} - -""" -A connection to a list of items. -""" -type ReflectTemplateConnection { - """ - Information to aid in pagination. - """ - pageInfo: PageInfo! - - """ - A list of edges. - """ - edges: [ReflectTemplateEdge!]! -} - -""" -An edge in a connection. -""" -type ReflectTemplateEdge { - """ - The item at the end of the edge - """ - node: ReflectTemplate! - - """ - A cursor for use in pagination - """ - cursor: String! -} -""" -The team-specific templates for sprint poker meeting -""" -type PokerTemplate implements MeetingTemplate { - """ - shortid - """ - id: ID! - createdAt: DateTime! - - """ - True if template can be used, else false - """ - isActive: Boolean! - - """ - True if template is available to all teams including non-paying teams, else false - """ - isFree: Boolean! - - """ - The time of the meeting the template was last used - """ - lastUsedAt: DateTime - - """ - The name of the template - """ - name: String! - - """ - *Foreign key. The organization that owns the team that created the template - """ - orgId: ID! - - """ - Who can see this template - """ - scope: SharingScopeEnum! - - """ - *Foreign key. The team this template belongs to - """ - teamId: ID! - - """ - The team this template belongs to - """ - team: Team! - - """ - The type of the template - """ - type: MeetingTypeEnum! - updatedAt: DateTime! - - """ - The dimensions that are part of this template - """ - dimensions: [TemplateDimension!]! - - """ - A query for the dimension - """ - dimension( - """ - The dimension ID for the desired dimension - """ - dimensionId: ID! - ): TemplateDimension! - - """ - The category this template falls under, e.g. retro, feedback, strategy, etc. - """ - category: String! - - """ - Whether this template should be in the recommended/quick start sections in the UI. - """ - isRecommended: Boolean! - """ - The url to the illustration used by the template - """ - illustrationUrl: String! - """ - The lowest scope of the permissions available to the viewer - """ - viewerLowestScope: SharingScopeEnum! -} - -""" -A connection to a list of items. -""" -type PokerTemplateConnection { - """ - Information to aid in pagination. - """ - pageInfo: PageInfo! - - """ - A list of edges. - """ - edges: [PokerTemplateEdge!]! -} - -""" -An edge in a connection. -""" -type PokerTemplateEdge { - """ - The item at the end of the edge - """ - node: PokerTemplate! - - """ - A cursor for use in pagination - """ - cursor: String! -} - -""" -An activity that does not have a customizable template, e.g. standup, check-in -""" -type FixedActivity implements MeetingTemplate { - """ - teamPrompt | action - """ - id: ID! - - """ - Date the activity was created - """ - createdAt: DateTime! - - """ - Always true - """ - isActive: Boolean! - - """ - Always true - """ - isFree: Boolean! - - """ - The time of the meeting the template was last used - """ - lastUsedAt: DateTime - - """ - The name of the template - """ - name: String! - - """ - Always aGhostOrg - """ - orgId: ID! - - """ - Always public - """ - scope: SharingScopeEnum! - - """ - Always aGhostTeam - """ - teamId: ID! - - """ - aGhostTeam - """ - team: Team! - - """ - teamPrompt | action - """ - type: MeetingTypeEnum! - updatedAt: DateTime! - - """ - The category this template falls under, e.g. retro, feedback, strategy, etc. - """ - category: String! - - """ - Whether this template should be in the recommended/quick start sections in the UI. - """ - isRecommended: Boolean! - - """ - The url to the illustration used by the template - """ - illustrationUrl: String! """ The lowest scope of the permissions available to the viewer """ diff --git a/packages/server/graphql/public/typeDefs/MeetingTemplateConnection.graphql b/packages/server/graphql/public/typeDefs/MeetingTemplateConnection.graphql new file mode 100644 index 00000000000..9bb256aa7e9 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/MeetingTemplateConnection.graphql @@ -0,0 +1,14 @@ +""" +A connection to a list of items. +""" +type MeetingTemplateConnection { + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + A list of edges. + """ + edges: [MeetingTemplateEdge!]! +} diff --git a/packages/server/graphql/public/typeDefs/MeetingTemplateEdge.graphql b/packages/server/graphql/public/typeDefs/MeetingTemplateEdge.graphql new file mode 100644 index 00000000000..669e478cba3 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/MeetingTemplateEdge.graphql @@ -0,0 +1,14 @@ +""" +An edge in a connection. +""" +type MeetingTemplateEdge { + """ + The item at the end of the edge + """ + node: MeetingTemplate! + + """ + A cursor for use in pagination + """ + cursor: String! +} diff --git a/packages/server/graphql/public/typeDefs/MeetingTypeEnum.graphql b/packages/server/graphql/public/typeDefs/MeetingTypeEnum.graphql new file mode 100644 index 00000000000..c90bec2bf76 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/MeetingTypeEnum.graphql @@ -0,0 +1,9 @@ +""" +The type of meeting +""" +enum MeetingTypeEnum { + action + retrospective + poker + teamPrompt +} diff --git a/packages/server/graphql/public/typeDefs/ModifyCheckInQuestionPayload.graphql b/packages/server/graphql/public/typeDefs/ModifyCheckInQuestionPayload.graphql new file mode 100644 index 00000000000..4f67a728a2c --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ModifyCheckInQuestionPayload.graphql @@ -0,0 +1,4 @@ +""" +Return value for modifyCheckInQuestion, which could be an error +""" +union ModifyCheckInQuestionPayload = ErrorPayload | ModifyCheckInQuestionSuccess diff --git a/packages/server/graphql/public/typeDefs/ModifyCheckInQuestionSuccess.graphql b/packages/server/graphql/public/typeDefs/ModifyCheckInQuestionSuccess.graphql new file mode 100644 index 00000000000..6107dc9c982 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ModifyCheckInQuestionSuccess.graphql @@ -0,0 +1,3 @@ +type ModifyCheckInQuestionSuccess { + modifiedCheckInQuestion: String +} diff --git a/packages/server/graphql/public/typeDefs/ModifyType.graphql b/packages/server/graphql/public/typeDefs/ModifyType.graphql new file mode 100644 index 00000000000..5f2fc3549c9 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ModifyType.graphql @@ -0,0 +1,5 @@ +enum ModifyType { + SERIOUS + FUNNY + EXCITING +} diff --git a/packages/server/graphql/public/typeDefs/MovePokerTemplateDimensionPayload.graphql b/packages/server/graphql/public/typeDefs/MovePokerTemplateDimensionPayload.graphql new file mode 100644 index 00000000000..cb5683b9e64 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/MovePokerTemplateDimensionPayload.graphql @@ -0,0 +1,4 @@ +type MovePokerTemplateDimensionPayload { + error: StandardMutationError + dimension: TemplateDimension +} diff --git a/packages/server/graphql/public/typeDefs/MovePokerTemplateScaleValuePayload.graphql b/packages/server/graphql/public/typeDefs/MovePokerTemplateScaleValuePayload.graphql new file mode 100644 index 00000000000..40bc530dd8e --- /dev/null +++ b/packages/server/graphql/public/typeDefs/MovePokerTemplateScaleValuePayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for MovePokerTemplateScaleValuePayload +""" +union MovePokerTemplateScaleValuePayload = ErrorPayload | MovePokerTemplateScaleValueSuccess diff --git a/packages/server/graphql/public/typeDefs/MovePokerTemplateScaleValueSuccess.graphql b/packages/server/graphql/public/typeDefs/MovePokerTemplateScaleValueSuccess.graphql new file mode 100644 index 00000000000..9c4983ec453 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/MovePokerTemplateScaleValueSuccess.graphql @@ -0,0 +1,6 @@ +type MovePokerTemplateScaleValueSuccess { + """ + The scale after values are moved + """ + scale: TemplateScale! +} diff --git a/packages/server/graphql/public/typeDefs/MoveReflectTemplatePromptPayload.graphql b/packages/server/graphql/public/typeDefs/MoveReflectTemplatePromptPayload.graphql new file mode 100644 index 00000000000..2350bd177e9 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/MoveReflectTemplatePromptPayload.graphql @@ -0,0 +1,4 @@ +type MoveReflectTemplatePromptPayload { + error: StandardMutationError + prompt: ReflectPrompt +} diff --git a/packages/server/graphql/public/typeDefs/Mutation.graphql b/packages/server/graphql/public/typeDefs/Mutation.graphql new file mode 100644 index 00000000000..3c86c1c9f20 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/Mutation.graphql @@ -0,0 +1,2018 @@ +type Mutation { + """ + Create a new agenda item + """ + addAgendaItem( + """ + The new task including an id, teamMemberId, and content + """ + newAgendaItem: CreateAgendaItemInput! + ): AddAgendaItemPayload + addAtlassianAuth(code: ID!, teamId: ID!): AddAtlassianAuthPayload! + + """ + Add a comment to a discussion + """ + addComment( + """ + A partial new comment + """ + comment: AddCommentInput! + ): AddCommentPayload! + + """ + Add a new dimension for the poker template + """ + addPokerTemplateDimension(templateId: ID!): AddPokerTemplateDimensionPayload! + + """ + Add a new scale for the poker template + """ + addPokerTemplateScale(parentScaleId: ID, teamId: ID!): AddPokerTemplateScalePayload! + + """ + Add a new scale value for a scale in a poker template + """ + addPokerTemplateScaleValue( + scaleId: ID! + scaleValue: AddTemplateScaleInput! + ): AddPokerTemplateScaleValuePayload! + + """ + Add a new template full of prompts + """ + addReflectTemplatePrompt(templateId: ID!): AddReflectTemplatePromptPayload + addSlackAuth(code: ID!, teamId: ID!): AddSlackAuthPayload! + addGitHubAuth(code: ID!, teamId: ID!): AddGitHubAuthPayload! + + """ + Create a new team and add the first team member + """ + addOrg( + """ + The new team object with exactly 1 team member + """ + newTeam: NewTeamInput! + + """ + The name of the new team + """ + orgName: String! + invitees: [Email!] + ): AddOrgPayload! + + """ + Create a new team and add the first team member + """ + addTeam( + """ + The new team object + """ + newTeam: NewTeamInput! + invitees: [Email!] + ): AddTeamPayload! + archiveOrganization( + """ + The orgId to archive + """ + orgId: ID! + ): ArchiveOrganizationPayload! + archiveTeam( + """ + The teamId to archive (or delete, if team is unused) + """ + teamId: ID! + ): ArchiveTeamPayload! + + """ + Archive a timeline event + """ + archiveTimelineEvent( + """ + the id for the timeline event + """ + timelineEventId: ID! + ): ArchiveTimelineEventPayload! + + """ + Change the team a task is associated with. Also copy the viewers integration if necessary. + """ + changeTaskTeam( + """ + The task to change + """ + taskId: ID! + + """ + The new team to assign the task to + """ + teamId: ID! + ): ChangeTaskTeamPayload + + """ + set the interaction status of a notifcation + """ + setNotificationStatus( + """ + The id of the notification + """ + notificationId: ID! + status: NotificationStatusEnum! + ): SetNotificationStatusPayload + createTaskIntegration( + """ + Which integration to push the task to + """ + integrationProviderService: IntegrationProviderServiceEnum! + + """ + Jira projectId, GitHub nameWithOwner etc. + """ + integrationRepoId: ID! + + """ + The id of the task to convert to an issue + """ + taskId: ID! + ): CreateTaskIntegrationPayload + + """ + Create a new mass inivtation and optionally void old ones + """ + createMassInvitation( + """ + the specific meeting where the invite occurred, if any + """ + meetingId: ID + + """ + The teamId to create the mass invitation for + """ + teamId: ID! + + """ + If true, will void all existing mass invitations for the team member + """ + voidOld: Boolean + ): CreateMassInvitationPayload! + + """ + Generate a new OAuth1 request token and encode it in the authorization URL to start an oauth1 flow + """ + createOAuth1AuthorizeUrl( + """ + Id of the integration provider with OAuth1 auth strategy + """ + providerId: ID! + + """ + Id of the team where the integration should be added + """ + teamId: ID! + ): CreateOAuth1AuthorizationURLPayload + + """ + Create a new reflection + """ + createReflection(input: CreateReflectionInput!): CreateReflectionPayload + + """ + Create a new task, triggering a CreateCard for other viewers + """ + createTask( + """ + The new task including an id, status, and type, and teamMemberId + """ + newTask: CreateTaskInput! + + """ + The part of the site where the creation occurred + """ + area: AreaEnum + ): CreateTaskPayload! + + """ + Delete a comment from a discussion + """ + deleteComment(commentId: ID!, meetingId: ID!): DeleteCommentPayload! + + """ + Delete (not archive!) a task + """ + deleteTask( + """ + The taskId to delete + """ + taskId: ID! + ): DeleteTaskPayload + + """ + Delete a user, removing them from all teams and orgs + """ + deleteUser( + """ + a userId + """ + userId: ID + + """ + the user email + """ + email: ID + + """ + the reason why the user wants to delete their account + """ + reason: String + ): DeleteUserPayload! + + """ + Deny a user from joining via push invitation + """ + denyPushInvitation(teamId: ID!, userId: ID!): DenyPushInvitationPayload + + """ + Redeem an invitation token for a logged in user + """ + dismissNewFeature: DismissNewFeaturePayload! + + """ + Dismiss a suggested action + """ + dismissSuggestedAction( + """ + The id of the suggested action to dismiss + """ + suggestedActionId: ID! + ): DismissSuggestedActionPayload! + + """ + Downgrade a paid account to the starter plan service + """ + downgradeToStarter( + """ + the org requesting the upgrade + """ + orgId: ID! + + """ + the reasons the user is leaving + """ + reasonsForLeaving: [ReasonToDowngradeEnum] + + """ + the name of the tool they are moving to. only required if anotherTool is selected as a reason to downgrade + """ + otherTool: String + ): DowngradeToStarterPayload + + """ + Changes the priority of the discussion topics + """ + dragDiscussionTopic(meetingId: ID!, stageId: ID!, sortOrder: Float!): DragDiscussionTopicPayload + + """ + Changes the ordering of the estimating tasks + """ + dragEstimatingTask( + meetingId: ID! + taskId: ID! + + """ + The index of the tasks will be moved to, in the list of estimating tasks sidebar section + """ + newPositionIndex: Int! + ): DragEstimatingTaskPayload! + + """ + Send an email to reset a password + """ + emailPasswordReset( + """ + email to send the password reset code to + """ + email: ID! + ): EmailPasswordResetPayload! + + """ + Track which users are commenting + """ + editCommenting( + """ + True if the user is commenting, false if the user has stopped commenting + """ + isCommenting: Boolean! + discussionId: ID! + ): EditCommentingPayload + + """ + Finish a sprint poker meeting + """ + endSprintPoker( + """ + The meeting to end + """ + meetingId: ID! + ): EndSprintPokerPayload! + + """ + Changes the editing state of a user for a phase item + """ + editReflection( + """ + Whether a reflectPrompt is being edited or not + """ + isEditing: Boolean! + meetingId: ID! + promptId: ID! + ): EditReflectionPayload + + """ + Announce to everyone that you are editing a task + """ + editTask( + """ + The task id that is being edited + """ + taskId: ID! + + """ + true if the editing is starting, false if it is stopping + """ + isEditing: Boolean! + ): EditTaskPayload + + """ + Finish a check-in meeting + """ + endCheckIn( + """ + The meeting to end + """ + meetingId: ID! + ): EndCheckInPayload! + + """ + Broadcast that the viewer stopped dragging a reflection + """ + endDraggingReflection( + reflectionId: ID! + + """ + if it was a drop (isDragging = false), the type of item it was dropped on. null if there was no valid drop target + """ + dropTargetType: DragReflectionDropTargetTypeEnum + + """ + if dropTargetType could refer to more than 1 component, this ID defines which one + """ + dropTargetId: ID + + """ + the ID of the drag to connect to the start drag event + """ + dragId: ID + ): EndDraggingReflectionPayload + + """ + Finish a retrospective meeting + """ + endRetrospective( + """ + The meeting to end + """ + meetingId: ID! + ): EndRetrospectivePayload! + + """ + flag a viewer as ready to advance to the next stage of a meeting + """ + flagReadyToAdvance( + meetingId: ID! + + """ + the stage that the viewer marked as ready + """ + stageId: ID! + + """ + true if ready to advance, else false + """ + isReady: Boolean! + ): FlagReadyToAdvancePayload! + + """ + Invalidate all sessions by blacklisting all JWTs issued before now + """ + invalidateSessions: InvalidateSessionsPayload! + + """ + Send a team invitation to an email address + """ + inviteToTeam( + """ + the specific meeting where the invite occurred, if any + """ + meetingId: ID + + """ + The id of the inviting team + """ + teamId: ID! + invitees: [Email!]! + ): InviteToTeamPayload! + + """ + Move a template dimension + """ + movePokerTemplateDimension( + dimensionId: ID! + sortOrder: Float! + ): MovePokerTemplateDimensionPayload! + + """ + Move a reflect template + """ + moveReflectTemplatePrompt(promptId: ID!, sortOrder: Float!): MoveReflectTemplatePromptPayload + + """ + Move a team to a different org. Requires billing leader rights on both orgs! + """ + moveTeamToOrg( + """ + The teamId that you want to move + """ + teamIds: [ID!]! + + """ + The ID of the organization you want to move the team to + """ + orgId: ID! + ): String + + """ + update a meeting by marking an item complete and setting the facilitator location + """ + navigateMeeting( + """ + The stage that the facilitator would like to mark as complete + """ + completedStageId: ID + + """ + The stage where the facilitator is + """ + facilitatorStageId: ID + + """ + The meeting ID + """ + meetingId: ID! + ): NavigateMeetingPayload! + + """ + Check a member in as present or absent + """ + newMeetingCheckIn( + """ + The id of the user being marked present or absent + """ + userId: ID! + + """ + the meeting currently in progress + """ + meetingId: ID! + + """ + true if the member is present, false if absent, null if undecided + """ + isCheckedIn: Boolean + ): NewMeetingCheckInPayload + @deprecated(reason: "Members now join lazily and joining means they are present") + + """ + Increment the count of times the org has clicked pay later + """ + payLater( + """ + the org that has clicked pay later + """ + meetingId: ID! + ): PayLaterPayload! + + """ + Add or remove a task and its estimate phase from the meeting + """ + persistJiraSearchQuery( + """ + the team with the settings we add the query to + """ + teamId: ID! + + """ + the jira search query to persist (or remove, if isRemove is true) + """ + input: JiraSearchQueryInput! + ): PersistJiraSearchQueryPayload! + + """ + Request to be invited to a team in real time + """ + pushInvitation( + """ + the meeting ID the pusher would like to join + """ + meetingId: ID + teamId: ID! + ): PushInvitationPayload + + """ + Change a facilitator while the meeting is in progress + """ + promoteNewMeetingFacilitator( + """ + userId of the new facilitator for this meeting + """ + facilitatorUserId: ID! + meetingId: ID! + ): PromoteNewMeetingFacilitatorPayload + + """ + Promote another team member to be the leader + """ + promoteToTeamLead( + """ + Team id of the team which is about to get a new team leader + """ + teamId: ID! + + """ + userId who will be set as a new team leader + """ + userId: ID! + ): PromoteToTeamLeadPayload + + """ + Update the description of a reflection prompt + """ + reflectTemplatePromptUpdateDescription( + promptId: ID! + description: String! + ): ReflectTemplatePromptUpdateDescriptionPayload + + """ + Update the description of a poker template dimension + """ + pokerTemplateDimensionUpdateDescription( + dimensionId: ID! + description: String! + ): PokerTemplateDimensionUpdateDescriptionPayload + reflectTemplatePromptUpdateGroupColor( + promptId: ID! + groupColor: String! + ): ReflectTemplatePromptUpdateGroupColorPayload + + """ + Remove an agenda item + """ + removeAgendaItem( + """ + The agenda item unique id + """ + agendaItemId: ID! + ): RemoveAgendaItemPayload + + """ + Disconnect a team member from atlassian + """ + removeAtlassianAuth( + """ + the teamId to disconnect from the token + """ + teamId: ID! + ): RemoveAtlassianAuthPayload! + + """ + Disconnect a team member from GitHub + """ + removeGitHubAuth( + """ + the teamId to disconnect from the token + """ + teamId: ID! + ): RemoveGitHubAuthPayload! + + """ + Remove a user from an org + """ + removeOrgUser( + """ + the user to remove + """ + userId: ID! + + """ + the org that does not want them anymore + """ + orgId: ID! + ): RemoveOrgUserPayload + + """ + Remove a poker meeting template + """ + removePokerTemplate(templateId: ID!): RemovePokerTemplatePayload! + + """ + Remove a template full of prompts + """ + removeReflectTemplate(templateId: ID!): RemoveReflectTemplatePayload + + """ + Remove a prompt from a template + """ + removeReflectTemplatePrompt(promptId: ID!): RemoveReflectTemplatePromptPayload + + """ + Remove a dimension from a template + """ + removePokerTemplateDimension(dimensionId: ID!): RemovePokerTemplateDimensionPayload! + + """ + Rename a meeting + """ + renameMeeting( + """ + the new meeting name + """ + name: String! + + """ + the meeting with the new name + """ + meetingId: ID! + ): RenameMeetingPayload! + + """ + Rename a meeting template + """ + renameMeetingTemplate(templateId: ID!, name: String!): RenameMeetingTemplatePayload + + """ + Rename a reflect template prompt + """ + renameReflectTemplatePrompt(promptId: ID!, question: String!): RenameReflectTemplatePromptPayload + + """ + Rename a poker template dimension + """ + renamePokerTemplateDimension( + dimensionId: ID! + name: String! + ): RenamePokerTemplateDimensionPayload! + + """ + Rename a poker template scale + """ + renamePokerTemplateScale(scaleId: ID!, name: String!): RenamePokerTemplateScalePayload! + + """ + Remove a scale from a template + """ + removePokerTemplateScale(scaleId: ID!): RemovePokerTemplateScalePayload! + + """ + Remove a scale value from the scale of a template + """ + removePokerTemplateScaleValue(scaleId: ID!, label: String!): RemovePokerTemplateScaleValuePayload! + + """ + Remove a reflection + """ + removeReflection(reflectionId: ID!): RemoveReflectionPayload + + """ + Disconnect a team member from Slack + """ + removeSlackAuth( + """ + the teamId to disconnect from the token + """ + teamId: ID! + ): RemoveSlackAuthPayload! + + """ + Remove a team member from the team + """ + removeTeamMember( + """ + The teamMemberId of the person who is being removed + """ + teamMemberId: ID! + ): RemoveTeamMemberPayload + + """ + Reset the password for an account + """ + resetPassword( + """ + the password reset token + """ + token: ID! + + """ + The new password for the account + """ + newPassword: String! + ): ResetPasswordPayload! + + """ + Reset a retro meeting to group stage + """ + resetRetroMeetingToGroupStage(meetingId: ID!): ResetRetroMeetingToGroupStagePayload! + + """ + Set the selected template for the upcoming retro meeting + """ + selectTemplate(selectedTemplateId: ID!, teamId: ID!): SelectTemplatePayload + + """ + Share where in the app the viewer is + """ + setAppLocation( + """ + The location the viewer is currently at + """ + location: String + ): SetAppLocationPayload! + + """ + Update the default Slack channel where notifications are sent + """ + setDefaultSlackChannel(slackChannelId: ID!, teamId: ID!): SetDefaultSlackChannelPayload! + + """ + Focus (or unfocus) a phase item + """ + setPhaseFocus( + meetingId: ID! + + """ + The currently focused phase item + """ + focusedPromptId: ID + ): SetPhaseFocusPayload + + """ + Set or clear a timer for a meeting stage + """ + setStageTimer( + """ + the id of the meeting + """ + meetingId: ID! + + """ + The time the timer is scheduled to go off (based on client clock), null if unsetting the timer + """ + scheduledEndTime: DateTime + + """ + scheduledEndTime - now. Used to reconcile bad client clocks. Present for time limit, else null + """ + timeRemaining: Float + ): SetStageTimerPayload! + setSlackNotification( + slackChannelId: ID + slackNotificationEvents: [SlackNotificationEventEnum!]! + teamId: ID! + ): SetSlackNotificationPayload! + + """ + Broadcast that the viewer started dragging a reflection + """ + startDraggingReflection( + reflectionId: ID! + dragId: ID! + isSpotlight: Boolean + ): StartDraggingReflectionPayload + + """ + Start a new sprint poker meeting + """ + startSprintPoker( + """ + The team starting the meeting + """ + teamId: ID! + + """ + The name of the meeting + """ + name: String + + """ + The gcal input if creating a gcal event + """ + gcalInput: CreateGcalEventInput + ): StartSprintPokerPayload! + + """ + Broadcast that the viewer highlights a task + """ + setTaskHighlight(taskId: ID!, meetingId: ID!, isHighlighted: Boolean!): SetTaskHighlightPayload! + + """ + Update an agenda item + """ + updateAgendaItem( + """ + The updated item including an id, content, status, sortOrder + """ + updatedAgendaItem: UpdateAgendaItemInput! + ): UpdateAgendaItemPayload + + """ + Update the content of a comment + """ + updateCommentContent( + commentId: ID! + + """ + A stringified draft-js document containing thoughts + """ + content: String! + meetingId: ID! + ): UpdateCommentContentPayload + + """ + Update an existing credit card on file + """ + oldUpdateCreditCard( + """ + the org requesting the changed billing + """ + orgId: ID! + + """ + The token that came back from stripe + """ + stripeToken: ID! + ): OldUpdateCreditCardPayload + + """ + Update the scale used for a dimension in a template + """ + updatePokerTemplateDimensionScale( + dimensionId: ID! + scaleId: ID! + ): UpdatePokerTemplateDimensionScalePayload! + + """ + Update the label, numerical value or color of a scale value in a scale + """ + updatePokerTemplateScaleValue( + scaleId: ID! + oldScaleValue: TemplateScaleInput! + newScaleValue: TemplateScaleInput! + ): UpdatePokerTemplateScaleValuePayload! + + """ + Update a Team's Icebreaker in a new meeting + """ + updateNewCheckInQuestion( + """ + ID of the Team which will have its Icebreaker updated + """ + meetingId: ID! + + """ + The Team's new Icebreaker + """ + checkInQuestion: String! + ): UpdateNewCheckInQuestionPayload + + """ + all the info required to provide an accurate display-specific location of where an item is + """ + updateDragLocation(input: UpdateDragLocationInput!): Boolean + + """ + Add or remove a task and its estimate phase from the meeting + """ + updatePokerScope( + """ + the meeting with the estimate phases to modify + """ + meetingId: ID! + + """ + The list of items to add/remove to the estimate phase + """ + updates: [UpdatePokerScopeItemInput!]! + ): UpdatePokerScopePayload! + + """ + Update the content of a reflection + """ + updateReflectionContent( + reflectionId: ID! + + """ + A stringified draft-js document containing thoughts + """ + content: String! + ): UpdateReflectionContentPayload + + """ + Update the title of a reflection group + """ + updateReflectionGroupTitle( + reflectionGroupId: ID! + + """ + The new title for the group + """ + title: String! + ): UpdateReflectionGroupTitlePayload + + """ + Change the max votes for participants + """ + updateRetroMaxVotes( + """ + The total number of votes for each participant + """ + totalVotes: Int! + + """ + The total number of votes for each participant to vote on a single topic + """ + maxVotesPerGroup: Int! + + """ + the meeting to update + """ + meetingId: ID! + ): UpdateRetroMaxVotesPayload! + + """ + Update a task with a change in content, ownership, or status + """ + updateTask( + """ + The part of the site where the creation occurred + """ + area: AreaEnum + + """ + the updated task including the id, and at least one other field + """ + updatedTask: UpdateTaskInput! + ): UpdateTaskPayload + + """ + Set or unset the due date of a task + """ + updateTaskDueDate( + """ + The task id + """ + taskId: ID! + + """ + the new due date. if not a valid date, it will unset the due date + """ + dueDate: DateTime + ): UpdateTaskDueDatePayload + updateTeamName( + """ + The input object containing the teamId and any modified fields + """ + updatedTeam: UpdatedTeamInput! + ): UpdateTeamNamePayload + + """ + Change the scope of a template + """ + updateTemplateScope( + """ + The id of the template + """ + templateId: ID! + + """ + the new scope + """ + scope: SharingScopeEnum! + ): UpdateTemplateScopePayload! + + """ + Upgrade an account to the paid service + """ + oldUpgradeToTeamTier( + """ + the org requesting the upgrade + """ + orgId: ID! + + """ + The token that came back from stripe + """ + stripeToken: ID! + ): OldUpgradeToTeamTierPayload + + """ + Cast your vote for a reflection group + """ + voteForReflectionGroup( + """ + true if the user wants to remove one of their votes + """ + isUnvote: Boolean + reflectionGroupId: ID! + ): VoteForReflectionGroupPayload + + """ + Cast a vote for the estimated points for a given dimension + """ + voteForPokerStory( + meetingId: ID! + + """ + The stage that contains the dimension to vote for + """ + stageId: ID! + + """ + The label of the scaleValue to vote for. If null, remove the vote + """ + score: String + ): VoteForPokerStoryPayload! + + """ + Progresses the stage dimension to the reveal & discuss step + """ + pokerRevealVotes(meetingId: ID!, stageId: ID!): PokerRevealVotesPayload! + + """ + Remove all votes, the final vote, and reset the stage + """ + pokerResetDimension(meetingId: ID!, stageId: ID!): PokerResetDimensionPayload! + + """ + """ + pokerAnnounceDeckHover( + meetingId: ID! + stageId: ID! + + """ + true if the viewer has started hovering the deck, else false + """ + isHover: Boolean! + ): PokerAnnounceDeckHoverPayload! + + """ + Move a scale value to an index + """ + movePokerTemplateScaleValue( + scaleId: ID! + + """ + The label of the moving scale value + """ + label: String! + + """ + The index position where the scale value is moving to + """ + index: Int! + ): MovePokerTemplateScaleValuePayload! + + """ + Create a meeting member for a user + """ + joinMeeting(meetingId: ID!): JoinMeetingPayload! + + """ + Set whether the user is spectating poker meeting + """ + setPokerSpectate( + meetingId: ID! + + """ + true if the viewer is spectating poker and does not want to vote. else false + """ + isSpectating: Boolean! + ): SetPokerSpectatePayload! + + """ + """ + persistGitHubSearchQuery( + """ + the team witht the settings we add the query to + """ + teamId: ID! + + """ + The query string as sent to GitHub + """ + queryString: String! + + """ + true if this query should be deleted + """ + isRemove: Boolean + ): PersistGitHubSearchQueryPayload! + + """ + Update a task estimate + """ + setTaskEstimate(taskEstimate: TaskEstimateInput!): SetTaskEstimatePayload! + + """ + Show/hide the drawer in the team dashboard + """ + toggleTeamDrawer( + """ + the team to show/hide the drawer for + """ + teamId: ID! + + """ + The type of team drawer that the viewer is toggling. Null if closing the drawer. + """ + teamDrawerType: TeamDrawer + ): ToggleTeamDrawerPayload! + + """ + Update how a parabol dimension maps to a GitHub label + """ + updateGitHubDimensionField( + dimensionName: String! + + """ + The template string to map to a label + """ + labelTemplate: String! + + """ + The repo the issue lives on + """ + nameWithOwner: ID! + + """ + The meeting the update happend in. Returns a meeting object with updated serviceField + """ + meetingId: ID! + ): UpdateGitHubDimensionFieldPayload! + createPoll( + """ + The new poll including title and poll options + """ + newPoll: CreatePollInput! + ): CreatePollPayload! + + """ + Adds a new Integration Provider configuration + """ + addIntegrationProvider( + """ + The new Integration Provider + """ + input: AddIntegrationProviderInput! + ): AddIntegrationProviderPayload! + + """ + Update the Integration Provider settings + """ + updateIntegrationProvider( + """ + The new Integration Provider + """ + provider: UpdateIntegrationProviderInput! + ): UpdateIntegrationProviderPayload! + + """ + Remove an Integration Provider, and any associated tokens + """ + removeIntegrationProvider( + """ + Id of the Integration Provider to remove + """ + providerId: ID! + ): RemoveIntegrationProviderPayload! + + """ + Finish the team prompt meeting + """ + endTeamPrompt( + """ + The meeting to end + """ + meetingId: ID! + ): EndTeamPromptPayload! + + """ + Set the Azure DevOps field that the poker dimension should map to + """ + updateAzureDevOpsDimensionField( + dimensionName: String! + + """ + The Azure DevOps field name that we should push estimates to + """ + fieldName: String! + + """ + The Azure DevOps instanceId the field lives on + """ + instanceId: ID! + + """ + The project the field lives on + """ + projectKey: ID! + + """ + The meeting the update happend in. Returns a meeting object with updated serviceField + """ + meetingId: ID! + + """ + The work item type in Azure DevOps + """ + workItemType: ID! + ): UpdateAzureDevOpsDimensionFieldPayload! + + """ + Adds a new poker template with a default dimension created. + """ + addPokerTemplate( + """ + The ID of the parent template, if this is a clone operation. + """ + parentTemplateId: ID + + """ + The ID of the team for which the template is being created. + """ + teamId: ID! + ): AddPokerTemplatePayload! + + """ + Adds a new reflect template with a default dimension created. + """ + addReflectTemplate( + """ + The ID of the parent template, if this is a clone operation. + """ + parentTemplateId: ID + + """ + The ID of the team for which the template is being created. + """ + teamId: ID! + ): AddReflectTemplatePayload! + + """ + pauses the subscription for a single user + """ + inactivateUser( + """ + the user to pause + """ + userId: ID! + ): InactivateUserPayload + + """ + Adds the request user to multiple selected teams on the domain + """ + acceptRequestToJoinDomain( + """ + DomainJoinRequest id + """ + requestId: ID! + + """ + Array of team ids + """ + teamIds: [ID!]! + ): AcceptRequestToJoinDomainPayload! + + """ + Redeem an invitation token for a logged in user + """ + acceptTeamInvitation( + """ + The invitation token or mass invitation code + """ + invitationToken: ID! + + """ + the notification clicked to accept, if any + """ + notificationId: ID + ): AcceptTeamInvitationPayload! + + """ + Restrict accepting team invites to a list of approved domains + """ + addApprovedOrganizationDomains( + """ + The organization ID + """ + orgId: ID! + + """ + A list of domains or email addressed allowed to join the organization + """ + emailDomains: [String!]! + ): AddApprovedOrganizationDomainsPayload! + + """ + Add or remove a reactji from a reactable + """ + addReactjiToReactable( + """ + The id of the reactable + """ + reactableId: ID! + + """ + the type of the + """ + reactableType: ReactableEnum! + + """ + the id of the reactji to add + """ + reactji: String! + + """ + If true, remove the reaction, else add it + """ + isRemove: Boolean + + """ + The id of the meeting + """ + meetingId: ID! + ): AddReactjiToReactablePayload! + + """ + Add an integration authorization for a specific team member + """ + addTeamMemberIntegrationAuth( + providerId: ID! + teamId: ID! + + """ + The OAuth2 code or personal access token. Null for webhook auth + """ + oauthCodeOrPat: ID + + """ + OAuth1 token verifier + """ + oauthVerifier: ID + + """ + The URL the OAuth2 token will be sent to. Null for webhook auth + """ + redirectUri: URL + ): AddTeamMemberIntegrationAuthPayload! + + """ + Add the transcription bot to the Zoom meeting + """ + addTranscriptionBot(meetingId: ID!, videoMeetingURL: String!): AddTranscriptionBotPayload! + + """ + Creates suggested reflection groups using OpenAI + """ + autogroup(meetingId: ID!): AutogroupPayload! + + """ + Batch archive tasks + """ + batchArchiveTasks( + """ + ids of the tasks to archive + """ + taskIds: [ID!]! + ): BatchArchiveTasksPayload! + + """ + for troubleshooting by admins, create a JWT for a given userId + """ + createImposterToken( + """ + The target userId to impersonate + """ + userId: ID + + """ + The email address of the user to impersonate + """ + email: Email + ): CreateImposterTokenPayload! + + """ + Create the Stripe subscription for the given org + """ + createStripeSubscription(orgId: ID!, paymentMethodId: ID!): CreateStripeSubscriptionPayload! + + """ + Ask the AI for a template suggestion + """ + getTemplateSuggestion( + """ + The question the user has for the AI + """ + prompt: String! + ): GetTemplateSuggestionPayload! + + """ + Sign up or login using Google + """ + loginWithGoogle( + """ + The code provided from the OAuth2 flow + """ + code: ID! + + """ + optional pseudo id created before they were a user + """ + pseudoId: ID + + """ + if present, the user is also joining a team + """ + invitationToken: ID + + """ + query params on the login page, used to maybe add feature flag + """ + params: String! + ): UserLogInPayload! + + """ + Sign up or login using Microsoft + """ + loginWithMicrosoft( + """ + The code provided from the OAuth2 flow + """ + code: ID! + + """ + optional pseudo id created before they were a user + """ + pseudoId: ID + + """ + if present, the user is also joining a team + """ + invitationToken: ID + + """ + query params on the login page, used to maybe add feature flag + """ + params: String! + ): UserLogInPayload! + + """ + Login using an email address and password + """ + loginWithPassword(email: ID!, password: String!): UserLogInPayload! + + """ + Describe the mutation here + """ + modifyCheckInQuestion( + meetingId: ID! + checkInQuestion: String! + modifyType: ModifyType! + ): ModifyCheckInQuestionPayload! + persistIntegrationSearchQuery( + teamId: ID! + service: IntegrationProviderServiceEnum! + providerId: ID + jiraServerSearchQuery: JiraServerSearchQueryInput + ): PersistIntegrationSearchQueryPayload! + + """ + Remove the approved domains for a given organization + """ + removeApprovedOrganizationDomains( + """ + The ID for the organization to remove the restriction from + """ + orgId: ID! + + """ + The list of emails and/or domains to unrestrict from the org + """ + emailDomains: [String!]! + ): RemoveApprovedOrganizationDomainsPayload! + + """ + Describe the mutation here + """ + removeIntegrationSearchQuery( + """ + integration search query ID + """ + id: ID! + teamId: ID! + ): RemoveIntegrationSearchQueryPayload! + + """ + Remove the integrated auth for a given team member + """ + removeTeamMemberIntegrationAuth( + """ + The Integration Provider service name related to the token + """ + service: IntegrationProviderServiceEnum! + + """ + The team id related to the token + """ + teamId: ID! + ): RemoveTeamMemberIntegrationAuthPayload! + + """ + Sends the request to the appropriate organizations on the viewer's domain + """ + requestToJoinDomain: RequestToJoinDomainPayload! + + """ + Resets the reflection groups to the state they were in before autogrouping + """ + resetReflectionGroups(meetingId: ID!): ResetReflectionGroupsPayload! + revealTeamHealthVotes(meetingId: ID!, stageId: ID!): RevealTeamHealthVotesPayload! + + """ + Enabled or disable the icebreaker round + """ + setMeetingSettings( + settingsId: ID! + + """ + true to turn icebreaker phase on, false to turn it off + """ + checkinEnabled: Boolean + + """ + true to turn team health phase on, false to turn it off + """ + teamHealthEnabled: Boolean + + """ + disables anonymity of reflections + """ + disableAnonymity: Boolean + + """ + the url of the video meeting, e.g. the Zoom link + """ + videoMeetingURL: String + ): SetMeetingSettingsPayload! + + """ + Update the role of the org user + """ + setOrgUserRole( + orgId: ID! + userId: ID! + + """ + The role to set the user to, e.g. billing leader. Null to remove the role + """ + role: OrgUserRole + ): SetOrgUserRolePayload! + setTeamHealthVote(meetingId: ID!, stageId: ID!, label: String!): SetTeamHealthVotePayload! + + """ + Shares retro discussion to integration + """ + shareTopic( + """ + Discussion stage id + """ + stageId: ID! + + """ + meetingId + """ + meetingId: ID! + + """ + Integration channelId + """ + channelId: ID! + ): ShareTopicPayload! + + """ + Sign up using an email address and password + """ + signUpWithPassword( + email: ID! + password: String! + + """ + optional pseudo id created before they were a user + """ + pseudoId: ID + + """ + used to determine what suggested actions to create + """ + invitationToken: ID + + """ + query params on the login page, used to maybe add feature flag + """ + params: String! + ): UserLogInPayload! + + """ + Start a new meeting + """ + startCheckIn( + """ + The team starting the meeting + """ + teamId: ID! + + """ + The name of the meeting + """ + name: String + + """ + The gcal input if creating a gcal event + """ + gcalInput: CreateGcalEventInput + ): StartCheckInPayload! + + """ + Start a new meeting + """ + startRetrospective( + """ + The team starting the meeting + """ + teamId: ID! + + """ + Name of the meeting or series + """ + name: String + + """ + The recurrence rule for the meeting series in RRULE format + """ + rrule: RRule + + """ + The gcal input if creating a gcal event + """ + gcalInput: CreateGcalEventInput + ): StartRetrospectivePayload! + + """ + Starts a new team prompt meeting + """ + startTeamPrompt( + """ + Id of the team starting the meeting + """ + teamId: ID! + + """ + Meeting or series name, by default "Standup" + """ + name: String + + """ + The recurrence rule for the meeting series in RRULE format + """ + rrule: RRule + + """ + The gcal input if creating a gcal event. If not provided, no gcal event will be created + """ + gcalInput: CreateGcalEventInput + ): StartTeamPromptPayload! + + """ + Add or remove the template to the user's favorite templates + """ + toggleFavoriteTemplate( + """ + The ID of the template to be toggled as a favorite + """ + templateId: ID! + ): ToggleFavoriteTemplatePayload! + + """ + Toggles the sendSummaryEmail value on the User object which determines whether summary emails are sent to the user + """ + toggleSummaryEmail: ToggleSummaryEmailPayload! + + """ + Update the autoJoin value for a set of teams + """ + updateAutoJoin( + """ + The team ids to update + """ + teamIds: [ID!]! + + """ + The new autoJoin value for the teams + """ + autoJoin: Boolean! + ): UpdateAutoJoinPayload! + + """ + Update an org's credit card + """ + updateCreditCard( + """ + The id of the org that is updating their credit card + """ + orgId: ID! + + """ + The id of the new payment method from Stripe + """ + paymentMethodId: ID! + ): UpdateCreditCardPayload! + + """ + Give someone advanced features in a flag + """ + updateFeatureFlag( + """ + a list of the complete or partial email of the person to whom you are giving advanced features. + Matches via a regex to support entire domains + """ + emails: [String!] + + """ + grant access to an entire domain. the part of the email after the @ + """ + domain: String + + """ + the flag that you want to give to the user + """ + flag: UserFlagEnum! + + """ + whether to add or remove the flag + """ + addFlag: Boolean! + ): UpdateFeatureFlagPayload! + + """ + Update how a parabol dimension maps to a GitLab label + """ + updateGitLabDimensionField( + """ + The Poker dimension that we're updating, e.g. story points + """ + dimensionName: String! + + """ + The template string to map to a label, e.g. __comment + """ + labelTemplate: String! + + """ + The meeting the update happend in. Returns a meeting object with updated serviceField. + """ + meetingId: ID! + + """ + The id of the project the issue belongs to + """ + projectId: Int! + ): UpdateGitLabDimensionFieldPayload! + + """ + Set the jira field that the poker dimension should map to + """ + updateJiraDimensionField( + """ + Id of the parabol task on which the dimension was updated + """ + taskId: ID! + + """ + Dimension name from the template used + """ + dimensionName: String! + + """ + The jira field id that we should push estimates to + """ + fieldId: ID! + + """ + The meeting the update happend in. Returns a meeting object with updated serviceField + """ + meetingId: ID! + ): UpdateDimensionFieldPayload! + + """ + Set the JiraServer field that the poker dimension should map to`, + """ + updateJiraServerDimensionField( + dimensionName: String! + + """ + The Jira Server field name that we should push estimates to + """ + fieldName: ID! + + """ + The Jira Server issue type for which to set the dimension + """ + issueType: ID! + + """ + Project id for this setting + """ + projectId: ID! + + """ + The meeting the update happend in. Returns a meeting object with updated serviceField + """ + meetingId: ID! + ): UpdateDimensionFieldPayload! + + """ + Describe the mutation here + """ + updateMeetingPrompt( + """ + The meeting to update the prompt + """ + meetingId: ID! + + """ + The updated prompt + """ + newPrompt: String! + ): UpdateMeetingPromptPayload! + + """ + Update a meeting template + """ + updateMeetingTemplate( + """ + The id of the meeting + """ + meetingId: ID! + + """ + The id of the meeting template + """ + templateId: ID! + ): UpdateMeetingTemplatePayload! + + """ + Update an with a change in name, avatar + """ + updateOrg( + """ + the updated org including the id, and at least one other field + """ + updatedOrg: UpdateOrgInput! + ): UpdateOrgPayload! + + """ + Updates the recurrence settings for a meeting + 1. When the meeting is not recurring, this will start the meeting recurring with the given recurrenceRule + 2. When the meeting is recurring and the provided recurrenceRule is defined, this will update the recurrence rule with the given recurrenceRule + 3. When the meeting is recurring and the provided recurrenceRule is null, this will stop the meeting from recurring + """ + updateRecurrenceSettings( + """ + ID of the meeting to update recurrence settings for + """ + meetingId: ID! + + """ + New meeting series name + """ + name: String + + """ + The recurrence rule for the meeting series in RRULE format + """ + rrule: RRule + ): UpdateRecurrenceSettingsPayload! + + """ + Updates the mainCategory for the given template + """ + updateTemplateCategory( + """ + The ID of the template + """ + templateId: ID! + + """ + The new category for the template + """ + mainCategory: String! + ): UpdateTemplateCategoryPayload! + updateUserProfile( + """ + The input object containing the user profile fields that can be changed + """ + updatedUser: UpdateUserProfileInput! + ): UpdateUserProfilePayload + + """ + Describe the mutation here + """ + upgradeToTeamTier(invoiceId: ID!): UpgradeToTeamTierPayload! + + """ + Upload the IdP Metadata file for an org for those who cannot self-host the file + """ + uploadIdPMetadata( + """ + the XML Metadata file for the IdP + """ + file: File! + + """ + The orgId to upload the IdP Metadata for + """ + orgId: ID! + ): UploadIdPMetadataPayload! + + """ + Upload an image for an org avatar + """ + uploadOrgImage( + """ + the org avatar image file + """ + file: File! + + """ + The org id to upload an avatar for + """ + orgId: ID! + ): UpdateOrgPayload! + + """ + Upload an image for a user avatar + """ + uploadUserImage( + """ + the user avatar image file + """ + file: File! + ): UpdateUserProfilePayload + + """ + upsert the content of a team prompt response + """ + upsertTeamPromptResponse( + """ + The id of the team prompt response to upsert + """ + teamPromptResponseId: ID + + """ + The id of the team prompt meeting + """ + meetingId: ID! + + """ + The stringified content of the team prompt response + """ + content: String! + ): UpsertTeamPromptResponsePayload! + + """ + Verify an email address and sign in if not already a user + """ + verifyEmail( + """ + The 48-byte url-safe base64 encoded verification token + """ + verificationToken: ID! + ): UserLogInPayload! +} diff --git a/packages/server/graphql/public/typeDefs/NavigateMeetingPayload.graphql b/packages/server/graphql/public/typeDefs/NavigateMeetingPayload.graphql new file mode 100644 index 00000000000..578cf829415 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/NavigateMeetingPayload.graphql @@ -0,0 +1,24 @@ +type NavigateMeetingPayload { + error: StandardMutationError + meeting: NewMeeting + + """ + The stage that the facilitator is now on + """ + facilitatorStage: NewMeetingStage + + """ + The stage that the facilitator left + """ + oldFacilitatorStage: NewMeetingStage + + """ + Additional details triggered by completing certain phases + """ + phaseComplete: PhaseCompletePayload + + """ + The stages that were unlocked by navigating + """ + unlockedStages: [NewMeetingStage!] +} diff --git a/packages/server/graphql/public/typeDefs/NewFeatureBroadcast.graphql b/packages/server/graphql/public/typeDefs/NewFeatureBroadcast.graphql new file mode 100644 index 00000000000..55c2cb1517d --- /dev/null +++ b/packages/server/graphql/public/typeDefs/NewFeatureBroadcast.graphql @@ -0,0 +1,21 @@ +""" +The latest feature released by Parabol +""" +type NewFeatureBroadcast { + id: ID! + + """ + The text of the action button in the snackbar + """ + actionButtonCopy: String! + + """ + The description of the new feature + """ + snackbarMessage: String! + + """ + The permalink to the blog post describing the new feature + """ + url: String! +} diff --git a/packages/server/graphql/public/typeDefs/NewMeeting.graphql b/packages/server/graphql/public/typeDefs/NewMeeting.graphql index 37094a312b2..8e64ac3bcb3 100644 --- a/packages/server/graphql/public/typeDefs/NewMeeting.graphql +++ b/packages/server/graphql/public/typeDefs/NewMeeting.graphql @@ -66,7 +66,6 @@ interface NewMeeting { The meeting series this meeting is associated with if the meeting is recurring """ meetingSeries: MeetingSeries - meetingType: MeetingTypeEnum! """ diff --git a/packages/server/graphql/public/typeDefs/NewMeetingCheckInPayload.graphql b/packages/server/graphql/public/typeDefs/NewMeetingCheckInPayload.graphql new file mode 100644 index 00000000000..33c680d8509 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/NewMeetingCheckInPayload.graphql @@ -0,0 +1,5 @@ +type NewMeetingCheckInPayload { + error: StandardMutationError + meetingMember: MeetingMember + meeting: NewMeeting +} diff --git a/packages/server/graphql/public/typeDefs/NewMeetingPhase.graphql b/packages/server/graphql/public/typeDefs/NewMeetingPhase.graphql new file mode 100644 index 00000000000..521683da34a --- /dev/null +++ b/packages/server/graphql/public/typeDefs/NewMeetingPhase.graphql @@ -0,0 +1,14 @@ +interface NewMeetingPhase { + """ + shortid + """ + id: ID! + meetingId: ID! + teamId: ID! + + """ + The type of phase + """ + phaseType: NewMeetingPhaseTypeEnum! + stages: [NewMeetingStage!]! +} diff --git a/packages/server/graphql/public/typeDefs/NewMeetingPhaseTypeEnum.graphql b/packages/server/graphql/public/typeDefs/NewMeetingPhaseTypeEnum.graphql new file mode 100644 index 00000000000..0f852d178c4 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/NewMeetingPhaseTypeEnum.graphql @@ -0,0 +1,20 @@ +""" +The phase of the meeting +""" +enum NewMeetingPhaseTypeEnum { + lobby + checkin + updates + firstcall + agendaitems + lastcall + reflect + group + vote + discuss + SUMMARY + SCOPE + ESTIMATE + RESPONSES + TEAM_HEALTH +} diff --git a/packages/server/graphql/public/typeDefs/NewMeetingStage.graphql b/packages/server/graphql/public/typeDefs/NewMeetingStage.graphql new file mode 100644 index 00000000000..752c0f1404c --- /dev/null +++ b/packages/server/graphql/public/typeDefs/NewMeetingStage.graphql @@ -0,0 +1,95 @@ +""" +An instance of a meeting phase item. On the client, this usually represents a single view +""" +interface NewMeetingStage { + """ + stageId, shortid + """ + id: ID! + + """ + The datetime the stage was completed + """ + endAt: DateTime + + """ + foreign key. try using meeting + """ + meetingId: ID! + + """ + The meeting this stage belongs to + """ + meeting: NewMeeting + + """ + true if the facilitator has completed this stage, else false. Should be boolean(endAt) + """ + isComplete: Boolean! + + """ + true if any meeting participant can navigate to this stage + """ + isNavigable: Boolean! + + """ + true if the facilitator can navigate to this stage + """ + isNavigableByFacilitator: Boolean! + + """ + The phase this stage belongs to + """ + phase: NewMeetingPhase + + """ + The type of the phase + """ + phaseType: NewMeetingPhaseTypeEnum + + """ + The datetime the stage was started + """ + startAt: DateTime + + """ + Number of times the facilitator has visited this stage + """ + viewCount: Int + + """ + true if a time limit is set, false if end time is set, null if neither is set + """ + isAsync: Boolean + + """ + true if the viewer is ready to advance, else false + """ + isViewerReady: Boolean! + + """ + the number of meeting members ready to advance, excluding the facilitator + """ + readyCount: Int! + + """ + The datetime the phase is scheduled to be finished, null if no time limit or end time is set + """ + scheduledEndTime: DateTime + + """ + The suggested ending datetime for a phase to be completed async, null if not enough data to make a suggestion + """ + suggestedEndTime: DateTime + + """ + The suggested time limit for a phase to be completed together, null if not enough data to make a suggestion + """ + suggestedTimeLimit: Float + teamId: ID! + + """ + The number of milliseconds left before the scheduled end time. Useful for unsynced client clocks. null if scheduledEndTime is null + """ + timeRemaining: Float +} diff --git a/packages/server/graphql/public/typeDefs/NewMeetingTeamMemberStage.graphql b/packages/server/graphql/public/typeDefs/NewMeetingTeamMemberStage.graphql new file mode 100644 index 00000000000..435f67758a6 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/NewMeetingTeamMemberStage.graphql @@ -0,0 +1,19 @@ +""" +An instance of a meeting phase item. On the client, this usually represents a single view +""" +interface NewMeetingTeamMemberStage { + """ + The meeting member that is the focus for this phase item + """ + meetingMember: MeetingMember! + + """ + foreign key. use teamMember + """ + teamMemberId: ID! + + """ + The team member that is the focus for this phase item + """ + teamMember: TeamMember! +} diff --git a/packages/server/graphql/public/typeDefs/NewTeamInput.graphql b/packages/server/graphql/public/typeDefs/NewTeamInput.graphql new file mode 100644 index 00000000000..187c6dc3e25 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/NewTeamInput.graphql @@ -0,0 +1,11 @@ +input NewTeamInput { + """ + The name of the team + """ + name: String! + + """ + The unique orginization ID that pays for the team + """ + orgId: ID +} diff --git a/packages/server/graphql/public/typeDefs/NextPeriodCharges.graphql b/packages/server/graphql/public/typeDefs/NextPeriodCharges.graphql new file mode 100644 index 00000000000..2a288677fff --- /dev/null +++ b/packages/server/graphql/public/typeDefs/NextPeriodCharges.graphql @@ -0,0 +1,29 @@ +""" +A single line item for the charges for next month +""" +type NextPeriodCharges { + """ + The amount for the line item (in USD) + """ + amount: Float! + + """ + The datetime the next period will end + """ + nextPeriodEnd: DateTime! + + """ + The total number of days that all org users have been inactive during the billing cycle + """ + quantity: Int! + + """ + The per-seat monthly price of the subscription (in dollars), null if invoice is not per-seat + """ + unitPrice: Float + + """ + "year" if enterprise, else "month" for pro + """ + interval: String +} diff --git a/packages/server/graphql/public/typeDefs/Notification.graphql b/packages/server/graphql/public/typeDefs/Notification.graphql new file mode 100644 index 00000000000..b4a073ec5f0 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/Notification.graphql @@ -0,0 +1,22 @@ +interface Notification { + """ + A shortid for the notification + """ + id: ID! + + """ + UNREAD if new, READ if viewer has seen it, CLICKED if viewed clicked it + """ + status: NotificationStatusEnum! + + """ + The datetime to activate the notification & send it to the client + """ + createdAt: DateTime! + type: NotificationEnum! + + """ + *The userId that should see this notification + """ + userId: ID! +} diff --git a/packages/server/graphql/public/typeDefs/NotificationConnection.graphql b/packages/server/graphql/public/typeDefs/NotificationConnection.graphql new file mode 100644 index 00000000000..2b48cf2f9f1 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/NotificationConnection.graphql @@ -0,0 +1,14 @@ +""" +A connection to a list of items. +""" +type NotificationConnection { + """ + Page info with cursors coerced to ISO8601 dates + """ + pageInfo: PageInfoDateCursor + + """ + A list of edges. + """ + edges: [NotificationEdge!]! +} diff --git a/packages/server/graphql/public/typeDefs/NotificationEdge.graphql b/packages/server/graphql/public/typeDefs/NotificationEdge.graphql new file mode 100644 index 00000000000..3f8e2b9ce78 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/NotificationEdge.graphql @@ -0,0 +1,10 @@ +""" +An edge in a connection. +""" +type NotificationEdge { + """ + The item at the end of the edge + """ + node: Notification! + cursor: DateTime +} diff --git a/packages/server/graphql/public/typeDefs/NotificationEnum.graphql b/packages/server/graphql/public/typeDefs/NotificationEnum.graphql new file mode 100644 index 00000000000..6f37a3ac60f --- /dev/null +++ b/packages/server/graphql/public/typeDefs/NotificationEnum.graphql @@ -0,0 +1,20 @@ +""" +The kind of notification +""" +enum NotificationEnum { + DISCUSSION_MENTIONED + KICKED_OUT + PAYMENT_REJECTED + PROMOTE_TO_BILLING_LEADER + TEAM_INVITATION + TEAM_ARCHIVED + TASK_INVOLVES + MEETING_STAGE_TIME_LIMIT_END + RESPONSE_MENTIONED + MENTIONED + RESPONSE_REPLIED + TEAMS_LIMIT_EXCEEDED + TEAMS_LIMIT_REMINDER + PROMPT_TO_JOIN_ORG + REQUEST_TO_JOIN_ORG +} diff --git a/packages/server/graphql/public/typeDefs/NotificationMeetingStageTimeLimitEnd.graphql b/packages/server/graphql/public/typeDefs/NotificationMeetingStageTimeLimitEnd.graphql new file mode 100644 index 00000000000..2a5f2f58793 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/NotificationMeetingStageTimeLimitEnd.graphql @@ -0,0 +1,35 @@ +""" +A notification sent to a facilitator that the stage time limit has ended +""" +type NotificationMeetingStageTimeLimitEnd implements Notification & TeamNotification { + """ + A shortid for the notification + """ + id: ID! + + """ + UNREAD if new, READ if viewer has seen it, CLICKED if viewed clicked it + """ + status: NotificationStatusEnum! + + """ + The datetime to activate the notification & send it to the client + """ + createdAt: DateTime! + type: NotificationEnum! + + """ + *The userId that should see this notification + """ + userId: ID! + + """ + FK + """ + meetingId: ID! + + """ + The meeting that had the time limit expire + """ + meeting: NewMeeting! +} diff --git a/packages/server/graphql/public/typeDefs/NotificationStatusEnum.graphql b/packages/server/graphql/public/typeDefs/NotificationStatusEnum.graphql new file mode 100644 index 00000000000..9cfac416f10 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/NotificationStatusEnum.graphql @@ -0,0 +1,8 @@ +""" +The status of the notification interaction +""" +enum NotificationStatusEnum { + UNREAD + READ + CLICKED +} diff --git a/packages/server/graphql/public/typeDefs/NotificationSubscriptionPayload.graphql b/packages/server/graphql/public/typeDefs/NotificationSubscriptionPayload.graphql new file mode 100644 index 00000000000..0a719c7ac0a --- /dev/null +++ b/packages/server/graphql/public/typeDefs/NotificationSubscriptionPayload.graphql @@ -0,0 +1,30 @@ +type NotificationSubscriptionPayload { + fieldName: String! + AcceptTeamInvitationPayload: AcceptTeamInvitationPayload + AddNewFeaturePayload: AddNewFeaturePayload + AddOrgPayload: AddOrgPayload + AddTeamPayload: AddTeamPayload + ArchiveTimelineEventSuccess: ArchiveTimelineEventSuccess + SetNotificationStatusPayload: SetNotificationStatusPayload + CreateTaskPayload: CreateTaskPayload + DeleteTaskPayload: DeleteTaskPayload + DisconnectSocketPayload: DisconnectSocketPayload + EndCheckInSuccess: EndCheckInSuccess + EndRetrospectiveSuccess: EndRetrospectiveSuccess + InvalidateSessionsPayload: InvalidateSessionsPayload + InviteToTeamPayload: InviteToTeamPayload + MeetingStageTimeLimitPayload: MeetingStageTimeLimitPayload + RemoveOrgUserPayload: RemoveOrgUserPayload + StripeFailPaymentPayload: StripeFailPaymentPayload + PersistJiraSearchQuerySuccess: PersistJiraSearchQuerySuccess + User: User + AuthTokenPayload: AuthTokenPayload + PersistGitHubSearchQuerySuccess: PersistGitHubSearchQuerySuccess + JiraServerIssue: JiraServerIssue + AddedNotification: AddedNotification + UpdateFeatureFlagPayload: UpdateFeatureFlagPayload + JiraIssue: JiraIssue + UpdatedNotification: UpdatedNotification + RemoveIntegrationSearchQuerySuccess: RemoveIntegrationSearchQuerySuccess + PersistIntegrationSearchQuerySuccess: PersistIntegrationSearchQuerySuccess +} diff --git a/packages/server/graphql/public/typeDefs/NotificationTeamInvitation.graphql b/packages/server/graphql/public/typeDefs/NotificationTeamInvitation.graphql new file mode 100644 index 00000000000..da4f804ada2 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/NotificationTeamInvitation.graphql @@ -0,0 +1,41 @@ +""" +A notification sent to a user that was invited to a new team +""" +type NotificationTeamInvitation implements Notification & TeamNotification { + """ + FK + """ + teamId: ID! + + """ + FK + """ + invitationId: ID! + + """ + The invitation that triggered this notification + """ + invitation: TeamInvitation! + team: Team! + + """ + A shortid for the notification + """ + id: ID! + + """ + UNREAD if new, READ if viewer has seen it, CLICKED if viewed clicked it + """ + status: NotificationStatusEnum! + + """ + The datetime to activate the notification & send it to the client + """ + createdAt: DateTime! + type: NotificationEnum! + + """ + *The userId that should see this notification + """ + userId: ID! +} diff --git a/packages/server/graphql/public/typeDefs/NotifyKickedOut.graphql b/packages/server/graphql/public/typeDefs/NotifyKickedOut.graphql new file mode 100644 index 00000000000..25000f756eb --- /dev/null +++ b/packages/server/graphql/public/typeDefs/NotifyKickedOut.graphql @@ -0,0 +1,45 @@ +""" +A notification sent to someone who was just kicked off a team +""" +type NotifyKickedOut implements Notification { + """ + A shortid for the notification + """ + id: ID! + + """ + UNREAD if new, READ if viewer has seen it, CLICKED if viewed clicked it + """ + status: NotificationStatusEnum! + + """ + The datetime to activate the notification & send it to the client + """ + createdAt: DateTime! + type: NotificationEnum! + + """ + *The userId that should see this notification + """ + userId: ID! + + """ + the user that evicted recipient + """ + evictor: User! + + """ + The name of the team the user is joining + """ + teamName: String! + + """ + The teamId the user was kicked out of + """ + teamId: ID! + + """ + The team the task is on + """ + team: Team! +} diff --git a/packages/server/graphql/public/typeDefs/NotifyPaymentRejected.graphql b/packages/server/graphql/public/typeDefs/NotifyPaymentRejected.graphql new file mode 100644 index 00000000000..8370eba194c --- /dev/null +++ b/packages/server/graphql/public/typeDefs/NotifyPaymentRejected.graphql @@ -0,0 +1,27 @@ +""" +A notification sent to a user when their payment has been rejected +""" +type NotifyPaymentRejected implements Notification { + organization: Organization! + + """ + A shortid for the notification + """ + id: ID! + + """ + UNREAD if new, READ if viewer has seen it, CLICKED if viewed clicked it + """ + status: NotificationStatusEnum! + + """ + The datetime to activate the notification & send it to the client + """ + createdAt: DateTime! + type: NotificationEnum! + + """ + *The userId that should see this notification + """ + userId: ID! +} diff --git a/packages/server/graphql/public/typeDefs/NotifyPromoteToOrgLeader.graphql b/packages/server/graphql/public/typeDefs/NotifyPromoteToOrgLeader.graphql new file mode 100644 index 00000000000..fed68f7e084 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/NotifyPromoteToOrgLeader.graphql @@ -0,0 +1,27 @@ +""" +A notification alerting the user that they have been promoted (to team or org leader) +""" +type NotifyPromoteToOrgLeader implements Notification { + organization: Organization! + + """ + A shortid for the notification + """ + id: ID! + + """ + UNREAD if new, READ if viewer has seen it, CLICKED if viewed clicked it + """ + status: NotificationStatusEnum! + + """ + The datetime to activate the notification & send it to the client + """ + createdAt: DateTime! + type: NotificationEnum! + + """ + *The userId that should see this notification + """ + userId: ID! +} diff --git a/packages/server/graphql/public/typeDefs/NotifyReqestToJoinOrg.graphql b/packages/server/graphql/public/typeDefs/NotifyRequestToJoinOrg.graphql similarity index 100% rename from packages/server/graphql/public/typeDefs/NotifyReqestToJoinOrg.graphql rename to packages/server/graphql/public/typeDefs/NotifyRequestToJoinOrg.graphql diff --git a/packages/server/graphql/public/typeDefs/NotifyTaskInvolves.graphql b/packages/server/graphql/public/typeDefs/NotifyTaskInvolves.graphql new file mode 100644 index 00000000000..573123a9c77 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/NotifyTaskInvolves.graphql @@ -0,0 +1,56 @@ +""" +A notification sent to someone who was just added to a team +""" +type NotifyTaskInvolves implements Notification & TeamNotification { + """ + A shortid for the notification + """ + id: ID! + + """ + UNREAD if new, READ if viewer has seen it, CLICKED if viewed clicked it + """ + status: NotificationStatusEnum! + + """ + The datetime to activate the notification & send it to the client + """ + createdAt: DateTime! + type: NotificationEnum! + + """ + *The userId that should see this notification + """ + userId: ID! + + """ + How the user is affiliated with the task + """ + involvement: TaskInvolvementType! + + """ + The taskId that now involves the userId + """ + taskId: ID! + + """ + The task that now involves the userId + """ + task: Task + + """ + The teamMemberId of the person that made the change + """ + changeAuthorId: ID + + """ + The TeamMember of the person that made the change + """ + changeAuthor: TeamMember! + teamId: ID! + + """ + The team the task is on + """ + team: Team! +} diff --git a/packages/server/graphql/public/typeDefs/NotifyTeamArchived.graphql b/packages/server/graphql/public/typeDefs/NotifyTeamArchived.graphql new file mode 100644 index 00000000000..ffd29fc070c --- /dev/null +++ b/packages/server/graphql/public/typeDefs/NotifyTeamArchived.graphql @@ -0,0 +1,31 @@ +""" +A notification alerting the user that a team they were on is now archived +""" +type NotifyTeamArchived implements Notification { + """ + the user that archived the team + """ + archivor: User! + team: Team! + + """ + A shortid for the notification + """ + id: ID! + + """ + UNREAD if new, READ if viewer has seen it, CLICKED if viewed clicked it + """ + status: NotificationStatusEnum! + + """ + The datetime to activate the notification & send it to the client + """ + createdAt: DateTime! + type: NotificationEnum! + + """ + *The userId that should see this notification + """ + userId: ID! +} diff --git a/packages/server/graphql/public/typeDefs/OldUpdateCreditCardPayload.graphql b/packages/server/graphql/public/typeDefs/OldUpdateCreditCardPayload.graphql new file mode 100644 index 00000000000..d00d35f14b9 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/OldUpdateCreditCardPayload.graphql @@ -0,0 +1,13 @@ +type OldUpdateCreditCardPayload { + error: StandardMutationError + + """ + The organization that received the updated credit card + """ + organization: Organization + + """ + The teams that are now paid up + """ + teamsUpdated: [Team] +} diff --git a/packages/server/graphql/public/typeDefs/OldUpgradeToTeamTierPayload.graphql b/packages/server/graphql/public/typeDefs/OldUpgradeToTeamTierPayload.graphql new file mode 100644 index 00000000000..fce7bf6bdfd --- /dev/null +++ b/packages/server/graphql/public/typeDefs/OldUpgradeToTeamTierPayload.graphql @@ -0,0 +1,23 @@ +type OldUpgradeToTeamTierPayload { + error: StandardMutationError + + """ + The new Team Org + """ + organization: Organization + + """ + The updated teams under the org + """ + teams: [Team!] + + """ + the ids of the meetings that were showing conversion modals + """ + meetingIds: [ID!] + + """ + the meetings that were showing conversion modals + """ + meetings: [NewMeeting!] +} diff --git a/packages/server/graphql/public/typeDefs/OrgUserCount.graphql b/packages/server/graphql/public/typeDefs/OrgUserCount.graphql new file mode 100644 index 00000000000..7dd603839b4 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/OrgUserCount.graphql @@ -0,0 +1,11 @@ +type OrgUserCount { + """ + The number of orgUsers who have an inactive flag + """ + inactiveUserCount: Int! + + """ + The number of orgUsers who do not have an inactive flag + """ + activeUserCount: Int! +} diff --git a/packages/server/graphql/public/typeDefs/OrgUserRole.graphql b/packages/server/graphql/public/typeDefs/OrgUserRole.graphql new file mode 100644 index 00000000000..a0f43431055 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/OrgUserRole.graphql @@ -0,0 +1,7 @@ +""" +The role of the org user +""" +enum OrgUserRole { + BILLING_LEADER + ORG_ADMIN +} diff --git a/packages/server/graphql/public/typeDefs/Organization.graphql b/packages/server/graphql/public/typeDefs/Organization.graphql index 49201cbd7ea..775fac7a035 100644 --- a/packages/server/graphql/public/typeDefs/Organization.graphql +++ b/packages/server/graphql/public/typeDefs/Organization.graphql @@ -186,32 +186,3 @@ type Organization { """ approvedDomains: [String!]! } - -type MeetingStat { - id: ID! - meetingType: MeetingTypeEnum! - createdAt: DateTime! -} - -type TeamStat { - id: ID! - createdAt: DateTime! -} - -""" -The types of flags that give an individual organization super powers -""" -type OrganizationFeatureFlags { - noAISummary: Boolean! - standupAISummary: Boolean! - noPromptToJoinOrg: Boolean! - suggestGroups: Boolean! - zoomTranscription: Boolean! - shareSummary: Boolean! - teamsLimit: Boolean! - noTeamInsights: Boolean! - singleColumnStandups: Boolean! - publicTeams: Boolean! - aiTemplate: Boolean! - relatedDiscussions: Boolean! -} diff --git a/packages/server/graphql/public/typeDefs/OrganizationFeatureFlags.graphql b/packages/server/graphql/public/typeDefs/OrganizationFeatureFlags.graphql new file mode 100644 index 00000000000..d0c765b0d10 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/OrganizationFeatureFlags.graphql @@ -0,0 +1,17 @@ +""" +The types of flags that give an individual organization super powers +""" +type OrganizationFeatureFlags { + noAISummary: Boolean! + standupAISummary: Boolean! + noPromptToJoinOrg: Boolean! + suggestGroups: Boolean! + zoomTranscription: Boolean! + shareSummary: Boolean! + teamsLimit: Boolean! + noTeamInsights: Boolean! + singleColumnStandups: Boolean! + publicTeams: Boolean! + aiTemplate: Boolean! + relatedDiscussions: Boolean! +} diff --git a/packages/server/graphql/public/typeDefs/OrganizationSubscriptionPayload.graphql b/packages/server/graphql/public/typeDefs/OrganizationSubscriptionPayload.graphql new file mode 100644 index 00000000000..282c1d807aa --- /dev/null +++ b/packages/server/graphql/public/typeDefs/OrganizationSubscriptionPayload.graphql @@ -0,0 +1,15 @@ +type OrganizationSubscriptionPayload { + fieldName: String! + AddOrgPayload: AddOrgPayload + ArchiveOrganizationPayload: ArchiveOrganizationPayload + DowngradeToStarterPayload: DowngradeToStarterPayload + PayLaterPayload: PayLaterPayload + RemoveOrgUserPayload: RemoveOrgUserPayload + SetOrgUserRoleSuccess: SetOrgUserRoleSuccess + OldUpdateCreditCardPayload: OldUpdateCreditCardPayload + UpdateCreditCardPayload: UpdateCreditCardPayload + UpdateOrgPayload: UpdateOrgPayload + OldUpgradeToTeamTierPayload: OldUpgradeToTeamTierPayload + UpgradeToTeamTierSuccess: UpgradeToTeamTierSuccess + UpdateTemplateScopeSuccess: UpdateTemplateScopeSuccess +} diff --git a/packages/server/graphql/public/typeDefs/OrganizationUser.graphql b/packages/server/graphql/public/typeDefs/OrganizationUser.graphql index 74f1a79b0be..7e76f729d3a 100644 --- a/packages/server/graphql/public/typeDefs/OrganizationUser.graphql +++ b/packages/server/graphql/public/typeDefs/OrganizationUser.graphql @@ -1,3 +1,52 @@ -extend type OrganizationUser { +""" +organization-specific details about a user +""" +type OrganizationUser { + """ + orgId::userId + """ + id: ID! + + """ + true if the user is paused and the orgs are not being billed, else false + """ + inactive: Boolean! + + """ + the datetime the user first joined the org + """ + joinedAt: DateTime! + + """ + FK + """ + orgId: ID! + + """ + The user attached to the organization + """ + organization: Organization! + + """ + if not a member, the datetime the user was removed from the org + """ + removedAt: DateTime + + """ + role of the user in the org + """ + role: OrgUserRole + + """ + FK + """ + userId: ID! + + """ + The user attached to the organization + """ + user: User! suggestedTier: TierEnum + tier: TierEnum + billingTier: TierEnum } diff --git a/packages/server/graphql/public/typeDefs/OrganizationUserConnection.graphql b/packages/server/graphql/public/typeDefs/OrganizationUserConnection.graphql new file mode 100644 index 00000000000..1c0651c79bd --- /dev/null +++ b/packages/server/graphql/public/typeDefs/OrganizationUserConnection.graphql @@ -0,0 +1,14 @@ +""" +A connection to a list of items. +""" +type OrganizationUserConnection { + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + A list of edges. + """ + edges: [OrganizationUserEdge!]! +} diff --git a/packages/server/graphql/public/typeDefs/OrganizationUserEdge.graphql b/packages/server/graphql/public/typeDefs/OrganizationUserEdge.graphql new file mode 100644 index 00000000000..ea3b56843a0 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/OrganizationUserEdge.graphql @@ -0,0 +1,14 @@ +""" +An edge in a connection. +""" +type OrganizationUserEdge { + """ + The item at the end of the edge + """ + node: OrganizationUser! + + """ + A cursor for use in pagination + """ + cursor: String! +} diff --git a/packages/server/graphql/public/typeDefs/ParseSAMLMetadataPayload.graphql b/packages/server/graphql/public/typeDefs/ParseSAMLMetadataPayload.graphql new file mode 100644 index 00000000000..3ffab12f2b1 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ParseSAMLMetadataPayload.graphql @@ -0,0 +1 @@ +union ParseSAMLMetadataPayload = ErrorPayload | ParseSAMLMetadataSuccess diff --git a/packages/server/graphql/public/typeDefs/ParseSAMLMetadataSuccess.graphql b/packages/server/graphql/public/typeDefs/ParseSAMLMetadataSuccess.graphql new file mode 100644 index 00000000000..c569ab2e3d7 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ParseSAMLMetadataSuccess.graphql @@ -0,0 +1,3 @@ +type ParseSAMLMetadataSuccess { + url: String! +} diff --git a/packages/server/graphql/public/typeDefs/PayLaterPayload.graphql b/packages/server/graphql/public/typeDefs/PayLaterPayload.graphql new file mode 100644 index 00000000000..d50e2f1f431 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/PayLaterPayload.graphql @@ -0,0 +1,13 @@ +type PayLaterPayload { + error: StandardMutationError + + """ + the ids of the meetings that were showing conversion modals + """ + meetingId: ID + + """ + the meetings that were showing conversion modals + """ + meeting: NewMeeting +} diff --git a/packages/server/graphql/public/typeDefs/PersistGitHubSearchQueryPayload.graphql b/packages/server/graphql/public/typeDefs/PersistGitHubSearchQueryPayload.graphql new file mode 100644 index 00000000000..8b61d3337a4 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/PersistGitHubSearchQueryPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for PersistGitHubSearchQueryPayload +""" +union PersistGitHubSearchQueryPayload = ErrorPayload | PersistGitHubSearchQuerySuccess diff --git a/packages/server/graphql/public/typeDefs/PersistGitHubSearchQuerySuccess.graphql b/packages/server/graphql/public/typeDefs/PersistGitHubSearchQuerySuccess.graphql new file mode 100644 index 00000000000..80df1269088 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/PersistGitHubSearchQuerySuccess.graphql @@ -0,0 +1,16 @@ +type PersistGitHubSearchQuerySuccess { + """ + The affected teamId + """ + teamId: ID! + + """ + The affected userId + """ + userId: ID! + + """ + The auth with the updated search queries + """ + githubIntegration: GitHubIntegration! +} diff --git a/packages/server/graphql/public/typeDefs/PersistIntegrationSearchQueryPayload.graphql b/packages/server/graphql/public/typeDefs/PersistIntegrationSearchQueryPayload.graphql new file mode 100644 index 00000000000..09b05ab188d --- /dev/null +++ b/packages/server/graphql/public/typeDefs/PersistIntegrationSearchQueryPayload.graphql @@ -0,0 +1 @@ +union PersistIntegrationSearchQueryPayload = PersistIntegrationSearchQuerySuccess | ErrorPayload diff --git a/packages/server/graphql/public/typeDefs/PersistIntegrationSearchQuerySuccess.graphql b/packages/server/graphql/public/typeDefs/PersistIntegrationSearchQuerySuccess.graphql new file mode 100644 index 00000000000..3de27aabe7d --- /dev/null +++ b/packages/server/graphql/public/typeDefs/PersistIntegrationSearchQuerySuccess.graphql @@ -0,0 +1,5 @@ +type PersistIntegrationSearchQuerySuccess { + userId: ID + teamId: ID + jiraServerIntegration: JiraServerIntegration +} diff --git a/packages/server/graphql/public/typeDefs/PersistJiraSearchQueryPayload.graphql b/packages/server/graphql/public/typeDefs/PersistJiraSearchQueryPayload.graphql new file mode 100644 index 00000000000..1ac24e74f3b --- /dev/null +++ b/packages/server/graphql/public/typeDefs/PersistJiraSearchQueryPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for PersistJiraSearchQueryPayload +""" +union PersistJiraSearchQueryPayload = ErrorPayload | PersistJiraSearchQuerySuccess diff --git a/packages/server/graphql/public/typeDefs/PersistJiraSearchQuerySuccess.graphql b/packages/server/graphql/public/typeDefs/PersistJiraSearchQuerySuccess.graphql new file mode 100644 index 00000000000..dd43afa3c01 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/PersistJiraSearchQuerySuccess.graphql @@ -0,0 +1,6 @@ +type PersistJiraSearchQuerySuccess { + """ + The newly created auth + """ + atlassianIntegration: AtlassianIntegration +} diff --git a/packages/server/graphql/public/typeDefs/PhaseCompletePayload.graphql b/packages/server/graphql/public/typeDefs/PhaseCompletePayload.graphql new file mode 100644 index 00000000000..904a419dce1 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/PhaseCompletePayload.graphql @@ -0,0 +1,16 @@ +type PhaseCompletePayload { + """ + payload provided if the retro reflect phase was completed + """ + reflect: ReflectPhaseCompletePayload + + """ + payload provided if the retro grouping phase was completed + """ + group: GroupPhaseCompletePayload + + """ + payload provided if the retro voting phase was completed + """ + vote: VotePhaseCompletePayload +} diff --git a/packages/server/graphql/public/typeDefs/PokerAnnounceDeckHoverPayload.graphql b/packages/server/graphql/public/typeDefs/PokerAnnounceDeckHoverPayload.graphql new file mode 100644 index 00000000000..2927506cf49 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/PokerAnnounceDeckHoverPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for PokerAnnounceDeckHoverPayload +""" +union PokerAnnounceDeckHoverPayload = ErrorPayload | PokerAnnounceDeckHoverSuccess diff --git a/packages/server/graphql/public/typeDefs/PokerAnnounceDeckHoverSuccess.graphql b/packages/server/graphql/public/typeDefs/PokerAnnounceDeckHoverSuccess.graphql new file mode 100644 index 00000000000..630472312cc --- /dev/null +++ b/packages/server/graphql/public/typeDefs/PokerAnnounceDeckHoverSuccess.graphql @@ -0,0 +1,12 @@ +type PokerAnnounceDeckHoverSuccess { + meetingId: ID! + stageId: ID! + userId: ID! + user: User! + isHover: Boolean! + + """ + The stage that holds the updated scores + """ + stage: EstimateStage! +} diff --git a/packages/server/graphql/public/typeDefs/PokerMeeting.graphql b/packages/server/graphql/public/typeDefs/PokerMeeting.graphql index 678549a82ec..188d78da9de 100644 --- a/packages/server/graphql/public/typeDefs/PokerMeeting.graphql +++ b/packages/server/graphql/public/typeDefs/PokerMeeting.graphql @@ -2,6 +2,42 @@ A Poker meeting """ type PokerMeeting implements NewMeeting { + """ + The number of comments generated in the meeting + """ + commentCount: Int! + + """ + The team members that were active during the time of the meeting + """ + meetingMembers: [PokerMeetingMember!]! + + """ + The number of stories scored during a meeting + """ + storyCount: Int! + + """ + A single story created in a Sprint Poker meeting + """ + story(storyId: ID!): Task + teamId: ID! + + """ + The ID of the template used for the meeting. Note the underlying template could have changed! + """ + templateId: ID! @deprecated(reason: "The underlying template could be mutated. Use templateRefId") + + """ + The ID of the immutable templateRef used for the meeting + """ + templateRefId: ID! + + """ + The Poker meeting member of the viewer + """ + viewerMeetingMember: PokerMeetingMember + """ The unique meeting id. shortid. """ @@ -47,11 +83,6 @@ type PokerMeeting implements NewMeeting { """ locked: Boolean! - """ - The team members that were active during the time of the meeting - """ - meetingMembers: [PokerMeetingMember!]! - """ The auto-incrementing meeting number for the team """ @@ -66,7 +97,6 @@ type PokerMeeting implements NewMeeting { The meeting series this meeting is associated with if the meeting is recurring """ meetingSeries: MeetingSeries - meetingType: MeetingTypeEnum! """ @@ -103,7 +133,6 @@ type PokerMeeting implements NewMeeting { The time the meeting summary was emailed to the team """ summarySentAt: DateTime - teamId: ID! """ The team that ran the meeting @@ -114,34 +143,4 @@ type PokerMeeting implements NewMeeting { The last time a meeting was updated (stage completed, finished, etc) """ updatedAt: DateTime - - """ - The Poker meeting member of the viewer - """ - viewerMeetingMember: PokerMeetingMember - - """ - The number of comments generated in the meeting - """ - commentCount: Int! - - """ - The number of stories scored during a meeting - """ - storyCount: Int! - - """ - A single story created in a Sprint Poker meeting - """ - story(storyId: ID!): Task - - """ - The ID of the template used for the meeting. Note the underlying template could have changed! - """ - templateId: ID! @deprecated(reason: "The underlying template could be mutated. Use templateRefId") - - """ - The ID of the immutable templateRef used for the meeting - """ - templateRefId: ID! } diff --git a/packages/server/graphql/public/typeDefs/PokerMeetingMember.graphql b/packages/server/graphql/public/typeDefs/PokerMeetingMember.graphql new file mode 100644 index 00000000000..3e50258e918 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/PokerMeetingMember.graphql @@ -0,0 +1,33 @@ +""" +All the meeting specifics for a user in a poker meeting +""" +type PokerMeetingMember implements MeetingMember { + """ + A composite of userId::meetingId + """ + id: ID! + + """ + true if present, false if absent, else null + """ + isCheckedIn: Boolean + @deprecated( + reason: "Members are checked in when they enter the meeting now & not created beforehand" + ) + meetingId: ID! + meetingType: MeetingTypeEnum! + teamId: ID! + teamMember: TeamMember! + user: User! + userId: ID! + + """ + The last time a meeting was updated (stage completed, finished, etc) + """ + updatedAt: DateTime! + + """ + true if the user is not voting and does not want their vote to count towards aggregates + """ + isSpectating: Boolean! +} diff --git a/packages/server/graphql/public/typeDefs/PokerMeetingSettings.graphql b/packages/server/graphql/public/typeDefs/PokerMeetingSettings.graphql new file mode 100644 index 00000000000..abfd95c3fbc --- /dev/null +++ b/packages/server/graphql/public/typeDefs/PokerMeetingSettings.graphql @@ -0,0 +1,65 @@ +""" +The retro-specific meeting settings +""" +type PokerMeetingSettings implements TeamMeetingSettings { + id: ID! + + """ + The type of meeting these settings apply to + """ + meetingType: MeetingTypeEnum! + + """ + The broad phase types that will be addressed during the meeting + """ + phaseTypes: [NewMeetingPhaseTypeEnum!]! + + """ + FK + """ + teamId: ID! + + """ + The team these settings belong to + """ + team: Team! + + """ + FK. The template that will be used to start the poker meeting + """ + selectedTemplateId: ID! + + """ + The template that will be used to start the Poker meeting + """ + selectedTemplate: PokerTemplate! + + """ + The list of templates used to start a Poker meeting + """ + teamTemplates: [PokerTemplate!]! + + """ + The list of templates shared across the organization to start a Poker meeting + """ + organizationTemplates( + first: Int! + + """ + The cursor, which is the templateId + """ + after: ID + ): PokerTemplateConnection! + + """ + The list of templates shared across the organization to start a Poker meeting + """ + publicTemplates( + first: Int! + + """ + The cursor, which is the templateId + """ + after: ID + ): PokerTemplateConnection! +} diff --git a/packages/server/graphql/public/typeDefs/PokerResetDimensionPayload.graphql b/packages/server/graphql/public/typeDefs/PokerResetDimensionPayload.graphql new file mode 100644 index 00000000000..288d4c3718b --- /dev/null +++ b/packages/server/graphql/public/typeDefs/PokerResetDimensionPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for PokerResetDimensionPayload +""" +union PokerResetDimensionPayload = ErrorPayload | PokerResetDimensionSuccess diff --git a/packages/server/graphql/public/typeDefs/PokerResetDimensionSuccess.graphql b/packages/server/graphql/public/typeDefs/PokerResetDimensionSuccess.graphql new file mode 100644 index 00000000000..ae28d15b94f --- /dev/null +++ b/packages/server/graphql/public/typeDefs/PokerResetDimensionSuccess.graphql @@ -0,0 +1,6 @@ +type PokerResetDimensionSuccess { + """ + The stage that holds the updated isVoting step + """ + stage: EstimateStage! +} diff --git a/packages/server/graphql/public/typeDefs/PokerRevealVotesPayload.graphql b/packages/server/graphql/public/typeDefs/PokerRevealVotesPayload.graphql new file mode 100644 index 00000000000..f87a079b6e9 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/PokerRevealVotesPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for PokerRevealVotesPayload +""" +union PokerRevealVotesPayload = ErrorPayload | PokerRevealVotesSuccess diff --git a/packages/server/graphql/public/typeDefs/PokerRevealVotesSuccess.graphql b/packages/server/graphql/public/typeDefs/PokerRevealVotesSuccess.graphql new file mode 100644 index 00000000000..135c28409d6 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/PokerRevealVotesSuccess.graphql @@ -0,0 +1,6 @@ +type PokerRevealVotesSuccess { + """ + The stage that holds the updated isVoting step + """ + stage: EstimateStage! +} diff --git a/packages/server/graphql/public/typeDefs/PokerTemplate.graphql b/packages/server/graphql/public/typeDefs/PokerTemplate.graphql new file mode 100644 index 00000000000..ce4a2f44fe9 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/PokerTemplate.graphql @@ -0,0 +1,91 @@ +""" +The team-specific templates for sprint poker meeting +""" +type PokerTemplate implements MeetingTemplate { + """ + shortid + """ + id: ID! + createdAt: DateTime! + + """ + True if template can be used, else false + """ + isActive: Boolean! + + """ + True if template is available to all teams including non-paying teams, else false + """ + isFree: Boolean! + + """ + The time of the meeting the template was last used + """ + lastUsedAt: DateTime + + """ + The name of the template + """ + name: String! + + """ + *Foreign key. The organization that owns the team that created the template + """ + orgId: ID! + + """ + Who can see this template + """ + scope: SharingScopeEnum! + + """ + *Foreign key. The team this template belongs to + """ + teamId: ID! + + """ + The team this template belongs to + """ + team: Team! + + """ + The type of the template + """ + type: MeetingTypeEnum! + updatedAt: DateTime! + + """ + The dimensions that are part of this template + """ + dimensions: [TemplateDimension!]! + + """ + A query for the dimension + """ + dimension( + """ + The dimension ID for the desired dimension + """ + dimensionId: ID! + ): TemplateDimension! + + """ + The category this template falls under, e.g. retro, feedback, strategy, etc. + """ + category: String! + + """ + Whether this template should be in the recommended/quick start sections in the UI. + """ + isRecommended: Boolean! + + """ + The url to the illustration used by the template + """ + illustrationUrl: String! + + """ + The lowest scope of the permissions available to the viewer + """ + viewerLowestScope: SharingScopeEnum! +} diff --git a/packages/server/graphql/public/typeDefs/PokerTemplateConnection.graphql b/packages/server/graphql/public/typeDefs/PokerTemplateConnection.graphql new file mode 100644 index 00000000000..795b0b753d3 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/PokerTemplateConnection.graphql @@ -0,0 +1,14 @@ +""" +A connection to a list of items. +""" +type PokerTemplateConnection { + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + A list of edges. + """ + edges: [PokerTemplateEdge!]! +} diff --git a/packages/server/graphql/public/typeDefs/PokerTemplateDimensionUpdateDescriptionPayload.graphql b/packages/server/graphql/public/typeDefs/PokerTemplateDimensionUpdateDescriptionPayload.graphql new file mode 100644 index 00000000000..34d40a429ac --- /dev/null +++ b/packages/server/graphql/public/typeDefs/PokerTemplateDimensionUpdateDescriptionPayload.graphql @@ -0,0 +1,4 @@ +type PokerTemplateDimensionUpdateDescriptionPayload { + error: StandardMutationError + dimension: TemplateDimension +} diff --git a/packages/server/graphql/public/typeDefs/PokerTemplateEdge.graphql b/packages/server/graphql/public/typeDefs/PokerTemplateEdge.graphql new file mode 100644 index 00000000000..c8cdffa28ce --- /dev/null +++ b/packages/server/graphql/public/typeDefs/PokerTemplateEdge.graphql @@ -0,0 +1,14 @@ +""" +An edge in a connection. +""" +type PokerTemplateEdge { + """ + The item at the end of the edge + """ + node: PokerTemplate! + + """ + A cursor for use in pagination + """ + cursor: String! +} diff --git a/packages/server/graphql/public/typeDefs/Poll.graphql b/packages/server/graphql/public/typeDefs/Poll.graphql new file mode 100644 index 00000000000..e2dc4a97fd3 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/Poll.graphql @@ -0,0 +1,79 @@ +""" +A poll created during the meeting +""" +type Poll implements Threadable { + """ + Poll id in a format of `poll:idGeneratedByDatabase` + """ + id: ID! + + """ + The rich text body of the item + """ + content: String! + + """ + The timestamp the item was created + """ + createdAt: DateTime! + + """ + The userId that created the item + """ + createdBy: ID + + """ + The user that created the item + """ + createdByUser: User! + + """ + the replies to this threadable item + """ + replies: [Threadable!]! + + """ + The FK of the discussion this task was created in. Null if task was not created in a discussion + """ + discussionId: ID + + """ + the parent, if this threadable is a reply, else null + """ + threadParentId: ID + + """ + the order of this threadable, relative to threadParentId + """ + threadSortOrder: Float + + """ + The timestamp the item was updated + """ + updatedAt: DateTime! + + """ + The foreign key for the meeting the poll was created in + """ + meetingId: ID + + """ + The id of the team (indexed) + """ + teamId: ID! + + """ + The team this poll belongs to + """ + team: Team! + + """ + Poll title + """ + title: String! + + """ + A list of all the poll options related to this poll + """ + options: [PollOption!]! +} diff --git a/packages/server/graphql/public/typeDefs/PollOption.graphql b/packages/server/graphql/public/typeDefs/PollOption.graphql new file mode 100644 index 00000000000..55e73a8cd66 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/PollOption.graphql @@ -0,0 +1,39 @@ +""" +Poll options for a given poll +""" +type PollOption { + """ + Poll option id in a format of `pollOption:idGeneratedByDatabase` + """ + id: ID! + + """ + The timestamp the item was created + """ + createdAt: DateTime! + + """ + The timestamp the item was updated + """ + updatedAt: DateTime! + + """ + The foreign key of the poll this option belongs to in a format of `poll:idGeneratedByDatabase` + """ + pollId: ID! + + """ + The poll this option belongs to + """ + poll: Poll! + + """ + The ids of the users who voted for this option + """ + voteUserIds: [ID!]! + + """ + Poll option title + """ + title: String! +} diff --git a/packages/server/graphql/public/typeDefs/PollOptionInput.graphql b/packages/server/graphql/public/typeDefs/PollOptionInput.graphql new file mode 100644 index 00000000000..2025540db20 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/PollOptionInput.graphql @@ -0,0 +1,6 @@ +input PollOptionInput { + """ + Poll option title + """ + title: String! +} diff --git a/packages/server/graphql/public/typeDefs/PromoteNewMeetingFacilitatorPayload.graphql b/packages/server/graphql/public/typeDefs/PromoteNewMeetingFacilitatorPayload.graphql new file mode 100644 index 00000000000..0e2750c9d34 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/PromoteNewMeetingFacilitatorPayload.graphql @@ -0,0 +1,14 @@ +type PromoteNewMeetingFacilitatorPayload { + error: StandardMutationError + + """ + The meeting in progress + """ + meeting: NewMeeting + facilitatorStage: NewMeetingStage + + """ + The old meeting facilitator + """ + oldFacilitator: User +} diff --git a/packages/server/graphql/public/typeDefs/PromoteToTeamLeadPayload.graphql b/packages/server/graphql/public/typeDefs/PromoteToTeamLeadPayload.graphql new file mode 100644 index 00000000000..f918cf4ba93 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/PromoteToTeamLeadPayload.graphql @@ -0,0 +1,6 @@ +type PromoteToTeamLeadPayload { + error: StandardMutationError + team: Team + oldLeader: TeamMember + newLeader: TeamMember +} diff --git a/packages/server/graphql/public/typeDefs/PushInvitationPayload.graphql b/packages/server/graphql/public/typeDefs/PushInvitationPayload.graphql new file mode 100644 index 00000000000..31d7eed4d9f --- /dev/null +++ b/packages/server/graphql/public/typeDefs/PushInvitationPayload.graphql @@ -0,0 +1,6 @@ +type PushInvitationPayload { + error: StandardMutationError + user: User + meetingId: ID + team: Team +} diff --git a/packages/server/graphql/public/typeDefs/Query.graphql b/packages/server/graphql/public/typeDefs/Query.graphql index ccc8b3e0384..53eff2278e8 100644 --- a/packages/server/graphql/public/typeDefs/Query.graphql +++ b/packages/server/graphql/public/typeDefs/Query.graphql @@ -1,11 +1,5 @@ type Query { viewer: User! - getDemoEntities( - """ - the reflection bodies to entitize - """ - text: String! - ): GetDemoEntitiesPayload! massInvitation( """ The mass invitation token @@ -18,6 +12,12 @@ type Query { """ token: ID! ): VerifiedInvitationPayload! + getDemoEntities( + """ + the reflection bodies to entitize + """ + text: String! + ): GetDemoEntitiesPayload! SAMLIdP( """ the email associated with a SAML login. null if instance is SSO-only diff --git a/packages/server/graphql/public/typeDefs/RRule.graphql b/packages/server/graphql/public/typeDefs/RRule.graphql index b4dd0b7b3c9..40e0798b008 100644 --- a/packages/server/graphql/public/typeDefs/RRule.graphql +++ b/packages/server/graphql/public/typeDefs/RRule.graphql @@ -1 +1,4 @@ +""" +A custom scalar type for representing RRule strings +""" scalar RRule diff --git a/packages/server/graphql/public/typeDefs/Reactable.graphql b/packages/server/graphql/public/typeDefs/Reactable.graphql new file mode 100644 index 00000000000..fe7fb545808 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/Reactable.graphql @@ -0,0 +1,14 @@ +""" +An item that can have reactjis +""" +interface Reactable { + """ + shortid + """ + id: ID! + + """ + All the reactjis for the given reflection + """ + reactjis: [Reactji!]! +} diff --git a/packages/server/graphql/public/typeDefs/ReactableEnum.graphql b/packages/server/graphql/public/typeDefs/ReactableEnum.graphql new file mode 100644 index 00000000000..8443d999130 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ReactableEnum.graphql @@ -0,0 +1,8 @@ +""" +The type of reactable +""" +enum ReactableEnum { + COMMENT + REFLECTION + RESPONSE +} diff --git a/packages/server/graphql/public/typeDefs/ReasonToDowngradeEnum.graphql b/packages/server/graphql/public/typeDefs/ReasonToDowngradeEnum.graphql new file mode 100644 index 00000000000..e734690492f --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ReasonToDowngradeEnum.graphql @@ -0,0 +1,10 @@ +""" +Where the upgrade CTA button was clicked +""" +enum ReasonToDowngradeEnum { + tooExpensive + budgetChanges + missingKeyFeatures + notUsingPaidFeatures + anotherTool +} diff --git a/packages/server/graphql/public/typeDefs/ReflectPhase.graphql b/packages/server/graphql/public/typeDefs/ReflectPhase.graphql new file mode 100644 index 00000000000..2c6230af721 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ReflectPhase.graphql @@ -0,0 +1,32 @@ +""" +The meeting phase where all team members check in one-by-one +""" +type ReflectPhase implements NewMeetingPhase { + """ + shortid + """ + id: ID! + meetingId: ID! + teamId: ID! + + """ + The type of phase + """ + phaseType: NewMeetingPhaseTypeEnum! + stages: [GenericMeetingStage!]! + + """ + foreign key. use focusedPrompt + """ + focusedPromptId: ID + + """ + the Prompt that the facilitator wants the group to focus on + """ + focusedPrompt: ReflectPrompt + + """ + The prompts used during the reflect phase + """ + reflectPrompts: [ReflectPrompt!]! +} diff --git a/packages/server/graphql/public/typeDefs/ReflectPhaseCompletePayload.graphql b/packages/server/graphql/public/typeDefs/ReflectPhaseCompletePayload.graphql new file mode 100644 index 00000000000..e2a81686ab1 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ReflectPhaseCompletePayload.graphql @@ -0,0 +1,11 @@ +type ReflectPhaseCompletePayload { + """ + a list of empty reflection groups to remove + """ + emptyReflectionGroupIds: [ID!]! + + """ + The grouped reflections + """ + reflectionGroups: [RetroReflectionGroup!]! +} diff --git a/packages/server/graphql/public/typeDefs/ReflectPrompt.graphql b/packages/server/graphql/public/typeDefs/ReflectPrompt.graphql new file mode 100644 index 00000000000..a6f9c9fd268 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ReflectPrompt.graphql @@ -0,0 +1,56 @@ +""" +A team-specific reflection prompt. Usually 3 or 4 exist per team, eg Good/Bad/Change, 4Ls, etc. +""" +type ReflectPrompt { + """ + shortid + """ + id: ID! + createdAt: DateTime! + + """ + foreign key. use the team field + """ + teamId: ID! + + """ + The team that owns this reflectPrompt + """ + team: Team + updatedAt: DateTime! + + """ + the order of the items in the template + """ + sortOrder: Float! + + """ + FK for template + """ + templateId: ID! + + """ + The template that this prompt belongs to + """ + template: ReflectTemplate! + + """ + The question to answer during the phase of the retrospective (eg What went well?) + """ + question: String! + + """ + The description to the question for further context. A long version of the question. + """ + description: String! + + """ + The color used to visually group a phase item. + """ + groupColor: String! + + """ + The datetime that the prompt was removed. Null if it has not been removed. + """ + removedAt: DateTime +} diff --git a/packages/server/graphql/public/typeDefs/ReflectTemplate.graphql b/packages/server/graphql/public/typeDefs/ReflectTemplate.graphql new file mode 100644 index 00000000000..cb717837186 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ReflectTemplate.graphql @@ -0,0 +1,87 @@ +""" +The team-specific templates for the reflection prompts +""" +type ReflectTemplate implements MeetingTemplate { + """ + shortid + """ + id: ID! + createdAt: DateTime! + + """ + True if template can be used, else false + """ + isActive: Boolean! + + """ + True if template is available to all teams including non-paying teams, else false + """ + isFree: Boolean! + + """ + The time of the meeting the template was last used + """ + lastUsedAt: DateTime + + """ + The name of the template + """ + name: String! + + """ + *Foreign key. The organization that owns the team that created the template + """ + orgId: ID! + + """ + Who can see this template + """ + scope: SharingScopeEnum! + + """ + *Foreign key. The team this template belongs to + """ + teamId: ID! + + """ + The team this template belongs to + """ + team: Team! + + """ + The type of the template + """ + type: MeetingTypeEnum! + updatedAt: DateTime! + + """ + The prompts that are part of this template + """ + prompts: [ReflectPrompt!]! + + """ + The category this template falls under, e.g. retro, feedback, strategy, etc. + """ + category: String! + + """ + Whether this template should be in the recommended/quick start sections in the UI. + """ + isRecommended: Boolean! + + """ + The url to the illustration used by the template + """ + illustrationUrl: String! + + """ + The lowest scope of the permissions available to the viewer + """ + viewerLowestScope: SharingScopeEnum! + + """ + Experimental: sub-categories that this template is in (e.g. "popular", "recentlyUsed", "unused", + etc.) + """ + subCategories: [String!]! +} diff --git a/packages/server/graphql/public/typeDefs/ReflectTemplateConnection.graphql b/packages/server/graphql/public/typeDefs/ReflectTemplateConnection.graphql new file mode 100644 index 00000000000..3bbca5792c7 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ReflectTemplateConnection.graphql @@ -0,0 +1,14 @@ +""" +A connection to a list of items. +""" +type ReflectTemplateConnection { + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + A list of edges. + """ + edges: [ReflectTemplateEdge!]! +} diff --git a/packages/server/graphql/public/typeDefs/ReflectTemplateEdge.graphql b/packages/server/graphql/public/typeDefs/ReflectTemplateEdge.graphql new file mode 100644 index 00000000000..ae29d8653f9 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ReflectTemplateEdge.graphql @@ -0,0 +1,14 @@ +""" +An edge in a connection. +""" +type ReflectTemplateEdge { + """ + The item at the end of the edge + """ + node: ReflectTemplate! + + """ + A cursor for use in pagination + """ + cursor: String! +} diff --git a/packages/server/graphql/public/typeDefs/ReflectTemplatePromptUpdateDescriptionPayload.graphql b/packages/server/graphql/public/typeDefs/ReflectTemplatePromptUpdateDescriptionPayload.graphql new file mode 100644 index 00000000000..0bb2112d5f3 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ReflectTemplatePromptUpdateDescriptionPayload.graphql @@ -0,0 +1,4 @@ +type ReflectTemplatePromptUpdateDescriptionPayload { + error: StandardMutationError + prompt: ReflectPrompt +} diff --git a/packages/server/graphql/public/typeDefs/ReflectTemplatePromptUpdateGroupColorPayload.graphql b/packages/server/graphql/public/typeDefs/ReflectTemplatePromptUpdateGroupColorPayload.graphql new file mode 100644 index 00000000000..6233b7ed0a2 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ReflectTemplatePromptUpdateGroupColorPayload.graphql @@ -0,0 +1,4 @@ +type ReflectTemplatePromptUpdateGroupColorPayload { + error: StandardMutationError + prompt: ReflectPrompt +} diff --git a/packages/server/graphql/public/typeDefs/ReflectionGroupSortEnum.graphql b/packages/server/graphql/public/typeDefs/ReflectionGroupSortEnum.graphql new file mode 100644 index 00000000000..3afbc769a35 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ReflectionGroupSortEnum.graphql @@ -0,0 +1,7 @@ +""" +sorts for the reflection group. default is sortOrder. sorting by voteCount filters out items without votes. +""" +enum ReflectionGroupSortEnum { + voteCount + stageOrder +} diff --git a/packages/server/graphql/public/typeDefs/RemoteReflectionDrag.graphql b/packages/server/graphql/public/typeDefs/RemoteReflectionDrag.graphql new file mode 100644 index 00000000000..e73e9cc4bda --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RemoteReflectionDrag.graphql @@ -0,0 +1,49 @@ +""" +Info associated with a current drag +""" +type RemoteReflectionDrag { + id: ID! + + """ + The userId of the person currently dragging the reflection + """ + dragUserId: ID + + """ + The name of the dragUser + """ + dragUserName: String + isSpotlight: Boolean + clientHeight: Float + clientWidth: Float + + """ + The primary key of the item being drug + """ + sourceId: ID! + + """ + The estimated destination of the item being drug + """ + targetId: ID + + """ + horizontal distance from the top left of the target + """ + targetOffsetX: Float + + """ + vertical distance from the top left of the target + """ + targetOffsetY: Float + + """ + the left of the source, relative to the client window + """ + clientX: Float + + """ + the top of the source, relative to the client window + """ + clientY: Float +} diff --git a/packages/server/graphql/public/typeDefs/RemoveAgendaItemPayload.graphql b/packages/server/graphql/public/typeDefs/RemoveAgendaItemPayload.graphql new file mode 100644 index 00000000000..b32444482a8 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RemoveAgendaItemPayload.graphql @@ -0,0 +1,10 @@ +type RemoveAgendaItemPayload { + error: StandardMutationError + agendaItem: AgendaItem + meetingId: ID + + """ + The meeting with the updated agenda item, if any + """ + meeting: NewMeeting +} diff --git a/packages/server/graphql/public/typeDefs/RemoveApprovedOrganizationDomainsPayload.graphql b/packages/server/graphql/public/typeDefs/RemoveApprovedOrganizationDomainsPayload.graphql new file mode 100644 index 00000000000..f9d76dedfa8 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RemoveApprovedOrganizationDomainsPayload.graphql @@ -0,0 +1,6 @@ +""" +Return value for removeApprovedOrganizationDomains, which could be an error +""" +union RemoveApprovedOrganizationDomainsPayload = + | ErrorPayload + | RemoveApprovedOrganizationDomainsSuccess diff --git a/packages/server/graphql/public/typeDefs/RemoveApprovedOrganizationDomainsSuccess.graphql b/packages/server/graphql/public/typeDefs/RemoveApprovedOrganizationDomainsSuccess.graphql new file mode 100644 index 00000000000..b633447b8d6 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RemoveApprovedOrganizationDomainsSuccess.graphql @@ -0,0 +1,6 @@ +type RemoveApprovedOrganizationDomainsSuccess { + """ + The organization with updated restrictions + """ + organization: Organization! +} diff --git a/packages/server/graphql/public/typeDefs/RemoveAtlassianAuthPayload.graphql b/packages/server/graphql/public/typeDefs/RemoveAtlassianAuthPayload.graphql new file mode 100644 index 00000000000..ad752a53423 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RemoveAtlassianAuthPayload.graphql @@ -0,0 +1,14 @@ +type RemoveAtlassianAuthPayload { + error: StandardMutationError + teamId: ID + + """ + The team member with the updated auth + """ + teamMember: TeamMember + + """ + The user with updated atlassianAuth + """ + user: User +} diff --git a/packages/server/graphql/public/typeDefs/RemoveGitHubAuthPayload.graphql b/packages/server/graphql/public/typeDefs/RemoveGitHubAuthPayload.graphql new file mode 100644 index 00000000000..79979d9d861 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RemoveGitHubAuthPayload.graphql @@ -0,0 +1,14 @@ +type RemoveGitHubAuthPayload { + error: StandardMutationError + teamId: ID + + """ + The team member with the updated auth + """ + teamMember: TeamMember + + """ + The user with updated githubAuth + """ + user: User +} diff --git a/packages/server/graphql/public/typeDefs/RemoveIntegrationProviderPayload.graphql b/packages/server/graphql/public/typeDefs/RemoveIntegrationProviderPayload.graphql new file mode 100644 index 00000000000..814ee62aca0 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RemoveIntegrationProviderPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for RemoveIntegrationProviderPayload +""" +union RemoveIntegrationProviderPayload = ErrorPayload | RemoveIntegrationProviderSuccess diff --git a/packages/server/graphql/public/typeDefs/RemoveIntegrationProviderSuccess.graphql b/packages/server/graphql/public/typeDefs/RemoveIntegrationProviderSuccess.graphql new file mode 100644 index 00000000000..21a48092f74 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RemoveIntegrationProviderSuccess.graphql @@ -0,0 +1,11 @@ +type RemoveIntegrationProviderSuccess { + """ + The team member with the updated auth + """ + teamMember: TeamMember! + + """ + The user who updated TeamMemberIntegrationAuth object + """ + user: User! +} diff --git a/packages/server/graphql/public/typeDefs/RemoveIntegrationSearchQueryPayload.graphql b/packages/server/graphql/public/typeDefs/RemoveIntegrationSearchQueryPayload.graphql new file mode 100644 index 00000000000..bd42b3bb9b6 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RemoveIntegrationSearchQueryPayload.graphql @@ -0,0 +1,4 @@ +""" +Return value for removeIntegrationSearchQuery, which could be an error +""" +union RemoveIntegrationSearchQueryPayload = ErrorPayload | RemoveIntegrationSearchQuerySuccess diff --git a/packages/server/graphql/public/typeDefs/RemoveIntegrationSearchQuerySuccess.graphql b/packages/server/graphql/public/typeDefs/RemoveIntegrationSearchQuerySuccess.graphql new file mode 100644 index 00000000000..68340681824 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RemoveIntegrationSearchQuerySuccess.graphql @@ -0,0 +1,5 @@ +type RemoveIntegrationSearchQuerySuccess { + userId: ID + teamId: ID + jiraServerIntegration: JiraServerIntegration +} diff --git a/packages/server/graphql/public/typeDefs/RemoveOrgUserPayload.graphql b/packages/server/graphql/public/typeDefs/RemoveOrgUserPayload.graphql new file mode 100644 index 00000000000..a2e659914be --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RemoveOrgUserPayload.graphql @@ -0,0 +1,39 @@ +type RemoveOrgUserPayload { + error: StandardMutationError + + """ + The organization the user was removed from + """ + organization: Organization + + """ + The teams the user was removed from + """ + teams: [Team!] + + """ + The teamMembers removed + """ + teamMembers: [TeamMember!] + + """ + The tasks that were archived or reassigned + """ + updatedTasks: [Task!] + + """ + The user removed from the organization + """ + user: User + + """ + The notifications for each team the user was kicked out of + """ + kickOutNotifications: [NotifyKickedOut!] + + """ + The organization member that got removed + """ + removedOrgMember: OrganizationUser + organizationUserId: String +} diff --git a/packages/server/graphql/public/typeDefs/RemovePokerTemplateDimensionPayload.graphql b/packages/server/graphql/public/typeDefs/RemovePokerTemplateDimensionPayload.graphql new file mode 100644 index 00000000000..ea1e915af62 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RemovePokerTemplateDimensionPayload.graphql @@ -0,0 +1,5 @@ +type RemovePokerTemplateDimensionPayload { + error: StandardMutationError + pokerTemplate: PokerTemplate + dimension: TemplateDimension +} diff --git a/packages/server/graphql/public/typeDefs/RemovePokerTemplatePayload.graphql b/packages/server/graphql/public/typeDefs/RemovePokerTemplatePayload.graphql new file mode 100644 index 00000000000..1f75c5ebd17 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RemovePokerTemplatePayload.graphql @@ -0,0 +1,5 @@ +type RemovePokerTemplatePayload { + error: StandardMutationError + pokerTemplate: PokerTemplate + pokerMeetingSettings: PokerMeetingSettings +} diff --git a/packages/server/graphql/public/typeDefs/RemovePokerTemplateScalePayload.graphql b/packages/server/graphql/public/typeDefs/RemovePokerTemplateScalePayload.graphql new file mode 100644 index 00000000000..4fe9470912d --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RemovePokerTemplateScalePayload.graphql @@ -0,0 +1,9 @@ +type RemovePokerTemplateScalePayload { + error: StandardMutationError + scale: TemplateScale + + """ + A list of dimensions that were using the archived scale + """ + dimensions: [TemplateDimension!]! +} diff --git a/packages/server/graphql/public/typeDefs/RemovePokerTemplateScaleValuePayload.graphql b/packages/server/graphql/public/typeDefs/RemovePokerTemplateScaleValuePayload.graphql new file mode 100644 index 00000000000..b78aad7676f --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RemovePokerTemplateScaleValuePayload.graphql @@ -0,0 +1,4 @@ +type RemovePokerTemplateScaleValuePayload { + error: StandardMutationError + scale: TemplateScale +} diff --git a/packages/server/graphql/public/typeDefs/RemoveReflectTemplatePayload.graphql b/packages/server/graphql/public/typeDefs/RemoveReflectTemplatePayload.graphql new file mode 100644 index 00000000000..5701a8dbd27 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RemoveReflectTemplatePayload.graphql @@ -0,0 +1,5 @@ +type RemoveReflectTemplatePayload { + error: StandardMutationError + reflectTemplate: ReflectTemplate + retroMeetingSettings: RetrospectiveMeetingSettings +} diff --git a/packages/server/graphql/public/typeDefs/RemoveReflectTemplatePromptPayload.graphql b/packages/server/graphql/public/typeDefs/RemoveReflectTemplatePromptPayload.graphql new file mode 100644 index 00000000000..c5d9a9148da --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RemoveReflectTemplatePromptPayload.graphql @@ -0,0 +1,5 @@ +type RemoveReflectTemplatePromptPayload { + error: StandardMutationError + reflectTemplate: ReflectTemplate + prompt: ReflectPrompt +} diff --git a/packages/server/graphql/public/typeDefs/RemoveReflectionPayload.graphql b/packages/server/graphql/public/typeDefs/RemoveReflectionPayload.graphql new file mode 100644 index 00000000000..2b0dcae5dfd --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RemoveReflectionPayload.graphql @@ -0,0 +1,10 @@ +type RemoveReflectionPayload { + error: StandardMutationError + meeting: NewMeeting + reflection: RetroReflection + + """ + The stages that were unlocked by navigating + """ + unlockedStages: [NewMeetingStage!] +} diff --git a/packages/server/graphql/public/typeDefs/RemoveSlackAuthPayload.graphql b/packages/server/graphql/public/typeDefs/RemoveSlackAuthPayload.graphql new file mode 100644 index 00000000000..c7dcce18e7b --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RemoveSlackAuthPayload.graphql @@ -0,0 +1,14 @@ +type RemoveSlackAuthPayload { + error: StandardMutationError + + """ + The ID of the authorization removed + """ + authId: ID + teamId: ID + + """ + The user with updated slackAuth + """ + user: User +} diff --git a/packages/server/graphql/public/typeDefs/RemoveTeamMemberIntegrationAuthPayload.graphql b/packages/server/graphql/public/typeDefs/RemoveTeamMemberIntegrationAuthPayload.graphql new file mode 100644 index 00000000000..4334aaae1a5 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RemoveTeamMemberIntegrationAuthPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for RemoveTeamMemberIntegrationAuthPayload +""" +union RemoveTeamMemberIntegrationAuthPayload = ErrorPayload | RemoveTeamMemberIntegrationAuthSuccess diff --git a/packages/server/graphql/public/typeDefs/RemoveTeamMemberIntegrationAuthSuccess.graphql b/packages/server/graphql/public/typeDefs/RemoveTeamMemberIntegrationAuthSuccess.graphql new file mode 100644 index 00000000000..5ef551db64a --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RemoveTeamMemberIntegrationAuthSuccess.graphql @@ -0,0 +1,11 @@ +type RemoveTeamMemberIntegrationAuthSuccess { + """ + The team member with the updated auth + """ + teamMember: TeamMember! + + """ + The user who updated TeamMemberIntegrationAuth object + """ + user: User! +} diff --git a/packages/server/graphql/public/typeDefs/RemoveTeamMemberPayload.graphql b/packages/server/graphql/public/typeDefs/RemoveTeamMemberPayload.graphql new file mode 100644 index 00000000000..1b5bef10895 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RemoveTeamMemberPayload.graphql @@ -0,0 +1,28 @@ +type RemoveTeamMemberPayload { + error: StandardMutationError + + """ + The team member removed + """ + teamMember: TeamMember + + """ + The team the team member was removed from + """ + team: Team + + """ + The tasks that got reassigned + """ + updatedTasks: [Task!] + + """ + The user removed from the team + """ + user: User + + """ + A notification if you were kicked out by the team leader + """ + kickOutNotification: NotifyKickedOut +} diff --git a/packages/server/graphql/public/typeDefs/RenameMeetingPayload.graphql b/packages/server/graphql/public/typeDefs/RenameMeetingPayload.graphql new file mode 100644 index 00000000000..22b1341ffcb --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RenameMeetingPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for RenameMeetingPayload +""" +union RenameMeetingPayload = ErrorPayload | RenameMeetingSuccess diff --git a/packages/server/graphql/public/typeDefs/RenameMeetingSuccess.graphql b/packages/server/graphql/public/typeDefs/RenameMeetingSuccess.graphql new file mode 100644 index 00000000000..e3fff53dac8 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RenameMeetingSuccess.graphql @@ -0,0 +1,6 @@ +type RenameMeetingSuccess { + """ + the renamed meeting + """ + meeting: NewMeeting! +} diff --git a/packages/server/graphql/public/typeDefs/RenameMeetingTemplatePayload.graphql b/packages/server/graphql/public/typeDefs/RenameMeetingTemplatePayload.graphql new file mode 100644 index 00000000000..cd60e40f5ed --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RenameMeetingTemplatePayload.graphql @@ -0,0 +1,4 @@ +type RenameMeetingTemplatePayload { + error: StandardMutationError + meetingTemplate: MeetingTemplate +} diff --git a/packages/server/graphql/public/typeDefs/RenamePokerTemplateDimensionPayload.graphql b/packages/server/graphql/public/typeDefs/RenamePokerTemplateDimensionPayload.graphql new file mode 100644 index 00000000000..ec572cc7be2 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RenamePokerTemplateDimensionPayload.graphql @@ -0,0 +1,4 @@ +type RenamePokerTemplateDimensionPayload { + error: StandardMutationError + dimension: TemplateDimension +} diff --git a/packages/server/graphql/public/typeDefs/RenamePokerTemplatePayload.graphql b/packages/server/graphql/public/typeDefs/RenamePokerTemplatePayload.graphql new file mode 100644 index 00000000000..17754c2b465 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RenamePokerTemplatePayload.graphql @@ -0,0 +1,4 @@ +type RenamePokerTemplatePayload { + error: StandardMutationError + pokerTemplate: PokerTemplate +} diff --git a/packages/server/graphql/public/typeDefs/RenamePokerTemplateScalePayload.graphql b/packages/server/graphql/public/typeDefs/RenamePokerTemplateScalePayload.graphql new file mode 100644 index 00000000000..e15f9673704 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RenamePokerTemplateScalePayload.graphql @@ -0,0 +1,4 @@ +type RenamePokerTemplateScalePayload { + error: StandardMutationError + scale: TemplateScale +} diff --git a/packages/server/graphql/public/typeDefs/RenameReflectTemplatePromptPayload.graphql b/packages/server/graphql/public/typeDefs/RenameReflectTemplatePromptPayload.graphql new file mode 100644 index 00000000000..124624e61da --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RenameReflectTemplatePromptPayload.graphql @@ -0,0 +1,4 @@ +type RenameReflectTemplatePromptPayload { + error: StandardMutationError + prompt: ReflectPrompt +} diff --git a/packages/server/graphql/public/typeDefs/RequestToJoinDomainPayload.graphql b/packages/server/graphql/public/typeDefs/RequestToJoinDomainPayload.graphql new file mode 100644 index 00000000000..55f1fd59b3d --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RequestToJoinDomainPayload.graphql @@ -0,0 +1,4 @@ +""" +Return value for requestToJoinDomain, which could be an error +""" +union RequestToJoinDomainPayload = ErrorPayload | RequestToJoinDomainSuccess diff --git a/packages/server/graphql/public/typeDefs/RequestToJoinDomainSuccess.graphql b/packages/server/graphql/public/typeDefs/RequestToJoinDomainSuccess.graphql new file mode 100644 index 00000000000..d1ad1bbb3a3 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RequestToJoinDomainSuccess.graphql @@ -0,0 +1,6 @@ +type RequestToJoinDomainSuccess { + """ + Was the request created successfully + """ + success: Boolean! +} diff --git a/packages/server/graphql/public/typeDefs/ResetPasswordPayload.graphql b/packages/server/graphql/public/typeDefs/ResetPasswordPayload.graphql new file mode 100644 index 00000000000..52aee86f7bc --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ResetPasswordPayload.graphql @@ -0,0 +1,14 @@ +type ResetPasswordPayload { + error: StandardMutationError + + """ + The new auth token + """ + authToken: ID + userId: ID + + """ + the user that changed their password + """ + user: User +} diff --git a/packages/server/graphql/public/typeDefs/ResetReflectionGroupsPayload.graphql b/packages/server/graphql/public/typeDefs/ResetReflectionGroupsPayload.graphql new file mode 100644 index 00000000000..1640e68ddc0 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ResetReflectionGroupsPayload.graphql @@ -0,0 +1,4 @@ +""" +Return value for resetReflectionGroups, which could be an error +""" +union ResetReflectionGroupsPayload = ErrorPayload | ResetReflectionGroupsSuccess diff --git a/packages/server/graphql/public/typeDefs/ResetReflectionGroupsSuccess.graphql b/packages/server/graphql/public/typeDefs/ResetReflectionGroupsSuccess.graphql new file mode 100644 index 00000000000..5bfadb5b16b --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ResetReflectionGroupsSuccess.graphql @@ -0,0 +1,3 @@ +type ResetReflectionGroupsSuccess { + meeting: RetrospectiveMeeting! +} diff --git a/packages/server/graphql/public/typeDefs/ResetRetroMeetingToGroupStagePayload.graphql b/packages/server/graphql/public/typeDefs/ResetRetroMeetingToGroupStagePayload.graphql new file mode 100644 index 00000000000..71fc7a3174c --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ResetRetroMeetingToGroupStagePayload.graphql @@ -0,0 +1,4 @@ +type ResetRetroMeetingToGroupStagePayload { + error: StandardMutationError + meeting: NewMeeting +} diff --git a/packages/server/graphql/public/typeDefs/RetroDiscussStage.graphql b/packages/server/graphql/public/typeDefs/RetroDiscussStage.graphql new file mode 100644 index 00000000000..22a67c2877f --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RetroDiscussStage.graphql @@ -0,0 +1,120 @@ +""" +The stage where the team discusses a single theme +""" +type RetroDiscussStage implements NewMeetingStage & DiscussionThreadStage { + """ + stageId, shortid + """ + id: ID! + + """ + The datetime the stage was completed + """ + endAt: DateTime + + """ + foreign key. try using meeting + """ + meetingId: ID! + + """ + The meeting this stage belongs to + """ + meeting: NewMeeting + + """ + true if the facilitator has completed this stage, else false. Should be boolean(endAt) + """ + isComplete: Boolean! + + """ + true if any meeting participant can navigate to this stage + """ + isNavigable: Boolean! + + """ + true if the facilitator can navigate to this stage + """ + isNavigableByFacilitator: Boolean! + + """ + The phase this stage belongs to + """ + phase: NewMeetingPhase + + """ + The type of the phase + """ + phaseType: NewMeetingPhaseTypeEnum + + """ + The datetime the stage was started + """ + startAt: DateTime + + """ + Number of times the facilitator has visited this stage + """ + viewCount: Int + + """ + true if a time limit is set, false if end time is set, null if neither is set + """ + isAsync: Boolean + + """ + true if the viewer is ready to advance, else false + """ + isViewerReady: Boolean! + + """ + the number of meeting members ready to advance, excluding the facilitator + """ + readyCount: Int! + + """ + The datetime the phase is scheduled to be finished, null if no time limit or end time is set + """ + scheduledEndTime: DateTime + + """ + The suggested ending datetime for a phase to be completed async, null if not enough data to make a suggestion + """ + suggestedEndTime: DateTime + + """ + The suggested time limit for a phase to be completed together, null if not enough data to make a suggestion + """ + suggestedTimeLimit: Float + teamId: ID! + + """ + The number of milliseconds left before the scheduled end time. Useful for unsynced client clocks. null if scheduledEndTime is null + """ + timeRemaining: Float + + """ + The ID to find the discussion that goes in the stage + """ + discussionId: ID! + + """ + The discussion about the stage or a dummy data when there is no disscussion + """ + discussion: Discussion! + + """ + foreign key. use reflectionGroup + """ + reflectionGroupId: ID! + + """ + the group that is the focal point of the discussion + """ + reflectionGroup: RetroReflectionGroup! + + """ + The sort order for reprioritizing discussion topics + """ + sortOrder: Float! +} diff --git a/packages/server/graphql/public/typeDefs/RetroReflectionGroup.graphql b/packages/server/graphql/public/typeDefs/RetroReflectionGroup.graphql new file mode 100644 index 00000000000..8d7ff3cf2b7 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RetroReflectionGroup.graphql @@ -0,0 +1,87 @@ +""" +A reflection group created during the group phase of a retrospective +""" +type RetroReflectionGroup { + """ + shortid + """ + id: ID! + + """ + A list of users currently commenting + """ + commentors: [CommentorDetails!] + @deprecated(reason: "Moved to ThreadConnection. Can remove Jun-01-2021") + + """ + The timestamp the meeting was created + """ + createdAt: DateTime! + + """ + True if the group has not been removed, else false + """ + isActive: Boolean! + + """ + The foreign key to link a reflection group to its meeting + """ + meetingId: ID! + + """ + The retrospective meeting this reflection was created in + """ + meeting: RetrospectiveMeeting! + prompt: ReflectPrompt! + + """ + The foreign key to link a reflection group to its prompt. Immutable. + """ + promptId: ID! + reflections: [RetroReflection!]! + + """ + Our auto-suggested title, to be compared to the actual title for analytics + """ + smartTitle: String + + """ + The sort order of the reflection group + """ + sortOrder: Float! + + """ + The team that is running the retro + """ + team: Team + + """ + The title of the grouping of the retrospective reflections + """ + title: String + + """ + true if a user wrote the title, else false + """ + titleIsUserDefined: Boolean! + + """ + The timestamp the meeting was updated at + """ + updatedAt: DateTime + + """ + A list of voterIds (userIds). Not available to team to preserve anonymity + """ + voterIds: [ID!]! + + """ + The number of votes this group has received + """ + voteCount: Int! + + """ + The number of votes the viewer has given this group + """ + viewerVoteCount: Int +} diff --git a/packages/server/graphql/public/typeDefs/RetrospectiveMeeting.graphql b/packages/server/graphql/public/typeDefs/RetrospectiveMeeting.graphql index f9ff31de25e..3f76c149e84 100644 --- a/packages/server/graphql/public/typeDefs/RetrospectiveMeeting.graphql +++ b/packages/server/graphql/public/typeDefs/RetrospectiveMeeting.graphql @@ -1,33 +1,3 @@ -""" -A suggested reflection group created by OpenAI' -""" -type AutogroupReflectionGroup { - """ - The smart title for the reflection group created by OpenAI - """ - groupTitle: String! - - """ - The ids of the reflections in the group - """ - reflectionIds: [ID!]! -} - -""" -A block of the meeting transcription with a speaker and text -""" -type TranscriptBlock { - """ - The speaker who said the words - """ - speaker: String! - - """ - The words that the speaker said - """ - words: String! -} - """ A retrospective meeting """ @@ -116,7 +86,6 @@ type RetrospectiveMeeting implements NewMeeting { The meeting series this meeting is associated with if the meeting is recurring """ meetingSeries: MeetingSeries - meetingType: MeetingTypeEnum! """ @@ -153,7 +122,6 @@ type RetrospectiveMeeting implements NewMeeting { The time the meeting summary was emailed to the team """ summarySentAt: DateTime - teamId: ID! """ diff --git a/packages/server/graphql/public/typeDefs/RetrospectiveMeetingMember.graphql b/packages/server/graphql/public/typeDefs/RetrospectiveMeetingMember.graphql new file mode 100644 index 00000000000..c0cb2ccc6f8 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RetrospectiveMeetingMember.graphql @@ -0,0 +1,34 @@ +""" +All the meeting specifics for a user in a retro meeting +""" +type RetrospectiveMeetingMember implements MeetingMember { + """ + A composite of userId::meetingId + """ + id: ID! + + """ + true if present, false if absent, else null + """ + isCheckedIn: Boolean + @deprecated( + reason: "Members are checked in when they enter the meeting now & not created beforehand" + ) + meetingId: ID! + meetingType: MeetingTypeEnum! + teamId: ID! + teamMember: TeamMember! + user: User! + userId: ID! + + """ + The last time a meeting was updated (stage completed, finished, etc) + """ + updatedAt: DateTime! + + """ + The tasks assigned to members during the meeting + """ + tasks: [Task!]! + votesRemaining: Int! +} diff --git a/packages/server/graphql/public/typeDefs/RetrospectiveMeetingSettings.graphql b/packages/server/graphql/public/typeDefs/RetrospectiveMeetingSettings.graphql new file mode 100644 index 00000000000..aa85e82872c --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RetrospectiveMeetingSettings.graphql @@ -0,0 +1,90 @@ +""" +The retro-specific meeting settings +""" +type RetrospectiveMeetingSettings implements TeamMeetingSettings { + id: ID! + + """ + The type of meeting these settings apply to + """ + meetingType: MeetingTypeEnum! + + """ + The broad phase types that will be addressed during the meeting + """ + phaseTypes: [NewMeetingPhaseTypeEnum!]! + + """ + FK + """ + teamId: ID! + + """ + The team these settings belong to + """ + team: Team! + + """ + The total number of votes each team member receives for the voting phase + """ + totalVotes: Int! + + """ + The maximum number of votes a team member can vote for a single reflection group + """ + maxVotesPerGroup: Int! + + """ + Disables anonymity of reflections + """ + disableAnonymity: Boolean! + + """ + FK. The template that will be used to start the retrospective + """ + selectedTemplateId: ID! + + """ + The template that will be used to start the retrospective + """ + selectedTemplate: ReflectTemplate! + + """ + The list of templates used to start a retrospective + """ + reflectTemplates: [ReflectTemplate!]! + + """ + The list of templates used to start a retrospective + """ + teamTemplates: [ReflectTemplate!]! + + """ + The list of templates shared across the organization to start a retrospective + """ + organizationTemplates( + first: Int! + + """ + The cursor, which is the templateId + """ + after: ID + ): ReflectTemplateConnection! + + """ + The list of templates shared across the organization to start a retrospective + """ + publicTemplates( + first: Int! + + """ + The cursor, which is the templateId + """ + after: ID + ): ReflectTemplateConnection! + + """ + The meeting URL that we will transcribe; stored in settings until the meeting starts + """ + videoMeetingURL: String +} diff --git a/packages/server/graphql/public/typeDefs/RevealTeamHealthVotesPayload.graphql b/packages/server/graphql/public/typeDefs/RevealTeamHealthVotesPayload.graphql new file mode 100644 index 00000000000..36e2251fdd7 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RevealTeamHealthVotesPayload.graphql @@ -0,0 +1 @@ +union RevealTeamHealthVotesPayload = ErrorPayload | RevealTeamHealthVotesSuccess diff --git a/packages/server/graphql/public/typeDefs/RevealTeamHealthVotesSuccess.graphql b/packages/server/graphql/public/typeDefs/RevealTeamHealthVotesSuccess.graphql new file mode 100644 index 00000000000..4f8c1bd329a --- /dev/null +++ b/packages/server/graphql/public/typeDefs/RevealTeamHealthVotesSuccess.graphql @@ -0,0 +1,5 @@ +type RevealTeamHealthVotesSuccess { + meetingId: ID! + stageId: ID! + stage: TeamHealthStage! +} diff --git a/packages/server/graphql/public/typeDefs/SAML.graphql b/packages/server/graphql/public/typeDefs/SAML.graphql index 350fd9689cf..883813c9f03 100644 --- a/packages/server/graphql/public/typeDefs/SAML.graphql +++ b/packages/server/graphql/public/typeDefs/SAML.graphql @@ -26,7 +26,6 @@ type SAML { An immutable URL used to retrieve the metadata. If metadata is present but URL is unknown it will be `Unknown` """ metadataURL: String - createdAt: DateTime! updatedAt: DateTime! @@ -50,8 +49,3 @@ type SAML { """ organization: Organization } -type ParseSAMLMetadataSuccess { - url: String! -} - -union ParseSAMLMetadataPayload = ErrorPayload | ParseSAMLMetadataSuccess diff --git a/packages/server/graphql/public/typeDefs/SelectTemplatePayload.graphql b/packages/server/graphql/public/typeDefs/SelectTemplatePayload.graphql new file mode 100644 index 00000000000..fd2d05de3a7 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/SelectTemplatePayload.graphql @@ -0,0 +1,4 @@ +type SelectTemplatePayload { + error: StandardMutationError + meetingSettings: TeamMeetingSettings +} diff --git a/packages/server/graphql/public/typeDefs/ServiceEnum.graphql b/packages/server/graphql/public/typeDefs/ServiceEnum.graphql new file mode 100644 index 00000000000..ac2d7cd26c9 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ServiceEnum.graphql @@ -0,0 +1,10 @@ +enum ServiceEnum { + PARABOL + github + jira + gitlab + mattermost + jiraServer + gcal + azureDevOps +} diff --git a/packages/server/graphql/public/typeDefs/ServiceField.graphql b/packages/server/graphql/public/typeDefs/ServiceField.graphql new file mode 100644 index 00000000000..c92184c91fd --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ServiceField.graphql @@ -0,0 +1,14 @@ +""" +A field that exists on a 3rd party service +""" +type ServiceField { + """ + The name of the field as provided by the service + """ + name: String! + + """ + The field type, to be used for validation and analytics + """ + type: String! +} diff --git a/packages/server/graphql/public/typeDefs/SetAppLocationPayload.graphql b/packages/server/graphql/public/typeDefs/SetAppLocationPayload.graphql new file mode 100644 index 00000000000..08d1e9acd98 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/SetAppLocationPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for SetAppLocationPayload +""" +union SetAppLocationPayload = ErrorPayload | SetAppLocationSuccess diff --git a/packages/server/graphql/public/typeDefs/SetAppLocationSuccess.graphql b/packages/server/graphql/public/typeDefs/SetAppLocationSuccess.graphql new file mode 100644 index 00000000000..ffcf1fc5f47 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/SetAppLocationSuccess.graphql @@ -0,0 +1,6 @@ +type SetAppLocationSuccess { + """ + the user with the updated location + """ + user: User! +} diff --git a/packages/server/graphql/public/typeDefs/SetDefaultSlackChannelPayload.graphql b/packages/server/graphql/public/typeDefs/SetDefaultSlackChannelPayload.graphql new file mode 100644 index 00000000000..121e09a5f4a --- /dev/null +++ b/packages/server/graphql/public/typeDefs/SetDefaultSlackChannelPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for SetDefaultSlackChannelPayload +""" +union SetDefaultSlackChannelPayload = ErrorPayload | SetDefaultSlackChannelSuccess diff --git a/packages/server/graphql/public/typeDefs/SetDefaultSlackChannelSuccess.graphql b/packages/server/graphql/public/typeDefs/SetDefaultSlackChannelSuccess.graphql new file mode 100644 index 00000000000..65e566ab5b3 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/SetDefaultSlackChannelSuccess.graphql @@ -0,0 +1,11 @@ +type SetDefaultSlackChannelSuccess { + """ + The id of the slack channel that is now the default slack channel + """ + slackChannelId: ID! + + """ + The team member with the updated slack channel + """ + teamMember: TeamMember! +} diff --git a/packages/server/graphql/public/typeDefs/SetMeetingSettingsPayload.graphql b/packages/server/graphql/public/typeDefs/SetMeetingSettingsPayload.graphql new file mode 100644 index 00000000000..81e52579dce --- /dev/null +++ b/packages/server/graphql/public/typeDefs/SetMeetingSettingsPayload.graphql @@ -0,0 +1,4 @@ +type SetMeetingSettingsPayload { + error: StandardMutationError + settings: TeamMeetingSettings +} diff --git a/packages/server/graphql/public/typeDefs/SetNotificationStatusPayload.graphql b/packages/server/graphql/public/typeDefs/SetNotificationStatusPayload.graphql new file mode 100644 index 00000000000..ea387234af6 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/SetNotificationStatusPayload.graphql @@ -0,0 +1,8 @@ +type SetNotificationStatusPayload { + error: StandardMutationError + + """ + The updated notification + """ + notification: Notification +} diff --git a/packages/server/graphql/public/typeDefs/SetOrgUserRolePayload.graphql b/packages/server/graphql/public/typeDefs/SetOrgUserRolePayload.graphql new file mode 100644 index 00000000000..14eef286386 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/SetOrgUserRolePayload.graphql @@ -0,0 +1,4 @@ +""" +Return value for setOrgUserRole, which could be an error +""" +union SetOrgUserRolePayload = ErrorPayload | SetOrgUserRoleSuccess diff --git a/packages/server/graphql/public/typeDefs/SetOrgUserRoleSuccess.graphql b/packages/server/graphql/public/typeDefs/SetOrgUserRoleSuccess.graphql new file mode 100644 index 00000000000..c96a24131ce --- /dev/null +++ b/packages/server/graphql/public/typeDefs/SetOrgUserRoleSuccess.graphql @@ -0,0 +1,5 @@ +type SetOrgUserRoleSuccess { + organization: Organization! + updatedOrgMember: OrganizationUser! + notificationsAdded: [Notification!]! +} diff --git a/packages/server/graphql/public/typeDefs/SetPhaseFocusPayload.graphql b/packages/server/graphql/public/typeDefs/SetPhaseFocusPayload.graphql new file mode 100644 index 00000000000..3af85f671ba --- /dev/null +++ b/packages/server/graphql/public/typeDefs/SetPhaseFocusPayload.graphql @@ -0,0 +1,5 @@ +type SetPhaseFocusPayload { + error: StandardMutationError + meeting: RetrospectiveMeeting! + reflectPhase: ReflectPhase! +} diff --git a/packages/server/graphql/public/typeDefs/SetPokerSpectatePayload.graphql b/packages/server/graphql/public/typeDefs/SetPokerSpectatePayload.graphql new file mode 100644 index 00000000000..bbc8653a86a --- /dev/null +++ b/packages/server/graphql/public/typeDefs/SetPokerSpectatePayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for SetPokerSpectatePayload +""" +union SetPokerSpectatePayload = ErrorPayload | SetPokerSpectateSuccess diff --git a/packages/server/graphql/public/typeDefs/SetPokerSpectateSuccess.graphql b/packages/server/graphql/public/typeDefs/SetPokerSpectateSuccess.graphql new file mode 100644 index 00000000000..24ade683658 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/SetPokerSpectateSuccess.graphql @@ -0,0 +1,14 @@ +type SetPokerSpectateSuccess { + meetingId: ID! + userId: ID! + + """ + The meeting member with the updated isSpectating value + """ + meetingMember: PokerMeetingMember! + + """ + The stages that were updated if the viewer voted and then changed to spectating + """ + updatedStages: [EstimateStage!]! +} diff --git a/packages/server/graphql/public/typeDefs/SetSlackNotificationPayload.graphql b/packages/server/graphql/public/typeDefs/SetSlackNotificationPayload.graphql new file mode 100644 index 00000000000..8862d6fe0cb --- /dev/null +++ b/packages/server/graphql/public/typeDefs/SetSlackNotificationPayload.graphql @@ -0,0 +1,9 @@ +type SetSlackNotificationPayload { + error: StandardMutationError + slackNotifications: [SlackNotification!] + + """ + The user with updated slack notifications + """ + user: User +} diff --git a/packages/server/graphql/public/typeDefs/SetStageTimerPayload.graphql b/packages/server/graphql/public/typeDefs/SetStageTimerPayload.graphql new file mode 100644 index 00000000000..7cfca6ddb5b --- /dev/null +++ b/packages/server/graphql/public/typeDefs/SetStageTimerPayload.graphql @@ -0,0 +1,8 @@ +type SetStageTimerPayload { + error: StandardMutationError + + """ + The updated stage + """ + stage: NewMeetingStage +} diff --git a/packages/server/graphql/public/typeDefs/SetTaskEstimatePayload.graphql b/packages/server/graphql/public/typeDefs/SetTaskEstimatePayload.graphql new file mode 100644 index 00000000000..77deaf5c3e1 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/SetTaskEstimatePayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for SetTaskEstimatePayload +""" +union SetTaskEstimatePayload = ErrorPayload | SetTaskEstimateSuccess diff --git a/packages/server/graphql/public/typeDefs/SetTaskEstimateSuccess.graphql b/packages/server/graphql/public/typeDefs/SetTaskEstimateSuccess.graphql new file mode 100644 index 00000000000..03a6ebf75ad --- /dev/null +++ b/packages/server/graphql/public/typeDefs/SetTaskEstimateSuccess.graphql @@ -0,0 +1,8 @@ +type SetTaskEstimateSuccess { + task: Task! + + """ + The stage that holds the updated finalScore, if meetingId was provided + """ + stage: EstimateStage +} diff --git a/packages/server/graphql/public/typeDefs/SetTaskHighlightPayload.graphql b/packages/server/graphql/public/typeDefs/SetTaskHighlightPayload.graphql new file mode 100644 index 00000000000..98a547b098c --- /dev/null +++ b/packages/server/graphql/public/typeDefs/SetTaskHighlightPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for SetTaskHighlightPayload +""" +union SetTaskHighlightPayload = ErrorPayload | SetTaskHighlightSuccess diff --git a/packages/server/graphql/public/typeDefs/SetTaskHighlightSuccess.graphql b/packages/server/graphql/public/typeDefs/SetTaskHighlightSuccess.graphql new file mode 100644 index 00000000000..4c1bfc05818 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/SetTaskHighlightSuccess.graphql @@ -0,0 +1,16 @@ +type SetTaskHighlightSuccess { + """ + Meeting where the task is highlighted + """ + meetingId: ID! + + """ + Task which highlight changed + """ + taskId: ID! + + """ + Task which highlight changed + """ + task: Task! +} diff --git a/packages/server/graphql/public/typeDefs/SetTeamHealthVotePayload.graphql b/packages/server/graphql/public/typeDefs/SetTeamHealthVotePayload.graphql new file mode 100644 index 00000000000..a2fd8347b98 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/SetTeamHealthVotePayload.graphql @@ -0,0 +1 @@ +union SetTeamHealthVotePayload = ErrorPayload | SetTeamHealthVoteSuccess diff --git a/packages/server/graphql/public/typeDefs/SetTeamHealthVoteSuccess.graphql b/packages/server/graphql/public/typeDefs/SetTeamHealthVoteSuccess.graphql new file mode 100644 index 00000000000..2fd361716be --- /dev/null +++ b/packages/server/graphql/public/typeDefs/SetTeamHealthVoteSuccess.graphql @@ -0,0 +1,5 @@ +type SetTeamHealthVoteSuccess { + meetingId: ID! + stageId: ID! + stage: TeamHealthStage! +} diff --git a/packages/server/graphql/public/typeDefs/ShareTopicPayload.graphql b/packages/server/graphql/public/typeDefs/ShareTopicPayload.graphql new file mode 100644 index 00000000000..9597100c6d9 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ShareTopicPayload.graphql @@ -0,0 +1,4 @@ +""" +Return value for shareTopic, which could be an error +""" +union ShareTopicPayload = ErrorPayload | ShareTopicSuccess diff --git a/packages/server/graphql/public/typeDefs/ShareTopicSuccess.graphql b/packages/server/graphql/public/typeDefs/ShareTopicSuccess.graphql new file mode 100644 index 00000000000..2024c5ac3e8 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ShareTopicSuccess.graphql @@ -0,0 +1,6 @@ +type ShareTopicSuccess { + """ + Meeting + """ + meeting: NewMeeting +} diff --git a/packages/server/graphql/public/typeDefs/SharingScopeEnum.graphql b/packages/server/graphql/public/typeDefs/SharingScopeEnum.graphql new file mode 100644 index 00000000000..da5a1cd75bc --- /dev/null +++ b/packages/server/graphql/public/typeDefs/SharingScopeEnum.graphql @@ -0,0 +1,8 @@ +""" +The scope of a shareable item +""" +enum SharingScopeEnum { + TEAM + ORGANIZATION + PUBLIC +} diff --git a/packages/server/graphql/public/typeDefs/SlackNotification.graphql b/packages/server/graphql/public/typeDefs/SlackNotification.graphql new file mode 100644 index 00000000000..cb22cd44f4b --- /dev/null +++ b/packages/server/graphql/public/typeDefs/SlackNotification.graphql @@ -0,0 +1,15 @@ +""" +an event trigger and slack channel to receive it +""" +type SlackNotification { + id: ID! + event: SlackNotificationEventEnum! + eventType: SlackNotificationEventTypeEnum! + + """ + null if no notification is to be sent + """ + channelId: ID + teamId: ID! + userId: ID! +} diff --git a/packages/server/graphql/public/typeDefs/SlackNotificationEventEnum.graphql b/packages/server/graphql/public/typeDefs/SlackNotificationEventEnum.graphql new file mode 100644 index 00000000000..24bdf2e39a1 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/SlackNotificationEventEnum.graphql @@ -0,0 +1,11 @@ +""" +The event that triggers a slack notification +""" +enum SlackNotificationEventEnum { + meetingStart + meetingEnd + MEETING_STAGE_TIME_LIMIT_END + MEETING_STAGE_TIME_LIMIT_START + TOPIC_SHARED + STANDUP_RESPONSE_SUBMITTED +} diff --git a/packages/server/graphql/public/typeDefs/SlackNotificationEventTypeEnum.graphql b/packages/server/graphql/public/typeDefs/SlackNotificationEventTypeEnum.graphql new file mode 100644 index 00000000000..e8cd0eee9c6 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/SlackNotificationEventTypeEnum.graphql @@ -0,0 +1,14 @@ +""" +The type of event for a slack notification +""" +enum SlackNotificationEventTypeEnum { + """ + notification that concerns the whole team + """ + team + + """ + notification that concerns a single member on the team + """ + member +} diff --git a/packages/server/graphql/public/typeDefs/StandardMutationError.graphql b/packages/server/graphql/public/typeDefs/StandardMutationError.graphql new file mode 100644 index 00000000000..3ed1bcef44f --- /dev/null +++ b/packages/server/graphql/public/typeDefs/StandardMutationError.graphql @@ -0,0 +1,11 @@ +type StandardMutationError { + """ + The title of the error + """ + title: String + + """ + The full error + """ + message: String! +} diff --git a/packages/server/graphql/public/typeDefs/StartCheckInPayload.graphql b/packages/server/graphql/public/typeDefs/StartCheckInPayload.graphql new file mode 100644 index 00000000000..863f3749b23 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/StartCheckInPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for StartCheckInPayload +""" +union StartCheckInPayload = StartCheckInSuccess | ErrorPayload diff --git a/packages/server/graphql/public/typeDefs/StartCheckInSuccess.graphql b/packages/server/graphql/public/typeDefs/StartCheckInSuccess.graphql new file mode 100644 index 00000000000..5f2d2395da7 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/StartCheckInSuccess.graphql @@ -0,0 +1,6 @@ +type StartCheckInSuccess { + meeting: ActionMeeting! + meetingId: ID! + team: Team! + hasGcalError: Boolean +} diff --git a/packages/server/graphql/public/typeDefs/StartDraggingReflectionPayload.graphql b/packages/server/graphql/public/typeDefs/StartDraggingReflectionPayload.graphql new file mode 100644 index 00000000000..864c24c719f --- /dev/null +++ b/packages/server/graphql/public/typeDefs/StartDraggingReflectionPayload.graphql @@ -0,0 +1,13 @@ +type StartDraggingReflectionPayload { + error: StandardMutationError + + """ + The proposed start/end of a drag. Subject to race conditions, it is up to the client to decide to accept or ignore + """ + remoteDrag: RemoteReflectionDrag + meeting: NewMeeting + meetingId: ID + reflection: RetroReflection + reflectionId: ID + teamId: ID +} diff --git a/packages/server/graphql/public/typeDefs/StartRetrospectivePayload.graphql b/packages/server/graphql/public/typeDefs/StartRetrospectivePayload.graphql new file mode 100644 index 00000000000..736aac0d4d3 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/StartRetrospectivePayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for StartRetrospectivePayload +""" +union StartRetrospectivePayload = ErrorPayload | StartRetrospectiveSuccess diff --git a/packages/server/graphql/public/typeDefs/StartRetrospectiveSuccess.graphql b/packages/server/graphql/public/typeDefs/StartRetrospectiveSuccess.graphql new file mode 100644 index 00000000000..ac0669fd220 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/StartRetrospectiveSuccess.graphql @@ -0,0 +1,6 @@ +type StartRetrospectiveSuccess { + meeting: RetrospectiveMeeting! + meetingId: ID! + team: Team! + hasGcalError: Boolean +} diff --git a/packages/server/graphql/public/typeDefs/StartSprintPokerPayload.graphql b/packages/server/graphql/public/typeDefs/StartSprintPokerPayload.graphql new file mode 100644 index 00000000000..c89352ba8b6 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/StartSprintPokerPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for StartSprintPokerPayload +""" +union StartSprintPokerPayload = ErrorPayload | StartSprintPokerSuccess diff --git a/packages/server/graphql/public/typeDefs/StartSprintPokerSuccess.graphql b/packages/server/graphql/public/typeDefs/StartSprintPokerSuccess.graphql new file mode 100644 index 00000000000..8b02b29c108 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/StartSprintPokerSuccess.graphql @@ -0,0 +1,11 @@ +type StartSprintPokerSuccess { + meetingId: ID! + meeting: PokerMeeting! + team: Team! + teamId: ID! + + """ + True if there was an error creating the Google Calendar event. False if there was no error or no gcalInput was provided. + """ + hasGcalError: Boolean! +} diff --git a/packages/server/graphql/public/typeDefs/StartTeamPromptPayload.graphql b/packages/server/graphql/public/typeDefs/StartTeamPromptPayload.graphql new file mode 100644 index 00000000000..0df9fdda811 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/StartTeamPromptPayload.graphql @@ -0,0 +1,4 @@ +""" +Return value for updateRecurrenceSettings, which could be an error +""" +union StartTeamPromptPayload = StartTeamPromptSuccess | ErrorPayload diff --git a/packages/server/graphql/public/typeDefs/StartTeamPromptSuccess.graphql b/packages/server/graphql/public/typeDefs/StartTeamPromptSuccess.graphql new file mode 100644 index 00000000000..dfbfaab320a --- /dev/null +++ b/packages/server/graphql/public/typeDefs/StartTeamPromptSuccess.graphql @@ -0,0 +1,16 @@ +type StartTeamPromptSuccess { + """ + The started meeting + """ + meeting: TeamPromptMeeting! + + """ + The team that started the meeting + """ + team: Team! + + """ + True if there was an error creating the Google Calendar event. False if there was no error or no gcalInput was provided. + """ + hasGcalError: Boolean +} diff --git a/packages/server/graphql/public/typeDefs/StripeFailPaymentPayload.graphql b/packages/server/graphql/public/typeDefs/StripeFailPaymentPayload.graphql new file mode 100644 index 00000000000..7345c9eefc2 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/StripeFailPaymentPayload.graphql @@ -0,0 +1,9 @@ +type StripeFailPaymentPayload { + error: StandardMutationError + organization: Organization + + """ + The notification to a billing leader stating the payment was rejected + """ + notification: NotifyPaymentRejected! +} diff --git a/packages/server/graphql/public/typeDefs/Subscription.graphql b/packages/server/graphql/public/typeDefs/Subscription.graphql new file mode 100644 index 00000000000..7329c653d66 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/Subscription.graphql @@ -0,0 +1,7 @@ +type Subscription { + meetingSubscription(meetingId: ID!): MeetingSubscriptionPayload! + notificationSubscription: NotificationSubscriptionPayload! + organizationSubscription: OrganizationSubscriptionPayload! + taskSubscription: TaskSubscriptionPayload! + teamSubscription: TeamSubscriptionPayload! +} diff --git a/packages/server/graphql/public/typeDefs/Subscriptions.graphql b/packages/server/graphql/public/typeDefs/Subscriptions.graphql deleted file mode 100644 index 3f2e1a48de5..00000000000 --- a/packages/server/graphql/public/typeDefs/Subscriptions.graphql +++ /dev/null @@ -1,195 +0,0 @@ -type Subscription { - meetingSubscription(meetingId: ID!): MeetingSubscriptionPayload! - notificationSubscription: NotificationSubscriptionPayload! - organizationSubscription: OrganizationSubscriptionPayload! - taskSubscription: TaskSubscriptionPayload! - teamSubscription: TeamSubscriptionPayload! -} - -type MeetingSubscriptionPayload { - fieldName: String! - AddTranscriptionBotSuccess: AddTranscriptionBotSuccess - AutogroupSuccess: AutogroupSuccess - AddCommentSuccess: AddCommentSuccess - CreatePollSuccess: CreatePollSuccess - AddReactjiToReflectionSuccess: AddReactjiToReflectionSuccess - AddReactjiToReactableSuccess: AddReactjiToReactableSuccess - CreateReflectionPayload: CreateReflectionPayload - DeleteCommentSuccess: DeleteCommentSuccess - DragDiscussionTopicPayload: DragDiscussionTopicPayload - DragEstimatingTaskSuccess: DragEstimatingTaskSuccess - EditCommentingSuccess: EditCommentingSuccess - EditReflectionPayload: EditReflectionPayload - EndDraggingReflectionPayload: EndDraggingReflectionPayload - EndRetrospectiveSuccess: EndRetrospectiveSuccess - EndTeamPromptSuccess: EndTeamPromptSuccess - FlagReadyToAdvanceSuccess: FlagReadyToAdvanceSuccess - GenerateGroupsSuccess: GenerateGroupsSuccess - NewMeetingCheckInPayload: NewMeetingCheckInPayload - PromoteNewMeetingFacilitatorPayload: PromoteNewMeetingFacilitatorPayload - RemoveReflectionPayload: RemoveReflectionPayload - ResetReflectionGroupsSuccess: ResetReflectionGroupsSuccess - ResetRetroMeetingToGroupStagePayload: ResetRetroMeetingToGroupStagePayload - RevealTeamHealthVotesSuccess: RevealTeamHealthVotesSuccess - SetPhaseFocusPayload: SetPhaseFocusPayload - SetStageTimerPayload: SetStageTimerPayload - SetTaskHighlightSuccess: SetTaskHighlightSuccess - SetTeamHealthVoteSuccess: SetTeamHealthVoteSuccess - StartDraggingReflectionPayload: StartDraggingReflectionPayload - UpdateCommentContentSuccess: UpdateCommentContentSuccess - UpdateDragLocationPayload: UpdateDragLocationPayload - UpdateMeetingPromptSuccess: UpdateMeetingPromptSuccess - UpdateNewCheckInQuestionPayload: UpdateNewCheckInQuestionPayload - UpdatedNotification: UpdatedNotification - UpdateReflectionContentPayload: UpdateReflectionContentPayload - UpdateReflectionGroupTitlePayload: UpdateReflectionGroupTitlePayload - UpdateRetroMaxVotesSuccess: UpdateRetroMaxVotesSuccess - UpdatePokerScopeSuccess: UpdatePokerScopeSuccess - VoteForReflectionGroupPayload: VoteForReflectionGroupPayload - VoteForPokerStorySuccess: VoteForPokerStorySuccess - PokerRevealVotesSuccess: PokerRevealVotesSuccess - PokerResetDimensionSuccess: PokerResetDimensionSuccess - PokerAnnounceDeckHoverSuccess: PokerAnnounceDeckHoverSuccess - JoinMeetingSuccess: JoinMeetingSuccess - SetPokerSpectateSuccess: SetPokerSpectateSuccess - SetTaskEstimateSuccess: SetTaskEstimateSuccess - UpsertTeamPromptResponseSuccess: UpsertTeamPromptResponseSuccess - UpdateMeetingTemplateSuccess: UpdateMeetingTemplateSuccess -} - -type NotificationSubscriptionPayload { - fieldName: String! - AcceptTeamInvitationPayload: AcceptTeamInvitationPayload - AddNewFeaturePayload: AddNewFeaturePayload - AddOrgPayload: AddOrgPayload - AddTeamPayload: AddTeamPayload - ArchiveTimelineEventSuccess: ArchiveTimelineEventSuccess - SetNotificationStatusPayload: SetNotificationStatusPayload - CreateTaskPayload: CreateTaskPayload - DeleteTaskPayload: DeleteTaskPayload - DisconnectSocketPayload: DisconnectSocketPayload - EndCheckInSuccess: EndCheckInSuccess - EndRetrospectiveSuccess: EndRetrospectiveSuccess - InvalidateSessionsPayload: InvalidateSessionsPayload - InviteToTeamPayload: InviteToTeamPayload - MeetingStageTimeLimitPayload: MeetingStageTimeLimitPayload - RemoveOrgUserPayload: RemoveOrgUserPayload - StripeFailPaymentPayload: StripeFailPaymentPayload - PersistJiraSearchQuerySuccess: PersistJiraSearchQuerySuccess - User: User - AuthTokenPayload: AuthTokenPayload - PersistGitHubSearchQuerySuccess: PersistGitHubSearchQuerySuccess - JiraServerIssue: JiraServerIssue - AddedNotification: AddedNotification - UpdateFeatureFlagPayload: UpdateFeatureFlagPayload - JiraIssue: JiraIssue - UpdatedNotification: UpdatedNotification - RemoveIntegrationSearchQuerySuccess: RemoveIntegrationSearchQuerySuccess - PersistIntegrationSearchQuerySuccess: PersistIntegrationSearchQuerySuccess -} - -type OrganizationSubscriptionPayload { - fieldName: String! - AddOrgPayload: AddOrgPayload - ArchiveOrganizationPayload: ArchiveOrganizationPayload - DowngradeToStarterPayload: DowngradeToStarterPayload - PayLaterPayload: PayLaterPayload - RemoveOrgUserPayload: RemoveOrgUserPayload - SetOrgUserRoleSuccess: SetOrgUserRoleSuccess - OldUpdateCreditCardPayload: OldUpdateCreditCardPayload - UpdateCreditCardPayload: UpdateCreditCardPayload - UpdateOrgPayload: UpdateOrgPayload - OldUpgradeToTeamTierPayload: OldUpgradeToTeamTierPayload - UpgradeToTeamTierSuccess: UpgradeToTeamTierSuccess - UpdateTemplateScopeSuccess: UpdateTemplateScopeSuccess -} - -type TaskSubscriptionPayload { - fieldName: String! - ChangeTaskTeamPayload: ChangeTaskTeamPayload - CreateTaskIntegrationPayload: CreateTaskIntegrationPayload - CreateTaskPayload: CreateTaskPayload - DeleteTaskPayload: DeleteTaskPayload - EditTaskPayload: EditTaskPayload - RemoveOrgUserPayload: RemoveOrgUserPayload - RemoveTeamMemberPayload: RemoveTeamMemberPayload - UpdateTaskPayload: UpdateTaskPayload - UpdateTaskDueDatePayload: UpdateTaskDueDatePayload -} - -type TeamSubscriptionPayload { - fieldName: String! - AcceptTeamInvitationPayload: AcceptTeamInvitationPayload - AddAgendaItemPayload: AddAgendaItemPayload - AddAtlassianAuthPayload: AddAtlassianAuthPayload - AddGitHubAuthPayload: AddGitHubAuthPayload - AddIntegrationProviderSuccess: AddIntegrationProviderSuccess - AddSlackAuthPayload: AddSlackAuthPayload - AddTeamPayload: AddTeamPayload - ArchiveTeamPayload: ArchiveTeamPayload - BatchArchiveTasksSuccess: BatchArchiveTasksSuccess - DenyPushInvitationPayload: DenyPushInvitationPayload - DowngradeToStarterPayload: DowngradeToStarterPayload - EndCheckInSuccess: EndCheckInSuccess - EndRetrospectiveSuccess: EndRetrospectiveSuccess - EndSprintPokerSuccess: EndSprintPokerSuccess - EndTeamPromptSuccess: EndTeamPromptSuccess - NavigateMeetingPayload: NavigateMeetingPayload - PushInvitationPayload: PushInvitationPayload - PromoteToTeamLeadPayload: PromoteToTeamLeadPayload - RemoveAgendaItemPayload: RemoveAgendaItemPayload - RemoveOrgUserPayload: RemoveOrgUserPayload - RemoveTeamMemberPayload: RemoveTeamMemberPayload - RenameMeetingSuccess: RenameMeetingSuccess - SelectTemplatePayload: SelectTemplatePayload - StartCheckInSuccess: StartCheckInSuccess - StartRetrospectiveSuccess: StartRetrospectiveSuccess - StartSprintPokerSuccess: StartSprintPokerSuccess - StartTeamPromptSuccess: StartTeamPromptSuccess - UpdateAgendaItemPayload: UpdateAgendaItemPayload - OldUpdateCreditCardPayload: OldUpdateCreditCardPayload - UpdateCreditCardPayload: UpdateCreditCardPayload - UpdateTeamNamePayload: UpdateTeamNamePayload - OldUpgradeToTeamTierPayload: OldUpgradeToTeamTierPayload - UpgradeToTeamTierSuccess: UpgradeToTeamTierSuccess - AddReflectTemplateSuccess: AddReflectTemplateSuccess - AddPokerTemplateSuccess: AddPokerTemplateSuccess - AddReflectTemplatePromptPayload: AddReflectTemplatePromptPayload - AddPokerTemplateDimensionPayload: AddPokerTemplateDimensionPayload - AddPokerTemplateScalePayload: AddPokerTemplateScalePayload - AddPokerTemplateScaleValuePayload: AddPokerTemplateScaleValuePayload - MoveReflectTemplatePromptPayload: MoveReflectTemplatePromptPayload - MovePokerTemplateDimensionPayload: MovePokerTemplateDimensionPayload - ReflectTemplatePromptUpdateDescriptionPayload: ReflectTemplatePromptUpdateDescriptionPayload - PokerTemplateDimensionUpdateDescriptionPayload: PokerTemplateDimensionUpdateDescriptionPayload - ReflectTemplatePromptUpdateGroupColorPayload: ReflectTemplatePromptUpdateGroupColorPayload - RemoveAtlassianAuthPayload: RemoveAtlassianAuthPayload - RemoveGitHubAuthPayload: RemoveGitHubAuthPayload - RemoveSlackAuthPayload: RemoveSlackAuthPayload - RemoveReflectTemplatePayload: RemoveReflectTemplatePayload - RemovePokerTemplatePayload: RemovePokerTemplatePayload - RemoveReflectTemplatePromptPayload: RemoveReflectTemplatePromptPayload - RemovePokerTemplateDimensionPayload: RemovePokerTemplateDimensionPayload - RemovePokerTemplateScalePayload: RemovePokerTemplateScalePayload - RenameMeetingTemplatePayload: RenameMeetingTemplatePayload - RenamePokerTemplatePayload: RenamePokerTemplatePayload - RenameReflectTemplatePromptPayload: RenameReflectTemplatePromptPayload - RenamePokerTemplateDimensionPayload: RenamePokerTemplateDimensionPayload - RenamePokerTemplateScalePayload: RenamePokerTemplateScalePayload - RemovePokerTemplateScaleValuePayload: RemovePokerTemplateScaleValuePayload - SetMeetingSettingsPayload: SetMeetingSettingsPayload - SetSlackNotificationPayload: SetSlackNotificationPayload - UpdatePokerTemplateDimensionScalePayload: UpdatePokerTemplateDimensionScalePayload - UpdatePokerTemplateScaleValuePayload: UpdatePokerTemplateScaleValuePayload - UpdateUserProfilePayload: UpdateUserProfilePayload - PersistJiraSearchQuerySuccess: PersistJiraSearchQuerySuccess - MovePokerTemplateScaleValueSuccess: MovePokerTemplateScaleValueSuccess - UpdateAzureDevOpsDimensionFieldSuccess: UpdateAzureDevOpsDimensionFieldSuccess - SetDefaultSlackChannelSuccess: SetDefaultSlackChannelSuccess - SetAppLocationSuccess: SetAppLocationSuccess - UpdateGitHubDimensionFieldSuccess: UpdateGitHubDimensionFieldSuccess - UpdateIntegrationProviderSuccess: UpdateIntegrationProviderSuccess - UpdateRecurrenceSettingsSuccess: UpdateRecurrenceSettingsSuccess - UpdateDimensionFieldSuccess: UpdateDimensionFieldSuccess - UpdateTemplateCategorySuccess: UpdateTemplateCategorySuccess -} diff --git a/packages/server/graphql/public/typeDefs/SuggestedAction.graphql b/packages/server/graphql/public/typeDefs/SuggestedAction.graphql new file mode 100644 index 00000000000..72f462bafc7 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/SuggestedAction.graphql @@ -0,0 +1,39 @@ +""" +A past event that is important to the viewer +""" +interface SuggestedAction { + """ + shortid + """ + id: ID! + + """ + * The timestamp the action was created at + """ + createdAt: DateTime! + + """ + The priority of the suggested action compared to other suggested actions (smaller number is higher priority) + """ + priority: Float + + """ + * The timestamp the action was removed at + """ + removedAt: DateTime! + + """ + The specific type of suggested action + """ + type: SuggestedActionTypeEnum! + + """ + * The userId this action is for + """ + userId: ID! + + """ + The user than can see this event + """ + user: User! +} diff --git a/packages/server/graphql/public/typeDefs/SuggestedActionCreateNewTeam.graphql b/packages/server/graphql/public/typeDefs/SuggestedActionCreateNewTeam.graphql new file mode 100644 index 00000000000..3d188acbbc1 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/SuggestedActionCreateNewTeam.graphql @@ -0,0 +1,39 @@ +""" +a suggestion to try a retro with your team +""" +type SuggestedActionCreateNewTeam implements SuggestedAction { + """ + shortid + """ + id: ID! + + """ + * The timestamp the action was created at + """ + createdAt: DateTime! + + """ + The priority of the suggested action compared to other suggested actions (smaller number is higher priority) + """ + priority: Float + + """ + * The timestamp the action was removed at + """ + removedAt: DateTime! + + """ + The specific type of suggested action + """ + type: SuggestedActionTypeEnum! + + """ + * The userId this action is for + """ + userId: ID! + + """ + The user than can see this event + """ + user: User! +} diff --git a/packages/server/graphql/public/typeDefs/SuggestedActionInviteYourTeam.graphql b/packages/server/graphql/public/typeDefs/SuggestedActionInviteYourTeam.graphql new file mode 100644 index 00000000000..d39f8126a2e --- /dev/null +++ b/packages/server/graphql/public/typeDefs/SuggestedActionInviteYourTeam.graphql @@ -0,0 +1,49 @@ +""" +a suggestion to invite others to your team +""" +type SuggestedActionInviteYourTeam implements SuggestedAction { + """ + shortid + """ + id: ID! + + """ + * The timestamp the action was created at + """ + createdAt: DateTime! + + """ + The priority of the suggested action compared to other suggested actions (smaller number is higher priority) + """ + priority: Float + + """ + * The timestamp the action was removed at + """ + removedAt: DateTime! + + """ + The specific type of suggested action + """ + type: SuggestedActionTypeEnum! + + """ + * The userId this action is for + """ + userId: ID! + + """ + The user than can see this event + """ + user: User! + + """ + The teamId that we suggest you should invite people to + """ + teamId: ID! + + """ + The team you should invite people to + """ + team: Team! +} diff --git a/packages/server/graphql/public/typeDefs/SuggestedActionTryActionMeeting.graphql b/packages/server/graphql/public/typeDefs/SuggestedActionTryActionMeeting.graphql new file mode 100644 index 00000000000..54e984ffd5d --- /dev/null +++ b/packages/server/graphql/public/typeDefs/SuggestedActionTryActionMeeting.graphql @@ -0,0 +1,49 @@ +""" +a suggestion to try a retro with your team +""" +type SuggestedActionTryActionMeeting implements SuggestedAction { + """ + shortid + """ + id: ID! + + """ + * The timestamp the action was created at + """ + createdAt: DateTime! + + """ + The priority of the suggested action compared to other suggested actions (smaller number is higher priority) + """ + priority: Float + + """ + * The timestamp the action was removed at + """ + removedAt: DateTime! + + """ + The specific type of suggested action + """ + type: SuggestedActionTypeEnum! + + """ + * The userId this action is for + """ + userId: ID! + + """ + The user than can see this event + """ + user: User! + + """ + fk + """ + teamId: ID! + + """ + The team you should run an action meeting with + """ + team: Team! +} diff --git a/packages/server/graphql/public/typeDefs/SuggestedActionTryRetroMeeting.graphql b/packages/server/graphql/public/typeDefs/SuggestedActionTryRetroMeeting.graphql new file mode 100644 index 00000000000..c95dab4238c --- /dev/null +++ b/packages/server/graphql/public/typeDefs/SuggestedActionTryRetroMeeting.graphql @@ -0,0 +1,49 @@ +""" +a suggestion to try a retro with your team +""" +type SuggestedActionTryRetroMeeting implements SuggestedAction { + """ + shortid + """ + id: ID! + + """ + * The timestamp the action was created at + """ + createdAt: DateTime! + + """ + The priority of the suggested action compared to other suggested actions (smaller number is higher priority) + """ + priority: Float + + """ + * The timestamp the action was removed at + """ + removedAt: DateTime! + + """ + The specific type of suggested action + """ + type: SuggestedActionTypeEnum! + + """ + * The userId this action is for + """ + userId: ID! + + """ + The user than can see this event + """ + user: User! + + """ + fk + """ + teamId: ID! + + """ + The team you should run a retro with + """ + team: Team! +} diff --git a/packages/server/graphql/public/typeDefs/SuggestedActionTryTheDemo.graphql b/packages/server/graphql/public/typeDefs/SuggestedActionTryTheDemo.graphql new file mode 100644 index 00000000000..cf2c70feb1e --- /dev/null +++ b/packages/server/graphql/public/typeDefs/SuggestedActionTryTheDemo.graphql @@ -0,0 +1,39 @@ +""" +a suggestion to invite others to your team +""" +type SuggestedActionTryTheDemo implements SuggestedAction { + """ + shortid + """ + id: ID! + + """ + * The timestamp the action was created at + """ + createdAt: DateTime! + + """ + The priority of the suggested action compared to other suggested actions (smaller number is higher priority) + """ + priority: Float + + """ + * The timestamp the action was removed at + """ + removedAt: DateTime! + + """ + The specific type of suggested action + """ + type: SuggestedActionTypeEnum! + + """ + * The userId this action is for + """ + userId: ID! + + """ + The user than can see this event + """ + user: User! +} diff --git a/packages/server/graphql/public/typeDefs/SuggestedActionTypeEnum.graphql b/packages/server/graphql/public/typeDefs/SuggestedActionTypeEnum.graphql new file mode 100644 index 00000000000..dc30db66d12 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/SuggestedActionTypeEnum.graphql @@ -0,0 +1,10 @@ +""" +The specific type of the suggested action +""" +enum SuggestedActionTypeEnum { + inviteYourTeam + tryTheDemo + tryRetroMeeting + createNewTeam + tryActionMeeting +} diff --git a/packages/server/graphql/public/typeDefs/Task.graphql b/packages/server/graphql/public/typeDefs/Task.graphql new file mode 100644 index 00000000000..4ea269155c0 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/Task.graphql @@ -0,0 +1,154 @@ +""" +A long-term task shared across the team, assigned to a single user +""" +type Task implements Threadable { + """ + shortid + """ + id: ID! + + """ + The rich text body of the item + """ + content: String! + + """ + The timestamp the item was created + """ + createdAt: DateTime! + + """ + The userId that created the item + """ + createdBy: ID! + + """ + The user that created the item + """ + createdByUser: User! + + """ + the replies to this threadable item + """ + replies: [Threadable!]! + + """ + The FK of the discussion this task was created in. Null if task was not created in a discussion + """ + discussionId: ID + + """ + the parent, if this threadable is a reply, else null + """ + threadParentId: ID + + """ + the order of this threadable, relative to threadParentId + """ + threadSortOrder: Float + + """ + The timestamp the item was updated + """ + updatedAt: DateTime! + + """ + The agenda item that the task was created in, if any + """ + agendaItem: AgendaItem + + """ + Type of the integration if there is one + """ + taskService: TaskServiceEnum + + """ + a user-defined due date + """ + dueDate: DateTime + + """ + A list of the most recent estimates for the task + """ + estimates: [TaskEstimate!]! + + """ + a list of users currently editing the task (fed by a subscription, so queries return null) + """ + editors: [TaskEditorDetails!]! + + """ + The reference to the single source of truth for this task + """ + integration: TaskIntegration + + """ + A hash of the integrated task + """ + integrationHash: ID + + """ + the foreign key for the meeting the task was created in + """ + meetingId: ID + + """ + the foreign key for the meeting the task was marked as complete + """ + doneMeetingId: ID + + """ + the plain text content of the task + """ + plaintextContent: String! + + """ + the shared sort order for tasks on the team dash & user dash + """ + sortOrder: Float! + + """ + The status of the task + """ + status: TaskStatusEnum! + + """ + The tags associated with the task + """ + tags: [String!]! + + """ + The id of the team (indexed). Needed for subscribing to archived tasks + """ + teamId: ID! + + """ + The team this task belongs to + """ + team: Team! + + """ + The first block of the content + """ + title: String! + + """ + * The userId, index useful for server-side methods getting all tasks under a user. This can be null if the task is not assigned to anyone. + """ + userId: ID + + """ + The user the task is assigned to. Null if it is not assigned to anyone. + """ + user: User + + """ + The owner hovers over the task in their solo update of a checkin + """ + isHighlighted( + """ + Meeting for which the highlight is checked + """ + meetingId: ID + ): Boolean! +} diff --git a/packages/server/graphql/public/typeDefs/TaskConnection.graphql b/packages/server/graphql/public/typeDefs/TaskConnection.graphql new file mode 100644 index 00000000000..203fd36f48a --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TaskConnection.graphql @@ -0,0 +1,14 @@ +""" +A connection to a list of items. +""" +type TaskConnection { + """ + Page info with cursors coerced to ISO8601 dates + """ + pageInfo: PageInfoDateCursor + + """ + A list of edges. + """ + edges: [TaskEdge!]! +} diff --git a/packages/server/graphql/public/typeDefs/TaskEdge.graphql b/packages/server/graphql/public/typeDefs/TaskEdge.graphql new file mode 100644 index 00000000000..fa050cf3532 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TaskEdge.graphql @@ -0,0 +1,10 @@ +""" +An edge in a connection. +""" +type TaskEdge { + """ + The item at the end of the edge + """ + node: Task! + cursor: DateTime +} diff --git a/packages/server/graphql/public/typeDefs/TaskEditorDetails.graphql b/packages/server/graphql/public/typeDefs/TaskEditorDetails.graphql new file mode 100644 index 00000000000..2a06e98ec0d --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TaskEditorDetails.graphql @@ -0,0 +1,11 @@ +type TaskEditorDetails { + """ + The userId of the person editing the task + """ + userId: ID! + + """ + The name of the userId editing the task + """ + preferredName: String! +} diff --git a/packages/server/graphql/public/typeDefs/TaskEstimate.graphql b/packages/server/graphql/public/typeDefs/TaskEstimate.graphql new file mode 100644 index 00000000000..7f6aacf88ea --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TaskEstimate.graphql @@ -0,0 +1,59 @@ +""" +An estimate for a Task that was voted on and scored in a poker meeting +""" +type TaskEstimate { + """ + The ID of the estimate + """ + id: ID! + + """ + The timestamp the estimate was created + """ + createdAt: DateTime! + + """ + The source that a change came in through + """ + changeSource: ChangeSourceEnum! + + """ + The name of the estimate dimension + """ + name: String! + + """ + The human-readable label for the estimate + """ + label: String! + + """ + *The taskId that the estimate refers to + """ + taskId: ID! + + """ + The userId that added the estimate + """ + userId: ID! + + """ + *The meetingId that the estimate occured in, if any + """ + meetingId: ID + + """ + The meeting stageId the estimate occurred in, if any + """ + stageId: ID + + """ + The discussionId where the estimated was discussed + """ + discussionId: ID + + """ + If the task comes from jira, this is the jira field that the estimate refers to + """ + jiraFieldId: ID +} diff --git a/packages/server/graphql/public/typeDefs/TaskEstimateInput.graphql b/packages/server/graphql/public/typeDefs/TaskEstimateInput.graphql new file mode 100644 index 00000000000..e1ab49dab64 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TaskEstimateInput.graphql @@ -0,0 +1,14 @@ +input TaskEstimateInput { + taskId: ID! + + """ + The new estimate value + """ + value: String! + + """ + The name of the estimate, e.g. Story Points + """ + dimensionName: String! + meetingId: ID! +} diff --git a/packages/server/graphql/public/typeDefs/TaskIntegration.graphql b/packages/server/graphql/public/typeDefs/TaskIntegration.graphql new file mode 100644 index 00000000000..4546c4a617e --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TaskIntegration.graphql @@ -0,0 +1,3 @@ +interface TaskIntegration { + id: ID! +} diff --git a/packages/server/graphql/public/typeDefs/TaskInvolvementType.graphql b/packages/server/graphql/public/typeDefs/TaskInvolvementType.graphql new file mode 100644 index 00000000000..086a40957c1 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TaskInvolvementType.graphql @@ -0,0 +1,7 @@ +""" +How a user is involved with a task (listed in hierarchical order) +""" +enum TaskInvolvementType { + ASSIGNEE + MENTIONEE +} diff --git a/packages/server/graphql/public/typeDefs/TaskServiceEnum.graphql b/packages/server/graphql/public/typeDefs/TaskServiceEnum.graphql new file mode 100644 index 00000000000..08dcb1ad2a6 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TaskServiceEnum.graphql @@ -0,0 +1,11 @@ +""" +The list of services for task integrations +""" +enum TaskServiceEnum { + github + jira + PARABOL + jiraServer + gitlab + azureDevOps +} diff --git a/packages/server/graphql/public/typeDefs/TaskStatusEnum.graphql b/packages/server/graphql/public/typeDefs/TaskStatusEnum.graphql new file mode 100644 index 00000000000..2a3932ae6ea --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TaskStatusEnum.graphql @@ -0,0 +1,9 @@ +""" +The status of the task +""" +enum TaskStatusEnum { + active + stuck + done + future +} diff --git a/packages/server/graphql/public/typeDefs/TaskSubscriptionPayload.graphql b/packages/server/graphql/public/typeDefs/TaskSubscriptionPayload.graphql new file mode 100644 index 00000000000..53762e92487 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TaskSubscriptionPayload.graphql @@ -0,0 +1,12 @@ +type TaskSubscriptionPayload { + fieldName: String! + ChangeTaskTeamPayload: ChangeTaskTeamPayload + CreateTaskIntegrationPayload: CreateTaskIntegrationPayload + CreateTaskPayload: CreateTaskPayload + DeleteTaskPayload: DeleteTaskPayload + EditTaskPayload: EditTaskPayload + RemoveOrgUserPayload: RemoveOrgUserPayload + RemoveTeamMemberPayload: RemoveTeamMemberPayload + UpdateTaskPayload: UpdateTaskPayload + UpdateTaskDueDatePayload: UpdateTaskDueDatePayload +} diff --git a/packages/server/graphql/public/typeDefs/Team.graphql b/packages/server/graphql/public/typeDefs/Team.graphql index 718c296f4d1..6d197a733d5 100644 --- a/packages/server/graphql/public/typeDefs/Team.graphql +++ b/packages/server/graphql/public/typeDefs/Team.graphql @@ -7,16 +7,6 @@ type Team { """ id: ID! - """ - Whether or not new users with the same domain and a verified email should auto-join the team - """ - autoJoin: Boolean! - - """ - Whether the viewer belongs to the team - """ - isViewerOnTeam: Boolean! - """ The datetime the team was created """ @@ -88,11 +78,6 @@ type Team { """ isViewerLead: Boolean! - """ - true if the viewer is an admin for the team's org, else false - """ - isOrgAdmin: Boolean! - """ The team-specific settings for running all available types of meetings """ @@ -123,6 +108,11 @@ type Team { """ activeMeetings: [NewMeeting!]! + """ + The number of qualifying meetings that have an AI generated summary. Qualifying meetings are meetings with three or more meeting members and five or more reflections + """ + qualAIMeetingsCount: Int! + """ The new meeting in progress, if any """ @@ -132,11 +122,6 @@ type Team { """ meetingId: ID! ): NewMeeting - - tier: TierEnum! - - billingTier: TierEnum! - organization: Organization! """ @@ -171,10 +156,28 @@ type Team { """ isArchived: Boolean + """ + Whether or not new users with the same domain and a verified email should auto-join the team + """ + autoJoin: Boolean! + + """ + Whether the viewer belongs to the team + """ + isViewerOnTeam: Boolean! + + """ + true if the viewer is an admin for the team's org, else false + """ + isOrgAdmin: Boolean! + tier: TierEnum! + billingTier: TierEnum! + """ Insights for the team, null if not enough data or feature flag isn't set """ insights: TeamInsights + """ The team member that is the viewer """ diff --git a/packages/server/graphql/public/typeDefs/TeamDrawer.graphql b/packages/server/graphql/public/typeDefs/TeamDrawer.graphql new file mode 100644 index 00000000000..0937f6f3b15 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TeamDrawer.graphql @@ -0,0 +1,7 @@ +""" +The right drawer types available on the team dashboard +""" +enum TeamDrawer { + agenda + manageTeam +} diff --git a/packages/server/graphql/public/typeDefs/TeamHealthPhase.graphql b/packages/server/graphql/public/typeDefs/TeamHealthPhase.graphql index 76930bd6987..8700cdb1475 100644 --- a/packages/server/graphql/public/typeDefs/TeamHealthPhase.graphql +++ b/packages/server/graphql/public/typeDefs/TeamHealthPhase.graphql @@ -3,15 +3,12 @@ type TeamHealthPhase implements NewMeetingPhase { shortid """ id: ID! - meetingId: ID! - teamId: ID! """ The type of phase """ phaseType: NewMeetingPhaseTypeEnum! - stages: [TeamHealthStage!]! } diff --git a/packages/server/graphql/public/typeDefs/TeamHealthStage.graphql b/packages/server/graphql/public/typeDefs/TeamHealthStage.graphql index 982d5fb8dbc..8521237c192 100644 --- a/packages/server/graphql/public/typeDefs/TeamHealthStage.graphql +++ b/packages/server/graphql/public/typeDefs/TeamHealthStage.graphql @@ -83,7 +83,6 @@ type TeamHealthStage implements NewMeetingStage { The suggested time limit for a phase to be completed together, null if not enough data to make a suggestion """ suggestedTimeLimit: Float - teamId: ID! """ diff --git a/packages/server/graphql/public/typeDefs/TeamInsights.graphql b/packages/server/graphql/public/typeDefs/TeamInsights.graphql index cbd5ae1741e..63052091671 100644 --- a/packages/server/graphql/public/typeDefs/TeamInsights.graphql +++ b/packages/server/graphql/public/typeDefs/TeamInsights.graphql @@ -1,22 +1,3 @@ -type Emoji { - id: ID! - count: Int! -} - -type MeetingEngagement { - """ - Engagement across retros, poker and standups - """ - all: Float! -} - -type TopRetroTemplate { - id: ID! - reflectTemplateId: ID! - reflectTemplate: ReflectTemplate! - count: Int! -} - type TeamInsights { id: ID! diff --git a/packages/server/graphql/public/typeDefs/TeamInvitation.graphql b/packages/server/graphql/public/typeDefs/TeamInvitation.graphql new file mode 100644 index 00000000000..b9e32d695b0 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TeamInvitation.graphql @@ -0,0 +1,59 @@ +""" +An invitation to become a team member +""" +type TeamInvitation { + """ + The unique invitation Id + """ + id: ID! + + """ + null if not accepted, else the datetime the invitation was accepted + """ + acceptedAt: DateTime + + """ + null if not accepted, else the userId that accepted the invitation + """ + acceptedBy: ID + + """ + The datetime the invitation was created + """ + createdAt: DateTime! + + """ + The email of the invitee + """ + email: Email! + + """ + The datetime the invitation expires. Changes when team is archived. + """ + expiresAt: DateTime! + + """ + The userId of the person that sent the invitation + """ + invitedBy: ID! + + """ + The userId of the person that sent the invitation + """ + inviter: User! + + """ + the meetingId that the invite was generated for + """ + meetingId: ID + + """ + The team invited to + """ + teamId: ID! + + """ + 48-byte hex encoded random string + """ + token: ID! +} diff --git a/packages/server/graphql/public/typeDefs/TeamInvitationErrorEnum.graphql b/packages/server/graphql/public/typeDefs/TeamInvitationErrorEnum.graphql new file mode 100644 index 00000000000..6e0d5fb0b4a --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TeamInvitationErrorEnum.graphql @@ -0,0 +1,10 @@ +""" +The reason the invitation failed +""" +enum TeamInvitationErrorEnum { + accepted + expired + notFound + restrictedDomain + unverifiedEmail +} diff --git a/packages/server/graphql/public/typeDefs/TeamInvitationPayload.graphql b/packages/server/graphql/public/typeDefs/TeamInvitationPayload.graphql new file mode 100644 index 00000000000..89c9073b66b --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TeamInvitationPayload.graphql @@ -0,0 +1,19 @@ +""" +The response to a teamInvitation query +""" +type TeamInvitationPayload { + """ + The team invitation, if any + """ + teamInvitation: TeamInvitation + + """ + the teamId of the team trying to join + """ + teamId: ID + + """ + one of the active meetings trying to join + """ + meetingId: ID +} diff --git a/packages/server/graphql/public/typeDefs/TeamMeetingSettings.graphql b/packages/server/graphql/public/typeDefs/TeamMeetingSettings.graphql new file mode 100644 index 00000000000..18bdd33e125 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TeamMeetingSettings.graphql @@ -0,0 +1,26 @@ +""" +The team settings for a specific type of meeting +""" +interface TeamMeetingSettings { + id: ID! + + """ + The type of meeting these settings apply to + """ + meetingType: MeetingTypeEnum! + + """ + The broad phase types that will be addressed during the meeting + """ + phaseTypes: [NewMeetingPhaseTypeEnum!]! + + """ + FK + """ + teamId: ID! + + """ + The team these settings belong to + """ + team: Team! +} diff --git a/packages/server/graphql/public/typeDefs/TeamNotification.graphql b/packages/server/graphql/public/typeDefs/TeamNotification.graphql new file mode 100644 index 00000000000..d8646e7fd13 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TeamNotification.graphql @@ -0,0 +1,4 @@ +interface TeamNotification { + id: ID + type: NotificationEnum +} diff --git a/packages/server/graphql/public/typeDefs/TeamPromptMeeting.graphql b/packages/server/graphql/public/typeDefs/TeamPromptMeeting.graphql index 928d4fcd633..31fb8b30ec9 100644 --- a/packages/server/graphql/public/typeDefs/TeamPromptMeeting.graphql +++ b/packages/server/graphql/public/typeDefs/TeamPromptMeeting.graphql @@ -2,6 +2,41 @@ A team prompt meeting """ type TeamPromptMeeting implements NewMeeting { + """ + The name of the meeting + """ + meetingPrompt: String! + + """ + The settings that govern the team prompt meeting + """ + settings: TeamPromptMeetingSettings! + + """ + The tasks created within the meeting + """ + responses: [TeamPromptResponse!]! + + """ + The team prompt meeting member of the viewer + """ + viewerMeetingMember: TeamPromptMeetingMember + + """ + The number of responses generated in the meeting + """ + responseCount: Int! + + """ + The number of tasks generated in the meeting + """ + taskCount: Int! + + """ + The number of comments generated in the meeting + """ + commentCount: Int! + """ The unique meeting id. shortid. """ @@ -123,21 +158,6 @@ type TeamPromptMeeting implements NewMeeting { """ updatedAt: DateTime - """ - The team prompt meeting member of the viewer - """ - viewerMeetingMember: TeamPromptMeetingMember - - """ - The settings that govern the team prompt meeting - """ - settings: TeamPromptMeetingSettings! - - """ - The tasks created within the meeting - """ - responses: [TeamPromptResponse!]! - """ The previous meeting in the series if this meeting is recurring """ diff --git a/packages/server/graphql/public/typeDefs/TeamPromptMeetingMember.graphql b/packages/server/graphql/public/typeDefs/TeamPromptMeetingMember.graphql new file mode 100644 index 00000000000..3405d43db69 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TeamPromptMeetingMember.graphql @@ -0,0 +1,28 @@ +""" +All the meeting specifics for a user in a team prompt meeting +""" +type TeamPromptMeetingMember implements MeetingMember { + """ + A composite of userId::meetingId + """ + id: ID! + + """ + true if present, false if absent, else null + """ + isCheckedIn: Boolean + @deprecated( + reason: "Members are checked in when they enter the meeting now & not created beforehand" + ) + meetingId: ID! + meetingType: MeetingTypeEnum! + teamId: ID! + teamMember: TeamMember! + user: User! + userId: ID! + + """ + The last time a meeting was updated (stage completed, finished, etc) + """ + updatedAt: DateTime! +} diff --git a/packages/server/graphql/public/typeDefs/TeamPromptMeetingSettings.graphql b/packages/server/graphql/public/typeDefs/TeamPromptMeetingSettings.graphql new file mode 100644 index 00000000000..35f4413b394 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TeamPromptMeetingSettings.graphql @@ -0,0 +1,26 @@ +""" +The team prompt specific meeting settings +""" +type TeamPromptMeetingSettings implements TeamMeetingSettings { + id: ID! + + """ + The type of meeting these settings apply to + """ + meetingType: MeetingTypeEnum! + + """ + The broad phase types that will be addressed during the meeting + """ + phaseTypes: [NewMeetingPhaseTypeEnum!]! + + """ + FK + """ + teamId: ID! + + """ + The team these settings belong to + """ + team: Team! +} diff --git a/packages/server/graphql/public/typeDefs/TeamPromptResponse.graphql b/packages/server/graphql/public/typeDefs/TeamPromptResponse.graphql new file mode 100644 index 00000000000..e0bfcca25c7 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TeamPromptResponse.graphql @@ -0,0 +1,54 @@ +""" +A response of a single team member in a team prompt +""" +type TeamPromptResponse implements Reactable { + """ + Team prompt response id in a format of `teamPromptResponse:idGeneratedByDatabase` + """ + id: ID! + + """ + All the reactjis for the given reflection + """ + reactjis: [Reactji!]! + + """ + Id of the user who created the team prompt response + """ + userId: ID! + + """ + The user who created the response + """ + user: User! + + """ + the content of the response + """ + content: String! + + """ + the plain text content of the response + """ + plaintextContent: String! + + """ + The timestamp the response was created + """ + createdAt: DateTime! + + """ + The timestamp the response was updated at + """ + updatedAt: DateTime! + + """ + the shared sort order for reponses + """ + sortOrder: Float! + + """ + The team this response belongs to + """ + team: Team! +} diff --git a/packages/server/graphql/public/typeDefs/TeamPromptResponseStage.graphql b/packages/server/graphql/public/typeDefs/TeamPromptResponseStage.graphql new file mode 100644 index 00000000000..5de073fb748 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TeamPromptResponseStage.graphql @@ -0,0 +1,115 @@ +""" +The stage where the single team member responds to a prompt +""" +type TeamPromptResponseStage implements NewMeetingStage & DiscussionThreadStage { + """ + stageId, shortid + """ + id: ID! + + """ + The datetime the stage was completed + """ + endAt: DateTime + + """ + foreign key. try using meeting + """ + meetingId: ID! + + """ + The meeting this stage belongs to + """ + meeting: NewMeeting + + """ + true if the facilitator has completed this stage, else false. Should be boolean(endAt) + """ + isComplete: Boolean! + + """ + true if any meeting participant can navigate to this stage + """ + isNavigable: Boolean! + + """ + true if the facilitator can navigate to this stage + """ + isNavigableByFacilitator: Boolean! + + """ + The phase this stage belongs to + """ + phase: NewMeetingPhase + + """ + The type of the phase + """ + phaseType: NewMeetingPhaseTypeEnum + + """ + The datetime the stage was started + """ + startAt: DateTime + + """ + Number of times the facilitator has visited this stage + """ + viewCount: Int + + """ + true if a time limit is set, false if end time is set, null if neither is set + """ + isAsync: Boolean + + """ + true if the viewer is ready to advance, else false + """ + isViewerReady: Boolean! + + """ + the number of meeting members ready to advance, excluding the facilitator + """ + readyCount: Int! + + """ + The datetime the phase is scheduled to be finished, null if no time limit or end time is set + """ + scheduledEndTime: DateTime + + """ + The suggested ending datetime for a phase to be completed async, null if not enough data to make a suggestion + """ + suggestedEndTime: DateTime + + """ + The suggested time limit for a phase to be completed together, null if not enough data to make a suggestion + """ + suggestedTimeLimit: Float + teamId: ID! + + """ + The number of milliseconds left before the scheduled end time. Useful for unsynced client clocks. null if scheduledEndTime is null + """ + timeRemaining: Float + + """ + The ID to find the discussion that goes in the stage + """ + discussionId: ID! + + """ + The discussion about the stage + """ + discussion: Discussion! + + """ + The team member this stage belongs to + """ + teamMember: TeamMember! + + """ + The response to the prompt + """ + response: TeamPromptResponse +} diff --git a/packages/server/graphql/public/typeDefs/TeamPromptResponsesPhase.graphql b/packages/server/graphql/public/typeDefs/TeamPromptResponsesPhase.graphql new file mode 100644 index 00000000000..c151a6cdab0 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TeamPromptResponsesPhase.graphql @@ -0,0 +1,17 @@ +""" +The meeting phase where each of the team members can respond to prompts +""" +type TeamPromptResponsesPhase implements NewMeetingPhase { + """ + shortid + """ + id: ID! + meetingId: ID! + teamId: ID! + + """ + The type of phase + """ + phaseType: NewMeetingPhaseTypeEnum! + stages: [TeamPromptResponseStage!]! +} diff --git a/packages/server/graphql/public/typeDefs/TeamStat.graphql b/packages/server/graphql/public/typeDefs/TeamStat.graphql new file mode 100644 index 00000000000..cfb5376cd26 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TeamStat.graphql @@ -0,0 +1,4 @@ +type TeamStat { + id: ID! + createdAt: DateTime! +} diff --git a/packages/server/graphql/public/typeDefs/TeamSubscriptionPayload.graphql b/packages/server/graphql/public/typeDefs/TeamSubscriptionPayload.graphql new file mode 100644 index 00000000000..7337114462a --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TeamSubscriptionPayload.graphql @@ -0,0 +1,76 @@ +type TeamSubscriptionPayload { + fieldName: String! + AcceptTeamInvitationPayload: AcceptTeamInvitationPayload + AddAgendaItemPayload: AddAgendaItemPayload + AddAtlassianAuthPayload: AddAtlassianAuthPayload + AddGitHubAuthPayload: AddGitHubAuthPayload + AddIntegrationProviderSuccess: AddIntegrationProviderSuccess + AddSlackAuthPayload: AddSlackAuthPayload + AddTeamPayload: AddTeamPayload + ArchiveTeamPayload: ArchiveTeamPayload + BatchArchiveTasksSuccess: BatchArchiveTasksSuccess + DenyPushInvitationPayload: DenyPushInvitationPayload + DowngradeToStarterPayload: DowngradeToStarterPayload + EndCheckInSuccess: EndCheckInSuccess + EndRetrospectiveSuccess: EndRetrospectiveSuccess + EndSprintPokerSuccess: EndSprintPokerSuccess + EndTeamPromptSuccess: EndTeamPromptSuccess + NavigateMeetingPayload: NavigateMeetingPayload + PushInvitationPayload: PushInvitationPayload + PromoteToTeamLeadPayload: PromoteToTeamLeadPayload + RemoveAgendaItemPayload: RemoveAgendaItemPayload + RemoveOrgUserPayload: RemoveOrgUserPayload + RemoveTeamMemberPayload: RemoveTeamMemberPayload + RenameMeetingSuccess: RenameMeetingSuccess + SelectTemplatePayload: SelectTemplatePayload + StartCheckInSuccess: StartCheckInSuccess + StartRetrospectiveSuccess: StartRetrospectiveSuccess + StartSprintPokerSuccess: StartSprintPokerSuccess + StartTeamPromptSuccess: StartTeamPromptSuccess + UpdateAgendaItemPayload: UpdateAgendaItemPayload + OldUpdateCreditCardPayload: OldUpdateCreditCardPayload + UpdateCreditCardPayload: UpdateCreditCardPayload + UpdateTeamNamePayload: UpdateTeamNamePayload + OldUpgradeToTeamTierPayload: OldUpgradeToTeamTierPayload + UpgradeToTeamTierSuccess: UpgradeToTeamTierSuccess + AddReflectTemplateSuccess: AddReflectTemplateSuccess + AddPokerTemplateSuccess: AddPokerTemplateSuccess + AddReflectTemplatePromptPayload: AddReflectTemplatePromptPayload + AddPokerTemplateDimensionPayload: AddPokerTemplateDimensionPayload + AddPokerTemplateScalePayload: AddPokerTemplateScalePayload + AddPokerTemplateScaleValuePayload: AddPokerTemplateScaleValuePayload + MoveReflectTemplatePromptPayload: MoveReflectTemplatePromptPayload + MovePokerTemplateDimensionPayload: MovePokerTemplateDimensionPayload + ReflectTemplatePromptUpdateDescriptionPayload: ReflectTemplatePromptUpdateDescriptionPayload + PokerTemplateDimensionUpdateDescriptionPayload: PokerTemplateDimensionUpdateDescriptionPayload + ReflectTemplatePromptUpdateGroupColorPayload: ReflectTemplatePromptUpdateGroupColorPayload + RemoveAtlassianAuthPayload: RemoveAtlassianAuthPayload + RemoveGitHubAuthPayload: RemoveGitHubAuthPayload + RemoveSlackAuthPayload: RemoveSlackAuthPayload + RemoveReflectTemplatePayload: RemoveReflectTemplatePayload + RemovePokerTemplatePayload: RemovePokerTemplatePayload + RemoveReflectTemplatePromptPayload: RemoveReflectTemplatePromptPayload + RemovePokerTemplateDimensionPayload: RemovePokerTemplateDimensionPayload + RemovePokerTemplateScalePayload: RemovePokerTemplateScalePayload + RenameMeetingTemplatePayload: RenameMeetingTemplatePayload + RenamePokerTemplatePayload: RenamePokerTemplatePayload + RenameReflectTemplatePromptPayload: RenameReflectTemplatePromptPayload + RenamePokerTemplateDimensionPayload: RenamePokerTemplateDimensionPayload + RenamePokerTemplateScalePayload: RenamePokerTemplateScalePayload + RemovePokerTemplateScaleValuePayload: RemovePokerTemplateScaleValuePayload + SetMeetingSettingsPayload: SetMeetingSettingsPayload + SetSlackNotificationPayload: SetSlackNotificationPayload + UpdatePokerTemplateDimensionScalePayload: UpdatePokerTemplateDimensionScalePayload + UpdatePokerTemplateScaleValuePayload: UpdatePokerTemplateScaleValuePayload + UpdateUserProfilePayload: UpdateUserProfilePayload + PersistJiraSearchQuerySuccess: PersistJiraSearchQuerySuccess + MovePokerTemplateScaleValueSuccess: MovePokerTemplateScaleValueSuccess + UpdateAzureDevOpsDimensionFieldSuccess: UpdateAzureDevOpsDimensionFieldSuccess + SetDefaultSlackChannelSuccess: SetDefaultSlackChannelSuccess + SetAppLocationSuccess: SetAppLocationSuccess + UpdateGitHubDimensionFieldSuccess: UpdateGitHubDimensionFieldSuccess + UpdateIntegrationProviderSuccess: UpdateIntegrationProviderSuccess + UpdateRecurrenceSettingsSuccess: UpdateRecurrenceSettingsSuccess + UpdateDimensionFieldSuccess: UpdateDimensionFieldSuccess + UpdateTemplateCategorySuccess: UpdateTemplateCategorySuccess +} diff --git a/packages/server/graphql/public/typeDefs/TemplateDimension.graphql b/packages/server/graphql/public/typeDefs/TemplateDimension.graphql new file mode 100644 index 00000000000..fd9686e2661 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TemplateDimension.graphql @@ -0,0 +1,66 @@ +""" +A team-specific template dimension: e.g., effort, importance etc. +""" +type TemplateDimension { + """ + shortid + """ + id: ID! + createdAt: DateTime! + + """ + true if the dimension is currently used by the team, else false + """ + isActive: Boolean! + + """ + The datetime that the dimension was removed. Null if it has not been removed. + """ + removedAt: DateTime + + """ + foreign key. use the team field + """ + teamId: ID! + + """ + The team that owns this dimension + """ + team: Team! + updatedAt: DateTime! + + """ + the order of the dimensions in the template + """ + sortOrder: Float! + + """ + FK for template + """ + templateId: ID! + + """ + The template that this dimension belongs to + """ + template: PokerTemplate! + + """ + The name of the dimension + """ + name: String! + + """ + The description to the dimension name for further context. A long version of the dimension name. + """ + description: String! + + """ + The scaleId to resolve the selected scale + """ + scaleId: ID! + + """ + scale used in this dimension + """ + selectedScale: TemplateScale! +} diff --git a/packages/server/graphql/public/typeDefs/TemplateDimensionRef.graphql b/packages/server/graphql/public/typeDefs/TemplateDimensionRef.graphql new file mode 100644 index 00000000000..53b4cc00c29 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TemplateDimensionRef.graphql @@ -0,0 +1,26 @@ +""" +An immutable TemplateDimension +""" +type TemplateDimensionRef { + id: ID! + + """ + the order of the dimensions in the template + """ + sortOrder: Float! + + """ + The name of the dimension + """ + name: String! + + """ + The md5 hash to resolve the immutable selected scale ref + """ + scaleRefId: ID! + + """ + scale used in this dimension + """ + scale: TemplateScaleRef! +} diff --git a/packages/server/graphql/public/typeDefs/TemplateScale.graphql b/packages/server/graphql/public/typeDefs/TemplateScale.graphql new file mode 100644 index 00000000000..4bc231b1559 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TemplateScale.graphql @@ -0,0 +1,51 @@ +""" +A team-specific template scale. +""" +type TemplateScale { + """ + shortid + """ + id: ID! + createdAt: DateTime! + + """ + true if the scale is currently used by the team, else false + """ + isActive: Boolean! + + """ + True if this is a starter/default scale; false otherwise + """ + isStarter: Boolean! + + """ + The datetime that the scale was removed. Null if it has not been removed. + """ + removedAt: DateTime + + """ + foreign key. use the team field + """ + teamId: ID! + + """ + The team that owns this template scale + """ + team: Team! + updatedAt: DateTime! + + """ + The title of the scale used in the template + """ + name: String! + + """ + The dimensions currently using this scale + """ + dimensions: [TemplateDimension!]! + + """ + The values used in this scale + """ + values: [TemplateScaleValue!]! +} diff --git a/packages/server/graphql/public/typeDefs/TemplateScaleInput.graphql b/packages/server/graphql/public/typeDefs/TemplateScaleInput.graphql new file mode 100644 index 00000000000..8a65bd3d8fe --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TemplateScaleInput.graphql @@ -0,0 +1,14 @@ +""" +A value for a scale +""" +input TemplateScaleInput { + """ + The color used to visually group a scale value + """ + color: String! + + """ + The label for this value, e.g., XS, M, L + """ + label: String! +} diff --git a/packages/server/graphql/public/typeDefs/TemplateScaleRef.graphql b/packages/server/graphql/public/typeDefs/TemplateScaleRef.graphql new file mode 100644 index 00000000000..f524716dad9 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TemplateScaleRef.graphql @@ -0,0 +1,20 @@ +""" +An immutable version of TemplateScale to be shared across all users +""" +type TemplateScaleRef { + """ + md5 hash + """ + id: ID! + createdAt: DateTime! + + """ + The title of the scale used in the template + """ + name: String! + + """ + The values used in this scale + """ + values: [TemplateScaleValue!]! +} diff --git a/packages/server/graphql/public/typeDefs/TemplateScaleValue.graphql b/packages/server/graphql/public/typeDefs/TemplateScaleValue.graphql new file mode 100644 index 00000000000..eb7b913c6a5 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TemplateScaleValue.graphql @@ -0,0 +1,26 @@ +""" +A value for a scale. +""" +type TemplateScaleValue { + id: ID! + + """ + The id of the scale this value belongs to + """ + scaleId: ID! + + """ + The color used to visually group a scale value + """ + color: String! + + """ + The label for this value, e.g., XS, M, L + """ + label: String! + + """ + the order of the scale value in this scale + """ + sortOrder: Int! +} diff --git a/packages/server/graphql/public/typeDefs/Threadable.graphql b/packages/server/graphql/public/typeDefs/Threadable.graphql new file mode 100644 index 00000000000..211aa6b1d32 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/Threadable.graphql @@ -0,0 +1,54 @@ +""" +An item that can be put in a thread +""" +interface Threadable { + """ + shortid + """ + id: ID! + + """ + The rich text body of the item + """ + content: String! + + """ + The timestamp the item was created + """ + createdAt: DateTime! + + """ + The userId that created the item + """ + createdBy: ID + + """ + The user that created the item + """ + createdByUser: User + + """ + the replies to this threadable item + """ + replies: [Threadable!]! + + """ + The FK of the discussion this task was created in. Null if task was not created in a discussion + """ + discussionId: ID + + """ + the parent, if this threadable is a reply, else null + """ + threadParentId: ID + + """ + the order of this threadable, relative to threadParentId + """ + threadSortOrder: Float + + """ + The timestamp the item was updated + """ + updatedAt: DateTime! +} diff --git a/packages/server/graphql/public/typeDefs/ThreadableConnection.graphql b/packages/server/graphql/public/typeDefs/ThreadableConnection.graphql new file mode 100644 index 00000000000..d687883c205 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ThreadableConnection.graphql @@ -0,0 +1,19 @@ +""" +A connection to a list of items. +""" +type ThreadableConnection { + """ + Page info with strings (sortOrder) as cursors + """ + pageInfo: PageInfo + + """ + A list of edges. + """ + edges: [ThreadableEdge!]! + + """ + Any errors that prevented the query from returning the full results + """ + error: String +} diff --git a/packages/server/graphql/public/typeDefs/ThreadableEdge.graphql b/packages/server/graphql/public/typeDefs/ThreadableEdge.graphql new file mode 100644 index 00000000000..737da63cb36 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ThreadableEdge.graphql @@ -0,0 +1,10 @@ +""" +An edge in a connection. +""" +type ThreadableEdge { + """ + The item at the end of the edge + """ + node: Threadable! + cursor: String +} diff --git a/packages/server/graphql/public/typeDefs/TierEnum.graphql b/packages/server/graphql/public/typeDefs/TierEnum.graphql new file mode 100644 index 00000000000..83709642f12 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TierEnum.graphql @@ -0,0 +1,8 @@ +""" +The pay tier of the team +""" +enum TierEnum { + starter + team + enterprise +} diff --git a/packages/server/graphql/public/typeDefs/TimelineEvent.graphql b/packages/server/graphql/public/typeDefs/TimelineEvent.graphql new file mode 100644 index 00000000000..822f23ccdd8 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TimelineEvent.graphql @@ -0,0 +1,64 @@ +""" +A past event that is important to the viewer +""" +interface TimelineEvent { + """ + shortid + """ + id: ID! + + """ + * The timestamp the event was created at + """ + createdAt: DateTime! + + """ + the number of times the user has interacted with (ie clicked) this event + """ + interactionCount: Int! + + """ + true if the timeline event is active, false if archived + """ + isActive: Boolean! + + """ + The orgId this event is associated with. Null if not traceable to one org + """ + orgId: ID + + """ + The organization this event is associated with + """ + organization: Organization + + """ + the number of times the user has seen this event + """ + seenCount: Int! + + """ + The teamId this event is associated with. Null if not traceable to one team + """ + teamId: ID + + """ + The team that can see this event + """ + team: Team + + """ + The specific type of event + """ + type: TimelineEventEnum! + + """ + * The userId that can see this event + """ + userId: ID! + + """ + The user than can see this event + """ + user: User! +} diff --git a/packages/server/graphql/public/typeDefs/TimelineEventCompletedActionMeeting.graphql b/packages/server/graphql/public/typeDefs/TimelineEventCompletedActionMeeting.graphql new file mode 100644 index 00000000000..90e042f54be --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TimelineEventCompletedActionMeeting.graphql @@ -0,0 +1,74 @@ +""" +An event for a completed action meeting +""" +type TimelineEventCompletedActionMeeting implements TimelineEvent { + """ + shortid + """ + id: ID! + + """ + * The timestamp the event was created at + """ + createdAt: DateTime! + + """ + the number of times the user has interacted with (ie clicked) this event + """ + interactionCount: Int! + + """ + true if the timeline event is active, false if archived + """ + isActive: Boolean! + + """ + The orgId this event is associated with + """ + orgId: ID! + + """ + The organization this event is associated with + """ + organization: Organization + + """ + the number of times the user has seen this event + """ + seenCount: Int! + + """ + The teamId this event is associated with + """ + teamId: ID! + + """ + The team that can see this event + """ + team: Team! + + """ + The specific type of event + """ + type: TimelineEventEnum! + + """ + * The userId that can see this event + """ + userId: ID! + + """ + The user than can see this event + """ + user: User! + + """ + The meeting that was completed + """ + meeting: ActionMeeting! + + """ + The meetingId that was completed, null if legacyMeetingId is present + """ + meetingId: ID! +} diff --git a/packages/server/graphql/public/typeDefs/TimelineEventCompletedRetroMeeting.graphql b/packages/server/graphql/public/typeDefs/TimelineEventCompletedRetroMeeting.graphql new file mode 100644 index 00000000000..746c257dc90 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TimelineEventCompletedRetroMeeting.graphql @@ -0,0 +1,74 @@ +""" +An event for a completed retro meeting +""" +type TimelineEventCompletedRetroMeeting implements TimelineEvent { + """ + shortid + """ + id: ID! + + """ + * The timestamp the event was created at + """ + createdAt: DateTime! + + """ + the number of times the user has interacted with (ie clicked) this event + """ + interactionCount: Int! + + """ + true if the timeline event is active, false if archived + """ + isActive: Boolean! + + """ + The orgId this event is associated with + """ + orgId: ID! + + """ + The organization this event is associated with + """ + organization: Organization + + """ + the number of times the user has seen this event + """ + seenCount: Int! + + """ + The teamId this event is associated with + """ + teamId: ID! + + """ + The team that can see this event + """ + team: Team! + + """ + The specific type of event + """ + type: TimelineEventEnum! + + """ + * The userId that can see this event + """ + userId: ID! + + """ + The user than can see this event + """ + user: User! + + """ + The meeting that was completed + """ + meeting: RetrospectiveMeeting! + + """ + The meetingId that was completed + """ + meetingId: ID! +} diff --git a/packages/server/graphql/public/typeDefs/TimelineEventConnection.graphql b/packages/server/graphql/public/typeDefs/TimelineEventConnection.graphql new file mode 100644 index 00000000000..f4cd8a589c1 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TimelineEventConnection.graphql @@ -0,0 +1,14 @@ +""" +A connection to a list of items. +""" +type TimelineEventConnection { + """ + Page info with cursors coerced to ISO8601 dates + """ + pageInfo: PageInfoDateCursor + + """ + A list of edges. + """ + edges: [TimelineEventEdge!]! +} diff --git a/packages/server/graphql/public/typeDefs/TimelineEventEdge.graphql b/packages/server/graphql/public/typeDefs/TimelineEventEdge.graphql new file mode 100644 index 00000000000..4c42e7fdf99 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TimelineEventEdge.graphql @@ -0,0 +1,10 @@ +""" +An edge in a connection. +""" +type TimelineEventEdge { + """ + The item at the end of the edge + """ + node: TimelineEvent! + cursor: DateTime +} diff --git a/packages/server/graphql/public/typeDefs/TimelineEventEnum.graphql b/packages/server/graphql/public/typeDefs/TimelineEventEnum.graphql new file mode 100644 index 00000000000..a2a74c10861 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TimelineEventEnum.graphql @@ -0,0 +1,11 @@ +""" +The specific type of event +""" +enum TimelineEventEnum { + retroComplete + actionComplete + joinedParabol + createdTeam + POKER_COMPLETE + TEAM_PROMPT_COMPLETE +} diff --git a/packages/server/graphql/public/typeDefs/TimelineEventJoinedParabol.graphql b/packages/server/graphql/public/typeDefs/TimelineEventJoinedParabol.graphql new file mode 100644 index 00000000000..415c49a49f5 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TimelineEventJoinedParabol.graphql @@ -0,0 +1,64 @@ +""" +An event for joining the app +""" +type TimelineEventJoinedParabol implements TimelineEvent { + """ + shortid + """ + id: ID! + + """ + * The timestamp the event was created at + """ + createdAt: DateTime! + + """ + the number of times the user has interacted with (ie clicked) this event + """ + interactionCount: Int! + + """ + true if the timeline event is active, false if archived + """ + isActive: Boolean! + + """ + The orgId this event is associated with. Null if not traceable to one org + """ + orgId: ID + + """ + The organization this event is associated with + """ + organization: Organization + + """ + the number of times the user has seen this event + """ + seenCount: Int! + + """ + The teamId this event is associated with. Null if not traceable to one team + """ + teamId: ID + + """ + The team that can see this event + """ + team: Team + + """ + The specific type of event + """ + type: TimelineEventEnum! + + """ + * The userId that can see this event + """ + userId: ID! + + """ + The user than can see this event + """ + user: User! +} diff --git a/packages/server/graphql/public/typeDefs/TimelineEventPokerComplete.graphql b/packages/server/graphql/public/typeDefs/TimelineEventPokerComplete.graphql new file mode 100644 index 00000000000..cef4d0ec42d --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TimelineEventPokerComplete.graphql @@ -0,0 +1,74 @@ +""" +An event for a completed poker meeting +""" +type TimelineEventPokerComplete implements TimelineEvent { + """ + shortid + """ + id: ID! + + """ + * The timestamp the event was created at + """ + createdAt: DateTime! + + """ + the number of times the user has interacted with (ie clicked) this event + """ + interactionCount: Int! + + """ + true if the timeline event is active, false if archived + """ + isActive: Boolean! + + """ + The orgId this event is associated with + """ + orgId: ID! + + """ + The organization this event is associated with + """ + organization: Organization + + """ + the number of times the user has seen this event + """ + seenCount: Int! + + """ + The teamId this event is associated with + """ + teamId: ID! + + """ + The team that can see this event + """ + team: Team! + + """ + The specific type of event + """ + type: TimelineEventEnum! + + """ + * The userId that can see this event + """ + userId: ID! + + """ + The user than can see this event + """ + user: User! + + """ + The meeting that was completed + """ + meeting: PokerMeeting! + + """ + The meetingId that was completed + """ + meetingId: ID! +} diff --git a/packages/server/graphql/public/typeDefs/TimelineEventTeamCreated.graphql b/packages/server/graphql/public/typeDefs/TimelineEventTeamCreated.graphql new file mode 100644 index 00000000000..2b06cb1239c --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TimelineEventTeamCreated.graphql @@ -0,0 +1,64 @@ +""" +An event triggered whenever a team is created +""" +type TimelineEventTeamCreated implements TimelineEvent { + """ + shortid + """ + id: ID! + + """ + * The timestamp the event was created at + """ + createdAt: DateTime! + + """ + the number of times the user has interacted with (ie clicked) this event + """ + interactionCount: Int! + + """ + true if the timeline event is active, false if archived + """ + isActive: Boolean! + + """ + The orgId this event is associated with + """ + orgId: ID! + + """ + The organization this event is associated with + """ + organization: Organization + + """ + the number of times the user has seen this event + """ + seenCount: Int! + + """ + The teamId this event is associated with. Null if not traceable to one team + """ + teamId: ID! + + """ + The team that can see this event + """ + team: Team! + + """ + The specific type of event + """ + type: TimelineEventEnum! + + """ + * The userId that can see this event + """ + userId: ID! + + """ + The user than can see this event + """ + user: User! +} diff --git a/packages/server/graphql/public/typeDefs/ToggleFavoriteTemplatePayload.graphql b/packages/server/graphql/public/typeDefs/ToggleFavoriteTemplatePayload.graphql new file mode 100644 index 00000000000..c49a354cc04 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ToggleFavoriteTemplatePayload.graphql @@ -0,0 +1 @@ +union ToggleFavoriteTemplatePayload = ErrorPayload | ToggleFavoriteTemplateSuccess diff --git a/packages/server/graphql/public/typeDefs/ToggleFavoriteTemplateSuccess.graphql b/packages/server/graphql/public/typeDefs/ToggleFavoriteTemplateSuccess.graphql new file mode 100644 index 00000000000..d7db253a943 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ToggleFavoriteTemplateSuccess.graphql @@ -0,0 +1,6 @@ +type ToggleFavoriteTemplateSuccess { + """ + The user who's favorite templates were updated + """ + user: User! +} diff --git a/packages/server/graphql/public/typeDefs/ToggleSummaryEmailPayload.graphql b/packages/server/graphql/public/typeDefs/ToggleSummaryEmailPayload.graphql new file mode 100644 index 00000000000..e0291e41c71 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ToggleSummaryEmailPayload.graphql @@ -0,0 +1,4 @@ +""" +Return value for toggleSummaryEmail, which could be an error +""" +union ToggleSummaryEmailPayload = ErrorPayload | ToggleSummaryEmailSuccess diff --git a/packages/server/graphql/public/typeDefs/ToggleSummaryEmailSuccess.graphql b/packages/server/graphql/public/typeDefs/ToggleSummaryEmailSuccess.graphql new file mode 100644 index 00000000000..8c65a7dc389 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ToggleSummaryEmailSuccess.graphql @@ -0,0 +1,6 @@ +type ToggleSummaryEmailSuccess { + """ + The user whose summary email settings have changed + """ + user: User! +} diff --git a/packages/server/graphql/public/typeDefs/ToggleTeamDrawerPayload.graphql b/packages/server/graphql/public/typeDefs/ToggleTeamDrawerPayload.graphql new file mode 100644 index 00000000000..0bebd2e9e32 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ToggleTeamDrawerPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for ToggleTeamDrawerPayload +""" +union ToggleTeamDrawerPayload = ErrorPayload | ToggleTeamDrawerSuccess diff --git a/packages/server/graphql/public/typeDefs/ToggleTeamDrawerSuccess.graphql b/packages/server/graphql/public/typeDefs/ToggleTeamDrawerSuccess.graphql new file mode 100644 index 00000000000..ec77cda3e11 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/ToggleTeamDrawerSuccess.graphql @@ -0,0 +1,3 @@ +type ToggleTeamDrawerSuccess { + teamMember: TeamMember! +} diff --git a/packages/server/graphql/public/typeDefs/TopRetroTemplate.graphql b/packages/server/graphql/public/typeDefs/TopRetroTemplate.graphql new file mode 100644 index 00000000000..6838afd87d9 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TopRetroTemplate.graphql @@ -0,0 +1,6 @@ +type TopRetroTemplate { + id: ID! + reflectTemplateId: ID! + reflectTemplate: ReflectTemplate! + count: Int! +} diff --git a/packages/server/graphql/public/typeDefs/TranscriptBlock.graphql b/packages/server/graphql/public/typeDefs/TranscriptBlock.graphql new file mode 100644 index 00000000000..68655ea2c24 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/TranscriptBlock.graphql @@ -0,0 +1,14 @@ +""" +A block of the meeting transcription with a speaker and text +""" +type TranscriptBlock { + """ + The speaker who said the words + """ + speaker: String! + + """ + The words that the speaker said + """ + words: String! +} diff --git a/packages/server/graphql/public/typeDefs/URL.graphql b/packages/server/graphql/public/typeDefs/URL.graphql new file mode 100644 index 00000000000..a1202a40663 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/URL.graphql @@ -0,0 +1 @@ +scalar URL diff --git a/packages/server/graphql/public/typeDefs/UpdateAgendaItemInput.graphql b/packages/server/graphql/public/typeDefs/UpdateAgendaItemInput.graphql new file mode 100644 index 00000000000..d0110ae03ca --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateAgendaItemInput.graphql @@ -0,0 +1,26 @@ +input UpdateAgendaItemInput { + """ + The unique agenda item ID, composed of a teamId::shortid + """ + id: ID! + + """ + The content of the agenda item + """ + content: String + + """ + True if agenda item has been pinned + """ + pinned: Boolean + + """ + True if not processed or deleted + """ + isActive: Boolean + + """ + The sort order of the agenda item in the list + """ + sortOrder: Float +} diff --git a/packages/server/graphql/public/typeDefs/UpdateAgendaItemPayload.graphql b/packages/server/graphql/public/typeDefs/UpdateAgendaItemPayload.graphql new file mode 100644 index 00000000000..5bfadb7a7a4 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateAgendaItemPayload.graphql @@ -0,0 +1,10 @@ +type UpdateAgendaItemPayload { + agendaItem: AgendaItem + meetingId: ID + + """ + The meeting with the updated agenda item, if any + """ + meeting: NewMeeting + error: StandardMutationError +} diff --git a/packages/server/graphql/public/typeDefs/UpdateAutoJoinPayload.graphql b/packages/server/graphql/public/typeDefs/UpdateAutoJoinPayload.graphql new file mode 100644 index 00000000000..5db4e83f71e --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateAutoJoinPayload.graphql @@ -0,0 +1,4 @@ +""" +Return value for updateAutoJoin, which could be an error +""" +union UpdateAutoJoinPayload = ErrorPayload | UpdateAutoJoinSuccess diff --git a/packages/server/graphql/public/typeDefs/UpdateAutoJoinSuccess.graphql b/packages/server/graphql/public/typeDefs/UpdateAutoJoinSuccess.graphql new file mode 100644 index 00000000000..a28cea1f5aa --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateAutoJoinSuccess.graphql @@ -0,0 +1,6 @@ +type UpdateAutoJoinSuccess { + """ + The teams that were updated + """ + updatedTeams: [Team!]! +} diff --git a/packages/server/graphql/public/typeDefs/UpdateAzureDevOpsDimensionFieldPayload.graphql b/packages/server/graphql/public/typeDefs/UpdateAzureDevOpsDimensionFieldPayload.graphql new file mode 100644 index 00000000000..009c44d6f3c --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateAzureDevOpsDimensionFieldPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for UpdateAzureDevOpsDimensionFieldPayload +""" +union UpdateAzureDevOpsDimensionFieldPayload = ErrorPayload | UpdateAzureDevOpsDimensionFieldSuccess diff --git a/packages/server/graphql/public/typeDefs/updateAzureDevOpsDimensionField.graphql b/packages/server/graphql/public/typeDefs/UpdateAzureDevOpsDimensionFieldSuccess.graphql similarity index 100% rename from packages/server/graphql/public/typeDefs/updateAzureDevOpsDimensionField.graphql rename to packages/server/graphql/public/typeDefs/UpdateAzureDevOpsDimensionFieldSuccess.graphql diff --git a/packages/server/graphql/public/typeDefs/UpdateCommentContentPayload.graphql b/packages/server/graphql/public/typeDefs/UpdateCommentContentPayload.graphql new file mode 100644 index 00000000000..d82180f2311 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateCommentContentPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for UpdateCommentContentPayload +""" +union UpdateCommentContentPayload = ErrorPayload | UpdateCommentContentSuccess diff --git a/packages/server/graphql/public/typeDefs/UpdateCommentContentSuccess.graphql b/packages/server/graphql/public/typeDefs/UpdateCommentContentSuccess.graphql new file mode 100644 index 00000000000..709d950ad77 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateCommentContentSuccess.graphql @@ -0,0 +1,6 @@ +type UpdateCommentContentSuccess { + """ + the comment with updated content + """ + comment: Comment! +} diff --git a/packages/server/graphql/public/typeDefs/UpdateCreditCardPayload.graphql b/packages/server/graphql/public/typeDefs/UpdateCreditCardPayload.graphql new file mode 100644 index 00000000000..497759788d2 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateCreditCardPayload.graphql @@ -0,0 +1,4 @@ +""" +Return value for updateCreditCard, which could be an error +""" +union UpdateCreditCardPayload = ErrorPayload | UpdateCreditCardSuccess diff --git a/packages/server/graphql/public/typeDefs/UpdateCreditCardSuccess.graphql b/packages/server/graphql/public/typeDefs/UpdateCreditCardSuccess.graphql new file mode 100644 index 00000000000..1913acc176b --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateCreditCardSuccess.graphql @@ -0,0 +1,16 @@ +type UpdateCreditCardSuccess { + """ + The teams that were updated with the new payment method + """ + teamsUpdated: [Team!]! + + """ + The org that was updated with the new payment method + """ + organization: Organization! + + """ + The client secret from the Stripe subscription. Used for client-side retrieval using a publishable key. + """ + stripeSubscriptionClientSecret: String! +} diff --git a/packages/server/graphql/public/typeDefs/UpdateDimensionFieldPayload.graphql b/packages/server/graphql/public/typeDefs/UpdateDimensionFieldPayload.graphql index 7aca181a191..f0979f061d7 100644 --- a/packages/server/graphql/public/typeDefs/UpdateDimensionFieldPayload.graphql +++ b/packages/server/graphql/public/typeDefs/UpdateDimensionFieldPayload.graphql @@ -1,14 +1 @@ -type UpdateDimensionFieldSuccess { - teamId: ID! - - meetingId: ID - - team: Team! - - """ - The poker meeting the field was updated from - """ - meeting: PokerMeeting -} - union UpdateDimensionFieldPayload = UpdateDimensionFieldSuccess | ErrorPayload diff --git a/packages/server/graphql/public/typeDefs/UpdateDimensionFieldSuccess.graphql b/packages/server/graphql/public/typeDefs/UpdateDimensionFieldSuccess.graphql new file mode 100644 index 00000000000..f4690298feb --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateDimensionFieldSuccess.graphql @@ -0,0 +1,10 @@ +type UpdateDimensionFieldSuccess { + teamId: ID! + meetingId: ID + team: Team! + + """ + The poker meeting the field was updated from + """ + meeting: PokerMeeting +} diff --git a/packages/server/graphql/public/typeDefs/UpdateDragLocationInput.graphql b/packages/server/graphql/public/typeDefs/UpdateDragLocationInput.graphql new file mode 100644 index 00000000000..c3c515c1e77 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateDragLocationInput.graphql @@ -0,0 +1,41 @@ +input UpdateDragLocationInput { + id: ID! + clientHeight: Float! + clientWidth: Float! + meetingId: ID! + + """ + The primary key of the item being drug + """ + sourceId: ID! + + """ + The estimated destination of the item being drug + """ + targetId: ID + + """ + The teamId to broadcast the message to + """ + teamId: ID! + + """ + horizontal distance from the top left of the target + """ + targetOffsetX: Float + + """ + vertical distance from the top left of the target + """ + targetOffsetY: Float + + """ + the left of the source, relative to the client window + """ + clientX: Float + + """ + the top of the source, relative to the client window + """ + clientY: Float +} diff --git a/packages/server/graphql/public/typeDefs/UpdateDragLocationPayload.graphql b/packages/server/graphql/public/typeDefs/UpdateDragLocationPayload.graphql new file mode 100644 index 00000000000..b833e7aff3d --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateDragLocationPayload.graphql @@ -0,0 +1,7 @@ +type UpdateDragLocationPayload { + """ + The drag as sent from the team member + """ + remoteDrag: RemoteReflectionDrag + userId: ID! +} diff --git a/packages/server/graphql/public/typeDefs/UpdateFeatureFlagPayload.graphql b/packages/server/graphql/public/typeDefs/UpdateFeatureFlagPayload.graphql new file mode 100644 index 00000000000..d1b49e06e88 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateFeatureFlagPayload.graphql @@ -0,0 +1,13 @@ +type UpdateFeatureFlagPayload { + error: StandardMutationError + + """ + the user that was given the super power. Use users instead in GraphiQL since it may affect multiple users + """ + user: User + + """ + the users given the super power + """ + users: [User] +} diff --git a/packages/server/graphql/public/typeDefs/UpdateGitHubDimensionFieldPayload.graphql b/packages/server/graphql/public/typeDefs/UpdateGitHubDimensionFieldPayload.graphql new file mode 100644 index 00000000000..50aee81c5ac --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateGitHubDimensionFieldPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for UpdateGitHubDimensionFieldPayload +""" +union UpdateGitHubDimensionFieldPayload = ErrorPayload | UpdateGitHubDimensionFieldSuccess diff --git a/packages/server/graphql/public/typeDefs/UpdateGitHubDimensionFieldSuccess.graphql b/packages/server/graphql/public/typeDefs/UpdateGitHubDimensionFieldSuccess.graphql new file mode 100644 index 00000000000..ee35926d283 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateGitHubDimensionFieldSuccess.graphql @@ -0,0 +1,10 @@ +type UpdateGitHubDimensionFieldSuccess { + teamId: ID! + meetingId: ID! + team: Team! + + """ + The poker meeting the field was updated from + """ + meeting: PokerMeeting! +} diff --git a/packages/server/graphql/public/typeDefs/UpdateGitLabDimensionFieldPayload.graphql b/packages/server/graphql/public/typeDefs/UpdateGitLabDimensionFieldPayload.graphql new file mode 100644 index 00000000000..ec4e5c78115 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateGitLabDimensionFieldPayload.graphql @@ -0,0 +1 @@ +union UpdateGitLabDimensionFieldPayload = ErrorPayload | UpdateGitLabDimensionFieldSuccess diff --git a/packages/server/graphql/public/typeDefs/UpdateGitLabDimensionFieldSuccess.graphql b/packages/server/graphql/public/typeDefs/UpdateGitLabDimensionFieldSuccess.graphql new file mode 100644 index 00000000000..79470487aa1 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateGitLabDimensionFieldSuccess.graphql @@ -0,0 +1,6 @@ +type UpdateGitLabDimensionFieldSuccess { + teamId: ID + meetingId: ID + team: Team + meeting: NewMeeting +} diff --git a/packages/server/graphql/public/typeDefs/UpdateIntegrationProviderInput.graphql b/packages/server/graphql/public/typeDefs/UpdateIntegrationProviderInput.graphql new file mode 100644 index 00000000000..d3f40708bba --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateIntegrationProviderInput.graphql @@ -0,0 +1,24 @@ +""" +An Integration Provider configuration +""" +input UpdateIntegrationProviderInput { + """ + The the id of the Integration Provider to update + """ + id: ID! + + """ + The new scope for this provider (org, team) + """ + scope: IntegrationProviderEditableScopeEnum + + """ + Webhook provider metadata, has to be non-null if token type is webhook, refactor once we get https://github.com/graphql/graphql-spec/pull/825 + """ + webhookProviderMetadataInput: IntegrationProviderMetadataInputWebhook + + """ + OAuth2 provider metadata, has to be non-null if token type is OAuth2, refactor once we get https://github.com/graphql/graphql-spec/pull/825 + """ + oAuth2ProviderMetadataInput: IntegrationProviderMetadataInputOAuth2 +} diff --git a/packages/server/graphql/public/typeDefs/UpdateIntegrationProviderPayload.graphql b/packages/server/graphql/public/typeDefs/UpdateIntegrationProviderPayload.graphql new file mode 100644 index 00000000000..c585010be77 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateIntegrationProviderPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for UpdateIntegrationProviderPayload +""" +union UpdateIntegrationProviderPayload = ErrorPayload | UpdateIntegrationProviderSuccess diff --git a/packages/server/graphql/public/typeDefs/UpdateIntegrationProviderSuccess.graphql b/packages/server/graphql/public/typeDefs/UpdateIntegrationProviderSuccess.graphql new file mode 100644 index 00000000000..c2777493292 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateIntegrationProviderSuccess.graphql @@ -0,0 +1,16 @@ +type UpdateIntegrationProviderSuccess { + """ + The provider that was updated + """ + provider: IntegrationProvider! + + """ + The team member with the updated auth + """ + teamMember: TeamMember! + + """ + The user who updated TeamMemberIntegrationAuth object + """ + user: User! +} diff --git a/packages/server/graphql/public/typeDefs/UpdateMeetingPromptPayload.graphql b/packages/server/graphql/public/typeDefs/UpdateMeetingPromptPayload.graphql new file mode 100644 index 00000000000..9e87be86a22 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateMeetingPromptPayload.graphql @@ -0,0 +1,4 @@ +""" +Return value for updateMeetingPrompt, which could be an error +""" +union UpdateMeetingPromptPayload = UpdateMeetingPromptSuccess | ErrorPayload diff --git a/packages/server/graphql/public/typeDefs/UpdateMeetingPromptSuccess.graphql b/packages/server/graphql/public/typeDefs/UpdateMeetingPromptSuccess.graphql new file mode 100644 index 00000000000..714dc4487ee --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateMeetingPromptSuccess.graphql @@ -0,0 +1,8 @@ +type UpdateMeetingPromptSuccess { + meetingId: ID! + + """ + the updated meeting + """ + meeting: TeamPromptMeeting! +} diff --git a/packages/server/graphql/public/typeDefs/UpdateMeetingTemplatePayload.graphql b/packages/server/graphql/public/typeDefs/UpdateMeetingTemplatePayload.graphql new file mode 100644 index 00000000000..38f60786df2 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateMeetingTemplatePayload.graphql @@ -0,0 +1,4 @@ +""" +Return value for updateMeetingTemplate, which could be an error +""" +union UpdateMeetingTemplatePayload = ErrorPayload | UpdateMeetingTemplateSuccess diff --git a/packages/server/graphql/public/typeDefs/UpdateMeetingTemplateSuccess.graphql b/packages/server/graphql/public/typeDefs/UpdateMeetingTemplateSuccess.graphql new file mode 100644 index 00000000000..176f583d15e --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateMeetingTemplateSuccess.graphql @@ -0,0 +1,6 @@ +type UpdateMeetingTemplateSuccess { + """ + The updated meeting + """ + meeting: NewMeeting! +} diff --git a/packages/server/graphql/public/typeDefs/UpdateNewCheckInQuestionPayload.graphql b/packages/server/graphql/public/typeDefs/UpdateNewCheckInQuestionPayload.graphql new file mode 100644 index 00000000000..26ead4f7267 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateNewCheckInQuestionPayload.graphql @@ -0,0 +1,4 @@ +type UpdateNewCheckInQuestionPayload { + error: StandardMutationError + meeting: NewMeeting +} diff --git a/packages/server/graphql/public/typeDefs/UpdateOrgInput.graphql b/packages/server/graphql/public/typeDefs/UpdateOrgInput.graphql new file mode 100644 index 00000000000..ab575b6e42e --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateOrgInput.graphql @@ -0,0 +1,11 @@ +input UpdateOrgInput { + """ + The unique action ID + """ + id: ID! + + """ + The name of the org + """ + name: String +} diff --git a/packages/server/graphql/public/typeDefs/UpdateOrgPayload.graphql b/packages/server/graphql/public/typeDefs/UpdateOrgPayload.graphql new file mode 100644 index 00000000000..e7e3e4fe7f9 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateOrgPayload.graphql @@ -0,0 +1,8 @@ +type UpdateOrgPayload { + error: StandardMutationError + + """ + The updated org + """ + organization: Organization +} diff --git a/packages/server/graphql/public/typeDefs/UpdatePokerScopeItemInput.graphql b/packages/server/graphql/public/typeDefs/UpdatePokerScopeItemInput.graphql new file mode 100644 index 00000000000..62e9f1285d0 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdatePokerScopeItemInput.graphql @@ -0,0 +1,16 @@ +input UpdatePokerScopeItemInput { + """ + The location of the single source of truth (e.g. a jira-integrated parabol task would be "jira") + """ + service: TaskServiceEnum! + + """ + If vanilla parabol task, taskId. If integrated parabol task, integrationHash + """ + serviceTaskId: ID! + + """ + The action to perform + """ + action: AddOrDeleteEnum! +} diff --git a/packages/server/graphql/public/typeDefs/UpdatePokerScopePayload.graphql b/packages/server/graphql/public/typeDefs/UpdatePokerScopePayload.graphql new file mode 100644 index 00000000000..eb491b6a61c --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdatePokerScopePayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for UpdatePokerScopePayload +""" +union UpdatePokerScopePayload = ErrorPayload | UpdatePokerScopeSuccess diff --git a/packages/server/graphql/public/typeDefs/UpdatePokerScopeSuccess.graphql b/packages/server/graphql/public/typeDefs/UpdatePokerScopeSuccess.graphql new file mode 100644 index 00000000000..eecc553a6da --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdatePokerScopeSuccess.graphql @@ -0,0 +1,11 @@ +type UpdatePokerScopeSuccess { + """ + The meeting with the updated estimate phases + """ + meeting: PokerMeeting! + + """ + The estimate stages added to the meeting + """ + newStages: [EstimateStage!]! +} diff --git a/packages/server/graphql/public/typeDefs/UpdatePokerTemplateDimensionScalePayload.graphql b/packages/server/graphql/public/typeDefs/UpdatePokerTemplateDimensionScalePayload.graphql new file mode 100644 index 00000000000..f10cd859a2a --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdatePokerTemplateDimensionScalePayload.graphql @@ -0,0 +1,4 @@ +type UpdatePokerTemplateDimensionScalePayload { + error: StandardMutationError + dimension: TemplateDimension +} diff --git a/packages/server/graphql/public/typeDefs/UpdatePokerTemplateScaleValuePayload.graphql b/packages/server/graphql/public/typeDefs/UpdatePokerTemplateScaleValuePayload.graphql new file mode 100644 index 00000000000..b8a48f0d9f9 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdatePokerTemplateScaleValuePayload.graphql @@ -0,0 +1,4 @@ +type UpdatePokerTemplateScaleValuePayload { + error: StandardMutationError + scale: TemplateScale +} diff --git a/packages/server/graphql/public/typeDefs/UpdateRecurrenceSettingsPayload.graphql b/packages/server/graphql/public/typeDefs/UpdateRecurrenceSettingsPayload.graphql new file mode 100644 index 00000000000..21a2de0a8f9 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateRecurrenceSettingsPayload.graphql @@ -0,0 +1,4 @@ +""" +Return value for updateRecurrenceSettings, which could be an error +""" +union UpdateRecurrenceSettingsPayload = UpdateRecurrenceSettingsSuccess | ErrorPayload diff --git a/packages/server/graphql/public/typeDefs/UpdateRecurrenceSettingsSuccess.graphql b/packages/server/graphql/public/typeDefs/UpdateRecurrenceSettingsSuccess.graphql new file mode 100644 index 00000000000..254f512001d --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateRecurrenceSettingsSuccess.graphql @@ -0,0 +1,6 @@ +type UpdateRecurrenceSettingsSuccess { + """ + The updated meeting + """ + meeting: TeamPromptMeeting! +} diff --git a/packages/server/graphql/public/typeDefs/UpdateReflectionContentPayload.graphql b/packages/server/graphql/public/typeDefs/UpdateReflectionContentPayload.graphql new file mode 100644 index 00000000000..dc8f444f7e9 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateReflectionContentPayload.graphql @@ -0,0 +1,5 @@ +type UpdateReflectionContentPayload { + error: StandardMutationError + meeting: NewMeeting + reflection: RetroReflection +} diff --git a/packages/server/graphql/public/typeDefs/UpdateReflectionGroupTitlePayload.graphql b/packages/server/graphql/public/typeDefs/UpdateReflectionGroupTitlePayload.graphql new file mode 100644 index 00000000000..714ab4b687f --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateReflectionGroupTitlePayload.graphql @@ -0,0 +1,5 @@ +type UpdateReflectionGroupTitlePayload { + error: StandardMutationError + meeting: NewMeeting + reflectionGroup: RetroReflectionGroup +} diff --git a/packages/server/graphql/public/typeDefs/UpdateRetroMaxVotesPayload.graphql b/packages/server/graphql/public/typeDefs/UpdateRetroMaxVotesPayload.graphql new file mode 100644 index 00000000000..d6e9228a62c --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateRetroMaxVotesPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for UpdateRetroMaxVotesPayload +""" +union UpdateRetroMaxVotesPayload = ErrorPayload | UpdateRetroMaxVotesSuccess diff --git a/packages/server/graphql/public/typeDefs/UpdateRetroMaxVotesSuccess.graphql b/packages/server/graphql/public/typeDefs/UpdateRetroMaxVotesSuccess.graphql new file mode 100644 index 00000000000..9950b9e51d3 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateRetroMaxVotesSuccess.graphql @@ -0,0 +1,6 @@ +type UpdateRetroMaxVotesSuccess { + """ + the meeting with the updated max votes + """ + meeting: RetrospectiveMeeting! +} diff --git a/packages/server/graphql/public/typeDefs/UpdateTaskDueDatePayload.graphql b/packages/server/graphql/public/typeDefs/UpdateTaskDueDatePayload.graphql new file mode 100644 index 00000000000..374169a79c1 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateTaskDueDatePayload.graphql @@ -0,0 +1,4 @@ +type UpdateTaskDueDatePayload { + error: StandardMutationError + task: Task +} diff --git a/packages/server/graphql/public/typeDefs/UpdateTaskInput.graphql b/packages/server/graphql/public/typeDefs/UpdateTaskInput.graphql new file mode 100644 index 00000000000..54e17c652ce --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateTaskInput.graphql @@ -0,0 +1,14 @@ +input UpdateTaskInput { + """ + The task id + """ + id: ID! + content: String + sortOrder: Float + status: TaskStatusEnum + + """ + userId, the owner of the task. This can be null if the task is not assigned to anyone. + """ + userId: ID +} diff --git a/packages/server/graphql/public/typeDefs/UpdateTaskPayload.graphql b/packages/server/graphql/public/typeDefs/UpdateTaskPayload.graphql new file mode 100644 index 00000000000..1f5511f8393 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateTaskPayload.graphql @@ -0,0 +1,10 @@ +type UpdateTaskPayload { + error: StandardMutationError + task: Task + + """ + If a task was just turned private, this its ID, else null + """ + privatizedTaskId: ID + addedNotification: NotifyTaskInvolves +} diff --git a/packages/server/graphql/public/typeDefs/UpdateTeamNamePayload.graphql b/packages/server/graphql/public/typeDefs/UpdateTeamNamePayload.graphql new file mode 100644 index 00000000000..120ec8e7ac5 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateTeamNamePayload.graphql @@ -0,0 +1,4 @@ +type UpdateTeamNamePayload { + error: StandardMutationError + team: Team +} diff --git a/packages/server/graphql/public/typeDefs/UpdateTemplateCategoryPayload.graphql b/packages/server/graphql/public/typeDefs/UpdateTemplateCategoryPayload.graphql new file mode 100644 index 00000000000..19781b9d60b --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateTemplateCategoryPayload.graphql @@ -0,0 +1,4 @@ +""" +Return value for updateTemplateCategory, which could be an error +""" +union UpdateTemplateCategoryPayload = ErrorPayload | UpdateTemplateCategorySuccess diff --git a/packages/server/graphql/public/typeDefs/UpdateTemplateCategorySuccess.graphql b/packages/server/graphql/public/typeDefs/UpdateTemplateCategorySuccess.graphql new file mode 100644 index 00000000000..781c9745bf8 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateTemplateCategorySuccess.graphql @@ -0,0 +1,6 @@ +type UpdateTemplateCategorySuccess { + """ + The template with the updated mainCategory + """ + template: MeetingTemplate! +} diff --git a/packages/server/graphql/public/typeDefs/UpdateTemplateScopePayload.graphql b/packages/server/graphql/public/typeDefs/UpdateTemplateScopePayload.graphql new file mode 100644 index 00000000000..f6b6f42c7e3 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateTemplateScopePayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for UpdateTemplateScopePayload +""" +union UpdateTemplateScopePayload = ErrorPayload | UpdateTemplateScopeSuccess diff --git a/packages/server/graphql/public/typeDefs/UpdateTemplateScopeSuccess.graphql b/packages/server/graphql/public/typeDefs/UpdateTemplateScopeSuccess.graphql new file mode 100644 index 00000000000..07b856e67b8 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateTemplateScopeSuccess.graphql @@ -0,0 +1,16 @@ +type UpdateTemplateScopeSuccess { + """ + the template that was just updated, if downscoped, does not provide whole story + """ + template: MeetingTemplate! + + """ + if downscoping a previously used template, this will be the replacement + """ + clonedTemplate: MeetingTemplate + + """ + The settings that contain the teamTemplates array that was modified + """ + settings: TeamMeetingSettings! +} diff --git a/packages/server/graphql/public/typeDefs/UpdateUserProfileInput.graphql b/packages/server/graphql/public/typeDefs/UpdateUserProfileInput.graphql new file mode 100644 index 00000000000..f2b8d24f1c0 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateUserProfileInput.graphql @@ -0,0 +1,6 @@ +input UpdateUserProfileInput { + """ + The name, as confirmed by the user + """ + preferredName: String +} diff --git a/packages/server/graphql/public/typeDefs/UpdateUserProfilePayload.graphql b/packages/server/graphql/public/typeDefs/UpdateUserProfilePayload.graphql new file mode 100644 index 00000000000..9b2925850b3 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdateUserProfilePayload.graphql @@ -0,0 +1,9 @@ +type UpdateUserProfilePayload { + error: StandardMutationError + user: User + + """ + The updated team member + """ + teamMembers: [TeamMember!] +} diff --git a/packages/server/graphql/public/typeDefs/UpatedNotification.graphql b/packages/server/graphql/public/typeDefs/UpdatedNotification.graphql similarity index 100% rename from packages/server/graphql/public/typeDefs/UpatedNotification.graphql rename to packages/server/graphql/public/typeDefs/UpdatedNotification.graphql diff --git a/packages/server/graphql/public/typeDefs/UpdatedTeamInput.graphql b/packages/server/graphql/public/typeDefs/UpdatedTeamInput.graphql new file mode 100644 index 00000000000..a3e1568a21c --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdatedTeamInput.graphql @@ -0,0 +1,13 @@ +input UpdatedTeamInput { + id: ID! + + """ + The name of the team + """ + name: String! + + """ + A link to the team’s profile image. + """ + picture: URL +} diff --git a/packages/server/graphql/public/typeDefs/UpdatesPhase.graphql b/packages/server/graphql/public/typeDefs/UpdatesPhase.graphql new file mode 100644 index 00000000000..f0d2d573c26 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdatesPhase.graphql @@ -0,0 +1,17 @@ +""" +The meeting phase where all team members give updates one-by-one +""" +type UpdatesPhase implements NewMeetingPhase { + """ + shortid + """ + id: ID! + meetingId: ID! + teamId: ID! + + """ + The type of phase + """ + phaseType: NewMeetingPhaseTypeEnum! + stages: [UpdatesStage!]! +} diff --git a/packages/server/graphql/public/typeDefs/UpdatesStage.graphql b/packages/server/graphql/public/typeDefs/UpdatesStage.graphql new file mode 100644 index 00000000000..a5c32cf19b1 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpdatesStage.graphql @@ -0,0 +1,110 @@ +""" +A stage that focuses on a single team member +""" +type UpdatesStage implements NewMeetingStage & NewMeetingTeamMemberStage { + """ + stageId, shortid + """ + id: ID! + + """ + The datetime the stage was completed + """ + endAt: DateTime + + """ + foreign key. try using meeting + """ + meetingId: ID! + + """ + The meeting this stage belongs to + """ + meeting: NewMeeting + + """ + true if the facilitator has completed this stage, else false. Should be boolean(endAt) + """ + isComplete: Boolean! + + """ + true if any meeting participant can navigate to this stage + """ + isNavigable: Boolean! + + """ + true if the facilitator can navigate to this stage + """ + isNavigableByFacilitator: Boolean! + + """ + The phase this stage belongs to + """ + phase: NewMeetingPhase + + """ + The type of the phase + """ + phaseType: NewMeetingPhaseTypeEnum + + """ + The datetime the stage was started + """ + startAt: DateTime + + """ + Number of times the facilitator has visited this stage + """ + viewCount: Int + + """ + true if a time limit is set, false if end time is set, null if neither is set + """ + isAsync: Boolean + + """ + true if the viewer is ready to advance, else false + """ + isViewerReady: Boolean! + + """ + the number of meeting members ready to advance, excluding the facilitator + """ + readyCount: Int! + + """ + The datetime the phase is scheduled to be finished, null if no time limit or end time is set + """ + scheduledEndTime: DateTime + + """ + The suggested ending datetime for a phase to be completed async, null if not enough data to make a suggestion + """ + suggestedEndTime: DateTime + + """ + The suggested time limit for a phase to be completed together, null if not enough data to make a suggestion + """ + suggestedTimeLimit: Float + teamId: ID! + + """ + The number of milliseconds left before the scheduled end time. Useful for unsynced client clocks. null if scheduledEndTime is null + """ + timeRemaining: Float + + """ + The meeting member that is the focus for this phase item + """ + meetingMember: MeetingMember! + + """ + foreign key. use teamMember + """ + teamMemberId: ID! + + """ + The team member that is the focus for this phase item + """ + teamMember: TeamMember! +} diff --git a/packages/server/graphql/public/typeDefs/UpgradeToTeamTierPayload.graphql b/packages/server/graphql/public/typeDefs/UpgradeToTeamTierPayload.graphql new file mode 100644 index 00000000000..06955b72ba8 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpgradeToTeamTierPayload.graphql @@ -0,0 +1,4 @@ +""" +Return value for upgradeToTeamTier, which could be an error +""" +union UpgradeToTeamTierPayload = ErrorPayload | UpgradeToTeamTierSuccess diff --git a/packages/server/graphql/public/typeDefs/upgradeToTeamTier.graphql b/packages/server/graphql/public/typeDefs/UpgradeToTeamTierSuccess.graphql similarity index 57% rename from packages/server/graphql/public/typeDefs/upgradeToTeamTier.graphql rename to packages/server/graphql/public/typeDefs/UpgradeToTeamTierSuccess.graphql index e09f21cfbc0..f4a30807ba4 100644 --- a/packages/server/graphql/public/typeDefs/upgradeToTeamTier.graphql +++ b/packages/server/graphql/public/typeDefs/UpgradeToTeamTierSuccess.graphql @@ -1,28 +1,19 @@ -extend type Mutation { - """ - Describe the mutation here - """ - upgradeToTeamTier(invoiceId: ID!): UpgradeToTeamTierPayload! -} - -""" -Return value for upgradeToTeamTier, which could be an error -""" -union UpgradeToTeamTierPayload = ErrorPayload | UpgradeToTeamTierSuccess - type UpgradeToTeamTierSuccess { """ The new org on the team tier """ organization: Organization! + """ The updated teams under the org """ teams: [Team!]! + """ the ids of the meetings that were showing conversion modals """ meetingIds: [ID!]! + """ the meetings that were showing conversion modals """ diff --git a/packages/server/graphql/public/typeDefs/UploadIdPMetadataPayload.graphql b/packages/server/graphql/public/typeDefs/UploadIdPMetadataPayload.graphql new file mode 100644 index 00000000000..8de5293c0de --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UploadIdPMetadataPayload.graphql @@ -0,0 +1 @@ +union UploadIdPMetadataPayload = ErrorPayload | UploadIdPMetadataSuccess diff --git a/packages/server/graphql/public/typeDefs/UploadIdPMetadataSuccess.graphql b/packages/server/graphql/public/typeDefs/UploadIdPMetadataSuccess.graphql new file mode 100644 index 00000000000..161053338c8 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UploadIdPMetadataSuccess.graphql @@ -0,0 +1,3 @@ +type UploadIdPMetadataSuccess { + url: String! +} diff --git a/packages/server/graphql/public/typeDefs/UpsertTeamPromptResponsePayload.graphql b/packages/server/graphql/public/typeDefs/UpsertTeamPromptResponsePayload.graphql new file mode 100644 index 00000000000..a5bf6a15cbc --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpsertTeamPromptResponsePayload.graphql @@ -0,0 +1 @@ +union UpsertTeamPromptResponsePayload = UpsertTeamPromptResponseSuccess | ErrorPayload diff --git a/packages/server/graphql/public/typeDefs/UpsertTeamPromptResponseSuccess.graphql b/packages/server/graphql/public/typeDefs/UpsertTeamPromptResponseSuccess.graphql new file mode 100644 index 00000000000..906ce061f05 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UpsertTeamPromptResponseSuccess.graphql @@ -0,0 +1,14 @@ +type UpsertTeamPromptResponseSuccess { + teamPromptResponseId: ID! + meetingId: ID! + + """ + the created/updated team prompt response + """ + teamPromptResponse: TeamPromptResponse + + """ + the updated meeting + """ + meeting: NewMeeting +} diff --git a/packages/server/graphql/public/typeDefs/User.graphql b/packages/server/graphql/public/typeDefs/User.graphql index 8a6f9a76dcf..c154a6aae5e 100644 --- a/packages/server/graphql/public/typeDefs/User.graphql +++ b/packages/server/graphql/public/typeDefs/User.graphql @@ -1,9 +1,3 @@ -enum CanAccessEntity { - Team - Meeting - Organization -} - """ The user account profile """ @@ -12,6 +6,11 @@ type User { The userId provided by us """ id: ID! + + """ + The optional pseudoId for the user + """ + pseudoId: String archivedTasks( first: Int! @@ -32,41 +31,16 @@ type User { teamId: ID! ): Int - """ - The assumed company this organizaiton belongs to - """ - company: Company - """ The timestamp the user was created """ createdAt: DateTime! - """ - The domains the user is a lead of - """ - domains: [Company!]! - - """ - Domain join request - """ - domainJoinRequest(requestId: ID!): DomainJoinRequest - """ The user email """ email: Email! - """ - The user's favorite meeting templates - """ - favoriteTemplates: [MeetingTemplate!]! - - """ - Any super power given to the user via a super user - """ - featureFlags: UserFeatureFlags! - """ An array of objects with information about the user's identities. More than one will exists in case accounts are linked @@ -77,12 +51,6 @@ type User { true if the user is not currently being billed for service. removed on every websocket handshake """ inactive: Boolean - invoiceDetails( - """ - The id of the invoice - """ - invoiceId: ID! - ): Invoice invoices( first: Int! @@ -110,7 +78,12 @@ type User { """ true if the user is the first to sign up from their domain, else false """ - isPatientZero: Boolean! + isPatient0: Boolean! + + """ + true if the user is the first to sign up from their domain, else false + """ + isPatientZero: Boolean! @deprecated(reason: "Use isPatient0 instead") """ the reason the user account was removed @@ -170,6 +143,12 @@ type User { the number of timeline events to return """ first: Int! + + """ + a list of team Ids that you want timeline events for. if null, will return timeline events for all possible active teams + """ + teamIds: [ID!] + eventTypes: [TimelineEventEnum!] ): TimelineEventConnection! """ @@ -192,21 +171,11 @@ type User { """ newFeature: NewFeatureBroadcast - """ - url of user’s profile picture - """ - picture: URL! - """ The application-specific name, defaults to email before the tld """ preferredName: String! - """ - url of user’s raster profile picture (if user profile pic is an SVG, raster will be a PNG) - """ - rasterPicture: URL! - """ The last day the user connected via websocket or navigated to a common area """ @@ -287,6 +256,11 @@ type User { """ overLimitCopy: String + """ + Whether the user should receive a meeting summary email + """ + sendSummaryEmail: Boolean! + """ The reflection groups that are similar to the selected reflection in the Spotlight """ @@ -343,21 +317,6 @@ type User { includeUnassigned: Boolean = false ): TaskConnection! - """ - Check whether the viewer can access a given entity. This can be used to distinguish errors from unauthorized access which requires an invite. - """ - canAccess( - """ - the entity to check - """ - entity: CanAccessEntity! - - """ - the id of the entity - """ - id: ID! - ): Boolean! - """ A query for a team """ @@ -408,10 +367,6 @@ type User { userId: ID ): TeamMember - tier: TierEnum! - - billingTier: TierEnum! - """ all the teams the user is a part of that the viewer can see """ @@ -428,6 +383,64 @@ type User { userId: ID! ): User + """ + The assumed company this organizaiton belongs to + """ + company: Company + + """ + The domains the user is a lead of + """ + domains: [Company!]! + + """ + Domain join request + """ + domainJoinRequest(requestId: ID!): DomainJoinRequest + + """ + The user's favorite meeting templates + """ + favoriteTemplates: [MeetingTemplate!]! + + """ + Any super power given to the user via a super user + """ + featureFlags: UserFeatureFlags! + invoiceDetails( + """ + The id of the invoice + """ + invoiceId: ID! + ): Invoice + + """ + url of user’s profile picture + """ + picture: URL! + + """ + url of user’s raster profile picture (if user profile pic is an SVG, raster will be a PNG) + """ + rasterPicture: URL! + + """ + Check whether the viewer can access a given entity. This can be used to distinguish errors from unauthorized access which requires an invite. + """ + canAccess( + """ + the entity to check + """ + entity: CanAccessEntity! + + """ + the id of the entity + """ + id: ID! + ): Boolean! + tier: TierEnum! + billingTier: TierEnum! + """ A connection of activities available to the user """ @@ -438,6 +451,7 @@ type User { The cursor, which is the templateId """ after: ID + """ An optional argument to filter by template type """ @@ -472,15 +486,18 @@ type User { URL of a blob of XML from the IdP describing how to handle authentication """ metadataURL: String! + """ The name of the company, used as a slug in signon URLs """ domain: String! ): ParseSAMLMetadataPayload! + """ The number of free custom retro templates remaining """ freeCustomRetroTemplatesRemaining: Int! + """ The number of free custom poker templates remaining """ diff --git a/packages/server/graphql/public/typeDefs/UserFeatureFlags.graphql b/packages/server/graphql/public/typeDefs/UserFeatureFlags.graphql new file mode 100644 index 00000000000..a5b79f2b454 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UserFeatureFlags.graphql @@ -0,0 +1,11 @@ +""" +The types of flags that give an individual user super powers +""" +type UserFeatureFlags { + standups: Boolean! + insights: Boolean! + recurrence: Boolean! + noAISummary: Boolean! + noMeetingHistoryLimit: Boolean! + signUpDestinationTeam: Boolean! +} diff --git a/packages/server/graphql/public/typeDefs/UserFlagEnum.graphql b/packages/server/graphql/public/typeDefs/UserFlagEnum.graphql new file mode 100644 index 00000000000..af80f22f44d --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UserFlagEnum.graphql @@ -0,0 +1,11 @@ +""" +A flag to give an individual user super powers +""" +enum UserFlagEnum { + standups + insights + recurrence + noAISummary + noMeetingHistoryLimit + signUpDestinationTeam +} diff --git a/packages/server/graphql/public/typeDefs/UserLogInPayload.graphql b/packages/server/graphql/public/typeDefs/UserLogInPayload.graphql index 83839032413..df84f16eae4 100644 --- a/packages/server/graphql/public/typeDefs/UserLogInPayload.graphql +++ b/packages/server/graphql/public/typeDefs/UserLogInPayload.graphql @@ -9,6 +9,7 @@ type UserLogInPayload { """ authToken: ID userId: ID + """ if a new user is created """ diff --git a/packages/server/graphql/public/typeDefs/UserTiersCount.graphql b/packages/server/graphql/public/typeDefs/UserTiersCount.graphql new file mode 100644 index 00000000000..4bb34805433 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/UserTiersCount.graphql @@ -0,0 +1,20 @@ +""" +A count of the number of account tiers a user belongs to. +""" +type UserTiersCount { + """ + The number of starter orgs the user is active upon + """ + tierStarterCount: Int + + """ + The number of orgs on the team tier the user is active upon + """ + tierTeamCount: Int + + """ + The number of orgs on the team tier the user holds the role of Billing Leader + """ + tierTeamBillingLeaderCount: Int + user: User +} diff --git a/packages/server/graphql/public/typeDefs/VerifiedInvitationPayload.graphql b/packages/server/graphql/public/typeDefs/VerifiedInvitationPayload.graphql new file mode 100644 index 00000000000..8f08a8da2d6 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/VerifiedInvitationPayload.graphql @@ -0,0 +1,46 @@ +type VerifiedInvitationPayload { + errorType: TeamInvitationErrorEnum + + """ + The name of the person that sent the invitation, present if errorType is expired + """ + inviterName: String + + """ + The email of the person that send the invitation, present if errorType is expired + """ + inviterEmail: String + + """ + true if the mx record is hosted by google, else falsy + """ + isGoogle: Boolean + + """ + a string to redirect to the sso IdP, else null + """ + ssoURL: String + + """ + The valid invitation, if any + """ + teamInvitation: TeamInvitation + + """ + name of the inviting team, present if invitation exists + """ + teamName: String + meetingId: ID + meetingName: String + meetingType: MeetingTypeEnum + + """ + The userId of the invitee, if already a parabol user + """ + userId: ID + + """ + The invitee, if already a parabol user, present if errorType is null + """ + user: User +} diff --git a/packages/server/graphql/public/typeDefs/VoteForPokerStoryPayload.graphql b/packages/server/graphql/public/typeDefs/VoteForPokerStoryPayload.graphql new file mode 100644 index 00000000000..7965295783d --- /dev/null +++ b/packages/server/graphql/public/typeDefs/VoteForPokerStoryPayload.graphql @@ -0,0 +1,4 @@ +""" +Return object for VoteForPokerStoryPayload +""" +union VoteForPokerStoryPayload = ErrorPayload | VoteForPokerStorySuccess diff --git a/packages/server/graphql/public/typeDefs/VoteForPokerStorySuccess.graphql b/packages/server/graphql/public/typeDefs/VoteForPokerStorySuccess.graphql new file mode 100644 index 00000000000..d86a1308d73 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/VoteForPokerStorySuccess.graphql @@ -0,0 +1,6 @@ +type VoteForPokerStorySuccess { + """ + The stage that holds the updated scores + """ + stage: EstimateStage! +} diff --git a/packages/server/graphql/public/typeDefs/VoteForReflectionGroupPayload.graphql b/packages/server/graphql/public/typeDefs/VoteForReflectionGroupPayload.graphql new file mode 100644 index 00000000000..497773348a4 --- /dev/null +++ b/packages/server/graphql/public/typeDefs/VoteForReflectionGroupPayload.graphql @@ -0,0 +1,11 @@ +type VoteForReflectionGroupPayload { + error: StandardMutationError + meeting: RetrospectiveMeeting + meetingMember: RetrospectiveMeetingMember + reflectionGroup: RetroReflectionGroup + + """ + The stages that were locked or unlocked by having at least 1 vote + """ + unlockedStages: [NewMeetingStage!] +} diff --git a/packages/server/graphql/public/typeDefs/VotePhaseCompletePayload.graphql b/packages/server/graphql/public/typeDefs/VotePhaseCompletePayload.graphql new file mode 100644 index 00000000000..7a82cac412a --- /dev/null +++ b/packages/server/graphql/public/typeDefs/VotePhaseCompletePayload.graphql @@ -0,0 +1,6 @@ +type VotePhaseCompletePayload { + """ + the current meeting + """ + meeting: RetrospectiveMeeting +} diff --git a/packages/server/graphql/public/typeDefs/_legacy.graphql b/packages/server/graphql/public/typeDefs/_legacy.graphql deleted file mode 100644 index 6550de57f6d..00000000000 --- a/packages/server/graphql/public/typeDefs/_legacy.graphql +++ /dev/null @@ -1,8121 +0,0 @@ -""" -An integration provider that connects via OAuth1.0 -""" -type IntegrationProviderOAuth1 implements IntegrationProvider { - """ - The provider's unique identifier - """ - id: ID! - - """ - The team that created the provider. "aGhostTeam" if global - """ - teamId: ID! - - """ - The timestamp the provider was created - """ - createdAt: DateTime! - - """ - The timestamp the token was updated at - """ - updatedAt: DateTime! - - """ - The name of the integration service (GitLab, Mattermost, etc) - """ - service: IntegrationProviderServiceEnum! - - """ - The kind of token used by this provider (OAuth2, PAT, Webhook) - """ - authStrategy: IntegrationProviderAuthStrategyEnum! - - """ - The scope this provider configuration was created at (globally, org-wide, or by the team) - """ - scope: IntegrationProviderScopeEnum! - - """ - true if the provider configuration should be used - """ - isActive: Boolean! - - """ - The base URL of the OAuth1 server - """ - serverBaseUrl: URL! -} - -""" -An authentication provider configuration -""" -interface IntegrationProvider { - """ - The provider's unique identifier - """ - id: ID! - - """ - The team that created the provider. "aGhostTeam" if global - """ - teamId: ID! - - """ - The timestamp the provider was created - """ - createdAt: DateTime! - - """ - The timestamp the token was updated at - """ - updatedAt: DateTime! - - """ - The name of the integration service (GitLab, Mattermost, etc) - """ - service: IntegrationProviderServiceEnum! - - """ - The kind of token used by this provider (OAuth2, PAT, Webhook) - """ - authStrategy: IntegrationProviderAuthStrategyEnum! - - """ - The scope this provider configuration was created at (globally, org-wide, or by the team) - """ - scope: IntegrationProviderScopeEnum! - - """ - true if the provider configuration should be used - """ - isActive: Boolean! -} - -scalar DateTime - -""" -The name of the service of the Integration Provider -""" -enum IntegrationProviderServiceEnum { - jira - github - gitlab - mattermost - jiraServer - gcal -} - -""" -The kind of token provided by the service -""" -enum IntegrationProviderAuthStrategyEnum { - oauth1 - oauth2 - pat - webhook -} - -""" -The scope this provider was created on (globally, org-wide, or on the team) -""" -enum IntegrationProviderScopeEnum { - global - org - team -} - -scalar URL - -""" -An integration provider that connects via OAuth2 -""" -type IntegrationProviderOAuth2 implements IntegrationProvider { - """ - The provider's unique identifier - """ - id: ID! - - """ - The team that created the provider. "aGhostTeam" if global - """ - teamId: ID! - - """ - The timestamp the provider was created - """ - createdAt: DateTime! - - """ - The timestamp the token was updated at - """ - updatedAt: DateTime! - - """ - The name of the integration service (GitLab, Mattermost, etc) - """ - service: IntegrationProviderServiceEnum! - - """ - The kind of token used by this provider (OAuth2, PAT, Webhook) - """ - authStrategy: IntegrationProviderAuthStrategyEnum! - - """ - The scope this provider configuration was created at (globally, org-wide, or by the team) - """ - scope: IntegrationProviderScopeEnum! - - """ - true if the provider configuration should be used - """ - isActive: Boolean! - - """ - The base URL of the OAuth2 server - """ - serverBaseUrl: URL! - - """ - The OAuth2 client id - """ - clientId: ID! -} - -""" -An integration provider that connects via webhook -""" -type IntegrationProviderWebhook implements IntegrationProvider { - """ - The provider's unique identifier - """ - id: ID! - - """ - The team that created the provider. "aGhostTeam" if global - """ - teamId: ID! - - """ - The timestamp the provider was created - """ - createdAt: DateTime! - - """ - The timestamp the token was updated at - """ - updatedAt: DateTime! - - """ - The name of the integration service (GitLab, Mattermost, etc) - """ - service: IntegrationProviderServiceEnum! - - """ - The kind of token used by this provider (OAuth2, PAT, Webhook) - """ - authStrategy: IntegrationProviderAuthStrategyEnum! - - """ - The scope this provider configuration was created at (globally, org-wide, or by the team) - """ - scope: IntegrationProviderScopeEnum! - - """ - true if the provider configuration should be used - """ - isActive: Boolean! - - """ - The webhook URL - """ - webhookUrl: URL! -} - -""" -An authentication strategy using Google -""" -type AuthIdentityGoogle implements AuthIdentity { - """ - true if the email address using this strategy is verified, else false - """ - isEmailVerified: Boolean! - type: AuthIdentityTypeEnum! - - """ - The googleID for this strategy - """ - id: ID! -} - -""" -An authentication strategy using Microsoft -""" -type AuthIdentityMicrosoft implements AuthIdentity { - """ - true if the email address using this strategy is verified, else false - """ - isEmailVerified: Boolean! - type: AuthIdentityTypeEnum! - - """ - The Microsoft ID for this strategy - """ - id: ID! -} - -""" -An authentication strategy to log in to Parabol -""" -interface AuthIdentity { - """ - true if the email address using this strategy is verified, else false - """ - isEmailVerified: Boolean! - type: AuthIdentityTypeEnum! -} - -""" -The types of authentication strategies -""" -enum AuthIdentityTypeEnum { - LOCAL - GOOGLE - MICROSOFT -} - -""" -An authentication strategy using an email & password -""" -type AuthIdentityLocal implements AuthIdentity { - """ - true if the email address using this strategy is verified, else false - """ - isEmailVerified: Boolean! - type: AuthIdentityTypeEnum! -} - -""" -The meeting phase where all team members check in one-by-one -""" -type CheckInPhase implements NewMeetingPhase { - """ - shortid - """ - id: ID! - meetingId: ID! - teamId: ID! - - """ - The type of phase - """ - phaseType: NewMeetingPhaseTypeEnum! - stages: [CheckInStage!]! - - """ - The checkIn greeting (fun language) - """ - checkInGreeting: MeetingGreeting! - - """ - The checkIn question of the week (draft-js format) - """ - checkInQuestion: String! -} - -interface NewMeetingPhase { - """ - shortid - """ - id: ID! - meetingId: ID! - teamId: ID! - - """ - The type of phase - """ - phaseType: NewMeetingPhaseTypeEnum! - stages: [NewMeetingStage!]! -} - -""" -The phase of the meeting -""" -enum NewMeetingPhaseTypeEnum { - lobby - checkin - updates - firstcall - agendaitems - lastcall - reflect - group - vote - discuss - SUMMARY - SCOPE - ESTIMATE - RESPONSES -} - -""" -An instance of a meeting phase item. On the client, this usually represents a single view -""" -interface NewMeetingStage { - """ - stageId, shortid - """ - id: ID! - - """ - The datetime the stage was completed - """ - endAt: DateTime - - """ - foreign key. try using meeting - """ - meetingId: ID! - - """ - The meeting this stage belongs to - """ - meeting: NewMeeting - - """ - true if the facilitator has completed this stage, else false. Should be boolean(endAt) - """ - isComplete: Boolean! - - """ - true if any meeting participant can navigate to this stage - """ - isNavigable: Boolean! - - """ - true if the facilitator can navigate to this stage - """ - isNavigableByFacilitator: Boolean! - - """ - The phase this stage belongs to - """ - phase: NewMeetingPhase - - """ - The type of the phase - """ - phaseType: NewMeetingPhaseTypeEnum - - """ - The datetime the stage was started - """ - startAt: DateTime - - """ - Number of times the facilitator has visited this stage - """ - viewCount: Int - - """ - true if a time limit is set, false if end time is set, null if neither is set - """ - isAsync: Boolean - - """ - true if the viewer is ready to advance, else false - """ - isViewerReady: Boolean! - - """ - the number of meeting members ready to advance, excluding the facilitator - """ - readyCount: Int! - - """ - The datetime the phase is scheduled to be finished, null if no time limit or end time is set - """ - scheduledEndTime: DateTime - - """ - The suggested ending datetime for a phase to be completed async, null if not enough data to make a suggestion - """ - suggestedEndTime: DateTime - - """ - The suggested time limit for a phase to be completed together, null if not enough data to make a suggestion - """ - suggestedTimeLimit: Float - teamId: ID! - - """ - The number of milliseconds left before the scheduled end time. Useful for unsynced client clocks. null if scheduledEndTime is null - """ - timeRemaining: Float -} - -""" -A connection to a list of items. -""" -type TaskConnection { - """ - Page info with cursors coerced to ISO8601 dates - """ - pageInfo: PageInfoDateCursor - - """ - A list of edges. - """ - edges: [TaskEdge!]! -} - -""" -Information about pagination in a connection. -""" -type PageInfoDateCursor { - """ - When paginating forwards, are there more items? - """ - hasNextPage: Boolean! - - """ - When paginating backwards, are there more items? - """ - hasPreviousPage: Boolean! - - """ - When paginating backwards, the cursor to continue. - """ - startCursor: DateTime - - """ - When paginating forwards, the cursor to continue. - """ - endCursor: DateTime -} - -""" -An edge in a connection. -""" -type TaskEdge { - """ - The item at the end of the edge - """ - node: Task! - cursor: DateTime -} - -""" -A long-term task shared across the team, assigned to a single user -""" -type Task implements Threadable { - """ - shortid - """ - id: ID! - - """ - The rich text body of the item - """ - content: String! - - """ - The timestamp the item was created - """ - createdAt: DateTime! - - """ - The userId that created the item - """ - createdBy: ID! - - """ - The user that created the item - """ - createdByUser: User! - - """ - the replies to this threadable item - """ - replies: [Threadable!]! - - """ - The FK of the discussion this task was created in. Null if task was not created in a discussion - """ - discussionId: ID - - """ - the parent, if this threadable is a reply, else null - """ - threadParentId: ID - - """ - the order of this threadable, relative to threadParentId - """ - threadSortOrder: Float - - """ - The timestamp the item was updated - """ - updatedAt: DateTime! - - """ - The agenda item that the task was created in, if any - """ - agendaItem: AgendaItem - - """ - a user-defined due date - """ - dueDate: DateTime - - """ - A list of the most recent estimates for the task - """ - estimates: [TaskEstimate!]! - - """ - a list of users currently editing the task (fed by a subscription, so queries return null) - """ - editors: [TaskEditorDetails!]! - - """ - The reference to the single source of truth for this task - """ - integration: TaskIntegration - - """ - A hash of the integrated task - """ - integrationHash: ID - - """ - the foreign key for the meeting the task was created in - """ - meetingId: ID - - """ - the foreign key for the meeting the task was marked as complete - """ - doneMeetingId: ID - - """ - the plain text content of the task - """ - plaintextContent: String! - - """ - the shared sort order for tasks on the team dash & user dash - """ - sortOrder: Float! - - """ - The status of the task - """ - status: TaskStatusEnum! - - """ - The tags associated with the task - """ - tags: [String!]! - - """ - The id of the team (indexed). Needed for subscribing to archived tasks - """ - teamId: ID! - - """ - The team this task belongs to - """ - team: Team! - - """ - The first block of the content - """ - title: String! - - """ - * The userId, index useful for server-side methods getting all tasks under a user. This can be null if the task is not assigned to anyone. - """ - userId: ID - - """ - The user the task is assigned to. Null if it is not assigned to anyone. - """ - user: User - - """ - The owner hovers over the task in their solo update of a checkin - """ - isHighlighted( - """ - Meeting for which the highlight is checked - """ - meetingId: ID - ): Boolean! -} - -""" -An item that can be put in a thread -""" -interface Threadable { - """ - shortid - """ - id: ID! - - """ - The rich text body of the item - """ - content: String! - - """ - The timestamp the item was created - """ - createdAt: DateTime! - - """ - The userId that created the item - """ - createdBy: ID - - """ - The user that created the item - """ - createdByUser: User - - """ - the replies to this threadable item - """ - replies: [Threadable!]! - - """ - The FK of the discussion this task was created in. Null if task was not created in a discussion - """ - discussionId: ID - - """ - the parent, if this threadable is a reply, else null - """ - threadParentId: ID - - """ - the order of this threadable, relative to threadParentId - """ - threadSortOrder: Float - - """ - The timestamp the item was updated - """ - updatedAt: DateTime! -} - -""" -The user that is commenting -""" -type CommentorDetails { - """ - The userId of the person commenting - """ - id: ID! - - """ - The preferred name of the user commenting - """ - preferredName: String! -} - -""" -A member of a team -""" -type TeamMember { - """ - An ID for the teamMember. userId::teamId - """ - id: ID! - - """ - All the integrations that the user could possibly use - """ - allAvailableRepoIntegrations: [RepoIntegration!]! - - """ - The datetime the team member was created - """ - createdAt: DateTime! - - """ - true if the user is a part of the team, false if they no longer are - """ - isNotRemoved: Boolean - - """ - Is user a team lead? - """ - isLead: Boolean! - - """ - Is user an admin of the team's org? - """ - isOrgAdmin: Boolean! - - """ - true if the user prefers to not vote during a poker meeting - """ - isSpectatingPoker: Boolean! - - """ - the type of drawer that is open in the team dash. Null if the drawer is closed - """ - openDrawer: TeamDrawer - - """ - The user email - """ - email: Email! - - """ - url of user’s profile picture - """ - picture: URL! - - """ - true if this team member belongs to the user that queried it - """ - isSelf: Boolean! - - """ - The integrations that the team member has authorized. accessible by all - """ - integrations: TeamMemberIntegrations! - - """ - The meeting specifics for the meeting the team member is currently in - """ - meetingMember(meetingId: ID!): MeetingMember - - """ - The name of the assignee - """ - preferredName: String! - - """ - The integrations that the user would probably like to use - """ - repoIntegrations: RepoIntegrationQueryPayload! - - """ - Tasks owned by the team member - """ - tasks( - first: Int - - """ - the datetime cursor - """ - after: DateTime - ): TaskConnection - - """ - The team this team member belongs to - """ - team: Team - - """ - foreign key to Team table - """ - teamId: ID! - - """ - The user for the team member - """ - user: User! - - """ - foreign key to User table - """ - userId: ID! -} - -""" -The right drawer types available on the team dashboard -""" -enum TeamDrawer { - agenda - manageTeam -} - -scalar Email - -interface TaskIntegration { - id: ID! -} - -""" -The URLs for avatars. NOTE: If they are custom, an Authorization header is required! -""" -type JiraRemoteAvatarUrls { - x48: ID! - x24: ID! - x16: ID! - x32: ID! -} - -""" -A project category fetched from a JiraRemoteProject -""" -type JiraRemoteProjectCategory { - self: String! - id: String! - name: String! - description: String! -} - -type StandardMutationError { - """ - The title of the error - """ - title: String - - """ - The full error - """ - message: String! -} - -""" -A jira search query including all filters selected when the query was executed -""" -type JiraSearchQuery { - """ - shortid - """ - id: ID! - - """ - The query string, either simple or JQL depending on the isJQL flag - """ - queryString: String! - - """ - true if the queryString is JQL, else false - """ - isJQL: Boolean! - - """ - The list of project keys selected as a filter. null if not set - """ - projectKeyFilters: [ID!]! - - """ - the time the search query was last used. Used for sorting - """ - lastUsedAt: DateTime! -} - -""" -an event trigger and slack channel to receive it -""" -type SlackNotification { - id: ID! - event: SlackNotificationEventEnum! - eventType: SlackNotificationEventTypeEnum! - - """ - null if no notification is to be sent - """ - channelId: ID - teamId: ID! - userId: ID! -} - -""" -The event that triggers a slack notification -""" -enum SlackNotificationEventEnum { - meetingStart - meetingEnd - MEETING_STAGE_TIME_LIMIT_END - MEETING_STAGE_TIME_LIMIT_START -} - -""" -The type of event for a slack notification -""" -enum SlackNotificationEventTypeEnum { - """ - notification that concerns the whole team - """ - team - - """ - notification that concerns a single member on the team - """ - member -} - -""" -All the user details for a specific meeting -""" -interface MeetingMember { - """ - A composite of userId::meetingId - """ - id: ID! - - """ - true if present, false if absent, else null - """ - isCheckedIn: Boolean - @deprecated( - reason: "Members are checked in when they enter the meeting now & not created beforehand" - ) - meetingId: ID! - meetingType: MeetingTypeEnum! - teamId: ID! - teamMember: TeamMember! - user: User! - userId: ID! - - """ - The last time a meeting was updated (stage completed, finished, etc) - """ - updatedAt: DateTime! -} - -""" -The type of meeting -""" -enum MeetingTypeEnum { - action - retrospective - poker - teamPrompt -} - -""" -An invitation and expiration -""" -type MassInvitation { - """ - the invitation token - """ - id: ID! - - """ - the expiration for the token - """ - expiration: DateTime! - meetingId: ID -} - -""" -Poker dimensions mapped to their corresponding fields in jira -""" -type JiraDimensionField { - id: ID! - - """ - The atlassian cloud that the field lives in - """ - cloudId: ID! - - """ - The name of the associated dimension - """ - dimensionName: String! - - """ - The project under the atlassian cloud the field lives in - """ - projectKey: ID! - - """ - The ID referring to the field name - """ - fieldId: ID! - - """ - The field name in jira that the estimate is pushed to - """ - fieldName: String! - - """ - the type of field, e.g. number, string, any - """ - fieldType: String! -} - -""" -A team-specific reflection prompt. Usually 3 or 4 exist per team, eg Good/Bad/Change, 4Ls, etc. -""" -type ReflectPrompt { - """ - shortid - """ - id: ID! - createdAt: DateTime! - - """ - foreign key. use the team field - """ - teamId: ID! - - """ - The team that owns this reflectPrompt - """ - team: Team - updatedAt: DateTime! - - """ - the order of the items in the template - """ - sortOrder: Float! - - """ - FK for template - """ - templateId: ID! - - """ - The template that this prompt belongs to - """ - template: ReflectTemplate! - - """ - The question to answer during the phase of the retrospective (eg What went well?) - """ - question: String! - - """ - The description to the question for further context. A long version of the question. - """ - description: String! - - """ - The color used to visually group a phase item. - """ - groupColor: String! - - """ - The datetime that the prompt was removed. Null if it has not been removed. - """ - removedAt: DateTime -} - -""" -The scope of a shareable item -""" -enum SharingScopeEnum { - TEAM - ORGANIZATION - PUBLIC -} - -""" -An invitation to become a team member -""" -type TeamInvitation { - """ - The unique invitation Id - """ - id: ID! - - """ - null if not accepted, else the datetime the invitation was accepted - """ - acceptedAt: DateTime - - """ - null if not accepted, else the userId that accepted the invitation - """ - acceptedBy: ID - - """ - The datetime the invitation was created - """ - createdAt: DateTime! - - """ - The email of the invitee - """ - email: Email! - - """ - The datetime the invitation expires. Changes when team is archived. - """ - expiresAt: DateTime! - - """ - The userId of the person that sent the invitation - """ - invitedBy: ID! - - """ - The userId of the person that sent the invitation - """ - inviter: User! - - """ - the meetingId that the invite was generated for - """ - meetingId: ID - - """ - The team invited to - """ - teamId: ID! - - """ - 48-byte hex encoded random string - """ - token: ID! -} - -""" -The team settings for a specific type of meeting -""" -interface TeamMeetingSettings { - id: ID! - - """ - The type of meeting these settings apply to - """ - meetingType: MeetingTypeEnum! - - """ - The broad phase types that will be addressed during the meeting - """ - phaseTypes: [NewMeetingPhaseTypeEnum!]! - - """ - FK - """ - teamId: ID! - - """ - The team these settings belong to - """ - team: Team! -} - -""" -A team-specific template scale. -""" -type TemplateScale { - """ - shortid - """ - id: ID! - createdAt: DateTime! - - """ - true if the scale is currently used by the team, else false - """ - isActive: Boolean! - - """ - True if this is a starter/default scale; false otherwise - """ - isStarter: Boolean! - - """ - The datetime that the scale was removed. Null if it has not been removed. - """ - removedAt: DateTime - - """ - foreign key. use the team field - """ - teamId: ID! - - """ - The team that owns this template scale - """ - team: Team! - updatedAt: DateTime! - - """ - The title of the scale used in the template - """ - name: String! - - """ - The dimensions currently using this scale - """ - dimensions: [TemplateDimension!]! - - """ - The values used in this scale - """ - values: [TemplateScaleValue!]! -} - -""" -A team-specific template dimension: e.g., effort, importance etc. -""" -type TemplateDimension { - """ - shortid - """ - id: ID! - createdAt: DateTime! - - """ - true if the dimension is currently used by the team, else false - """ - isActive: Boolean! - - """ - The datetime that the dimension was removed. Null if it has not been removed. - """ - removedAt: DateTime - - """ - foreign key. use the team field - """ - teamId: ID! - - """ - The team that owns this dimension - """ - team: Team! - updatedAt: DateTime! - - """ - the order of the dimensions in the template - """ - sortOrder: Float! - - """ - FK for template - """ - templateId: ID! - - """ - The template that this dimension belongs to - """ - template: PokerTemplate! - - """ - The name of the dimension - """ - name: String! - - """ - The description to the dimension name for further context. A long version of the dimension name. - """ - description: String! - - """ - The scaleId to resolve the selected scale - """ - scaleId: ID! - - """ - scale used in this dimension - """ - selectedScale: TemplateScale! -} - -""" -A value for a scale. -""" -type TemplateScaleValue { - id: ID! - - """ - The id of the scale this value belongs to - """ - scaleId: ID! - - """ - The color used to visually group a scale value - """ - color: String! - - """ - The label for this value, e.g., XS, M, L - """ - label: String! - - """ - the order of the scale value in this scale - """ - sortOrder: Int! -} - -""" -The pay tier of the team -""" -enum TierEnum { - starter - team - enterprise -} - -""" -A credit card -""" -type CreditCard { - """ - The brand of the credit card, as provided by stripe - """ - brand: String! - - """ - The MM/YY string of the expiration date - """ - expiry: String! - - """ - The last 4 digits of a credit card - """ - last4: String! -} - -""" -A connection to a list of items. -""" -type OrganizationUserConnection { - """ - Information to aid in pagination. - """ - pageInfo: PageInfo! - - """ - A list of edges. - """ - edges: [OrganizationUserEdge!]! -} - -""" -Information about pagination in a connection. -""" -type PageInfo { - """ - When paginating forwards, are there more items? - """ - hasNextPage: Boolean! - - """ - When paginating backwards, are there more items? - """ - hasPreviousPage: Boolean! - - """ - When paginating backwards, the cursor to continue. - """ - startCursor: String - - """ - When paginating forwards, the cursor to continue. - """ - endCursor: String -} - -""" -An edge in a connection. -""" -type OrganizationUserEdge { - """ - The item at the end of the edge - """ - node: OrganizationUser! - - """ - A cursor for use in pagination - """ - cursor: String! -} - -""" -organization-specific details about a user -""" -type OrganizationUser { - """ - orgId::userId - """ - id: ID! - - """ - true if the user is paused and the orgs are not being billed, else false - """ - inactive: Boolean! - - """ - the datetime the user first joined the org - """ - joinedAt: DateTime! - - """ - FK - """ - orgId: ID! - - """ - The user attached to the organization - """ - organization: Organization! - - """ - if not a member, the datetime the user was removed from the org - """ - removedAt: DateTime - - """ - role of the user in the org - """ - role: OrgUserRole - - """ - FK - """ - userId: ID! - - """ - The user attached to the organization - """ - user: User! - - tier: TierEnum - - billingTier: TierEnum -} - -""" -The role of the org user -""" -enum OrgUserRole { - BILLING_LEADER -} - -type OrgUserCount { - """ - The number of orgUsers who have an inactive flag - """ - inactiveUserCount: Int! - - """ - The number of orgUsers who do not have an inactive flag - """ - activeUserCount: Int! -} - -""" -An estimate for a Task that was voted on and scored in a poker meeting -""" -type TaskEstimate { - """ - The ID of the estimate - """ - id: ID! - - """ - The timestamp the estimate was created - """ - createdAt: DateTime! - - """ - The source that a change came in through - """ - changeSource: ChangeSourceEnum! - - """ - The name of the estimate dimension - """ - name: String! - - """ - The human-readable label for the estimate - """ - label: String! - - """ - *The taskId that the estimate refers to - """ - taskId: ID! - - """ - The userId that added the estimate - """ - userId: ID! - - """ - *The meetingId that the estimate occured in, if any - """ - meetingId: ID - - """ - The meeting stageId the estimate occurred in, if any - """ - stageId: ID - - """ - The discussionId where the estimated was discussed - """ - discussionId: ID - - """ - If the task comes from jira, this is the jira field that the estimate refers to - """ - jiraFieldId: ID -} - -""" -The source that a change to a record came in through -""" -enum ChangeSourceEnum { - meeting - task - external -} - -type TaskEditorDetails { - """ - The userId of the person editing the task - """ - userId: ID! - - """ - The name of the userId editing the task - """ - preferredName: String! -} - -""" -The status of the task -""" -enum TaskStatusEnum { - active - stuck - done - future -} - -""" -A monthly billing invoice for an organization -""" -type Invoice { - """ - A shortid for the invoice - """ - id: ID! - - """ - The tier this invoice pays for - """ - tier: TierEnum! - - """ - The amount the card will be charged (total + startingBalance with a min value of 0) - """ - amountDue: Float! - - """ - The datetime the invoice was first generated - """ - createdAt: DateTime! - - """ - The discount coupon information from Stripe, if any discount applied - """ - coupon: Coupon - - """ - The total amount for the invoice (in USD) - """ - total: Float! - - """ - The emails the invoice was sent to - """ - billingLeaderEmails: [Email!]! - - """ - the card used to pay the invoice - """ - creditCard: CreditCard - - """ - The timestamp for the end of the billing cycle - """ - endAt: DateTime! - - """ - The date the invoice was created - """ - invoiceDate: DateTime! - - """ - An invoice line item for previous month adjustments - """ - lines: [InvoiceLineItem!]! - - """ - The details that comprise the charges for next month - """ - nextPeriodCharges: NextPeriodCharges! - - """ - *The organization id to charge - """ - orgId: ID! - - """ - The persisted name of the org as it was when invoiced - """ - orgName: String! - - """ - the datetime the invoice was successfully paid - """ - paidAt: DateTime - - """ - The URL to pay via stripe if payment was not collected in app - """ - payUrl: String - - """ - The picture of the organization - """ - picture: URL - - """ - The timestamp for the beginning of the billing cycle - """ - startAt: DateTime! - - """ - The balance on the customer account (in cents) - """ - startingBalance: Float! - - """ - the status of the invoice. starts as pending, moves to paid or unpaid depending on if the payment succeeded - """ - status: InvoiceStatusEnum! -} - -""" -The discount coupon from Stripe, if any -""" -type Coupon { - """ - The ID of the discount coupon from Stripe - """ - id: String! - - """ - The amount off the invoice, if any - """ - amountOff: Int - - """ - The name of the discount coupon from Stripe - """ - name: String! - - """ - The percent off the invoice, if any - """ - percentOff: Int -} - -""" -A single line item charge on the invoice -""" -type InvoiceLineItem { - """ - The unique line item id - """ - id: ID! - - """ - The amount for the line item (in USD) - """ - amount: Float! - - """ - A description of the charge. Only present if we have no idea what the charge is - """ - description: String - - """ - Array of user activity line items that roll up to total activity (add/leave/pause/unpause) - """ - details: [InvoiceLineItemDetails!]! - - """ - The total number of days that all org users have been inactive during the billing cycle - """ - quantity: Int - - """ - The line item type for a monthly billing invoice - """ - type: InvoiceLineItemEnum! -} - -""" -The per-user-action line item details, -""" -type InvoiceLineItemDetails { - """ - The unique detailed line item id - """ - id: ID! - - """ - The amount for the line item (in USD) - """ - amount: Float! - - """ - The email affected by this line item change - """ - email: Email! - - """ - End of the event. Only present if a pause action gets matched up with an unpause action - """ - endAt: DateTime - - """ - The parent line item id - """ - parentId: ID! - - """ - The timestamp for the beginning of the period of no charge - """ - startAt: DateTime -} - -""" -A big picture line item -""" -enum InvoiceLineItemEnum { - ADDED_USERS - INACTIVITY_ADJUSTMENTS - OTHER_ADJUSTMENTS - REMOVED_USERS -} - -""" -A single line item for the charges for next month -""" -type NextPeriodCharges { - """ - The amount for the line item (in USD) - """ - amount: Float! - - """ - The datetime the next period will end - """ - nextPeriodEnd: DateTime! - - """ - The total number of days that all org users have been inactive during the billing cycle - """ - quantity: Int! - - """ - The per-seat monthly price of the subscription (in dollars), null if invoice is not per-seat - """ - unitPrice: Float - - """ - "year" if enterprise, else "month" for pro - """ - interval: String -} - -""" -The payment status of the invoice -""" -enum InvoiceStatusEnum { - PENDING - PAID - FAILED - UPCOMING -} - -""" -A connection to a list of items. -""" -type InvoiceConnection { - """ - Page info with cursors coerced to ISO8601 dates - """ - pageInfo: PageInfoDateCursor - - """ - A list of edges. - """ - edges: [InvoiceEdge!]! -} - -""" -An edge in a connection. -""" -type InvoiceEdge { - """ - The item at the end of the edge - """ - node: Invoice! - cursor: DateTime -} - -""" -A past event that is important to the viewer -""" -interface SuggestedAction { - """ - shortid - """ - id: ID! - - """ - * The timestamp the action was created at - """ - createdAt: DateTime! - - """ - The priority of the suggested action compared to other suggested actions (smaller number is higher priority) - """ - priority: Float - - """ - * The timestamp the action was removed at - """ - removedAt: DateTime! - - """ - The specific type of suggested action - """ - type: SuggestedActionTypeEnum! - - """ - * The userId this action is for - """ - userId: ID! - - """ - The user than can see this event - """ - user: User! -} - -""" -The specific type of the suggested action -""" -enum SuggestedActionTypeEnum { - inviteYourTeam - tryTheDemo - tryRetroMeeting - createNewTeam - tryActionMeeting -} - -""" -A connection to a list of items. -""" -type TimelineEventConnection { - """ - Page info with cursors coerced to ISO8601 dates - """ - pageInfo: PageInfoDateCursor - - """ - A list of edges. - """ - edges: [TimelineEventEdge!]! -} - -""" -An edge in a connection. -""" -type TimelineEventEdge { - """ - The item at the end of the edge - """ - node: TimelineEvent! - cursor: DateTime -} - -""" -A past event that is important to the viewer -""" -interface TimelineEvent { - """ - shortid - """ - id: ID! - - """ - * The timestamp the event was created at - """ - createdAt: DateTime! - - """ - the number of times the user has interacted with (ie clicked) this event - """ - interactionCount: Int! - - """ - true if the timeline event is active, false if archived - """ - isActive: Boolean! - - """ - The orgId this event is associated with. Null if not traceable to one org - """ - orgId: ID - - """ - The organization this event is associated with - """ - organization: Organization - - """ - the number of times the user has seen this event - """ - seenCount: Int! - - """ - The teamId this event is associated with. Null if not traceable to one team - """ - teamId: ID - - """ - The team that can see this event - """ - team: Team - - """ - The specific type of event - """ - type: TimelineEventEnum! - - """ - * The userId that can see this event - """ - userId: ID! - - """ - The user than can see this event - """ - user: User! -} - -""" -The specific type of event -""" -enum TimelineEventEnum { - retroComplete - actionComplete - joinedParabol - createdTeam - POKER_COMPLETE - TEAM_PROMPT_COMPLETE -} - -""" -A discussion thread -""" -type Discussion { - id: ID! - teamId: ID! - meetingId: ID! - - """ - Team - """ - team: Team! - - """ - time the thread was created - """ - createdAt: DateTime! - - """ - The partial foreign key that references the object that is the topic of the discussion. E.g. AgendaItemId, TaskId, ReflectionGroupId - """ - discussionTopicId: ID! - - """ - The partial foregin key that describes the type of object that is the topic of the discussion. E.g. AgendaItem, TaskId, ReflectionGroup, GitHubIssue - """ - discussionTopicType: DiscussionTopicTypeEnum! - - """ - The number of comments contained in the thread - """ - commentCount: Int! - - """ - The users writing a comment right now - """ - commentors: [User!]! - - """ - The comments & tasks thread in the discussion - """ - thread( - """ - How many items to show. optional if only comments are desired - """ - first: Int - - """ - the incrementing sort order in string format - """ - after: String - ): ThreadableConnection! - - """ - The stage where the discussion is - """ - stage: NewMeetingStage -} - -""" -The topic being discussed -""" -enum DiscussionTopicTypeEnum { - agendaItem - reflectionGroup - task - githubIssue - jiraIssue -} - -""" -A connection to a list of items. -""" -type ThreadableConnection { - """ - Page info with strings (sortOrder) as cursors - """ - pageInfo: PageInfo - - """ - A list of edges. - """ - edges: [ThreadableEdge!]! - - """ - Any errors that prevented the query from returning the full results - """ - error: String -} - -""" -An edge in a connection. -""" -type ThreadableEdge { - """ - The item at the end of the edge - """ - node: Threadable! - cursor: String -} - -""" -The latest feature released by Parabol -""" -type NewFeatureBroadcast { - id: ID! - - """ - The text of the action button in the snackbar - """ - actionButtonCopy: String! - - """ - The description of the new feature - """ - snackbarMessage: String! - - """ - The permalink to the blog post describing the new feature - """ - url: String! -} - -""" -A connection to a list of items. -""" -type NotificationConnection { - """ - Page info with cursors coerced to ISO8601 dates - """ - pageInfo: PageInfoDateCursor - - """ - A list of edges. - """ - edges: [NotificationEdge!]! -} - -""" -An edge in a connection. -""" -type NotificationEdge { - """ - The item at the end of the edge - """ - node: Notification! - cursor: DateTime -} - -interface Notification { - """ - A shortid for the notification - """ - id: ID! - - """ - UNREAD if new, READ if viewer has seen it, CLICKED if viewed clicked it - """ - status: NotificationStatusEnum! - - """ - The datetime to activate the notification & send it to the client - """ - createdAt: DateTime! - type: NotificationEnum! - - """ - *The userId that should see this notification - """ - userId: ID! -} - -""" -The status of the notification interaction -""" -enum NotificationStatusEnum { - UNREAD - READ - CLICKED -} - -""" -The kind of notification -""" -enum NotificationEnum { - DISCUSSION_MENTIONED - KICKED_OUT - PAYMENT_REJECTED - PROMOTE_TO_BILLING_LEADER - TEAM_INVITATION - TEAM_ARCHIVED - TASK_INVOLVES - MEETING_STAGE_TIME_LIMIT_END - RESPONSE_MENTIONED - MENTIONED - RESPONSE_REPLIED - TEAMS_LIMIT_EXCEEDED - TEAMS_LIMIT_REMINDER -} - -""" -A reflection group created during the group phase of a retrospective -""" -type RetroReflectionGroup { - """ - shortid - """ - id: ID! - - """ - A list of users currently commenting - """ - commentors: [CommentorDetails!] - @deprecated(reason: "Moved to ThreadConnection. Can remove Jun-01-2021") - - """ - The timestamp the meeting was created - """ - createdAt: DateTime! - - """ - True if the group has not been removed, else false - """ - isActive: Boolean! - - """ - The foreign key to link a reflection group to its meeting - """ - meetingId: ID! - - """ - The retrospective meeting this reflection was created in - """ - meeting: RetrospectiveMeeting! - prompt: ReflectPrompt! - - """ - The foreign key to link a reflection group to its prompt. Immutable. - """ - promptId: ID! - reflections: [RetroReflection!]! - - """ - Our auto-suggested title, to be compared to the actual title for analytics - """ - smartTitle: String - - """ - The sort order of the reflection group - """ - sortOrder: Float! - - """ - The team that is running the retro - """ - team: Team - - """ - The title of the grouping of the retrospective reflections - """ - title: String - - """ - true if a user wrote the title, else false - """ - titleIsUserDefined: Boolean! - - """ - The timestamp the meeting was updated at - """ - updatedAt: DateTime - - """ - A list of voterIds (userIds). Not available to team to preserve anonymity - """ - voterIds: [ID!]! - - """ - The number of votes this group has received - """ - voteCount: Int! - - """ - The number of votes the viewer has given this group - """ - viewerVoteCount: Int -} - -""" -An item that can have reactjis -""" -interface Reactable { - """ - shortid - """ - id: ID! - - """ - All the reactjis for the given reflection - """ - reactjis: [Reactji!]! -} - -type GoogleAnalyzedEntity { - """ - The lemma (dictionary entry) of the entity name. Fancy way of saying the singular form of the name, if plural. - """ - lemma: String! - - """ - The name of the entity. Usually 1 or 2 words. Always a noun, sometimes a proper noun. - """ - name: String! - - """ - The salience of the entity in the provided text. The salience of all entities always sums to 1 - """ - salience: Float! -} - -""" -The response to a teamInvitation query -""" -type TeamInvitationPayload { - """ - The team invitation, if any - """ - teamInvitation: TeamInvitation - - """ - the teamId of the team trying to join - """ - teamId: ID - - """ - one of the active meetings trying to join - """ - meetingId: ID -} - -""" -A stage that focuses on a single team member -""" -type CheckInStage implements NewMeetingStage & NewMeetingTeamMemberStage { - """ - stageId, shortid - """ - id: ID! - - """ - The datetime the stage was completed - """ - endAt: DateTime - - """ - foreign key. try using meeting - """ - meetingId: ID! - - """ - The meeting this stage belongs to - """ - meeting: NewMeeting - - """ - true if the facilitator has completed this stage, else false. Should be boolean(endAt) - """ - isComplete: Boolean! - - """ - true if any meeting participant can navigate to this stage - """ - isNavigable: Boolean! - - """ - true if the facilitator can navigate to this stage - """ - isNavigableByFacilitator: Boolean! - - """ - The phase this stage belongs to - """ - phase: NewMeetingPhase - - """ - The type of the phase - """ - phaseType: NewMeetingPhaseTypeEnum - - """ - The datetime the stage was started - """ - startAt: DateTime - - """ - Number of times the facilitator has visited this stage - """ - viewCount: Int - - """ - true if a time limit is set, false if end time is set, null if neither is set - """ - isAsync: Boolean - - """ - true if the viewer is ready to advance, else false - """ - isViewerReady: Boolean! - - """ - the number of meeting members ready to advance, excluding the facilitator - """ - readyCount: Int! - - """ - The datetime the phase is scheduled to be finished, null if no time limit or end time is set - """ - scheduledEndTime: DateTime - - """ - The suggested ending datetime for a phase to be completed async, null if not enough data to make a suggestion - """ - suggestedEndTime: DateTime - - """ - The suggested time limit for a phase to be completed together, null if not enough data to make a suggestion - """ - suggestedTimeLimit: Float - teamId: ID! - - """ - The number of milliseconds left before the scheduled end time. Useful for unsynced client clocks. null if scheduledEndTime is null - """ - timeRemaining: Float - - """ - The meeting member that is the focus for this phase item - """ - meetingMember: MeetingMember! - - """ - foreign key. use teamMember - """ - teamMemberId: ID! - - """ - The team member that is the focus for this phase item - """ - teamMember: TeamMember! -} - -""" -An instance of a meeting phase item. On the client, this usually represents a single view -""" -interface NewMeetingTeamMemberStage { - """ - The meeting member that is the focus for this phase item - """ - meetingMember: MeetingMember! - - """ - foreign key. use teamMember - """ - teamMemberId: ID! - - """ - The team member that is the focus for this phase item - """ - teamMember: TeamMember! -} - -type MeetingGreeting { - """ - The foreign-language greeting - """ - content: String! - - """ - The source language for the greeting - """ - language: String! -} - -""" -The meeting phase where all team members check in one-by-one -""" -type ReflectPhase implements NewMeetingPhase { - """ - shortid - """ - id: ID! - meetingId: ID! - teamId: ID! - - """ - The type of phase - """ - phaseType: NewMeetingPhaseTypeEnum! - stages: [GenericMeetingStage!]! - - """ - foreign key. use focusedPrompt - """ - focusedPromptId: ID - - """ - the Prompt that the facilitator wants the group to focus on - """ - focusedPrompt: ReflectPrompt - - """ - The prompts used during the reflect phase - """ - reflectPrompts: [ReflectPrompt!]! -} - -""" -A stage of a meeting that has no extra state. Only used for single-stage phases -""" -type GenericMeetingStage implements NewMeetingStage { - """ - stageId, shortid - """ - id: ID! - - """ - The datetime the stage was completed - """ - endAt: DateTime - - """ - foreign key. try using meeting - """ - meetingId: ID! - - """ - The meeting this stage belongs to - """ - meeting: NewMeeting - - """ - true if the facilitator has completed this stage, else false. Should be boolean(endAt) - """ - isComplete: Boolean! - - """ - true if any meeting participant can navigate to this stage - """ - isNavigable: Boolean! - - """ - true if the facilitator can navigate to this stage - """ - isNavigableByFacilitator: Boolean! - - """ - The phase this stage belongs to - """ - phase: NewMeetingPhase - - """ - The type of the phase - """ - phaseType: NewMeetingPhaseTypeEnum - - """ - The datetime the stage was started - """ - startAt: DateTime - - """ - Number of times the facilitator has visited this stage - """ - viewCount: Int - - """ - true if a time limit is set, false if end time is set, null if neither is set - """ - isAsync: Boolean - - """ - true if the viewer is ready to advance, else false - """ - isViewerReady: Boolean! - - """ - the number of meeting members ready to advance, excluding the facilitator - """ - readyCount: Int! - - """ - The datetime the phase is scheduled to be finished, null if no time limit or end time is set - """ - scheduledEndTime: DateTime - - """ - The suggested ending datetime for a phase to be completed async, null if not enough data to make a suggestion - """ - suggestedEndTime: DateTime - - """ - The suggested time limit for a phase to be completed together, null if not enough data to make a suggestion - """ - suggestedTimeLimit: Float - teamId: ID! - - """ - The number of milliseconds left before the scheduled end time. Useful for unsynced client clocks. null if scheduledEndTime is null - """ - timeRemaining: Float -} - -""" -The meeting phase where all team members discuss the topics with the most votes -""" -type DiscussPhase implements NewMeetingPhase { - """ - shortid - """ - id: ID! - meetingId: ID! - teamId: ID! - - """ - The type of phase - """ - phaseType: NewMeetingPhaseTypeEnum! - stages: [RetroDiscussStage!]! -} - -""" -The stage where the team discusses a single theme -""" -type RetroDiscussStage implements NewMeetingStage & DiscussionThreadStage { - """ - stageId, shortid - """ - id: ID! - - """ - The datetime the stage was completed - """ - endAt: DateTime - - """ - foreign key. try using meeting - """ - meetingId: ID! - - """ - The meeting this stage belongs to - """ - meeting: NewMeeting - - """ - true if the facilitator has completed this stage, else false. Should be boolean(endAt) - """ - isComplete: Boolean! - - """ - true if any meeting participant can navigate to this stage - """ - isNavigable: Boolean! - - """ - true if the facilitator can navigate to this stage - """ - isNavigableByFacilitator: Boolean! - - """ - The phase this stage belongs to - """ - phase: NewMeetingPhase - - """ - The type of the phase - """ - phaseType: NewMeetingPhaseTypeEnum - - """ - The datetime the stage was started - """ - startAt: DateTime - - """ - Number of times the facilitator has visited this stage - """ - viewCount: Int - - """ - true if a time limit is set, false if end time is set, null if neither is set - """ - isAsync: Boolean - - """ - true if the viewer is ready to advance, else false - """ - isViewerReady: Boolean! - - """ - the number of meeting members ready to advance, excluding the facilitator - """ - readyCount: Int! - - """ - The datetime the phase is scheduled to be finished, null if no time limit or end time is set - """ - scheduledEndTime: DateTime - - """ - The suggested ending datetime for a phase to be completed async, null if not enough data to make a suggestion - """ - suggestedEndTime: DateTime - - """ - The suggested time limit for a phase to be completed together, null if not enough data to make a suggestion - """ - suggestedTimeLimit: Float - teamId: ID! - - """ - The number of milliseconds left before the scheduled end time. Useful for unsynced client clocks. null if scheduledEndTime is null - """ - timeRemaining: Float - - """ - The ID to find the discussion that goes in the stage - """ - discussionId: ID! - - """ - The discussion about the stage or a dummy data when there is no disscussion - """ - discussion: Discussion! - - """ - foreign key. use reflectionGroup - """ - reflectionGroupId: ID! - - """ - the group that is the focal point of the discussion - """ - reflectionGroup: RetroReflectionGroup! - - """ - The sort order for reprioritizing discussion topics - """ - sortOrder: Float! -} - -""" -A meeting stage that includes a discussion thread -""" -interface DiscussionThreadStage { - """ - The ID to find the discussion that goes in the stage - """ - discussionId: ID! - - """ - The discussion about the stage - """ - discussion: Discussion! -} - -""" -The meeting phase where all team members give updates one-by-one -""" -type UpdatesPhase implements NewMeetingPhase { - """ - shortid - """ - id: ID! - meetingId: ID! - teamId: ID! - - """ - The type of phase - """ - phaseType: NewMeetingPhaseTypeEnum! - stages: [UpdatesStage!]! -} - -""" -A stage that focuses on a single team member -""" -type UpdatesStage implements NewMeetingStage & NewMeetingTeamMemberStage { - """ - stageId, shortid - """ - id: ID! - - """ - The datetime the stage was completed - """ - endAt: DateTime - - """ - foreign key. try using meeting - """ - meetingId: ID! - - """ - The meeting this stage belongs to - """ - meeting: NewMeeting - - """ - true if the facilitator has completed this stage, else false. Should be boolean(endAt) - """ - isComplete: Boolean! - - """ - true if any meeting participant can navigate to this stage - """ - isNavigable: Boolean! - - """ - true if the facilitator can navigate to this stage - """ - isNavigableByFacilitator: Boolean! - - """ - The phase this stage belongs to - """ - phase: NewMeetingPhase - - """ - The type of the phase - """ - phaseType: NewMeetingPhaseTypeEnum - - """ - The datetime the stage was started - """ - startAt: DateTime - - """ - Number of times the facilitator has visited this stage - """ - viewCount: Int - - """ - true if a time limit is set, false if end time is set, null if neither is set - """ - isAsync: Boolean - - """ - true if the viewer is ready to advance, else false - """ - isViewerReady: Boolean! - - """ - the number of meeting members ready to advance, excluding the facilitator - """ - readyCount: Int! - - """ - The datetime the phase is scheduled to be finished, null if no time limit or end time is set - """ - scheduledEndTime: DateTime - - """ - The suggested ending datetime for a phase to be completed async, null if not enough data to make a suggestion - """ - suggestedEndTime: DateTime - - """ - The suggested time limit for a phase to be completed together, null if not enough data to make a suggestion - """ - suggestedTimeLimit: Float - teamId: ID! - - """ - The number of milliseconds left before the scheduled end time. Useful for unsynced client clocks. null if scheduledEndTime is null - """ - timeRemaining: Float - - """ - The meeting member that is the focus for this phase item - """ - meetingMember: MeetingMember! - - """ - foreign key. use teamMember - """ - teamMemberId: ID! - - """ - The team member that is the focus for this phase item - """ - teamMember: TeamMember! -} - -""" -The stage where the team estimates & discusses a single task -""" -type EstimateStage implements NewMeetingStage & DiscussionThreadStage { - """ - stageId, shortid - """ - id: ID! - - """ - The datetime the stage was completed - """ - endAt: DateTime - - """ - foreign key. try using meeting - """ - meetingId: ID! - - """ - The meeting this stage belongs to - """ - meeting: NewMeeting - - """ - true if the facilitator has completed this stage, else false. Should be boolean(endAt) - """ - isComplete: Boolean! - - """ - true if any meeting participant can navigate to this stage - """ - isNavigable: Boolean! - - """ - true if the facilitator can navigate to this stage - """ - isNavigableByFacilitator: Boolean! - - """ - The phase this stage belongs to - """ - phase: NewMeetingPhase - - """ - The type of the phase - """ - phaseType: NewMeetingPhaseTypeEnum - - """ - The datetime the stage was started - """ - startAt: DateTime - - """ - Number of times the facilitator has visited this stage - """ - viewCount: Int - - """ - true if a time limit is set, false if end time is set, null if neither is set - """ - isAsync: Boolean - - """ - true if the viewer is ready to advance, else false - """ - isViewerReady: Boolean! - - """ - the number of meeting members ready to advance, excluding the facilitator - """ - readyCount: Int! - - """ - The datetime the phase is scheduled to be finished, null if no time limit or end time is set - """ - scheduledEndTime: DateTime - - """ - The suggested ending datetime for a phase to be completed async, null if not enough data to make a suggestion - """ - suggestedEndTime: DateTime - - """ - The suggested time limit for a phase to be completed together, null if not enough data to make a suggestion - """ - suggestedTimeLimit: Float - teamId: ID! - - """ - The number of milliseconds left before the scheduled end time. Useful for unsynced client clocks. null if scheduledEndTime is null - """ - timeRemaining: Float - - """ - The ID to find the discussion that goes in the stage - """ - discussionId: ID! - - """ - The discussion about the stage - """ - discussion: Discussion! - - """ - The id of the user that added this stage. - """ - creatorUserId: ID! - - """ - The ID that points to the issue that exists in parabol - """ - taskId: ID! - - """ - The field name used by the service for this dimension - """ - serviceField: ServiceField! - - """ - The immutable index of the dimensionRef tied to this stage - """ - dimensionRefIdx: Int! - - """ - The immutable dimension linked to this stage - """ - dimensionRef: TemplateDimensionRef! - - """ - the final score, as defined by the facilitator - """ - finalScore: String - - """ - the userIds of the team members hovering the deck - """ - hoveringUserIds: [ID!]! - - """ - the users of the team members hovering the deck - """ - hoveringUsers: [User!]! - - """ - all the estimates, 1 per user - """ - scores: [EstimateUserScore!]! - - """ - The task referenced in the stage, as it exists in Parabol. null if the task was deleted - """ - task: Task - - """ - true when the participants are still voting and results are hidden. false when votes are revealed - """ - isVoting: Boolean! -} - -""" -A field that exists on a 3rd party service -""" -type ServiceField { - """ - The name of the field as provided by the service - """ - name: String! - - """ - The field type, to be used for validation and analytics - """ - type: String! -} - -""" -An immutable TemplateDimension -""" -type TemplateDimensionRef { - id: ID! - - """ - the order of the dimensions in the template - """ - sortOrder: Float! - - """ - The name of the dimension - """ - name: String! - - """ - The md5 hash to resolve the immutable selected scale ref - """ - scaleRefId: ID! - - """ - scale used in this dimension - """ - scale: TemplateScaleRef! -} - -""" -An immutable version of TemplateScale to be shared across all users -""" -type TemplateScaleRef { - """ - md5 hash - """ - id: ID! - createdAt: DateTime! - - """ - The title of the scale used in the template - """ - name: String! - - """ - The values used in this scale - """ - values: [TemplateScaleValue!]! -} - -""" -The user and number of points they estimated for dimension (where 1 stage has 1 dimension) -""" -type EstimateUserScore { - """ - shortid - """ - id: ID! - - """ - The stageId - """ - stageId: ID! - - """ - The userId that for this score - """ - userId: ID! - - """ - The user that for this score - """ - user: User! - - """ - The label that was associated with the score at the time of the vote. Note: It may no longer exist on the dimension - """ - label: String! -} - -""" -The meeting phase where all team members discuss the topics with the most votes -""" -type AgendaItemsPhase implements NewMeetingPhase { - """ - shortid - """ - id: ID! - meetingId: ID! - teamId: ID! - - """ - The type of phase - """ - phaseType: NewMeetingPhaseTypeEnum! - stages: [AgendaItemsStage!]! -} - -""" -The stage where the team discusses a single agenda item -""" -type AgendaItemsStage implements NewMeetingStage & DiscussionThreadStage { - """ - stageId, shortid - """ - id: ID! - - """ - The datetime the stage was completed - """ - endAt: DateTime - - """ - foreign key. try using meeting - """ - meetingId: ID! - - """ - The meeting this stage belongs to - """ - meeting: NewMeeting - - """ - true if the facilitator has completed this stage, else false. Should be boolean(endAt) - """ - isComplete: Boolean! - - """ - true if any meeting participant can navigate to this stage - """ - isNavigable: Boolean! - - """ - true if the facilitator can navigate to this stage - """ - isNavigableByFacilitator: Boolean! - - """ - The phase this stage belongs to - """ - phase: NewMeetingPhase - - """ - The type of the phase - """ - phaseType: NewMeetingPhaseTypeEnum - - """ - The datetime the stage was started - """ - startAt: DateTime - - """ - Number of times the facilitator has visited this stage - """ - viewCount: Int - - """ - true if a time limit is set, false if end time is set, null if neither is set - """ - isAsync: Boolean - - """ - true if the viewer is ready to advance, else false - """ - isViewerReady: Boolean! - - """ - the number of meeting members ready to advance, excluding the facilitator - """ - readyCount: Int! - - """ - The datetime the phase is scheduled to be finished, null if no time limit or end time is set - """ - scheduledEndTime: DateTime - - """ - The suggested ending datetime for a phase to be completed async, null if not enough data to make a suggestion - """ - suggestedEndTime: DateTime - - """ - The suggested time limit for a phase to be completed together, null if not enough data to make a suggestion - """ - suggestedTimeLimit: Float - teamId: ID! - - """ - The number of milliseconds left before the scheduled end time. Useful for unsynced client clocks. null if scheduledEndTime is null - """ - timeRemaining: Float - - """ - The ID to find the discussion that goes in the stage - """ - discussionId: ID! - - """ - The discussion about the stage - """ - discussion: Discussion! - - """ - The id of the agenda item this relates to - """ - agendaItemId: ID! - agendaItem: AgendaItem! -} - -""" -An all-purpose meeting phase with no extra state -""" -type GenericMeetingPhase implements NewMeetingPhase { - """ - shortid - """ - id: ID! - meetingId: ID! - teamId: ID! - - """ - The type of phase - """ - phaseType: NewMeetingPhaseTypeEnum! - stages: [GenericMeetingStage!]! -} - -""" -The meeting phase where all team members estimate a the point value of a task -""" -type EstimatePhase implements NewMeetingPhase { - """ - shortid - """ - id: ID! - meetingId: ID! - teamId: ID! - - """ - The type of phase - """ - phaseType: NewMeetingPhaseTypeEnum! - stages: [EstimateStage!]! -} - -""" -A notification sent to a user that was invited to a new team -""" -type NotificationTeamInvitation implements Notification & TeamNotification { - """ - FK - """ - teamId: ID! - - """ - FK - """ - invitationId: ID! - - """ - The invitation that triggered this notification - """ - invitation: TeamInvitation! - team: Team! - - """ - A shortid for the notification - """ - id: ID! - - """ - UNREAD if new, READ if viewer has seen it, CLICKED if viewed clicked it - """ - status: NotificationStatusEnum! - - """ - The datetime to activate the notification & send it to the client - """ - createdAt: DateTime! - type: NotificationEnum! - - """ - *The userId that should see this notification - """ - userId: ID! -} - -interface TeamNotification { - id: ID - type: NotificationEnum -} - -""" -A notification alerting the user that they have been promoted (to team or org leader) -""" -type NotifyPromoteToOrgLeader implements Notification { - organization: Organization! - - """ - A shortid for the notification - """ - id: ID! - - """ - UNREAD if new, READ if viewer has seen it, CLICKED if viewed clicked it - """ - status: NotificationStatusEnum! - - """ - The datetime to activate the notification & send it to the client - """ - createdAt: DateTime! - type: NotificationEnum! - - """ - *The userId that should see this notification - """ - userId: ID! -} - -""" -All the meeting specifics for a user in a action meeting -""" -type ActionMeetingMember implements MeetingMember { - """ - A composite of userId::meetingId - """ - id: ID! - - """ - true if present, false if absent, else null - """ - isCheckedIn: Boolean - @deprecated( - reason: "Members are checked in when they enter the meeting now & not created beforehand" - ) - meetingId: ID! - meetingType: MeetingTypeEnum! - teamId: ID! - teamMember: TeamMember! - user: User! - userId: ID! - - """ - The last time a meeting was updated (stage completed, finished, etc) - """ - updatedAt: DateTime! - - """ - The tasks marked as done in the meeting - """ - doneTasks: [Task!]! - - """ - The tasks assigned to members during the meeting - """ - tasks: [Task!]! -} - -""" -The retro-specific meeting settings -""" -type PokerMeetingSettings implements TeamMeetingSettings { - id: ID! - - """ - The type of meeting these settings apply to - """ - meetingType: MeetingTypeEnum! - - """ - The broad phase types that will be addressed during the meeting - """ - phaseTypes: [NewMeetingPhaseTypeEnum!]! - - """ - FK - """ - teamId: ID! - - """ - The team these settings belong to - """ - team: Team! - - """ - FK. The template that will be used to start the poker meeting - """ - selectedTemplateId: ID! - - """ - The template that will be used to start the Poker meeting - """ - selectedTemplate: PokerTemplate! - - """ - The list of templates used to start a Poker meeting - """ - teamTemplates: [PokerTemplate!]! - - """ - The list of templates shared across the organization to start a Poker meeting - """ - organizationTemplates( - first: Int! - - """ - The cursor, which is the templateId - """ - after: ID - ): PokerTemplateConnection! - - """ - The list of templates shared across the organization to start a Poker meeting - """ - publicTemplates( - first: Int! - - """ - The cursor, which is the templateId - """ - after: ID - ): PokerTemplateConnection! -} - -""" -sorts for the reflection group. default is sortOrder. sorting by voteCount filters out items without votes. -""" -enum ReflectionGroupSortEnum { - voteCount - stageOrder -} - -""" -All the meeting specifics for a user in a retro meeting -""" -type RetrospectiveMeetingMember implements MeetingMember { - """ - A composite of userId::meetingId - """ - id: ID! - - """ - true if present, false if absent, else null - """ - isCheckedIn: Boolean - @deprecated( - reason: "Members are checked in when they enter the meeting now & not created beforehand" - ) - meetingId: ID! - meetingType: MeetingTypeEnum! - teamId: ID! - teamMember: TeamMember! - user: User! - userId: ID! - - """ - The last time a meeting was updated (stage completed, finished, etc) - """ - updatedAt: DateTime! - - """ - The tasks assigned to members during the meeting - """ - tasks: [Task!]! - votesRemaining: Int! -} - -""" -The retro-specific meeting settings -""" -type RetrospectiveMeetingSettings implements TeamMeetingSettings { - id: ID! - - """ - The type of meeting these settings apply to - """ - meetingType: MeetingTypeEnum! - - """ - The broad phase types that will be addressed during the meeting - """ - phaseTypes: [NewMeetingPhaseTypeEnum!]! - - """ - FK - """ - teamId: ID! - - """ - The team these settings belong to - """ - team: Team! - - """ - The total number of votes each team member receives for the voting phase - """ - totalVotes: Int! - - """ - The maximum number of votes a team member can vote for a single reflection group - """ - maxVotesPerGroup: Int! - - """ - FK. The template that will be used to start the retrospective - """ - selectedTemplateId: ID! - - """ - The template that will be used to start the retrospective - """ - selectedTemplate: ReflectTemplate! - - """ - The list of templates used to start a retrospective - """ - reflectTemplates: [ReflectTemplate!]! - - """ - The list of templates used to start a retrospective - """ - teamTemplates: [ReflectTemplate!]! - - """ - The list of templates shared across the organization to start a retrospective - """ - organizationTemplates( - first: Int! - - """ - The cursor, which is the templateId - """ - after: ID - ): ReflectTemplateConnection! - - """ - The list of templates shared across the organization to start a retrospective - """ - publicTemplates( - first: Int! - - """ - The cursor, which is the templateId - """ - after: ID - ): ReflectTemplateConnection! -} - -""" -a suggestion to invite others to your team -""" -type SuggestedActionInviteYourTeam implements SuggestedAction { - """ - shortid - """ - id: ID! - - """ - * The timestamp the action was created at - """ - createdAt: DateTime! - - """ - The priority of the suggested action compared to other suggested actions (smaller number is higher priority) - """ - priority: Float - - """ - * The timestamp the action was removed at - """ - removedAt: DateTime! - - """ - The specific type of suggested action - """ - type: SuggestedActionTypeEnum! - - """ - * The userId this action is for - """ - userId: ID! - - """ - The user than can see this event - """ - user: User! - - """ - The teamId that we suggest you should invite people to - """ - teamId: ID! - - """ - The team you should invite people to - """ - team: Team! -} - -""" -a suggestion to try a retro with your team -""" -type SuggestedActionTryRetroMeeting implements SuggestedAction { - """ - shortid - """ - id: ID! - - """ - * The timestamp the action was created at - """ - createdAt: DateTime! - - """ - The priority of the suggested action compared to other suggested actions (smaller number is higher priority) - """ - priority: Float - - """ - * The timestamp the action was removed at - """ - removedAt: DateTime! - - """ - The specific type of suggested action - """ - type: SuggestedActionTypeEnum! - - """ - * The userId this action is for - """ - userId: ID! - - """ - The user than can see this event - """ - user: User! - - """ - fk - """ - teamId: ID! - - """ - The team you should run a retro with - """ - team: Team! -} - -""" -a suggestion to try a retro with your team -""" -type SuggestedActionTryActionMeeting implements SuggestedAction { - """ - shortid - """ - id: ID! - - """ - * The timestamp the action was created at - """ - createdAt: DateTime! - - """ - The priority of the suggested action compared to other suggested actions (smaller number is higher priority) - """ - priority: Float - - """ - * The timestamp the action was removed at - """ - removedAt: DateTime! - - """ - The specific type of suggested action - """ - type: SuggestedActionTypeEnum! - - """ - * The userId this action is for - """ - userId: ID! - - """ - The user than can see this event - """ - user: User! - - """ - fk - """ - teamId: ID! - - """ - The team you should run an action meeting with - """ - team: Team! -} - -""" -a suggestion to try a retro with your team -""" -type SuggestedActionCreateNewTeam implements SuggestedAction { - """ - shortid - """ - id: ID! - - """ - * The timestamp the action was created at - """ - createdAt: DateTime! - - """ - The priority of the suggested action compared to other suggested actions (smaller number is higher priority) - """ - priority: Float - - """ - * The timestamp the action was removed at - """ - removedAt: DateTime! - - """ - The specific type of suggested action - """ - type: SuggestedActionTypeEnum! - - """ - * The userId this action is for - """ - userId: ID! - - """ - The user than can see this event - """ - user: User! -} - -""" -a suggestion to invite others to your team -""" -type SuggestedActionTryTheDemo implements SuggestedAction { - """ - shortid - """ - id: ID! - - """ - * The timestamp the action was created at - """ - createdAt: DateTime! - - """ - The priority of the suggested action compared to other suggested actions (smaller number is higher priority) - """ - priority: Float - - """ - * The timestamp the action was removed at - """ - removedAt: DateTime! - - """ - The specific type of suggested action - """ - type: SuggestedActionTypeEnum! - - """ - * The userId this action is for - """ - userId: ID! - - """ - The user than can see this event - """ - user: User! -} - -""" -An event triggered whenever a team is created -""" -type TimelineEventTeamCreated implements TimelineEvent { - """ - shortid - """ - id: ID! - - """ - * The timestamp the event was created at - """ - createdAt: DateTime! - - """ - the number of times the user has interacted with (ie clicked) this event - """ - interactionCount: Int! - - """ - true if the timeline event is active, false if archived - """ - isActive: Boolean! - - """ - The orgId this event is associated with - """ - orgId: ID! - - """ - The organization this event is associated with - """ - organization: Organization - - """ - the number of times the user has seen this event - """ - seenCount: Int! - - """ - The teamId this event is associated with. Null if not traceable to one team - """ - teamId: ID! - - """ - The team that can see this event - """ - team: Team! - - """ - The specific type of event - """ - type: TimelineEventEnum! - - """ - * The userId that can see this event - """ - userId: ID! - - """ - The user than can see this event - """ - user: User! -} - -""" -An event for joining the app -""" -type TimelineEventJoinedParabol implements TimelineEvent { - """ - shortid - """ - id: ID! - - """ - * The timestamp the event was created at - """ - createdAt: DateTime! - - """ - the number of times the user has interacted with (ie clicked) this event - """ - interactionCount: Int! - - """ - true if the timeline event is active, false if archived - """ - isActive: Boolean! - - """ - The orgId this event is associated with. Null if not traceable to one org - """ - orgId: ID - - """ - The organization this event is associated with - """ - organization: Organization - - """ - the number of times the user has seen this event - """ - seenCount: Int! - - """ - The teamId this event is associated with. Null if not traceable to one team - """ - teamId: ID - - """ - The team that can see this event - """ - team: Team - - """ - The specific type of event - """ - type: TimelineEventEnum! - - """ - * The userId that can see this event - """ - userId: ID! - - """ - The user than can see this event - """ - user: User! -} - -""" -An event for a completed retro meeting -""" -type TimelineEventCompletedRetroMeeting implements TimelineEvent { - """ - shortid - """ - id: ID! - - """ - * The timestamp the event was created at - """ - createdAt: DateTime! - - """ - the number of times the user has interacted with (ie clicked) this event - """ - interactionCount: Int! - - """ - true if the timeline event is active, false if archived - """ - isActive: Boolean! - - """ - The orgId this event is associated with - """ - orgId: ID! - - """ - The organization this event is associated with - """ - organization: Organization - - """ - the number of times the user has seen this event - """ - seenCount: Int! - - """ - The teamId this event is associated with - """ - teamId: ID! - - """ - The team that can see this event - """ - team: Team! - - """ - The specific type of event - """ - type: TimelineEventEnum! - - """ - * The userId that can see this event - """ - userId: ID! - - """ - The user than can see this event - """ - user: User! - - """ - The meeting that was completed - """ - meeting: RetrospectiveMeeting! - - """ - The meetingId that was completed - """ - meetingId: ID! -} - -""" -An event for a completed action meeting -""" -type TimelineEventCompletedActionMeeting implements TimelineEvent { - """ - shortid - """ - id: ID! - - """ - * The timestamp the event was created at - """ - createdAt: DateTime! - - """ - the number of times the user has interacted with (ie clicked) this event - """ - interactionCount: Int! - - """ - true if the timeline event is active, false if archived - """ - isActive: Boolean! - - """ - The orgId this event is associated with - """ - orgId: ID! - - """ - The organization this event is associated with - """ - organization: Organization - - """ - the number of times the user has seen this event - """ - seenCount: Int! - - """ - The teamId this event is associated with - """ - teamId: ID! - - """ - The team that can see this event - """ - team: Team! - - """ - The specific type of event - """ - type: TimelineEventEnum! - - """ - * The userId that can see this event - """ - userId: ID! - - """ - The user than can see this event - """ - user: User! - - """ - The meeting that was completed - """ - meeting: ActionMeeting! - - """ - The meetingId that was completed, null if legacyMeetingId is present - """ - meetingId: ID! -} - -""" -An event for a completed poker meeting -""" -type TimelineEventPokerComplete implements TimelineEvent { - """ - shortid - """ - id: ID! - - """ - * The timestamp the event was created at - """ - createdAt: DateTime! - - """ - the number of times the user has interacted with (ie clicked) this event - """ - interactionCount: Int! - - """ - true if the timeline event is active, false if archived - """ - isActive: Boolean! - - """ - The orgId this event is associated with - """ - orgId: ID! - - """ - The organization this event is associated with - """ - organization: Organization - - """ - the number of times the user has seen this event - """ - seenCount: Int! - - """ - The teamId this event is associated with - """ - teamId: ID! - - """ - The team that can see this event - """ - team: Team! - - """ - The specific type of event - """ - type: TimelineEventEnum! - - """ - * The userId that can see this event - """ - userId: ID! - - """ - The user than can see this event - """ - user: User! - - """ - The meeting that was completed - """ - meeting: PokerMeeting! - - """ - The meetingId that was completed - """ - meetingId: ID! -} - -""" -All the meeting specifics for a user in a poker meeting -""" -type PokerMeetingMember implements MeetingMember { - """ - A composite of userId::meetingId - """ - id: ID! - - """ - true if present, false if absent, else null - """ - isCheckedIn: Boolean - @deprecated( - reason: "Members are checked in when they enter the meeting now & not created beforehand" - ) - meetingId: ID! - meetingType: MeetingTypeEnum! - teamId: ID! - teamMember: TeamMember! - user: User! - userId: ID! - - """ - The last time a meeting was updated (stage completed, finished, etc) - """ - updatedAt: DateTime! - - """ - true if the user is not voting and does not want their vote to count towards aggregates - """ - isSpectating: Boolean! -} - -""" -The action-specific meeting settings -""" -type ActionMeetingSettings implements TeamMeetingSettings { - id: ID! - - """ - The type of meeting these settings apply to - """ - meetingType: MeetingTypeEnum! - - """ - The broad phase types that will be addressed during the meeting - """ - phaseTypes: [NewMeetingPhaseTypeEnum!]! - - """ - FK - """ - teamId: ID! - - """ - The team these settings belong to - """ - team: Team! -} - -""" -All the meeting specifics for a user in a team prompt meeting -""" -type TeamPromptMeetingMember implements MeetingMember { - """ - A composite of userId::meetingId - """ - id: ID! - - """ - true if present, false if absent, else null - """ - isCheckedIn: Boolean - @deprecated( - reason: "Members are checked in when they enter the meeting now & not created beforehand" - ) - meetingId: ID! - meetingType: MeetingTypeEnum! - teamId: ID! - teamMember: TeamMember! - user: User! - userId: ID! - - """ - The last time a meeting was updated (stage completed, finished, etc) - """ - updatedAt: DateTime! -} - -""" -The team prompt specific meeting settings -""" -type TeamPromptMeetingSettings implements TeamMeetingSettings { - id: ID! - - """ - The type of meeting these settings apply to - """ - meetingType: MeetingTypeEnum! - - """ - The broad phase types that will be addressed during the meeting - """ - phaseTypes: [NewMeetingPhaseTypeEnum!]! - - """ - FK - """ - teamId: ID! - - """ - The team these settings belong to - """ - team: Team! -} - -""" -A comment on a thread -""" -type Comment implements Reactable & Threadable { - """ - shortid - """ - id: ID! - - """ - The rich text body of the item, if inactive, a tombstone text - """ - content: String! - - """ - The timestamp the item was created - """ - createdAt: DateTime! - - """ - The userId that created the item, null if anonymous - """ - createdBy: ID - - """ - The user that created the item, null if anonymous - """ - createdByUser: User - - """ - the replies to this threadable item - """ - replies: [Threadable!]! - - """ - The FK of the discussion this task was created in. Null if task was not created in a discussion - """ - discussionId: ID - - """ - the parent, if this threadable is a reply, else null - """ - threadParentId: ID - - """ - the order of this threadable, relative to threadParentId - """ - threadSortOrder: Float - - """ - The timestamp the item was updated - """ - updatedAt: DateTime! - - """ - All the reactjis for the given reflection - """ - reactjis: [Reactji!]! - - """ - true if the agenda item has not been processed or deleted - """ - isActive: Boolean! - - """ - true if the comment is anonymous, else false - """ - isAnonymous: Boolean! - - """ - true if the viewer wrote this comment, else false - """ - isViewerComment: Boolean! -} - -type GetDemoEntitiesPayload { - error: StandardMutationError - entities: [GoogleAnalyzedEntity!] -} - -type MassInvitationPayload { - errorType: TeamInvitationErrorEnum - - """ - The name of the person that sent the invitation, present if errorType is expired - """ - inviterName: String - - """ - The teamId from the token - """ - teamId: ID - - """ - name of the inviting team, present if invitation exists - """ - teamName: String -} - -type VerifiedInvitationPayload { - errorType: TeamInvitationErrorEnum - - """ - The name of the person that sent the invitation, present if errorType is expired - """ - inviterName: String - - """ - The email of the person that send the invitation, present if errorType is expired - """ - inviterEmail: String - - """ - true if the mx record is hosted by google, else falsy - """ - isGoogle: Boolean - - """ - a string to redirect to the sso IdP, else null - """ - ssoURL: String - - """ - The valid invitation, if any - """ - teamInvitation: TeamInvitation - - """ - name of the inviting team, present if invitation exists - """ - teamName: String - meetingId: ID - meetingName: String - meetingType: MeetingTypeEnum - - """ - The userId of the invitee, if already a parabol user - """ - userId: ID - - """ - The invitee, if already a parabol user, present if errorType is null - """ - user: User -} - -type Mutation { - """ - Create a new agenda item - """ - addAgendaItem( - """ - The new task including an id, teamMemberId, and content - """ - newAgendaItem: CreateAgendaItemInput! - ): AddAgendaItemPayload - addAtlassianAuth(code: ID!, teamId: ID!): AddAtlassianAuthPayload! - - """ - Add a comment to a discussion - """ - addComment( - """ - A partial new comment - """ - comment: AddCommentInput! - ): AddCommentPayload! - - """ - Add a new dimension for the poker template - """ - addPokerTemplateDimension(templateId: ID!): AddPokerTemplateDimensionPayload! - - """ - Add a new scale for the poker template - """ - addPokerTemplateScale(parentScaleId: ID, teamId: ID!): AddPokerTemplateScalePayload! - - """ - Add a new scale value for a scale in a poker template - """ - addPokerTemplateScaleValue( - scaleId: ID! - scaleValue: AddTemplateScaleInput! - ): AddPokerTemplateScaleValuePayload! - - """ - Add a new template full of prompts - """ - addReflectTemplatePrompt(templateId: ID!): AddReflectTemplatePromptPayload - addSlackAuth(code: ID!, teamId: ID!): AddSlackAuthPayload! - - addGitHubAuth(code: ID!, teamId: ID!): AddGitHubAuthPayload! - - """ - Create a new team and add the first team member - """ - addOrg( - """ - The new team object with exactly 1 team member - """ - newTeam: NewTeamInput! - - """ - The name of the new team - """ - orgName: String! - invitees: [Email!] - ): AddOrgPayload! - - """ - Create a new team and add the first team member - """ - addTeam( - """ - The new team object - """ - newTeam: NewTeamInput! - invitees: [Email!] - ): AddTeamPayload! - archiveOrganization( - """ - The orgId to archive - """ - orgId: ID! - ): ArchiveOrganizationPayload! - archiveTeam( - """ - The teamId to archive (or delete, if team is unused) - """ - teamId: ID! - ): ArchiveTeamPayload! - - """ - Archive a timeline event - """ - archiveTimelineEvent( - """ - the id for the timeline event - """ - timelineEventId: ID! - ): ArchiveTimelineEventPayload! - - """ - Change the team a task is associated with. Also copy the viewers integration if necessary. - """ - changeTaskTeam( - """ - The task to change - """ - taskId: ID! - - """ - The new team to assign the task to - """ - teamId: ID! - ): ChangeTaskTeamPayload - - """ - set the interaction status of a notifcation - """ - setNotificationStatus( - """ - The id of the notification - """ - notificationId: ID! - status: NotificationStatusEnum! - ): SetNotificationStatusPayload - - createTaskIntegration( - """ - Which integration to push the task to - """ - integrationProviderService: IntegrationProviderServiceEnum! - - """ - Jira projectId, GitHub nameWithOwner etc. - """ - integrationRepoId: ID! - - """ - The id of the task to convert to an issue - """ - taskId: ID! - ): CreateTaskIntegrationPayload - - """ - Create a new mass inivtation and optionally void old ones - """ - createMassInvitation( - """ - the specific meeting where the invite occurred, if any - """ - meetingId: ID - - """ - The teamId to create the mass invitation for - """ - teamId: ID! - - """ - If true, will void all existing mass invitations for the team member - """ - voidOld: Boolean - ): CreateMassInvitationPayload! - - """ - Generate a new OAuth1 request token and encode it in the authorization URL to start an oauth1 flow - """ - createOAuth1AuthorizeUrl( - """ - Id of the integration provider with OAuth1 auth strategy - """ - providerId: ID! - - """ - Id of the team where the integration should be added - """ - teamId: ID! - ): CreateOAuth1AuthorizationURLPayload - - """ - Create a new reflection - """ - createReflection(input: CreateReflectionInput!): CreateReflectionPayload - - """ - Create a new task, triggering a CreateCard for other viewers - """ - createTask( - """ - The new task including an id, status, and type, and teamMemberId - """ - newTask: CreateTaskInput! - - """ - The part of the site where the creation occurred - """ - area: AreaEnum - ): CreateTaskPayload! - - """ - Delete a comment from a discussion - """ - deleteComment(commentId: ID!, meetingId: ID!): DeleteCommentPayload! - - """ - Delete (not archive!) a task - """ - deleteTask( - """ - The taskId to delete - """ - taskId: ID! - ): DeleteTaskPayload - - """ - Delete a user, removing them from all teams and orgs - """ - deleteUser( - """ - a userId - """ - userId: ID - - """ - the user email - """ - email: ID - - """ - the reason why the user wants to delete their account - """ - reason: String - ): DeleteUserPayload! - - """ - Deny a user from joining via push invitation - """ - denyPushInvitation(teamId: ID!, userId: ID!): DenyPushInvitationPayload - - """ - Redeem an invitation token for a logged in user - """ - dismissNewFeature: DismissNewFeaturePayload! - - """ - Dismiss a suggested action - """ - dismissSuggestedAction( - """ - The id of the suggested action to dismiss - """ - suggestedActionId: ID! - ): DismissSuggestedActionPayload! - - """ - Downgrade a paid account to the starter plan service - """ - downgradeToStarter( - """ - the org requesting the upgrade - """ - orgId: ID! - ): DowngradeToStarterPayload - - """ - Changes the priority of the discussion topics - """ - dragDiscussionTopic(meetingId: ID!, stageId: ID!, sortOrder: Float!): DragDiscussionTopicPayload - - """ - Changes the ordering of the estimating tasks - """ - dragEstimatingTask( - meetingId: ID! - taskId: ID! - - """ - The index of the tasks will be moved to, in the list of estimating tasks sidebar section - """ - newPositionIndex: Int! - ): DragEstimatingTaskPayload! - - """ - Send an email to reset a password - """ - emailPasswordReset( - """ - email to send the password reset code to - """ - email: ID! - ): EmailPasswordResetPayload! - - """ - Track which users are commenting - """ - editCommenting( - """ - True if the user is commenting, false if the user has stopped commenting - """ - isCommenting: Boolean! - discussionId: ID! - ): EditCommentingPayload - - """ - Finish a sprint poker meeting - """ - endSprintPoker( - """ - The meeting to end - """ - meetingId: ID! - ): EndSprintPokerPayload! - - """ - Changes the editing state of a user for a phase item - """ - editReflection( - """ - Whether a reflectPrompt is being edited or not - """ - isEditing: Boolean! - meetingId: ID! - promptId: ID! - ): EditReflectionPayload - - """ - Announce to everyone that you are editing a task - """ - editTask( - """ - The task id that is being edited - """ - taskId: ID! - - """ - true if the editing is starting, false if it is stopping - """ - isEditing: Boolean! - ): EditTaskPayload - - """ - Finish a check-in meeting - """ - endCheckIn( - """ - The meeting to end - """ - meetingId: ID! - ): EndCheckInPayload! - - """ - Broadcast that the viewer stopped dragging a reflection - """ - endDraggingReflection( - reflectionId: ID! - - """ - if it was a drop (isDragging = false), the type of item it was dropped on. null if there was no valid drop target - """ - dropTargetType: DragReflectionDropTargetTypeEnum - - """ - if dropTargetType could refer to more than 1 component, this ID defines which one - """ - dropTargetId: ID - - """ - the ID of the drag to connect to the start drag event - """ - dragId: ID - ): EndDraggingReflectionPayload - - """ - Finish a retrospective meeting - """ - endRetrospective( - """ - The meeting to end - """ - meetingId: ID! - ): EndRetrospectivePayload! - - """ - flag a viewer as ready to advance to the next stage of a meeting - """ - flagReadyToAdvance( - meetingId: ID! - - """ - the stage that the viewer marked as ready - """ - stageId: ID! - - """ - true if ready to advance, else false - """ - isReady: Boolean! - ): FlagReadyToAdvancePayload! - - """ - pauses the subscription for a single user - """ - inactivateUser( - """ - the user to pause - """ - userId: ID! - ): InactivateUserPayload - - """ - Invalidate all sessions by blacklisting all JWTs issued before now - """ - invalidateSessions: InvalidateSessionsPayload! - - """ - Send a team invitation to an email address - """ - inviteToTeam( - """ - the specific meeting where the invite occurred, if any - """ - meetingId: ID - - """ - The id of the inviting team - """ - teamId: ID! - invitees: [Email!]! - ): InviteToTeamPayload! - - """ - Move a template dimension - """ - movePokerTemplateDimension( - dimensionId: ID! - sortOrder: Float! - ): MovePokerTemplateDimensionPayload! - - """ - Move a reflect template - """ - moveReflectTemplatePrompt(promptId: ID!, sortOrder: Float!): MoveReflectTemplatePromptPayload - - """ - Move a team to a different org. Requires billing leader rights on both orgs! - """ - moveTeamToOrg( - """ - The teamId that you want to move - """ - teamIds: [ID!]! - - """ - The ID of the organization you want to move the team to - """ - orgId: ID! - ): String - - """ - update a meeting by marking an item complete and setting the facilitator location - """ - navigateMeeting( - """ - The stage that the facilitator would like to mark as complete - """ - completedStageId: ID - - """ - The stage where the facilitator is - """ - facilitatorStageId: ID - - """ - The meeting ID - """ - meetingId: ID! - ): NavigateMeetingPayload! - - """ - Check a member in as present or absent - """ - newMeetingCheckIn( - """ - The id of the user being marked present or absent - """ - userId: ID! - - """ - the meeting currently in progress - """ - meetingId: ID! - - """ - true if the member is present, false if absent, null if undecided - """ - isCheckedIn: Boolean - ): NewMeetingCheckInPayload - @deprecated(reason: "Members now join lazily and joining means they are present") - - """ - Increment the count of times the org has clicked pay later - """ - payLater( - """ - the org that has clicked pay later - """ - meetingId: ID! - ): PayLaterPayload! - - """ - Add or remove a task and its estimate phase from the meeting - """ - persistJiraSearchQuery( - """ - the team with the settings we add the query to - """ - teamId: ID! - - """ - the jira search query to persist (or remove, if isRemove is true) - """ - input: JiraSearchQueryInput! - ): PersistJiraSearchQueryPayload! - - """ - Request to be invited to a team in real time - """ - pushInvitation( - """ - the meeting ID the pusher would like to join - """ - meetingId: ID - teamId: ID! - ): PushInvitationPayload - - """ - Change a facilitator while the meeting is in progress - """ - promoteNewMeetingFacilitator( - """ - userId of the new facilitator for this meeting - """ - facilitatorUserId: ID! - meetingId: ID! - ): PromoteNewMeetingFacilitatorPayload - - """ - Promote another team member to be the leader - """ - promoteToTeamLead( - """ - Team id of the team which is about to get a new team leader - """ - teamId: ID! - - """ - userId who will be set as a new team leader - """ - userId: ID! - ): PromoteToTeamLeadPayload - - """ - Update the description of a reflection prompt - """ - reflectTemplatePromptUpdateDescription( - promptId: ID! - description: String! - ): ReflectTemplatePromptUpdateDescriptionPayload - - """ - Update the description of a poker template dimension - """ - pokerTemplateDimensionUpdateDescription( - dimensionId: ID! - description: String! - ): PokerTemplateDimensionUpdateDescriptionPayload - reflectTemplatePromptUpdateGroupColor( - promptId: ID! - groupColor: String! - ): ReflectTemplatePromptUpdateGroupColorPayload - - """ - Remove an agenda item - """ - removeAgendaItem( - """ - The agenda item unique id - """ - agendaItemId: ID! - ): RemoveAgendaItemPayload - - """ - Disconnect a team member from atlassian - """ - removeAtlassianAuth( - """ - the teamId to disconnect from the token - """ - teamId: ID! - ): RemoveAtlassianAuthPayload! - - """ - Disconnect a team member from GitHub - """ - removeGitHubAuth( - """ - the teamId to disconnect from the token - """ - teamId: ID! - ): RemoveGitHubAuthPayload! - - """ - Remove a user from an org - """ - removeOrgUser( - """ - the user to remove - """ - userId: ID! - - """ - the org that does not want them anymore - """ - orgId: ID! - ): RemoveOrgUserPayload - - """ - Remove a poker meeting template - """ - removePokerTemplate(templateId: ID!): RemovePokerTemplatePayload! - - """ - Remove a template full of prompts - """ - removeReflectTemplate(templateId: ID!): RemoveReflectTemplatePayload - - """ - Remove a prompt from a template - """ - removeReflectTemplatePrompt(promptId: ID!): RemoveReflectTemplatePromptPayload - - """ - Remove a dimension from a template - """ - removePokerTemplateDimension(dimensionId: ID!): RemovePokerTemplateDimensionPayload! - - """ - Rename a meeting - """ - renameMeeting( - """ - the new meeting name - """ - name: String! - - """ - the meeting with the new name - """ - meetingId: ID! - ): RenameMeetingPayload! - - """ - Rename a meeting template - """ - renameMeetingTemplate(templateId: ID!, name: String!): RenameMeetingTemplatePayload - - """ - Rename a reflect template prompt - """ - renameReflectTemplatePrompt(promptId: ID!, question: String!): RenameReflectTemplatePromptPayload - - """ - Rename a poker template dimension - """ - renamePokerTemplateDimension( - dimensionId: ID! - name: String! - ): RenamePokerTemplateDimensionPayload! - - """ - Rename a poker template scale - """ - renamePokerTemplateScale(scaleId: ID!, name: String!): RenamePokerTemplateScalePayload! - - """ - Remove a scale from a template - """ - removePokerTemplateScale(scaleId: ID!): RemovePokerTemplateScalePayload! - - """ - Remove a scale value from the scale of a template - """ - removePokerTemplateScaleValue(scaleId: ID!, label: String!): RemovePokerTemplateScaleValuePayload! - - """ - Remove a reflection - """ - removeReflection(reflectionId: ID!): RemoveReflectionPayload - - """ - Disconnect a team member from Slack - """ - removeSlackAuth( - """ - the teamId to disconnect from the token - """ - teamId: ID! - ): RemoveSlackAuthPayload! - - """ - Remove a team member from the team - """ - removeTeamMember( - """ - The teamMemberId of the person who is being removed - """ - teamMemberId: ID! - ): RemoveTeamMemberPayload - - """ - Reset the password for an account - """ - resetPassword( - """ - the password reset token - """ - token: ID! - - """ - The new password for the account - """ - newPassword: String! - ): ResetPasswordPayload! - - """ - Reset a retro meeting to group stage - """ - resetRetroMeetingToGroupStage(meetingId: ID!): ResetRetroMeetingToGroupStagePayload! - - """ - Set the selected template for the upcoming retro meeting - """ - selectTemplate(selectedTemplateId: ID!, teamId: ID!): SelectTemplatePayload - - """ - Share where in the app the viewer is - """ - setAppLocation( - """ - The location the viewer is currently at - """ - location: String - ): SetAppLocationPayload! - - """ - Update the default Slack channel where notifications are sent - """ - setDefaultSlackChannel(slackChannelId: ID!, teamId: ID!): SetDefaultSlackChannelPayload! - - """ - Focus (or unfocus) a phase item - """ - setPhaseFocus( - meetingId: ID! - - """ - The currently focused phase item - """ - focusedPromptId: ID - ): SetPhaseFocusPayload - - """ - Set or clear a timer for a meeting stage - """ - setStageTimer( - """ - the id of the meeting - """ - meetingId: ID! - - """ - The time the timer is scheduled to go off (based on client clock), null if unsetting the timer - """ - scheduledEndTime: DateTime - - """ - scheduledEndTime - now. Used to reconcile bad client clocks. Present for time limit, else null - """ - timeRemaining: Float - ): SetStageTimerPayload! - setSlackNotification( - slackChannelId: ID - slackNotificationEvents: [SlackNotificationEventEnum!]! - teamId: ID! - ): SetSlackNotificationPayload! - - """ - Broadcast that the viewer started dragging a reflection - """ - startDraggingReflection( - reflectionId: ID! - dragId: ID! - isSpotlight: Boolean - ): StartDraggingReflectionPayload - - """ - Start a new sprint poker meeting - """ - startSprintPoker( - """ - The team starting the meeting - """ - teamId: ID! - """ - The name of the meeting - """ - name: String - """ - The gcal input if creating a gcal event - """ - gcalInput: CreateGcalEventInput - ): StartSprintPokerPayload! - - """ - Broadcast that the viewer highlights a task - """ - setTaskHighlight(taskId: ID!, meetingId: ID!, isHighlighted: Boolean!): SetTaskHighlightPayload! - - """ - Update an agenda item - """ - updateAgendaItem( - """ - The updated item including an id, content, status, sortOrder - """ - updatedAgendaItem: UpdateAgendaItemInput! - ): UpdateAgendaItemPayload - - """ - Update the content of a comment - """ - updateCommentContent( - commentId: ID! - - """ - A stringified draft-js document containing thoughts - """ - content: String! - meetingId: ID! - ): UpdateCommentContentPayload - - """ - Update an existing credit card on file - """ - oldUpdateCreditCard( - """ - the org requesting the changed billing - """ - orgId: ID! - - """ - The token that came back from stripe - """ - stripeToken: ID! - ): OldUpdateCreditCardPayload - - """ - Update the scale used for a dimension in a template - """ - updatePokerTemplateDimensionScale( - dimensionId: ID! - scaleId: ID! - ): UpdatePokerTemplateDimensionScalePayload! - - """ - Update the label, numerical value or color of a scale value in a scale - """ - updatePokerTemplateScaleValue( - scaleId: ID! - oldScaleValue: TemplateScaleInput! - newScaleValue: TemplateScaleInput! - ): UpdatePokerTemplateScaleValuePayload! - - """ - Update a Team's Icebreaker in a new meeting - """ - updateNewCheckInQuestion( - """ - ID of the Team which will have its Icebreaker updated - """ - meetingId: ID! - - """ - The Team's new Icebreaker - """ - checkInQuestion: String! - ): UpdateNewCheckInQuestionPayload - - """ - all the info required to provide an accurate display-specific location of where an item is - """ - updateDragLocation(input: UpdateDragLocationInput!): Boolean - - """ - Add or remove a task and its estimate phase from the meeting - """ - updatePokerScope( - """ - the meeting with the estimate phases to modify - """ - meetingId: ID! - - """ - The list of items to add/remove to the estimate phase - """ - updates: [UpdatePokerScopeItemInput!]! - ): UpdatePokerScopePayload! - - """ - Update the content of a reflection - """ - updateReflectionContent( - reflectionId: ID! - - """ - A stringified draft-js document containing thoughts - """ - content: String! - ): UpdateReflectionContentPayload - - """ - Update the title of a reflection group - """ - updateReflectionGroupTitle( - reflectionGroupId: ID! - - """ - The new title for the group - """ - title: String! - ): UpdateReflectionGroupTitlePayload - - """ - Change the max votes for participants - """ - updateRetroMaxVotes( - """ - The total number of votes for each participant - """ - totalVotes: Int! - - """ - The total number of votes for each participant to vote on a single topic - """ - maxVotesPerGroup: Int! - - """ - the meeting to update - """ - meetingId: ID! - ): UpdateRetroMaxVotesPayload! - - """ - Update a task with a change in content, ownership, or status - """ - updateTask( - """ - The part of the site where the creation occurred - """ - area: AreaEnum - - """ - the updated task including the id, and at least one other field - """ - updatedTask: UpdateTaskInput! - ): UpdateTaskPayload - - """ - Set or unset the due date of a task - """ - updateTaskDueDate( - """ - The task id - """ - taskId: ID! - - """ - the new due date. if not a valid date, it will unset the due date - """ - dueDate: DateTime - ): UpdateTaskDueDatePayload - updateTeamName( - """ - The input object containing the teamId and any modified fields - """ - updatedTeam: UpdatedTeamInput! - ): UpdateTeamNamePayload - - """ - Change the scope of a template - """ - updateTemplateScope( - """ - The id of the template - """ - templateId: ID! - - """ - the new scope - """ - scope: SharingScopeEnum! - ): UpdateTemplateScopePayload! - - """ - Upgrade an account to the paid service - """ - oldUpgradeToTeamTier( - """ - the org requesting the upgrade - """ - orgId: ID! - - """ - The token that came back from stripe - """ - stripeToken: ID! - ): OldUpgradeToTeamTierPayload - - """ - Cast your vote for a reflection group - """ - voteForReflectionGroup( - """ - true if the user wants to remove one of their votes - """ - isUnvote: Boolean - reflectionGroupId: ID! - ): VoteForReflectionGroupPayload - - """ - Cast a vote for the estimated points for a given dimension - """ - voteForPokerStory( - meetingId: ID! - - """ - The stage that contains the dimension to vote for - """ - stageId: ID! - - """ - The label of the scaleValue to vote for. If null, remove the vote - """ - score: String - ): VoteForPokerStoryPayload! - - """ - Progresses the stage dimension to the reveal & discuss step - """ - pokerRevealVotes(meetingId: ID!, stageId: ID!): PokerRevealVotesPayload! - - """ - Remove all votes, the final vote, and reset the stage - """ - pokerResetDimension(meetingId: ID!, stageId: ID!): PokerResetDimensionPayload! - - """ - """ - pokerAnnounceDeckHover( - meetingId: ID! - stageId: ID! - - """ - true if the viewer has started hovering the deck, else false - """ - isHover: Boolean! - ): PokerAnnounceDeckHoverPayload! - - """ - Move a scale value to an index - """ - movePokerTemplateScaleValue( - scaleId: ID! - - """ - The label of the moving scale value - """ - label: String! - - """ - The index position where the scale value is moving to - """ - index: Int! - ): MovePokerTemplateScaleValuePayload! - - """ - Create a meeting member for a user - """ - joinMeeting(meetingId: ID!): JoinMeetingPayload! - - """ - Set whether the user is spectating poker meeting - """ - setPokerSpectate( - meetingId: ID! - - """ - true if the viewer is spectating poker and does not want to vote. else false - """ - isSpectating: Boolean! - ): SetPokerSpectatePayload! - - """ - """ - persistGitHubSearchQuery( - """ - the team witht the settings we add the query to - """ - teamId: ID! - - """ - The query string as sent to GitHub - """ - queryString: String! - - """ - true if this query should be deleted - """ - isRemove: Boolean - ): PersistGitHubSearchQueryPayload! - - """ - Update a task estimate - """ - setTaskEstimate(taskEstimate: TaskEstimateInput!): SetTaskEstimatePayload! - - """ - Show/hide the drawer in the team dashboard - """ - toggleTeamDrawer( - """ - the team to show/hide the drawer for - """ - teamId: ID! - - """ - The type of team drawer that the viewer is toggling. Null if closing the drawer. - """ - teamDrawerType: TeamDrawer - ): ToggleTeamDrawerPayload! - - """ - Update how a parabol dimension maps to a GitHub label - """ - updateGitHubDimensionField( - dimensionName: String! - - """ - The template string to map to a label - """ - labelTemplate: String! - - """ - The repo the issue lives on - """ - nameWithOwner: ID! - - """ - The meeting the update happend in. Returns a meeting object with updated serviceField - """ - meetingId: ID! - ): UpdateGitHubDimensionFieldPayload! - createPoll( - """ - The new poll including title and poll options - """ - newPoll: CreatePollInput! - ): CreatePollPayload! - - """ - Adds a new Integration Provider configuration - """ - addIntegrationProvider( - """ - The new Integration Provider - """ - input: AddIntegrationProviderInput! - ): AddIntegrationProviderPayload! - - """ - Update the Integration Provider settings - """ - updateIntegrationProvider( - """ - The new Integration Provider - """ - provider: UpdateIntegrationProviderInput! - ): UpdateIntegrationProviderPayload! - - """ - Remove an Integration Provider, and any associated tokens - """ - removeIntegrationProvider( - """ - Id of the Integration Provider to remove - """ - providerId: ID! - ): RemoveIntegrationProviderPayload! - -} - -type AddAgendaItemPayload { - error: StandardMutationError - agendaItem: AgendaItem - meetingId: ID - - """ - The meeting with the updated agenda item, if any - """ - meeting: NewMeeting -} - -input CreateAgendaItemInput { - """ - The content of the agenda item - """ - content: String! - - """ - True if the agenda item has been pinned - """ - pinned: Boolean! - teamId: ID! - - """ - The team member ID of the person creating the agenda item - """ - teamMemberId: ID! - - """ - The sort order of the agenda item in the list - """ - sortOrder: Float - - """ - The meeting ID of the agenda item - """ - meetingId: String -} - -type AddAtlassianAuthPayload { - error: StandardMutationError - - """ - The newly created auth - """ - atlassianIntegration: AtlassianIntegration - teamId: ID - - """ - The team member with the updated atlassianAuth - """ - teamMember: TeamMember - - """ - The user with updated atlassianAuth - """ - user: User -} - -""" -Return object for AddCommentPayload -""" -union AddCommentPayload = ErrorPayload | AddCommentSuccess - -type ErrorPayload { - error: StandardMutationError! -} - -type AddCommentSuccess { - """ - the comment just created - """ - comment: Comment! - - """ - The id of the meeting where the comment was added - """ - meetingId: ID! -} - -input AddCommentInput { - """ - A stringified draft-js document containing thoughts - """ - content: String! - - """ - true if the comment should be anonymous - """ - isAnonymous: Boolean - - """ - foreign key for the discussion this was created in - """ - discussionId: ID! - threadSortOrder: Float! - threadParentId: ID -} - -type AddPokerTemplateDimensionPayload { - error: StandardMutationError - dimension: TemplateDimension -} - -type AddPokerTemplateScalePayload { - error: StandardMutationError - scale: TemplateScale -} - -type AddPokerTemplateScaleValuePayload { - error: StandardMutationError - scale: TemplateScale -} - -""" -Input for adding a new scale -""" -input AddTemplateScaleInput { - """ - The color used to visually group a scale value - """ - color: String! - - """ - The label for this value, e.g., XS, M, L - """ - label: String! -} - -""" -The type of reactable -""" -enum ReactableEnum { - COMMENT - REFLECTION - RESPONSE -} - -enum GcalVideoTypeEnum { - meet - zoom -} - -type AddReflectTemplatePromptPayload { - error: StandardMutationError - prompt: ReflectPrompt -} - -type AddSlackAuthPayload { - error: StandardMutationError - - """ - The newly created auth - """ - slackIntegration: SlackIntegration - - """ - The user with updated slackAuth - """ - user: User -} - -type AddGitHubAuthPayload { - error: StandardMutationError - - """ - The newly created auth - """ - githubIntegration: GitHubIntegration - - """ - The team member with the updated auth - """ - teamMember: TeamMember - - """ - The user with updated githubAuth - """ - user: User -} - -type AddOrgPayload { - organization: Organization - error: StandardMutationError - - """ - The new auth token sent to the mutator - """ - authToken: ID - team: Team - - """ - The teamMember that just created the new team, if this is a creation - """ - teamMember: TeamMember - - """ - The ID of the suggestion to create a new team - """ - removedSuggestedActionId: ID -} - -input NewTeamInput { - """ - The name of the team - """ - name: String! - - """ - The unique orginization ID that pays for the team - """ - orgId: ID -} - -type AddTeamPayload { - error: StandardMutationError - - """ - The new auth token sent to the mutator - """ - authToken: ID - team: Team - - """ - The teamMember that just created the new team, if this is a creation - """ - teamMember: TeamMember - - """ - The ID of the suggestion to create a new team - """ - removedSuggestedActionId: ID -} - -type ArchiveOrganizationPayload { - error: StandardMutationError - orgId: ID - teams: [Team!] - - """ - all the suggested actions that never happened - """ - removedSuggestedActionIds: [ID] -} - -type ArchiveTeamPayload { - error: StandardMutationError - team: Team - - """ - A notification explaining that the team was archived and removed from view - """ - notification: NotifyTeamArchived - - """ - all the suggested actions that never happened - """ - removedSuggestedActionIds: [ID] - - """ - A list of the ids of templates created by a team - """ - teamTemplateIds: [ID!]! -} - -""" -A notification alerting the user that a team they were on is now archived -""" -type NotifyTeamArchived implements Notification { - """ - the user that archived the team - """ - archivor: User! - team: Team! - - """ - A shortid for the notification - """ - id: ID! - - """ - UNREAD if new, READ if viewer has seen it, CLICKED if viewed clicked it - """ - status: NotificationStatusEnum! - - """ - The datetime to activate the notification & send it to the client - """ - createdAt: DateTime! - type: NotificationEnum! - - """ - *The userId that should see this notification - """ - userId: ID! -} - -""" -Return object for ArchiveTimelineEventPayload -""" -union ArchiveTimelineEventPayload = ErrorPayload | ArchiveTimelineEventSuccess - -type ArchiveTimelineEventSuccess { - """ - the archived timelineEvent - """ - timelineEvent: TimelineEvent! -} - -type ChangeTaskTeamPayload { - error: StandardMutationError - task: Task - - """ - the taskId sent to a user who is not on the new team so they can remove it from their client - """ - removedTaskId: ID -} - -type SetNotificationStatusPayload { - error: StandardMutationError - - """ - The updated notification - """ - notification: Notification -} - -type CreateTaskIntegrationPayload { - error: StandardMutationError - task: Task -} - -""" -Return object for CreateMassInvitationPayload -""" -union CreateMassInvitationPayload = ErrorPayload | CreateMassInvitationSuccess - -type CreateMassInvitationSuccess { - """ - the team with the updated mass inivtation - """ - team: Team! -} - -""" -Authorization URL constructed after creating a new request token -""" -type CreateOAuth1AuthorizationURLPayload { - error: StandardMutationError - - """ - Authorization URL including oauth_token to start authorization flow - """ - url: String -} - -type CreateReflectionPayload { - error: StandardMutationError - meeting: NewMeeting - reflectionId: ID - reflection: RetroReflection - - """ - The group automatically created for the reflection - """ - reflectionGroup: RetroReflectionGroup - - """ - The stages that were unlocked by navigating - """ - unlockedStages: [NewMeetingStage!] -} - -input CreateReflectionInput { - """ - A stringified draft-js document containing thoughts - """ - content: String - meetingId: ID! - - """ - The prompt the reflection belongs to - """ - promptId: ID! - sortOrder: Float! -} - -type CreateTaskPayload { - error: StandardMutationError - task: Task - involvementNotification: NotifyTaskInvolves -} - -""" -A notification sent to someone who was just added to a team -""" -type NotifyTaskInvolves implements Notification & TeamNotification { - """ - A shortid for the notification - """ - id: ID! - - """ - UNREAD if new, READ if viewer has seen it, CLICKED if viewed clicked it - """ - status: NotificationStatusEnum! - - """ - The datetime to activate the notification & send it to the client - """ - createdAt: DateTime! - type: NotificationEnum! - - """ - *The userId that should see this notification - """ - userId: ID! - - """ - How the user is affiliated with the task - """ - involvement: TaskInvolvementType! - - """ - The taskId that now involves the userId - """ - taskId: ID! - - """ - The task that now involves the userId - """ - task: Task - - """ - The teamMemberId of the person that made the change - """ - changeAuthorId: ID - - """ - The TeamMember of the person that made the change - """ - changeAuthor: TeamMember! - teamId: ID! - - """ - The team the task is on - """ - team: Team! -} - -""" -How a user is involved with a task (listed in hierarchical order) -""" -enum TaskInvolvementType { - ASSIGNEE - MENTIONEE -} - -input CreateTaskInput { - content: String - plaintextContent: String - - """ - foreign key for the meeting this was created in - """ - meetingId: ID - - """ - foreign key for the thread this was created in - """ - discussionId: ID - threadSortOrder: Float - threadParentId: ID - sortOrder: Float - status: TaskStatusEnum! - - """ - teamId, the team the task is on - """ - teamId: ID! - - """ - userId, the owner of the task. This can be null if the task is not assigned to anyone. - """ - userId: ID - integration: CreateTaskIntegrationInput -} - -input CreateTaskIntegrationInput { - """ - The service to push this new task to - """ - service: TaskServiceEnum! - - """ - The key or composite key where the task should live in the service, e.g. nameWithOwner or cloudId:projectKey - """ - serviceProjectHash: String! -} - -""" -The list of services for task integrations -""" -enum TaskServiceEnum { - github - jira - PARABOL -} - -enum ServiceEnum { - PARABOL - github - jira - gitlab - mattermost - jiraServer - gcal - azureDevOps -} - -""" -The part of the site that is calling the mutation -""" -enum AreaEnum { - meeting - teamDash - userDash -} - -""" -Return object for DeleteCommentPayload -""" -union DeleteCommentPayload = ErrorPayload | DeleteCommentSuccess - -type DeleteCommentSuccess { - commentId: ID! - - """ - the comment just deleted - """ - comment: Comment! -} - -type DeleteTaskPayload { - error: StandardMutationError - - """ - The task that was deleted - """ - task: Task -} - -type DeleteUserPayload { - error: StandardMutationError -} - -type DenyPushInvitationPayload { - error: StandardMutationError - teamId: ID - userId: ID -} - -type DismissNewFeaturePayload { - error: StandardMutationError -} - -type DismissSuggestedActionPayload { - error: StandardMutationError - - """ - The user that dismissed the action - """ - user: User - - """ - The id of the removed suggested action - """ - removedSuggestedActionId: ID -} - -type DowngradeToStarterPayload { - error: StandardMutationError - - """ - The new Starter Org - """ - organization: Organization - - """ - The updated teams under the org - """ - teams: [Team] -} - -type DragDiscussionTopicPayload { - error: StandardMutationError - meeting: NewMeeting - stage: RetroDiscussStage -} - -""" -Return object for DragEstimatingTaskPayload -""" -union DragEstimatingTaskPayload = ErrorPayload | DragEstimatingTaskSuccess - -type DragEstimatingTaskSuccess { - meetingId: ID! - meeting: PokerMeeting! - stageIds: [ID!]! - stages: [EstimateStage!]! -} - -""" -Return object for EmailPasswordResetPayload -""" -union EmailPasswordResetPayload = ErrorPayload | EmailPasswordResetSuccess - -type EmailPasswordResetSuccess { - """ - True if the email password reset was successfully sent - """ - success: Boolean -} - -""" -Return object for EditCommentingPayload -""" -union EditCommentingPayload = ErrorPayload | EditCommentingSuccess - -type EditCommentingSuccess { - """ - The discussion the comment was created in - """ - discussionId: ID! - - """ - The discussion where the commenting state changed - """ - discussion: Discussion! -} - -""" -Return object for EndSprintPokerPayload -""" -union EndSprintPokerPayload = ErrorPayload | EndSprintPokerSuccess - -type EndSprintPokerSuccess { - """ - true if the meeting was killed (ended before reaching last stage) - """ - isKill: Boolean! - meetingId: ID! - meeting: PokerMeeting! - removedTaskIds: [ID!]! - team: Team! - teamId: ID! -} - -type EditReflectionPayload { - error: StandardMutationError - promptId: ID - - """ - The socketId of the client editing the card (uses socketId to maintain anonymity) - """ - editorId: ID - - """ - true if the reflection is being edited, else false - """ - isEditing: Boolean -} - -type EditTaskPayload { - error: StandardMutationError - task: Task - editor: User - - """ - true if the editor is editing, false if they stopped editing - """ - isEditing: Boolean -} - -""" -Return object for EndCheckInPayload -""" -union EndCheckInPayload = ErrorPayload | EndCheckInSuccess - -type EndCheckInSuccess { - """ - true if the meeting was killed (ended before reaching last stage) - """ - isKill: Boolean! - team: Team! - meeting: ActionMeeting! - - """ - The ID of the suggestion to try a check-in meeting, if tried - """ - removedSuggestedActionId: ID - removedTaskIds: [ID!] - - """ - An event that is important to the viewer, e.g. an ended meeting - """ - timelineEvent: TimelineEvent! - updatedTaskIds: [ID!] - - """ - Any tasks that were updated during the meeting - """ - updatedTasks: [Task!] -} - -type EndDraggingReflectionPayload { - error: StandardMutationError - dragId: ID - - """ - The drag as sent from the team member - """ - remoteDrag: RemoteReflectionDrag - - """ - the type of item the reflection was dropped on - """ - dropTargetType: DragReflectionDropTargetTypeEnum - - """ - The ID that the dragged item was dropped on, if dropTargetType is not specific enough - """ - dropTargetId: ID - meeting: RetrospectiveMeeting - meetingId: ID - reflection: RetroReflection - reflectionGroupId: ID - reflectionId: ID - - """ - foreign key to get user - """ - userId: ID - - """ - The group encapsulating the new reflection. A new one was created if one was not provided. - """ - reflectionGroup: RetroReflectionGroup - - """ - The old group the reflection was in - """ - oldReflectionGroup: RetroReflectionGroup -} - -""" -Info associated with a current drag -""" -type RemoteReflectionDrag { - id: ID! - - """ - The userId of the person currently dragging the reflection - """ - dragUserId: ID - - """ - The name of the dragUser - """ - dragUserName: String - isSpotlight: Boolean - clientHeight: Float - clientWidth: Float - - """ - The primary key of the item being drug - """ - sourceId: ID! - - """ - The estimated destination of the item being drug - """ - targetId: ID - - """ - horizontal distance from the top left of the target - """ - targetOffsetX: Float - - """ - vertical distance from the top left of the target - """ - targetOffsetY: Float - - """ - the left of the source, relative to the client window - """ - clientX: Float - - """ - the top of the source, relative to the client window - """ - clientY: Float -} - -""" -The possible places a reflection can be dropped -""" -enum DragReflectionDropTargetTypeEnum { - REFLECTION_GROUP - REFLECTION_GRID -} - -""" -Return object for EndRetrospectivePayload -""" -union EndRetrospectivePayload = ErrorPayload | EndRetrospectiveSuccess - -type EndRetrospectiveSuccess { - """ - true if the meeting was killed (ended before reaching last stage) - """ - isKill: Boolean! - team: Team! - meeting: RetrospectiveMeeting! - - """ - The ID of the suggestion to try a retro meeting, if tried - """ - removedSuggestedActionId: ID - removedTaskIds: [ID!]! - - """ - An event that is important to the viewer, e.g. an ended meeting - """ - timelineEvent: TimelineEvent! -} - -""" -Return object for FlagReadyToAdvancePayload -""" -union FlagReadyToAdvancePayload = ErrorPayload | FlagReadyToAdvanceSuccess - -type FlagReadyToAdvanceSuccess { - """ - the meeting with the updated readyCount - """ - meeting: NewMeeting! - - """ - the stage with the updated readyCount - """ - stage: NewMeetingStage! -} - -type InactivateUserPayload { - error: StandardMutationError - - """ - The user that has been inactivated - """ - user: User -} - -type InvalidateSessionsPayload { - error: StandardMutationError - - """ - The new, only valid auth token - """ - authToken: ID -} - -type InviteToTeamPayload { - error: StandardMutationError - - """ - The team the inviter is inviting the invitee to - """ - team: Team - - """ - A list of email addresses the invitations were sent to - """ - invitees: [Email!] - - """ - the notification ID if this payload is sent to a subscriber, else null - """ - teamInvitationNotificationId: ID - - """ - The notification sent to the invitee if they are a parabol user - """ - teamInvitationNotification: NotificationTeamInvitation - - """ - the `invite your team` suggested action that was removed, if any - """ - removedSuggestedActionId: ID -} - -type MovePokerTemplateDimensionPayload { - error: StandardMutationError - dimension: TemplateDimension -} - -type MoveReflectTemplatePromptPayload { - error: StandardMutationError - prompt: ReflectPrompt -} - -type NavigateMeetingPayload { - error: StandardMutationError - meeting: NewMeeting - - """ - The stage that the facilitator is now on - """ - facilitatorStage: NewMeetingStage - - """ - The stage that the facilitator left - """ - oldFacilitatorStage: NewMeetingStage - - """ - Additional details triggered by completing certain phases - """ - phaseComplete: PhaseCompletePayload - - """ - The stages that were unlocked by navigating - """ - unlockedStages: [NewMeetingStage!] -} - -type PhaseCompletePayload { - """ - payload provided if the retro reflect phase was completed - """ - reflect: ReflectPhaseCompletePayload - - """ - payload provided if the retro grouping phase was completed - """ - group: GroupPhaseCompletePayload - - """ - payload provided if the retro voting phase was completed - """ - vote: VotePhaseCompletePayload -} - -type ReflectPhaseCompletePayload { - """ - a list of empty reflection groups to remove - """ - emptyReflectionGroupIds: [ID!]! - - """ - The grouped reflections - """ - reflectionGroups: [RetroReflectionGroup!]! -} - -type GroupPhaseCompletePayload { - """ - a list of empty reflection groups to remove - """ - emptyReflectionGroupIds: [ID!]! - - """ - the current meeting - """ - meeting: RetrospectiveMeeting! - - """ - a list of updated reflection groups - """ - reflectionGroups: [RetroReflectionGroup] -} - -type VotePhaseCompletePayload { - """ - the current meeting - """ - meeting: RetrospectiveMeeting -} - -type NewMeetingCheckInPayload { - error: StandardMutationError - meetingMember: MeetingMember - meeting: NewMeeting -} - -type PayLaterPayload { - error: StandardMutationError - - """ - the ids of the meetings that were showing conversion modals - """ - meetingId: ID - - """ - the meetings that were showing conversion modals - """ - meeting: NewMeeting -} - -""" -Return object for PersistJiraSearchQueryPayload -""" -union PersistJiraSearchQueryPayload = ErrorPayload | PersistJiraSearchQuerySuccess - -type PersistJiraSearchQuerySuccess { - """ - The newly created auth - """ - atlassianIntegration: AtlassianIntegration -} - -input JiraSearchQueryInput { - """ - The query string, either simple or JQL depending on the isJQL flag - """ - queryString: String! - - """ - true if the queryString is JQL, else false - """ - isJQL: Boolean! - - """ - The list of project keys selected as a filter. null if not set - """ - projectKeyFilters: [ID!] - - """ - true if this query should be deleted - """ - isRemove: Boolean -} - -type PushInvitationPayload { - error: StandardMutationError - user: User - meetingId: ID - team: Team -} - -type PromoteNewMeetingFacilitatorPayload { - error: StandardMutationError - - """ - The meeting in progress - """ - meeting: NewMeeting - facilitatorStage: NewMeetingStage - - """ - The old meeting facilitator - """ - oldFacilitator: User -} - -type PromoteToTeamLeadPayload { - error: StandardMutationError - team: Team - oldLeader: TeamMember - newLeader: TeamMember -} - -type ReflectTemplatePromptUpdateDescriptionPayload { - error: StandardMutationError - prompt: ReflectPrompt -} - -type PokerTemplateDimensionUpdateDescriptionPayload { - error: StandardMutationError - dimension: TemplateDimension -} - -type ReflectTemplatePromptUpdateGroupColorPayload { - error: StandardMutationError - prompt: ReflectPrompt -} - -type RemoveAgendaItemPayload { - error: StandardMutationError - agendaItem: AgendaItem - meetingId: ID - - """ - The meeting with the updated agenda item, if any - """ - meeting: NewMeeting -} - -type RemoveAtlassianAuthPayload { - error: StandardMutationError - teamId: ID - - """ - The team member with the updated auth - """ - teamMember: TeamMember - - """ - The user with updated atlassianAuth - """ - user: User -} - -type RemoveGitHubAuthPayload { - error: StandardMutationError - teamId: ID - - """ - The team member with the updated auth - """ - teamMember: TeamMember - - """ - The user with updated githubAuth - """ - user: User -} - -type RemoveOrgUserPayload { - error: StandardMutationError - - """ - The organization the user was removed from - """ - organization: Organization - - """ - The teams the user was removed from - """ - teams: [Team!] - - """ - The teamMembers removed - """ - teamMembers: [TeamMember!] - - """ - The tasks that were archived or reassigned - """ - updatedTasks: [Task!] - - """ - The user removed from the organization - """ - user: User - - """ - The notifications for each team the user was kicked out of - """ - kickOutNotifications: [NotifyKickedOut!] - - """ - The organization member that got removed - """ - removedOrgMember: OrganizationUser - organizationUserId: String -} - -""" -A notification sent to someone who was just kicked off a team -""" -type NotifyKickedOut implements Notification { - """ - A shortid for the notification - """ - id: ID! - - """ - UNREAD if new, READ if viewer has seen it, CLICKED if viewed clicked it - """ - status: NotificationStatusEnum! - - """ - The datetime to activate the notification & send it to the client - """ - createdAt: DateTime! - type: NotificationEnum! - - """ - *The userId that should see this notification - """ - userId: ID! - - """ - the user that evicted recipient - """ - evictor: User! - - """ - The name of the team the user is joining - """ - teamName: String! - - """ - The teamId the user was kicked out of - """ - teamId: ID! - - """ - The team the task is on - """ - team: Team! -} - -type RemovePokerTemplatePayload { - error: StandardMutationError - pokerTemplate: PokerTemplate - pokerMeetingSettings: PokerMeetingSettings -} - -type RemoveReflectTemplatePayload { - error: StandardMutationError - reflectTemplate: ReflectTemplate - retroMeetingSettings: RetrospectiveMeetingSettings -} - -type RemoveReflectTemplatePromptPayload { - error: StandardMutationError - reflectTemplate: ReflectTemplate - prompt: ReflectPrompt -} - -type RemovePokerTemplateDimensionPayload { - error: StandardMutationError - pokerTemplate: PokerTemplate - dimension: TemplateDimension -} - -""" -Return object for RenameMeetingPayload -""" -union RenameMeetingPayload = ErrorPayload | RenameMeetingSuccess - -type RenameMeetingSuccess { - """ - the renamed meeting - """ - meeting: NewMeeting! -} - -type RenameMeetingTemplatePayload { - error: StandardMutationError - meetingTemplate: MeetingTemplate -} - -type RenameReflectTemplatePromptPayload { - error: StandardMutationError - prompt: ReflectPrompt -} - -type RenamePokerTemplateDimensionPayload { - error: StandardMutationError - dimension: TemplateDimension -} - -type RenamePokerTemplateScalePayload { - error: StandardMutationError - scale: TemplateScale -} - -type RemovePokerTemplateScalePayload { - error: StandardMutationError - scale: TemplateScale - - """ - A list of dimensions that were using the archived scale - """ - dimensions: [TemplateDimension!]! -} - -type RemovePokerTemplateScaleValuePayload { - error: StandardMutationError - scale: TemplateScale -} - -type RemoveReflectionPayload { - error: StandardMutationError - meeting: NewMeeting - reflection: RetroReflection - - """ - The stages that were unlocked by navigating - """ - unlockedStages: [NewMeetingStage!] -} - -type RemoveSlackAuthPayload { - error: StandardMutationError - - """ - The ID of the authorization removed - """ - authId: ID - teamId: ID - - """ - The user with updated slackAuth - """ - user: User -} - -type RemoveTeamMemberPayload { - error: StandardMutationError - - """ - The team member removed - """ - teamMember: TeamMember - - """ - The team the team member was removed from - """ - team: Team - - """ - The tasks that got reassigned - """ - updatedTasks: [Task!] - - """ - The user removed from the team - """ - user: User - - """ - A notification if you were kicked out by the team leader - """ - kickOutNotification: NotifyKickedOut -} - -type ResetPasswordPayload { - error: StandardMutationError - - """ - The new auth token - """ - authToken: ID - userId: ID - - """ - the user that changed their password - """ - user: User -} - -type ResetRetroMeetingToGroupStagePayload { - error: StandardMutationError - meeting: NewMeeting -} - -type SelectTemplatePayload { - error: StandardMutationError - meetingSettings: TeamMeetingSettings -} - -""" -Return object for SetAppLocationPayload -""" -union SetAppLocationPayload = ErrorPayload | SetAppLocationSuccess - -type SetAppLocationSuccess { - """ - the user with the updated location - """ - user: User! -} - -type SetMeetingSettingsPayload { - error: StandardMutationError - settings: TeamMeetingSettings -} - -""" -Return object for SetDefaultSlackChannelPayload -""" -union SetDefaultSlackChannelPayload = ErrorPayload | SetDefaultSlackChannelSuccess - -type SetDefaultSlackChannelSuccess { - """ - The id of the slack channel that is now the default slack channel - """ - slackChannelId: ID! - - """ - The team member with the updated slack channel - """ - teamMember: TeamMember! -} - -type SetPhaseFocusPayload { - error: StandardMutationError - meeting: RetrospectiveMeeting! - reflectPhase: ReflectPhase! -} - -type SetStageTimerPayload { - error: StandardMutationError - - """ - The updated stage - """ - stage: NewMeetingStage -} - -type SetSlackNotificationPayload { - error: StandardMutationError - slackNotifications: [SlackNotification!] - - """ - The user with updated slack notifications - """ - user: User -} - -type StartDraggingReflectionPayload { - error: StandardMutationError - - """ - The proposed start/end of a drag. Subject to race conditions, it is up to the client to decide to accept or ignore - """ - remoteDrag: RemoteReflectionDrag - meeting: NewMeeting - meetingId: ID - reflection: RetroReflection - reflectionId: ID - teamId: ID -} - -""" -Return object for StartSprintPokerPayload -""" -union StartSprintPokerPayload = ErrorPayload | StartSprintPokerSuccess - -type StartSprintPokerSuccess { - meetingId: ID! - meeting: PokerMeeting! - team: Team! - teamId: ID! - hasGcalError: Boolean -} - -""" -Return object for SetTaskHighlightPayload -""" -union SetTaskHighlightPayload = ErrorPayload | SetTaskHighlightSuccess - -type SetTaskHighlightSuccess { - """ - Meeting where the task is highlighted - """ - meetingId: ID! - - """ - Task which highlight changed - """ - taskId: ID! - - """ - Task which highlight changed - """ - task: Task! -} - -type UpdateAgendaItemPayload { - agendaItem: AgendaItem - meetingId: ID - - """ - The meeting with the updated agenda item, if any - """ - meeting: NewMeeting - error: StandardMutationError -} - -input UpdateAgendaItemInput { - """ - The unique agenda item ID, composed of a teamId::shortid - """ - id: ID! - - """ - The content of the agenda item - """ - content: String - - """ - True if agenda item has been pinned - """ - pinned: Boolean - - """ - True if not processed or deleted - """ - isActive: Boolean - - """ - The sort order of the agenda item in the list - """ - sortOrder: Float -} - -""" -Return object for UpdateCommentContentPayload -""" -union UpdateCommentContentPayload = ErrorPayload | UpdateCommentContentSuccess - -type UpdateCommentContentSuccess { - """ - the comment with updated content - """ - comment: Comment! -} - -type OldUpdateCreditCardPayload { - error: StandardMutationError - - """ - The organization that received the updated credit card - """ - organization: Organization - - """ - The teams that are now paid up - """ - teamsUpdated: [Team] -} - -type UpdatePokerTemplateDimensionScalePayload { - error: StandardMutationError - dimension: TemplateDimension -} - -type UpdatePokerTemplateScaleValuePayload { - error: StandardMutationError - scale: TemplateScale -} - -""" -A value for a scale -""" -input TemplateScaleInput { - """ - The color used to visually group a scale value - """ - color: String! - - """ - The label for this value, e.g., XS, M, L - """ - label: String! -} - -type UpdateNewCheckInQuestionPayload { - error: StandardMutationError - meeting: NewMeeting -} - -input UpdateDragLocationInput { - id: ID! - clientHeight: Float! - clientWidth: Float! - meetingId: ID! - - """ - The primary key of the item being drug - """ - sourceId: ID! - - """ - The estimated destination of the item being drug - """ - targetId: ID - - """ - The teamId to broadcast the message to - """ - teamId: ID! - - """ - horizontal distance from the top left of the target - """ - targetOffsetX: Float - - """ - vertical distance from the top left of the target - """ - targetOffsetY: Float - - """ - the left of the source, relative to the client window - """ - clientX: Float - - """ - the top of the source, relative to the client window - """ - clientY: Float -} - -""" -Return object for UpdatePokerScopePayload -""" -union UpdatePokerScopePayload = ErrorPayload | UpdatePokerScopeSuccess - -type UpdatePokerScopeSuccess { - """ - The meeting with the updated estimate phases - """ - meeting: PokerMeeting! - - """ - The estimate stages added to the meeting - """ - newStages: [EstimateStage!]! -} - -input UpdatePokerScopeItemInput { - """ - The location of the single source of truth (e.g. a jira-integrated parabol task would be "jira") - """ - service: TaskServiceEnum! - - """ - If vanilla parabol task, taskId. If integrated parabol task, integrationHash - """ - serviceTaskId: ID! - - """ - The action to perform - """ - action: AddOrDeleteEnum! -} - -""" -Option to add or delete -""" -enum AddOrDeleteEnum { - ADD - DELETE -} - -type UpdateReflectionContentPayload { - error: StandardMutationError - meeting: NewMeeting - reflection: RetroReflection -} - -type UpdateReflectionGroupTitlePayload { - error: StandardMutationError - meeting: NewMeeting - reflectionGroup: RetroReflectionGroup -} - -""" -Return object for UpdateRetroMaxVotesPayload -""" -union UpdateRetroMaxVotesPayload = ErrorPayload | UpdateRetroMaxVotesSuccess - -type UpdateRetroMaxVotesSuccess { - """ - the meeting with the updated max votes - """ - meeting: RetrospectiveMeeting! -} - -type UpdateTaskPayload { - error: StandardMutationError - task: Task - - """ - If a task was just turned private, this its ID, else null - """ - privatizedTaskId: ID - addedNotification: NotifyTaskInvolves -} - -input UpdateTaskInput { - """ - The task id - """ - id: ID! - content: String - sortOrder: Float - status: TaskStatusEnum - - """ - userId, the owner of the task. This can be null if the task is not assigned to anyone. - """ - userId: ID -} - -type UpdateTaskDueDatePayload { - error: StandardMutationError - task: Task -} - -type UpdateTeamNamePayload { - error: StandardMutationError - team: Team -} - -input UpdatedTeamInput { - id: ID! - - """ - The name of the team - """ - name: String! - - """ - A link to the team’s profile image. - """ - picture: URL -} - -""" -Return object for UpdateTemplateScopePayload -""" -union UpdateTemplateScopePayload = ErrorPayload | UpdateTemplateScopeSuccess - -type UpdateTemplateScopeSuccess { - """ - the template that was just updated, if downscoped, does not provide whole story - """ - template: MeetingTemplate! - - """ - if downscoping a previously used template, this will be the replacement - """ - clonedTemplate: MeetingTemplate - - """ - The settings that contain the teamTemplates array that was modified - """ - settings: TeamMeetingSettings! -} - -type OldUpgradeToTeamTierPayload { - error: StandardMutationError - - """ - The new Team Org - """ - organization: Organization - - """ - The updated teams under the org - """ - teams: [Team!] - - """ - the ids of the meetings that were showing conversion modals - """ - meetingIds: [ID!] - - """ - the meetings that were showing conversion modals - """ - meetings: [NewMeeting!] -} - -scalar File - -type VoteForReflectionGroupPayload { - error: StandardMutationError - meeting: RetrospectiveMeeting - meetingMember: RetrospectiveMeetingMember - reflectionGroup: RetroReflectionGroup - - """ - The stages that were locked or unlocked by having at least 1 vote - """ - unlockedStages: [NewMeetingStage!] -} - -""" -Return object for VoteForPokerStoryPayload -""" -union VoteForPokerStoryPayload = ErrorPayload | VoteForPokerStorySuccess - -type VoteForPokerStorySuccess { - """ - The stage that holds the updated scores - """ - stage: EstimateStage! -} - -""" -Return object for PokerRevealVotesPayload -""" -union PokerRevealVotesPayload = ErrorPayload | PokerRevealVotesSuccess - -type PokerRevealVotesSuccess { - """ - The stage that holds the updated isVoting step - """ - stage: EstimateStage! -} - -""" -Return object for PokerResetDimensionPayload -""" -union PokerResetDimensionPayload = ErrorPayload | PokerResetDimensionSuccess - -type PokerResetDimensionSuccess { - """ - The stage that holds the updated isVoting step - """ - stage: EstimateStage! -} - -""" -Return object for PokerAnnounceDeckHoverPayload -""" -union PokerAnnounceDeckHoverPayload = ErrorPayload | PokerAnnounceDeckHoverSuccess - -type PokerAnnounceDeckHoverSuccess { - meetingId: ID! - stageId: ID! - userId: ID! - user: User! - isHover: Boolean! - - """ - The stage that holds the updated scores - """ - stage: EstimateStage! -} - -""" -Return object for MovePokerTemplateScaleValuePayload -""" -union MovePokerTemplateScaleValuePayload = ErrorPayload | MovePokerTemplateScaleValueSuccess - -type MovePokerTemplateScaleValueSuccess { - """ - The scale after values are moved - """ - scale: TemplateScale! -} - -""" -Return object for JoinMeetingPayload -""" -union JoinMeetingPayload = ErrorPayload | JoinMeetingSuccess - -type JoinMeetingSuccess { - meetingId: ID! - - """ - The meeting with the updated stages, if any - """ - meeting: NewMeeting! -} - -""" -Return object for SetPokerSpectatePayload -""" -union SetPokerSpectatePayload = ErrorPayload | SetPokerSpectateSuccess - -type SetPokerSpectateSuccess { - meetingId: ID! - userId: ID! - - """ - The meeting member with the updated isSpectating value - """ - meetingMember: PokerMeetingMember! - - """ - The stages that were updated if the viewer voted and then changed to spectating - """ - updatedStages: [EstimateStage!]! -} - -""" -Return object for PersistGitHubSearchQueryPayload -""" -union PersistGitHubSearchQueryPayload = ErrorPayload | PersistGitHubSearchQuerySuccess - -type PersistGitHubSearchQuerySuccess { - """ - The affected teamId - """ - teamId: ID! - - """ - The affected userId - """ - userId: ID! - - """ - The auth with the updated search queries - """ - githubIntegration: GitHubIntegration! -} - -""" -Return object for SetTaskEstimatePayload -""" -union SetTaskEstimatePayload = ErrorPayload | SetTaskEstimateSuccess - -type SetTaskEstimateSuccess { - task: Task! - - """ - The stage that holds the updated finalScore, if meetingId was provided - """ - stage: EstimateStage -} - -input TaskEstimateInput { - taskId: ID! - - """ - The new estimate value - """ - value: String! - - """ - The name of the estimate, e.g. Story Points - """ - dimensionName: String! - meetingId: ID -} - -""" -Return object for ToggleTeamDrawerPayload -""" -union ToggleTeamDrawerPayload = ErrorPayload | ToggleTeamDrawerSuccess - -type ToggleTeamDrawerSuccess { - teamMember: TeamMember! -} - -""" -Return object for UpdateGitHubDimensionFieldPayload -""" -union UpdateGitHubDimensionFieldPayload = ErrorPayload | UpdateGitHubDimensionFieldSuccess - -type UpdateGitHubDimensionFieldSuccess { - teamId: ID! - meetingId: ID! - team: Team! - - """ - The poker meeting the field was updated from - """ - meeting: PokerMeeting! -} - -""" -Return object for CreatePollPayload -""" -union CreatePollPayload = ErrorPayload | CreatePollSuccess - -type CreatePollSuccess { - """ - Poll id in a format of `poll:idGeneratedByDatabase` - """ - pollId: ID! - - """ - the poll just created - """ - poll: Poll! -} - -""" -A poll created during the meeting -""" -type Poll implements Threadable { - """ - Poll id in a format of `poll:idGeneratedByDatabase` - """ - id: ID! - - """ - The rich text body of the item - """ - content: String! - - """ - The timestamp the item was created - """ - createdAt: DateTime! - - """ - The userId that created the item - """ - createdBy: ID - - """ - The user that created the item - """ - createdByUser: User! - - """ - the replies to this threadable item - """ - replies: [Threadable!]! - - """ - The FK of the discussion this task was created in. Null if task was not created in a discussion - """ - discussionId: ID - - """ - the parent, if this threadable is a reply, else null - """ - threadParentId: ID - - """ - the order of this threadable, relative to threadParentId - """ - threadSortOrder: Float - - """ - The timestamp the item was updated - """ - updatedAt: DateTime! - - """ - The foreign key for the meeting the poll was created in - """ - meetingId: ID - - """ - The id of the team (indexed) - """ - teamId: ID! - - """ - The team this poll belongs to - """ - team: Team! - - """ - Poll title - """ - title: String! - - """ - A list of all the poll options related to this poll - """ - options: [PollOption!]! -} - -""" -Poll options for a given poll -""" -type PollOption { - """ - Poll option id in a format of `pollOption:idGeneratedByDatabase` - """ - id: ID! - - """ - The timestamp the item was created - """ - createdAt: DateTime! - - """ - The timestamp the item was updated - """ - updatedAt: DateTime! - - """ - The foreign key of the poll this option belongs to in a format of `poll:idGeneratedByDatabase` - """ - pollId: ID! - - """ - The poll this option belongs to - """ - poll: Poll! - - """ - The ids of the users who voted for this option - """ - voteUserIds: [ID!]! - - """ - Poll option title - """ - title: String! -} - -input CreatePollInput { - """ - Foreign key for the discussion this was created in - """ - discussionId: ID! - - """ - The order of this threadable - """ - threadSortOrder: Float! - - """ - Poll question - """ - title: String! - - """ - All the poll voting options - """ - options: [PollOptionInput!]! -} - -input PollOptionInput { - """ - Poll option title - """ - title: String! -} - -""" -Return object for AddIntegrationProviderPayload -""" -union AddIntegrationProviderPayload = ErrorPayload | AddIntegrationProviderSuccess - -type AddIntegrationProviderSuccess { - """ - The provider that was added - """ - provider: IntegrationProvider! - - """ - Id of the team with the updated Integration Provider - """ - teamId: ID! - - """ - The team with the updated Integration Provider - """ - team: Team! -} - -""" -An Integration Provider configuration -""" -input AddIntegrationProviderInput { - """ - The team that the token is linked to - """ - teamId: ID! - - """ - The service this provider is associated with - """ - service: IntegrationProviderServiceEnum! - - """ - The kind of token used by this provider - """ - authStrategy: IntegrationProviderAuthStrategyEnum! - - """ - The scope this provider configuration was created at (org-wide, or by the team) - """ - scope: IntegrationProviderEditableScopeEnum! - - """ - Webhook provider metadata, has to be non-null if token type is webhook, refactor once we get https://github.com/graphql/graphql-spec/pull/825 - """ - webhookProviderMetadataInput: IntegrationProviderMetadataInputWebhook - - """ - OAuth1 provider metadata, has to be non-null if token type is OAuth1, refactor once we get https://github.com/graphql/graphql-spec/pull/825 - """ - oAuth1ProviderMetadataInput: IntegrationProviderMetadataInputOAuth1 - - """ - OAuth2 provider metadata, has to be non-null if token type is OAuth2, refactor once we get https://github.com/graphql/graphql-spec/pull/825 - """ - oAuth2ProviderMetadataInput: IntegrationProviderMetadataInputOAuth2 -} - -""" -The scope this provider was created on by a user (excluding global scope) -""" -enum IntegrationProviderEditableScopeEnum { - org - team - global -} - -""" -Webhook provider metadata -""" -input IntegrationProviderMetadataInputWebhook { - """ - Webhook URL to be used by the provider - """ - webhookUrl: URL! -} - -""" -OAuth1 provider metadata -""" -input IntegrationProviderMetadataInputOAuth1 { - """ - The base URL used to access the provider - """ - serverBaseUrl: URL! - - """ - The client key to give to the provider - """ - consumerKey: ID! - - """ - Secret or Private key of the generate private/public key pair - """ - consumerSecret: String! -} - -""" -OAuth2 provider metadata -""" -input IntegrationProviderMetadataInputOAuth2 { - """ - The base URL used to access the provider - """ - serverBaseUrl: URL! - - """ - The client id to give to the provider - """ - clientId: String! - - """ - The client id to give to the provider - """ - clientSecret: String! -} - -""" -Return object for UpdateIntegrationProviderPayload -""" -union UpdateIntegrationProviderPayload = ErrorPayload | UpdateIntegrationProviderSuccess - -type UpdateIntegrationProviderSuccess { - """ - The provider that was updated - """ - provider: IntegrationProvider! - - """ - The team member with the updated auth - """ - teamMember: TeamMember! - - """ - The user who updated TeamMemberIntegrationAuth object - """ - user: User! -} - -""" -An Integration Provider configuration -""" -input UpdateIntegrationProviderInput { - """ - The the id of the Integration Provider to update - """ - id: ID! - - """ - The new scope for this provider (org, team) - """ - scope: IntegrationProviderEditableScopeEnum - - """ - Webhook provider metadata, has to be non-null if token type is webhook, refactor once we get https://github.com/graphql/graphql-spec/pull/825 - """ - webhookProviderMetadataInput: IntegrationProviderMetadataInputWebhook - - """ - OAuth2 provider metadata, has to be non-null if token type is OAuth2, refactor once we get https://github.com/graphql/graphql-spec/pull/825 - """ - oAuth2ProviderMetadataInput: IntegrationProviderMetadataInputOAuth2 -} - -type AddReactjiToReflectionSuccess { - """ - the reflection with the updated list of reactjis - """ - reflection: RetroReflection! -} - -type UpdateDragLocationPayload { - """ - The drag as sent from the team member - """ - remoteDrag: RemoteReflectionDrag - userId: ID! -} - -type AddNewFeaturePayload { - """ - the new feature broadcast - """ - newFeature: NewFeatureBroadcast -} - -type DisconnectSocketPayload { - """ - The user that disconnected - """ - user: User -} - -type MeetingStageTimeLimitPayload { - """ - The new notification that was just created - """ - notification: NotificationMeetingStageTimeLimitEnd! -} - -""" -A notification sent to a facilitator that the stage time limit has ended -""" -type NotificationMeetingStageTimeLimitEnd implements Notification & TeamNotification { - """ - A shortid for the notification - """ - id: ID! - - """ - UNREAD if new, READ if viewer has seen it, CLICKED if viewed clicked it - """ - status: NotificationStatusEnum! - - """ - The datetime to activate the notification & send it to the client - """ - createdAt: DateTime! - type: NotificationEnum! - - """ - *The userId that should see this notification - """ - userId: ID! - - """ - FK - """ - meetingId: ID! - - """ - The meeting that had the time limit expire - """ - meeting: NewMeeting! -} - -type StripeFailPaymentPayload { - error: StandardMutationError - organization: Organization - - """ - The notification to a billing leader stating the payment was rejected - """ - notification: NotifyPaymentRejected! -} - -""" -A notification sent to a user when their payment has been rejected -""" -type NotifyPaymentRejected implements Notification { - organization: Organization! - - """ - A shortid for the notification - """ - id: ID! - - """ - UNREAD if new, READ if viewer has seen it, CLICKED if viewed clicked it - """ - status: NotificationStatusEnum! - - """ - The datetime to activate the notification & send it to the client - """ - createdAt: DateTime! - type: NotificationEnum! - - """ - *The userId that should see this notification - """ - userId: ID! -} - -""" -An auth token provided by Parabol to the client -""" -type AuthTokenPayload { - """ - The encoded JWT - """ - id: ID! -} - -type RenamePokerTemplatePayload { - error: StandardMutationError - pokerTemplate: PokerTemplate -} diff --git a/packages/server/graphql/public/typeDefs/github.graphql b/packages/server/graphql/public/typeDefs/_xGitHub.graphql similarity index 100% rename from packages/server/graphql/public/typeDefs/github.graphql rename to packages/server/graphql/public/typeDefs/_xGitHub.graphql diff --git a/packages/server/graphql/public/typeDefs/gitlab.graphql b/packages/server/graphql/public/typeDefs/_xGitLab.graphql similarity index 100% rename from packages/server/graphql/public/typeDefs/gitlab.graphql rename to packages/server/graphql/public/typeDefs/_xGitLab.graphql diff --git a/packages/server/graphql/public/typeDefs/acceptRequestToJoinDomain.graphql b/packages/server/graphql/public/typeDefs/acceptRequestToJoinDomain.graphql deleted file mode 100644 index bd7fe7b031f..00000000000 --- a/packages/server/graphql/public/typeDefs/acceptRequestToJoinDomain.graphql +++ /dev/null @@ -1,28 +0,0 @@ -extend type Mutation { - """ - Adds the request user to multiple selected teams on the domain - """ - acceptRequestToJoinDomain( - """ - DomainJoinRequest id - """ - requestId: ID! - - """ - Array of team ids - """ - teamIds: [ID!]! - ): AcceptRequestToJoinDomainPayload! -} - -""" -Return value for acceptRequestToJoinDomain, which could be an error -""" -union AcceptRequestToJoinDomainPayload = ErrorPayload | AcceptRequestToJoinDomainSuccess - -type AcceptRequestToJoinDomainSuccess { - """ - Viewer - """ - viewer: User! -} diff --git a/packages/server/graphql/public/typeDefs/addApprovedOrganizationDomains.graphql b/packages/server/graphql/public/typeDefs/addApprovedOrganizationDomains.graphql deleted file mode 100644 index 518d301f39f..00000000000 --- a/packages/server/graphql/public/typeDefs/addApprovedOrganizationDomains.graphql +++ /dev/null @@ -1,35 +0,0 @@ -extend type Mutation { - """ - Restrict accepting team invites to a list of approved domains - """ - addApprovedOrganizationDomains( - """ - The organization ID - """ - orgId: ID! - - """ - A list of domains or email addressed allowed to join the organization - """ - emailDomains: [String!]! - ): AddApprovedOrganizationDomainsPayload! -} - -union AddApprovedOrganizationDomainsPayload = ErrorPayload | AddApprovedOrganizationDomainsSuccess - -type AddApprovedOrganizationDomainsSuccess { - orgId: ID! - - """ - Organization with the updated approvals - """ - organization: Organization! -} - -extend type Organization { - """ - A list of domains approved by the organization to join. - Empty if all domains are allowed - """ - approvedDomains: [String!]! -} diff --git a/packages/server/graphql/public/typeDefs/addReactjiToReactable.graphql b/packages/server/graphql/public/typeDefs/addReactjiToReactable.graphql deleted file mode 100644 index edf4952b266..00000000000 --- a/packages/server/graphql/public/typeDefs/addReactjiToReactable.graphql +++ /dev/null @@ -1,31 +0,0 @@ -extend type Mutation { - """ - Add or remove a reactji from a reactable - """ - addReactjiToReactable( - """ - The id of the reactable - """ - reactableId: ID! - - """ - the type of the - """ - reactableType: ReactableEnum! - - """ - the id of the reactji to add - """ - reactji: String! - - """ - If true, remove the reaction, else add it - """ - isRemove: Boolean - - """ - The id of the meeting - """ - meetingId: ID! - ): AddReactjiToReactablePayload! -} diff --git a/packages/server/graphql/public/typeDefs/addTeamMemberIntegrationAuth.graphql b/packages/server/graphql/public/typeDefs/addTeamMemberIntegrationAuth.graphql deleted file mode 100644 index f121abe6032..00000000000 --- a/packages/server/graphql/public/typeDefs/addTeamMemberIntegrationAuth.graphql +++ /dev/null @@ -1,51 +0,0 @@ -extend type Mutation { - """ - Add an integration authorization for a specific team member - """ - addTeamMemberIntegrationAuth( - providerId: ID! - teamId: ID! - - """ - The OAuth2 code or personal access token. Null for webhook auth - """ - oauthCodeOrPat: ID - - """ - OAuth1 token verifier - """ - oauthVerifier: ID - - """ - The URL the OAuth2 token will be sent to. Null for webhook auth - """ - redirectUri: URL - ): AddTeamMemberIntegrationAuthPayload! -} - -""" -Return object for AddTeamMemberIntegrationAuthPayload -""" -union AddTeamMemberIntegrationAuthPayload = ErrorPayload | AddTeamMemberIntegrationAuthSuccess - -type AddTeamMemberIntegrationAuthSuccess { - """ - The auth that was just added - """ - integrationAuth: TeamMemberIntegrationAuth! - - """ - The service this provider is associated with - """ - service: IntegrationProviderServiceEnum! - - """ - The team member with the updated auth - """ - teamMember: TeamMember! - - """ - The user who updated TeamMemberIntegrationAuth object - """ - user: User! -} diff --git a/packages/server/graphql/public/typeDefs/addTranscriptionBot.graphql b/packages/server/graphql/public/typeDefs/addTranscriptionBot.graphql deleted file mode 100644 index e9c5f47f53c..00000000000 --- a/packages/server/graphql/public/typeDefs/addTranscriptionBot.graphql +++ /dev/null @@ -1,18 +0,0 @@ -extend type Mutation { - """ - Add the transcription bot to the Zoom meeting - """ - addTranscriptionBot(meetingId: ID!, videoMeetingURL: String!): AddTranscriptionBotPayload! -} - -""" -Return value for addTranscriptionBot, which could be an error -""" -union AddTranscriptionBotPayload = ErrorPayload | AddTranscriptionBotSuccess - -type AddTranscriptionBotSuccess { - """ - The Parabol meeting where the videoMeetingURL and recallBotId were added - """ - meeting: RetrospectiveMeeting! -} diff --git a/packages/server/graphql/public/typeDefs/autogroup.graphql b/packages/server/graphql/public/typeDefs/autogroup.graphql deleted file mode 100644 index ce1b49e2030..00000000000 --- a/packages/server/graphql/public/typeDefs/autogroup.graphql +++ /dev/null @@ -1,15 +0,0 @@ -extend type Mutation { - """ - Creates suggested reflection groups using OpenAI - """ - autogroup(meetingId: ID!): AutogroupPayload! -} - -""" -Return value for autogroup, which could be an error -""" -union AutogroupPayload = ErrorPayload | AutogroupSuccess - -type AutogroupSuccess { - meeting: RetrospectiveMeeting! -} diff --git a/packages/server/graphql/public/typeDefs/batchArchiveTasks.graphql b/packages/server/graphql/public/typeDefs/batchArchiveTasks.graphql deleted file mode 100644 index 862a63407be..00000000000 --- a/packages/server/graphql/public/typeDefs/batchArchiveTasks.graphql +++ /dev/null @@ -1,27 +0,0 @@ -extend type Mutation { - """ - Batch archive tasks - """ - batchArchiveTasks( - """ - ids of the tasks to archive - """ - taskIds: [ID!]! - ): BatchArchiveTasksPayload! -} - -""" -Return value for batchArchiveTasks, which could be an error -""" -union BatchArchiveTasksPayload = ErrorPayload | BatchArchiveTasksSuccess - -type BatchArchiveTasksSuccess { - """ - the id of achived tasks - """ - archivedTaskIds: [ID!] - """ - the archived tasks - """ - archivedTasks: [Task!] -} diff --git a/packages/server/graphql/public/typeDefs/createImposterToken.graphql b/packages/server/graphql/public/typeDefs/createImposterToken.graphql deleted file mode 100644 index b4fe2a5a618..00000000000 --- a/packages/server/graphql/public/typeDefs/createImposterToken.graphql +++ /dev/null @@ -1,30 +0,0 @@ -extend type Mutation { - """ - for troubleshooting by admins, create a JWT for a given userId - """ - createImposterToken( - """ - The target userId to impersonate - """ - userId: ID - - """ - The email address of the user to impersonate - """ - email: Email - ): CreateImposterTokenPayload! -} - -type CreateImposterTokenPayload { - error: StandardMutationError - - """ - The new JWT - """ - authToken: ID - - """ - The user you have assumed - """ - user: User -} diff --git a/packages/server/graphql/public/typeDefs/createStripeSubscription.graphql b/packages/server/graphql/public/typeDefs/createStripeSubscription.graphql deleted file mode 100644 index 6a14944bd76..00000000000 --- a/packages/server/graphql/public/typeDefs/createStripeSubscription.graphql +++ /dev/null @@ -1,18 +0,0 @@ -extend type Mutation { - """ - Create the Stripe subscription for the given org - """ - createStripeSubscription(orgId: ID!, paymentMethodId: ID!): CreateStripeSubscriptionPayload! -} - -""" -Return value for createStripeSubscription, which could be an error -""" -union CreateStripeSubscriptionPayload = ErrorPayload | CreateStripeSubscriptionSuccess - -type CreateStripeSubscriptionSuccess { - """ - The client secret from the Stripe subscription. Used for client-side retrieval using a publishable key. - """ - stripeSubscriptionClientSecret: String! -} diff --git a/packages/server/graphql/public/typeDefs/generateGroups.graphql b/packages/server/graphql/public/typeDefs/generateGroups.graphql deleted file mode 100644 index 3a35abcbbd4..00000000000 --- a/packages/server/graphql/public/typeDefs/generateGroups.graphql +++ /dev/null @@ -1,6 +0,0 @@ -""" -The success response needed by the meeting subscription -""" -type GenerateGroupsSuccess { - meeting: RetrospectiveMeeting! -} diff --git a/packages/server/graphql/public/typeDefs/getTemplateSuggestion.graphql b/packages/server/graphql/public/typeDefs/getTemplateSuggestion.graphql deleted file mode 100644 index f1a61a6413b..00000000000 --- a/packages/server/graphql/public/typeDefs/getTemplateSuggestion.graphql +++ /dev/null @@ -1,28 +0,0 @@ -extend type Mutation { - """ - Ask the AI for a template suggestion - """ - getTemplateSuggestion( - """ - The question the user has for the AI - """ - prompt: String! - ): GetTemplateSuggestionPayload! -} - -""" -Return value for getTemplateSuggestion, which could be an error -""" -union GetTemplateSuggestionPayload = ErrorPayload | GetTemplateSuggestionSuccess - -type GetTemplateSuggestionSuccess { - """ - The template the AI suggested - """ - suggestedTemplate: MeetingTemplate! - - """ - The explanation from the AI - """ - explanation: String! -} diff --git a/packages/server/graphql/public/typeDefs/loginWithGoogle.graphql b/packages/server/graphql/public/typeDefs/loginWithGoogle.graphql deleted file mode 100644 index 99fb567e99a..00000000000 --- a/packages/server/graphql/public/typeDefs/loginWithGoogle.graphql +++ /dev/null @@ -1,26 +0,0 @@ -extend type Mutation { - """ - Sign up or login using Google - """ - loginWithGoogle( - """ - The code provided from the OAuth2 flow - """ - code: ID! - - """ - optional pseudo id created before they were a user - """ - pseudoId: ID - - """ - if present, the user is also joining a team - """ - invitationToken: ID - - """ - query params on the login page, used to maybe add feature flag - """ - params: String! - ): UserLogInPayload! -} diff --git a/packages/server/graphql/public/typeDefs/loginWithMicrosoft.graphql b/packages/server/graphql/public/typeDefs/loginWithMicrosoft.graphql deleted file mode 100644 index 5ec6850562e..00000000000 --- a/packages/server/graphql/public/typeDefs/loginWithMicrosoft.graphql +++ /dev/null @@ -1,26 +0,0 @@ -extend type Mutation { - """ - Sign up or login using Microsoft - """ - loginWithMicrosoft( - """ - The code provided from the OAuth2 flow - """ - code: ID! - - """ - optional pseudo id created before they were a user - """ - pseudoId: ID - - """ - if present, the user is also joining a team - """ - invitationToken: ID - - """ - query params on the login page, used to maybe add feature flag - """ - params: String! - ): UserLogInPayload! -} diff --git a/packages/server/graphql/public/typeDefs/loginWithPassword.graphql b/packages/server/graphql/public/typeDefs/loginWithPassword.graphql deleted file mode 100644 index 8c5c0548842..00000000000 --- a/packages/server/graphql/public/typeDefs/loginWithPassword.graphql +++ /dev/null @@ -1,6 +0,0 @@ -extend type Mutation { - """ - Login using an email address and password - """ - loginWithPassword(email: ID!, password: String!): UserLogInPayload! -} diff --git a/packages/server/graphql/public/typeDefs/modifyCheckInQuestion.graphql b/packages/server/graphql/public/typeDefs/modifyCheckInQuestion.graphql deleted file mode 100644 index 44d4ba066b8..00000000000 --- a/packages/server/graphql/public/typeDefs/modifyCheckInQuestion.graphql +++ /dev/null @@ -1,25 +0,0 @@ -enum ModifyType { - SERIOUS - FUNNY - EXCITING -} - -extend type Mutation { - """ - Describe the mutation here - """ - modifyCheckInQuestion( - meetingId: ID! - checkInQuestion: String! - modifyType: ModifyType! - ): ModifyCheckInQuestionPayload! -} - -""" -Return value for modifyCheckInQuestion, which could be an error -""" -union ModifyCheckInQuestionPayload = ErrorPayload | ModifyCheckInQuestionSuccess - -type ModifyCheckInQuestionSuccess { - modifiedCheckInQuestion: String -} diff --git a/packages/server/graphql/public/typeDefs/persistIntegrationSearchQuery.graphql b/packages/server/graphql/public/typeDefs/persistIntegrationSearchQuery.graphql deleted file mode 100644 index 99addd56f2f..00000000000 --- a/packages/server/graphql/public/typeDefs/persistIntegrationSearchQuery.graphql +++ /dev/null @@ -1,22 +0,0 @@ -extend type Mutation { - persistIntegrationSearchQuery( - teamId: ID! - service: IntegrationProviderServiceEnum! - providerId: ID - jiraServerSearchQuery: JiraServerSearchQueryInput - ): PersistIntegrationSearchQueryPayload! -} - -input JiraServerSearchQueryInput { - queryString: String! - isJQL: Boolean! - projectKeyFilters: [ID!]! -} - -type PersistIntegrationSearchQuerySuccess { - userId: ID - teamId: ID - jiraServerIntegration: JiraServerIntegration -} - -union PersistIntegrationSearchQueryPayload = PersistIntegrationSearchQuerySuccess | ErrorPayload diff --git a/packages/server/graphql/public/typeDefs/removeApprovedOrganizationDomains.graphql b/packages/server/graphql/public/typeDefs/removeApprovedOrganizationDomains.graphql deleted file mode 100644 index 44039d7c1c1..00000000000 --- a/packages/server/graphql/public/typeDefs/removeApprovedOrganizationDomains.graphql +++ /dev/null @@ -1,29 +0,0 @@ -extend type Mutation { - """ - Remove the approved domains for a given organization - """ - removeApprovedOrganizationDomains( - """ - The ID for the organization to remove the restriction from - """ - orgId: ID! - """ - The list of emails and/or domains to unrestrict from the org - """ - emailDomains: [String!]! - ): RemoveApprovedOrganizationDomainsPayload! -} - -""" -Return value for removeApprovedOrganizationDomains, which could be an error -""" -union RemoveApprovedOrganizationDomainsPayload = - | ErrorPayload - | RemoveApprovedOrganizationDomainsSuccess - -type RemoveApprovedOrganizationDomainsSuccess { - """ - The organization with updated restrictions - """ - organization: Organization! -} diff --git a/packages/server/graphql/public/typeDefs/removeIntegrationSearchQuery.graphql b/packages/server/graphql/public/typeDefs/removeIntegrationSearchQuery.graphql deleted file mode 100644 index eb44a8d69be..00000000000 --- a/packages/server/graphql/public/typeDefs/removeIntegrationSearchQuery.graphql +++ /dev/null @@ -1,23 +0,0 @@ -extend type Mutation { - """ - Describe the mutation here - """ - removeIntegrationSearchQuery( - """ - integration search query ID - """ - id: ID! - teamId: ID! - ): RemoveIntegrationSearchQueryPayload! -} - -type RemoveIntegrationSearchQuerySuccess { - userId: ID - teamId: ID - jiraServerIntegration: JiraServerIntegration -} - -""" -Return value for removeIntegrationSearchQuery, which could be an error -""" -union RemoveIntegrationSearchQueryPayload = ErrorPayload | RemoveIntegrationSearchQuerySuccess diff --git a/packages/server/graphql/public/typeDefs/removeTeamMemberIntegrationAuth.graphql b/packages/server/graphql/public/typeDefs/removeTeamMemberIntegrationAuth.graphql deleted file mode 100644 index 17b0548d259..00000000000 --- a/packages/server/graphql/public/typeDefs/removeTeamMemberIntegrationAuth.graphql +++ /dev/null @@ -1,50 +0,0 @@ -extend type Mutation { - """ - Remove the integrated auth for a given team member - """ - removeTeamMemberIntegrationAuth( - """ - The Integration Provider service name related to the token - """ - service: IntegrationProviderServiceEnum! - - """ - The team id related to the token - """ - teamId: ID! - ): RemoveTeamMemberIntegrationAuthPayload! -} - -""" -Return object for RemoveIntegrationProviderPayload -""" -union RemoveIntegrationProviderPayload = ErrorPayload | RemoveIntegrationProviderSuccess - -type RemoveIntegrationProviderSuccess { - """ - The team member with the updated auth - """ - teamMember: TeamMember! - - """ - The user who updated TeamMemberIntegrationAuth object - """ - user: User! -} - -""" -Return object for RemoveTeamMemberIntegrationAuthPayload -""" -union RemoveTeamMemberIntegrationAuthPayload = ErrorPayload | RemoveTeamMemberIntegrationAuthSuccess - -type RemoveTeamMemberIntegrationAuthSuccess { - """ - The team member with the updated auth - """ - teamMember: TeamMember! - - """ - The user who updated TeamMemberIntegrationAuth object - """ - user: User! -} diff --git a/packages/server/graphql/public/typeDefs/requestToJoinDomain.graphql b/packages/server/graphql/public/typeDefs/requestToJoinDomain.graphql deleted file mode 100644 index ee7330ba96d..00000000000 --- a/packages/server/graphql/public/typeDefs/requestToJoinDomain.graphql +++ /dev/null @@ -1,18 +0,0 @@ -extend type Mutation { - """ - Sends the request to the appropriate organizations on the viewer's domain - """ - requestToJoinDomain: RequestToJoinDomainPayload! -} - -""" -Return value for requestToJoinDomain, which could be an error -""" -union RequestToJoinDomainPayload = ErrorPayload | RequestToJoinDomainSuccess - -type RequestToJoinDomainSuccess { - """ - Was the request created successfully - """ - success: Boolean! -} diff --git a/packages/server/graphql/public/typeDefs/resetReflectionGroups.graphql b/packages/server/graphql/public/typeDefs/resetReflectionGroups.graphql deleted file mode 100644 index ff52312ebe5..00000000000 --- a/packages/server/graphql/public/typeDefs/resetReflectionGroups.graphql +++ /dev/null @@ -1,15 +0,0 @@ -extend type Mutation { - """ - Resets the reflection groups to the state they were in before autogrouping - """ - resetReflectionGroups(meetingId: ID!): ResetReflectionGroupsPayload! -} - -""" -Return value for resetReflectionGroups, which could be an error -""" -union ResetReflectionGroupsPayload = ErrorPayload | ResetReflectionGroupsSuccess - -type ResetReflectionGroupsSuccess { - meeting: RetrospectiveMeeting! -} diff --git a/packages/server/graphql/public/typeDefs/revealTeamHealthVotes.graphql b/packages/server/graphql/public/typeDefs/revealTeamHealthVotes.graphql deleted file mode 100644 index 989098c4e38..00000000000 --- a/packages/server/graphql/public/typeDefs/revealTeamHealthVotes.graphql +++ /dev/null @@ -1,11 +0,0 @@ -type RevealTeamHealthVotesSuccess { - meetingId: ID! - stageId: ID! - stage: TeamHealthStage! -} - -union RevealTeamHealthVotesPayload = ErrorPayload | RevealTeamHealthVotesSuccess - -extend type Mutation { - revealTeamHealthVotes(meetingId: ID!, stageId: ID!): RevealTeamHealthVotesPayload! -} diff --git a/packages/server/graphql/public/typeDefs/setMeetingSettings.graphql b/packages/server/graphql/public/typeDefs/setMeetingSettings.graphql deleted file mode 100644 index 63710b1048d..00000000000 --- a/packages/server/graphql/public/typeDefs/setMeetingSettings.graphql +++ /dev/null @@ -1,27 +0,0 @@ -extend type Mutation { - """ - Enabled or disable the icebreaker round - """ - setMeetingSettings( - settingsId: ID! - - """ - true to turn icebreaker phase on, false to turn it off - """ - checkinEnabled: Boolean - - """ - true to turn team health phase on, false to turn it off - """ - teamHealthEnabled: Boolean - - """ - disables anonymity of reflections - """ - disableAnonymity: Boolean - """ - the url of the video meeting, e.g. the Zoom link - """ - videoMeetingURL: String - ): SetMeetingSettingsPayload! -} diff --git a/packages/server/graphql/public/typeDefs/setOrgUserRole.graphql b/packages/server/graphql/public/typeDefs/setOrgUserRole.graphql deleted file mode 100644 index 30f3f46aa31..00000000000 --- a/packages/server/graphql/public/typeDefs/setOrgUserRole.graphql +++ /dev/null @@ -1,24 +0,0 @@ -extend type Mutation { - """ - Update the role of the org user - """ - setOrgUserRole( - orgId: ID! - userId: ID! - """ - The role to set the user to, e.g. billing leader. Null to remove the role - """ - role: OrgUserRole - ): SetOrgUserRolePayload! -} - -""" -Return value for setOrgUserRole, which could be an error -""" -union SetOrgUserRolePayload = ErrorPayload | SetOrgUserRoleSuccess - -type SetOrgUserRoleSuccess { - organization: Organization! - updatedOrgMember: OrganizationUser! - notificationsAdded: [Notification!]! -} diff --git a/packages/server/graphql/public/typeDefs/setTeamHealthVote.graphql b/packages/server/graphql/public/typeDefs/setTeamHealthVote.graphql deleted file mode 100644 index da0ddbd1d9a..00000000000 --- a/packages/server/graphql/public/typeDefs/setTeamHealthVote.graphql +++ /dev/null @@ -1,17 +0,0 @@ -type SetTeamHealthVoteSuccess { - meetingId: ID! - stageId: ID! - stage: TeamHealthStage! -} - -union SetTeamHealthVotePayload = ErrorPayload | SetTeamHealthVoteSuccess - -extend type Mutation { - setTeamHealthVote( - meetingId: ID! - - stageId: ID! - - label: String! - ): SetTeamHealthVotePayload! -} diff --git a/packages/server/graphql/public/typeDefs/shareTopic.graphql b/packages/server/graphql/public/typeDefs/shareTopic.graphql deleted file mode 100644 index 023a0ee0626..00000000000 --- a/packages/server/graphql/public/typeDefs/shareTopic.graphql +++ /dev/null @@ -1,33 +0,0 @@ -extend type Mutation { - """ - Shares retro discussion to integration - """ - shareTopic( - """ - Discussion stage id - """ - stageId: ID! - - """ - meetingId - """ - meetingId: ID! - - """ - Integration channelId - """ - channelId: ID! - ): ShareTopicPayload! -} - -""" -Return value for shareTopic, which could be an error -""" -union ShareTopicPayload = ErrorPayload | ShareTopicSuccess - -type ShareTopicSuccess { - """ - Meeting - """ - meeting: NewMeeting -} diff --git a/packages/server/graphql/public/typeDefs/signUpWithPassword.graphql b/packages/server/graphql/public/typeDefs/signUpWithPassword.graphql deleted file mode 100644 index 19cdc16462a..00000000000 --- a/packages/server/graphql/public/typeDefs/signUpWithPassword.graphql +++ /dev/null @@ -1,24 +0,0 @@ -extend type Mutation { - """ - Sign up using an email address and password - """ - signUpWithPassword( - email: ID! - password: String! - - """ - optional pseudo id created before they were a user - """ - pseudoId: ID - - """ - used to determine what suggested actions to create - """ - invitationToken: ID - - """ - query params on the login page, used to maybe add feature flag - """ - params: String! - ): UserLogInPayload! -} diff --git a/packages/server/graphql/public/typeDefs/startCheckIn.graphql b/packages/server/graphql/public/typeDefs/startCheckIn.graphql deleted file mode 100644 index ba6eb2e8cc9..00000000000 --- a/packages/server/graphql/public/typeDefs/startCheckIn.graphql +++ /dev/null @@ -1,31 +0,0 @@ -""" -Return object for StartCheckInPayload -""" -union StartCheckInPayload = StartCheckInSuccess | ErrorPayload - -type StartCheckInSuccess { - meeting: ActionMeeting! - meetingId: ID! - team: Team! - hasGcalError: Boolean -} - -extend type Mutation { - """ - Start a new meeting - """ - startCheckIn( - """ - The team starting the meeting - """ - teamId: ID! - """ - The name of the meeting - """ - name: String - """ - The gcal input if creating a gcal event - """ - gcalInput: CreateGcalEventInput - ): StartCheckInPayload! -} diff --git a/packages/server/graphql/public/typeDefs/startRetrospective.graphql b/packages/server/graphql/public/typeDefs/startRetrospective.graphql deleted file mode 100644 index 8c60c60d8ef..00000000000 --- a/packages/server/graphql/public/typeDefs/startRetrospective.graphql +++ /dev/null @@ -1,35 +0,0 @@ -extend type Mutation { - """ - Start a new meeting - """ - startRetrospective( - """ - The team starting the meeting - """ - teamId: ID! - """ - Name of the meeting or series - """ - name: String - """ - The recurrence rule for the meeting series in RRULE format - """ - rrule: RRule - """ - The gcal input if creating a gcal event - """ - gcalInput: CreateGcalEventInput - ): StartRetrospectivePayload! -} - -""" -Return object for StartRetrospectivePayload -""" -union StartRetrospectivePayload = ErrorPayload | StartRetrospectiveSuccess - -type StartRetrospectiveSuccess { - meeting: RetrospectiveMeeting! - meetingId: ID! - team: Team! - hasGcalError: Boolean -} diff --git a/packages/server/graphql/public/typeDefs/startTeamPrompt.graphql b/packages/server/graphql/public/typeDefs/startTeamPrompt.graphql deleted file mode 100644 index ea02edf4a2b..00000000000 --- a/packages/server/graphql/public/typeDefs/startTeamPrompt.graphql +++ /dev/null @@ -1,43 +0,0 @@ -extend type Mutation { - """ - Starts a new team prompt meeting - """ - startTeamPrompt( - """ - Id of the team starting the meeting - """ - teamId: ID! - """ - Meeting or series name, by default "Standup" - """ - name: String - """ - The recurrence rule for the meeting series in RRULE format - """ - rrule: RRule - """ - The gcal input if creating a gcal event. If not provided, no gcal event will be created - """ - gcalInput: CreateGcalEventInput - ): StartTeamPromptPayload! -} - -""" -Return value for updateRecurrenceSettings, which could be an error -""" -union StartTeamPromptPayload = StartTeamPromptSuccess | ErrorPayload - -type StartTeamPromptSuccess { - """ - The started meeting - """ - meeting: TeamPromptMeeting! - """ - The team that started the meeting - """ - team: Team! - """ - True if there was an error creating the Google Calendar event. False if there was no error or no gcalInput was provided. - """ - hasGcalError: Boolean -} diff --git a/packages/server/graphql/public/typeDefs/toggleFavoriteTemplate.graphql b/packages/server/graphql/public/typeDefs/toggleFavoriteTemplate.graphql deleted file mode 100644 index 1e046e2becd..00000000000 --- a/packages/server/graphql/public/typeDefs/toggleFavoriteTemplate.graphql +++ /dev/null @@ -1,20 +0,0 @@ -extend type Mutation { - """ - Add or remove the template to the user's favorite templates - """ - toggleFavoriteTemplate( - """ - The ID of the template to be toggled as a favorite - """ - templateId: ID! - ): ToggleFavoriteTemplatePayload! -} - -union ToggleFavoriteTemplatePayload = ErrorPayload | ToggleFavoriteTemplateSuccess - -type ToggleFavoriteTemplateSuccess { - """ - The user who's favorite templates were updated - """ - user: User! -} diff --git a/packages/server/graphql/public/typeDefs/toggleSummaryEmail.graphql b/packages/server/graphql/public/typeDefs/toggleSummaryEmail.graphql deleted file mode 100644 index c38bd2f3e62..00000000000 --- a/packages/server/graphql/public/typeDefs/toggleSummaryEmail.graphql +++ /dev/null @@ -1,18 +0,0 @@ -extend type Mutation { - """ - Toggles the sendSummaryEmail value on the User object which determines whether summary emails are sent to the user - """ - toggleSummaryEmail: ToggleSummaryEmailPayload! -} - -""" -Return value for toggleSummaryEmail, which could be an error -""" -union ToggleSummaryEmailPayload = ErrorPayload | ToggleSummaryEmailSuccess - -type ToggleSummaryEmailSuccess { - """ - The user whose summary email settings have changed - """ - user: User! -} diff --git a/packages/server/graphql/public/typeDefs/updateAutoJoin.graphql b/packages/server/graphql/public/typeDefs/updateAutoJoin.graphql deleted file mode 100644 index 50a4392c593..00000000000 --- a/packages/server/graphql/public/typeDefs/updateAutoJoin.graphql +++ /dev/null @@ -1,27 +0,0 @@ -extend type Mutation { - """ - Update the autoJoin value for a set of teams - """ - updateAutoJoin( - """ - The team ids to update - """ - teamIds: [ID!]! - """ - The new autoJoin value for the teams - """ - autoJoin: Boolean! - ): UpdateAutoJoinPayload! -} - -""" -Return value for updateAutoJoin, which could be an error -""" -union UpdateAutoJoinPayload = ErrorPayload | UpdateAutoJoinSuccess - -type UpdateAutoJoinSuccess { - """ - The teams that were updated - """ - updatedTeams: [Team!]! -} diff --git a/packages/server/graphql/public/typeDefs/updateCreditCard.graphql b/packages/server/graphql/public/typeDefs/updateCreditCard.graphql deleted file mode 100644 index 8b0688ff763..00000000000 --- a/packages/server/graphql/public/typeDefs/updateCreditCard.graphql +++ /dev/null @@ -1,35 +0,0 @@ -extend type Mutation { - """ - Update an org's credit card - """ - updateCreditCard( - """ - The id of the org that is updating their credit card - """ - orgId: ID! - """ - The id of the new payment method from Stripe - """ - paymentMethodId: ID! - ): UpdateCreditCardPayload! -} - -""" -Return value for updateCreditCard, which could be an error -""" -union UpdateCreditCardPayload = ErrorPayload | UpdateCreditCardSuccess - -type UpdateCreditCardSuccess { - """ - The teams that were updated with the new payment method - """ - teamsUpdated: [Team!]! - """ - The org that was updated with the new payment method - """ - organization: Organization! - """ - The client secret from the Stripe subscription. Used for client-side retrieval using a publishable key. - """ - stripeSubscriptionClientSecret: String! -} diff --git a/packages/server/graphql/public/typeDefs/updateFeatureFlag.graphql b/packages/server/graphql/public/typeDefs/updateFeatureFlag.graphql deleted file mode 100644 index f76df918087..00000000000 --- a/packages/server/graphql/public/typeDefs/updateFeatureFlag.graphql +++ /dev/null @@ -1,65 +0,0 @@ -""" -A flag to give an individual user super powers -""" -enum UserFlagEnum { - standups - insights - recurrence - noAISummary - noMeetingHistoryLimit - signUpDestinationTeam -} - -""" -The types of flags that give an individual user super powers -""" -type UserFeatureFlags { - standups: Boolean! - insights: Boolean! - recurrence: Boolean! - noAISummary: Boolean! - noMeetingHistoryLimit: Boolean! - signUpDestinationTeam: Boolean! -} - -extend type Mutation { - """ - Give someone advanced features in a flag - """ - updateFeatureFlag( - """ - a list of the complete or partial email of the person to whom you are giving advanced features. - Matches via a regex to support entire domains - """ - emails: [String!] - - """ - grant access to an entire domain. the part of the email after the @ - """ - domain: String - - """ - the flag that you want to give to the user - """ - flag: UserFlagEnum! - - """ - whether to add or remove the flag - """ - addFlag: Boolean! - ): UpdateFeatureFlagPayload! -} - -type UpdateFeatureFlagPayload { - error: StandardMutationError - - """ - the user that was given the super power. Use users instead in GraphiQL since it may affect multiple users - """ - user: User - - """ - the users given the super power - """ - users: [User] -} diff --git a/packages/server/graphql/public/typeDefs/updateGitLabDimensionField.graphql b/packages/server/graphql/public/typeDefs/updateGitLabDimensionField.graphql deleted file mode 100644 index f2bfc864f1a..00000000000 --- a/packages/server/graphql/public/typeDefs/updateGitLabDimensionField.graphql +++ /dev/null @@ -1,32 +0,0 @@ -extend type Mutation { - """ - Update how a parabol dimension maps to a GitLab label - """ - updateGitLabDimensionField( - """ - The Poker dimension that we're updating, e.g. story points - """ - dimensionName: String! - """ - The template string to map to a label, e.g. __comment - """ - labelTemplate: String! - """ - The meeting the update happend in. Returns a meeting object with updated serviceField. - """ - meetingId: ID! - """ - The id of the project the issue belongs to - """ - projectId: Int! - ): UpdateGitLabDimensionFieldPayload! -} - -union UpdateGitLabDimensionFieldPayload = ErrorPayload | UpdateGitLabDimensionFieldSuccess - -type UpdateGitLabDimensionFieldSuccess { - teamId: ID - meetingId: ID - team: Team - meeting: NewMeeting -} diff --git a/packages/server/graphql/public/typeDefs/updateJiraDimensionField.graphql b/packages/server/graphql/public/typeDefs/updateJiraDimensionField.graphql deleted file mode 100644 index c65dc29fb29..00000000000 --- a/packages/server/graphql/public/typeDefs/updateJiraDimensionField.graphql +++ /dev/null @@ -1,26 +0,0 @@ -extend type Mutation { - """ - Set the jira field that the poker dimension should map to - """ - updateJiraDimensionField( - """ - Id of the parabol task on which the dimension was updated - """ - taskId: ID! - - """ - Dimension name from the template used - """ - dimensionName: String! - - """ - The jira field id that we should push estimates to - """ - fieldId: ID! - - """ - The meeting the update happend in. Returns a meeting object with updated serviceField - """ - meetingId: ID! - ): UpdateDimensionFieldPayload! -} diff --git a/packages/server/graphql/public/typeDefs/updateJiraServerDimensionField.graphql b/packages/server/graphql/public/typeDefs/updateJiraServerDimensionField.graphql deleted file mode 100644 index f5578054750..00000000000 --- a/packages/server/graphql/public/typeDefs/updateJiraServerDimensionField.graphql +++ /dev/null @@ -1,28 +0,0 @@ -extend type Mutation { - """ - Set the JiraServer field that the poker dimension should map to`, - """ - updateJiraServerDimensionField( - dimensionName: String! - - """ - The Jira Server field name that we should push estimates to - """ - fieldName: ID! - - """ - The Jira Server issue type for which to set the dimension - """ - issueType: ID! - - """ - Project id for this setting - """ - projectId: ID! - - """ - The meeting the update happend in. Returns a meeting object with updated serviceField - """ - meetingId: ID! - ): UpdateDimensionFieldPayload! -} diff --git a/packages/server/graphql/public/typeDefs/updateMeetingPrompt.graphql b/packages/server/graphql/public/typeDefs/updateMeetingPrompt.graphql deleted file mode 100644 index fce3ec42515..00000000000 --- a/packages/server/graphql/public/typeDefs/updateMeetingPrompt.graphql +++ /dev/null @@ -1,30 +0,0 @@ -extend type Mutation { - """ - Describe the mutation here - """ - updateMeetingPrompt( - """ - The meeting to update the prompt - """ - meetingId: ID! - - """ - The updated prompt - """ - newPrompt: String! - ): UpdateMeetingPromptPayload! -} - -""" -Return value for updateMeetingPrompt, which could be an error -""" -union UpdateMeetingPromptPayload = UpdateMeetingPromptSuccess | ErrorPayload - -type UpdateMeetingPromptSuccess { - meetingId: ID! - - """ - the updated meeting - """ - meeting: TeamPromptMeeting! -} diff --git a/packages/server/graphql/public/typeDefs/updateMeetingTemplate.graphql b/packages/server/graphql/public/typeDefs/updateMeetingTemplate.graphql deleted file mode 100644 index 1f378e42dbe..00000000000 --- a/packages/server/graphql/public/typeDefs/updateMeetingTemplate.graphql +++ /dev/null @@ -1,27 +0,0 @@ -extend type Mutation { - """ - Update a meeting template - """ - updateMeetingTemplate( - """ - The id of the meeting - """ - meetingId: ID! - """ - The id of the meeting template - """ - templateId: ID! - ): UpdateMeetingTemplatePayload! -} - -""" -Return value for updateMeetingTemplate, which could be an error -""" -union UpdateMeetingTemplatePayload = ErrorPayload | UpdateMeetingTemplateSuccess - -type UpdateMeetingTemplateSuccess { - """ - The updated meeting - """ - meeting: NewMeeting! -} diff --git a/packages/server/graphql/public/typeDefs/updateOrg.graphql b/packages/server/graphql/public/typeDefs/updateOrg.graphql deleted file mode 100644 index 244183bacfc..00000000000 --- a/packages/server/graphql/public/typeDefs/updateOrg.graphql +++ /dev/null @@ -1,32 +0,0 @@ -extend type Mutation { - """ - Update an with a change in name, avatar - """ - updateOrg( - """ - the updated org including the id, and at least one other field - """ - updatedOrg: UpdateOrgInput! - ): UpdateOrgPayload! -} - -type UpdateOrgPayload { - error: StandardMutationError - - """ - The updated org - """ - organization: Organization -} - -input UpdateOrgInput { - """ - The unique action ID - """ - id: ID! - - """ - The name of the org - """ - name: String -} diff --git a/packages/server/graphql/public/typeDefs/updateRecurrenceSettings.graphql b/packages/server/graphql/public/typeDefs/updateRecurrenceSettings.graphql deleted file mode 100644 index fad9895053d..00000000000 --- a/packages/server/graphql/public/typeDefs/updateRecurrenceSettings.graphql +++ /dev/null @@ -1,36 +0,0 @@ -extend type Mutation { - """ - Updates the recurrence settings for a meeting - 1. When the meeting is not recurring, this will start the meeting recurring with the given recurrenceRule - 2. When the meeting is recurring and the provided recurrenceRule is defined, this will update the recurrence rule with the given recurrenceRule - 3. When the meeting is recurring and the provided recurrenceRule is null, this will stop the meeting from recurring - """ - updateRecurrenceSettings( - """ - ID of the meeting to update recurrence settings for - """ - meetingId: ID! - - """ - New meeting series name - """ - name: String - - """ - The recurrence rule for the meeting series in RRULE format - """ - rrule: RRule - ): UpdateRecurrenceSettingsPayload! -} - -""" -Return value for updateRecurrenceSettings, which could be an error -""" -union UpdateRecurrenceSettingsPayload = UpdateRecurrenceSettingsSuccess | ErrorPayload - -type UpdateRecurrenceSettingsSuccess { - """ - The updated meeting - """ - meeting: TeamPromptMeeting! -} diff --git a/packages/server/graphql/public/typeDefs/updateTemplateCategory.graphql b/packages/server/graphql/public/typeDefs/updateTemplateCategory.graphql deleted file mode 100644 index a6a7688f355..00000000000 --- a/packages/server/graphql/public/typeDefs/updateTemplateCategory.graphql +++ /dev/null @@ -1,27 +0,0 @@ -extend type Mutation { - """ - Updates the mainCategory for the given template - """ - updateTemplateCategory( - """ - The ID of the template - """ - templateId: ID! - """ - The new category for the template - """ - mainCategory: String! - ): UpdateTemplateCategoryPayload! -} - -""" -Return value for updateTemplateCategory, which could be an error -""" -union UpdateTemplateCategoryPayload = ErrorPayload | UpdateTemplateCategorySuccess - -type UpdateTemplateCategorySuccess { - """ - The template with the updated mainCategory - """ - template: MeetingTemplate! -} diff --git a/packages/server/graphql/public/typeDefs/updateUserProfile.graphql b/packages/server/graphql/public/typeDefs/updateUserProfile.graphql deleted file mode 100644 index aa8d553ea5e..00000000000 --- a/packages/server/graphql/public/typeDefs/updateUserProfile.graphql +++ /dev/null @@ -1,25 +0,0 @@ -extend type Mutation { - updateUserProfile( - """ - The input object containing the user profile fields that can be changed - """ - updatedUser: UpdateUserProfileInput! - ): UpdateUserProfilePayload -} - -input UpdateUserProfileInput { - """ - The name, as confirmed by the user - """ - preferredName: String -} - -type UpdateUserProfilePayload { - error: StandardMutationError - user: User - - """ - The updated team member - """ - teamMembers: [TeamMember!] -} diff --git a/packages/server/graphql/public/typeDefs/uploadIdPMetadata.graphql b/packages/server/graphql/public/typeDefs/uploadIdPMetadata.graphql deleted file mode 100644 index 346824208d0..00000000000 --- a/packages/server/graphql/public/typeDefs/uploadIdPMetadata.graphql +++ /dev/null @@ -1,22 +0,0 @@ -extend type Mutation { - """ - Upload the IdP Metadata file for an org for those who cannot self-host the file - """ - uploadIdPMetadata( - """ - the XML Metadata file for the IdP - """ - file: File! - - """ - The orgId to upload the IdP Metadata for - """ - orgId: ID! - ): UploadIdPMetadataPayload! -} - -union UploadIdPMetadataPayload = ErrorPayload | UploadIdPMetadataSuccess - -type UploadIdPMetadataSuccess { - url: String! -} diff --git a/packages/server/graphql/public/typeDefs/uploadOrgImage.graphql b/packages/server/graphql/public/typeDefs/uploadOrgImage.graphql deleted file mode 100644 index dc633241fb5..00000000000 --- a/packages/server/graphql/public/typeDefs/uploadOrgImage.graphql +++ /dev/null @@ -1,16 +0,0 @@ -extend type Mutation { - """ - Upload an image for an org avatar - """ - uploadOrgImage( - """ - the org avatar image file - """ - file: File! - - """ - The org id to upload an avatar for - """ - orgId: ID! - ): UpdateOrgPayload! -} diff --git a/packages/server/graphql/public/typeDefs/uploadUserImage.graphql b/packages/server/graphql/public/typeDefs/uploadUserImage.graphql deleted file mode 100644 index 240ddcf14c2..00000000000 --- a/packages/server/graphql/public/typeDefs/uploadUserImage.graphql +++ /dev/null @@ -1,11 +0,0 @@ -extend type Mutation { - """ - Upload an image for a user avatar - """ - uploadUserImage( - """ - the user avatar image file - """ - file: File! - ): UpdateUserProfilePayload -} diff --git a/packages/server/graphql/public/typeDefs/upsertTeamPromptResponse.graphql b/packages/server/graphql/public/typeDefs/upsertTeamPromptResponse.graphql deleted file mode 100644 index 7681dc4cd46..00000000000 --- a/packages/server/graphql/public/typeDefs/upsertTeamPromptResponse.graphql +++ /dev/null @@ -1,37 +0,0 @@ -extend type Mutation { - """ - upsert the content of a team prompt response - """ - upsertTeamPromptResponse( - """ - The id of the team prompt response to upsert - """ - teamPromptResponseId: ID - - """ - The id of the team prompt meeting - """ - meetingId: ID! - - """ - The stringified content of the team prompt response - """ - content: String! - ): UpsertTeamPromptResponsePayload! -} - -type UpsertTeamPromptResponseSuccess { - teamPromptResponseId: ID! - meetingId: ID! - - """ - the created/updated team prompt response - """ - teamPromptResponse: TeamPromptResponse - """ - the updated meeting - """ - meeting: NewMeeting -} - -union UpsertTeamPromptResponsePayload = UpsertTeamPromptResponseSuccess | ErrorPayload diff --git a/packages/server/graphql/public/typeDefs/verifyEmail.graphql b/packages/server/graphql/public/typeDefs/verifyEmail.graphql deleted file mode 100644 index 59a5ac3f683..00000000000 --- a/packages/server/graphql/public/typeDefs/verifyEmail.graphql +++ /dev/null @@ -1,11 +0,0 @@ -extend type Mutation { - """ - Verify an email address and sign in if not already a user - """ - verifyEmail( - """ - The 48-byte url-safe base64 encoded verification token - """ - verificationToken: ID! - ): UserLogInPayload! -}