export type Maybe = T | null; export type InputMaybe = Maybe; export type Exact = { [K in keyof T]: T[K]; }; export type MakeOptional = Omit & { [SubKey in K]?: Maybe; }; export type MakeMaybe = Omit & { [SubKey in K]: Maybe; }; export type MakeEmpty = { [_ in K]?: never; }; export type Incremental = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never; }; /** All built-in and custom scalars, mapped to their actual values */ export type Scalars = { ID: { input: string; output: string; }; String: { input: string; output: string; }; Boolean: { input: boolean; output: boolean; }; Int: { input: number; output: number; }; Float: { input: number; output: number; }; BigInt: { input: string; output: string; }; /** ISO 8601 date-time string */ DateTime: { input: string; output: string; }; Decimal: { input: string; output: string; }; /** Arbitrary JSON data */ JSON: { input: Record; output: Record; }; JSONObject: { input: Record; output: Record; }; Upload: { input: File; output: File; }; _SubscriptionsPlaceholder: { input: any; output: any; }; }; /** API Key for programmatic access */ export type ApiKey = { __typename?: 'APIKey'; appId: Scalars['String']['output']; appName?: Maybe; createdAt: Scalars['DateTime']['output']; expiresAt?: Maybe; id: Scalars['ID']['output']; lastUsedAt?: Maybe; name: Scalars['String']['output']; prefix: Scalars['String']['output']; scopes: Array; }; /** Paginated list of API keys */ export type ApiKeyConnection = { __typename?: 'APIKeyConnection'; apiKeys: Array; hasMore: Scalars['Boolean']['output']; totalCount: Scalars['Int']['output']; }; export type ApiKeyInput = { apiKey: Scalars['String']['input']; apiSecret: Scalars['String']['input']; }; export type ApiKeyResult = { __typename?: 'APIKeyResult'; apiKey: Scalars['String']['output']; apiSecret: Scalars['String']['output']; keyId: Scalars['String']['output']; }; export type ApiKeyRotateResult = { __typename?: 'APIKeyRotateResult'; apiSecret: Scalars['String']['output']; }; /** Result for account actions (deactivate/delete) */ export type AccountActionResult = { __typename?: 'AccountActionResult'; message: Scalars['String']['output']; success: Scalars['Boolean']['output']; }; /** Action check count for analytics */ export type ActionCount = { __typename?: 'ActionCount'; action: Scalars['String']['output']; count: Scalars['Int']['output']; resourceType: Scalars['String']['output']; }; /** Action definition - what actions exist per resource type */ export type ActionDefinition = { __typename?: 'ActionDefinition'; action: Scalars['String']['output']; /** ADMIN role level includes this action by default */ adminDefault: Scalars['Boolean']['output']; createdAt: Scalars['DateTime']['output']; description?: Maybe; /** EDITOR role level includes this action by default */ editorDefault: Scalars['Boolean']['output']; id: Scalars['ID']['output']; isSystem: Scalars['Boolean']['output']; resourceType: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; /** VIEWER role level includes this action by default */ viewerDefault: Scalars['Boolean']['output']; }; export type ActivateLicenseInput = { deviceId: Scalars['String']['input']; deviceName?: InputMaybe; ipAddress?: InputMaybe; licenseKey: Scalars['String']['input']; platform?: InputMaybe; userAgent?: InputMaybe; }; /** Result of activating a subscription's workspace-scoped quotas. */ export type ActivateSubscriptionForWorkspaceResult = { __typename?: 'ActivateSubscriptionForWorkspaceResult'; assignedQuotas: Scalars['Int']['output']; skippedQuotas: Scalars['Int']['output']; workspaceId: Scalars['ID']['output']; }; /** Result of activating a subscription's workspace-scoped quotas against multiple workspaces at once. */ export type ActivateSubscriptionForWorkspacesResult = { __typename?: 'ActivateSubscriptionForWorkspacesResult'; /** Every workspace now activated for this subscription (including ones activated by an earlier call) — the full, authoritative set. */ activatedWorkspaceIds: Array; results: Array; subscriptionId: Scalars['ID']['output']; }; export declare enum ActivityAction { Create = "CREATE", Delete = "DELETE", Execute = "EXECUTE", Export = "EXPORT", Import = "IMPORT", List = "LIST", Read = "READ", Update = "UPDATE" } export type ActivityFilterInput = { action?: InputMaybe; actorId?: InputMaybe; endDate?: InputMaybe; resource?: InputMaybe; resourceId?: InputMaybe; resourceType?: InputMaybe; startDate?: InputMaybe; tenantId?: InputMaybe; userId?: InputMaybe; workspaceId?: InputMaybe; }; export type ActivityLog = { __typename?: 'ActivityLog'; action: Scalars['String']['output']; actorId?: Maybe; createdAt: Scalars['DateTime']['output']; description?: Maybe; id: Scalars['ID']['output']; ipAddress?: Maybe; metadata?: Maybe; resource: Scalars['String']['output']; resourceId?: Maybe; resourceType?: Maybe; tenantId?: Maybe; userAgent?: Maybe; userId?: Maybe; workspaceId?: Maybe; }; export type ActivityLogConnection = { __typename?: 'ActivityLogConnection'; hasMore: Scalars['Boolean']['output']; nodes: Array; totalCount: Scalars['Int']['output']; }; /** Actor activity count for analytics */ export type ActorCount = { __typename?: 'ActorCount'; actorId: Scalars['String']['output']; actorType: ActorType; count: Scalars['Int']['output']; }; /** Filter for querying actors */ export type ActorFilterInput = { actorType?: InputMaybe; hasOverrides?: InputMaybe; roleId?: InputMaybe; }; /** Actor RBAC summary - shows an actor's full RBAC profile in a scope */ export type ActorRbacSummary = { __typename?: 'ActorRbacSummary'; actorId: Scalars['String']['output']; actorType: ActorType; /** Total number of effective permissions */ effectivePermissionCount: Scalars['Int']['output']; /** Permission overrides for this actor */ permissionOverrides: Array; /** Roles assigned to this actor */ roleAssignments: Array; scopeId: Scalars['String']['output']; }; /** Actor's role assignment in a scope */ export type ActorRoleAssignment = { __typename?: 'ActorRoleAssignment'; actorId: Scalars['String']['output']; actorType: ActorType; assignedAt: Scalars['DateTime']['output']; assignedBy?: Maybe; createdAt: Scalars['DateTime']['output']; createdBy: Scalars['String']['output']; delegatedBy?: Maybe; expiresAt?: Maybe; id: Scalars['ID']['output']; isActive: Scalars['Boolean']['output']; onBehalfOf?: Maybe; /** The role assigned */ role: Role; roleId: Scalars['String']['output']; scopeId: Scalars['String']['output']; /** Optional: Scope role to specific resource instance */ scopeResourceId?: Maybe; /** Optional: Scope role to specific resource type */ scopeResourceType?: Maybe; }; /** Actor types - actors are created in auth-svc, RBAC just references opaque IDs */ export declare enum ActorType { /** Automated bot (workflow, AI assistant) */ Bot = "BOT", /** Service acting on behalf of user */ DelegatedAgent = "DELEGATED_AGENT", /** External API integration (Zapier, etc.) */ Integration = "INTEGRATION", /** Human user */ User = "USER" } /** Specific adapter/provider type for each ChannelPlatform. ChannelPlatform = High-level category (EMAIL, SMS, PUSH, etc.) AdapterType = Specific provider implementation Currently supported adapters (must match Prisma schema): EMAIL: AWS_SES, AZURE_ACS SMS: AWS_SNS, TWILIO_SMS WHATSAPP: WHATSAPP_CLOUD, WHATSAPP_TWILIO SLACK: SLACK_BOT TEAMS: TEAMS_BOT DISCORD: DISCORD_BOT PUSH: FCM INAPP: INAPP_NATIVE WEBHOOK: WEBHOOK_HTTP */ export declare enum AdapterType { /** Amazon Simple Email Service */ AwsSes = "AWS_SES", /** Amazon SNS */ AwsSns = "AWS_SNS", /** Azure Communication Services Email */ AzureAcs = "AZURE_ACS", /** Discord Bot API */ DiscordBot = "DISCORD_BOT", /** Firebase Cloud Messaging (Android + iOS + Web) */ Fcm = "FCM", /** Native Burdenoff In-App Notifications */ InappNative = "INAPP_NATIVE", /** Slack Bot API */ SlackBot = "SLACK_BOT", /** Microsoft Teams Bot */ TeamsBot = "TEAMS_BOT", /** Twilio SMS */ TwilioSms = "TWILIO_SMS", /** Generic HTTP Webhook */ WebhookHttp = "WEBHOOK_HTTP", /** WhatsApp Cloud API (Meta) */ WhatsappCloud = "WHATSAPP_CLOUD", /** WhatsApp via Twilio */ WhatsappTwilio = "WHATSAPP_TWILIO" } export type AddAffiliateCodeNoteInput = { body: Scalars['String']['input']; codeId: Scalars['ID']['input']; }; /** Input for adding a fulfillment tracking event */ export type AddFulfillmentTrackingEventInput = { carrierEvent?: InputMaybe; description?: InputMaybe; fulfillmentId: Scalars['String']['input']; location?: InputMaybe; occurredAt?: InputMaybe; status: FulfillmentStatus; }; export type AddOnInputPayment = { id: Scalars['String']['input']; quantity?: InputMaybe; }; /** Input for adding a member to an organization */ export type AddOrganizationMemberInput = { organizationId: Scalars['String']['input']; role?: InputMaybe; userId: Scalars['String']['input']; }; export type AddPaymentMethodInput = { accountDetails: Scalars['JSON']['input']; country?: InputMaybe; currency?: InputMaybe; isDefault?: InputMaybe; name: Scalars['String']['input']; type: DevPortalPaymentMethodType; }; export type AddPayoutAccountInput = { accountHolderName: Scalars['String']['input']; accountNumber?: InputMaybe; bankName?: InputMaybe; billingAccountId: Scalars['ID']['input']; country?: InputMaybe; currency: Scalars['String']['input']; iban?: InputMaybe; ifsc?: InputMaybe; label: Scalars['String']['input']; metadata?: InputMaybe; providerPreference?: InputMaybe; routingNumber?: InputMaybe; swift?: InputMaybe; type: PayoutAccountType; upiId?: InputMaybe; walletHandle?: InputMaybe; walletProvider?: InputMaybe; }; export type AddPayoutMethodInput = { externalAccountId?: InputMaybe; isDefault?: InputMaybe; publisherId: Scalars['ID']['input']; type: PayoutMethodType; }; export type AddSuppressionInput = { email: Scalars['String']['input']; metadata?: InputMaybe; platformProductId: Scalars['String']['input']; reason: Scalars['String']['input']; source?: InputMaybe; }; export type AddTagToApplicationInput = { applicationId: Scalars['ID']['input']; metadata?: InputMaybe; source?: InputMaybe; tagId: Scalars['ID']['input']; validFrom?: InputMaybe; validTo?: InputMaybe; }; export type AddTenantMemberInput = { role?: InputMaybe; tenantId: Scalars['ID']['input']; userId: Scalars['ID']['input']; }; /** Input for adding an item to cart */ export type AddToCartInput = { /** Product ID to add */ productId: Scalars['String']['input']; /** Quantity to add (defaults to 1) */ quantity?: InputMaybe; /** Variant ID (required for physical products with variants) */ variantId?: InputMaybe; /** Target workspace for installation (for digital products) */ workspaceId?: InputMaybe; }; /** Input for adding a member to a workspace */ export type AddWorkspaceMemberInput = { role?: InputMaybe; userId: Scalars['String']['input']; workspaceId: Scalars['String']['input']; }; export type Addon = { __typename?: 'Addon'; /** A list of addon subscriptions linked to this addon. */ addonSubscriptions?: Maybe>>; /** Additional context */ context?: Maybe; /** The timestamp when the addon was created. */ createdAt?: Maybe; /** The currency in which the addon is priced. Defaults to 'USD'. */ currency?: Maybe; /** Prices for all supported currencies with beautiful rounding. Example: { "USD": 2.00, "INR": 199, "EUR": 1.99, "GBP": 1.79 } */ currencyPrices?: Maybe; /** The duration for which the addon is valid (e.g., monthly, yearly). Defaults to 'monthly'. */ duration?: Maybe; /** A list of features provided by this addon, such as extra quotas or special services. */ features?: Maybe>>; /** Geography-specific price overrides. The billing account's country/state/region plus currency decide whether one of these overrides applies. */ geoPricingOverrides: Array; /** The unique identifier for the Addon, automatically generated as a UUID. */ id?: Maybe; /** Indicates whether the addon is currently active. */ isActive?: Maybe; /** The name of the addon (e.g., 'Extra Bots', 'Additional Storage'). */ name?: Maybe; /** Apple App Store / Google Play SKU for this addon. */ nativeProductId?: Maybe; /** The price of the addon. */ price?: Maybe; /** Historical record of price changes for this addon */ priceHistory: Array; /** Product ID the addon belongs to (reference to product microservice) */ productID?: Maybe; /** The timestamp when the addon was last updated. */ updatedAt?: Maybe; }; /** Tracks historical price changes for an Addon. A new record is created whenever an addon's price is updated. */ export type AddonPriceHistory = { __typename?: 'AddonPriceHistory'; /** The addon this price change belongs to */ addonId: Scalars['String']['output']; /** Who made the price change (actor ID) */ changedBy?: Maybe; /** When the price change was recorded */ createdAt: Scalars['DateTime']['output']; /** The currency of the price change */ currency: Scalars['String']['output']; /** Unique identifier */ id: Scalars['ID']['output']; /** The new price after the change */ newPrice: Scalars['Float']['output']; /** The previous price before the change */ oldPrice: Scalars['Float']['output']; /** Optional reason for the price change */ reason?: Maybe; }; export type AddonSubscription = { __typename?: 'AddonSubscription'; /** The addon linked to this subscription. */ addon?: Maybe; /** The unique identifier for the addon. */ addonId?: Maybe; /** Additional context */ context?: Maybe; /** The timestamp when the addon subscription was created. */ createdAt?: Maybe; /** The current active subscription linked to this addon subscription. This is updated when a new subscription is bought. */ currentSubscription?: Maybe; /** The unique identifier for the current active subscription. */ currentSubscriptionId?: Maybe; /** The end date of the addon subscription. */ endDate?: Maybe; /** The unique identifier for the AddonSubscription, automatically generated as a UUID. */ id?: Maybe; /** The quantity of the addon subscribed to. */ quantity?: Maybe; /** The start date of the addon subscription. */ startDate?: Maybe; /** The timestamp when the addon subscription was last updated. */ updatedAt?: Maybe; }; export type AddonsFilter = { /** Include free addons (price = 0) in the response. Defaults to true. Set to false on user-facing browse pages since free addons are auto-assigned and cannot be purchased. */ includeFree?: InputMaybe; /** Filter addons by product ID. When set, only addons with this productID are returned. */ productId?: InputMaybe; }; export type AdjustInventoryInput = { delta: Scalars['Int']['input']; notes?: InputMaybe; productId: Scalars['ID']['input']; reason: InventoryAdjustmentReason; variantId?: InputMaybe; }; /** Input for admin updating user (includes role and status) */ export type AdminUpdateUserInput = { emailVerified?: InputMaybe; firstName?: InputMaybe; language?: InputMaybe; lastName?: InputMaybe; name?: InputMaybe; phoneNumber?: InputMaybe; role?: InputMaybe; status?: InputMaybe; timezone?: InputMaybe; username?: InputMaybe; }; export type AffiliateAdminAnalytics = { __typename?: 'AffiliateAdminAnalytics'; geographyBreakdown: Array; modeBreakdown: Array; topAffiliates: Array; totalCodes: Scalars['Int']['output']; totalJourneys: Scalars['Int']['output']; totalPaidConversions: Scalars['Int']['output']; totalRevenueAmount: Scalars['Float']['output']; totalRewardAmount: Scalars['Float']['output']; totalSignups: Scalars['Int']['output']; totalStorePurchases: Scalars['Int']['output']; totalVisits: Scalars['Int']['output']; }; export type AffiliateAnalyticsFilterInput = { endDate?: InputMaybe; geographyCountry?: InputMaybe; mode?: InputMaybe; productSlug?: InputMaybe; startDate?: InputMaybe; }; export type AffiliateCode = { __typename?: 'AffiliateCode'; code: Scalars['String']['output']; createdAt: Scalars['DateTime']['output']; description?: Maybe; destinationUrl?: Maybe; id: Scalars['ID']['output']; isActive: Scalars['Boolean']['output']; label?: Maybe; metadata?: Maybe; notes: Array; ownerUserId: Scalars['String']['output']; paidConversions: Scalars['Int']['output']; productSlug?: Maybe; revenueAmount: Scalars['Float']['output']; rewardAmount: Scalars['Float']['output']; signups: Scalars['Int']['output']; storePurchases: Scalars['Int']['output']; tenantId?: Maybe; updatedAt: Scalars['DateTime']['output']; visits: Scalars['Int']['output']; }; export type AffiliateCodeAnalytics = { __typename?: 'AffiliateCodeAnalytics'; codeId: Scalars['ID']['output']; codeValue: Scalars['String']['output']; conversionRate: Scalars['Float']['output']; paidConversions: Scalars['Int']['output']; revenueAmount: Scalars['Float']['output']; rewardAmount: Scalars['Float']['output']; signups: Scalars['Int']['output']; storePurchases: Scalars['Int']['output']; topCountries: Array; topModes: Array; uniqueJourneys: Scalars['Int']['output']; visits: Scalars['Int']['output']; }; export type AffiliateCodeConnection = { __typename?: 'AffiliateCodeConnection'; hasMore: Scalars['Boolean']['output']; items: Array; totalCount: Scalars['Int']['output']; }; export type AffiliateCodeFilterInput = { isActive?: InputMaybe; ownerUserId?: InputMaybe; productSlug?: InputMaybe; search?: InputMaybe; }; export type AffiliateCodeLookup = { __typename?: 'AffiliateCodeLookup'; code: Scalars['String']['output']; destinationUrl?: Maybe; id: Scalars['ID']['output']; isActive: Scalars['Boolean']['output']; productSlug?: Maybe; }; export type AffiliateCodeNote = { __typename?: 'AffiliateCodeNote'; authorId: Scalars['String']['output']; authorType: Scalars['String']['output']; body: Scalars['String']['output']; codeId: Scalars['ID']['output']; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; }; export type AffiliateGeographyRow = { __typename?: 'AffiliateGeographyRow'; conversions: Scalars['Int']['output']; country: Scalars['String']['output']; visits: Scalars['Int']['output']; }; export type AffiliateJourney = { __typename?: 'AffiliateJourney'; codeId: Scalars['ID']['output']; codeValue: Scalars['String']['output']; currentPath?: Maybe; geographyCountry?: Maybe; id: Scalars['ID']['output']; identifiedUserId?: Maybe; lastVisitedAt: Scalars['DateTime']['output']; mode?: Maybe; productSlug?: Maybe; status: Scalars['String']['output']; }; export type AffiliateJourneyConnection = { __typename?: 'AffiliateJourneyConnection'; hasMore: Scalars['Boolean']['output']; items: Array; totalCount: Scalars['Int']['output']; }; export type AffiliateJourneyEvent = { __typename?: 'AffiliateJourneyEvent'; currency?: Maybe; id: Scalars['ID']['output']; journeyId: Scalars['ID']['output']; metadata?: Maybe; occurredAt: Scalars['DateTime']['output']; type: Scalars['String']['output']; valueAmount?: Maybe; }; export type AffiliateJourneyFilterInput = { codeId?: InputMaybe; endDate?: InputMaybe; geographyCountry?: InputMaybe; identifiedUserId?: InputMaybe; mode?: InputMaybe; productSlug?: InputMaybe; startDate?: InputMaybe; status?: InputMaybe; }; export type AffiliateModeRow = { __typename?: 'AffiliateModeRow'; conversions: Scalars['Int']['output']; mode: Scalars['String']['output']; visits: Scalars['Int']['output']; }; export type AffiliateTopRow = { __typename?: 'AffiliateTopRow'; codeId: Scalars['ID']['output']; codeValue: Scalars['String']['output']; ownerUserId: Scalars['String']['output']; paidConversions: Scalars['Int']['output']; revenueAmount: Scalars['Float']['output']; rewardAmount: Scalars['Float']['output']; signups: Scalars['Int']['output']; storePurchases: Scalars['Int']['output']; visits: Scalars['Int']['output']; }; export type AffiliateTrackResult = { __typename?: 'AffiliateTrackResult'; codeId?: Maybe; journeyId: Scalars['String']['output']; recorded: Scalars['Boolean']['output']; }; export type AgentAvailability = { __typename?: 'AgentAvailability'; agentsBySkill: Array; availableCapacity: Scalars['Int']['output']; awayAgents: Scalars['Int']['output']; offlineAgents: Scalars['Int']['output']; onlineAgents: Scalars['Int']['output']; totalAgents: Scalars['Int']['output']; }; export type AgentLeaderboard = { __typename?: 'AgentLeaderboard'; agents: Array; period: TimePeriod; }; export type AgentPerformance = { __typename?: 'AgentPerformance'; agent: AgentProfile; agentId: Scalars['String']['output']; averageFirstResponseMinutes?: Maybe; averageRating?: Maybe; averageResolutionMinutes?: Maybe; endDate: Scalars['DateTime']['output']; internalNotesCount: Scalars['Int']['output']; messagesCount: Scalars['Int']['output']; period: TimePeriod; slaComplianceRate: Scalars['Float']['output']; startDate: Scalars['DateTime']['output']; ticketsAssigned: Scalars['Int']['output']; ticketsClosed: Scalars['Int']['output']; ticketsResolved: Scalars['Int']['output']; totalRatings: Scalars['Int']['output']; }; export type AgentPerformanceFilterInput = { agentId: Scalars['String']['input']; endDate?: InputMaybe; period?: InputMaybe; startDate?: InputMaybe; }; export type AgentProfile = { __typename?: 'AgentProfile'; autoAssign: Scalars['Boolean']['output']; availableCapacity: Scalars['Int']['output']; context?: Maybe; createdAt: Scalars['DateTime']['output']; currentChats: Scalars['Int']['output']; currentTickets: Scalars['Int']['output']; /** Anonymized display alias surfaced to end-users in support conversations. Stable per agent (deterministic-on-first-use) so the same agent always shows the same alias to a given user. Real userId / user are admin-only. */ displayAlias?: Maybe; id: Scalars['ID']['output']; isAvailable: Scalars['Boolean']['output']; lastActiveAt?: Maybe; maxChats: Scalars['Int']['output']; maxTickets: Scalars['Int']['output']; skills: Array; status: AgentStatus; statusMessage?: Maybe; teams: Array; tenantId?: Maybe; timezone: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; user: User; userId: Scalars['String']['output']; workingHours?: Maybe; }; export type AgentProfileConnection = { __typename?: 'AgentProfileConnection'; hasMore: Scalars['Boolean']['output']; nodes: Array; totalCount: Scalars['Int']['output']; }; export type AgentProfileFilterInput = { autoAssign?: InputMaybe; context?: InputMaybe; isAvailable?: InputMaybe; skills?: InputMaybe>; status?: InputMaybe; teams?: InputMaybe>; }; export type AgentRanking = { __typename?: 'AgentRanking'; agent: AgentProfile; agentId: Scalars['String']['output']; averageRating?: Maybe; rank: Scalars['Int']['output']; score: Scalars['Float']['output']; slaComplianceRate: Scalars['Float']['output']; ticketsResolved: Scalars['Int']['output']; }; export type AgentSkillCount = { __typename?: 'AgentSkillCount'; count: Scalars['Int']['output']; onlineCount: Scalars['Int']['output']; skill: Scalars['String']['output']; }; export declare enum AgentStatus { Away = "AWAY", Offline = "OFFLINE", Online = "ONLINE" } /** Per-model LLM token prices (USD per 1M tokens) used to weight AI-credit charges. */ export type AiModelPrice = { __typename?: 'AiModelPrice'; inputPer1M: Scalars['Float']['output']; isActive: Scalars['Boolean']['output']; model: Scalars['String']['output']; outputPer1M: Scalars['Float']['output']; }; /** Amount range filter for queries */ export type AmountRangeInput = { /** Maximum amount (inclusive) */ max?: InputMaybe; /** Minimum amount (inclusive) */ min?: InputMaybe; }; /** Input for analytics date range */ export type AnalyticsDateRangeInput = { endDate: Scalars['DateTime']['input']; startDate: Scalars['DateTime']['input']; }; export type AnalyticsFilterInput = { endDate?: InputMaybe; groupBy?: InputMaybe; period?: InputMaybe; startDate?: InputMaybe; workspaceId?: InputMaybe; }; export declare enum AnalyticsPeriod { CurrentMonth = "CURRENT_MONTH", Last_7Days = "LAST_7_DAYS", Last_30Days = "LAST_30_DAYS", Last_90Days = "LAST_90_DAYS", LastMonth = "LAST_MONTH" } export type App = { __typename?: 'App'; actorType: Scalars['String']['output']; clientId: Scalars['String']['output']; createdAt: Scalars['DateTime']['output']; delegations: Array; description?: Maybe; id: Scalars['ID']['output']; name: Scalars['String']['output']; ownerUserId: Scalars['String']['output']; redirectUris: Array; scopes: Array; status: AppStatus; tenantId?: Maybe; type: AppType; updatedAt: Scalars['DateTime']['output']; }; export type AppAsUserTokenResponse = { __typename?: 'AppAsUserTokenResponse'; accessToken: Scalars['String']['output']; allowedWorkspaceIds: Array; delegationId: Scalars['String']['output']; expiresIn: Scalars['Int']['output']; scopes: Array; tokenType: Scalars['String']['output']; }; /** App Collection - curated collection of applications */ export type AppCollection = { __typename?: 'AppCollection'; appIds: Array; bannerUrl?: Maybe; collectionType: Scalars['String']['output']; context?: Maybe; createdAt: Scalars['DateTime']['output']; curatedBy?: Maybe; description?: Maybe; displayOrder: Scalars['Int']['output']; endsAt?: Maybe; iconUrl?: Maybe; id: Scalars['ID']['output']; isActive: Scalars['Boolean']['output']; isFeatured: Scalars['Boolean']['output']; metadata?: Maybe; name: Scalars['String']['output']; slug: Scalars['String']['output']; startsAt?: Maybe; updatedAt: Scalars['DateTime']['output']; }; export type AppCollectionConnection = { __typename?: 'AppCollectionConnection'; edges: Array; pageInfo: PageInfo; totalCount: Scalars['Int']['output']; }; export type AppCollectionEdge = { __typename?: 'AppCollectionEdge'; cursor: Scalars['String']['output']; node: AppCollection; }; export type AppConnection = { __typename?: 'AppConnection'; apps: Array; hasMore: Scalars['Boolean']['output']; totalCount: Scalars['Int']['output']; }; export type AppCreateResponse = { __typename?: 'AppCreateResponse'; app: App; clientSecret: Scalars['String']['output']; }; export type AppInstallation = { __typename?: 'AppInstallation'; activatedAt?: Maybe; apiCallsCount: Scalars['String']['output']; application: Application; applicationId: Scalars['ID']['output']; autoUpdate: Scalars['Boolean']['output']; config?: Maybe; consentedAt?: Maybe; consentedPermissions: Array; context?: Maybe; createdAt: Scalars['DateTime']['output']; currentVersion: Scalars['String']['output']; delegationId?: Maybe; id: Scalars['ID']['output']; installedAt: Scalars['DateTime']['output']; installedBy: Scalars['ID']['output']; installedVersion: Scalars['String']['output']; integrationConnectionId?: Maybe; isTrialActive: Scalars['Boolean']['output']; lastUpdatedAt?: Maybe; lastUsedAt?: Maybe; licenseKey?: Maybe; metadata?: Maybe; oauthClientId?: Maybe; oauthTokenId?: Maybe; organizationId?: Maybe; saleId?: Maybe; scope: InstallationScope; status: InstallationStatus; statusReason?: Maybe; subscriptionId?: Maybe; suspendedAt?: Maybe; tenantId: Scalars['ID']['output']; trialExpiresAt?: Maybe; trialStartedAt?: Maybe; uninstallFeedback?: Maybe; uninstallReason?: Maybe; uninstalledAt?: Maybe; updatedAt: Scalars['DateTime']['output']; usageCount: Scalars['Int']['output']; userId?: Maybe; workspaceId?: Maybe; }; export type AppInstallationConnection = { __typename?: 'AppInstallationConnection'; edges: Array; pageInfo: PageInfo; totalCount: Scalars['Int']['output']; }; export type AppInstallationEdge = { __typename?: 'AppInstallationEdge'; cursor: Scalars['String']['output']; node: AppInstallation; }; /** App Installation - tracks where an application is installed */ export type AppLicense = { __typename?: 'AppLicense'; applicationId: Scalars['ID']['output']; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; updatedAt: Scalars['DateTime']['output']; workspaceCap?: Maybe; }; /** Returned by initiateAppOAuth — contains the URL to redirect the user to so they can authorize the app on the developer's OAuth page. */ export type AppOAuthInitiation = { __typename?: 'AppOAuthInitiation'; connectionId: Scalars['String']['output']; installationId: Scalars['String']['output']; redirectUrl: Scalars['String']['output']; state: Scalars['String']['output']; }; export declare enum AppOwnerStatus { Active = "ACTIVE", Inactive = "INACTIVE" } /** App rating distribution breakdown */ export type AppRatingDistribution = { __typename?: 'AppRatingDistribution'; fiveStar: Scalars['Int']['output']; fourStar: Scalars['Int']['output']; oneStar: Scalars['Int']['output']; threeStar: Scalars['Int']['output']; twoStar: Scalars['Int']['output']; }; /** Per-app revenue summary */ export type AppRevenueSummary = { __typename?: 'AppRevenueSummary'; applicationId: Scalars['ID']['output']; applicationName: Scalars['String']['output']; /** Same currency as the parent RevenueSummary — see its doc comment. */ currency: Scalars['String']['output']; grossRevenue: Scalars['Float']['output']; netRevenue: Scalars['Float']['output']; salesCount: Scalars['Int']['output']; }; /** App Review - user review and rating for an application */ export type AppReview = { __typename?: 'AppReview'; appVersion?: Maybe; application: Application; applicationId: Scalars['ID']['output']; body?: Maybe; context?: Maybe; createdAt: Scalars['DateTime']['output']; developerResponse?: Maybe; editCount: Scalars['Int']['output']; editedAt?: Maybe; featuredAt?: Maybe; helpfulCount: Scalars['Int']['output']; id: Scalars['ID']['output']; installationId?: Maybe; isEdited: Scalars['Boolean']['output']; isFeatured: Scalars['Boolean']['output']; isVerifiedInstall: Scalars['Boolean']['output']; isVerifiedPurchase: Scalars['Boolean']['output']; metadata?: Maybe; moderatedAt?: Maybe; moderatedBy?: Maybe; moderationNote?: Maybe; notHelpfulCount: Scalars['Int']['output']; rating: Scalars['Int']['output']; rejectionReason?: Maybe; reportCount: Scalars['Int']['output']; respondedAt?: Maybe; respondedBy?: Maybe; status: AppReviewStatus; tenantId?: Maybe; title?: Maybe; updatedAt: Scalars['DateTime']['output']; userId: Scalars['ID']['output']; }; export type AppReviewConnection = { __typename?: 'AppReviewConnection'; edges: Array; pageInfo: PageInfo; totalCount: Scalars['Int']['output']; }; export type AppReviewEdge = { __typename?: 'AppReviewEdge'; cursor: Scalars['String']['output']; node: AppReview; }; /** App Review Report - abuse reporting */ export type AppReviewReport = { __typename?: 'AppReviewReport'; actionTaken?: Maybe; context?: Maybe; createdAt: Scalars['DateTime']['output']; details?: Maybe; id: Scalars['ID']['output']; reason: Scalars['String']['output']; reportedBy: Scalars['ID']['output']; reviewId: Scalars['ID']['output']; reviewedAt?: Maybe; reviewedBy?: Maybe; status: Scalars['String']['output']; }; export declare enum AppReviewStatus { Approved = "APPROVED", Flagged = "FLAGGED", Hidden = "HIDDEN", Pending = "PENDING", Rejected = "REJECTED" } /** App Review Vote - helpful/not helpful voting */ export type AppReviewVote = { __typename?: 'AppReviewVote'; context?: Maybe; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; isHelpful: Scalars['Boolean']['output']; reviewId: Scalars['ID']['output']; userId: Scalars['ID']['output']; }; export declare enum AppStatus { Active = "ACTIVE", Approved = "APPROVED", Deprecated = "DEPRECATED", Draft = "DRAFT", Inactive = "INACTIVE", InReview = "IN_REVIEW", Published = "PUBLISHED", Rejected = "REJECTED", Revoked = "REVOKED", Submitted = "SUBMITTED", Suspended = "SUSPENDED", Unlisted = "UNLISTED" } export declare enum AppSubmissionReviewStatus { Approved = "APPROVED", ChangesRequested = "CHANGES_REQUESTED", InProgress = "IN_PROGRESS", Pending = "PENDING", Rejected = "REJECTED" } export type AppTokenResponse = { __typename?: 'AppTokenResponse'; accessToken: Scalars['String']['output']; expiresIn: Scalars['Int']['output']; scopes: Array; tokenType: Scalars['String']['output']; }; export declare enum AppType { Analyst = "ANALYST", ApiIntegration = "API_INTEGRATION", Assistant = "ASSISTANT", Automation = "AUTOMATION", Bot = "BOT", CliTool = "CLI_TOOL", Console = "CONSOLE", Dashboard = "DASHBOARD", Datasink = "DATASINK", DesktopApp = "DESKTOP_APP", Integration = "INTEGRATION", MobileApp = "MOBILE_APP", Node = "NODE", Parser = "PARSER", Service = "SERVICE", Specialist = "SPECIALIST", Vibemodule = "VIBEMODULE", WebApp = "WEB_APP", Widget = "WIDGET", Workflow = "WORKFLOW" } export type AppUserDelegation = { __typename?: 'AppUserDelegation'; app: App; appId: Scalars['String']['output']; expiresAt?: Maybe; grantedAt: Scalars['DateTime']['output']; grantedBy: Scalars['String']['output']; id: Scalars['ID']['output']; revokedAt?: Maybe; revokedBy?: Maybe; scopes: Array; status: DelegationStatus; userId: Scalars['String']['output']; workspaceIds: Array; }; export type AppUserDelegationConnection = { __typename?: 'AppUserDelegationConnection'; delegations: Array; hasMore: Scalars['Boolean']['output']; totalCount: Scalars['Int']['output']; }; export declare enum AppVisibility { Internal = "INTERNAL", Private = "PRIVATE", Public = "PUBLIC", Unlisted = "UNLISTED" } export declare enum AppWorkspaceAuthStatus { Active = "ACTIVE", Revoked = "REVOKED" } export type AppWorkspaceAuthorization = { __typename?: 'AppWorkspaceAuthorization'; appId: Scalars['ID']['output']; createdAt: Scalars['DateTime']['output']; grantedAt: Scalars['DateTime']['output']; grantedBy: Scalars['ID']['output']; id: Scalars['ID']['output']; revokedAt?: Maybe; revokedBy?: Maybe; revokedReason?: Maybe; scopes: Array; status: AppWorkspaceAuthStatus; tenantId: Scalars['ID']['output']; updatedAt: Scalars['DateTime']['output']; workspaceId: Scalars['ID']['output']; }; /** Application type - represents a developer application or integration */ export type Application = { __typename?: 'Application'; activeInstallCount: Scalars['Int']['output']; analytics: Array; appId?: Maybe; appType: AppType; averageRating?: Maybe; bannerUrl?: Maybe; category?: Maybe; config?: Maybe; context?: Maybe; createdAt: Scalars['DateTime']['output']; description?: Maybe; developerId: Scalars['ID']['output']; developerOrganization?: Maybe; developerOrganizationId?: Maybe; documentationUrl?: Maybe; githubUrl?: Maybe; iconUrl?: Maybe; id: Scalars['ID']['output']; installCount: Scalars['Int']['output']; installations: Array; integrationProviderId?: Maybe; isFeatured: Scalars['Boolean']['output']; isVerified: Scalars['Boolean']['output']; keywords: Array; lastReviewedAt?: Maybe; manifest?: Maybe; metadata?: Maybe; name: Scalars['String']['output']; oauthAuthUrl?: Maybe; oauthRevokeUrl?: Maybe; oauthTokenUrl?: Maybe; pricingDetails?: Maybe; pricingType?: Maybe; privacyPolicyUrl?: Maybe; publishedAt?: Maybe; requiresApproval: Scalars['Boolean']['output']; reviewCount: Scalars['Int']['output']; reviewNotes?: Maybe; reviewStatus: AppSubmissionReviewStatus; reviewedBy?: Maybe; reviews: Array; sales: Array; scopes: Array; screenshots?: Maybe; shortDescription?: Maybe; /** Signing secret for server-to-server installation verification. Only returned to the app owner. Integration servers use this alongside installationId to call verifyInstallation and confirm a post-install redirect. */ signingSecret?: Maybe; slug: Scalars['String']['output']; status: AppStatus; submittedAt?: Maybe; supportUrl?: Maybe; /** Structured tag assignments via wspace-tags-svc. Resource type: APPLICATION. */ tagAssignments: Array; /** Free-text tag list for application discovery. */ tags: Array; tenantId: Scalars['ID']['output']; termsOfServiceUrl?: Maybe; updatedAt: Scalars['DateTime']['output']; versions: ApplicationVersionConnection; videoUrl?: Maybe; visibility: AppVisibility; webhooks: Array; websiteUrl?: Maybe; }; /** Application type - represents a developer application or integration */ export type ApplicationVersionsArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; export type ApplicationAnalytics = { __typename?: 'ApplicationAnalytics'; activeUsers: Scalars['Int']['output']; apiCalls: Scalars['Int']['output']; application: Application; applicationId: Scalars['ID']['output']; avgResponseTime?: Maybe; avgSessionDuration?: Maybe; context?: Maybe; createdAt: Scalars['DateTime']['output']; date: Scalars['DateTime']['output']; errors: Scalars['Int']['output']; id: Scalars['ID']['output']; metadata?: Maybe; newUsers: Scalars['Int']['output']; period: Scalars['String']['output']; sessions: Scalars['Int']['output']; }; export type ApplicationConnection = { __typename?: 'ApplicationConnection'; edges: Array; pageInfo: PageInfo; totalCount: Scalars['Int']['output']; }; export type ApplicationEdge = { __typename?: 'ApplicationEdge'; cursor: Scalars['String']['output']; node: Application; }; export type ApplicationScope = { __typename?: 'ApplicationScope'; application: Application; applicationId: Scalars['ID']['output']; context?: Maybe; createdAt: Scalars['DateTime']['output']; description?: Maybe; id: Scalars['ID']['output']; isRequired: Scalars['Boolean']['output']; metadata?: Maybe; scope: Scalars['String']['output']; }; /** Status update payload from the store when a product is approved or rejected. */ export type ApplicationStoreStatus = { __typename?: 'ApplicationStoreStatus'; applicationId: Scalars['ID']['output']; rejectedReason?: Maybe; reviewNotes?: Maybe; status: Scalars['String']['output']; storeProductId: Scalars['ID']['output']; updatedAt: Scalars['DateTime']['output']; }; /** Tag assignment binding a UniversalTag to an Application. Mirrors the universal tag-assignment shape from wspace-tags-svc.UniversalTagAssignment. */ export type ApplicationTagAssignment = { __typename?: 'ApplicationTagAssignment'; assignedAt?: Maybe; assignedBy?: Maybe; /** The Application id this assignment is bound to. */ entityId: Scalars['ID']['output']; /** Always "APPLICATION" for this assignment family. */ entityType: Scalars['String']['output']; /** Stable assignment id (issued by tags-svc). */ id: Scalars['ID']['output']; metadata?: Maybe; /** One of MANUAL | AUTOMATIC | SYSTEM | MIGRATED. */ source: Scalars['String']['output']; tag?: Maybe; /** ID of the UniversalTag (resolved via federation). */ tagId: Scalars['ID']['output']; validFrom?: Maybe; validTo?: Maybe; }; export type ApplicationVersion = { __typename?: 'ApplicationVersion'; application: Application; applicationId: Scalars['ID']['output']; changelog?: Maybe; context?: Maybe; createdAt: Scalars['DateTime']['output']; deprecatedAt?: Maybe; id: Scalars['ID']['output']; isLatest: Scalars['Boolean']['output']; isStable: Scalars['Boolean']['output']; manifest?: Maybe; maxPlatformVersion?: Maybe; metadata?: Maybe; minPlatformVersion?: Maybe; packageHash?: Maybe; packageSize?: Maybe; packageUrl?: Maybe; publishedAt?: Maybe; releaseNotes?: Maybe; requiredScopes: Array; reviewNotes?: Maybe; /** Lifecycle: draft → pending_review → published | rejected → deprecated Only platform admins can approve/reject; approved versions are immutable. */ status: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; version: Scalars['String']['output']; }; export type ApplicationVersionConnection = { __typename?: 'ApplicationVersionConnection'; edges: Array; pageInfo: PageInfo; totalCount: Scalars['Int']['output']; }; export type ApplicationVersionEdge = { __typename?: 'ApplicationVersionEdge'; cursor: Scalars['String']['output']; node: ApplicationVersion; }; export type ApproveWaitlistInput = { id: Scalars['ID']['input']; }; export declare enum ArticleStatus { Archived = "ARCHIVED", Draft = "DRAFT", Published = "PUBLISHED", Review = "REVIEW" } /** Result of assigning the Authenticated User role */ export type AssignAuthenticatedUserRoleResult = { __typename?: 'AssignAuthenticatedUserRoleResult'; /** The assignment ID */ assignmentId?: Maybe; /** Message describing the result */ message: Scalars['String']['output']; /** The role ID that was assigned */ roleId?: Maybe; /** Whether the operation was successful */ success: Scalars['Boolean']['output']; }; export type AssignEntitlementSeatInput = { assigneeId: Scalars['String']['input']; entitlementId: Scalars['ID']['input']; metadata?: InputMaybe; }; export type AssignInterviewersToRoundInput = { assignments: Array; roundId: Scalars['ID']['input']; }; /** Input for assigning a role to an actor */ export type AssignRoleInput = { actorId: Scalars['String']['input']; actorType: ActorType; expiresAt?: InputMaybe; roleId: Scalars['ID']['input']; scopeId: Scalars['String']['input']; scopeResourceId?: InputMaybe; scopeResourceType?: InputMaybe; }; export type AssignSeatInput = { assigneeEmail?: InputMaybe; assigneeUserId: Scalars['String']['input']; entitlementId: Scalars['ID']['input']; role?: InputMaybe; }; /** Result of directly assigning a single quota to a billing account/workspace via assignQuotaFree, normalized across the two possible backing stores (billing-svc QuotaAssignment for GLOBAL scope, wspace-activity-svc WorkspaceQuotaAssignment for WORKSPACE scope). */ export type AssignedQuota = { __typename?: 'AssignedQuota'; billingAccountId?: Maybe; endtime?: Maybe; id: Scalars['ID']['output']; limit?: Maybe; quotaId: Scalars['ID']['output']; quotaName: Scalars['String']['output']; resetPeriod?: Maybe; scope: QuotaScope; workspaceId?: Maybe; }; export type AssistantAccountBudget = { __typename?: 'AssistantAccountBudget'; billingAccountId: Scalars['ID']['output']; dailyMicroUsd: Scalars['Int']['output']; dailyTokens: Scalars['Int']['output']; enabled: Scalars['Boolean']['output']; }; export type AssistantBudgetReceipt = { __typename?: 'AssistantBudgetReceipt'; heldMicroUsd: Scalars['Int']['output']; heldTokens: Scalars['Int']['output']; id: Scalars['ID']['output']; status: Scalars['String']['output']; }; export type AttachMediaToStepInput = { /** Operation context for scoping (workspaceId, userId, productId, moduleId, etc.) */ context?: InputMaybe; mediaId: Scalars['ID']['input']; metadata?: InputMaybe; position: MediaPosition; stepId: Scalars['ID']['input']; }; export type AuditLog = { __typename?: 'AuditLog'; action: Scalars['String']['output']; actorId: Scalars['ID']['output']; actorType: Scalars['String']['output']; changes?: Maybe; context?: Maybe; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; ipAddress?: Maybe; metadata?: Maybe; resource: Scalars['String']['output']; resourceId?: Maybe; tenantId: Scalars['ID']['output']; userAgent?: Maybe; }; export type AuditLogConnection = { __typename?: 'AuditLogConnection'; edges: Array; pageInfo: PageInfo; totalCount: Scalars['Int']['output']; }; export type AuditLogEdge = { __typename?: 'AuditLogEdge'; cursor: Scalars['String']['output']; node: AuditLog; }; /** Filter for querying audit logs */ export type AuditLogFilterInput = { action?: InputMaybe; actorId?: InputMaybe; actorType?: InputMaybe; allowed?: InputMaybe; endDate?: InputMaybe; resourceType?: InputMaybe; startDate?: InputMaybe; }; /** Authentication audit event visible to the current actor. */ export type AuthAuditLog = { __typename?: 'AuthAuditLog'; action: Scalars['String']['output']; createdAt: Scalars['DateTime']['output']; description?: Maybe; id: Scalars['ID']['output']; ipAddress?: Maybe; metadata?: Maybe; resource: Scalars['String']['output']; resourceId?: Maybe; resourceType?: Maybe; userAgent?: Maybe; }; /** Paginated list of auth audit logs */ export type AuthAuditLogConnection = { __typename?: 'AuthAuditLogConnection'; auditLogs: Array; hasMore: Scalars['Boolean']['output']; totalCount: Scalars['Int']['output']; }; export type AuthContext = { deviceId?: InputMaybe; ipAddress?: InputMaybe; userAgent?: InputMaybe; }; export type AuthEraseResult = { __typename?: 'AuthEraseResult'; anonymised: Scalars['Int']['output']; dryRun: Scalars['Boolean']['output']; notes?: Maybe; purged: Scalars['Int']['output']; retainedForLegalReason?: Maybe; service: Scalars['String']['output']; }; export type AuthMethod = { __typename?: 'AuthMethod'; enabled: Scalars['Boolean']['output']; name: Scalars['String']['output']; requiresMFA?: Maybe; type: AuthType; }; export type AuthMethodConfig = { __typename?: 'AuthMethodConfig'; config?: Maybe; enabled: Scalars['Boolean']['output']; type: AuthType; }; export type AuthMethodConfigInput = { magicLinkExpiry?: InputMaybe; mfaMethod?: InputMaybe; mfaRequired?: InputMaybe; oauthClientId?: InputMaybe; oauthClientSecret?: InputMaybe; oauthRedirectUri?: InputMaybe; oidcClientId?: InputMaybe; oidcClientSecret?: InputMaybe; oidcIssuer?: InputMaybe; samlCertificate?: InputMaybe; samlEntityId?: InputMaybe; samlSsoUrl?: InputMaybe; }; /** Authentication response with optional MFA challenge support When requiresMFA is true, user/tokens will be null until MFA verification */ export type AuthPayload = { __typename?: 'AuthPayload'; accessToken?: Maybe; expiresIn?: Maybe; mfaChallengeId?: Maybe; mfaMethod?: Maybe; refreshToken?: Maybe; requiresMFA?: Maybe; user?: Maybe; }; export type AuthResult = { __typename?: 'AuthResult'; error?: Maybe; expiresIn?: Maybe; metadata?: Maybe; mfaChallengeId?: Maybe; refreshToken?: Maybe; requiresMFA?: Maybe; sessionId?: Maybe; success: Scalars['Boolean']['output']; token?: Maybe; user?: Maybe; }; export type AuthStrategyHealth = { __typename?: 'AuthStrategyHealth'; healthy: Scalars['Boolean']['output']; name: Scalars['String']['output']; type: AuthType; }; export declare enum AuthType { ApiKey = "API_KEY", Jwt = "JWT", MagicLink = "MAGIC_LINK", Mfa = "MFA", Oauth = "OAUTH", Oidc = "OIDC", Saml = "SAML" } export type AuthenticateAppInput = { clientId: Scalars['String']['input']; clientSecret: Scalars['String']['input']; scopes?: InputMaybe>; }; export type AuthenticateInput = { credentials: Scalars['JSON']['input']; type: AuthType; }; export declare enum AutomationStatus { Active = "ACTIVE", Completed = "COMPLETED", Exited = "EXITED", Paused = "PAUSED" } export type AutomationStep = { __typename?: 'AutomationStep'; automationId: Scalars['String']['output']; config: Scalars['JSON']['output']; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; stepNumber: Scalars['Int']['output']; stepType: AutomationStepType; }; export declare enum AutomationStepType { AddToList = "ADD_TO_LIST", Condition = "CONDITION", RemoveFromList = "REMOVE_FROM_LIST", SendEmail = "SEND_EMAIL", UpdateField = "UPDATE_FIELD", Wait = "WAIT" } export type AutomationSubscriber = { __typename?: 'AutomationSubscriber'; automationId: Scalars['String']['output']; completedAt?: Maybe; currentStep: Scalars['Int']['output']; enteredAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; lastProcessedAt?: Maybe; status: AutomationStatus; subscriberId: Scalars['String']['output']; }; export declare enum BackoffStrategy { Exponential = "EXPONENTIAL", ExponentialWithJitter = "EXPONENTIAL_WITH_JITTER", Fixed = "FIXED", Linear = "LINEAR" } export type BatchNotificationResult = { __typename?: 'BatchNotificationResult'; batchId: Scalars['String']['output']; results: Scalars['JSON']['output']; totalFailed: Scalars['Int']['output']; totalRequested: Scalars['Int']['output']; totalTriggered: Scalars['Int']['output']; }; export type BatchOperationResult = { __typename?: 'BatchOperationResult'; count: Scalars['Int']['output']; failedIds?: Maybe>; success: Scalars['Boolean']['output']; }; /** BillingAccount entity - resolvable via Federation Gateway. Other services (e.g., store-svc) can reference BillingAccount by id. */ export type BillingAccount = { __typename?: 'BillingAccount'; /** The billing addresses associated with this billing account */ billingAddresses?: Maybe>>; /** Billing-specific email (for invoices) */ billingEmail?: Maybe; /** Contact phone number for the billing account */ contactNumber?: Maybe; /** Additional context */ context?: Maybe; /** When the billing account was created */ createdAt?: Maybe; /** Credits available in the billing account */ creditAmount?: Maybe; /** The credit transactions for this billing account */ creditTransactions?: Maybe>>; /** Default currency for the account */ currency?: Maybe; /** Default payment method ID */ defaultPaymentMethod?: Maybe; /** Contact email for the billing account */ email?: Maybe; /** The unique identifier for the BillingAccount */ id?: Maybe; /** Whether the billing account is active */ isActive?: Maybe; /** Whether this is the default billing account for the org (only one per org) */ isDefault?: Maybe; /** Additional metadata */ metadata?: Maybe; /** The name of the billing account */ name?: Maybe; /** The org ID this billing account belongs to */ orgId?: Maybe; /** The payment methods associated with this billing account */ paymentMethods?: Maybe>>; /** The quota assignments for this billing account (pooled quotas) */ quotaAssignments?: Maybe>>; /** Razorpay customer ID */ razorpayCustomerId?: Maybe; /** Stripe customer ID */ stripeCustomerId?: Maybe; /** The subscriptions associated with this billing account */ subscriptions?: Maybe>>; /** Tax ID / VAT number */ taxId?: Maybe; /** The transactions associated with this billing account */ transactions?: Maybe>>; /** When the billing account was last updated */ updatedAt?: Maybe; }; /** Complete usage summary for a billing account */ export type BillingAccountQuotasSummary = { __typename?: 'BillingAccountQuotasSummary'; billingAccountId: Scalars['ID']['output']; /** Pooled quotas (POOLED) - shared across all subscriptions */ pooledQuotas: Array; /** Subscription quotas (PRODUCT_SPECIFIC) */ subscriptionQuotas: Array; /** Total limit across all quotas */ totalLimit: Scalars['Float']['output']; /** Total usage across all quotas */ totalUsage: Scalars['Float']['output']; }; export type BillingAddress = { __typename?: 'BillingAddress'; billingAccount?: Maybe; billingAccountId?: Maybe; city: Scalars['String']['output']; context?: Maybe; country: Scalars['String']['output']; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; line1: Scalars['String']['output']; line2?: Maybe; metadata?: Maybe; orgId: Scalars['String']['output']; postalCode: Scalars['String']['output']; state?: Maybe; updatedAt: Scalars['DateTime']['output']; }; export type BillingDiscount = { __typename?: 'BillingDiscount'; code: Scalars['String']['output']; context?: Maybe; createdAt: Scalars['DateTime']['output']; currency?: Maybe; id: Scalars['ID']['output']; maxUses?: Maybe; metadata?: Maybe; transactions: Array; type: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; usedCount: Scalars['Int']['output']; validFrom: Scalars['DateTime']['output']; validUntil?: Maybe; value: Scalars['Float']['output']; }; export declare enum BillingInterval { Monthly = "MONTHLY", Quarterly = "QUARTERLY", Yearly = "YEARLY" } export type BillingNotification = { __typename?: 'BillingNotification'; context?: Maybe; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; message: Scalars['String']['output']; metadata?: Maybe; orgId: Scalars['String']['output']; sentAt?: Maybe; type: Scalars['String']['output']; }; export type BillingOrder = { __typename?: 'BillingOrder'; billingAccountId?: Maybe; callbackAttempts?: Maybe; callbackLastAttemptAt?: Maybe; callbackLastError?: Maybe; /** Callback status tracking for manual retry/monitoring */ callbackStatus?: Maybe; createdAt: Scalars['DateTime']['output']; currency: Scalars['String']['output']; description?: Maybe; expiresAt?: Maybe; externalService: Scalars['String']['output']; /** External order ID from the service (e.g., "store-order-12345") */ id: Scalars['ID']['output']; items: Scalars['JSON']['output']; /** Tax is calculated at payment time and stored in Transaction/Payment, not BillingOrder. Tax info can be found in metadata.paymentTaxAmount, metadata.paymentTaxRate, metadata.paymentTotal */ metadata?: Maybe; orgId: Scalars['String']['output']; /** The Payment/Transaction this order was paid with, once payment completes — cross-reference into the payment record while debugging a stuck callback. */ paymentId?: Maybe; status: BillingOrderStatus; subtotal: Scalars['Float']['output']; transactionId?: Maybe; updatedAt: Scalars['DateTime']['output']; }; export type BillingOrderCallbacksPage = { __typename?: 'BillingOrderCallbacksPage'; orders: Array; totalCount: Scalars['Int']['output']; }; export type BillingOrderItemInput = { description?: InputMaybe; metadata?: InputMaybe; name: Scalars['String']['input']; quantity: Scalars['Int']['input']; recurringBillingPlanId?: InputMaybe; unitPrice: Scalars['Float']['input']; }; export declare enum BillingOrderStatus { Canceled = "CANCELED", Completed = "COMPLETED", Created = "CREATED", Expired = "EXPIRED", Failed = "FAILED", PaymentPending = "PAYMENT_PENDING" } export type BillingPaginationInput = { /** Cursor for cursor-based pagination */ cursor?: InputMaybe; /** Maximum number of items to return */ limit?: InputMaybe; /** Number of items to skip */ offset?: InputMaybe; /** Page number for offset-based pagination */ page?: InputMaybe; }; export type BillingSubscription = { __typename?: 'BillingSubscription'; /** Every workspace this subscription has been activated against (each got the full per-workspace quota allotment from the plan). Bounded by plan.maxWorkspaces. Empty if never activated. */ activatedWorkspaceIds: Array; addonSubscriptions: Array; assignedWorkspaceId?: Maybe; autoRenewal?: Maybe; billingAccount?: Maybe; billingAccountId: Scalars['ID']['output']; bonusRenewalsGranted: Scalars['Int']['output']; bonusRenewalsRemaining: Scalars['Int']['output']; canceledAt?: Maybe; canceledBy?: Maybe; cancellationReason?: Maybe; context?: Maybe; createdAt: Scalars['DateTime']['output']; endDate: Scalars['DateTime']['output']; history: Array; id: Scalars['ID']['output']; lastBillingDate?: Maybe; lastRenewalDate?: Maybe; lastSeatChangeAt?: Maybe; nextBillingDate?: Maybe; paymentGateway?: Maybe; plan?: Maybe; planId: Scalars['ID']['output']; promotionId?: Maybe; quotas: Array; razorpaySubscriptionId?: Maybe; recurrence: Scalars['Boolean']['output']; seatCount?: Maybe; startDate: Scalars['DateTime']['output']; status: SubscriptionStatus; stripeSubscriptionId?: Maybe; transactions: Array; updatedAt: Scalars['DateTime']['output']; }; export type BillingWebhookLog = { __typename?: 'BillingWebhookLog'; context?: Maybe; createdAt: Scalars['DateTime']['output']; error?: Maybe; event: Scalars['String']['output']; id: Scalars['ID']['output']; payload: Scalars['JSON']['output']; processed: Scalars['Boolean']['output']; provider: Scalars['String']['output']; }; /** Paginated page of BillingWebhookLog rows, for the admin webhook-log viewer — unlike getUnprocessedFailedWebhooks, not restricted to the payment-succeeded event types eligible for refund creation. */ export type BillingWebhookLogsPage = { __typename?: 'BillingWebhookLogsPage'; logs: Array; totalCount: Scalars['Int']['output']; }; export type BounceStats = { __typename?: 'BounceStats'; bounceRate: Scalars['Float']['output']; hardBounces: Scalars['Int']['output']; softBounces: Scalars['Int']['output']; totalBounces: Scalars['Int']['output']; }; export declare enum BounceType { Complaint = "COMPLAINT", Hard = "HARD", Soft = "SOFT" } /** Comprehensive browse input combining filters, sorting, and pagination */ export type BrowseStoreInput = { /** All filters (search is a filter too - all combine with AND logic) */ filter?: InputMaybe; /** Pagination options */ pagination?: InputMaybe; /** Sort order (defaults to RELEVANCE when search is provided, NEWEST otherwise) */ sortBy?: InputMaybe; }; /** Result type for paginated store browsing */ export type BrowseStoreResult = { __typename?: 'BrowseStoreResult'; /** Available filter facets based on current results */ facets?: Maybe; /** Whether there are more results after this page */ hasMore: Scalars['Boolean']['output']; /** Cursor for next page (for cursor-based pagination) */ nextCursor?: Maybe; /** List of products matching the filters */ products: Array; /** Total count of matching products (for pagination UI) */ totalCount: Scalars['Int']['output']; }; export type BulkAssignmentSendItemInput = { applicationId: Scalars['ID']['input']; roundId: Scalars['ID']['input']; }; /** Input for delivering the same notification to multiple recipients */ export type BulkChannelDeliveryInput = { /** Channel connection ID to use (optional - uses default if not provided) */ connectionId?: InputMaybe; /** Notification content (same for all recipients) */ content: ChannelDeliveryContentInput; /** Optional reference to originating notification in notification-svc */ notificationId?: InputMaybe; /** Delivery options (priority, scheduling, retry policy) */ options?: InputMaybe; /** Organization ID for multi-tenancy */ organizationId: Scalars['ID']['input']; /** Target delivery platform (EMAIL, SMS, PUSH, SLACK, TEAMS, etc.) */ platform: ChannelPlatform; /** List of recipient identifiers (same format as single delivery) */ recipients: Array; }; /** Result of bulk notification delivery */ export type BulkChannelDeliveryResult = { __typename?: 'BulkChannelDeliveryResult'; /** Number of failed deliveries */ failedCount: Scalars['Int']['output']; /** Individual results for each recipient */ results: Array; /** Number of successful deliveries */ successCount: Scalars['Int']['output']; /** Total number of recipients in the batch */ totalCount: Scalars['Int']['output']; }; /** An application that failed during the bulk custom-email mutation. */ export type BulkCustomEmailFailed = { __typename?: 'BulkCustomEmailFailed'; applicationId: Scalars['ID']['output']; message: Scalars['String']['output']; }; /** Outcome of bulkSendCustomEmail — every requested application lands in exactly one bucket. */ export type BulkCustomEmailResult = { __typename?: 'BulkCustomEmailResult'; failed: Array; succeeded: Array; }; /** A requested application that cannot receive the configured interview round. */ export type BulkEnsureInterviewRoundFailed = { __typename?: 'BulkEnsureInterviewRoundFailed'; applicationId: Scalars['ID']['output']; code: BulkEnsureInterviewRoundFailureCode; message: Scalars['String']['output']; }; /** Stable per-application failure codes returned by bulkEnsureInterviewRounds. */ export declare enum BulkEnsureInterviewRoundFailureCode { ApplicationJobPostingMismatch = "APPLICATION_JOB_POSTING_MISMATCH", ApplicationNotFound = "APPLICATION_NOT_FOUND" } /** A configured interview round created or found for one requested application. */ export type BulkEnsureInterviewRoundItem = { __typename?: 'BulkEnsureInterviewRoundItem'; applicationId: Scalars['ID']['output']; round: InterviewRound; }; export type BulkEnsureInterviewRoundsInput = { /** Between 1 and 100 unique application IDs. */ applicationIds: Array; context?: InputMaybe; jobPostingId: Scalars['ID']['input']; roundConfigId: Scalars['ID']['input']; }; /** Outcome of ensuring one configured round per application; every requested ID appears in exactly one bucket. */ export type BulkEnsureInterviewRoundsResult = { __typename?: 'BulkEnsureInterviewRoundsResult'; alreadyPresent: Array; created: Array; failed: Array; }; export type BulkOperationError = { __typename?: 'BulkOperationError'; error: Scalars['String']['output']; keyId?: Maybe; languageCode?: Maybe; }; export type BulkOperationFilter = { filter?: InputMaybe; scheduleIds?: InputMaybe>; }; export type BulkOperationResult = { __typename?: 'BulkOperationResult'; errors: Array; failureCount: Scalars['Int']['output']; success: Scalars['Boolean']['output']; successCount: Scalars['Int']['output']; }; export type BulkRandomizeAndSendAssignmentInput = { /** Resend even to candidates already emailed an assignment for that round. Defaults to false. */ force?: InputMaybe; /** Between 1 and 100 unique application/round pairs. */ items: Array; }; export type BulkRoundMessageItemInput = { applicationId: Scalars['ID']['input']; roundId: Scalars['ID']['input']; }; export type BulkSendCustomEmailInput = { /** Between 1 and 100 unique application IDs, from any status or round — not scoped to a shared interview round. */ applicationIds: Array; /** Rich-text HTML message body from the admin's editor; sanitized to an allowlist before it reaches the email. */ message: Scalars['String']['input']; /** Email subject — sent as the actual email Subject line only, never repeated in the body. */ subject: Scalars['String']['input']; }; /** A candidate/round that failed during a bulk-send mutation. */ export type BulkSendFailed = { __typename?: 'BulkSendFailed'; applicationId: Scalars['ID']['output']; message: Scalars['String']['output']; roundId: Scalars['ID']['output']; }; /** Outcome of a bulk candidate-email mutation — every input item lands in exactly one bucket. */ export type BulkSendResult = { __typename?: 'BulkSendResult'; failed: Array; skipped: Array; succeeded: Array; }; export type BulkSendRoundMessageInput = { /** Resend even to candidates already messaged for that round. Defaults to false. */ force?: InputMaybe; /** Between 1 and 100 unique application/round pairs. */ items: Array; message: Scalars['String']['input']; }; export declare enum BulkSendSkipReason { AlreadySent = "ALREADY_SENT", NotAssignmentRound = "NOT_ASSIGNMENT_ROUND", NotDuplicate = "NOT_DUPLICATE", NoActiveAssignments = "NO_ACTIVE_ASSIGNMENTS" } /** A candidate/round skipped by a bulk-send mutation, with why. */ export type BulkSendSkipped = { __typename?: 'BulkSendSkipped'; applicationId: Scalars['ID']['output']; message: Scalars['String']['output']; reason: BulkSendSkipReason; roundId: Scalars['ID']['output']; }; export type BulkSetUserFeatureFlagPreferenceInput = { enabled: Scalars['Boolean']['input']; featureFlagIds: Array; workspaceId: Scalars['String']['input']; }; export type BulkTranslationInput = { keyId: Scalars['String']['input']; languageCode: Scalars['String']['input']; pluralForms?: InputMaybe; value: Scalars['String']['input']; }; /** A requested application ID that could not have its status updated. */ export type BulkUpdateApplicationStatusFailed = { __typename?: 'BulkUpdateApplicationStatusFailed'; applicationId: Scalars['ID']['output']; message: Scalars['String']['output']; }; export type BulkUpdateApplicationStatusInput = { /** Between 1 and 100 unique application IDs, from any status or round. */ applicationIds: Array; status: JobApplicationStatus; }; /** Outcome of bulkUpdateApplicationStatus — every requested ID lands in exactly one bucket. */ export type BulkUpdateApplicationStatusResult = { __typename?: 'BulkUpdateApplicationStatusResult'; failed: Array; succeeded: Array; }; /** Input for tax calculation preview */ export type CalculateTaxInput = { /** Amount in USD (base currency) */ amount: Scalars['Float']['input']; /** Billing account ID (for billing address lookup) */ billingAccountId: Scalars['ID']['input']; /** Target currency for display */ currency: Scalars['String']['input']; }; /** Input for canceling a subscription */ export type CancelSubscriptionInput = { /** The billing account ID that owns this subscription */ billingAccountId: Scalars['ID']['input']; /** Optional user ID who initiated the cancellation */ canceledBy?: InputMaybe; /** Optional reason for cancellation */ reason?: InputMaybe; /** The subscription ID to cancel */ subscriptionId: Scalars['ID']['input']; }; /** A single outbound candidate email, kept for bulk-send dedup and audit trail. */ export type CandidateEmailLog = { __typename?: 'CandidateEmailLog'; applicationId: Scalars['ID']['output']; emailType: CandidateEmailType; id: Scalars['ID']['output']; roundId?: Maybe; sentAt: Scalars['DateTime']['output']; sentBy: Scalars['String']['output']; subject?: Maybe; }; export declare enum CandidateEmailType { Assignment = "ASSIGNMENT", BulkCustom = "BULK_CUSTOM", DuplicateAssignmentNotice = "DUPLICATE_ASSIGNMENT_NOTICE", Reply = "REPLY", RoundMessage = "ROUND_MESSAGE" } export type CannedResponse = { __typename?: 'CannedResponse'; category?: Maybe; content: Scalars['String']['output']; context?: Maybe; createdAt: Scalars['DateTime']['output']; createdBy: Scalars['String']['output']; id: Scalars['ID']['output']; isActive: Scalars['Boolean']['output']; shortcut?: Maybe; tags: Array; tenantId?: Maybe; title: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; usageCount: Scalars['Int']['output']; }; export type CannedResponseConnection = { __typename?: 'CannedResponseConnection'; hasMore: Scalars['Boolean']['output']; nodes: Array; totalCount: Scalars['Int']['output']; }; export type CannedResponseFilterInput = { category?: InputMaybe; context?: InputMaybe; isActive?: InputMaybe; tags?: InputMaybe>; }; /** One of a shipping carrier's own registered pickup/warehouse addresses (see carrierPickupLocations query). Not organization-scoped — a pickup location belongs to whichever carrier account it's registered with (e.g. Shiprocket today; more carriers may be added later), since a store's ShippingMethods can each use a different carrier. */ export type CarrierPickupLocation = { __typename?: 'CarrierPickupLocation'; /** Which carrier this pickup address is registered with (matches ShippingMethod.carrier, e.g. "shiprocket"). */ carrier: Scalars['String']['output']; label: Scalars['String']['output']; postalCode: Scalars['String']['output']; }; /** Shopping cart for collecting products before checkout */ export type Cart = { __typename?: 'Cart'; /** When the cart was created */ createdAt: Scalars['DateTime']['output']; /** Currency for the cart (ISO 4217 code) */ currency: Scalars['String']['output']; /** Summary of digital items in the cart */ digitalItems: CartItemSummary; /** When the cart expires */ expiresAt?: Maybe; id: Scalars['ID']['output']; /** Whether the cart is empty */ isEmpty: Scalars['Boolean']['output']; /** Total number of items in the cart */ itemCount: Scalars['Int']['output']; /** Items in the cart */ items: Array; /** Last activity timestamp */ lastActivityAt: Scalars['DateTime']['output']; /** User notes for the order */ notes?: Maybe; /** Organization ID for the cart */ organizationId?: Maybe; /** Summary of physical items in the cart */ physicalItems: CartPhysicalItemSummary; /** Whether the cart has any physical items requiring shipping */ requiresShipping: Scalars['Boolean']['output']; /** Session ID for guest carts */ sessionId?: Maybe; /** Current status of the cart */ status: CartStatus; /** Cart subtotal */ subtotal: Scalars['Float']['output']; /** Final total */ total: Scalars['Float']['output']; /** When the cart was last updated */ updatedAt: Scalars['DateTime']['output']; /** User who owns this cart (authenticated users) */ userId?: Maybe; }; /** Error type for cart operations */ export type CartError = { __typename?: 'CartError'; /** Error code for programmatic handling */ code: Scalars['String']['output']; /** Field that caused the error (if applicable) */ field?: Maybe; /** Error message */ message: Scalars['String']['output']; }; /** Individual item in a shopping cart */ export type CartItem = { __typename?: 'CartItem'; /** When the item was added */ addedAt: Scalars['DateTime']['output']; /** Cart this item belongs to */ cartId: Scalars['String']['output']; /** Original price before discount (for display) */ compareAtPrice?: Maybe; id: Scalars['ID']['output']; /** Whether this item is available (in stock for physical) */ isAvailable: Scalars['Boolean']['output']; /** Type of item (DIGITAL, PHYSICAL, or BUNDLE) */ itemType: CartItemType; /** Maximum quantity that can be added (based on stock) */ maxQuantity?: Maybe; /** The product this item refers to */ product?: Maybe; /** Cached product icon URL */ productIcon?: Maybe; /** Product ID */ productId: Scalars['String']['output']; /** Cached product name */ productName: Scalars['String']['output']; /** Quantity of this item */ quantity: Scalars['Int']['output']; /** Stock status message (for physical products) */ stockStatus?: Maybe; /** Line item subtotal (quantity * unitPrice) */ subtotal: Scalars['Float']['output']; /** Price per unit */ unitPrice: Scalars['Float']['output']; /** When the item was last updated */ updatedAt: Scalars['DateTime']['output']; /** The variant (for physical products) */ variant?: Maybe; /** Variant ID (for physical products with variants) */ variantId?: Maybe; /** Cached variant name (e.g., "Large / Blue") */ variantName?: Maybe; /** Target workspace for installation (for digital products) */ workspaceId?: Maybe; }; /** Payload for cart item operations */ export type CartItemPayload = { __typename?: 'CartItemPayload'; /** The updated cart */ cart?: Maybe; /** The cart item if operation was successful */ cartItem?: Maybe; /** Errors if operation failed */ errors?: Maybe>; }; /** Summary of cart items by type */ export type CartItemSummary = { __typename?: 'CartItemSummary'; /** Number of items of this type */ count: Scalars['Int']['output']; /** Subtotal for items of this type */ subtotal: Scalars['Float']['output']; }; /** Type of item in the cart */ export declare enum CartItemType { /** Bundle containing multiple products */ Bundle = "BUNDLE", /** Digital product (app, template, integration) */ Digital = "DIGITAL", /** Physical product (merchandise, hardware) */ Physical = "PHYSICAL" } /** Payload for cart operations */ export type CartPayload = { __typename?: 'CartPayload'; /** The cart if operation was successful */ cart?: Maybe; /** Errors if operation failed */ errors?: Maybe>; }; /** Summary of physical items with shipping info */ export type CartPhysicalItemSummary = { __typename?: 'CartPhysicalItemSummary'; /** Number of physical items */ count: Scalars['Int']['output']; /** Whether shipping is required */ requiresShipping: Scalars['Boolean']['output']; /** Subtotal for physical items */ subtotal: Scalars['Float']['output']; /** Total weight in grams */ totalWeight: Scalars['Float']['output']; }; /** Status of the shopping cart */ export declare enum CartStatus { /** Cart has been abandoned (no activity for configured period) */ Abandoned = "ABANDONED", /** Cart is currently active and in use */ Active = "ACTIVE", /** Cart has been converted to an order */ Converted = "CONVERTED", /** Cart has expired */ Expired = "EXPIRED", /** Cart was merged into another cart (e.g., after login) */ Merged = "MERGED" } export type CategoryBreakdown = { __typename?: 'CategoryBreakdown'; category: SupportTicketCategory; count: Scalars['Int']['output']; percentage: Scalars['Float']['output']; }; /** Filter for querying change logs */ export type ChangeLogFilterInput = { changeType?: InputMaybe; changedBy?: InputMaybe; endDate?: InputMaybe; entityId?: InputMaybe; entityType?: InputMaybe; startDate?: InputMaybe; }; export type ChangePasswordInput = { currentPassword: Scalars['String']['input']; newPassword: Scalars['String']['input']; }; /** Channel represents a configured connection to a communication platform */ export type Channel = { __typename?: 'Channel'; /** Specific adapter type (SENDGRID, AWS_SES, TWILIO, etc.) Used for priority-based fallback delivery. */ adapterType?: Maybe; /** Channel type discriminator — determines delivery behaviour. NOTIFICATION (EMAIL, SMS): outbound-only, adapter failover supported. COMMUNICATION (SLACK, TEAMS, DISCORD, WHATSAPP, WEBCHAT, INAPP, WEBHOOK): bi-directional. */ channelType: ChannelType; /** Typed channel configuration. Returns structured configuration with defaults applied. */ config: ChannelConfig; /** Channel connection (authenticated credentials) */ connection?: Maybe; /** Real-time connection health (system-monitored: HEALTHY, DEGRADED, UNHEALTHY). Updated automatically based on API calls and health checks. */ connectionHealth: ConnectionHealth; /** Number of consecutive API failures (resets to 0 on success) */ consecutiveFailures: Scalars['Int']['output']; /** Operation context (tenantId, userId, etc.) */ context?: Maybe; /** Creation timestamp */ createdAt: Scalars['DateTime']['output']; /** Creator user ID (opaque reference) */ createdBy: Scalars['ID']['output']; /** Soft delete timestamp */ deletedAt?: Maybe; /** Optional description */ description?: Maybe; /** Error message if connection is unhealthy */ healthCheckError?: Maybe; /** Unique channel ID */ id: Scalars['ID']['output']; /** Whether the channel has an active connection */ isConnected: Scalars['Boolean']['output']; /** Last time health was checked */ lastHealthCheckAt?: Maybe; /** Number of messages sent in the last 24 hours */ messageCount24h: Scalars['Int']['output']; /** Channel name */ name: Scalars['String']['output']; /** On behalf of user/system ID (opaque reference) */ onBehalfOf: Scalars['ID']['output']; /** Organization ID (opaque reference - no federation relation) */ organizationId: Scalars['ID']['output']; /** Communication platform (Slack, Teams, Discord, etc.) */ platform: ChannelPlatform; /** Platform-specific configuration (webhook URLs, channel IDs, etc.) Raw JSON for backward compatibility. */ platformConfig?: Maybe; /** Priority for fallback ordering (lower = higher priority, tried first). Example: SendGrid(1) → AWS SES(2) → Azure ACS(3) All ACTIVE channels are included in the failover chain. */ priority: Scalars['Int']['output']; /** Current channel status (admin-controlled: ACTIVE, INACTIVE, etc.) */ status: ChannelStatus; /** Tag assignments for this channel (stub — returns empty until wspace-tags-svc supports org-scoped assignments) */ tagAssignments: Array; /** Number of times this channel has been triggered (e.g., for workflows, automations) */ triggerCount: Scalars['Int']['output']; /** Last update timestamp */ updatedAt: Scalars['DateTime']['output']; /** Platform connections for users on this channel */ users: Array; }; /** Authentication method for channel connection */ export declare enum ChannelAuthType { /** API Key authentication */ ApiKey = "API_KEY", /** Bot token (Discord, Slack) */ BotToken = "BOT_TOKEN", /** OAuth 2.0 flow (Slack, Teams, Discord) */ Oauth2 = "OAUTH2", /** SMTP/IMAP credentials (Email) */ SmtpImap = "SMTP_IMAP", /** Webhook-only (no authentication) */ Webhook = "WEBHOOK" } /** Channel configuration settings. Strongly-typed configuration instead of generic JSON. */ export type ChannelConfig = { __typename?: 'ChannelConfig'; /** Default workflow ID to execute for incoming messages (if any) */ defaultWorkflowId?: Maybe; /** Enable presence tracking for users on this channel */ enablePresence: Scalars['Boolean']['output']; /** Enable emoji reaction support (if platform supports it) */ enableReactions: Scalars['Boolean']['output']; /** Enable threaded reply support (if platform supports it) */ enableThreading: Scalars['Boolean']['output']; /** Enable typing indicator support (if platform supports it) */ enableTypingIndicators: Scalars['Boolean']['output']; /** Platform-specific settings (JSON for flexibility) */ platformSettings?: Maybe; /** Rate limit: maximum messages per hour for this channel. */ rateLimitPerHour?: Maybe; /** Rate limit: maximum messages per minute for this channel. Platform-specific limits apply (e.g., Slack: 60/min, WhatsApp: varies). */ rateLimitPerMinute?: Maybe; /** Webhook URL for receiving platform events */ webhookUrl?: Maybe; }; /** Input for updating channel configuration */ export type ChannelConfigInput = { /** Default workflow ID for incoming messages */ defaultWorkflowId?: InputMaybe; /** Enable presence tracking */ enablePresence?: InputMaybe; /** Enable emoji reaction support */ enableReactions?: InputMaybe; /** Enable threaded reply support */ enableThreading?: InputMaybe; /** Enable typing indicators */ enableTypingIndicators?: InputMaybe; /** Platform-specific settings */ platformSettings?: InputMaybe; /** Rate limit: maximum messages per hour */ rateLimitPerHour?: InputMaybe; /** Rate limit: maximum messages per minute */ rateLimitPerMinute?: InputMaybe; /** Webhook URL */ webhookUrl?: InputMaybe; }; /** ChannelConnection represents an authenticated connection to a platform All credentials are encrypted with AES-256-GCM */ export type ChannelConnection = { __typename?: 'ChannelConnection'; /** Authentication type used */ authType: ChannelAuthType; /** Associated channel */ channel: Channel; /** Associated channel ID (1:1 relationship) */ channelId: Scalars['ID']['output']; /** Operation context (tenantId, userId, etc.) */ context?: Maybe; /** Creation timestamp */ createdAt: Scalars['DateTime']['output']; /** Days until token expiration */ daysUntilExpiry?: Maybe; /** Unique connection ID */ id: Scalars['ID']['output']; /** Whether the connection is currently active */ isActive: Scalars['Boolean']['output']; /** Whether the connection is healthy */ isHealthy: Scalars['Boolean']['output']; /** Last time tokens were refreshed */ lastRefreshedAt?: Maybe; /** Last successful connection test timestamp */ lastTestedAt?: Maybe; /** Whether OAuth tokens need refresh (within 24h of expiry) */ needsTokenRefresh: Scalars['Boolean']['output']; /** Platform-specific metadata (channel IDs, team info, etc.) NOTE: Non-sensitive data only */ platformMetadata?: Maybe; /** Tag assignments for this connection (stub — returns empty until wspace-tags-svc supports org-scoped assignments) */ tagAssignments: Array; /** Connection test status message */ testStatus?: Maybe; /** OAuth token expiration (for OAuth flows) */ tokenExpiresAt?: Maybe; /** Last update timestamp */ updatedAt: Scalars['DateTime']['output']; }; /** Paginated list of channel connections with cursor support. Pass `nextCursor` from a previous response as `cursor` in the next call. */ export type ChannelConnectionList = { __typename?: 'ChannelConnectionList'; hasMore: Scalars['Boolean']['output']; items: Array; nextCursor?: Maybe; total: Scalars['Int']['output']; }; export type ChannelConnectionTagAssignment = { __typename?: 'ChannelConnectionTagAssignment'; assignedAt?: Maybe; assignedBy?: Maybe; entityId: Scalars['ID']['output']; entityType: Scalars['String']['output']; id: Scalars['ID']['output']; metadata?: Maybe; source: Scalars['String']['output']; tag?: Maybe; tagId: Scalars['ID']['output']; }; /** Attachment input for channel delivery */ export type ChannelDeliveryAttachmentInput = { /** Content (Base64 encoded) or URL */ content: Scalars['String']['input']; /** Content type (MIME type) */ contentType: Scalars['String']['input']; /** Filename */ filename: Scalars['String']['input']; /** Whether content is a URL (true) or Base64 encoded data (false) */ isUrl?: InputMaybe; }; /** Notification content for channel delivery */ export type ChannelDeliveryContentInput = { /** Attachments (used for email, MMS, etc.) */ attachments?: InputMaybe>; /** Structured data payload (passed to platform adapters) */ data?: InputMaybe; /** HTML content (used for email body) */ html?: InputMaybe; /** Subject line (used for email subject) */ subject?: InputMaybe; /** Template name (for platforms that support templates) */ templateName?: InputMaybe; /** Template variables (for template-based messages) */ templateVariables?: InputMaybe; /** Plain text content (used for SMS, push notification body, etc.) */ text?: InputMaybe; /** Title (used for push notification title, in-app notification title) */ title?: InputMaybe; }; /** Delivery error details */ export type ChannelDeliveryError = { __typename?: 'ChannelDeliveryError'; /** Error code (platform-specific or internal) */ code: Scalars['String']['output']; /** Additional error details */ details?: Maybe; /** Human-readable error message */ message: Scalars['String']['output']; /** Whether the error is retryable */ retryable: Scalars['Boolean']['output']; }; export type ChannelDeliveryEventInput = { /** Event ID from channel service */ channelServiceEventId: Scalars['String']['input']; /** Delivery status */ deliveryStatus: NotificationDeliveryStatus; /** Additional event details */ details?: InputMaybe; /** External provider ID */ externalId?: InputMaybe; /** Event metadata */ metadata?: InputMaybe; /** Notification ID in this service */ notificationId: Scalars['ID']['input']; /** Event timestamp */ timestamp: Scalars['DateTime']['input']; }; /** Input for delivering a notification to a single recipient */ export type ChannelDeliveryInput = { /** Channel connection ID to use (optional - uses default if not provided) */ connectionId?: InputMaybe; /** Notification content */ content: ChannelDeliveryContentInput; /** Internal Botlit user ID. When provided, the service automatically resolves the user's DM conversation ID from their UserPlatformConnection record and uses it as the delivery recipient. Requires the user to have connected via OAuth (dmAllowed=true) with notificationsEnabled=true. Either `recipient` or `internalUserId` must be provided. */ internalUserId?: InputMaybe; /** Optional reference to originating notification in notification-svc */ notificationId?: InputMaybe; /** Delivery options (priority, scheduling, retry policy) */ options?: InputMaybe; /** Organization ID for multi-tenancy */ organizationId: Scalars['ID']['input']; /** Target delivery platform (EMAIL, SMS, PUSH, SLACK, TEAMS, etc.) */ platform: ChannelPlatform; /** Recipient identifier based on platform: - EMAIL: email address - SMS: phone number (E.164 format) - PUSH: device token - SLACK/TEAMS/DISCORD: user ID or channel ID - WHATSAPP: phone number - WEBHOOK: webhook URL - INAPP: user ID Either `recipient` or `internalUserId` must be provided. */ recipient?: InputMaybe; }; /** Delivery options for channel delivery */ export type ChannelDeliveryOptionsInput = { /** Idempotency key (for deduplication) */ idempotencyKey?: InputMaybe; /** Custom metadata to include in delivery tracking */ metadata?: InputMaybe; /** Delivery priority level */ priority?: InputMaybe; /** Custom retry policy override */ retryPolicy?: InputMaybe; /** Schedule for later delivery (ISO 8601 timestamp) */ scheduledAt?: InputMaybe; /** Time-to-live in seconds (after which delivery should not be attempted) */ ttlSeconds?: InputMaybe; }; /** Result of delivering a single notification */ export type ChannelDeliveryResult = { __typename?: 'ChannelDeliveryResult'; /** Error details if delivery failed */ error?: Maybe; /** External ID from the platform (e.g., SendGrid message ID, Twilio SID) */ externalId?: Maybe; /** Internal message ID for tracking */ messageId?: Maybe; /** Additional metadata from the platform */ metadata?: Maybe; /** Platform used for delivery */ platform: ChannelPlatform; /** Timestamp when message was sent/queued */ sentAt?: Maybe; /** Current delivery status */ status: DeliveryStatus; /** Whether the delivery was successful (or queued successfully) */ success: Scalars['Boolean']['output']; }; /** Delivery status update event (for subscriptions) */ export type ChannelDeliveryStatusUpdate = { __typename?: 'ChannelDeliveryStatusUpdate'; /** Internal message ID */ messageId: Scalars['ID']['output']; /** Additional metadata */ metadata?: Maybe; /** Notification ID from notification-svc */ notificationId: Scalars['ID']['output']; /** Platform used for delivery */ platform: ChannelPlatform; /** Updated delivery status */ status: DeliveryStatus; /** Timestamp of the status update */ timestamp: Scalars['DateTime']['output']; }; export type ChannelEraseResult = { __typename?: 'ChannelEraseResult'; anonymised: Scalars['Int']['output']; dryRun: Scalars['Boolean']['output']; notes?: Maybe; purged: Scalars['Int']['output']; retainedForLegalReason?: Maybe; service: Scalars['String']['output']; }; export declare enum ChannelExportFormat { /** Comma-separated values; first row is the header. */ Csv = "CSV", /** JSON array; one row per element. */ Json = "JSON", /** JSON-Lines; one row per line (streaming-friendly). */ Jsonl = "JSONL" } /** Export job descriptor returned by channel export mutations. Poll `channelExportJob(id:)` until status=COMPLETED, then GET downloadUrl. */ export type ChannelExportJob = { __typename?: 'ChannelExportJob'; byteSize?: Maybe; completedAt?: Maybe; createdAt: Scalars['DateTime']['output']; /** Stable GET URL for the payload; valid for 24h after COMPLETED. */ downloadUrl?: Maybe; /** ISO timestamp when downloadUrl expires. */ downloadUrlExpiresAt?: Maybe; entityType: Scalars['String']['output']; error?: Maybe; format: ChannelExportFormat; id: Scalars['ID']['output']; rowCount?: Maybe; status: ChannelExportStatus; /** True when the result was truncated at the 64 MiB safety limit. */ truncated?: Maybe; }; export declare enum ChannelExportStatus { /** Job finished successfully; downloadUrl is populated. */ Completed = "COMPLETED", /** Job accepted and queued. */ Created = "CREATED", /** Job failed; error contains the reason. */ Failed = "FAILED", /** Job is materialising the export payload. */ Running = "RUNNING" } /** Filter input for querying channels */ export type ChannelFilterInput = { /** Filter by adapter type */ adapterType?: InputMaybe; /** Filter by channel type (NOTIFICATION or COMMUNICATION) */ channelType?: InputMaybe; /** Filter by operation context */ context?: InputMaybe; /** Filter by creator */ createdBy?: InputMaybe; /** Filter by organization ID */ organizationId?: InputMaybe; /** Filter by platform */ platform?: InputMaybe; /** Search by name */ search?: InputMaybe; /** Filter by status */ status?: InputMaybe; }; /** Channel health check result */ export type ChannelHealthCheck = { __typename?: 'ChannelHealthCheck'; /** Channel ID */ channelId: Scalars['ID']['output']; /** Error message (if unhealthy) */ error?: Maybe; /** Is the channel healthy */ isHealthy: Scalars['Boolean']['output']; /** Last successful check timestamp */ lastCheckAt: Scalars['DateTime']['output']; /** Platform API response time (ms) */ responseTimeMs?: Maybe; /** Health status message */ status: Scalars['String']['output']; }; /** Channel health update event emitted when connectionHealth changes. */ export type ChannelHealthUpdate = { __typename?: 'ChannelHealthUpdate'; /** Timestamp of the health change */ changedAt: Scalars['DateTime']['output']; /** The full channel object with updated health status */ channel: Channel; /** Channel ID that changed */ channelId: Scalars['ID']['output']; /** New health status alias for frontend compatibility (same as newHealth) */ currentHealth: ConnectionHealth; /** Error details if health degraded to UNHEALTHY */ error?: Maybe; /** New health status (after the change) */ newHealth: ConnectionHealth; /** Previous health status (before the change) */ previousHealth: ConnectionHealth; /** Reason for the health change (if available) */ reason?: Maybe; /** Timestamp alias for frontend compatibility (same as changedAt) */ timestamp: Scalars['DateTime']['output']; }; /** Channel list response with pagination */ export type ChannelList = { __typename?: 'ChannelList'; /** Whether there are more results */ hasMore: Scalars['Boolean']['output']; /** List of channels */ items: Array; /** Opaque cursor for fetching the next page (base64 last-id with stable id-tiebreaker). Pass via `pagination.cursor` on the next call. Null when no more results. Non-breaking: offset pagination still works for existing clients. */ nextCursor?: Maybe; /** Total count (for pagination) */ total: Scalars['Int']['output']; }; /** Organization-level channel settings */ export type ChannelOrgSettings = { __typename?: 'ChannelOrgSettings'; /** Default priority for new channels (0=lowest … 4=highest) */ defaultPriority: Scalars['Int']['output']; /** Persist an audit log entry for every channel operation */ enableAuditLogging: Scalars['Boolean']['output']; /** Verify HMAC signatures on all incoming webhooks */ enableWebhookVerification: Scalars['Boolean']['output']; /** How often to run scheduled connection health checks (minutes) */ healthCheckIntervalMinutes: Scalars['Int']['output']; /** Organization ID these settings belong to */ organizationId: Scalars['ID']['output']; /** Global rate limit: maximum messages per hour across all channels */ rateLimitPerHour: Scalars['Int']['output']; /** Global rate limit: maximum messages per minute across all channels */ rateLimitPerMinute: Scalars['Int']['output']; /** Idle session timeout for the channel UI (minutes) */ sessionTimeoutMinutes: Scalars['Int']['output']; /** Last updated timestamp */ updatedAt: Scalars['DateTime']['output']; }; /** Input for updating organization-level channel settings */ export type ChannelOrgSettingsInput = { /** Default priority for new channels (0–4) */ defaultPriority?: InputMaybe; /** Enable audit logging */ enableAuditLogging?: InputMaybe; /** Enable webhook signature verification */ enableWebhookVerification?: InputMaybe; /** Health check interval in minutes */ healthCheckIntervalMinutes?: InputMaybe; /** Rate limit per hour */ rateLimitPerHour?: InputMaybe; /** Rate limit per minute */ rateLimitPerMinute?: InputMaybe; /** Session timeout in minutes */ sessionTimeoutMinutes?: InputMaybe; }; export type ChannelPaginationInput = { cursor?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Supported channel platforms for bi-directional communication */ export declare enum ChannelPlatform { /** Discord server integration */ Discord = "DISCORD", /** Email via SMTP/IMAP/SendGrid/SES/ACS */ Email = "EMAIL", /** Push notifications via FCM/APNs */ Push = "PUSH", /** Slack workspace integration */ Slack = "SLACK", /** SMS via Twilio/AWS SNS */ Sms = "SMS", /** Microsoft Teams integration */ Teams = "TEAMS", /** Custom webchat widget */ Webchat = "WEBCHAT", /** Generic HTTP webhooks */ Webhook = "WEBHOOK", /** WhatsApp Business API */ Whatsapp = "WHATSAPP" } /** Retry policy for channel delivery */ export type ChannelRetryPolicyInput = { /** Backoff multiplier for exponential backoff */ backoffMultiplier?: InputMaybe; /** Initial delay in milliseconds before first retry */ initialDelayMs?: InputMaybe; /** Maximum delay in milliseconds between retries */ maxDelayMs?: InputMaybe; /** Maximum number of retry attempts */ maxRetries?: InputMaybe; }; /** Channel statistics - comprehensive metrics for monitoring and analytics. */ export type ChannelStats = { __typename?: 'ChannelStats'; /** Active users (active in last 24 hours) */ activeUsers: Scalars['Int']['output']; /** Average delivery latency in milliseconds */ averageDeliveryLatencyMs?: Maybe; /** Average webhook processing time in milliseconds */ averageWebhookProcessingMs?: Maybe; /** Channel ID */ channelId: Scalars['ID']['output']; /** Current connection health status */ connectionHealth: ConnectionHealth; /** Deliveries in the last 7 days */ deliveriesLast7Days: Scalars['Int']['output']; /** Deliveries in the last 24 hours */ deliveriesLast24Hours: Scalars['Int']['output']; /** Delivery success rate (0.0 - 1.0) */ deliverySuccessRate?: Maybe; /** Failed delivery attempts */ failedDeliveries: Scalars['Int']['output']; /** Last message/delivery timestamp */ lastActivityAt?: Maybe; /** Last successful health check timestamp */ lastHealthCheckAt?: Maybe; /** Total messages/notifications sent (all-time) */ totalDeliveries: Scalars['Int']['output']; /** Total channel users */ totalUsers: Scalars['Int']['output']; /** Uptime percentage in last 24 hours (0.0 - 100.0) */ uptimeLast24Hours?: Maybe; /** Failed webhook processing count */ webhooksFailed: Scalars['Int']['output']; /** Webhooks received in the last 24 hours */ webhooksLast24Hours: Scalars['Int']['output']; /** Total webhooks received (all-time) */ webhooksReceived: Scalars['Int']['output']; }; /** Channel connection status */ export declare enum ChannelStatus { /** Channel is active and operational */ Active = "ACTIVE", /** Channel is archived (soft deleted) */ Archived = "ARCHIVED", /** Channel has errors and needs attention */ Error = "ERROR", /** Channel is inactive (manual disable) */ Inactive = "INACTIVE", /** Channel is suspended (rate limit, violation) */ Suspended = "SUSPENDED" } export type ChannelTagAssignment = { __typename?: 'ChannelTagAssignment'; assignedAt?: Maybe; assignedBy?: Maybe; entityId: Scalars['ID']['output']; entityType: Scalars['String']['output']; id: Scalars['ID']['output']; metadata?: Maybe; source: Scalars['String']['output']; tag?: Maybe; tagId: Scalars['ID']['output']; }; /** Channel type discriminator — determines delivery behaviour and webhook handling. NOTIFICATION channels (EMAIL, SMS) are outbound-only: - Support priority-based failover across adapters. - No inbound webhook processing. - No DM conversations. - Recipient resolved via externalEmail (email) or externalUserId (phone). COMMUNICATION channels (SLACK, TEAMS, DISCORD, WHATSAPP, WEBCHAT, INAPP, WEBHOOK) are bi-directional: - Inbound webhooks processed and forwarded to conversations-svc. - DM conversations tracked via dmConversationId. - Recipient resolved via dmConversationId set during OAuth / pairing. */ export declare enum ChannelType { /** Bi-directional platform channels: SLACK, TEAMS, DISCORD, WHATSAPP, WEBCHAT, INAPP, WEBHOOK. Processes inbound webhooks and supports DM conversations. */ Communication = "COMMUNICATION", /** Outbound-only delivery channels: EMAIL, SMS. Supports adapter-level failover (e.g. AWS SES → Azure ACS). */ Notification = "NOTIFICATION" } export type Charge = { __typename?: 'Charge'; amount: Scalars['Float']['output']; context?: Maybe; createdAt: Scalars['DateTime']['output']; currency: Scalars['String']['output']; description?: Maybe; gatewayChargeId?: Maybe; gatewayPaymentId?: Maybe; id: Scalars['ID']['output']; metadata?: Maybe; orgId: Scalars['String']['output']; provider?: Maybe; refunds: Array; status: ChargeStatus; updatedAt: Scalars['DateTime']['output']; }; export declare enum ChargeStatus { Failed = "FAILED", Pending = "PENDING", Refunded = "REFUNDED", Succeeded = "SUCCEEDED" } export declare enum ChartType { EditorsChoice = "EDITORS_CHOICE", NewReleases = "NEW_RELEASES", TopFree = "TOP_FREE", TopGrossing = "TOP_GROSSING", TopPaid = "TOP_PAID", Trending = "TRENDING" } export declare enum ChartWindow { Daily = "DAILY", Monthly = "MONTHLY", Weekly = "WEEKLY" } /** Input for checkout */ export type CheckoutInput = { /** Billing account ID. When omitted, the store resolves the caller's default billing account from billing-svc automatically. */ billingAccountId?: InputMaybe; /** Order notes */ notes?: InputMaybe; /** Payment method ID. When omitted, the store uses the default payment method on the resolved billing account. */ paymentMethodId?: InputMaybe; /** Shipping address ID (required for physical items) */ shippingAddressId?: InputMaybe; /** Selected shipping method ID (required for physical items) */ shippingMethodId?: InputMaybe; /** Target workspace for digital product installation (optional) */ workspaceId?: InputMaybe; }; /** Payload for checkout operation */ export type CheckoutPayload = { __typename?: 'CheckoutPayload'; /** Errors if checkout failed */ errors?: Maybe>; /** The created order (if successful) */ order?: Maybe; /** Whether checkout was successful */ success: Scalars['Boolean']['output']; }; export type CircuitBreakerInput = { enabled: Scalars['Boolean']['input']; failureThreshold: Scalars['Int']['input']; halfOpenTimeout: Scalars['Int']['input']; timeout: Scalars['Int']['input']; }; export type CircuitBreakerState = { __typename?: 'CircuitBreakerState'; config: Scalars['JSON']['output']; context?: Maybe; createdAt: Scalars['DateTime']['output']; failureCount: Scalars['Int']['output']; halfOpenAt?: Maybe; id: Scalars['ID']['output']; lastFailureAt?: Maybe; lastSuccessAt?: Maybe; metadata?: Maybe; openedAt?: Maybe; scope: Scalars['String']['output']; scopeValue: Scalars['String']['output']; state: CircuitState; successCount: Scalars['Int']['output']; updatedAt: Scalars['DateTime']['output']; }; export declare enum CircuitState { Closed = "CLOSED", HalfOpen = "HALF_OPEN", Open = "OPEN" } export type ComplaintStats = { __typename?: 'ComplaintStats'; complaintRate: Scalars['Float']['output']; totalComplaints: Scalars['Int']['output']; }; export type ComplianceAuditLogEntry = { __typename?: 'ComplianceAuditLogEntry'; details: Scalars['String']['output']; email: Scalars['String']['output']; event: Scalars['String']['output']; id: Scalars['ID']['output']; ip?: Maybe; timestamp: Scalars['DateTime']['output']; }; /** Input for configuring tenant settings */ export type ConfigureTenantInput = { complianceRegion?: InputMaybe; /** * Ignored and never stored. Burdenoff does no white-labelling: every product keeps its own brand. * @deprecated No white-labelling — products keep their own brand. This setting is ignored. */ customBranding?: InputMaybe; dataResidency?: InputMaybe; features?: InputMaybe; region?: InputMaybe; }; /** Input for configuring workspace routing (admin only) */ export type ConfigureWorkspaceInput = { endpoint?: InputMaybe; region?: InputMaybe; }; /** Presence and assignment state of one exact configured interview round. */ export declare enum ConfiguredRoundState { Assigned = "ASSIGNED", Missing = "MISSING", Unassigned = "UNASSIGNED" } /** Real-time health status of a channel's connection. Monitored by the system based on API calls and health checks. - `status` = Admin-controlled (ACTIVE, INACTIVE, ARCHIVED) - `connectionHealth` = System-monitored (HEALTHY, DEGRADED, UNHEALTHY) Example: Channel status = ACTIVE but connectionHealth = UNHEALTHY means admin enabled the channel but the API is down. */ export declare enum ConnectionHealth { /** Partial failures, high latency, or rate limiting */ Degraded = "DEGRADED", /** Connection working, all requests succeeding */ Healthy = "HEALTHY", /** Connection failing, most requests rejected */ Unhealthy = "UNHEALTHY", /** Never tested or no recent health check */ Unknown = "UNKNOWN" } /** Connection status summary */ export type ConnectionStatus = { __typename?: 'ConnectionStatus'; /** Connection ID */ connectionId: Scalars['ID']['output']; /** Days until token expiry */ daysUntilExpiry?: Maybe; /** Is connection active */ isActive: Scalars['Boolean']['output']; /** Is connection healthy */ isHealthy: Scalars['Boolean']['output']; /** Last test timestamp */ lastTestedAt?: Maybe; /** Needs token refresh */ needsTokenRefresh: Scalars['Boolean']['output']; /** Test status message */ testStatus?: Maybe; }; /** Connection status changed event payload. */ export type ConnectionStatusChangedEvent = { __typename?: 'ConnectionStatusChangedEvent'; changedAt: Scalars['DateTime']['output']; channelId: Scalars['ID']['output']; connectionId: Scalars['ID']['output']; /** Connection ID (alias: id) */ id: Scalars['ID']['output']; isActive: Scalars['Boolean']['output']; isHealthy: Scalars['Boolean']['output']; organizationId: Scalars['ID']['output']; reason?: Maybe; }; /** Connection test result */ export type ConnectionTestResult = { __typename?: 'ConnectionTestResult'; /** Error details (if failed) */ error?: Maybe; /** Test status message */ message: Scalars['String']['output']; /** Platform account info (sanitized) */ platformInfo?: Maybe; /** Platform API response time (ms) */ responseTimeMs?: Maybe; /** Whether the test succeeded */ success: Scalars['Boolean']['output']; }; export type ConsentLedgerFilter = { purpose?: InputMaybe; status?: InputMaybe; subjectId?: InputMaybe; subjectType?: InputMaybe; workspaceId?: InputMaybe; }; export declare enum ConsentPurpose { AiTraining = "AI_TRAINING", Analytics = "ANALYTICS", CookiesAnalytics = "COOKIES_ANALYTICS", CookiesFunctional = "COOKIES_FUNCTIONAL", CookiesMarketing = "COOKIES_MARKETING", Marketing = "MARKETING", ProductUpdates = "PRODUCT_UPDATES", Profiling = "PROFILING", ThirdPartySharing = "THIRD_PARTY_SHARING", Transactional = "TRANSACTIONAL" } export type ConsentRecord = { __typename?: 'ConsentRecord'; createdAt: Scalars['DateTime']['output']; expiresAt?: Maybe; grantedAt?: Maybe; id: Scalars['ID']['output']; lawfulBasis: LawfulBasis; policyVersion: Scalars['String']['output']; proofPayload?: Maybe; purpose: ConsentPurpose; source: Scalars['String']['output']; status: ConsentStatus; subjectId: Scalars['ID']['output']; subjectType: Scalars['String']['output']; tenantId?: Maybe; updatedAt: Scalars['DateTime']['output']; withdrawnAt?: Maybe; workspaceId?: Maybe; }; export type ConsentRecordConnection = { __typename?: 'ConsentRecordConnection'; hasMore: Scalars['Boolean']['output']; nodes: Array; total: Scalars['Int']['output']; }; export declare enum ConsentStatus { Expired = "EXPIRED", Granted = "GRANTED", Pending = "PENDING", Withdrawn = "WITHDRAWN" } /** A contact inquiry submitted via a product website contact form. */ export type ContactInquiry = { __typename?: 'ContactInquiry'; /** Inquiry category chosen by the submitter on the website (e.g. "sales", "support", "press"). The set of valid values is owned by each product website (passed via the SDK `categories` prop); the backend stores whatever string the website sent, capped at 100 chars. */ category?: Maybe; company?: Maybe; convertedTicketId?: Maybe; createdAt: Scalars['DateTime']['output']; email: Scalars['String']['output']; id: Scalars['ID']['output']; message: Scalars['String']['output']; metadata?: Maybe; name: Scalars['String']['output']; productId?: Maybe; source: Scalars['String']['output']; status: ContactInquiryStatus; subject: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; }; export type ContactInquiryFilterInput = { /** Filter by inquiry category (exact match against the stored string). */ category?: InputMaybe; /** Filter by product ID */ productId?: InputMaybe; /** Search in name, email, or subject */ search?: InputMaybe; /** Filter by status */ status?: InputMaybe; }; export type ContactInquiryList = { __typename?: 'ContactInquiryList'; hasMore: Scalars['Boolean']['output']; items: Array; total: Scalars['Int']['output']; }; export type ContactInquiryReplyResult = { __typename?: 'ContactInquiryReplyResult'; message?: Maybe; success: Scalars['Boolean']['output']; }; export declare enum ContactInquiryStatus { Archived = "ARCHIVED", Converted = "CONVERTED", New = "NEW", Reviewed = "REVIEWED", Spam = "SPAM" } export type ContentPageFilterInput = { /** Filter by published state */ isPublished?: InputMaybe; /** Search in title or slug */ search?: InputMaybe; /** Filter by slug */ slug?: InputMaybe; /** Filter by a tag (e.g. "blog", "legal", "docs"). Matches pages whose tags array contains this value. */ tag?: InputMaybe; /** Filter by visibility level */ visibility?: InputMaybe; }; export declare enum ContentVisibility { Authenticated = "AUTHENTICATED", Internal = "INTERNAL", Public = "PUBLIC" } /** Context filter input for querying records by context. Supports exact match filtering on context fields. */ export type ContextFilterInput = { /** Filter by organization ID */ organizationId?: InputMaybe; /** Filter by project ID */ projectId?: InputMaybe; /** Filter by user ID */ userId?: InputMaybe; /** Filter by workspace ID */ workspaceId?: InputMaybe; }; /** Operation context for filtering and scoping data. All fields are optional and can be extended as needed. */ export type ContextInput = { /** Additional custom context as JSON */ custom?: InputMaybe; /** Organization ID for organization-level scoping */ organizationId?: InputMaybe; /** Project ID for project-level scoping */ projectId?: InputMaybe; /** User ID for user-level scoping */ userId?: InputMaybe; /** Workspace ID for workspace-level scoping */ workspaceId?: InputMaybe; }; export type ContextWidgetConversationPayload = { __typename?: 'ContextWidgetConversationPayload'; conversationId: Scalars['ID']['output']; created: Scalars['Boolean']['output']; description?: Maybe; settings?: Maybe; threadKey: Scalars['String']['output']; title?: Maybe; }; export type Coupon = { __typename?: 'Coupon'; /** Purchase flows (PLAN / ADD_ON / STORE) this coupon may be redeemed against. Empty = all entity types. */ applicableEntityTypes: Array; /** Product slugs (e.g. "vibecontrols", "fluidgrids") this coupon may be redeemed against. Empty = all products. */ applicableProductIds: Array; applicableProducts: Array; applicableServices: Array; campaignId?: Maybe; campaignName?: Maybe; code: Scalars['String']['output']; createdAt: Scalars['DateTime']['output']; createdBy: Scalars['String']['output']; currency?: Maybe; currentUses: Scalars['Int']['output']; description?: Maybe; excludedProducts: Array; excludedServices: Array; id: Scalars['ID']['output']; maxDiscountAmount?: Maybe; maxTotalUses?: Maybe; maxUsesPerUser: Scalars['Int']['output']; metadata?: Maybe; minPurchaseAmount?: Maybe; name: Scalars['String']['output']; onBehalfOf: Scalars['String']['output']; referralCode?: Maybe; restrictedToUserIds: Array; scope: CouponScope; status: CouponStatus; type: CouponType; updatedAt: Scalars['DateTime']['output']; validFrom: Scalars['DateTime']['output']; validUntil?: Maybe; value: Scalars['Float']['output']; }; /** Which purchase flow a coupon may be redeemed against (BOFF-7391). */ export declare enum CouponEntityType { AddOn = "ADD_ON", Plan = "PLAN", Store = "STORE" } export type CouponFilterInput = { campaignId?: InputMaybe; scope?: InputMaybe; search?: InputMaybe; status?: InputMaybe; type?: InputMaybe; }; export declare enum CouponScope { Campaign = "CAMPAIGN", Generic = "GENERIC", Referral = "REFERRAL", UserSpecific = "USER_SPECIFIC" } export declare enum CouponStatus { Active = "ACTIVE", Depleted = "DEPLETED", Expired = "EXPIRED", Inactive = "INACTIVE" } export declare enum CouponType { FixedAmount = "FIXED_AMOUNT", FreeShipping = "FREE_SHIPPING", Percentage = "PERCENTAGE" } export type CouponUsage = { __typename?: 'CouponUsage'; coupon: Coupon; createdBy: Scalars['String']['output']; currency: Scalars['String']['output']; discountType: CouponType; discountValue: Scalars['Float']['output']; finalAmount: Scalars['Float']['output']; id: Scalars['ID']['output']; metadata?: Maybe; onBehalfOf: Scalars['String']['output']; orderId?: Maybe; originalAmount: Scalars['Float']['output']; transactionId?: Maybe; usedAt: Scalars['DateTime']['output']; userId: Scalars['String']['output']; }; export type CouponUsageListResponse = { __typename?: 'CouponUsageListResponse'; hasMore: Scalars['Boolean']['output']; total: Scalars['Int']['output']; usages: Array; }; export type CouponsListResponse = { __typename?: 'CouponsListResponse'; coupons: Array; hasMore: Scalars['Boolean']['output']; total: Scalars['Int']['output']; }; export type CoverageChangeEvent = { __typename?: 'CoverageChangeEvent'; languageCode: Scalars['String']['output']; newCoverage: Scalars['Float']['output']; previousCoverage: Scalars['Float']['output']; productCode: Scalars['String']['output']; timestamp: Scalars['DateTime']['output']; }; export type CreateAffiliateCodeInput = { code?: InputMaybe; description?: InputMaybe; destinationUrl?: InputMaybe; label?: InputMaybe; metadata?: InputMaybe; productSlug?: InputMaybe; }; export type CreateAgentProfileInput = { autoAssign?: InputMaybe; context?: InputMaybe; maxChats?: InputMaybe; maxTickets?: InputMaybe; skills?: InputMaybe>; teams?: InputMaybe>; timezone?: InputMaybe; userId: Scalars['String']['input']; workingHours?: InputMaybe; }; export type CreateAppCollectionInput = { appIds?: InputMaybe>; bannerUrl?: InputMaybe; collectionType: Scalars['String']['input']; description?: InputMaybe; displayOrder?: InputMaybe; endsAt?: InputMaybe; iconUrl?: InputMaybe; isActive?: InputMaybe; isFeatured?: InputMaybe; metadata?: InputMaybe; name: Scalars['String']['input']; slug?: InputMaybe; startsAt?: InputMaybe; }; export type CreateAppInput = { actorType?: InputMaybe; description?: InputMaybe; name: Scalars['String']['input']; redirectUris?: InputMaybe>; scopes: Array; type: AppType; }; export type CreateAppReviewInput = { body?: InputMaybe; installationId?: InputMaybe; rating: Scalars['Int']['input']; title?: InputMaybe; }; export type CreateApplicationInput = { /** Opaque reference to auth-svc App ID (links this application to an OAuth app) */ appId?: InputMaybe; appType: AppType; category?: InputMaybe; /** Which products this item is compatible with (e.g. "fluidgrids", "workspaces"). Stored in manifest.compatibility.products and extracted to the store on publish. */ compatibleProducts?: InputMaybe>; description?: InputMaybe; developerOrganizationId?: InputMaybe; documentationUrl?: InputMaybe; githubUrl?: InputMaybe; iconUrl?: InputMaybe; keywords?: InputMaybe>; manifest?: InputMaybe; name: Scalars['String']['input']; oauthAuthUrl?: InputMaybe; oauthRevokeUrl?: InputMaybe; oauthTokenUrl?: InputMaybe; privacyPolicyUrl?: InputMaybe; requiresApproval?: InputMaybe; shortDescription?: InputMaybe; slug?: InputMaybe; supportUrl?: InputMaybe; tags?: InputMaybe>; termsOfServiceUrl?: InputMaybe; visibility?: InputMaybe; websiteUrl?: InputMaybe; }; export type CreateApplicationVersionInput = { changelog?: InputMaybe; manifest?: InputMaybe; maxPlatformVersion?: InputMaybe; minPlatformVersion?: InputMaybe; packageHash?: InputMaybe; packageSize?: InputMaybe; packageUrl?: InputMaybe; releaseNotes?: InputMaybe; requiredScopes?: InputMaybe>; version: Scalars['String']['input']; }; export type CreateAutomationInput = { context?: InputMaybe; description?: InputMaybe; enabled?: InputMaybe; metadata?: InputMaybe; name: Scalars['String']['input']; platformProductId: Scalars['String']['input']; trigger: Scalars['JSON']['input']; }; export type CreateAutomationStepInput = { automationId: Scalars['ID']['input']; config: Scalars['JSON']['input']; stepNumber: Scalars['Int']['input']; stepType: AutomationStepType; }; export type CreateBillingAccountInput = { /** Billing-specific email (optional) */ billingEmail?: InputMaybe; /** Contact phone number (optional) */ contactNumber?: InputMaybe; /** Default currency (defaults to USD) */ currency?: InputMaybe; /** Contact email */ email: Scalars['String']['input']; /** Additional metadata (optional) */ metadata?: InputMaybe; /** Name of the billing account */ name: Scalars['String']['input']; /** Tax ID / VAT number (optional) */ taxId?: InputMaybe; /** Workspace ID to auto-assign workspace-scoped free-plan quotas (optional, 1-workspace orgs only) */ workspaceId?: InputMaybe; }; export type CreateBillingOrderInput = { billingAccountId?: InputMaybe; callbackGraphQL?: InputMaybe; currency: Scalars['String']['input']; description?: InputMaybe; expiryMinutes?: InputMaybe; externalOrderId: Scalars['String']['input']; externalService: Scalars['String']['input']; items: Array; metadata?: InputMaybe; subtotal: Scalars['Float']['input']; }; export type CreateBillingOrderResponse = { __typename?: 'CreateBillingOrderResponse'; error?: Maybe; order?: Maybe; success: Scalars['Boolean']['output']; }; export type CreateCampaignInput = { /** Newsletter context for scoping (workspaceId, userId, productId, tenantId, etc.) */ context?: InputMaybe; newsletterId: Scalars['String']['input']; segment?: InputMaybe; subject: Scalars['String']['input']; }; export type CreateCannedResponseInput = { category?: InputMaybe; content: Scalars['String']['input']; context?: InputMaybe; shortcut?: InputMaybe; tags?: InputMaybe>; title: Scalars['String']['input']; }; export type CreateCategoryInput = { description?: InputMaybe; icon?: InputMaybe; metadata?: InputMaybe; name: Scalars['String']['input']; parentId?: InputMaybe; slug: Scalars['String']['input']; }; /** Input for creating a new channel */ export type CreateChannelInput = { /** Specific adapter type (SENDGRID, AWS_SES, TWILIO, etc.) */ adapterType?: InputMaybe; /** Channel type: NOTIFICATION (EMAIL/SMS) or COMMUNICATION (SLACK/TEAMS/etc). If omitted, defaults based on platform: EMAIL, SMS → NOTIFICATION All others → COMMUNICATION */ channelType?: InputMaybe; /** Operation context for scoping */ context?: InputMaybe; /** Optional description */ description?: InputMaybe; /** Channel name */ name: Scalars['String']['input']; /** Organization ID (opaque reference) */ organizationId: Scalars['ID']['input']; /** Channel platform (Slack, Teams, Discord, etc.) */ platform: ChannelPlatform; /** Platform-specific configuration (webhook URLs, etc.) */ platformConfig?: InputMaybe; /** Priority for fallback ordering (lower = higher priority). Default is 100. Use 1 for highest priority. All ACTIVE channels are included in the failover chain. */ priority?: InputMaybe; /** Channel status (default: ACTIVE) */ status?: InputMaybe; }; /** Input for creating a channel connection (OAuth flow) */ export type CreateConnectionInput = { /** API key or bot token (for direct auth) */ apiKey?: InputMaybe; /** OAuth authorization code (for OAuth flows) */ authCode?: InputMaybe; /** Authentication type */ authType: ChannelAuthType; /** Channel ID to connect */ channelId: Scalars['ID']['input']; /** Operation context for scoping */ context?: InputMaybe; /** Platform-specific credentials (email: SMTP/IMAP config) */ credentials?: InputMaybe; /** Redirect URI (for OAuth) */ redirectUri?: InputMaybe; }; export type CreateContentPageInput = { author?: InputMaybe; category?: InputMaybe; content: Scalars['String']['input']; contentFormat?: InputMaybe; excerpt?: InputMaybe; featured?: InputMaybe; isPublished?: InputMaybe; productId?: InputMaybe; publishedAt?: InputMaybe; readingTime?: InputMaybe; seoDescription?: InputMaybe; seoKeywords?: InputMaybe; seoTitle?: InputMaybe; slug: Scalars['String']['input']; sortOrder?: InputMaybe; tags?: InputMaybe>; thumbnail?: InputMaybe; title: Scalars['String']['input']; visibility?: InputMaybe; }; export type CreateCouponInput = { applicableEntityTypes?: InputMaybe>; applicableProductIds?: InputMaybe>; applicableProducts?: InputMaybe>; applicableServices?: InputMaybe>; campaignId?: InputMaybe; campaignName?: InputMaybe; code: Scalars['String']['input']; currency?: InputMaybe; description?: InputMaybe; excludedProducts?: InputMaybe>; excludedServices?: InputMaybe>; maxDiscountAmount?: InputMaybe; maxTotalUses?: InputMaybe; maxUsesPerUser?: InputMaybe; metadata?: InputMaybe; minPurchaseAmount?: InputMaybe; name: Scalars['String']['input']; restrictedToUserIds?: InputMaybe>; scope: CouponScope; type: CouponType; validFrom: Scalars['DateTime']['input']; validUntil?: InputMaybe; value: Scalars['Float']['input']; }; export type CreateDeveloperOrganizationInput = { bannerUrl?: InputMaybe; billingAccountId?: InputMaybe; contactEmail?: InputMaybe; description?: InputMaybe; legalAddress?: InputMaybe; legalEntityName?: InputMaybe; legalEntityType?: InputMaybe; logoUrl?: InputMaybe; metadata?: InputMaybe; name: Scalars['String']['input']; /** Optional at creation — dedicated pickup pincode for carrier rate quoting on physical-goods orders (Shiprocket, etc). Only meaningful for createSellerOrganization (PHYSICAL orgs); ignored for DIGITAL orgs. Can always be added or changed later from organization settings. */ pickupPostalCode?: InputMaybe; slug?: InputMaybe; supportEmail?: InputMaybe; websiteUrl?: InputMaybe; }; export type CreateDeveloperProfileInput = { bio?: InputMaybe; companyName?: InputMaybe; emailNotifications?: InputMaybe; githubUsername?: InputMaybe; linkedinUrl?: InputMaybe; marketingEmails?: InputMaybe; twitterUsername?: InputMaybe; website?: InputMaybe; }; export type CreateEditorialCollectionInput = { endsAt?: InputMaybe; heroAssetId?: InputMaybe; orderIndex?: InputMaybe; productIds: Array; slug: Scalars['String']['input']; startsAt?: InputMaybe; storeId: Scalars['ID']['input']; subtitle?: InputMaybe; title: Scalars['String']['input']; }; /** Input for creating a new subscription entitlement */ export type CreateEntitlementInput = { /** The type of access (FREE_ACCESS or DISCOUNT) */ accessType: EntitlementAccessType; /** Discount percentage (required if accessType is DISCOUNT, 0-100) */ discountPercentage?: InputMaybe; /** The store item ID (from Store service) */ itemId: Scalars['ID']['input']; /** The plan ID that grants this entitlement */ planId: Scalars['ID']['input']; }; export type CreateFaqInput = { answer: Scalars['String']['input']; category?: InputMaybe; context?: InputMaybe; displayOrder?: InputMaybe; isPublished?: InputMaybe; question: Scalars['String']['input']; tags?: InputMaybe>; }; export type CreateFeatureFlagInput = { category?: InputMaybe; defaultValue?: InputMaybe; description?: InputMaybe; flagType?: InputMaybe; key: Scalars['String']['input']; metadata?: InputMaybe; name: Scalars['String']['input']; previewable?: InputMaybe; productId?: InputMaybe; tags?: InputMaybe>; }; export type CreateI18nModuleInput = { description?: InputMaybe; displayName: Scalars['String']['input']; metadata?: InputMaybe; name: Scalars['String']['input']; productId: Scalars['String']['input']; }; export type CreateI18nNamespaceInput = { description?: InputMaybe; displayName: Scalars['String']['input']; metadata?: InputMaybe; moduleId: Scalars['String']['input']; name: Scalars['String']['input']; }; export type CreateI18nProductInput = { description?: InputMaybe; displayName: Scalars['String']['input']; metadata?: InputMaybe; name: Scalars['String']['input']; }; export type CreateImportJobInput = { fileName: Scalars['String']['input']; fileSize: Scalars['Int']['input']; fileUrl?: InputMaybe; format: ImportJobFormat; options?: InputMaybe; productId: Scalars['String']['input']; }; export type CreateInterviewRoundConfigInput = { context?: InputMaybe; description?: InputMaybe; isAssignmentRound?: InputMaybe; isRequired?: InputMaybe; jobPostingId: Scalars['ID']['input']; name: Scalars['String']['input']; roundNumber: Scalars['Int']['input']; roundType: InterviewRoundType; }; export type CreateInterviewRoundInput = { applicationId: Scalars['ID']['input']; assignmentId?: InputMaybe; candidateMessage?: InputMaybe; context?: InputMaybe; name: Scalars['String']['input']; notes?: InputMaybe; roundConfigId?: InputMaybe; roundType: InterviewRoundType; scheduledAt?: InputMaybe; status?: InputMaybe; }; export type CreateInterviewerInput = { context?: InputMaybe; department?: InputMaybe; email: Scalars['String']['input']; isActive?: InputMaybe; name: Scalars['String']['input']; notes?: InputMaybe; title?: InputMaybe; userId?: InputMaybe; }; /** Input for an admin manually adding a candidate to the pipeline (e.g. sourced via LinkedIn, referral, or a recruiting agency). reCAPTCHA does not apply — the caller is an authenticated admin. The resume is optional; when provided it is stored in the same private bucket as public submissions. */ export type CreateJobApplicationInput = { coverLetter?: InputMaybe; department?: InputMaybe; email: Scalars['String']['input']; /** Job posting to link; position/department are derived from it when not passed. */ jobPostingId?: InputMaybe; linkedin?: InputMaybe; /** Full name of the candidate (split into first/last server-side). */ name: Scalars['String']['input']; phone?: InputMaybe; portfolio?: InputMaybe; position?: InputMaybe; /** Base64-encoded resume bytes (a `data:` URL prefix is tolerated). */ resumeBase64?: InputMaybe; resumeFileName?: InputMaybe; /** MIME type — must be PDF, DOC, or DOCX when a resume is provided. */ resumeMimeType?: InputMaybe; /** How the candidate entered the pipeline (e.g. LINKEDIN, REFERRAL, AGENCY). */ source: Scalars['String']['input']; }; export type CreateJobAssignmentInput = { context?: InputMaybe; description: Scalars['String']['input']; difficulty?: InputMaybe; isActive?: InputMaybe; jobPostingId: Scalars['ID']['input']; /** Optional attribution — who authored/owns this assignment. */ ownerEmail?: InputMaybe; problemStatement?: InputMaybe; title: Scalars['String']['input']; }; export type CreateJobPostingInput = { context?: InputMaybe; department?: InputMaybe; description?: InputMaybe; employmentType?: InputMaybe; learnings?: InputMaybe>; location?: InputMaybe; openings?: InputMaybe; overview?: InputMaybe; productId?: InputMaybe; qualifications?: InputMaybe>; responsibilities?: InputMaybe>; slug?: InputMaybe; status?: InputMaybe; title: Scalars['String']['input']; }; export type CreateKeyboardShortcutInput = { /** Category for grouping (required) */ category: Scalars['String']['input']; /** Extended description */ description?: InputMaybe; /** Event name to emit (required) */ eventName: Scalars['String']['input']; /** Whether shortcut is enabled (defaults to true) */ isEnabled?: InputMaybe; /** Whether this is a key sequence (defaults to auto-detect) */ isSequence?: InputMaybe; /** Display label (required) */ label: Scalars['String']['input']; /** Mac-specific key override */ macKey?: InputMaybe; /** Product ID (optional - null for global shortcuts) */ productId?: InputMaybe; /** Key combination (required) */ shortcutKey: Scalars['String']['input']; /** Display order (defaults to 0) */ sortOrder?: InputMaybe; /** Windows/Linux-specific key override */ windowsKey?: InputMaybe; }; export type CreateKnowledgeBaseArticleInput = { categoryId?: InputMaybe; content: Scalars['String']['input']; context?: InputMaybe; excerpt?: InputMaybe; metaDescription?: InputMaybe; slug: Scalars['String']['input']; status?: InputMaybe; tags?: InputMaybe>; title: Scalars['String']['input']; }; export type CreateLanguageInput = { code: Scalars['String']['input']; dateFormat?: InputMaybe; direction?: InputMaybe; fallbackCode?: InputMaybe; metadata?: InputMaybe; name: Scalars['String']['input']; nativeName: Scalars['String']['input']; pluralRules?: InputMaybe; region?: InputMaybe; timeFormat?: InputMaybe; }; export type CreateNewsletterInput = { content: Scalars['String']['input']; /** Newsletter context for scoping (workspaceId, userId, productId, tenantId, etc.) */ context?: InputMaybe; metadata?: InputMaybe; plans?: InputMaybe; platformProductId: Scalars['String']['input']; previewText?: InputMaybe; products?: InputMaybe; recipientType?: InputMaybe; scheduledFor?: InputMaybe; segmentConfig?: InputMaybe; slug: Scalars['String']['input']; subject?: InputMaybe; title: Scalars['String']['input']; }; export type CreateNewsletterListInput = { context?: InputMaybe; description?: InputMaybe; metadata?: InputMaybe; name: Scalars['String']['input']; platformProductId: Scalars['String']['input']; }; export type CreateNewsletterTemplateInput = { category?: InputMaybe; context?: InputMaybe; description?: InputMaybe; html: Scalars['String']['input']; isPublic?: InputMaybe; metadata?: InputMaybe; name: Scalars['String']['input']; platformProductId: Scalars['String']['input']; thumbnail?: InputMaybe; }; export type CreateNotificationHistoryInput = { channelServiceEventId?: InputMaybe; deliveryStatus?: InputMaybe; details?: InputMaybe; eventType: NotificationEventType; externalId?: InputMaybe; metadata?: InputMaybe; notificationId: Scalars['ID']['input']; timestamp?: InputMaybe; }; export type CreateNotificationInput = { actions?: InputMaybe>; appName?: InputMaybe; body: Scalars['String']['input']; channel: NotificationChannel; data?: InputMaybe; expiresAt?: InputMaybe; htmlBody?: InputMaybe; media?: InputMaybe>; metadata?: InputMaybe; priority?: InputMaybe; recipient: RecipientInput; redirectUrl?: InputMaybe; subject?: InputMaybe; topicId?: InputMaybe; trackClicks?: InputMaybe; trackOpens?: InputMaybe; type?: InputMaybe; }; export type CreateNotificationPreferenceInput = { channel?: InputMaybe; enabled?: InputMaybe; frequency?: InputMaybe; metadata?: InputMaybe; quietHoursEnd?: InputMaybe; quietHoursStart?: InputMaybe; scope: NotificationPreferenceScope; timezone?: InputMaybe; topicId?: InputMaybe; type?: InputMaybe; userId?: InputMaybe; }; export type CreateNotificationTopicInput = { description?: InputMaybe; isActive?: InputMaybe; metadata?: InputMaybe; name: Scalars['String']['input']; slug: Scalars['String']['input']; type: NotificationType; }; /** Input for creating a new organization */ export type CreateOrganizationInput = { description?: InputMaybe; logo?: InputMaybe; metadata?: InputMaybe; name: Scalars['String']['input']; /** reCAPTCHA token required when CAPTCHA_ENABLED=true. */ recaptchaToken?: InputMaybe; settings?: InputMaybe; slug: Scalars['String']['input']; status?: InputMaybe; /** Optional. Defaults to the active shared tenant when omitted. While a user has access to only the single shared tenant there is nothing to choose, so the org-create UI hides the tenant picker and leaves this unset. An explicit (dedicated) tenantId is still honoured. */ tenantId?: InputMaybe; type?: InputMaybe; website?: InputMaybe; }; export type CreatePaymentMethodInput = { /** Billing account ID to associate with */ billingAccountId: Scalars['ID']['input']; /** Card brand (visa, mastercard, etc.) */ brand?: InputMaybe; /** Card expiry month */ expiryMonth?: InputMaybe; /** Card expiry year */ expiryYear?: InputMaybe; /** Set as default payment method */ isDefault?: InputMaybe; /** Last 4 digits of the card */ last4?: InputMaybe; /** Additional metadata */ metadata?: InputMaybe; /** Razorpay payment method ID */ razorpayPaymentMethodId?: InputMaybe; /** Stripe payment method ID */ stripePaymentMethodId?: InputMaybe; /** Payment method type */ type: PaymentMethodType; }; /** Input for creating a permission override */ export type CreatePermissionOverrideInput = { action: Scalars['String']['input']; actorId: Scalars['String']['input']; actorType: ActorType; expiresAt?: InputMaybe; overrideType: OverrideType; priority?: InputMaybe; reason?: InputMaybe; resourceId?: InputMaybe; resourceType: Scalars['String']['input']; scopeId: Scalars['String']['input']; validFrom?: InputMaybe; validUntil?: InputMaybe; }; export type CreatePhysicalProductInput = { allowBackorder?: InputMaybe; bannerUrl?: InputMaybe; brand?: InputMaybe; category?: InputMaybe; /** Which platform products this listing is relevant to (e.g. "healthybowl"). Set by the calling seller-portal shell — see DeveloperOrgKind (BOFF-7285). */ compatibleProducts?: InputMaybe>; countryOfOrigin?: InputMaybe; currency?: InputMaybe; description?: InputMaybe; dimensionUnit?: InputMaybe; height?: InputMaybe; icon?: InputMaybe; length?: InputMaybe; longDescription?: InputMaybe; lowStockThreshold?: InputMaybe; manufacturer?: InputMaybe; metadata?: InputMaybe; name: Scalars['String']['input']; organizationId: Scalars['ID']['input']; price: Scalars['Float']['input']; requiresShipping?: InputMaybe; returnPolicy?: InputMaybe; screenshots?: InputMaybe>; sku?: InputMaybe; slug: Scalars['String']['input']; stockQuantity?: InputMaybe; tags?: InputMaybe>; trackInventory?: InputMaybe; type: ProductType; warrantyInfo?: InputMaybe; weight?: InputMaybe; weightUnit?: InputMaybe; width?: InputMaybe; }; export type CreatePlatformProductInput = { appStoreUrl?: InputMaybe; /** Application URL */ appUrl?: InputMaybe; contactAddress?: InputMaybe; contactEmail?: InputMaybe; contactPhone?: InputMaybe; /** Product description */ description?: InputMaybe; /** Documentation URL */ docsUrl?: InputMaybe; /** GitHub repository URL */ githubUrl?: InputMaybe; /** Optional product launch/release date */ launchDate?: InputMaybe; /** Logo URL */ logoUrl?: InputMaybe; metadata?: InputMaybe; /** Product name (required) */ name: Scalars['String']['input']; notificationEmail?: InputMaybe; ogImage?: InputMaybe; playStoreUrl?: InputMaybe; recaptchaSecretKey?: InputMaybe; recaptchaSiteKey?: InputMaybe; resourceLinks?: InputMaybe; rybbitSiteId?: InputMaybe; seoDescription?: InputMaybe; seoKeywords?: InputMaybe; seoTitle?: InputMaybe; /** Unique slug (required) */ slug: Scalars['String']['input']; socialLinks?: InputMaybe; /** Product status (defaults to DRAFT) */ status?: InputMaybe; /** Status page URL */ statusPageUrl?: InputMaybe; supportEmail?: InputMaybe; tags?: InputMaybe>; /** Website URL */ website?: InputMaybe; }; export type CreatePolicyReferenceInput = { action: Scalars['String']['input']; description?: InputMaybe; isActive?: InputMaybe; name: Scalars['String']['input']; opaPackage: Scalars['String']['input']; priority?: InputMaybe; resourceType: Scalars['String']['input']; }; export type CreatePressKitAssetInput = { category: PressKitAssetCategory; description?: InputMaybe; fileName?: InputMaybe; fileSize?: InputMaybe; fileUrl: Scalars['String']['input']; mimeType?: InputMaybe; productId: Scalars['String']['input']; slug: Scalars['String']['input']; sortOrder?: InputMaybe; tags?: InputMaybe>; thumbnailUrl?: InputMaybe; title: Scalars['String']['input']; version?: InputMaybe; visibility?: InputMaybe; }; /** Input to request a presigned upload URL for a press kit file. */ export type CreatePressKitAssetUploadUrlInput = { category: PressKitAssetCategory; contentType: Scalars['String']['input']; fileName: Scalars['String']['input']; fileSize: Scalars['Int']['input']; productId: Scalars['String']['input']; }; export type CreateProductEntitlementInput = { expiresAt?: InputMaybe; metadata?: InputMaybe; productId: Scalars['String']['input']; purchasedBy: Scalars['String']['input']; workspaceId?: InputMaybe; }; export type CreateProductInput = { bannerUrl?: InputMaybe; category?: InputMaybe; compatibleProducts?: InputMaybe>; content?: InputMaybe; currency?: InputMaybe; description?: InputMaybe; documentationUrl?: InputMaybe; icon?: InputMaybe; longDescription?: InputMaybe; manifest?: InputMaybe; manifestVersion?: InputMaybe; metadata?: InputMaybe; name: Scalars['String']['input']; nature?: InputMaybe; price: Scalars['Float']['input']; pricingModel?: InputMaybe; productId?: InputMaybe; repositoryUrl?: InputMaybe; screenshots?: InputMaybe>; slug: Scalars['String']['input']; status?: InputMaybe; tags?: InputMaybe>; type: ProductType; videoUrls?: InputMaybe>; zipFileUrl?: InputMaybe; }; export type CreateProductVariantInput = { compareAtPrice?: InputMaybe; displayOrder?: InputMaybe; imageUrls?: InputMaybe>; isActive?: InputMaybe; lowStockThreshold?: InputMaybe; metadata?: InputMaybe; name: Scalars['String']['input']; options: Scalars['JSON']['input']; price?: InputMaybe; sku?: InputMaybe; stockQuantity: Scalars['Int']['input']; storeProductId: Scalars['String']['input']; weight?: InputMaybe; weightUnit?: InputMaybe; }; export type CreatePromoCodeInput = { applicableCategoryIds?: InputMaybe>; applicableProductIds?: InputMaybe>; code: Scalars['String']['input']; currency?: InputMaybe; description?: InputMaybe; expiresAt?: InputMaybe; maxRedemptions?: InputMaybe; minOrderAmount?: InputMaybe; startsAt?: InputMaybe; storeId?: InputMaybe; type: PromoCodeType; value: Scalars['Float']['input']; }; export type CreatePromotionInput = { applicablePlanIds?: InputMaybe>; applicableProductIds?: InputMaybe>; bonusMonths: Scalars['Int']['input']; description?: InputMaybe; expiresAt: Scalars['DateTime']['input']; maxRedemptions?: InputMaybe; name: Scalars['String']['input']; startsAt: Scalars['DateTime']['input']; }; /** Input for creating support tickets from public/unauthenticated sources (e.g. website contact forms). */ export type CreatePublicSupportTicketInput = { customFields?: InputMaybe; description: Scalars['String']['input']; metadata?: InputMaybe; /** reCAPTCHA token required when CAPTCHA_ENABLED=true. */ recaptchaToken?: InputMaybe; source?: InputMaybe; subject: Scalars['String']['input']; }; export type CreateRecurringBillingInput = { amount: Scalars['Float']['input']; currency: Scalars['String']['input']; description?: InputMaybe; entityId: Scalars['String']['input']; entityType: Scalars['String']['input']; interval: SubscriptionInterval; intervalCount?: InputMaybe; name: Scalars['String']['input']; }; export type CreateReferralCodeInput = { metadata?: InputMaybe; orgId: Scalars['String']['input']; refereeDiscountType?: InputMaybe; refereeDiscountValue?: InputMaybe; referrerRewardCredits?: InputMaybe; referrerRewardType: ReferralRewardType; referrerRewardValue: Scalars['Float']['input']; userId: Scalars['String']['input']; validUntil?: InputMaybe; }; export type CreateReleaseInput = { bundleAssetId?: InputMaybe; countries?: InputMaybe>; manifestAssetId?: InputMaybe; productId: Scalars['ID']['input']; releaseNotes?: InputMaybe; trackId: Scalars['ID']['input']; version: Scalars['String']['input']; }; export type CreateReleaseTrackInput = { name: Scalars['String']['input']; productId: Scalars['ID']['input']; type: ReleaseTrackType; }; export type CreateReviewInput = { comment?: InputMaybe; productId: Scalars['String']['input']; rating: Scalars['Int']['input']; title?: InputMaybe; }; export type CreateReviewReplyInput = { productId: Scalars['ID']['input']; replierType: Scalars['String']['input']; replyText: Scalars['String']['input']; reviewId: Scalars['ID']['input']; }; /** Input for creating a new role */ export type CreateRoleInput = { description?: InputMaybe; isSystem?: InputMaybe; name: Scalars['String']['input']; parentId?: InputMaybe; priority?: InputMaybe; /** Product this role belongs to (PlatformProduct.slug). Product shells must pass their product slug when creating custom roles. Omit/null is reserved for cross-product platform roles created from the admin app. */ productSlug?: InputMaybe; scopeId: Scalars['String']['input']; scopeType?: InputMaybe; }; /** Input for creating a role permission override */ export type CreateRolePermissionOverrideInput = { action: Scalars['String']['input']; expiresAt?: InputMaybe; overrideType: OverrideType; priority?: InputMaybe; reason?: InputMaybe; resourceId?: InputMaybe; resourceType: Scalars['String']['input']; roleId: Scalars['ID']['input']; scopeId: Scalars['String']['input']; validFrom?: InputMaybe; validUntil?: InputMaybe; }; export type CreateSlaPolicyInput = { businessHours?: InputMaybe; categoryId?: InputMaybe; context?: InputMaybe; description?: InputMaybe; escalationRules?: InputMaybe; firstResponseMinutes: Scalars['Int']['input']; holidays?: InputMaybe; isDefault?: InputMaybe; name: Scalars['String']['input']; priority: SupportTicketPriority; resolutionMinutes: Scalars['Int']['input']; timezone?: InputMaybe; }; export type CreateScheduleTemplateInput = { businessCalendarId?: InputMaybe; category?: InputMaybe; circuitBreaker?: InputMaybe; description?: InputMaybe; executorConfig: Scalars['JSON']['input']; executorType: ExecutorType; failurePolicy?: InputMaybe; isPublic?: InputMaybe; name: Scalars['String']['input']; payloadTemplate?: InputMaybe; retryPolicy?: InputMaybe; scheduleConfig: Scalars['JSON']['input']; scheduleType: ScheduleType; }; export type CreateScheduledJobInput = { actionId?: InputMaybe; autoDisableAfter?: InputMaybe; businessCalendarId?: InputMaybe; circuitBreaker?: InputMaybe; cronExpression?: InputMaybe; description?: InputMaybe; endDate?: InputMaybe; executorConfig?: InputMaybe; executorType?: InputMaybe; failurePolicy?: InputMaybe; interval?: InputMaybe; intervalUnit?: InputMaybe; maxOccurrences?: InputMaybe; maxRetries?: InputMaybe; metadata?: InputMaybe; misfirePolicy?: InputMaybe; misfireThreshold?: InputMaybe; name?: InputMaybe; payloadTemplate?: InputMaybe; priority?: InputMaybe; retryDelay?: InputMaybe; retryPolicy?: InputMaybe; rrule?: InputMaybe; scheduleType: ScheduleType; scheduledAt?: InputMaybe; secrets?: InputMaybe; startDate?: InputMaybe; tags?: InputMaybe>; timeWindows?: InputMaybe; timezone?: InputMaybe; }; export type CreateShippingAddressInput = { addressLine1: Scalars['String']['input']; addressLine2?: InputMaybe; city: Scalars['String']['input']; country: Scalars['String']['input']; email?: InputMaybe; fullName: Scalars['String']['input']; instructions?: InputMaybe; isDefault?: InputMaybe; label?: InputMaybe; phone?: InputMaybe; postalCode: Scalars['String']['input']; state?: InputMaybe; }; export type CreateShippingMethodInput = { availableCountries?: InputMaybe>; baseCost: Scalars['Float']['input']; carrier?: InputMaybe; carrierServiceId?: InputMaybe; code: Scalars['String']['input']; costPerItem?: InputMaybe; costPerKg?: InputMaybe; currency?: InputMaybe; description?: InputMaybe; displayOrder?: InputMaybe; estimatedMaxDays?: InputMaybe; estimatedMinDays?: InputMaybe; excludedCountries?: InputMaybe>; isActive?: InputMaybe; maxDimensions?: InputMaybe; maxWeight?: InputMaybe; metadata?: InputMaybe; name: Scalars['String']['input']; }; export type CreateShippingRateInput = { baseCost: Scalars['Float']['input']; currency?: InputMaybe; displayOrder?: InputMaybe; estimatedMaxDays?: InputMaybe; estimatedMinDays?: InputMaybe; freeShippingMinOrderAmount?: InputMaybe; isActive?: InputMaybe; metadata?: InputMaybe; name: Scalars['String']['input']; shippingZoneId: Scalars['String']['input']; weightTiers?: InputMaybe; }; export type CreateShippingZoneInput = { countries: Array; isActive?: InputMaybe; metadata?: InputMaybe; name: Scalars['String']['input']; }; export type CreateSourcingRequestInput = { category: Scalars['String']['input']; deliveryCity?: InputMaybe; deliveryCountry: Scalars['String']['input']; deliveryRegion?: InputMaybe; deliveryWindowEnd: Scalars['DateTime']['input']; deliveryWindowStart: Scalars['DateTime']['input']; productName: Scalars['String']['input']; quantity: Scalars['Int']['input']; summary?: InputMaybe; /** Store sourcing settlement currency. Currently USD only. */ targetCurrency?: InputMaybe; /** Exact decimal string with at most two fractional digits. */ targetUnitPrice?: InputMaybe; unit: SourcingUnit; }; export type CreateStoreInput = { allowUnverifiedPublishers?: InputMaybe; currency?: InputMaybe; description?: InputMaybe; isPublic?: InputMaybe; logoUrl?: InputMaybe; name: Scalars['String']['input']; requiresApproval?: InputMaybe; slug: Scalars['String']['input']; tenantId?: InputMaybe; type: StoreType; websiteUrl?: InputMaybe; }; /** Input for creating a new store order */ export type CreateStoreOrderInput = { /** Applied entitlement ID if any */ appliedEntitlementId?: InputMaybe; /** Billing account ID for payment (can be empty, will be set on billing page) */ billingAccountId?: InputMaybe; /** Additional context */ context?: InputMaybe; /** Currency for the order (defaults to USD) */ currency?: InputMaybe; /** Line items in this order */ lineItems: Array; /** Additional metadata */ metadata?: InputMaybe; /** * Deprecated client total. The server calculates the total from catalog data. * @deprecated The server calculates the order total */ total?: InputMaybe; }; export type CreateSubscriptionInput = { amount: Scalars['Float']['input']; applicationId?: InputMaybe; couponCode?: InputMaybe; currency?: InputMaybe; interval: BillingInterval; planId?: InputMaybe; planName?: InputMaybe; subscriptionType: Scalars['String']['input']; tier?: InputMaybe; trialDays?: InputMaybe; }; export type CreateSupportMessageInput = { attachments?: InputMaybe>; /** Operation context for scoping (workspaceId, userId, projectId, etc.) */ context?: InputMaybe; isInternal?: InputMaybe; message: Scalars['String']['input']; ticketId: Scalars['String']['input']; type?: InputMaybe; }; export type CreateSupportTicketInput = { category?: InputMaybe; categoryId?: InputMaybe; /** Operation context for scoping (workspaceId, userId, projectId, etc.) */ context?: InputMaybe; customFields?: InputMaybe; description: Scalars['String']['input']; metadata?: InputMaybe; priority?: InputMaybe; source?: InputMaybe; subject: Scalars['String']['input']; tags?: InputMaybe>; workspaceId?: InputMaybe; }; export type CreateTagInput = { description?: InputMaybe; name: Scalars['String']['input']; slug: Scalars['String']['input']; }; export type CreateTemplateInput = { bodyTemplate: Scalars['String']['input']; /** Default delivery channel for this template (defaults to EMAIL if not specified) */ channel?: InputMaybe; description?: InputMaybe; htmlTemplate?: InputMaybe; locale?: InputMaybe; metadata?: InputMaybe; name: Scalars['String']['input']; slug: Scalars['String']['input']; subject?: InputMaybe; type: NotificationType; variables: Scalars['JSON']['input']; }; /** Input for creating a new tenant */ export type CreateTenantInput = { config?: InputMaybe; customDomain?: InputMaybe; metadata?: InputMaybe; name: Scalars['String']['input']; /** reCAPTCHA token required when CAPTCHA_ENABLED=true. */ recaptchaToken?: InputMaybe; slug: Scalars['String']['input']; type?: InputMaybe; }; export type CreateTicketCategoryInput = { color?: InputMaybe; context?: InputMaybe; description?: InputMaybe; displayOrder?: InputMaybe; icon?: InputMaybe; name: Scalars['String']['input']; parentId?: InputMaybe; slaOverride?: InputMaybe; slug: Scalars['String']['input']; }; export type CreateTicketTemplateInput = { body: Scalars['String']['input']; category?: InputMaybe; context?: InputMaybe; description?: InputMaybe; name: Scalars['String']['input']; priority?: InputMaybe; subject: Scalars['String']['input']; tags?: InputMaybe>; }; export type CreateTourInput = { /** Operation context for scoping (workspaceId, userId, productId, moduleId, etc.) */ context?: InputMaybe; description?: InputMaybe; desktopConfig?: InputMaybe; displayOrder?: InputMaybe; endDate?: InputMaybe; isActive?: InputMaybe; metadata?: InputMaybe; mobileConfig?: InputMaybe; moduleId?: InputMaybe; name: Scalars['String']['input']; pageId?: InputMaybe; priority?: InputMaybe; productId: Scalars['String']['input']; slug: Scalars['String']['input']; startDate?: InputMaybe; status?: InputMaybe; tabletConfig?: InputMaybe; triggerConfig?: InputMaybe; triggerType?: InputMaybe; }; export type CreateTourMediaInput = { altText?: InputMaybe; caption?: InputMaybe; cdnUrl?: InputMaybe; /** Operation context for scoping (workspaceId, userId, productId, moduleId, etc.) */ context?: InputMaybe; description?: InputMaybe; duration?: InputMaybe; height?: InputMaybe; isPublic?: InputMaybe; metadata?: InputMaybe; mimeType: Scalars['String']['input']; name: Scalars['String']['input']; size: Scalars['Int']['input']; storagePath: Scalars['String']['input']; storageUrl: Scalars['String']['input']; transcript?: InputMaybe; type: TourMediaType; width?: InputMaybe; }; export type CreateTourScheduleInput = { endDate?: InputMaybe; recurrenceRule?: InputMaybe; startDate: Scalars['DateTime']['input']; timezone?: InputMaybe; tourId: Scalars['String']['input']; }; export type CreateTourStepInput = { actions?: InputMaybe; content: Scalars['String']['input']; /** Operation context for scoping (workspaceId, userId, productId, moduleId, etc.) */ context?: InputMaybe; customData?: InputMaybe; metadata?: InputMaybe; placement?: InputMaybe; requireInteraction?: InputMaybe; skipConditions?: InputMaybe; stepOrder: Scalars['Int']['input']; targetSelector?: InputMaybe; targetSelectorDesktop?: InputMaybe; targetSelectorMobile?: InputMaybe; targetSelectorTablet?: InputMaybe; title: Scalars['String']['input']; tourId: Scalars['String']['input']; waitForEvent?: InputMaybe; waitForSelector?: InputMaybe; waitForTimeout?: InputMaybe; }; export type CreateTourTemplateInput = { category?: InputMaybe; config: Scalars['JSON']['input']; /** Operation context for scoping (workspaceId, userId, productId, moduleId, etc.) */ context?: InputMaybe; description?: InputMaybe; isPremium?: InputMaybe; isPublic?: InputMaybe; metadata?: InputMaybe; name: Scalars['String']['input']; slug: Scalars['String']['input']; tags?: InputMaybe>; thumbnail?: InputMaybe; }; export type CreateTranslationInput = { keyId: Scalars['String']['input']; languageCode: Scalars['String']['input']; metadata?: InputMaybe; notes?: InputMaybe; pluralForms?: InputMaybe; tenantId?: InputMaybe; value: Scalars['String']['input']; }; export type CreateTranslationKeyInput = { characterLimit?: InputMaybe; context?: InputMaybe; defaultValue?: InputMaybe; description?: InputMaybe; isPlural?: InputMaybe; key: Scalars['String']['input']; metadata?: InputMaybe; namespaceId?: InputMaybe; placeholders?: InputMaybe; productId: Scalars['String']['input']; tags?: InputMaybe>; }; /** Input for creating a complete tenant structure for a new user */ export type CreateUserTenantStructureInput = { /** ISO 3166-1 alpha-2 country code — used to set the default billing account currency */ country?: InputMaybe; email: Scalars['String']['input']; name: Scalars['String']['input']; organizationName?: InputMaybe; tenantName?: InputMaybe; userId: Scalars['String']['input']; workspaceName?: InputMaybe; }; export type CreateUserTenantStructureResponse = { __typename?: 'CreateUserTenantStructureResponse'; message?: Maybe; organizationId?: Maybe; provisioning: TenantStructureProvisioningState; success: Scalars['Boolean']['output']; tenantId?: Maybe; workspaceId?: Maybe; }; export type CreateVariantInput = { content: Scalars['String']['input']; name: Scalars['String']['input']; newsletterId: Scalars['ID']['input']; percentage: Scalars['Int']['input']; subject: Scalars['String']['input']; }; /** Input for creating a visibility rule */ export type CreateVisibilityRuleInput = { conditions?: InputMaybe; priority?: InputMaybe; resourceIdentifier: Scalars['String']['input']; resourceType: Scalars['String']['input']; scopeId: Scalars['String']['input']; targetId?: InputMaybe; targetType?: InputMaybe; visibilityType: VisibilityType; }; export type CreateWebhookInput = { description?: InputMaybe; events: Array; filters?: InputMaybe; maxRetries?: InputMaybe; name: Scalars['String']['input']; retryEnabled?: InputMaybe; url: Scalars['String']['input']; }; /** Input for creating a new workspace */ export type CreateWorkspaceInput = { endpoint?: InputMaybe; metadata?: InputMaybe; name: Scalars['String']['input']; organizationId?: InputMaybe; region?: InputMaybe; slug: Scalars['String']['input']; /** Optional. When omitted the server derives the tenant from the parent organization (a workspace always lives in its organization's tenant). With a single shared tenant there is nothing for the client to choose, so the tenant picker is hidden and this is left unset. */ tenantId?: InputMaybe; /** Deprecated: workspaces no longer expose a user-facing type. New workspaces default to TEAM; the field is retained for backward compatibility only. */ type?: InputMaybe; }; /** Credit balance broken down by type */ export type CreditBalanceByType = { __typename?: 'CreditBalanceByType'; earned: Scalars['Float']['output']; granted: Scalars['Float']['output']; purchased: Scalars['Float']['output']; total: Scalars['Float']['output']; /** Total that can be withdrawn (purchased + earned) */ withdrawable: Scalars['Float']['output']; }; export type CreditCost = { __typename?: 'CreditCost'; amount: Scalars['Float']['output']; }; export type CreditNote = { __typename?: 'CreditNote'; amount: Scalars['Float']['output']; context?: Maybe; createdAt: Scalars['DateTime']['output']; currency: Scalars['String']['output']; id: Scalars['ID']['output']; invoiceId?: Maybe; metadata?: Maybe; number: Scalars['String']['output']; orgId: Scalars['String']['output']; reason?: Maybe; updatedAt: Scalars['DateTime']['output']; }; export type CreditRate = { __typename?: 'CreditRate'; context?: Maybe; createdAt: Scalars['DateTime']['output']; effectiveFrom: Scalars['DateTime']['output']; id: Scalars['ID']['output']; rateUSD: Scalars['Float']['output']; updatedAt: Scalars['DateTime']['output']; }; /** CreditTransaction entity - resolvable via Federation Gateway. Other services (e.g., store-svc) can reference CreditTransaction by id. */ export type CreditTransaction = { __typename?: 'CreditTransaction'; amount: Scalars['Float']['output']; billingAccount: BillingAccount; billingAccountId: Scalars['ID']['output']; context?: Maybe; createdAt: Scalars['DateTime']['output']; entityId?: Maybe; entityType?: Maybe; /** For usage (debit) transactions: which credit bucket was debited */ fromType?: Maybe; id: Scalars['ID']['output']; /** For withdrawal debit transactions: the payout request they are reserved for */ payoutRequestId?: Maybe; productId: Scalars['String']['output']; status: CreditTransactionStatus; transaction?: Maybe; transactionId?: Maybe; type: CreditTransactionType; updatedAt: Scalars['DateTime']['output']; }; export declare enum CreditTransactionStatus { Failed = "failed", Pending = "pending", Refund = "refund", Success = "success" } export declare enum CreditTransactionType { Adjustment = "adjustment", Granted = "granted", Purchase = "purchase", Usage = "usage" } /** Currency conversion result */ export type CurrencyConversion = { __typename?: 'CurrencyConversion'; amount: Scalars['Float']['output']; exchangeRate: Scalars['Float']['output']; fromCurrency: Scalars['String']['output']; toCurrency: Scalars['String']['output']; }; export type CurrencyPriceOverrideInput = { amount: Scalars['Float']['input']; currency: Scalars['String']['input']; perSeatAmount?: InputMaybe; }; export type CustomerSatisfactionSurvey = { __typename?: 'CustomerSatisfactionSurvey'; comment?: Maybe; context?: Maybe; createdAt: Scalars['DateTime']['output']; customerId: Scalars['String']['output']; expiresAt: Scalars['DateTime']['output']; feedbackType?: Maybe; id: Scalars['ID']['output']; isExpired: Scalars['Boolean']['output']; isSubmitted: Scalars['Boolean']['output']; rating: Scalars['Int']['output']; sentAt: Scalars['DateTime']['output']; submittedAt?: Maybe; tenantId?: Maybe; ticket: SupportTicket; ticketId: Scalars['String']['output']; }; export type CustomerSatisfactionSurveyConnection = { __typename?: 'CustomerSatisfactionSurveyConnection'; hasMore: Scalars['Boolean']['output']; nodes: Array; totalCount: Scalars['Int']['output']; }; export type CustomerSatisfactionSurveyFilterInput = { context?: InputMaybe; customerId?: InputMaybe; endDate?: InputMaybe; feedbackType?: InputMaybe; isSubmitted?: InputMaybe; maxRating?: InputMaybe; minRating?: InputMaybe; rating?: InputMaybe; startDate?: InputMaybe; ticketId?: InputMaybe; }; export declare enum DlqStatus { Discarded = "DISCARDED", Investigating = "INVESTIGATING", Pending = "PENDING", Resolved = "RESOLVED" } export type DsarFilter = { status?: InputMaybe; subjectEmail?: InputMaybe; subjectId?: InputMaybe; type?: InputMaybe; }; export type DsarRequest = { __typename?: 'DSARRequest'; completedAt?: Maybe; createdAt: Scalars['DateTime']['output']; dueAt: Scalars['DateTime']['output']; fanoutState?: Maybe; id: Scalars['ID']['output']; identityProof?: Maybe; identityVerifiedAt?: Maybe; legalHoldFlag: Scalars['Boolean']['output']; notes?: Maybe; receivedAt: Scalars['DateTime']['output']; rejectionReason?: Maybe; requestedBy?: Maybe; resultArtifactHash?: Maybe; resultArtifactUrl?: Maybe; source: Scalars['String']['output']; status: DsarStatus; subjectEmail: Scalars['String']['output']; subjectId: Scalars['ID']['output']; type: DsarType; updatedAt: Scalars['DateTime']['output']; workflowId?: Maybe; workflowRunId?: Maybe; }; export type DsarRequestConnection = { __typename?: 'DSARRequestConnection'; hasMore: Scalars['Boolean']['output']; nodes: Array; total: Scalars['Int']['output']; }; export declare enum DsarStatus { AwaitingSubjectInput = "AWAITING_SUBJECT_INPUT", Cancelled = "CANCELLED", Completed = "COMPLETED", IdentityVerificationPending = "IDENTITY_VERIFICATION_PENDING", IdentityVerified = "IDENTITY_VERIFIED", InProgress = "IN_PROGRESS", OnHoldLegal = "ON_HOLD_LEGAL", Received = "RECEIVED", Rejected = "REJECTED" } export declare enum DsarType { Access = "ACCESS", Erasure = "ERASURE", Objection = "OBJECTION", Portability = "PORTABILITY", Rectification = "RECTIFICATION", Restriction = "RESTRICTION" } export type DailyUsage = { __typename?: 'DailyUsage'; count: Scalars['Int']['output']; date: Scalars['String']['output']; usage: Scalars['Float']['output']; }; /** Dashboard widget configuration for customization. */ export type DashboardWidgetInput = { /** Whether the widget is visible on the dashboard */ enabled: Scalars['Boolean']['input']; /** Display order (0-based) */ order: Scalars['Int']['input']; /** Widget size: 'small', 'medium', or 'large' */ size?: InputMaybe; /** Widget identifier (e.g. 'workspaces', 'projects', 'activity') */ widgetId: Scalars['String']['input']; }; /** Date range filter for queries */ export type DateRangeInput = { /** Start date (inclusive) */ from?: InputMaybe; /** End date (inclusive) */ to?: InputMaybe; }; export type DeadLetterQueue = { __typename?: 'DeadLetterQueue'; context?: Maybe; createdAt: Scalars['DateTime']['output']; executorConfig: Scalars['JSON']['output']; failureReason: Scalars['String']['output']; firstAttemptAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; lastAttemptAt: Scalars['DateTime']['output']; lastError: Scalars['String']['output']; lastErrorStack?: Maybe; metadata?: Maybe; originalRunId: Scalars['String']['output']; resolution?: Maybe; resolvedAt?: Maybe; resolvedBy?: Maybe; scheduleId: Scalars['String']['output']; scheduleName?: Maybe; status: DlqStatus; totalAttempts: Scalars['Int']['output']; }; export type DeadLetterQueueConnection = { __typename?: 'DeadLetterQueueConnection'; entries: Array; hasMore: Scalars['Boolean']['output']; total: Scalars['Int']['output']; }; export declare enum DelegationStatus { Active = "ACTIVE", Expired = "EXPIRED", Revoked = "REVOKED" } /** Result of user deletion */ export type DeleteUserResult = { __typename?: 'DeleteUserResult'; message: Scalars['String']['output']; success: Scalars['Boolean']['output']; }; /** Paginated list of delivery attempts with cursor support. Pass `nextCursor` from a previous response as `cursor` in the next call. */ export type DeliveryAttemptList = { __typename?: 'DeliveryAttemptList'; hasMore: Scalars['Boolean']['output']; items: Array; nextCursor?: Maybe; total: Scalars['Int']['output']; }; /** Delivery priority levels */ export declare enum DeliveryPriority { /** High priority - expedited delivery */ High = "HIGH", /** Low priority - can be delayed */ Low = "LOW", /** Normal priority - standard delivery */ Normal = "NORMAL", /** Urgent priority - immediate delivery */ Urgent = "URGENT" } /** Delivery statistics */ export type DeliveryStats = { __typename?: 'DeliveryStats'; /** Average delivery time (ms) */ avgDeliveryTimeMs: Scalars['Int']['output']; /** Channel ID */ channelId: Scalars['ID']['output']; /** Date range end */ endDate: Scalars['DateTime']['output']; /** Failed deliveries */ failedDeliveries: Scalars['Int']['output']; /** Pending deliveries */ pendingDeliveries: Scalars['Int']['output']; /** Date range start */ startDate: Scalars['DateTime']['output']; /** Success rate (percentage) */ successRate: Scalars['Float']['output']; /** Successful deliveries */ successfulDeliveries: Scalars['Int']['output']; /** Total delivery attempts */ totalAttempts: Scalars['Int']['output']; }; /** Message delivery attempt status */ export declare enum DeliveryStatus { /** Message bounced */ Bounced = "BOUNCED", /** Link clicked by recipient */ Clicked = "CLICKED", /** Delivered to recipient */ Delivered = "DELIVERED", /** Delivery failed */ Failed = "FAILED", /** Message opened by recipient */ Opened = "OPENED", /** Delivery pending */ Pending = "PENDING", /** Queued for delivery */ Queued = "QUEUED", /** Rate limited by platform */ RateLimited = "RATE_LIMITED", /** Message rejected by recipient */ Rejected = "REJECTED", /** Retrying after failure */ Retrying = "RETRYING", /** Currently sending */ Sending = "SENDING", /** Successfully sent */ Sent = "SENT" } /** Delivery updated event payload emitted on delivery status changes. */ export type DeliveryUpdatedEvent = { __typename?: 'DeliveryUpdatedEvent'; channelId: Scalars['ID']['output']; id: Scalars['ID']['output']; status: DeliveryStatus; }; export type DependencyTriggeredUpdate = { __typename?: 'DependencyTriggeredUpdate'; dependencyCount: Scalars['Int']['output']; scheduleId: Scalars['ID']['output']; scheduleName?: Maybe; timestamp: Scalars['DateTime']['output']; triggeredBy: Scalars['ID']['output']; }; export declare enum DevPortalPaymentMethodType { BankAccount = "BANK_ACCOUNT", Check = "CHECK", Paypal = "PAYPAL", StripeConnect = "STRIPE_CONNECT", Wire = "WIRE" } export declare enum DevPortalPricingModel { Enterprise = "ENTERPRISE", Free = "FREE", Freemium = "FREEMIUM", OneTime = "ONE_TIME", Subscription = "SUBSCRIPTION", UsageBased = "USAGE_BASED" } export declare enum DevPortalSubscriptionStatus { Active = "ACTIVE", Cancelled = "CANCELLED", Expired = "EXPIRED", PastDue = "PAST_DUE", Paused = "PAUSED", Trialing = "TRIALING", Unpaid = "UNPAID" } /** Developer earnings dashboard */ export type DeveloperEarnings = { __typename?: 'DeveloperEarnings'; currency: Scalars['String']['output']; earnings: Array; monthlyEarnings: Scalars['Float']['output']; monthlyOrders: Scalars['Int']['output']; topSellingItems: Array; totalEarnings: Scalars['Float']['output']; totalOrders: Scalars['Int']['output']; }; export type DeveloperEarningsInput = { endDate?: InputMaybe; period?: InputMaybe; startDate?: InputMaybe; }; /** Developer Organization Invitation - invite existing users to join a dev org */ export type DeveloperOrgInvitation = { __typename?: 'DeveloperOrgInvitation'; context?: Maybe; createdAt: Scalars['DateTime']['output']; expiresAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; invitedBy: Scalars['ID']['output']; invitedEmail: Scalars['String']['output']; invitedUserId?: Maybe; memberId?: Maybe; message?: Maybe; metadata?: Maybe; organization: DeveloperOrganization; organizationId: Scalars['ID']['output']; permissions?: Maybe; respondedAt?: Maybe; role: DeveloperOrgRole; status: InvitationStatus; updatedAt: Scalars['DateTime']['output']; }; export type DeveloperOrgInvitationConnection = { __typename?: 'DeveloperOrgInvitationConnection'; edges: Array; pageInfo: PageInfo; totalCount: Scalars['Int']['output']; }; /** Returned once by inviteDeveloperOrgMember. The token is only present here — never in subsequent invitation queries. */ export type DeveloperOrgInvitationCreated = { __typename?: 'DeveloperOrgInvitationCreated'; invitation: DeveloperOrgInvitation; token: Scalars['String']['output']; }; export type DeveloperOrgInvitationEdge = { __typename?: 'DeveloperOrgInvitationEdge'; cursor: Scalars['String']['output']; node: DeveloperOrgInvitation; }; /** DIGITAL orgs publish Applications to the store; PHYSICAL orgs list physical goods via the seller portal. Not user-selectable — fixed at creation by which flow provisioned the org. See BOFF-7285. */ export declare enum DeveloperOrgKind { Digital = "DIGITAL", Physical = "PHYSICAL" } /** Developer Organization Member - represents a member of a dev organization */ export type DeveloperOrgMember = { __typename?: 'DeveloperOrgMember'; context?: Maybe; createdAt: Scalars['DateTime']['output']; email?: Maybe; id: Scalars['ID']['output']; invitationId?: Maybe; invitedBy?: Maybe; isActive: Scalars['Boolean']['output']; isSuspended: Scalars['Boolean']['output']; joinedAt: Scalars['DateTime']['output']; lastActiveAt?: Maybe; metadata?: Maybe; organization: DeveloperOrganization; organizationId: Scalars['ID']['output']; permissions?: Maybe; role: DeveloperOrgRole; suspendedAt?: Maybe; suspendedReason?: Maybe; updatedAt: Scalars['DateTime']['output']; userId: Scalars['ID']['output']; }; export type DeveloperOrgMemberConnection = { __typename?: 'DeveloperOrgMemberConnection'; edges: Array; pageInfo: PageInfo; totalCount: Scalars['Int']['output']; }; export type DeveloperOrgMemberEdge = { __typename?: 'DeveloperOrgMemberEdge'; cursor: Scalars['String']['output']; node: DeveloperOrgMember; }; /** One calendar month of aggregated revenue for a developer organization, computed on demand from DeveloperOrgSale (DeveloperOrgRevenueAnalytics is not currently populated by any writer — same fallback rationale as developerOrgRevenueSummary below). Used to render revenue growth trends on the admin revenue detail page. */ export type DeveloperOrgMonthlyRevenuePoint = { __typename?: 'DeveloperOrgMonthlyRevenuePoint'; grossRevenue: Scalars['Float']['output']; month: Scalars['DateTime']['output']; netRevenue: Scalars['Float']['output']; platformFees: Scalars['Float']['output']; refunds: Scalars['Float']['output']; salesCount: Scalars['Int']['output']; }; /** Developer Organization Payment Method - for receiving payouts */ export type DeveloperOrgPaymentMethod = { __typename?: 'DeveloperOrgPaymentMethod'; accountLast4?: Maybe; context?: Maybe; country?: Maybe; createdAt: Scalars['DateTime']['output']; currency: Scalars['String']['output']; displayName?: Maybe; id: Scalars['ID']['output']; isActive: Scalars['Boolean']['output']; isDefault: Scalars['Boolean']['output']; metadata?: Maybe; name: Scalars['String']['output']; organization: DeveloperOrganization; organizationId: Scalars['ID']['output']; status: PaymentMethodStatus; taxFormType?: Maybe; taxFormUrl?: Maybe; taxFormVerified: Scalars['Boolean']['output']; taxFormVerifiedAt?: Maybe; type: DevPortalPaymentMethodType; updatedAt: Scalars['DateTime']['output']; verificationMethod?: Maybe; verifiedAt?: Maybe; }; /** Developer Organization Payout - monthly payouts to developers */ export type DeveloperOrgPayout = { __typename?: 'DeveloperOrgPayout'; adjustments: Scalars['Float']['output']; approvedAt?: Maybe; approvedBy?: Maybe; completedAt?: Maybe; context?: Maybe; createdAt: Scalars['DateTime']['output']; currency: Scalars['String']['output']; developerNotes?: Maybe; externalReference?: Maybe; failedAt?: Maybe; failureCode?: Maybe; failureReason?: Maybe; grossRevenue: Scalars['Float']['output']; id: Scalars['ID']['output']; internalNotes?: Maybe; invoiceNumber?: Maybe; invoiceUrl?: Maybe; lastRetryAt?: Maybe; meetsThreshold: Scalars['Boolean']['output']; metadata?: Maybe; minimumThreshold: Scalars['Float']['output']; netAmount: Scalars['Float']['output']; organization: DeveloperOrganization; organizationId: Scalars['ID']['output']; paymentMethod?: Maybe; paymentMethodId?: Maybe; periodEnd: Scalars['DateTime']['output']; periodLabel?: Maybe; periodStart: Scalars['DateTime']['output']; platformFees: Scalars['Float']['output']; processedAt?: Maybe; receiptUrl?: Maybe; refunds: Scalars['Float']['output']; refundsCount: Scalars['Int']['output']; requiresApproval: Scalars['Boolean']['output']; retryCount: Scalars['Int']['output']; sales: Array; salesCount: Scalars['Int']['output']; scheduledAt?: Maybe; status: PayoutStatus; transactionId?: Maybe; updatedAt: Scalars['DateTime']['output']; }; export type DeveloperOrgPayoutConnection = { __typename?: 'DeveloperOrgPayoutConnection'; edges: Array; pageInfo: PageInfo; totalCount: Scalars['Int']['output']; }; export type DeveloperOrgPayoutEdge = { __typename?: 'DeveloperOrgPayoutEdge'; cursor: Scalars['String']['output']; node: DeveloperOrgPayout; }; /** A real, physical pickup/warehouse address an organization has registered with a shipping carrier (e.g. Shiprocket) for physical-order fulfillment. An org can have several; exactly one is isDefault at a time. Created by global-store-svc's registerCarrierPickupLocation after a successful carrier-side registration (see recordDeveloperOrgPickupAddress) — removing a row here only stops us from using that address for this org, it does not reach out to the carrier (carriers like Shiprocket have no delete API). */ export type DeveloperOrgPickupAddress = { __typename?: 'DeveloperOrgPickupAddress'; address: Scalars['String']['output']; addressLine2?: Maybe; carrier: Scalars['String']['output']; carrierLocationLabel: Scalars['String']['output']; city: Scalars['String']['output']; country: Scalars['String']['output']; createdAt: Scalars['DateTime']['output']; email: Scalars['String']['output']; id: Scalars['ID']['output']; isDefault: Scalars['Boolean']['output']; name: Scalars['String']['output']; organization: DeveloperOrganization; organizationId: Scalars['ID']['output']; phone: Scalars['String']['output']; postalCode: Scalars['String']['output']; state: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; }; /** Developer Organization Revenue Analytics - aggregated revenue data */ export type DeveloperOrgRevenueAnalytics = { __typename?: 'DeveloperOrgRevenueAnalytics'; appBreakdown?: Maybe; context?: Maybe; createdAt: Scalars['DateTime']['output']; date: Scalars['DateTime']['output']; geoBreakdown?: Maybe; grossRevenue: Scalars['Float']['output']; id: Scalars['ID']['output']; metadata?: Maybe; netRevenue: Scalars['Float']['output']; newCustomers: Scalars['Int']['output']; organization: DeveloperOrganization; organizationId: Scalars['ID']['output']; period: Scalars['String']['output']; platformFees: Scalars['Float']['output']; pricingModelBreakdown?: Maybe; refunds: Scalars['Float']['output']; refundsCount: Scalars['Int']['output']; salesCount: Scalars['Int']['output']; }; export declare enum DeveloperOrgRole { Admin = "ADMIN", Developer = "DEVELOPER", Owner = "OWNER", Viewer = "VIEWER" } /** Developer Organization Sale - tracks a sale of an application */ export type DeveloperOrgSale = { __typename?: 'DeveloperOrgSale'; application?: Maybe; applicationId?: Maybe; billingCreditSyncError?: Maybe; billingCreditSyncStatus: Scalars['String']['output']; billingCreditSyncedAt?: Maybe; buyerOrgId?: Maybe; buyerTenantId?: Maybe; buyerUserId: Scalars['ID']['output']; buyerWorkspaceId?: Maybe; context?: Maybe; createdAt: Scalars['DateTime']['output']; currency: Scalars['String']['output']; discountAmount?: Maybe; discountCode?: Maybe; grossAmount: Scalars['Float']['output']; id: Scalars['ID']['output']; installationId?: Maybe; installationScope: Scalars['String']['output']; isPaidOut: Scalars['Boolean']['output']; isRenewal: Scalars['Boolean']['output']; metadata?: Maybe; netAmount: Scalars['Float']['output']; organization: DeveloperOrganization; organizationId: Scalars['ID']['output']; payoutId?: Maybe; planId?: Maybe; planName?: Maybe; platformFee: Scalars['Float']['output']; platformFeeRate: Scalars['Float']['output']; previousSaleId?: Maybe; pricingModel: DevPortalPricingModel; purchasedAt: Scalars['DateTime']['output']; refundAmount?: Maybe; refundReason?: Maybe; refundedAt?: Maybe; refundedBy?: Maybe; status: SaleStatus; storeOrderId?: Maybe; storeProductId?: Maybe; subscriptionPeriodEnd?: Maybe; subscriptionPeriodStart?: Maybe; taxAmount?: Maybe; taxCountry?: Maybe; taxRate?: Maybe; taxRegion?: Maybe; updatedAt: Scalars['DateTime']['output']; }; export type DeveloperOrgSaleConnection = { __typename?: 'DeveloperOrgSaleConnection'; edges: Array; pageInfo: PageInfo; totalCount: Scalars['Int']['output']; }; export type DeveloperOrgSaleEdge = { __typename?: 'DeveloperOrgSaleEdge'; cursor: Scalars['String']['output']; node: DeveloperOrgSale; }; /** Developer Organization Subscription - platform tier or app subscriptions */ export type DeveloperOrgSubscription = { __typename?: 'DeveloperOrgSubscription'; amount: Scalars['Float']['output']; applicationId?: Maybe; cancelAtPeriodEnd: Scalars['Boolean']['output']; cancelReason?: Maybe; cancelledAt?: Maybe; context?: Maybe; couponCode?: Maybe; createdAt: Scalars['DateTime']['output']; currency: Scalars['String']['output']; currentPeriodEnd: Scalars['DateTime']['output']; currentPeriodStart: Scalars['DateTime']['output']; discountEndsAt?: Maybe; discountPercent?: Maybe; id: Scalars['ID']['output']; interval: BillingInterval; metadata?: Maybe; nextInvoiceAmount?: Maybe; nextInvoiceAt?: Maybe; organization: DeveloperOrganization; organizationId: Scalars['ID']['output']; planId?: Maybe; planName?: Maybe; status: DevPortalSubscriptionStatus; stripeCustomerId?: Maybe; stripePaymentMethodId?: Maybe; stripePriceId?: Maybe; stripeSubscriptionId?: Maybe; subscriptionType: Scalars['String']['output']; tier?: Maybe; trialEnd?: Maybe; trialStart?: Maybe; updatedAt: Scalars['DateTime']['output']; usageLimit?: Maybe; usageQuantity?: Maybe; }; export type DeveloperOrgSubscriptionConnection = { __typename?: 'DeveloperOrgSubscriptionConnection'; edges: Array; pageInfo: PageInfo; totalCount: Scalars['Int']['output']; }; export type DeveloperOrgSubscriptionEdge = { __typename?: 'DeveloperOrgSubscriptionEdge'; cursor: Scalars['String']['output']; node: DeveloperOrgSubscription; }; export declare enum DeveloperOrgTier { Developer = "DEVELOPER", Enterprise = "ENTERPRISE", Free = "FREE", Professional = "PROFESSIONAL" } export declare enum DeveloperOrgVerificationStatus { Pending = "PENDING", Rejected = "REJECTED", Unverified = "UNVERIFIED", Verified = "VERIFIED" } /** Developer Organization - represents a team or company of developers */ export type DeveloperOrganization = { __typename?: 'DeveloperOrganization'; activeInstalls: Scalars['Int']['output']; apiCallsLimit: Scalars['Int']['output']; apiCallsUsed: Scalars['String']['output']; applications: Array; averageRating?: Maybe; bannerUrl?: Maybe; billingAccountId?: Maybe; billingLinkedAt?: Maybe; certificationExpiry?: Maybe; certifiedAt?: Maybe; contactEmail?: Maybe; context?: Maybe; createdAt: Scalars['DateTime']['output']; description?: Maybe; id: Scalars['ID']['output']; invitations: Array; isCertified: Scalars['Boolean']['output']; isVerified: Scalars['Boolean']['output']; kind: DeveloperOrgKind; legalAddress?: Maybe; legalEntityName?: Maybe; legalEntityType?: Maybe; lifetimeRevenue: Scalars['Float']['output']; logoUrl?: Maybe; members: Array; metadata?: Maybe; name: Scalars['String']['output']; partnerSince?: Maybe; partnerTier?: Maybe; paymentMethods: Array; payouts: Array; pendingBalance: Scalars['Float']['output']; pickupAddresses: Array; /** Legacy single pickup pincode, superseded by pickupAddresses (an org can now register several real addresses with a carrier and pick one as active). Kept only as a fallback for orgs that set this before DeveloperOrgPickupAddress existed — see organizationPickupPostalCode. */ pickupPostalCode?: Maybe; platformFeeRate: Scalars['Float']['output']; publishedApps: Scalars['Int']['output']; quotaResetAt?: Maybe; revenueAnalytics: Array; sales: Array; settings?: Maybe; slug: Scalars['String']['output']; storageLimit: Scalars['String']['output']; storageUsed: Scalars['String']['output']; subscriptions: Array; supportEmail?: Maybe; taxCountry?: Maybe; taxFormType?: Maybe; taxFormVerified: Scalars['Boolean']['output']; taxId?: Maybe; tier: DeveloperOrgTier; totalApiCalls: Scalars['String']['output']; totalApps: Scalars['Int']['output']; totalInstalls: Scalars['Int']['output']; totalPayouts: Scalars['Float']['output']; totalPlatformFees: Scalars['Float']['output']; totalRevenue: Scalars['Float']['output']; updatedAt: Scalars['DateTime']['output']; verificationDomain?: Maybe; verificationEvidenceUrl?: Maybe; verificationMethod?: Maybe; verificationRejectedReason?: Maybe; verificationRequestNotes?: Maybe; verificationRequestedAt?: Maybe; verificationRequestedBy?: Maybe; verificationReviewNotes?: Maybe; verificationReviewedAt?: Maybe; verificationReviewedBy?: Maybe; verificationStatus: DeveloperOrgVerificationStatus; verifiedAt?: Maybe; websiteUrl?: Maybe; }; export type DeveloperOrganizationConnection = { __typename?: 'DeveloperOrganizationConnection'; edges: Array; pageInfo: PageInfo; totalCount: Scalars['Int']['output']; }; export type DeveloperOrganizationEdge = { __typename?: 'DeveloperOrganizationEdge'; cursor: Scalars['String']['output']; node: DeveloperOrganization; }; export type DeveloperProfile = { __typename?: 'DeveloperProfile'; applicationCount: Scalars['Int']['output']; averageRating?: Maybe; bio?: Maybe; companyName?: Maybe; context?: Maybe; createdAt: Scalars['DateTime']['output']; emailNotifications: Scalars['Boolean']['output']; githubUsername?: Maybe; id: Scalars['ID']['output']; isVerified: Scalars['Boolean']['output']; linkedinUrl?: Maybe; marketingEmails: Scalars['Boolean']['output']; metadata?: Maybe; tenantId: Scalars['ID']['output']; totalInstalls: Scalars['Int']['output']; twitterUsername?: Maybe; updatedAt: Scalars['DateTime']['output']; userId: Scalars['ID']['output']; verifiedAt?: Maybe; website?: Maybe; }; /** A registered push-notification device (APNs/FCM token). The fleet's single device registry: written by every product Capacitor shell on launch and on token refresh, and read by the delivery side (global-channel-svc) when it needs to reach a user. */ export type DeviceToken = { __typename?: 'DeviceToken'; createdAt: Scalars['DateTime']['output']; deviceId: Scalars['String']['output']; /** Firebase project whose credentials can reach `token`. Derived server-side from `productSlug` — never supplied by a client. Null means the row is not push-routable. */ fcmProject?: Maybe; id: Scalars['ID']['output']; lastUsedAt: Scalars['DateTime']['output']; platform: Scalars['String']['output']; /** Product whose app install minted this token (e.g. "vibecontrols"). Null on rows registered before push routing existed; such rows are not deliverable. */ productSlug?: Maybe; /** The OS-issued registration token. Only ever reachable by the actor who registered it (`registerDeviceToken` returns the caller's own row) or by a service actor through `pushDevicesForUserInternal` — the delivery side needs the token itself to send. */ token: Scalars['String']['output']; }; export declare enum DeviceType { Desktop = "DESKTOP", Mobile = "MOBILE", Tablet = "TABLET" } export type DeviceTypeStats = { __typename?: 'DeviceTypeStats'; completionRate: Scalars['Float']['output']; count: Scalars['Int']['output']; deviceType: DeviceType; }; export declare enum DevportalExportFormat { /** Comma-separated values; first row is the header. */ Csv = "CSV", /** JSON array; one row per element. */ Json = "JSON", /** JSON-Lines; one row per line (good for streaming consumers). */ Jsonl = "JSONL" } /** Export job descriptor returned from any of the entity-specific export mutations. For small exports the job typically transitions to COMPLETED synchronously (within the request); larger exports may return CREATED and require the caller to poll `devportalExportJob(id:)`. */ export type DevportalExportJob = { __typename?: 'DevportalExportJob'; byteSize?: Maybe; completedAt?: Maybe; createdAt: Scalars['DateTime']['output']; /** Stable URL the caller can GET to retrieve the full payload. Today this is a presigned-style URL hosted by devportal-svc itself; once the platform S3 wiring lands it will be a true presigned S3 URL with TTL. */ downloadUrl?: Maybe; /** ISO timestamp when downloadUrl expires (24h default). */ downloadUrlExpiresAt?: Maybe; entityType: Scalars['String']['output']; error?: Maybe; format: DevportalExportFormat; id: Scalars['ID']['output']; rowCount?: Maybe; status: DevportalExportStatus; }; export declare enum DevportalExportStatus { /** Job finished successfully; downloadUrl is populated. */ Completed = "COMPLETED", /** Job has been accepted and is queued. */ Created = "CREATED", /** Job failed; error contains the reason. */ Failed = "FAILED", /** Job is currently materialising the export payload. */ Running = "RUNNING" } export type DigestChallengeResult = { __typename?: 'DigestChallengeResult'; algorithm: Scalars['String']['output']; nonce: Scalars['String']['output']; opaque: Scalars['String']['output']; qop: Scalars['String']['output']; realm: Scalars['String']['output']; }; export declare enum DimensionUnit { Centimeter = "CENTIMETER", Inch = "INCH", Meter = "METER" } /** DSAR mode — GDPR Art. 15 (access/export) or Art. 17 (erasure). */ export declare enum DsarMode { Erase = "ERASE", Export = "EXPORT" } /** Aggregate result of fanning a single DSAR request out to every service that owns subject PII. Partial failure is always visible per-service in `results` — one failing target never hides a succeeding one and is never silently dropped from the response. */ export type DsarOrchestrationResult = { __typename?: 'DsarOrchestrationResult'; completedAt: Scalars['DateTime']['output']; dryRun: Scalars['Boolean']['output']; failureCount: Scalars['Int']['output']; mode: DsarMode; results: Array; startedAt: Scalars['DateTime']['output']; subjectId: Scalars['ID']['output']; successCount: Scalars['Int']['output']; }; /** Per-service outcome from a single DSAR fan-out call. `data` carries the target service's raw export bundle (EXPORT) or erase-result object (ERASE) as opaque JSON — each of the 5 fan-out targets returns its own named GraphQL type, so results are normalised to JSON here rather than forcing a shared shape across services that don't actually share one. */ export type DsarServiceResult = { __typename?: 'DsarServiceResult'; data?: Maybe; error?: Maybe; service: Scalars['String']['output']; success: Scalars['Boolean']['output']; }; /** A candidate email address that failed during the duplicate-notice mutation. */ export type DuplicateNoticeFailed = { __typename?: 'DuplicateNoticeFailed'; email: Scalars['String']['output']; message: Scalars['String']['output']; }; /** Outcome of notifyDuplicateApplicants — grouped by candidate email address, not by application or round, so every unique email among the requested applications lands in exactly one bucket regardless of how many duplicate applications it appears on. */ export type DuplicateNoticeResult = { __typename?: 'DuplicateNoticeResult'; failed: Array; skipped: Array; succeeded: Array; }; /** A candidate email address skipped by the duplicate-notice mutation, with why. */ export type DuplicateNoticeSkipped = { __typename?: 'DuplicateNoticeSkipped'; email: Scalars['String']['output']; message: Scalars['String']['output']; reason: BulkSendSkipReason; }; export type EarnCreditsInput = { amount: Scalars['Float']['input']; billingAccountId: Scalars['ID']['input']; description?: InputMaybe; metadata?: InputMaybe; productId?: InputMaybe; sourceReferenceId?: InputMaybe; }; export declare enum EarningUnitType { Credits = "CREDITS", Money = "MONEY" } export type EarningsCategoryBreakdown = { __typename?: 'EarningsCategoryBreakdown'; amount: Scalars['Float']['output']; category: EarningsSourceCategory; count: Scalars['Int']['output']; }; export type EarningsEntry = { __typename?: 'EarningsEntry'; amount: Scalars['Float']['output']; availableAt: Scalars['DateTime']['output']; billingAccountId: Scalars['ID']['output']; context?: Maybe; createdAt: Scalars['DateTime']['output']; currency: Scalars['String']['output']; description?: Maybe; id: Scalars['ID']['output']; metadata?: Maybe; ownerUserId?: Maybe; paidAt?: Maybe; payoutRequestId?: Maybe; reservedAt?: Maybe; sourceCategory: EarningsSourceCategory; sourceEventId?: Maybe; sourceReferenceId?: Maybe; sourceSubcategory?: Maybe; status: EarningsEntryStatus; unitType: EarningUnitType; updatedAt: Scalars['DateTime']['output']; }; export type EarningsEntryConnection = { __typename?: 'EarningsEntryConnection'; hasMore: Scalars['Boolean']['output']; items: Array; totalCount: Scalars['Int']['output']; }; export type EarningsEntryFilterInput = { endDate?: InputMaybe; sourceCategory?: InputMaybe; startDate?: InputMaybe; status?: InputMaybe; unitType?: InputMaybe; }; export declare enum EarningsEntryStatus { Available = "AVAILABLE", Paid = "PAID", Reserved = "RESERVED", Reversed = "REVERSED" } export declare enum EarningsSourceCategory { Affiliate = "AFFILIATE", Other = "OTHER", Store = "STORE" } export type EarningsSummary = { __typename?: 'EarningsSummary'; availableAmount: Scalars['Float']['output']; categoryBreakdown: Array; creditsAmount: Scalars['Float']['output']; moneyAmount: Scalars['Float']['output']; paidAmount: Scalars['Float']['output']; pendingAmount: Scalars['Float']['output']; reservedAmount: Scalars['Float']['output']; totalLifetimeAmount: Scalars['Float']['output']; }; export type EditorialCollection = { __typename?: 'EditorialCollection'; endsAt?: Maybe; heroAssetId?: Maybe; id: Scalars['ID']['output']; isActive: Scalars['Boolean']['output']; orderIndex: Scalars['Int']['output']; productIds: Array; slug: Scalars['String']['output']; startsAt?: Maybe; storeId: Scalars['ID']['output']; subtitle?: Maybe; title: Scalars['String']['output']; }; /** Computed effective permissions for an actor */ export type EffectivePermissions = { __typename?: 'EffectivePermissions'; actorId: Scalars['String']['output']; /** Cache key for debugging and invalidation */ cacheKey?: Maybe; /** When this permission set should be considered stale. Frontend should refresh after this time. */ expiresAt: Scalars['DateTime']['output']; /** Flat permission strings for easy frontend matching. Format: "{resourceType}:{action}" e.g., ["project:read", "project:write", "task:*"] Includes wildcards for ADMIN level (e.g., "project:*") */ permissionStrings: Array; /** Resource types and their effective levels */ permissions: Array; /** Role names assigned to the actor in this scope */ roles: Array; scopeId: Scalars['String']['output']; }; /** Effective permission for a resource type */ export type EffectiveResourcePermission = { __typename?: 'EffectiveResourcePermission'; /** Actions allowed at this level */ allowedActions: Array; level: RoleLevel; /** Any overrides affecting this permission */ overrides: Array; resourceType: Scalars['String']['output']; /** Source of this permission (role name) */ source: Scalars['String']['output']; }; export type EmailVerificationResult = { __typename?: 'EmailVerificationResult'; email?: Maybe; message: Scalars['String']['output']; success: Scalars['Boolean']['output']; }; export declare enum EmploymentType { Contract = "CONTRACT", FullTime = "FULL_TIME", Internship = "INTERNSHIP", PartTime = "PART_TIME" } /** Input for `ensureOrganizationMember`. Uses its OWN type rather than reusing `AddOrganizationMemberInput` so the GraphQL default for `role` matches the mutation's semantics: invite-accept callers should land users as `GUEST`, not the default-membership `MEMBER` they'd get from `AddOrganizationMemberInput`. GraphQL input coercion applies the default *before* the resolver runs, so a service-side default in `OrganizationService.ensureMember` never fires when the input defaults differently. Service callers from wspace-workspace-svc are restricted to the GUEST/MEMBER subset of `UserRole` (enforced at the resolver) — defence in depth against role-escalation if the caller were ever compromised. Reviewed: PR #77 codex (P2). */ export type EnsureOrganizationMemberInput = { organizationId: Scalars['String']['input']; role?: InputMaybe; userId: Scalars['String']['input']; }; /** Outcome of `ensureOrganizationMember`. `created` distinguishes a fresh insert from the idempotent no-op path; `roleAssigned` reflects whether a baseline RBAC role was assigned at the org scope (skipped when the actor already has any assignment at that scope — case 2 in BOFF-2649). */ export type EnsureOrganizationMemberResult = { __typename?: 'EnsureOrganizationMemberResult'; created: Scalars['Boolean']['output']; member: OrganizationMember; roleAssigned: Scalars['Boolean']['output']; }; /** Response for ensureStoreOrderBillingOrder */ export type EnsureStoreOrderBillingOrderResponse = { __typename?: 'EnsureStoreOrderBillingOrderResponse'; billingOrderId?: Maybe; error?: Maybe; success: Scalars['Boolean']['output']; }; /** Defines the access type for subscription entitlements */ export declare enum EntitlementAccessType { /** User gets a discount on the store item with this plan */ Discount = "DISCOUNT", /** User gets free access to the store item with this plan */ FreeAccess = "FREE_ACCESS" } export type EntitlementSeatAssignment = { __typename?: 'EntitlementSeatAssignment'; assignedAt: Scalars['DateTime']['output']; assignedBy?: Maybe; assigneeId: Scalars['String']['output']; metadata?: Maybe; }; export type EntitlementSeatSummary = { __typename?: 'EntitlementSeatSummary'; assignments: Array; entitlementId: Scalars['ID']['output']; maxSeats: Scalars['Int']['output']; seatsAvailable: Scalars['Int']['output']; seatsInUse: Scalars['Int']['output']; }; export declare enum EntitlementStatus { Active = "ACTIVE", Expired = "EXPIRED", Revoked = "REVOKED", Suspended = "SUSPENDED" } export type EraseResult = { __typename?: 'EraseResult'; anonymised: Scalars['Int']['output']; dryRun: Scalars['Boolean']['output']; notes?: Maybe; purged: Scalars['Int']['output']; retainedForLegalReason?: Maybe; service: Scalars['String']['output']; }; /** A visitor asking for a human, on a conversation they are already in. Anonymous like the rest of explore: the conversation token is the only proof of ownership, and the only thing we ask the visitor for is where to reply. */ export type EscalateExploreConversationInput = { /** Bearer secret for the conversation being handed over. */ conversationToken: Scalars['String']['input']; /** Where the reply should go. Validated server-side and stored lower-cased; an address we cannot deliver to is refused with `INVALID_EMAIL` rather than accepted into a ticket nobody can answer. */ email: Scalars['String']['input']; /** Anything the visitor wants to add in their own words. Optional — the point of the handover is that the conversation already says what the problem is. Capped server-side; the server truncates rather than rejecting. */ note?: InputMaybe; /** `PlatformProduct` id of the site the visitor is on, so the handover reaches that product's support inbox instead of the default one. */ productId?: InputMaybe; /** reCAPTCHA v3 token — required only when `exploreCatalog.captchaRequired`, and minted with the SAME action as a chat message. */ recaptchaToken?: InputMaybe; }; export type EscalateExploreConversationResult = { __typename?: 'EscalateExploreConversationResult'; /** False when this submit found a handover that already existed — the double-clicked button, the retried request, the reloaded page. Not an error: the conversation is with a human either way. */ created: Scalars['Boolean']['output']; escalation: ExploreEscalation; }; export type EvaluateFeatureFlagsInput = { /** Specific flag keys to evaluate. If empty, evaluates ALL active flags. */ keys?: InputMaybe>; /** Product slug to scope the evaluation. When provided, only flags belonging to that product plus platform-wide flags are evaluated — never other products' flags. Product app shells should pass their own slug. */ productSlug?: InputMaybe; workspaceId: Scalars['String']['input']; }; export type ExchangeOwnDelegationInput = { delegationId: Scalars['ID']['input']; scopes?: InputMaybe>; }; export type ExchangeTokenInput = { appId: Scalars['String']['input']; scopes?: InputMaybe>; userId: Scalars['String']['input']; }; export type ExecutionUpdate = { __typename?: 'ExecutionUpdate'; duration?: Maybe; error?: Maybe; executionId: Scalars['ID']['output']; output?: Maybe; progress?: Maybe; scheduleId: Scalars['ID']['output']; status: JobStatus; success: Scalars['Boolean']['output']; timestamp: Scalars['DateTime']['output']; }; export declare enum ExecutorType { Email = "EMAIL", Function = "FUNCTION", Graphql = "GRAPHQL", InternalApi = "INTERNAL_API", NatsTopic = "NATS_TOPIC", Webhook = "WEBHOOK" } export type ExploreAdminClick = { __typename?: 'ExploreAdminClick'; createdAt: Scalars['DateTime']['output']; ctaKind?: Maybe; id: Scalars['ID']['output']; kind: Scalars['String']['output']; product?: Maybe; url: Scalars['String']['output']; }; export type ExploreAdminConversation = { __typename?: 'ExploreAdminConversation'; /** Number of links followed across the whole conversation. */ clickCount: Scalars['Int']['output']; createdAt: Scalars['DateTime']['output']; /** True when at least one answer in the thread could not be grounded. */ hasUnanswered: Scalars['Boolean']['output']; id: Scalars['ID']['output']; /** Salted hash of the visitor's IP. Never an IP — grouping only. */ ipHash: Scalars['String']['output']; lastMessageAt?: Maybe; locale?: Maybe; messages: Array; productSlug?: Maybe; turnCount: Scalars['Int']['output']; }; export type ExploreAdminConversationPage = { __typename?: 'ExploreAdminConversationPage'; hasMore: Scalars['Boolean']['output']; items: Array; totalCount: Scalars['Int']['output']; }; export type ExploreAdminFilter = { /** Only conversations where at least one link was followed. */ convertedOnly?: InputMaybe; from?: InputMaybe; /** Salted IP hash, to group one visitor's sessions. */ ipHash?: InputMaybe; /** Only conversations containing an answer a visitor marked NOT helpful. */ notHelpfulOnly?: InputMaybe; /** Match conversations that started on this product's website. */ productSlug?: InputMaybe; /** Free-text match against message content. */ search?: InputMaybe; to?: InputMaybe; /** Only conversations containing an answer the corpus could not ground. */ unansweredOnly?: InputMaybe; }; export type ExploreAdminMessage = { __typename?: 'ExploreAdminMessage'; /** Whether the corpus could ground this answer. False = we could not answer. */ answered: Scalars['Boolean']['output']; /** Links a visitor actually followed from this answer. */ clicks: Array; completedAt?: Maybe; content: Scalars['String']['output']; conversationId: Scalars['ID']['output']; createdAt: Scalars['DateTime']['output']; ctas: Array; errorCode?: Maybe; /** What the visitor said about this answer — rating, reason and comment — or null when they said nothing, which is the ordinary case. `answered` is our own machine verdict on whether we could ground a reply; this is the visitor's, and it is the only one of the two that can say an answer was confidently wrong. */ feedback?: Maybe; followUps: Array; id: Scalars['ID']['output']; references: Array; role: ExploreMessageRole; status: ExploreMessageStatus; }; /** Rollup of where the assistant is actually sending people, per product. The signal the product did not have: answers cited vs links followed. */ export type ExploreAdminProductStat = { __typename?: 'ExploreAdminProductStat'; /** Answers that cited this product. */ answerCount: Scalars['Int']['output']; /** Links to this product that were actually followed. */ clickCount: Scalars['Int']['output']; product: Scalars['String']['output']; }; export declare enum ExploreAdminSort { MostClicks = "MOST_CLICKS", MostTurns = "MOST_TURNS", Newest = "NEWEST", Oldest = "OLDEST" } export type ExploreAdminStats = { __typename?: 'ExploreAdminStats'; byProduct: Array; clicks: Scalars['Int']['output']; conversations: Scalars['Int']['output']; /** Answers a visitor marked helpful. */ helpful: Scalars['Int']['output']; messages: Scalars['Int']['output']; /** Answers a visitor marked NOT helpful. Read against `unanswered`: those are the gaps we already know about, these are the ones we thought we had covered. */ notHelpful: Scalars['Int']['output']; /** Assistant answers the corpus could not ground. */ unanswered: Scalars['Int']['output']; }; export type ExploreAgentActivity = { __typename?: 'ExploreAgentActivity'; at: Scalars['DateTime']['output']; detail?: Maybe; kind: Scalars['String']['output']; }; export type ExploreAgentCatalog = { __typename?: 'ExploreAgentCatalog'; builtAt: Scalars['DateTime']['output']; /** At most one highlight per product, product-slug ordered, identical on every replica. Empty when the corpus carries no concept pages — never null, never an error. */ conceptHighlights: Array; products: Array; }; /** One product's concept page and the illustration that stands for it — what `/explore` offers a visitor who has not asked anything yet. `imageUrl` is absolute, on the product's own published origin, and drawn from the same allow-list an answer's images come from; `alt` is the illustration's own published alt text. */ export type ExploreAgentConcept = { __typename?: 'ExploreAgentConcept'; alt: Scalars['String']['output']; imageUrl: Scalars['String']['output']; product: Scalars['String']['output']; productName: Scalars['String']['output']; title: Scalars['String']['output']; url: Scalars['String']['output']; }; export type ExploreAgentCtaSuggestion = { __typename?: 'ExploreAgentCtaSuggestion'; label: Scalars['String']['output']; url: Scalars['String']['output']; }; export type ExploreAgentHistoryTurnInput = { content: Scalars['String']['input']; role: ExploreAgentRole; }; export type ExploreAgentJob = { __typename?: 'ExploreAgentJob'; activity: Array; /** The finished answer. Null until status is COMPLETED. */ answer?: Maybe; createdAt: Scalars['DateTime']['output']; /** Button labels the model proposed for links it already cited, phrased as the action the visitor asked about rather than a generic page name. The edge treats these as a preference over its own templated label and re-validates the URL — a label is copy, a destination is not. */ ctaSuggestions: Array; errorCode?: Maybe; errorMessage?: Maybe; id: Scalars['ID']['output']; /** Answer text so far, for a streaming-style preview while the turn runs. */ partialText?: Maybe; references: Array; status: ExploreAgentJobStatus; updatedAt: Scalars['DateTime']['output']; usage?: Maybe; }; export declare enum ExploreAgentJobStatus { Completed = "COMPLETED", Failed = "FAILED", Queued = "QUEUED", Running = "RUNNING" } export type ExploreAgentPage = { __typename?: 'ExploreAgentPage'; description?: Maybe; group?: Maybe; title: Scalars['String']['output']; url: Scalars['String']['output']; }; export type ExploreAgentProduct = { __typename?: 'ExploreAgentProduct'; name: Scalars['String']['output']; pages: Array; slug: Scalars['String']['output']; tagline?: Maybe; website: Scalars['String']['output']; }; export type ExploreAgentReference = { __typename?: 'ExploreAgentReference'; product?: Maybe; title?: Maybe; url: Scalars['String']['output']; }; export declare enum ExploreAgentRole { Assistant = "ASSISTANT", User = "USER" } export type ExploreAgentSubmitInput = { /** Context block for files the visitor attached, already sanitised and wrapped as untrusted data by the edge. Injected verbatim alongside the conversation history. */ attachmentContext?: InputMaybe; /** Caller correlation id, echoed in logs. Never shown to the model. */ clientRef?: InputMaybe; /** Prior turns, oldest first. Truncated to the configured history window. */ history?: InputMaybe>; locale?: InputMaybe; /** The visitor's question. Treated as untrusted data by the agent. */ message: Scalars['String']['input']; /** Catalog slug of the website the visitor is on. A hint only. */ productSlug?: InputMaybe; }; export type ExploreAgentUsage = { __typename?: 'ExploreAgentUsage'; costUsd?: Maybe; durationMs?: Maybe; inputTokens?: Maybe; model?: Maybe; outputTokens?: Maybe; toolCalls?: Maybe; }; /** What the server accepted, echoed back so the UI can show it honestly. */ export type ExploreAttachment = { __typename?: 'ExploreAttachment'; mimeType: Scalars['String']['output']; name: Scalars['String']['output']; size: Scalars['Int']['output']; /** False when only the filename and type could be used as context. */ textExtracted: Scalars['Boolean']['output']; }; /** One file a visitor attached as extra context. The browser extracts the text and sends THAT, not the bytes. Two reasons: a 10 MB file is ~13 MB once base64-encoded, which is a poor fit for a GraphQL body behind a gateway; and the harness is text-only by design (it has no webfetch and no file tools), so raw bytes could not be used even if they arrived. `textContent` is therefore null for any format the browser cannot read as text — a PDF or an image contributes its NAME and TYPE to the context and nothing more. The UI says so; do not present these as "read". */ export type ExploreAttachmentInput = { mimeType: Scalars['String']['input']; name: Scalars['String']['input']; /** Original size in bytes, for display and server-side limit enforcement. */ size: Scalars['Int']['input']; /** Extracted text, already truncated by the client. Null for binary formats. */ textContent?: InputMaybe; }; /** Everything the `/explore` page needs to render before the first message. `enabled: false` (with an empty product list) means the feature is switched off or the agent is unreachable — the page must not offer the composer. */ export type ExploreCatalog = { __typename?: 'ExploreCatalog'; captchaRequired: Scalars['Boolean']['output']; /** Illustrations for the welcome screen, at most 8. The focused product's highlight (see `exploreCatalog(productSlug:)`) comes first. Empty is ORDINARY, not an error: these are fetched from the agent in a separate best-effort query precisely so that an agent which does not serve them yet — or at all — costs the catalog nothing. A page must render the rest of the catalog unchanged when this is empty, and must never read it as a signal that explore is unavailable. That is `enabled`. */ conceptHighlights: Array; enabled: Scalars['Boolean']['output']; examplePrompts: Array; limits: ExploreLimits; products: Array; recaptchaSiteKey?: Maybe; welcomeBody: Scalars['String']['output']; welcomeTitle: Scalars['String']['output']; }; /** One product's concept illustration, passed through from the agent's concept index so the welcome screen has something to SHOW before the first message. `imageUrl` is a mockup, not a screenshot of a running product — the same illustrations the answer path embeds, and the UI must label them the same way. `url` is the concept page the illustration belongs to, which is where a visitor who clicks it should land. At most one per product upstream, so the list reads as a gallery of the fleet rather than as several views of whichever product happened to sort first. */ export type ExploreConceptHighlight = { __typename?: 'ExploreConceptHighlight'; alt: Scalars['String']['output']; imageUrl: Scalars['String']['output']; /** Product slug, matching `ExploreProduct.slug`. */ product: Scalars['String']['output']; productName: Scalars['String']['output']; title: Scalars['String']['output']; url: Scalars['String']['output']; }; /** An explore conversation. `token` is the bearer secret for every subsequent call and is returned ONLY on the request that minted it (or echoed back to the caller that already holds it) — it is never read back out of storage. */ export type ExploreConversation = { __typename?: 'ExploreConversation'; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; productSlug?: Maybe; token: Scalars['String']['output']; turnCount: Scalars['Int']['output']; }; /** A call-to-action button derived from a cited link. `kind` is one of: CONTACT PARTNERS PRICING SERVICES WAITLIST STORE APP DOCS OTHER. */ export type ExploreCta = { __typename?: 'ExploreCta'; kind: Scalars['String']['output']; label: Scalars['String']['output']; product?: Maybe; url: Scalars['String']['output']; }; /** What became of the handover. */ export type ExploreEscalation = { __typename?: 'ExploreEscalation'; createdAt: Scalars['DateTime']['output']; /** The address a human will reply to, as stored. Echoed back so the UI shows the server's view rather than what was typed — and, on a repeat submit, the address the FIRST handover used, which is where the answer is actually going. */ email: Scalars['String']['output']; }; /** What one visitor thought of one answer. The signal `/explore` did not have. Every question got an answer, so "we answer 100% of questions" was true and told us nothing; this is the only record that a specific answer was wrong, thin or off-topic. At most one per message — a visitor may change their mind, and the new verdict replaces the old one. */ export type ExploreFeedback = { __typename?: 'ExploreFeedback'; comment?: Maybe; createdAt: Scalars['DateTime']['output']; rating: ExploreFeedbackRating; /** One of INACCURATE INCOMPLETE OFF_TOPIC HARD_TO_FOLLOW OTHER. Null for HELPFUL. */ reason?: Maybe; }; export declare enum ExploreFeedbackRating { Helpful = "HELPFUL", NotHelpful = "NOT_HELPFUL" } /** Server-enforced limits, surfaced so the UI can pre-validate instead of discovering them through an error. */ export type ExploreLimits = { __typename?: 'ExploreLimits'; historyTurns: Scalars['Int']['output']; maxMessageLength: Scalars['Int']['output']; maxTurnsPerConversation: Scalars['Int']['output']; messagesPerDay: Scalars['Int']['output']; }; /** One turn in an explore conversation. USER messages are always COMPLETED on creation; ASSISTANT messages start PENDING and must be polled. */ export type ExploreMessage = { __typename?: 'ExploreMessage'; /** Human-readable progress lines (e.g. "Searching vibecontrols…"). */ activity: Array; /** False when the corpus could not answer the question. A grounded answer always cites something, so an answer with no citable source is the honest signal that we did not have it — the UI shows a distinct "couldn't find this" state rather than presenting a hedged paragraph as if it were an answer. */ answered: Scalars['Boolean']['output']; /** Files the visitor attached to THIS turn (user messages only). */ attachments: Array; completedAt?: Maybe; /** Final answer (markdown). Empty string while PENDING/RUNNING. */ content: Scalars['String']['output']; conversationId: Scalars['ID']['output']; createdAt: Scalars['DateTime']['output']; ctas: Array; errorCode?: Maybe; /** What this visitor said about this answer, or null if they said nothing — which is the ordinary case. Never populated for a USER message or for an answer that has not completed: neither is a thing anyone can rate. */ feedback?: Maybe; /** Suggested next questions, derived from what this answer actually covered. Empty until the turn completes, and empty when nothing useful can be derived. */ followUps: Array; id: Scalars['ID']['output']; /** Streaming preview while PENDING/RUNNING. */ partialContent?: Maybe; references: Array; role: ExploreMessageRole; status: ExploreMessageStatus; }; export declare enum ExploreMessageRole { Assistant = "ASSISTANT", User = "USER" } export declare enum ExploreMessageStatus { Completed = "COMPLETED", Failed = "FAILED", Pending = "PENDING", Running = "RUNNING" } /** A product the explore agent can answer about, from its baked corpus. */ export type ExploreProduct = { __typename?: 'ExploreProduct'; name: Scalars['String']['output']; slug: Scalars['String']['output']; tagline?: Maybe; website: Scalars['String']['output']; }; /** A page the answer cited. Only links whose origin is in the agent's baked catalog survive — anything else is stripped from the answer text as well. */ export type ExploreReference = { __typename?: 'ExploreReference'; description?: Maybe; imageUrl?: Maybe; /** 1-based citation number. The answer text carries matching `[n]` markers, so a reader can check the specific claim rather than the whole answer. */ index: Scalars['Int']['output']; product?: Maybe; title?: Maybe; url: Scalars['String']['output']; }; /** A read-only link to a conversation, so sales or support can send someone a specific answer. `shareToken` is NOT the conversation token. That one authorises posting to the thread, so a URL carrying it would let every recipient continue someone else's conversation and would leak through browser history and referrer headers. This secret only ever opens a read-only view. */ export type ExploreShareLink = { __typename?: 'ExploreShareLink'; shareToken: Scalars['String']['output']; }; export type ExportApplicationsFilter = { appType?: InputMaybe; category?: InputMaybe; createdAfter?: InputMaybe; createdBefore?: InputMaybe; developerId?: InputMaybe; developerOrganizationId?: InputMaybe; status?: InputMaybe; visibility?: InputMaybe; }; export type ExportAuditLogsFilter = { action?: InputMaybe; actorId?: InputMaybe; createdAfter?: InputMaybe; createdBefore?: InputMaybe; resource?: InputMaybe; }; /** Filter for channel user (UserPlatformConnection) exports */ export type ExportChannelUsersFilter = { channelId?: InputMaybe; createdAfter?: InputMaybe; createdBefore?: InputMaybe; notificationsEnabled?: InputMaybe; organizationId: Scalars['ID']['input']; platform?: InputMaybe; }; /** Filter for channel list exports */ export type ExportChannelsFilter = { createdAfter?: InputMaybe; createdBefore?: InputMaybe; organizationId: Scalars['ID']['input']; platform?: InputMaybe; status?: InputMaybe; }; /** Filter for delivery attempt exports */ export type ExportDeliveryAttemptsFilter = { channelId?: InputMaybe; createdAfter?: InputMaybe; createdBefore?: InputMaybe; organizationId?: InputMaybe; status?: InputMaybe; }; export type ExportDeveloperOrganizationsFilter = { createdAfter?: InputMaybe; createdBefore?: InputMaybe; isVerified?: InputMaybe; tier?: InputMaybe; }; export type ExportNewsletterCampaignsInput = { format: NewsletterExportFormat; newsletterId?: InputMaybe; }; export type ExportNewsletterInput = { format: NewsletterExportFormat; includeStats?: InputMaybe; newsletterIds?: InputMaybe>; platformProductId?: InputMaybe; }; export type ExportNewsletterSubscribersInput = { format: NewsletterExportFormat; platformProductId: Scalars['String']['input']; status?: InputMaybe; subscribed?: InputMaybe; }; export type ExportResult = { __typename?: 'ExportResult'; createdAt: Scalars['DateTime']['output']; downloadUrl: Scalars['String']['output']; filename: Scalars['String']['output']; format: NewsletterExportFormat; id: Scalars['ID']['output']; recordCount: Scalars['Int']['output']; }; export type ExportRevenueFilter = { applicationId?: InputMaybe; developerOrganizationId?: InputMaybe; periodEnd?: InputMaybe; periodStart?: InputMaybe; }; export type ExportSubscriber = { __typename?: 'ExportSubscriber'; email: Scalars['String']['output']; platformProductId: Scalars['String']['output']; status: NewsletterSubscriptionStatus; subscribed: Scalars['Boolean']['output']; subscribedAt: Scalars['DateTime']['output']; unsubscribedAt?: Maybe; userId?: Maybe; }; export type ExportSupportInput = { /** Date range filter - end date */ endDate?: InputMaybe; /** Export format (CSV or JSON) */ format: SupportExportFormat; /** Include support messages in export */ includeMessages?: InputMaybe; /** Filter by priority */ priority?: InputMaybe>; /** Date range filter - start date */ startDate?: InputMaybe; /** Filter by ticket status */ status?: InputMaybe>; /** User ID for which to export support data */ userId: Scalars['ID']['input']; /** Workspace ID (optional) */ workspaceId?: InputMaybe; }; export type ExportSupportResponse = { __typename?: 'ExportSupportResponse'; /** Download URL (when ready) */ downloadUrl?: Maybe; /** Estimated number of records */ estimatedRecords?: Maybe; /** Export job ID */ jobId: Scalars['ID']['output']; /** Message */ message: Scalars['String']['output']; /** Export status */ status: Scalars['String']['output']; }; /** Filter for webhook event exports */ export type ExportWebhookEventsFilter = { channelId?: InputMaybe; createdAfter?: InputMaybe; createdBefore?: InputMaybe; organizationId?: InputMaybe; processingStatus?: InputMaybe; }; export type ExportWebhooksFilter = { applicationId?: InputMaybe; createdAfter?: InputMaybe; createdBefore?: InputMaybe; isActive?: InputMaybe; }; /** External OIDC Provider Configuration (Google, Microsoft, etc.) */ export type ExternalOidcConfiguration = { __typename?: 'ExternalOIDCConfiguration'; clientId: Scalars['String']['output']; clientSecret: Scalars['String']['output']; createdAt: Scalars['DateTime']['output']; discoveryUrl: Scalars['String']['output']; enabled: Scalars['Boolean']['output']; id: Scalars['ID']['output']; identifier: Scalars['String']['output']; metadata?: Maybe; provider: Scalars['String']['output']; redirectUri?: Maybe; scopes: Array; updatedAt: Scalars['DateTime']['output']; }; /** Input for creating/updating external OIDC configuration */ export type ExternalOidcConfigurationInput = { clientId: Scalars['String']['input']; clientSecret: Scalars['String']['input']; discoveryUrl: Scalars['String']['input']; enabled?: InputMaybe; identifier: Scalars['String']['input']; metadata?: InputMaybe; provider: Scalars['String']['input']; redirectUri?: InputMaybe; scopes?: InputMaybe>; }; export type ExternalSettlementResult = { __typename?: 'ExternalSettlementResult'; /** True when the externalRef already had a settlement (idempotent replay). */ alreadyRecorded: Scalars['Boolean']['output']; /** ID of the billing account the Transaction was recorded against. */ billingAccountId: Scalars['ID']['output']; /** ID of the created (or previously-recorded) Charge. */ chargeId: Scalars['ID']['output']; /** Normalised status the settlement was recorded with. */ status: ExternalSettlementStatus; /** ID of the created (or previously-recorded) Transaction. */ transactionId: Scalars['ID']['output']; }; /** Status of an externally-collected settlement. Maps onto the existing Charge/Transaction status models: SETTLED → Charge SUCCEEDED / Transaction success PENDING → Charge PENDING / Transaction pending FAILED → Charge FAILED / Transaction failed */ export declare enum ExternalSettlementStatus { Failed = "FAILED", Pending = "PENDING", Settled = "SETTLED" } export type Faq = { __typename?: 'FAQ'; answer: Scalars['String']['output']; category: FaqCategory; context?: Maybe; createdAt: Scalars['DateTime']['output']; createdBy: Scalars['String']['output']; displayOrder: Scalars['Int']['output']; helpfulCount: Scalars['Int']['output']; helpfulnessScore?: Maybe; id: Scalars['ID']['output']; isPublished: Scalars['Boolean']['output']; notHelpfulCount: Scalars['Int']['output']; question: Scalars['String']['output']; tags: Array; tenantId?: Maybe; updatedAt: Scalars['DateTime']['output']; viewCount: Scalars['Int']['output']; }; export declare enum FaqCategory { Account = "ACCOUNT", Billing = "BILLING", General = "GENERAL", GettingStarted = "GETTING_STARTED", Security = "SECURITY", Technical = "TECHNICAL" } export type FaqConnection = { __typename?: 'FAQConnection'; hasMore: Scalars['Boolean']['output']; nodes: Array; totalCount: Scalars['Int']['output']; }; export type FaqFilterInput = { category?: InputMaybe; context?: InputMaybe; isPublished?: InputMaybe; tags?: InputMaybe>; }; /** Facet count for filter refinement */ export type FacetCount = { __typename?: 'FacetCount'; count: Scalars['Int']['output']; value: Scalars['String']['output']; }; export type FailedBillingOrderCallbacksResponse = { __typename?: 'FailedBillingOrderCallbacksResponse'; orders: Array; totalCount: Scalars['Int']['output']; }; /** Platform-wide feature flag definition. Managed by super admins. Can be scoped to a product and category. */ export type FeatureFlag = { __typename?: 'FeatureFlag'; category?: Maybe; createdAt: Scalars['DateTime']['output']; createdBy: Scalars['String']['output']; defaultValue: Scalars['JSON']['output']; description?: Maybe; flagType: FeatureFlagType; id: Scalars['ID']['output']; key: Scalars['String']['output']; metadata?: Maybe; name: Scalars['String']['output']; previewable: Scalars['Boolean']['output']; product?: Maybe; productId?: Maybe; status: FeatureFlagStatus; tags: Array; updatedAt: Scalars['DateTime']['output']; updatedBy?: Maybe; userPreferences: Array; workspaceOverrides: Array; }; /** Result of bulk-evaluating multiple feature flags. */ export type FeatureFlagBulkEvaluation = { __typename?: 'FeatureFlagBulkEvaluation'; evaluations: Array; }; /** Result of evaluating a single feature flag for a specific context. Compatible with OpenFeature ResolutionDetails. */ export type FeatureFlagEvaluation = { __typename?: 'FeatureFlagEvaluation'; errorCode?: Maybe; flagType: FeatureFlagType; key: Scalars['String']['output']; reason: Scalars['String']['output']; value: Scalars['JSON']['output']; variant?: Maybe; }; export type FeatureFlagFilterInput = { category?: InputMaybe; /** When true and `productSlug` is set, also include platform-wide flags (those with no product association, i.e. productId IS NULL) alongside the product's own flags. No effect unless `productSlug` is set. */ includePlatformFlags?: InputMaybe; /** When true, return ONLY platform-wide flags (no product association). Overrides `productId` / `productSlug`. */ platformOnly?: InputMaybe; previewable?: InputMaybe; /** Filter to flags belonging to the product with this exact id (UUID). */ productId?: InputMaybe; /** Filter to flags belonging to the product with this slug (e.g. "fluidgrids"). Resolved server-side to the product id, so callers that only know the slug (app shells) don't need a separate lookup. Combine with `includePlatformFlags` to also surface platform-wide flags — this is what a product app shell passes to show only its own product's flags plus platform flags. Takes precedence over `productId` when both are supplied. */ productSlug?: InputMaybe; search?: InputMaybe; status?: InputMaybe; }; /** Paginated list of feature flags. */ export type FeatureFlagList = { __typename?: 'FeatureFlagList'; hasMore: Scalars['Boolean']['output']; items: Array; total: Scalars['Int']['output']; }; export declare enum FeatureFlagStatus { Active = "ACTIVE", Archived = "ARCHIVED" } export declare enum FeatureFlagType { Boolean = "BOOLEAN", Json = "JSON", Number = "NUMBER", String = "STRING" } export type FeedbackBreakdown = { __typename?: 'FeedbackBreakdown'; category: FeedbackCategory; count: Scalars['Int']['output']; percentage: Scalars['Float']['output']; }; export declare enum FeedbackCategory { AgentHelpful = "AGENT_HELPFUL", IssueResolved = "ISSUE_RESOLVED", KnowledgeBase = "KNOWLEDGE_BASE", Other = "OTHER", ResponseTime = "RESPONSE_TIME" } export type FileDsarInput = { notes?: InputMaybe; source: Scalars['String']['input']; subjectEmail: Scalars['String']['input']; subjectId: Scalars['ID']['input']; type: DsarType; }; /** Available filter options for UI dropdowns */ export type FilterOptionsResult = { __typename?: 'FilterOptionsResult'; /** Available categories */ categories: Array; /** Available compatible products */ compatibleProducts: Array; /** Available licenses */ licenses: Array; /** Available subtypes (optionally filtered by type) */ subTypes: Array; /** Available tags (top N most used) */ tags: Array; /** Available product types */ types: Array; }; export declare enum FulfillmentStatus { Cancelled = "CANCELLED", Delivered = "DELIVERED", Failed = "FAILED", InTransit = "IN_TRANSIT", OutForDelivery = "OUT_FOR_DELIVERY", Pending = "PENDING", Processing = "PROCESSING", ReadyToShip = "READY_TO_SHIP", Returned = "RETURNED", Shipped = "SHIPPED" } /** Fulfillment tracking event */ export type FulfillmentTrackingEvent = { __typename?: 'FulfillmentTrackingEvent'; /** Raw carrier event data */ carrierEvent?: Maybe; createdAt: Scalars['DateTime']['output']; /** Event description */ description?: Maybe; fulfillmentId: Scalars['String']['output']; id: Scalars['ID']['output']; /** Event location */ location?: Maybe; /** When this event occurred */ occurredAt: Scalars['DateTime']['output']; /** Status at this event */ status: FulfillmentStatus; }; export type GenerateApiKeyInput = { appId: Scalars['String']['input']; expiresAt?: InputMaybe; name: Scalars['String']['input']; recaptchaToken?: InputMaybe; scope: Array; }; export type GenerateAppAsUserTokenInput = { scopes?: InputMaybe>; targetUserId: Scalars['String']['input']; }; export type GenerateAppTokenInput = { clientId: Scalars['String']['input']; clientSecret: Scalars['String']['input']; scopes?: InputMaybe>; }; export type GeoPricingOverride = { __typename?: 'GeoPricingOverride'; amount?: Maybe; country?: Maybe; currency: Scalars['String']['output']; perSeatAmount?: Maybe; region?: Maybe; state?: Maybe; }; export type GeoPricingOverrideInput = { amount?: InputMaybe; country?: InputMaybe; currency: Scalars['String']['input']; perSeatAmount?: InputMaybe; region?: InputMaybe; state?: InputMaybe; }; export type GetApplicationTagsInput = { applicationId: Scalars['ID']['input']; }; export type GetChannelConnectionTagsInput = { entityId: Scalars['ID']['input']; }; export type GetChannelTagsInput = { entityId: Scalars['ID']['input']; }; export type GetStoreProductTagsInput = { entityId: Scalars['ID']['input']; }; /** Input for the service-trusted internal self-delegation grant path. Called by a trusted backend (e.g. wspace-integrations-svc) when a user "adds" a first-party integration: it creates a self-delegation (the user grants the first-party app the ability to act as themselves) without a separate consent screen and without the workspace-admin gate (the user is only granting access to their own data, still bounded by their role-based RBAC at the target service). Only callable by service/super_admin actors through an internal gateway. */ export type GrantAppDelegationInternalInput = { /** Client ID of the first-party system app (e.g. burdenoff_integration_core). */ clientId: Scalars['String']['input']; /** Scopes the delegation must keep for other grants that share it (e.g. the user's other integration connections). A retained scope is kept only while the existing delegation is ACTIVE and already holds it, and only while the app still allows it; otherwise it is dropped, never rejected. A grant therefore never restores or adds a scope beyond the requested scopes. */ retainedScopes?: InputMaybe>; /** Workspaces the delegation must keep for other grants that share it. Kept only while the existing delegation is ACTIVE and already covers them: restoring a REVOKED or EXPIRED delegation covers only workspaceIds. Ignored when workspaceIds is empty (unrestricted). */ retainedWorkspaceIds?: InputMaybe>; /** Scopes to grant — must be a subset of the app's scopes. */ scopes: Array; /** The user granting (and target of) the self-delegation. */ userId: Scalars['String']['input']; /** Workspaces the delegation is restricted to (empty = unrestricted). */ workspaceIds?: InputMaybe>; }; export type GrantAppWorkspaceAccessInput = { appId: Scalars['ID']['input']; /** Restore a REVOKED authorization only if its revokedReason is exactly this value (one conditional write); otherwise behave as create-only. Lets an automated provisioner undo its own withdrawal but never an operator's revocation. Takes precedence over reactivateRevoked. */ reactivateIfRevokedReason?: InputMaybe; /** Whether an existing REVOKED authorization may be restored. Defaults to true for explicit administrative grants. Automated provisioning should pass false so an operator revocation remains durable. */ reactivateRevoked?: InputMaybe; /** Optional subset of the app's global scopes. Empty array means the authorization inherits the app's full scope list. */ scopes?: InputMaybe>; tenantId: Scalars['ID']['input']; workspaceId: Scalars['ID']['input']; }; export type GrantConsentInput = { expiresAt?: InputMaybe; lawfulBasis?: InputMaybe; policyVersion: Scalars['String']['input']; proofPayload?: InputMaybe; purpose: ConsentPurpose; source: Scalars['String']['input']; subjectId: Scalars['ID']['input']; subjectType: Scalars['String']['input']; tenantId?: InputMaybe; workspaceId?: InputMaybe; }; export type GrantCreditsInput = { amount: Scalars['Float']['input']; billingAccountId: Scalars['ID']['input']; metadata?: InputMaybe; productId?: InputMaybe; reason?: InputMaybe; }; export type GrantDelegationInput = { appId: Scalars['ID']['input']; expiresAt?: InputMaybe; scopes: Array; workspaceIds?: InputMaybe>; }; /** GraphQL callback configuration for external service notifications Supports two authentication methods (controlled by CALLBACK_AUTH_METHOD env var): 1. token (default): Direct HTTP with authToken 2. internal-gateway: Service credentials via internal gateway */ export type GraphQlCallbackInput = { /** Authentication token for callback (optional) Required only when CALLBACK_AUTH_METHOD=token (default) Not needed when CALLBACK_AUTH_METHOD=internal-gateway Example: Bearer store-service-webhook-secret-xyz */ authToken?: InputMaybe; /** GraphQL endpoint URL of the external service Must be HTTPS and match BILLING_CALLBACK_ALLOWED_ENDPOINTS/HOSTS/SUFFIXES. Localhost is allowed only outside production for local development. Example: https://graphqlworkspaces.burdenoff.com/workspaces/graphql */ endpoint: Scalars['String']['input']; /** Name of the GraphQL mutation to call on payment completion Example: updateOrderPaymentStatus */ mutationName: Scalars['String']['input']; /** Opt in when the callback mutation requires the exact persisted BillingOrder subtotal. Omitted or false preserves the legacy callback document, variables, and signature. */ requiresExactSubtotal?: InputMaybe; }; export type Group = { __typename?: 'Group'; id: Scalars['ID']['output']; }; /** Grouped store products for homepage display */ export type GroupedStoreProducts = { __typename?: 'GroupedStoreProducts'; featured: Array; freeItems: Array; mostDownloaded: Array; recentlyAdded: Array; }; export type HmacCredentialResult = { __typename?: 'HMACCredentialResult'; algorithm: Scalars['String']['output']; credentialId: Scalars['ID']['output']; secretKey: Scalars['String']['output']; }; export type HmacValidationResult = { __typename?: 'HMACValidationResult'; appId?: Maybe; error?: Maybe; valid: Scalars['Boolean']['output']; }; /** Health status response */ export type HealthStatus = { __typename?: 'HealthStatus'; natsConnected: Scalars['Boolean']['output']; status: Scalars['String']['output']; temporalError?: Maybe; temporalSchedules: Scalars['String']['output']; timestamp: Scalars['DateTime']['output']; version: Scalars['String']['output']; }; export type HomepageSection = { __typename?: 'HomepageSection'; config: Scalars['JSON']['output']; id: Scalars['ID']['output']; isActive: Scalars['Boolean']['output']; orderIndex: Scalars['Int']['output']; sectionType: Scalars['String']['output']; storeId: Scalars['ID']['output']; subtitle?: Maybe; title?: Maybe; }; export type I18nModule = { __typename?: 'I18nModule'; createdAt: Scalars['DateTime']['output']; createdBy?: Maybe; description?: Maybe; displayName: Scalars['String']['output']; id: Scalars['ID']['output']; metadata?: Maybe; name: Scalars['String']['output']; namespaces: Array; product: I18nProduct; productId: Scalars['String']['output']; status: I18nModuleStatus; updatedAt: Scalars['DateTime']['output']; }; export type I18nModuleFilterInput = { productId?: InputMaybe; search?: InputMaybe; status?: InputMaybe; }; export type I18nModuleList = { __typename?: 'I18nModuleList'; hasMore: Scalars['Boolean']['output']; items: Array; total: Scalars['Int']['output']; }; export declare enum I18nModuleStatus { Active = "ACTIVE", Archived = "ARCHIVED", Deprecated = "DEPRECATED" } export type I18nNamespace = { __typename?: 'I18nNamespace'; createdAt: Scalars['DateTime']['output']; createdBy?: Maybe; description?: Maybe; displayName: Scalars['String']['output']; id: Scalars['ID']['output']; metadata?: Maybe; module: I18nModule; moduleId: Scalars['String']['output']; name: Scalars['String']['output']; status: I18nNamespaceStatus; translationKeys: Array; updatedAt: Scalars['DateTime']['output']; }; export type I18nNamespaceFilterInput = { moduleId?: InputMaybe; search?: InputMaybe; status?: InputMaybe; }; export type I18nNamespaceList = { __typename?: 'I18nNamespaceList'; hasMore: Scalars['Boolean']['output']; items: Array; total: Scalars['Int']['output']; }; export declare enum I18nNamespaceStatus { Active = "ACTIVE", Archived = "ARCHIVED", Deprecated = "DEPRECATED" } export type I18nProduct = { __typename?: 'I18nProduct'; createdAt: Scalars['DateTime']['output']; createdBy?: Maybe; description?: Maybe; displayName: Scalars['String']['output']; id: Scalars['ID']['output']; metadata?: Maybe; modules: Array; name: Scalars['String']['output']; status: I18nProductStatus; translationKeys: Array; updatedAt: Scalars['DateTime']['output']; }; export type I18nProductFilterInput = { search?: InputMaybe; status?: InputMaybe; }; export type I18nProductList = { __typename?: 'I18nProductList'; hasMore: Scalars['Boolean']['output']; items: Array; total: Scalars['Int']['output']; }; export declare enum I18nProductStatus { Active = "ACTIVE", Archived = "ARCHIVED", Deprecated = "DEPRECATED" } export type IdentifyAffiliateJourneyInput = { /** @deprecated Identity is derived from the authenticated actor. This field is ignored. */ identifiedUserId?: InputMaybe; journeyId: Scalars['String']['input']; }; export type ImportJob = { __typename?: 'ImportJob'; completedAt?: Maybe; createdAt: Scalars['DateTime']['output']; createdBy: Scalars['String']['output']; errors?: Maybe; estimatedDuration?: Maybe; failedKeys: Scalars['Int']['output']; fileName: Scalars['String']['output']; fileSize: Scalars['Int']['output']; fileUrl?: Maybe; format: ImportJobFormat; id: Scalars['ID']['output']; options?: Maybe; processedKeys: Scalars['Int']['output']; productId: Scalars['String']['output']; startedAt?: Maybe; status: ImportJobStatus; successfulKeys: Scalars['Int']['output']; totalKeys?: Maybe; }; export type ImportJobFilterInput = { format?: InputMaybe; productId?: InputMaybe; status?: InputMaybe; }; export declare enum ImportJobFormat { Csv = "CSV", Json = "JSON", Po = "PO", Xliff = "XLIFF", Xlsx = "XLSX" } export type ImportJobList = { __typename?: 'ImportJobList'; hasMore: Scalars['Boolean']['output']; items: Array; total: Scalars['Int']['output']; }; export type ImportJobProgressEvent = { __typename?: 'ImportJobProgressEvent'; job: ImportJob; percentComplete: Scalars['Float']['output']; processedRecords: Scalars['Int']['output']; totalRecords: Scalars['Int']['output']; }; export declare enum ImportJobStatus { Cancelled = "CANCELLED", Completed = "COMPLETED", Failed = "FAILED", Pending = "PENDING", Processing = "PROCESSING" } export type ImportSubscriberInput = { /** Newsletter context for scoping (workspaceId, userId, productId, tenantId, etc.) */ context?: InputMaybe; email: Scalars['String']['input']; metadata?: InputMaybe; platformProductId: Scalars['String']['input']; userId?: InputMaybe; }; export type ImportSubscribersResult = { __typename?: 'ImportSubscribersResult'; errors: Array; failed: Scalars['Int']['output']; imported: Scalars['Int']['output']; skipped: Scalars['Int']['output']; success: Scalars['Boolean']['output']; }; /** Result of billing role initialization */ export type InitializeBillingRolesResult = { __typename?: 'InitializeBillingRolesResult'; /** Message describing the result */ message: Scalars['String']['output']; /** Whether owner was assigned the Billing Admin role */ ownerAssigned: Scalars['Boolean']['output']; /** Names of roles created */ roleNames: Array; /** Number of roles created */ rolesCreated: Scalars['Int']['output']; /** Whether the operation was successful */ success: Scalars['Boolean']['output']; }; /** Result of organization role initialization */ export type InitializeOrganizationRolesResult = { __typename?: 'InitializeOrganizationRolesResult'; /** Message describing the result */ message: Scalars['String']['output']; /** Whether owner was assigned the Owner role */ ownerAssigned: Scalars['Boolean']['output']; /** Names of roles created */ roleNames: Array; /** Number of roles created */ rolesCreated: Scalars['Int']['output']; /** Whether the operation was successful */ success: Scalars['Boolean']['output']; }; /** Input for initiating a payment */ export type InitiatePaymentInput = { /** For ADDON purchase: the addon ID (single addon) */ addonId?: InputMaybe; /** For ADDON purchase: multiple addon IDs (for cart checkout) */ addonIds?: InputMaybe>; /** Base amount before tax */ amount: Scalars['Float']['input']; /** For PLAN purchase: enable automatic renewal when subscription expires */ autoRenew?: InputMaybe; /** For PLAN purchase with autoRenew: payment method ID to use for auto-renewal Must be a verified saved payment method. Required if autoRenew is true. */ autoRenewPaymentMethodId?: InputMaybe; /** Billing account ID (required for tax calculation) */ billingAccountId: Scalars['ID']['input']; /** For CREDITS purchase: number of credits to purchase */ creditAmount?: InputMaybe; /** Currency code (e.g., INR, USD) */ currency: Scalars['String']['input']; /** For PLAN downgrade: the active higher-tier subscription ID being replaced. Old subscription is left active until natural expiry — no cancellation, no refund. User retains old plan quotas during overlap; continues on new plan after expiry. */ downgradeFromSubscriptionId?: InputMaybe; /** For PLAN purchase: whether this is an annual subscription (12 months with discount) */ isAnnual?: InputMaybe; /** Optional metadata */ metadata?: InputMaybe; /** Order ID for external service orders (mutually exclusive with creditAmount/planId/addonId) */ orderId?: InputMaybe; /** Saved payment method ID (from our PaymentMethod table) for one-click checkout */ paymentMethodId?: InputMaybe; /** For PLAN purchase: the plan ID */ planId?: InputMaybe; /** Product ID for multi-product systems */ productId?: InputMaybe; /** Promo/discount code to apply */ promoCode?: InputMaybe; /** Preferred payment provider (defaults to AUTO - system chooses based on currency/region) */ provider?: InputMaybe; /** Type of purchase */ purchaseType: PurchaseType; /** For ADDON purchase: quantities for each addon (parallel array with addonIds) */ quantities?: InputMaybe>; /** For ADDON purchase: quantity (single addon) */ quantity?: InputMaybe; /** Whether to save the card for future purchases (only for new card payments) */ saveCard?: InputMaybe; /** For ADDON purchase: subscription ID to attach addon to. Required if billing account has multiple active subscriptions. If only one active subscription exists, it will be auto-selected. */ subscriptionId?: InputMaybe; /** For PLAN upgrade: the subscription ID being upgraded from. If provided, this is an upgrade - old quotas will be moved to new subscription. */ upgradeFromSubscriptionId?: InputMaybe; }; /** Response from initiatePayment mutation */ export type InitiatePaymentResponse = { __typename?: 'InitiatePaymentResponse'; /** Stripe client secret (for Stripe payments) */ clientSecret?: Maybe; /** Coupon code applied (if any) */ couponCode?: Maybe; /** Currency */ currency: Scalars['String']['output']; /** Discount amount applied (if coupon was used) */ discountAmount?: Maybe; /** Discount type (PERCENTAGE, FIXED_AMOUNT, etc.) */ discountType?: Maybe; /** Error message if failed */ error?: Maybe; /** Tax jurisdiction */ jurisdiction: Scalars['String']['output']; /** Razorpay order ID (for Razorpay payments) */ orderId?: Maybe; /** Whether payment is already complete (for saved card one-click payments) */ paymentComplete?: Maybe; /** Backend payment ID for status polling (use this for getPayment query) */ paymentId?: Maybe; /** Customer phone/contact for payment form prefill (required for Razorpay) */ prefillContact?: Maybe; /** Customer email for payment form prefill */ prefillEmail?: Maybe; /** Customer name for payment form prefill */ prefillName?: Maybe; /** Payment provider used */ provider: Scalars['String']['output']; /** Razorpay customer ID (for saved cards in Razorpay checkout) */ razorpayCustomerId?: Maybe; /** Razorpay key ID for frontend integration */ razorpayKeyId?: Maybe; /** Whether payment requires additional action (3DS authentication) */ requiresAction?: Maybe; /** Original amount before tax */ subtotal: Scalars['Float']['output']; /** Whether the payment initiation was successful */ success: Scalars['Boolean']['output']; /** Tax amount */ taxAmount: Scalars['Float']['output']; /** Tax breakdown (for GST: igst or cgst+sgst) */ taxBreakdown?: Maybe; /** Tax rate applied (as decimal, e.g., 0.18 for 18%) */ taxRate: Scalars['Float']['output']; /** Tax type (GST, VAT, SALES_TAX, etc.) */ taxType: Scalars['String']['output']; /** Total amount including tax */ total: Scalars['Float']['output']; }; export type InstallAppInput = { applicationId: Scalars['ID']['input']; autoUpdate?: InputMaybe; config?: InputMaybe; consentedPermissions?: InputMaybe>; organizationId?: InputMaybe; scope: InstallationScope; userId?: InputMaybe; version?: InputMaybe; workspaceId?: InputMaybe; }; /** Result type for installPurchasedApp mutation */ export type InstallPurchasedAppResult = { __typename?: 'InstallPurchasedAppResult'; alreadyInstalled?: Maybe; error?: Maybe; installation?: Maybe; message?: Maybe; success: Scalars['Boolean']['output']; }; export type InstallationFilterInput = { organizationId?: InputMaybe; productId?: InputMaybe; search?: InputMaybe; status?: InputMaybe; workspaceId?: InputMaybe; }; export declare enum InstallationScope { Organization = "ORGANIZATION", User = "USER", Workspace = "WORKSPACE" } export declare enum InstallationStatus { Active = "ACTIVE", Expired = "EXPIRED", Revoked = "REVOKED", Suspended = "SUSPENDED", Uninstalled = "UNINSTALLED" } /** Installation status change event payload */ export type InstallationStatusUpdatedEvent = { __typename?: 'InstallationStatusUpdatedEvent'; installationId: Scalars['ID']['output']; productId: Scalars['ID']['output']; status: Scalars['String']['output']; updatedAt: Scalars['String']['output']; workspaceId: Scalars['ID']['output']; }; export type InterviewFeedback = { __typename?: 'InterviewFeedback'; context?: Maybe; createdAt: Scalars['DateTime']['output']; createdBy: Scalars['String']['output']; id: Scalars['ID']['output']; internalNotes?: Maybe; interviewer: Interviewer; interviewerId: Scalars['ID']['output']; onBehalfOf: Scalars['String']['output']; rating?: Maybe; round: InterviewRound; roundId: Scalars['ID']['output']; updatedAt: Scalars['DateTime']['output']; updatedBy?: Maybe; verdict?: Maybe; }; export type InterviewRound = { __typename?: 'InterviewRound'; application: JobApplication; applicationId: Scalars['ID']['output']; assignment?: Maybe; assignmentId?: Maybe; candidateMessage?: Maybe; candidateMessageSentAt?: Maybe; context?: Maybe; createdAt: Scalars['DateTime']['output']; createdBy: Scalars['String']['output']; emailLogs: Array; feedback: Array; id: Scalars['ID']['output']; interviewers: Array; name: Scalars['String']['output']; notes?: Maybe; onBehalfOf: Scalars['String']['output']; roundConfig?: Maybe; roundConfigId?: Maybe; roundType: InterviewRoundType; scheduledAt?: Maybe; status: InterviewRoundStatus; submittedAt?: Maybe; submittedNotes?: Maybe; submittedRepoUrl?: Maybe; submittedVideoUrl?: Maybe; updatedAt: Scalars['DateTime']['output']; updatedBy?: Maybe; }; export type InterviewRoundConfig = { __typename?: 'InterviewRoundConfig'; context?: Maybe; createdAt: Scalars['DateTime']['output']; createdBy: Scalars['String']['output']; description?: Maybe; id: Scalars['ID']['output']; isAssignmentRound: Scalars['Boolean']['output']; isRequired: Scalars['Boolean']['output']; jobPosting: JobPosting; jobPostingId: Scalars['ID']['output']; name: Scalars['String']['output']; onBehalfOf: Scalars['String']['output']; roundNumber: Scalars['Int']['output']; roundType: InterviewRoundType; updatedAt: Scalars['DateTime']['output']; updatedBy?: Maybe; }; export type InterviewRoundInterviewer = { __typename?: 'InterviewRoundInterviewer'; assignedAt: Scalars['DateTime']['output']; context?: Maybe; createdBy: Scalars['String']['output']; id: Scalars['ID']['output']; interviewer: Interviewer; interviewerId: Scalars['ID']['output']; onBehalfOf: Scalars['String']['output']; role: InterviewerRole; round: InterviewRound; roundId: Scalars['ID']['output']; updatedAt: Scalars['DateTime']['output']; updatedBy?: Maybe; }; export type InterviewRoundInterviewerAssignmentInput = { interviewerId: Scalars['ID']['input']; role?: InputMaybe; }; export type InterviewRoundList = { __typename?: 'InterviewRoundList'; hasMore: Scalars['Boolean']['output']; items: Array; total: Scalars['Int']['output']; }; export declare enum InterviewRoundStatus { AwaitingSubmission = "AWAITING_SUBMISSION", Cancelled = "CANCELLED", Completed = "COMPLETED", Failed = "FAILED", NoShow = "NO_SHOW", Passed = "PASSED", Scheduled = "SCHEDULED", Submitted = "SUBMITTED" } export declare enum InterviewRoundType { CultureFit = "CULTURE_FIT", Final = "FINAL", Hr = "HR", PhoneScreen = "PHONE_SCREEN", TakeHome = "TAKE_HOME", Technical = "TECHNICAL" } export declare enum InterviewVerdict { Neutral = "NEUTRAL", No = "NO", StrongNo = "STRONG_NO", StrongYes = "STRONG_YES", Yes = "YES" } export type Interviewer = { __typename?: 'Interviewer'; context?: Maybe; createdAt: Scalars['DateTime']['output']; createdBy: Scalars['String']['output']; department?: Maybe; email: Scalars['String']['output']; feedback: Array; id: Scalars['ID']['output']; isActive: Scalars['Boolean']['output']; name: Scalars['String']['output']; notes?: Maybe; onBehalfOf: Scalars['String']['output']; rounds: Array; title?: Maybe; updatedAt: Scalars['DateTime']['output']; updatedBy?: Maybe; userId?: Maybe; }; export type InterviewerFilterInput = { department?: InputMaybe; isActive?: InputMaybe; search?: InputMaybe; }; export type InterviewerList = { __typename?: 'InterviewerList'; hasMore: Scalars['Boolean']['output']; items: Array; total: Scalars['Int']['output']; }; export declare enum InterviewerRole { Lead = "LEAD", Panel = "PANEL" } export type InventoryAdjustment = { __typename?: 'InventoryAdjustment'; afterQty: Scalars['Int']['output']; beforeQty: Scalars['Int']['output']; createdAt: Scalars['DateTime']['output']; delta: Scalars['Int']['output']; id: Scalars['ID']['output']; notes?: Maybe; performedBy: Scalars['String']['output']; productId: Scalars['ID']['output']; reason: InventoryAdjustmentReason; variantId?: Maybe; }; export declare enum InventoryAdjustmentReason { Adjustment = "ADJUSTMENT", Damage = "DAMAGE", Purchase = "PURCHASE", Restock = "RESTOCK", Return = "RETURN", Sale = "SALE", Shrinkage = "SHRINKAGE", Transfer = "TRANSFER" } export type InventoryAlert = { __typename?: 'InventoryAlert'; currentQty: Scalars['Int']['output']; id: Scalars['ID']['output']; productId: Scalars['ID']['output']; resolvedAt?: Maybe; status: InventoryAlertStatus; thresholdQty?: Maybe; triggeredAt: Scalars['DateTime']['output']; type: InventoryAlertType; variantId?: Maybe; }; export declare enum InventoryAlertStatus { Open = "OPEN", Resolved = "RESOLVED", Snoozed = "SNOOZED" } export declare enum InventoryAlertType { BackInStock = "BACK_IN_STOCK", LowStock = "LOW_STOCK", OutOfStock = "OUT_OF_STOCK" } export declare enum InvitationStatus { Accepted = "ACCEPTED", Cancelled = "CANCELLED", Expired = "EXPIRED", Pending = "PENDING", Rejected = "REJECTED" } export type InviteDeveloperOrgMemberInput = { email: Scalars['String']['input']; message?: InputMaybe; permissions?: InputMaybe; role: DeveloperOrgRole; userId?: InputMaybe; }; /** Input for inviting a member to an organization by email */ export type InviteOrganizationMemberInput = { email: Scalars['String']['input']; message?: InputMaybe; organizationId: Scalars['String']['input']; role?: InputMaybe; }; /** Status of an organization invite */ export declare enum InviteStatus { Accepted = "ACCEPTED", Cancelled = "CANCELLED", Expired = "EXPIRED", Pending = "PENDING", Rejected = "REJECTED" } export type Invoice = { __typename?: 'Invoice'; amountPaid: Scalars['Float']['output']; billingAccountId?: Maybe; context?: Maybe; createdAt: Scalars['DateTime']['output']; currency: Scalars['String']['output']; dueDate?: Maybe; gatewayInvoiceId?: Maybe; id: Scalars['ID']['output']; invoiceNumber: Scalars['String']['output']; /** URL to view the invoice on the payment provider portal (Zoho Books / Stripe) */ invoiceUrl?: Maybe; /** Name of the item purchased (plan/addon name from transaction metadata) */ itemDescription?: Maybe; items: Array; metadata?: Maybe; orgId: Scalars['String']['output']; paidAt?: Maybe; payment?: Maybe; paymentId?: Maybe; /** Direct URL to download the invoice PDF */ pdfUrl?: Maybe; status: InvoiceStatus; subscription?: Maybe; subscriptionId?: Maybe; subtotal: Scalars['Float']['output']; tax: Scalars['Float']['output']; total: Scalars['Float']['output']; updatedAt: Scalars['DateTime']['output']; }; export type InvoiceItem = { __typename?: 'InvoiceItem'; amount: Scalars['Float']['output']; context?: Maybe; description: Scalars['String']['output']; id: Scalars['ID']['output']; invoice: Invoice; invoiceId: Scalars['String']['output']; metadata?: Maybe; quantity: Scalars['Int']['output']; unitPrice: Scalars['Float']['output']; }; export declare enum InvoiceStatus { Draft = "DRAFT", Open = "OPEN", Paid = "PAID", Uncollectible = "UNCOLLECTIBLE", Void = "VOID" } export type InvoiceTransaction = { __typename?: 'InvoiceTransaction'; amount: Scalars['Float']['output']; context?: Maybe; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; invoiceId: Scalars['String']['output']; transaction: Transaction; transactionId: Scalars['String']['output']; }; /** Input for the service-trusted internal app-as-user mint path. Unlike GenerateAppAsUserTokenInput (which derives the app from the caller's own app token), this is called by a trusted backend service that names the first-party app explicitly via clientId. Only callable by service/super_admin actors through an internal gateway. Requires an existing ACTIVE delegation for (app, targetUserId). */ export type IssueAppAsUserTokenInternalInput = { /** Client ID of the first-party app to mint as (e.g. burdenoff_integration_core). */ clientId: Scalars['String']['input']; /** Optional subset of the delegation's scopes to embed in the token. */ scopes?: InputMaybe>; /** The user the app will act on behalf of (must have an active delegation). */ targetUserId: Scalars['String']['input']; /** Bind the token to this one workspace instead of every workspace the delegation covers. The delegation must cover it. Callers minting for a single workspace (an integration connection) should always pass it. */ workspaceId?: InputMaybe; }; export type ItemOrder = { __typename?: 'ItemOrder'; appliedEntitlementId?: Maybe; buyerId: Scalars['String']['output']; createdAt: Scalars['DateTime']['output']; id: Scalars['String']['output']; itemNameAtPurchase: Scalars['String']['output']; itemVersionAtPurchase?: Maybe; status: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; }; export type ItemOrdersInput = { endDate?: InputMaybe; limit: Scalars['Int']['input']; page: Scalars['Int']['input']; startDate?: InputMaybe; status?: InputMaybe; storeProductId: Scalars['String']['input']; }; /** Orders list for a specific product */ export type ItemOrdersList = { __typename?: 'ItemOrdersList'; currency: Scalars['String']['output']; orders: Array; totalCount: Scalars['Int']['output']; totalEarnings: Scalars['Float']['output']; }; export type ItemSalesStats = { __typename?: 'ItemSalesStats'; currency: Scalars['String']['output']; monthlyEarnings: Scalars['Float']['output']; monthlySales: Scalars['Int']['output']; storeProduct: StoreProduct; totalEarnings: Scalars['Float']['output']; totalSales: Scalars['Int']['output']; }; /** A job application submitted via a product website careers form. `resumeKey` is intentionally NOT exposed — the resume is private and only reachable through `jobApplicationResumeUrl`, which returns a short-lived presigned download URL to authenticated admins. */ export type JobApplication = { __typename?: 'JobApplication'; coverLetter?: Maybe; createdAt: Scalars['DateTime']['output']; department?: Maybe; email: Scalars['String']['output']; emailLogs: Array; firstName: Scalars['String']['output']; id: Scalars['ID']['output']; interviewRounds: Array; jobPosting?: Maybe; jobPostingId?: Maybe; lastName: Scalars['String']['output']; linkedinUrl?: Maybe; metadata?: Maybe; phone?: Maybe; portfolioUrl?: Maybe; position: Scalars['String']['output']; productId?: Maybe; resumeFileName?: Maybe; resumeFileSize?: Maybe; resumeMimeType?: Maybe; source: Scalars['String']['output']; status: JobApplicationStatus; updatedAt: Scalars['DateTime']['output']; }; export type JobApplicationFilterInput = { /** Filter to applications with at least one interview round whose randomly assigned take-home was authored by this owner email. With `roundConfigId`, scoped to that one exact round's assignment; otherwise matches any round. */ assignmentOwnerEmail?: InputMaybe; /** Filter that exact configured round by presence and assignment state. Requires `roundConfigId`. */ configuredRoundState?: InputMaybe; /** Filter to applications whose email address is shared by more than one application within this filter's other active scope (e.g. within the same `jobPostingId`) — surfaces candidates who accidentally applied twice and so may have received more than one assignment email. Requires `jobPostingId`. */ duplicateEmail?: InputMaybe; /** Filter by 1-100 unique application IDs. */ ids?: InputMaybe>; /** Filter to applications with at least one interview round this interviewer is assigned to review. With `roundConfigId`, scoped to that one exact round; otherwise matches any round. */ interviewerId?: InputMaybe; jobPostingId?: InputMaybe; /** Filter by position (case-insensitive contains). */ position?: InputMaybe; productId?: InputMaybe; /** Filter by one exact configured interview round. */ roundConfigId?: InputMaybe; /** Filter round stages. With `roundConfigId`, stages must match that exact configured round. */ roundStatuses?: InputMaybe>; /** Search in name, email, or position. */ search?: InputMaybe; /** Single-status filter, kept for backward compatibility. Prefer `statuses`. */ status?: InputMaybe; /** Filter by any of these statuses at once. Takes precedence over `status` when given. */ statuses?: InputMaybe>; }; export type JobApplicationList = { __typename?: 'JobApplicationList'; hasMore: Scalars['Boolean']['output']; items: Array; total: Scalars['Int']['output']; }; export type JobApplicationReplyResult = { __typename?: 'JobApplicationReplyResult'; message?: Maybe; success: Scalars['Boolean']['output']; }; export declare enum JobApplicationStatus { Archived = "ARCHIVED", /** Marks an application as already sent a (bulk) email — set via bulkUpdateApplicationStatus after bulkSendCustomEmail so re-running the send on the same filter doesn't email the same candidates twice. Not set automatically; the admin who sent the email marks it, and can move affected applications back to any other status once the outcome is decided. */ EmailSent = "EMAIL_SENT", Hired = "HIRED", Interview = "INTERVIEW", New = "NEW", /** A candidate parked while the team decides whether to keep evaluating them — not a rejection, just a pause. Set and cleared manually by an admin via updateJobApplicationStatus / bulkUpdateApplicationStatus. */ OnHold = "ON_HOLD", Rejected = "REJECTED", Screening = "SCREENING", Shortlisted = "SHORTLISTED" } export type JobAssignment = { __typename?: 'JobAssignment'; context?: Maybe; createdAt: Scalars['DateTime']['output']; createdBy: Scalars['String']['output']; description: Scalars['String']['output']; difficulty?: Maybe; id: Scalars['ID']['output']; isActive: Scalars['Boolean']['output']; jobPosting: JobPosting; jobPostingId: Scalars['ID']['output']; onBehalfOf: Scalars['String']['output']; /** Optional attribution — who authored/owns this assignment. Not used for auth. */ ownerEmail?: Maybe; problemStatement?: Maybe; rounds: Array; title: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; updatedBy?: Maybe; }; export type JobAssignmentFilterInput = { isActive?: InputMaybe; jobPostingId?: InputMaybe; search?: InputMaybe; }; export type JobAssignmentList = { __typename?: 'JobAssignmentList'; hasMore: Scalars['Boolean']['output']; items: Array; total: Scalars['Int']['output']; }; export type JobExecution = { __typename?: 'JobExecution'; completedAt?: Maybe; configSnapshot?: Maybe; context?: Maybe; correlationId?: Maybe; createdAt: Scalars['DateTime']['output']; duration?: Maybe; errorMessage?: Maybe; errorStack?: Maybe; id: Scalars['ID']['output']; metadata?: Maybe; nextRetryAt?: Maybe; output?: Maybe; retryAttempt: Scalars['Int']['output']; scheduleVersion?: Maybe; scheduledJobId: Scalars['String']['output']; scheduledTime?: Maybe; spanId?: Maybe; startedAt: Scalars['DateTime']['output']; status: JobStatus; statusCode?: Maybe; success: Scalars['Boolean']['output']; traceId?: Maybe; triggeredAt: Scalars['DateTime']['output']; versionId?: Maybe; willRetry: Scalars['Boolean']['output']; workerId?: Maybe; workerPod?: Maybe; }; export type JobExecutionConnection = { __typename?: 'JobExecutionConnection'; executions: Array; hasMore: Scalars['Boolean']['output']; total: Scalars['Int']['output']; }; export type JobFilterInput = { createdAfter?: InputMaybe; createdBefore?: InputMaybe; createdBy?: InputMaybe; executorType?: InputMaybe; nextExecutionAfter?: InputMaybe; nextExecutionBefore?: InputMaybe; priority?: InputMaybe; scheduleType?: InputMaybe; search?: InputMaybe; status?: InputMaybe; tags?: InputMaybe>; }; export type JobPosting = { __typename?: 'JobPosting'; applications: Array; assignments: Array; context?: Maybe; createdAt: Scalars['DateTime']['output']; createdBy: Scalars['String']['output']; department?: Maybe; description?: Maybe; employmentType?: Maybe; id: Scalars['ID']['output']; learnings: Array; location?: Maybe; onBehalfOf: Scalars['String']['output']; openings: Scalars['Int']['output']; overview: Scalars['String']['output']; productId?: Maybe; qualifications: Array; responsibilities: Array; rounds: Array; slug?: Maybe; status: JobPostingStatus; title: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; updatedBy?: Maybe; }; export type JobPostingFilterInput = { department?: InputMaybe; employmentType?: InputMaybe; productId?: InputMaybe; search?: InputMaybe; status?: InputMaybe; }; export type JobPostingList = { __typename?: 'JobPostingList'; hasMore: Scalars['Boolean']['output']; items: Array; total: Scalars['Int']['output']; }; export declare enum JobPostingStatus { Archived = "ARCHIVED", Closed = "CLOSED", Draft = "DRAFT", Open = "OPEN" } export type JobRetryPolicyInput = { backoffStrategy: BackoffStrategy; maxRetries: Scalars['Int']['input']; maxRetryDelay?: InputMaybe; retryDelay: Scalars['Int']['input']; retryOn?: InputMaybe; timeoutPerAttempt?: InputMaybe; }; export declare enum JobStatus { Archived = "ARCHIVED", Cancelled = "CANCELLED", Completed = "COMPLETED", Disabled = "DISABLED", Draft = "DRAFT", Failed = "FAILED", Paused = "PAUSED", Pending = "PENDING", Running = "RUNNING" } export type JobStatusUpdate = { __typename?: 'JobStatusUpdate'; lastExecutionAt?: Maybe; metadata?: Maybe; nextExecutionAt?: Maybe; previousStatus?: Maybe; scheduleId: Scalars['ID']['output']; scheduleName?: Maybe; status: JobStatus; timestamp: Scalars['DateTime']['output']; }; export type JoinWaitlistInput = { company?: InputMaybe; /** Newsletter context for scoping (workspaceId, userId, productId, tenantId, etc.) */ context?: InputMaybe; email: Scalars['String']['input']; name?: InputMaybe; platformProductId: Scalars['String']['input']; reason?: InputMaybe; }; export type KerberosChallengeResult = { __typename?: 'KerberosChallengeResult'; challengeToken: Scalars['String']['output']; realm: Scalars['String']['output']; }; export type KerberosConfig = { __typename?: 'KerberosConfig'; createdAt: Scalars['DateTime']['output']; enabled: Scalars['Boolean']['output']; id: Scalars['ID']['output']; kdcHost: Scalars['String']['output']; realm: Scalars['String']['output']; servicePrincipal: Scalars['String']['output']; tenantId: Scalars['ID']['output']; }; export type KerberosConfigInput = { kdcHost: Scalars['String']['input']; kdcPort?: InputMaybe; realm: Scalars['String']['input']; servicePrincipal: Scalars['String']['input']; }; /** KeyboardShortcut entity - defines a keyboard shortcut action. Shortcuts can be global (all products) or product-specific. */ export type KeyboardShortcut = { __typename?: 'KeyboardShortcut'; /** Category for grouping (e.g., "Navigation", "Actions", "UI", "Help") */ category: Scalars['String']['output']; /** When the shortcut was created */ createdAt: Scalars['DateTime']['output']; /** Extended description of what the shortcut does */ description?: Maybe; /** The event name to emit when triggered (e.g., "navigate:home", "open:search") */ eventName: Scalars['String']['output']; /** The unique identifier for the keyboard shortcut */ id: Scalars['ID']['output']; /** Whether this shortcut is currently enabled */ isEnabled: Scalars['Boolean']['output']; /** Whether this is a key sequence (e.g., "g h" = press g, then h) */ isSequence: Scalars['Boolean']['output']; /** Human-readable label (e.g., "Go to Home") */ label: Scalars['String']['output']; /** Mac-specific key override (e.g., "Cmd+K") */ macKey?: Maybe; /** The associated product (if product-specific) */ product?: Maybe; /** The product this shortcut belongs to (null = global shortcut) */ productId?: Maybe; /** The key combination (e.g., "g h", "Cmd+K", "Ctrl+Shift+P") */ shortcutKey: Scalars['String']['output']; /** Display order within category */ sortOrder: Scalars['Int']['output']; /** When the shortcut was last updated */ updatedAt: Scalars['DateTime']['output']; /** Windows/Linux-specific key override (e.g., "Ctrl+K") */ windowsKey?: Maybe; }; export type KeyboardShortcutFilterInput = { /** Filter by category */ category?: InputMaybe; /** Include global shortcuts (default: true) */ includeGlobal?: InputMaybe; /** Filter by enabled status */ isEnabled?: InputMaybe; /** Filter by product ID (null = global shortcuts only) */ productId?: InputMaybe; /** Search in label, description, shortcutKey, or eventName */ search?: InputMaybe; }; export type KeyboardShortcutList = { __typename?: 'KeyboardShortcutList'; /** Whether there are more shortcuts available */ hasMore: Scalars['Boolean']['output']; /** List of keyboard shortcuts */ items: Array; /** Total count of shortcuts */ total: Scalars['Int']['output']; }; export type KnowledgeBaseArticle = { __typename?: 'KnowledgeBaseArticle'; archivedAt?: Maybe; authorId: Scalars['String']['output']; category?: Maybe; categoryId?: Maybe; content: Scalars['String']['output']; context?: Maybe; createdAt: Scalars['DateTime']['output']; excerpt?: Maybe; helpfulCount: Scalars['Int']['output']; helpfulnessScore?: Maybe; id: Scalars['ID']['output']; metaDescription?: Maybe; notHelpfulCount: Scalars['Int']['output']; previousVersion?: Maybe; publishedAt?: Maybe; slug: Scalars['String']['output']; status: ArticleStatus; tags: Array; tenantId?: Maybe; title: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; version: Scalars['Int']['output']; viewCount: Scalars['Int']['output']; }; export type KnowledgeBaseArticleConnection = { __typename?: 'KnowledgeBaseArticleConnection'; hasMore: Scalars['Boolean']['output']; nodes: Array; totalCount: Scalars['Int']['output']; }; export type KnowledgeBaseArticleFilterInput = { authorId?: InputMaybe; categoryId?: InputMaybe; context?: InputMaybe; status?: InputMaybe; tags?: InputMaybe>; }; export type LdapConfig = { __typename?: 'LDAPConfig'; baseDN: Scalars['String']['output']; createdAt: Scalars['DateTime']['output']; enabled: Scalars['Boolean']['output']; host: Scalars['String']['output']; id: Scalars['ID']['output']; port: Scalars['Int']['output']; searchFilter: Scalars['String']['output']; tenantId: Scalars['ID']['output']; useTLS: Scalars['Boolean']['output']; }; export type LdapConfigInput = { baseDN: Scalars['String']['input']; bindDN?: InputMaybe; bindPassword?: InputMaybe; host: Scalars['String']['input']; port?: InputMaybe; searchFilter?: InputMaybe; useTLS?: InputMaybe; userMapping?: InputMaybe; }; export type Language = { __typename?: 'Language'; code: Scalars['String']['output']; createdAt: Scalars['DateTime']['output']; createdBy?: Maybe; dateFormat: Scalars['String']['output']; direction: LanguageDirection; fallbackCode?: Maybe; id: Scalars['ID']['output']; isDefault: Scalars['Boolean']['output']; metadata?: Maybe; name: Scalars['String']['output']; nativeName: Scalars['String']['output']; pluralRules?: Maybe; region?: Maybe; status: LanguageStatus; timeFormat: Scalars['String']['output']; translations: Array; updatedAt: Scalars['DateTime']['output']; }; export declare enum LanguageDirection { Ltr = "LTR", Rtl = "RTL" } export type LanguageFilterInput = { direction?: InputMaybe; search?: InputMaybe; status?: InputMaybe; }; export type LanguageList = { __typename?: 'LanguageList'; hasMore: Scalars['Boolean']['output']; items: Array; total: Scalars['Int']['output']; }; export declare enum LanguageStatus { Active = "ACTIVE", Deprecated = "DEPRECATED", Draft = "DRAFT" } export declare enum LawfulBasis { Consent = "CONSENT", Contract = "CONTRACT", LegalObligation = "LEGAL_OBLIGATION", LegitimateInterest = "LEGITIMATE_INTEREST", PublicTask = "PUBLIC_TASK", VitalInterest = "VITAL_INTEREST" } export type LegalHold = { __typename?: 'LegalHold'; active: Scalars['Boolean']['output']; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; placedAt: Scalars['DateTime']['output']; placedBy: Scalars['ID']['output']; reason: Scalars['String']['output']; reference?: Maybe; releasedAt?: Maybe; releasedBy?: Maybe; subjectEmail?: Maybe; subjectId?: Maybe; updatedAt: Scalars['DateTime']['output']; }; export type LegalHoldConnection = { __typename?: 'LegalHoldConnection'; hasMore: Scalars['Boolean']['output']; items: Array; total: Scalars['Int']['output']; }; export type LegalHoldFilter = { active?: InputMaybe; subjectEmail?: InputMaybe; subjectId?: InputMaybe; }; export type LicenseActivation = { __typename?: 'LicenseActivation'; activatedAt: Scalars['DateTime']['output']; deviceId: Scalars['String']['output']; deviceName?: Maybe; entitlementId: Scalars['ID']['output']; id: Scalars['ID']['output']; ipAddress?: Maybe; lastSeenAt: Scalars['DateTime']['output']; platform?: Maybe; revokedAt?: Maybe; revokedBy?: Maybe; userAgent?: Maybe; }; export type LicenseActivationResult = { __typename?: 'LicenseActivationResult'; activation: LicenseActivation; entitlement: ProductEntitlement; offlineToken: Scalars['String']['output']; }; export type LicenseSeat = { __typename?: 'LicenseSeat'; assignedAt: Scalars['DateTime']['output']; assignedBy: Scalars['String']['output']; assigneeEmail?: Maybe; assigneeUserId: Scalars['String']['output']; entitlementId: Scalars['ID']['output']; id: Scalars['ID']['output']; revocationReason?: Maybe; revokedAt?: Maybe; revokedBy?: Maybe; role: LicenseSeatRole; }; export declare enum LicenseSeatRole { Admin = "ADMIN", Member = "MEMBER", Viewer = "VIEWER" } /** License entitlement status change event payload */ export type LicenseStatusUpdatedEvent = { __typename?: 'LicenseStatusUpdatedEvent'; entitlementId: Scalars['ID']['output']; productId: Scalars['ID']['output']; status: Scalars['String']['output']; updatedAt: Scalars['String']['output']; }; export type LicenseTransfer = { __typename?: 'LicenseTransfer'; entitlementId: Scalars['ID']['output']; fromUserId?: Maybe; fromWorkspaceId?: Maybe; id: Scalars['ID']['output']; newLicenseKey: Scalars['String']['output']; notes?: Maybe; oldLicenseKey: Scalars['String']['output']; reason: LicenseTransferReason; toUserId?: Maybe; toWorkspaceId?: Maybe; transferredAt: Scalars['DateTime']['output']; transferredBy: Scalars['String']['output']; }; export declare enum LicenseTransferReason { AdminAction = "ADMIN_ACTION", Merger = "MERGER", RefundReversal = "REFUND_REVERSAL", UserChange = "USER_CHANGE", WorkspaceChange = "WORKSPACE_CHANGE" } export type LicenseTransferResult = { __typename?: 'LicenseTransferResult'; entitlement: ProductEntitlement; transfer: LicenseTransfer; }; export type LicenseUsage = { __typename?: 'LicenseUsage'; currentValue: Scalars['String']['output']; entitlementId: Scalars['ID']['output']; id: Scalars['ID']['output']; limitValue?: Maybe; metricType: Scalars['String']['output']; period: Scalars['String']['output']; periodEnd: Scalars['DateTime']['output']; periodStart: Scalars['DateTime']['output']; }; export declare enum LicenseUsagePeriod { Daily = "DAILY", Lifetime = "LIFETIME", Monthly = "MONTHLY" } export type LicenseValidationResult = { __typename?: 'LicenseValidationResult'; entitlementId?: Maybe; expiresAt?: Maybe; features: Array; productId?: Maybe; reason?: Maybe; valid: Scalars['Boolean']['output']; }; export type LimitType = { __typename?: 'LimitType'; type: Scalars['String']['output']; value: Scalars['Int']['output']; }; export type LinkTicketsInput = { fromTicketId: Scalars['String']['input']; linkType: LinkType; toTicketId: Scalars['String']['input']; }; export declare enum LinkType { BlockedBy = "BLOCKED_BY", Blocks = "BLOCKS", Child = "CHILD", Duplicate = "DUPLICATE", Parent = "PARENT", Related = "RELATED" } export type LowStockProduct = { __typename?: 'LowStockProduct'; name: Scalars['String']['output']; productId: Scalars['ID']['output']; stockQuantity: Scalars['Int']['output']; threshold: Scalars['Int']['output']; }; export declare enum MfaMethod { Email = "EMAIL", Sms = "SMS", Totp = "TOTP", Webauthn = "WEBAUTHN" } export type MfaMethodStatus = { __typename?: 'MFAMethodStatus'; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; method: MfaMethod; status: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; }; /** Paginated list of MFA method statuses */ export type MfaMethodStatusConnection = { __typename?: 'MFAMethodStatusConnection'; hasMore: Scalars['Boolean']['output']; methods: Array; totalCount: Scalars['Int']['output']; }; export type MfaSetupResult = { __typename?: 'MFASetupResult'; backupCodes?: Maybe>; method: MfaMethod; qrCode?: Maybe; secret?: Maybe; }; export type MfaVerifyInput = { challengeId: Scalars['String']['input']; code: Scalars['String']['input']; method: MfaMethod; }; export type MagicLinkSendResult = { __typename?: 'MagicLinkSendResult'; expiresIn?: Maybe; message: Scalars['String']['output']; success: Scalars['Boolean']['output']; }; export type MaintenanceModeStatus = { __typename?: 'MaintenanceModeStatus'; enabled: Scalars['Boolean']['output']; estimatedEnd?: Maybe; reason?: Maybe; }; export declare enum MediaPosition { Footer = "FOOTER", Header = "HEADER", Inline = "INLINE", Overlay = "OVERLAY", Sidebar = "SIDEBAR" } /** Input for message attachments */ export type MessageAttachmentInput = { /** MIME type */ mimeType?: InputMaybe; /** Attachment name */ name?: InputMaybe; /** Attachment type (image, file, video) */ type: Scalars['String']['input']; /** Attachment URL */ url: Scalars['String']['input']; }; /** MessageDeliveryAttempt represents a single delivery attempt (transient, 7-day TTL) Used for debugging and monitoring only */ export type MessageDeliveryAttempt = { __typename?: 'MessageDeliveryAttempt'; /** Associated channel */ channel: Channel; /** Associated channel ID */ channelId: Scalars['ID']['output']; /** Message content */ content: Scalars['String']['output']; /** Operation context (tenantId, userId, etc.) */ context?: Maybe; /** Creation timestamp */ createdAt: Scalars['DateTime']['output']; /** Error message (if failed) */ errorMessage?: Maybe; /** Expiration timestamp (7 days from creation) */ expiresAt: Scalars['DateTime']['output']; /** Message format (text, markdown, html) */ format?: Maybe; /** Unique delivery attempt ID */ id: Scalars['ID']['output']; /** Next retry timestamp (if retrying) */ nextRetryAt?: Maybe; /** Platform-specific message options */ platformOptions?: Maybe; /** Platform response (message ID, timestamp, etc.) */ platformResponse?: Maybe; /** Retry count */ retryCount: Scalars['Int']['output']; /** Message sent timestamp */ sentAt?: Maybe; /** Delivery status */ status: DeliveryStatus; /** Last update timestamp */ updatedAt: Scalars['DateTime']['output']; }; /** Message delivery result */ export type MessageDeliveryResult = { __typename?: 'MessageDeliveryResult'; /** Delivery attempt ID (for tracking) */ attemptId: Scalars['ID']['output']; /** Error message (if failed) */ error?: Maybe; /** Platform message ID (if successful) */ messageId?: Maybe; /** Platform metadata for downstream correlation */ metadata?: Maybe; /** Next retry timestamp */ nextRetryAt?: Maybe; /** Whether delivery was successful */ success: Scalars['Boolean']['output']; /** Will retry delivery */ willRetry: Scalars['Boolean']['output']; }; export declare enum MessageType { AgentReply = "AGENT_REPLY", CustomerReply = "CUSTOMER_REPLY", InternalNote = "INTERNAL_NOTE", SystemMessage = "SYSTEM_MESSAGE" } export declare enum MisfirePolicy { Coalesce = "COALESCE", FireImmediately = "FIRE_IMMEDIATELY", FireNextValid = "FIRE_NEXT_VALID", Skip = "SKIP" } export type MonthlyEarning = { __typename?: 'MonthlyEarning'; currency: Scalars['String']['output']; earnings: Scalars['Float']['output']; month: Scalars['String']['output']; orders: Scalars['Int']['output']; year: Scalars['Int']['output']; }; /** Input for delivering a notification across multiple platforms and recipients simultaneously. The service fans out per-platform in parallel with independent failover per platform. */ export type MultiPlatformDeliveryInput = { /** Notification content (same content sent to all platforms/recipients) */ content: ChannelDeliveryContentInput; /** Optional reference to originating notification in notification-svc */ notificationId?: InputMaybe; /** Delivery options (priority, scheduling, retry policy) */ options?: InputMaybe; /** Organization ID for multi-tenancy */ organizationId: Scalars['ID']['input']; /** Target delivery platforms (e.g. [EMAIL, SMS, PUSH]) */ platforms: Array; /** Recipients — provide the address field for each target platform */ recipients: Array; }; /** Aggregated result of a multi-platform notification delivery */ export type MultiPlatformDeliveryResult = { __typename?: 'MultiPlatformDeliveryResult'; /** Number of failed deliveries across all platforms and recipients */ failedCount: Scalars['Int']['output']; /** Per-platform breakdown of delivery results */ platformResults: Array; /** Number of successful deliveries across all platforms and recipients */ successCount: Scalars['Int']['output']; /** Total number of platforms targeted */ totalPlatforms: Scalars['Int']['output']; /** Total number of recipients across all platforms */ totalRecipients: Scalars['Int']['output']; }; /** Per-recipient addresses for multi-platform delivery. Populate the field that matches each target platform. */ export type MultiPlatformRecipientInput = { /** Email address (for EMAIL platform) */ email?: InputMaybe; /** Phone number in E.164 format (for SMS and WHATSAPP platforms) */ phoneNumber?: InputMaybe; /** Device push token (for PUSH platform) */ pushToken?: InputMaybe; /** Slack user ID or channel ID (for SLACK platform) */ slackUserId?: InputMaybe; /** Microsoft Teams user ID (for TEAMS platform) */ teamsUserId?: InputMaybe; /** Internal user ID (for INAPP platform) */ userId?: InputMaybe; /** Webhook URL (for WEBHOOK platform) */ webhookUrl?: InputMaybe; /** WhatsApp phone number (for WHATSAPP platform) */ whatsappNumber?: InputMaybe; }; /** Root mutation type */ export type Mutation = { __typename?: 'Mutation'; /** Placeholder field so the Mutation type can be extended. @shareable because every subgraph declares it. */ _empty?: Maybe; /** Placeholder mutation (extended by modules) @rbac(public: true, scopeType: "global") */ _placeholder?: Maybe; /** Accept an organization invitation */ acceptDeveloperOrgInvitation: DeveloperOrgMember; /** Accept an organization invite (must be logged in as the invited user) */ acceptOrganizationInvite: OrganizationMember; acceptSourcingOffer: SourcingOrderSummary; /** Activate a channel */ activateChannel: Channel; /** Activate a connection */ activateConnection: ChannelConnection; activateLicense: LicenseActivationResult; activateSchedule: ScheduledJob; /** Activate a subscription's workspace-scoped quotas for a specific workspace. The backend reads quota definitions directly from the subscription plan — the caller cannot forge quota names, limits, or productIds. Called by the UI immediately after a plan/addon purchase instead of calling assignWorkspaceQuota directly on the workspace layer. */ activateSubscriptionForWorkspace: ActivateSubscriptionForWorkspaceResult; /** Activate a subscription's workspace-scoped quotas against MULTIPLE workspaces in one call — each listed workspace gets the FULL per-workspace quota allotment from the plan (not divided). Bounded by plan.maxWorkspaces: rejects with WORKSPACE_CAP_EXCEEDED if activating the given workspaceIds (counting only ones not already activated) would exceed the cap. Already- activated workspaces in the list are idempotent no-ops. Shares the same underlying activation logic as activateSubscriptionForWorkspace, so mixing calls to both against the same subscription still enforces the cap correctly. */ activateSubscriptionForWorkspaces: ActivateSubscriptionForWorkspacesResult; /** Activate a suspended tenant */ activateTenant: Tenant; /** Activate a tour schedule */ activateTourSchedule: TourSchedule; /** Activate a suspended workspace */ activateWorkspace: Workspace; addAffiliateCodeNote: AffiliateCodeNote; addAgentSkills: AgentProfile; /** Add apps to a collection */ addAppsToCollection: AppCollection; /** Add a payment method to an organization */ addDeveloperOrgPaymentMethod: DeveloperOrgPaymentMethod; /** Append a tracking event to fulfillment history (admin) */ addOrderTrackingEvent: FulfillmentTrackingEvent; /** Add a member to an organization */ addOrganizationMember: OrganizationMember; /** Add a payment method to a billing account */ addPaymentMethod: PaymentMethod; addPayoutAccount: PayoutAccount; addPublisherPayoutMethod: PublisherPayoutMethod; addReleaseTesters: Array; addSubscribersToList: NewsletterList; addSuppression: NewsletterSuppression; /** Bind a tag to an Application. The tag must already exist in wspace-tags-svc. Currently a stub-adapter no-op until the global-layer integration with wspace-tags-svc lands (see tracker). */ addTagToApplication: ApplicationTagAssignment; /** Grant a user explicit access to a tenant. Required for non-super-admin users to operate inside a DEDICATED tenant — in particular to create organizations under it via `createOrganization`. SHARED tenants do not need (and must not be granted via) this mutation; access there is implicit. Throws CONFLICT on duplicate `(tenantId, userId)` and VALIDATION_ERROR if the target tenant is SHARED. (BOFF-2652) */ addTenantMember: TenantMember; addTicketTags: SupportTicket; /** Add an item to the cart (creates cart if needed) */ addToCart: CartItemPayload; addToWishlist: UserWishlist; /** Add a new tour step */ addTourStep: TourStep; addUsage: Scalars['Boolean']['output']; /** Add a member to a workspace */ addWorkspaceMember: WorkspaceMember; adjustInventory: InventoryAdjustment; adminMarkAffiliateConversion: AffiliateJourneyEvent; /** Apply a billing discount code */ applyBillingDiscount: BillingDiscount; applySLAPolicy: SupportTicket; /** Apply a coupon to a subscription */ applySubscriptionCoupon: DeveloperOrgSubscription; approveApplication: Application; /** Platform admin only: approve a pending_review version, making it live in the store. Sets status → published, marks it as the latest version, and syncs to store. */ approveApplicationVersion: ApplicationVersion; approveDeveloperOrganizationVerification: DeveloperOrganization; /** Approve a payout (admin only) */ approvePayout: DeveloperOrgPayout; approvePayoutRequest: PayoutRequest; /** Admin approves a product that's in PENDING_REVIEW, moving it to PUBLISHED. */ approveProduct: StoreProduct; approvePublisher: Publisher; approveReview: ProductReview; approveTranslation: Translation; approveWaitlist: NewsletterWaitlist; /** Soft archive a billing account. Financial history is preserved and the account is removed from active billing operations. */ archiveBillingAccount: BillingAccount; /** Archive a channel */ archiveChannel: Channel; archiveKnowledgeBaseArticle: KnowledgeBaseArticle; /** Archive a notification without deleting it */ archiveNotification: Notification; /** Archive multiple notifications */ archiveNotifications: BatchOperationResult; archivePayoutAccount: Scalars['Boolean']['output']; archiveSchedule: ScheduledJob; /** Archive a tour (change status to ARCHIVED) */ archiveTour: Tour; /** Archive a workspace */ archiveWorkspace: Workspace; /** Assign the "Authenticated User" role to a user at the global scope. This should be called when a new user signs up to give them basic platform access. This mutation is idempotent - calling it multiple times for the same user is safe. SECURITY: This mutation is restricted to service and super_admin actors only. It should be called by global-auth-svc when a user signs up, not directly by users. */ assignAuthenticatedUserRole: AssignAuthenticatedUserRoleResult; assignEntitlementSeat: ProductEntitlement; /** Assign interviewers to an interview round (admin). */ assignInterviewersToRound: InterviewRound; /** Internal-only: assign any plan to a billing account for free. Requires PLAN_ASSIGN_SECRET env-var value as secret. */ assignPlanFree: BillingSubscription; /** Internal-only: assign a single quota directly to a billing account (and, for WORKSPACE-scoped quotas, a workspace) without requiring a Plan/Subscription purchase. Requires PLAN_ASSIGN_SECRET env-var value as secret, same as assignPlanFree. Scope is read from the Quota template itself, not client input: WORKSPACE-scoped quotas route to wspace-activity-svc (workspaceId is required, auto-resolved from the billing account's org when omitted); GLOBAL-scoped POOLED quotas attach directly to the billing account; GLOBAL-scoped PRODUCT_SPECIFIC quotas attach to the billing account's existing active subscription for that quota's product (there must be one). */ assignQuotaFree: AssignedQuota; /** Assign a role to an actor */ assignRoleToActor: ActorRoleAssignment; assignSeat: LicenseSeat; assignSupportTicket: SupportTicket; /** Attach media to a tour step */ attachMediaToStep: TourStepMedia; /** Erase the subject's auth-layer data. With dryRun=true, returns counts without mutating. Sessions and refresh tokens are always purged; the User row is anonymised (email/name nulled, status=DEACTIVATED) rather than deleted to preserve referential integrity for audit logs. Called exclusively by global-privacy-svc Temporal worker (actorType=service). */ authEraseSubject: AuthEraseResult; /** Export the subject's auth-layer data (account, sessions, MFA settings, OAuth accounts, app delegations, audit log entries owned by the user). Idempotent — repeated calls return identical bundles. Called exclusively by global-privacy-svc Temporal worker (actorType=service). */ authExportSubject: Scalars['JSON']['output']; authenticate: AuthResult; authenticateAPIKey: AuthResult; /** Authenticate an app using client credentials (OAuth2 Client Credentials flow) */ authenticateApp: AppTokenResponse; /** Authenticate using HTTP Basic Auth (base64 encoded username:password) */ authenticateBasicAuth: AuthResult; /** Authenticate using HTTP Digest credentials */ authenticateDigest: AuthResult; /** Authenticate with Kerberos SPNEGO token */ authenticateKerberos: AuthResult; /** Authenticate using LDAP credentials */ authenticateLDAP: AuthResult; authenticateMagicLink: AuthResult; /** Complete NTLM authentication with Type 3 message */ authenticateNTLM: AuthResult; authenticateOAuth: AuthResult; /** Complete OIDC SSO authentication by exchanging authorization code */ authenticateOIDC: AuthPayload; /** Authenticate using RADIUS */ authenticateRADIUS: AuthResult; authenticateSAML: AuthResult; /** Authenticate with wallet signature (EIP-191 personal_sign) */ authenticateWallet: WalletAuthResult; /** Authenticate with a signed challenge */ authenticateWithPublicKey: AuthResult; bulkArchiveSchedules: SchedulerBulkOperationResult; /** Bulk assign a role to multiple actors */ bulkAssignRole: Scalars['Int']['output']; bulkCreateTranslationKeys: BulkOperationResult; bulkCreateTranslations: BulkOperationResult; /** Ensure every valid requested application has exactly one concrete interview round for the selected posting round config (admin). */ bulkEnsureInterviewRounds: BulkEnsureInterviewRoundsResult; bulkPauseSchedules: SchedulerBulkOperationResult; /** Randomize and send a take-home assignment to multiple applications' rounds at once (admin). Each item is processed independently — a candidate already emailed an assignment for that round is skipped unless `force` is set, and one item failing does not abort the rest. */ bulkRandomizeAndSendAssignment: BulkSendResult; bulkResumeSchedules: SchedulerBulkOperationResult; /** Send a custom subject + rich-text message to a bounded batch of applications (admin) — not tied to a shared interview round, so it works across any status or stage (e.g. a progress update to everyone still in the pipeline, or a closing note to everyone not moving forward). No dedup/eligibility gate: re-sending a different message to the same candidates is expected, not blocked. */ bulkSendCustomEmail: BulkCustomEmailResult; /** Send the same free-text message to multiple candidate rounds at once (admin). Each item is processed independently — a round already messaged is skipped unless `force` is set, and one item failing does not abort the rest. */ bulkSendRoundMessage: BulkSendResult; /** Bulk set user's opt-in/out preference for multiple feature flags. RBAC is scoped to the target workspace via `input.workspaceId`. */ bulkSetUserFeatureFlagPreferences: Array; /** Update status for a batch of applications at once (admin) — e.g. marking everyone a bulk email just went to as EMAIL_SENT so a later bulk-send doesn't re-email the same people, then moving them back to whatever status applies once the outcome is decided. One item failing (e.g. a deleted application) does not abort the rest. */ bulkUpdateApplicationStatus: BulkUpdateApplicationStatusResult; bulkUpdateSchedules: SchedulerBulkOperationResult; bulkUpdateTranslations: BulkOperationResult; cancelDSAR: DsarRequest; /** Cancel pending delivery */ cancelDelivery: Scalars['Boolean']['output']; /** Cancel an organization invitation */ cancelDeveloperOrgInvitation: Scalars['Boolean']['output']; /** Cancel a subscription */ cancelDeveloperOrgSubscription: DeveloperOrgSubscription; cancelImportJob: ImportJob; cancelNewsletter: Newsletter; /** Cancel an organization invite (admin or inviter) */ cancelOrganizationInvite: OrganizationInvite; /** Cancel a pending payout */ cancelPayout: DeveloperOrgPayout; /** Cancel a scheduled notification */ cancelScheduledNotification: Scalars['Boolean']['output']; cancelSourcingRequest: SourcingRequest; /** Cancel a subscription - disables auto-renewal but keeps subscription active until endDate. The subscription will not renew when it expires. */ cancelSubscription: BillingSubscription; changePassword: Scalars['Boolean']['output']; /** Erase channel-layer subject data. With dryRun=true returns counts. Per-user platform connections are PURGED (OAuth tokens etc). Delivery / webhook / suppression rows are anonymised but retained for spam-complaint / abuse forensics (`retainedForLegalReason: "abuse-2yr"`). */ channelEraseSubject: ChannelEraseResult; /** Export the subject's channel-layer data: per-user platform connections, delivery attempts addressed to the subject, webhook events, and any channel rows the subject created. */ channelExportSubject: Scalars['JSON']['output']; /** Check push MFA challenge status (polling) */ checkPushMFAStatus: PushMfaStatus; /** Checkout and create an order from the cart */ checkout: CheckoutPayload; /** Clear all items from the cart */ clearCart: CartPayload; cloneSchedule: ScheduledJob; closeSupportTicket: SupportTicket; /** Complete the OAuth flow after the user returns from the developer's OAuth page. Exchanges the authorization code for tokens and activates the integration connection. */ completeAppOAuth: AppInstallation; /** Complete OAuth flow with authorization code */ completeOAuthFlow: ChannelConnection; /** Mark a specific step as completed */ completeStep: TourUserProgress; completeSupportAttachmentUpload: SupportAttachmentFile; /** Mark a tour as completed for a user */ completeTour: TourUserProgress; configureAssistantAccountBudget: AssistantAccountBudget; configureAssistantModelPrice: AiModelPrice; configureEntitlementSeats: ProductEntitlement; /** Configure Kerberos authentication for a tenant */ configureKerberos: KerberosConfig; /** Configure LDAP authentication for a tenant */ configureLDAP: LdapConfig; /** Configure RADIUS authentication for a tenant */ configureRADIUS: RadiusConfig; /** Configure tenant settings */ configureTenant: Tenant; /** Configure workspace routing (admin only) */ configureWorkspace: Workspace; createAddOns: Scalars['Boolean']['output']; createAffiliateCode: AffiliateCode; createAgentProfile: AgentProfile; createApp: AppCreateResponse; /** Create an app collection */ createAppCollection: AppCollection; /** Create a review for an application */ createAppReview: AppReview; createApplication: Application; createApplicationVersion: ApplicationVersion; createAutomationStep: AutomationStep; /** Create a new billing account for the current org (from context) */ createBillingAccount: BillingAccount; /** Create a billing order for external service (e.g., store) Stores order details + GraphQL callback endpoint for payment notifications */ createBillingOrder: CreateBillingOrderResponse; createCampaign: NewsletterCampaign; createCannedResponse: CannedResponse; /** Create multiple categories at once */ createCategories: Scalars['Boolean']['output']; createCategory: ProductCategory; /** Create a new channel */ createChannel: Channel; /** Create a new connection (OAuth flow or direct credentials) */ createConnection: ChannelConnection; /** Create a new content page (global default or product-specific) */ createContentPage: ProductContentPage; /** Create a new coupon (admin) */ createCoupon: Coupon; /** Create a credit note */ createCreditNote: CreditNote; /** Create a subscription */ createDeveloperOrgSubscription: DeveloperOrgSubscription; /** Create a new developer organization */ createDeveloperOrganization: DeveloperOrganization; createDeveloperProfile: DeveloperProfile; /** Create a discount code */ createDiscount: BillingDiscount; createEditorialCollection: EditorialCollection; /** Create a new subscription entitlement (link a plan to a store item) */ createEntitlement: SubscriptionEntitlement; /** Mint (or return the existing) read-only share secret for a conversation. Requires the conversation token, so only someone already in the thread can create a link to it. */ createExploreShareLink: ExploreShareLink; createFAQ: Faq; /** Create a new feature flag (super admin only) */ createFeatureFlag: FeatureFlag; createI18nModule: I18nModule; createI18nNamespace: I18nNamespace; createI18nProduct: I18nProduct; createImportJob: ImportJob; /** Create an interview round for a job application (admin). */ createInterviewRound: InterviewRound; /** Create an interview round config for a job posting (admin). */ createInterviewRoundConfig: InterviewRoundConfig; /** Create a new interviewer (admin). */ createInterviewer: Interviewer; /** Manually add a candidate to the pipeline (admin). Used for candidates sourced outside the public form (LinkedIn, referral, agency). No reCAPTCHA — the caller is an authenticated admin; createdBy/onBehalfOf are the admin actor. */ createJobApplication: JobApplication; /** Create a new take-home assignment (admin). */ createJobAssignment: JobAssignment; /** Create a new job posting (admin). */ createJobPosting: JobPosting; /** Create a new keyboard shortcut */ createKeyboardShortcut: KeyboardShortcut; createKnowledgeBaseArticle: KnowledgeBaseArticle; createLanguage: Language; createNewsletter: Newsletter; createNewsletterAutomation: NewsletterAutomation; createNewsletterList: NewsletterList; createNewsletterTemplate: NewsletterTemplate; createNewsletterVariant: NewsletterVariant; /** Create a notification (without triggering - use triggerNotification to send) */ createNotification: Notification; /** Create a notification history entry */ createNotificationHistory: NotificationHistory; /** Create a notification preference */ createNotificationPreference: NotificationPreference; /** Create a notification template */ createNotificationTemplate: NotificationTemplate; /** Create a notification topic */ createNotificationTopic: NotificationTopic; /** Create a new organization */ createOrganization: Organization; /** Create a permission override for an actor */ createPermissionOverride: PermissionOverride; createPhysicalProduct: StoreProduct; createPlan: Scalars['Boolean']['output']; /** Create a new platform product */ createPlatformProduct: PlatformProduct; /** Create an OPA policy reference */ createPolicyReference: PolicyReference; /** Create a press kit asset for a product */ createPressKitAsset: ProductPressKitAsset; /** Request a short-lived presigned URL to upload a press kit file directly to object storage (browser -> storage). Returns the upload URL plus the resulting public fileUrl to pass to createPressKitAsset. */ createPressKitAssetUploadUrl: PressKitAssetUploadUrl; createProduct: StoreProduct; createProductEntitlement: ProductEntitlement; createProductVariant: ProductVariant; createPromoCode: PromoCode; /** Create a promotional offer (admin only) */ createPromotion: Promotion; /** Create a support ticket from a public/unauthenticated source (e.g. website contact form). Does not require authentication. */ createPublicSupportTicket: SupportTicket; createQuota: Scalars['Boolean']['output']; createRecurringBillingPlan: RecurringBillingPlan; /** Create/update user's referral code */ createReferralCode: ReferralCode; /** Create a refund for a charge (legacy - use refund management mutations below) */ createRefund: Refund; /** Create a manual refund record for the current org (from context) */ createRefundRecord: RefundRecord; /** Create a refund record from a specific failed webhook */ createRefundRecordFromWebhook?: Maybe; /** Create refund records from all failed webhooks */ createRefundRecordsFromFailedWebhooks: Array; createRelease: ProductRelease; createReleaseTrack: ReleaseTrack; createReview: ProductReview; /** Create a new role */ createRole: Role; /** Create a permission override for a role */ createRolePermissionOverride: RolePermissionOverride; createSLAPolicy: SlaPolicy; createScheduleFromTemplate: ScheduledJob; createScheduleTemplate: ScheduleTemplate; createScheduledJob: ScheduledJob; /** Provision a PHYSICAL-kind developer organization for the seller portal (HealthyBowl and any other physical-goods seller flow). `kind` is not a client-settable input field — using this mutation is what makes the org PHYSICAL, the same way `createDeveloperOrganization` always makes a DIGITAL one. See DeveloperOrgKind. */ createSellerOrganization: DeveloperOrganization; createShippingAddress: ShippingAddress; createShippingMethod: ShippingMethod; createShippingRate: ShippingRate; createShippingZone: ShippingZone; /** Create a signed cookie session */ createSignedCookieSession: SignedCookieResult; createSourcingRequest: SourcingRequest; createStore: Store; /** Create a new store order (called when user clicks checkout). NOTE: Codex P1 on PR #55 — gating is global+create rather than scopeType:"self". The resolver currently forwards client-supplied input.total / input.lineItems to OrderService without server-side re-pricing, so a "self"-gate would let a buyer underprice their own order and harvest entitlements via the billing callback. Buyer checkout flows through the cart path (createCart → addToCart → checkoutCart) which prices server-side. Re-opening this as a buyer-self action requires server-side total rebuild from product ids — tracked as a follow-up. */ createStoreOrder: StoreOrder; createSubprocessor: Subprocessor; /** Link a subscription plan to a store product granting FREE_ACCESS or DISCOUNT. */ createSubscriptionEntitlement: StoreSubscriptionEntitlement; createSupportMessage: SupportMessage; createSupportTicket: SupportTicket; createTag: ProductTag; /** Create a tax rate */ createTaxRate: TaxRate; /** Create a new tenant (requires admin privileges) */ createTenant: Tenant; createTicketCategory: TicketCategory; createTicketFromTemplate: SupportTicket; createTicketTemplate: TicketTemplate; /** Create a new tour */ createTour: Tour; /** Create a tour from a template */ createTourFromTemplate: Tour; /** Create tour media metadata record. Does NOT upload files — media files must be uploaded to blob storage separately; this mutation records the resulting metadata (name, type, storageUrl, dimensions, etc.) in the database so it can be attached to tour steps. */ createTourMediaMetadata: TourMedia; /** Create a new tour schedule */ createTourSchedule: TourSchedule; /** Create a tour template */ createTourTemplate: TourTemplate; createTranslation: Translation; createTranslationKey: TranslationKey; /** Create complete tenant structure for a new user (tenant, org, workspace) This is typically called after user email verification */ createUserTenantStructure: CreateUserTenantStructureResponse; /** Create a visibility rule for a resource. Auto-registers the resource if not already registered. */ createVisibilityRule: VisibilityRule; createWebhook: WebhookCreated; /** Create a new workspace */ createWorkspace: Workspace; /** Deactivate current user's account (soft disable, can be reactivated) */ deactivateAccount: AccountActionResult; deactivateAffiliateCode: AffiliateCode; deactivateApp: Scalars['Boolean']['output']; deactivateApplication: Scalars['Boolean']['output']; /** Deactivate a channel */ deactivateChannel: Channel; /** Deactivate a connection */ deactivateConnection: ChannelConnection; /** Deactivate a coupon (admin) */ deactivateCoupon: Coupon; deactivateLicense: Scalars['Boolean']['output']; /** Deactivate a promotion (admin only) */ deactivatePromotion: Promotion; /** Deactivate a referral code */ deactivateReferralCode: ReferralCode; /** Deactivate a resource (soft-delete) */ deactivateResource: Scalars['Boolean']['output']; /** Deactivate a tour schedule */ deactivateTourSchedule: TourSchedule; /** Pure quota decrement — called by wspace-activity-svc after writing a UsageRecord. Only decrements QuotaAssignment.limits.value. Does NOT write back to activity-svc. Requires the quotaAssignmentId already resolved by checkQuotaExhausted. */ decrementQuota: Scalars['Boolean']['output']; /** Delete current user's account permanently Requires password confirmation */ deleteAccount: AccountActionResult; deleteAffiliateCode: Scalars['Boolean']['output']; deleteAgentProfile: Scalars['Boolean']['output']; deleteApp: AccountActionResult; /** Delete an app collection */ deleteAppCollection: Scalars['Boolean']['output']; /** Delete a review */ deleteAppReview: Scalars['Boolean']['output']; deleteApplication: Scalars['Boolean']['output']; deleteAutomationStep: Scalars['Boolean']['output']; deleteCannedResponse: Scalars['Boolean']['output']; deleteCategory: Scalars['Boolean']['output']; /** Delete a channel (soft delete) */ deleteChannel: Scalars['Boolean']['output']; /** Delete a connection (removes all credentials) */ deleteConnection: Scalars['Boolean']['output']; /** Delete a content page */ deleteContentPage: Scalars['Boolean']['output']; /** Delete a payment method */ deleteDeveloperOrgPaymentMethod: Scalars['Boolean']['output']; /** Delete a developer organization */ deleteDeveloperOrganization: Scalars['Boolean']['output']; /** Delete a discount */ deleteDiscount: Scalars['Boolean']['output']; /** Delete an entitlement */ deleteEntitlement: Scalars['Boolean']['output']; /** Delete external OIDC configuration Admin only */ deleteExternalOIDCConfig: AccountActionResult; deleteFAQ: Scalars['Boolean']['output']; /** Delete a feature flag (super admin only) */ deleteFeatureFlag: Scalars['Boolean']['output']; deleteI18nModule: Scalars['Boolean']['output']; deleteI18nNamespace: Scalars['Boolean']['output']; deleteI18nProduct: Scalars['Boolean']['output']; /** Delete interview feedback (admin). */ deleteInterviewFeedback: Scalars['Boolean']['output']; /** Delete an interview round (admin). */ deleteInterviewRound: Scalars['Boolean']['output']; /** Delete an interview round config (admin). */ deleteInterviewRoundConfig: Scalars['Boolean']['output']; /** Delete an interviewer (admin). */ deleteInterviewer: Scalars['Boolean']['output']; /** Delete a take-home assignment (admin). */ deleteJobAssignment: Scalars['Boolean']['output']; /** Delete a job posting and its related round configs/assignments (admin). */ deleteJobPosting: Scalars['Boolean']['output']; /** Delete Kerberos configuration */ deleteKerberosConfiguration: Scalars['Boolean']['output']; /** Delete a keyboard shortcut */ deleteKeyboardShortcut: Scalars['Boolean']['output']; deleteKnowledgeBaseArticle: Scalars['Boolean']['output']; /** Delete LDAP configuration */ deleteLDAPConfiguration: Scalars['Boolean']['output']; deleteLanguage: Scalars['Boolean']['output']; /** Delete all read notifications for authenticated user */ deleteMyReadNotifications: Scalars['Boolean']['output']; deleteNewsletter: Scalars['Boolean']['output']; deleteNewsletterAutomation: Scalars['Boolean']['output']; deleteNewsletterList: Scalars['Boolean']['output']; deleteNewsletterTemplate: Scalars['Boolean']['output']; deleteNewsletterVariant: Scalars['Boolean']['output']; /** Delete a single notification */ deleteNotification: Scalars['Boolean']['output']; /** Delete a notification history entry */ deleteNotificationHistory: Scalars['Boolean']['output']; /** Delete a notification preference */ deleteNotificationPreference: Scalars['Boolean']['output']; /** Delete a notification template */ deleteNotificationTemplate: Scalars['Boolean']['output']; /** Delete a notification topic */ deleteNotificationTopic: Scalars['Boolean']['output']; /** Delete multiple notifications by IDs */ deleteNotifications: Scalars['Boolean']['output']; /** Delete notifications matching a filter */ deleteNotificationsByFilter: Scalars['Int']['output']; /** Delete an organization */ deleteOrganization: Scalars['Boolean']['output']; /** Delete a payment method */ deletePaymentMethod: Scalars['Boolean']['output']; /** Delete a platform product */ deletePlatformProduct: Scalars['Boolean']['output']; /** Delete an OPA policy reference */ deletePolicyReference: Scalars['Boolean']['output']; /** Delete a press kit asset */ deletePressKitAsset: Scalars['Boolean']['output']; deleteProduct: Scalars['Boolean']['output']; deleteProductAsset: Scalars['Boolean']['output']; deleteProductEntitlement: Scalars['Boolean']['output']; deleteProductVariant: Scalars['Boolean']['output']; /** Delete RADIUS configuration */ deleteRADIUSConfiguration: Scalars['Boolean']['output']; deleteReview: Scalars['Boolean']['output']; deleteReviewReply: Scalars['Boolean']['output']; /** Delete developer response */ deleteReviewResponse: AppReview; /** Delete a role (optionally reassign members) */ deleteRole: Scalars['Boolean']['output']; deleteSLAPolicy: Scalars['Boolean']['output']; /** Delete SSO/SAML configuration */ deleteSSOConfig: Scalars['Boolean']['output']; deleteScheduleTemplate: Scalars['Boolean']['output']; deleteScheduledJob: Scalars['Boolean']['output']; deleteShippingAddress: Scalars['Boolean']['output']; deleteStore: Scalars['Boolean']['output']; deleteSubscriber: Scalars['Boolean']['output']; /** Remove a plan→product subscription entitlement. */ deleteSubscriptionEntitlement: Scalars['Boolean']['output']; deleteSupportMessage: Scalars['Boolean']['output']; deleteSupportTicket: Scalars['Boolean']['output']; deleteTag: Scalars['Boolean']['output']; /** Delete a tax rate */ deleteTaxRate: Scalars['Boolean']['output']; /** Soft delete a tenant */ deleteTenant: Scalars['Boolean']['output']; deleteTicketCategory: Scalars['Boolean']['output']; deleteTicketTemplate: Scalars['Boolean']['output']; /** Delete a tour */ deleteTour: Scalars['Boolean']['output']; /** Delete tour media */ deleteTourMedia: Scalars['Boolean']['output']; /** Delete a tour schedule */ deleteTourSchedule: TourSchedule; /** Delete a tour step */ deleteTourStep: Scalars['Boolean']['output']; /** Delete a tour template */ deleteTourTemplate: Scalars['Boolean']['output']; deleteTranslation: Scalars['Boolean']['output']; deleteTranslationKey: Scalars['Boolean']['output']; /** Delete a user by ID (admin only, soft delete) */ deleteUser: DeleteUserResult; deleteUserLanguagePreference: Scalars['Boolean']['output']; /** Soft-delete a user platform connection */ deleteUserPlatformConnection: Scalars['Boolean']['output']; /** M2M: delete a ShippingAddress owned by an explicit user, on behalf of a calling service. Returns false when no matching row exists for that user. Service-actor only. */ deleteUserShippingAddress: Scalars['Boolean']['output']; deleteWebhook: Scalars['Boolean']['output']; /** Admin delists a published product — removes it from store discovery for new users while preserving access for anyone who already installed it. */ delistProduct: StoreProduct; /** Deliver the same notification to multiple recipients in bulk. More efficient than multiple single calls for broadcast scenarios. */ deliverBulkNotification: BulkChannelDeliveryResult; /** Deliver a notification across multiple platforms and multiple recipients in one call. Fans out per-platform in parallel (Promise.allSettled) with independent failover per platform. Adapters that natively support multi-recipient (SES, ACS) send one API call; others loop concurrently. */ deliverMultiPlatformNotification: MultiPlatformDeliveryResult; /** Deliver a notification to a single recipient via Channel service. Called by global-notification-svc to deliver through platform adapters. */ deliverNotification: ChannelDeliveryResult; /** Deliver a push notification to every active device the user has registered for `productSlug`. Resolves devices from the global device registry, groups them by Firebase project, and sends each group through the one channel connection proven to hold that project's credentials. A device whose project cannot be resolved is reported as a failure — it is never sent through a different project. Returns a per-device breakdown; `successCount > 0` means the notification reached at least one device. */ deliverPushToUser: UserPushDeliveryResult; deprecateApplicationVersion: ApplicationVersion; deprecateProduct: StoreProduct; /** Detach media from a tour step */ detachMediaFromStep: Scalars['Boolean']['output']; disableAuthMethod: Scalars['Boolean']['output']; /** Disable every MFA method of the caller. When `code` is given (a current TOTP code, or one of the caller's unused backup codes) it must verify against an enabled method before anything is disabled. */ disableMFA: Scalars['Boolean']['output']; disableMaintenanceMode: MaintenanceModeStatus; disableSchedule: ScheduledJob; discardDLQEntry: Scalars['Boolean']['output']; /** Dismiss a tour for a user (with option to dismiss permanently) */ dismissTour: TourUserProgress; duplicateNewsletter: Newsletter; /** Duplicate a tour with all its steps */ duplicateTour: Tour; /** Record earned credits (e.g. from devportal sales, referrals) */ earnCredits: CreditTransaction; enableAuthMethod: Scalars['Boolean']['output']; enableMFA: Scalars['Boolean']['output']; enableMaintenanceMode: MaintenanceModeStatus; enrollSubscriberInAutomation: AutomationSubscriber; /** Idempotently ensure a user is an organization member, primarily for the workspace-invite-accept flow where an invitee gains a workspace inside an org they're not yet a member of. Unlike `addOrganizationMember`: * Returns `OrganizationMember` whether the row was inserted or already existed — no CONFLICT on repeat calls (case 1: already a member). * Does NOT overwrite the existing `role` column on a pre-existing row (case 2: don't demote). * Triggers a real-role assignment in global-rbac-svc at scope = orgId only when the actor has NO existing role assignment at that scope (case 3: real role comes from RBAC, not the data-layer string). The `role` arg defaults to `GUEST` — the most restrictive enum value — because invitees arriving via a workspace invite should not gain first-class org membership. The data-layer string column is a coarse classifier; the authoritative permission decision is evaluated by global-rbac-svc against `actor_role_assignments`. See BOFF-2649 + the RBAC guide at `dev/platform/context/identity/rbac/RBAC_GUIDE_FOR_AI_TOOLS.md`. Called from wspace-workspace-svc::acceptInvitation via service-context (`X-Actor-Type: service`), which bypasses the workspace-admin check inside the resolver. Best-effort from the caller's side — failures must NOT block the upstream invite acceptance. */ ensureOrganizationMember: EnsureOrganizationMemberResult; /** Ensure a billing order exists for a store order. Called from the checkout frontend when no billingOrderId is present (e.g. the buyer had no billing account at order-creation time). Creates the billing order server-side so the correct callbackGraphQL endpoint is registered and the billing service can call back after payment to confirm the store order. */ ensureStoreOrderBillingOrder: EnsureStoreOrderBillingOrderResponse; /** Anonymise the subject on the billing layer. With dryRun=true, returns what would change without mutating. Financial records (Transaction, Invoice, Payment) are RETAINED for the statutory 7-year window. */ eraseSubject: EraseResult; /** Hand this conversation to a person, with its transcript attached. The agent answers only from a baked corpus, so the questions it cannot answer are exactly the ones worth a person's time. This turns the dead end into a handover: it files the conversation as a contact inquiry — the same record the website contact form writes, in the same console, with the same emails — so nobody has to ask the visitor to type their problem out a second time. Requires the conversation token and nothing else. A token that does not own a conversation is reported as NOT_FOUND, never FORBIDDEN, exactly as every other token-scoped call reports it: FORBIDDEN would confirm the conversation exists. Unlike `submitExploreFeedback` this is NOT fire-and-forget — it throws rather than reporting a handover that did not happen, because the visitor is about to be told that someone will get back to them. Rate-limited on the same per-IP budget as sending a message and gated by the same reCAPTCHA, because it is the same anonymous visitor making another public write. Idempotent: one handover per conversation, so a double-clicked button returns the first one rather than putting a second ticket in front of support. */ escalateExploreConversation: EscalateExploreConversationResult; escalateSupportTicket: SupportTicket; exchangeOwnDelegation: AppAsUserTokenResponse; /** Exchange app token for app-as-user token (Token Exchange flow) */ exchangeToken: AppAsUserTokenResponse; executeJobNow: JobExecution; /** Queue one turn. Returns immediately; poll exploreAgentJob for the answer. */ exploreAgentSubmit: ExploreAgentJob; /** Export Application records matching the optional filter. */ exportApplications: DevportalExportJob; /** Export AuditLog records matching the optional filter. */ exportAuditLogs: DevportalExportJob; /** Export channel user (platform connection) records matching the filter. */ exportChannelUsers: ChannelExportJob; /** Export channel configurations matching the filter. */ exportChannels: ChannelExportJob; /** Export delivery attempt records matching the filter. */ exportDeliveryAttempts: ChannelExportJob; /** Export DeveloperOrganization records matching the optional filter. */ exportDeveloperOrganizations: DevportalExportJob; /** Export per-organization revenue rows matching the optional filter. */ exportRevenue: DevportalExportJob; /** Export the subject's billing-layer data (billing accounts, subscriptions, invoices, payment methods on file, transaction history, credits, usage). Idempotent. Called by the privacy service as part of GDPR DSAR fan-out. */ exportSubject: Scalars['JSON']['output']; /** Export webhook event records matching the filter. */ exportWebhookEvents: ChannelExportJob; /** Export Webhook records matching the optional filter. */ exportWebhooks: DevportalExportJob; /** Feature a review */ featureAppReview: AppReview; fileDSAR: DsarRequest; /** Seller reports a problem fulfilling a physical order (out of stock, cannot fulfill, wrong address, etc). The resolver verifies organizationId actually owns a physical line item on this order (real evidence in store-svc's own data) — scopeType: "organization" at the gateway only confirms the actor has SOME org context, not that it's this specific one. */ flagOrderIssue: OrderIssueFlag; freeUpUsage: Scalars['Boolean']['output']; generateAPIKey: ApiKeyResult; generateAppAsUserToken: AppAsUserTokenResponse; generateAppToken: AppTokenResponse; /** Generate HMAC shared secret for an app */ generateHMACSecret: HmacCredentialResult; /** Generate an invoice for a subscription */ generateInvoice: Invoice; /** Generate OIDC authorization URL for SSO login Returns URL to redirect user to the IdP */ generateOIDCAuthUrl: OidcAuthUrlResult; /** Generate passkey authentication options (for login) */ generatePasskeyAuthenticationOptions: PasskeyAuthenticationOptions; /** Generate passkey registration options */ generatePasskeyRegistrationOptions: PasskeyRegistrationOptions; generatePseudoLocale: PseudoLocaleResult; /** Generate a challenge for public key authentication */ generatePublicKeyChallenge: PublicKeyChallengeResult; generateSAMLRequest: SamlRequestResult; /** Generate security key registration options (cross-platform authenticator) */ generateSecurityKeyRegistrationOptions: PasskeyRegistrationOptions; /** Generate challenge message for wallet signature */ generateWalletChallenge: WalletChallengeResult; getSupportAttachmentPartUploadUrls: Array; /** Service-trusted internal grant of a first-party self-delegation, keyed by the app's client id. Lets a trusted backend record the consent created when a user adds a first-party integration, without the workspace-admin gate that the public grantDelegation enforces. Gated to internal service / super_admin callers and restricted to first-party system apps. */ grantAppDelegationInternal: AppUserDelegation; /** Grant an app access to act on a specific workspace. Idempotent: re-granting an ACTIVE authorization updates its scopes; re-granting a REVOKED one flips it back to ACTIVE and clears the revoke fields. */ grantAppWorkspaceAccess: AppWorkspaceAuthorization; grantConsent: ConsentRecord; grantCredits: CreditTransaction; grantDelegation: AppUserDelegation; haltRollout: ProductRelease; /** Handle delivery status update from channel service */ handleChannelDeliveryEvent: NotificationEvent; /** Permanently delete a user (super admin only) */ hardDeleteUser: DeleteUserResult; identifyAffiliateJourney: AffiliateTrackResult; /** Mark webhook as ignored */ ignoreWebhook: Scalars['Boolean']['output']; importSubscribers: ImportSubscribersResult; /** Initialize billing roles for a billing account by cloning billing role templates. Use this when a new billing account is created. Returns the number of roles created (0 if roles already exist). */ initializeBillingRoles: InitializeBillingRolesResult; /** Initialize organization roles by cloning organization role templates. Use this when a new organization is created. The creator will be assigned the Owner role. Returns the number of roles created (0 if roles already exist). SECURITY: This mutation is restricted to service and super_admin actors only. It should be called by global-tenant-svc when an organization is created, not directly by users. */ initializeOrganizationRoles: InitializeOrganizationRolesResult; /** Start the OAuth authorization flow for an installed APP-type application. Returns the URL to redirect the user to on the developer's OAuth page. Only valid for installations whose application has oauthAuthUrl configured. */ initiateAppOAuth: AppOAuthInitiation; /** Initiate Kerberos SPNEGO authentication */ initiateKerberosAuth: KerberosChallengeResult; /** Initiate NTLM authentication (returns Type 2 challenge) */ initiateNTLMChallenge: NtlmChallengeResult; /** Initiate a payment for credits, plans, or addons This creates a Stripe PaymentIntent or Razorpay Order with tax included Returns client secret (Stripe) or order ID (Razorpay) for frontend to complete payment */ initiatePayment: InitiatePaymentResponse; /** Install an application */ installApp: AppInstallation; /** Install a purchased app to a workspace. Validates that the product was purchased before allowing installation. If orderId is not provided, will find the most recent processed order for this product. version: optional specific version to install (e.g. "1.2.0"), resolved against the linked devportal Application's published/deprecated versions. Omit to install the product's current latest version (default behavior). */ installPurchasedApp: InstallPurchasedAppResult; /** Invite a user to join an organization */ inviteDeveloperOrgMember: DeveloperOrgInvitationCreated; /** Invite a user to an organization by email */ inviteOrganizationMember: OrganizationInvite; /** Service-trusted internal mint of an app-as-user token for a named first-party app. Lets a trusted backend (e.g. wspace-integrations-svc) mint a token for a secret-less system app without holding client credentials. Gated to internal service / super_admin callers; still requires an ACTIVE AppUserDelegation for (clientId, targetUserId), so a user must have granted access first. */ issueAppAsUserTokenInternal: AppAsUserTokenResponse; /** Public endpoint — no authentication required. Email is normalized (trimmed, lowercased). Must be protected by API gateway rate limiting (recommended: 5 req/min per IP). */ joinWaitlist: NewsletterWaitlist; /** Leave an organization */ leaveDeveloperOrganization: Scalars['Boolean']['output']; /** Link a billing account to an organization so store sale revenue flows there as credits */ linkDevOrgBillingAccount: DeveloperOrganization; /** Link a personal integration connection (from wspace-integrations-svc) to a bot channel. Called by microfe-botlit after the user completes OAuth in microfe-integrations. Steps performed internally: 1. Fetch IntegrationConnection data from wspace-integrations-svc via internal GQL 2. Extract platform identity (slackUserId / msUserId / discordUserId / phone) from metadata 3. Open a DM conversation using the bot token from ChannelConnection 4. Upsert UserPlatformConnection (source=OAUTH, dmAllowed=true, dmConversationId set) 5. Send welcome DM (Slack / Teams / Discord where supported) */ linkIntegrationConnection: UserPlatformConnection; linkTickets: TicketLink; /** Link wallet to existing user account */ linkWallet: Scalars['Boolean']['output']; /** Mark all notifications as read for authenticated user */ markAllMyNotificationsAsRead: BatchOperationResult; /** Mark a single notification as read */ markNotificationAsRead: Notification; /** Mark a notification as unread */ markNotificationAsUnread: Notification; /** Mark multiple notifications as read */ markNotificationsAsRead: BatchOperationResult; /** Mark notifications matching a filter as read */ markNotificationsByFilterAsRead: BatchOperationResult; /** Mark an order as refunded (admin) */ markOrderRefunded: StoreOrder; markPayoutPaid: PayoutRequest; markReviewHelpful: ProductReview; /** Merge a guest cart into the current user's cart (after login) */ mergeCart: CartPayload; mergeTickets: SupportTicket; /** Mint a new SCIM 2.0 bearer token for a workspace. Give it to the IdP's (Okta/Entra ID) SCIM provisioning connector as the Authorization: Bearer header value against `/global/scim/v2/*`. The plaintext is shown once. */ mintScimToken: ScimTokenResult; mintSsoSession: AuthPayload; /** Moderate a review (admin) */ moderateAppReview: AppReview; /** Erase newsletter subscriber data. With dryRun=true returns counts. Subscriber + per-list rows + automation enrolments PURGED. Suppression entry ANONYMISED (email hashed) — kept to honour CAN-SPAM unsubscribe permanence. Bounce/complaint/consent-audit rows anonymised but retained for deliverability forensics. */ newsletterEraseSubject: NewsletterEraseResult; /** Export the subject's newsletter data: subscriber rows, per-list memberships, consent ledger entries, automation enrolments, waitlist entries. */ newsletterExportSubject: Scalars['JSON']['output']; /** Notify candidates who have more than one application on file (and so may have received more than one take-home assignment email as a result of a since-fixed missing duplicate-email check) that they only need to complete ONE of the assignments they received (admin). Grouped by email address — sends exactly one notice per unique candidate email, never one per duplicate application/round, and re-running this is safe: an email already notified is skipped unless `force` is set. */ notifyDuplicateApplicants: DuplicateNoticeResult; openCircuitBreaker: CircuitBreakerState; /** Pause a subscription */ pauseDeveloperOrgSubscription: DeveloperOrgSubscription; pauseSLA: SupportTicket; pauseScheduledJob: ScheduledJob; /** Pay an invoice using a payment method */ payInvoice: Invoice; permanentlyDeleteSchedule: Scalars['Boolean']['output']; placeLegalHold: LegalHold; /** Internal-only: polls "Deploy Devportal Node" GitHub Actions run history and records the result in NodeSandboxBuildCheck — see services/nodeSandboxBuildPoll.ts. Invoked on a schedule by global-scheduler-svc's INTERNAL_API executor; also callable from the admin build-log UI for an on-demand refresh. Returns `skipped: true` (not an error) when NODE_SANDBOX_DISPATCH_TOKEN is unset OR the GitHub call itself fails (e.g. the token lacks Actions:read) — callers must check `skipped` rather than assume a non-error response means it actually polled. */ pollNodeSandboxBuildChecks: NodeSandboxBuildPollResult; prepareSupportAttachmentUpload: SupportAttachmentUploadSession; /** Process a refund for an app sale. Privileged financial mutation: reverses money to a buyer and adjusts the org's pending balance. Gated on `devportal-sale:manage` (the same permission as `retrySaleCreditSync`), with an in-resolver org-ADMIN check as defense-in-depth. */ processAppSaleRefund: DeveloperOrgSale; processPayoutRequest: PayoutRequest; /** Process a refund (one-click - calls payment gateway) */ processRefund: ProcessRefundResult; /** Process pending scheduled notifications (internal/cron use) */ processScheduledNotifications: Scalars['Int']['output']; /** Process a webhook manually (for retry) */ processWebhook: WebhookProcessingResult; /** Switch a tenant to DEDICATED mode and begin provisioning. Sets status to PROVISIONING until endpoint is set. If endpoint is provided, sets status directly to ACTIVE. */ provisionDedicatedTenant: Tenant; /** Provision Free-tier WORKSPACE-scoped quota assignments for a specific workspace (BOFF-5656). Service-to-service only — called by wspace-layer services' workspace.created event consumers (Redis Streams do not cross the wspace/global layer network boundary, so the wspace-side consumer calls this mutation cross-layer instead of billing consuming the event directly). Reuses the org's existing (or lazily-created) default billing account and every active Free ($0, isActive) subscription on it. Idempotent — safe to call repeatedly for the same workspace. Never creates a Plan/Subscription for a product with no registered Free plan; such products are silently skipped, not errored. */ provisionFreeTierForWorkspace: ProvisionFreeTierForWorkspaceResult; /** Public unsubscribe via HMAC-signed token from email link. No authentication required. */ publicUnsubscribeByToken: Scalars['Boolean']['output']; publishApplication: Application; /** Developer action: submit a draft (or rejected) version for platform review. Status becomes pending_review. The store is NOT updated until an admin approves. */ publishApplicationVersion: ApplicationVersion; /** Publish ONE curated catalog node version (from the fluidgrids-nodes repo) to every enabled sandbox provider — the same PublishOrchestrator the devportal path uses, so the two cannot drift. That drift is not hypothetical: the catalog previously had no publish trigger at all, so nodes were built and pinned by hand and 14 of 31 prod-bound nodes ended up running code older than fluidgrids-nodes main. One entrypoint, two triggers (devportal publish, catalog CI) is the fix. NOT actor-authenticated: the caller is CI, not a platform user or app, so this verifies a shared secret in the resolver (checked against DEVPORTAL_CALLBACK_SECRET, or CALLBACK_SECRET as shipped by the Secrets Manager bundle) exactly as reportNodeSandboxBuildStatus does. Sent as an argument rather than a header because global-public-gateway forwards only a fixed header allowlist to subgraphs. `zipUrl` must be fetchable by this service — CI uploads the packaged node and passes a presigned URL. `isFirstPublish` tells the orchestrator whether this node type has ever been built before, which is what lets it annotate a provider that cannot self-onboard (Cloudflare) instead of reporting a mystery failure. Defaults to false: a catalog node already running on Cloudflare has a Durable Object class, so only a genuinely new node should pass true. Returns a JSON array of per-provider outcomes so CI can log them and fail the job when nothing could build. */ publishCatalogNodeVersion: Scalars['JSON']['output']; publishFAQ: Faq; publishKnowledgeBaseArticle: KnowledgeBaseArticle; publishProduct: StoreProduct; /** Publish a tour (change status to PUBLISHED) */ publishTour: Tour; publishTranslation: Translation; purchaseProduct: ProductEntitlement; /** Pick a random active assignment for the posting and email it to the candidate (admin). */ randomizeAndSendAssignment: InterviewRound; rateArticle: KnowledgeBaseArticle; rateFAQ: Faq; /** Reactivate a self-deactivated account using email + password (proof of ownership). Rejects admin-deactivated accounts (contact support) and is rate-limited + enumeration-safe. */ reactivateAccount: AuthResult; /** Complete reactivation using the token from the reactivation email. */ reactivateAccountWithToken: AuthResult; /** Reactivate a suspended installation */ reactivateAppInstallation: AppInstallation; /** Reactivate a suspended member */ reactivateDeveloperOrgMember: DeveloperOrgMember; reactivateProductEntitlement: ProductEntitlement; recordActivity: ActivityLog; recordAffiliateConversion: AffiliateJourneyEvent; recordAffiliateTouchpoint: AffiliateTrackResult; recordAppInstallation: StoreAppInstallation; recordAppUninstallation: StoreAppInstallation; recordArticleView: KnowledgeBaseArticle; /** Record a candidate's assignment submission (admin). */ recordAssignmentSubmission: InterviewRound; recordBounce: NewsletterBounce; recordComplaint: NewsletterComplaint; recordConsent: NewsletterConsent; /** Service-to-service only: records that global-store-svc successfully registered this address with a carrier, on behalf of the given org. actorId/actorType identify the real end user who requested the registration (for the audit trail) — the caller is responsible for verifying that actor's access via assertDeveloperOrgAccess first. */ recordDeveloperOrgPickupAddress: DeveloperOrgPickupAddress; recordDownload: ProductDownload; recordEarningEntry: EarningsEntry; /** Record that a visitor followed a link the answer offered. Fire-and-forget from the browser: a click must never be blocked or delayed by analytics, so this reports `recorded: false` rather than throwing when the click cannot be attributed. */ recordExploreClick: RecordExploreClickResult; /** Record a SETTLED (or pending/failed) external/manual Charge + Transaction on behalf of a workspace/org by explicit id. Service/super_admin only — routed through the internal gateway. Bypasses the Stripe/Razorpay sync path. */ recordExternalSettlement: ExternalSettlementResult; recordFAQView: Faq; recordLicenseUsage: LicenseUsage; /** Record that a user acted on a notification action */ recordNotificationAction: Notification; /** Record the user's first visit to a product's app shell after login. - Idempotent on (userId, productSlug): subsequent calls return the same result with `isFirstVisit: false`. - On the first visit, fires a product-specific welcome email (best-effort — email failure does NOT fail the mutation). - Safe to call on every app-shell mount; the frontend hook should debounce per session. */ recordProductVisit: RecordProductVisitResult; /** Record a sale (usually called by store service) */ recordSale: DeveloperOrgSale; /** Record user progress for a tour */ recordTourProgress: TourUserProgress; /** Re-generate a fresh 24-hour download URL for a version's package. Returns null if the stored packageUrl is not a recognised S3 URL or if the S3 credentials are not configured. */ refreshApplicationVersionPackageUrl?: Maybe; /** Refresh OAuth tokens manually */ refreshConnectionTokens: ChannelConnection; refreshProductAssetUrl?: Maybe; refreshToken: AuthPayload; regenerateAffiliateCode: AffiliateCode; /** Register (or re-register) an approved application with global-auth-svc so it can issue OAuth clients, API keys, and delegations. Safe to call more than once — skips if appId is already set. */ registerAppWithAuthService: Application; /** Register a seller's real address as a new pickup/warehouse location on a carrier account (currently only "shiprocket" supports this), so it becomes a real, bookable pickup point instead of just an unregistered pincode a seller typed in. This is a real, permanent write to the carrier's account — not a local list we maintain; any address the carrier itself accepts is supported, we never hardcode which pincodes are valid. scopeType: "self" — same authenticated-actor bar as carrierPickupLocations. This doesn't touch a store-svc-owned resource with an ownership row to check against (it writes directly to the carrier account), so there's no org-ownership verification here — a known trust-boundary gap, same shape as flagOrderIssue's caller-supplied organizationId. */ registerCarrierPickupLocation: CarrierPickupLocation; /** Register (or refresh) a push-notification device token for the current user. Upserts on the OS-issued token — safe to call on every app launch and on every token-refresh event. `platform` is one of "ios", "android", "web". `productSlug` names the product whose install minted the token; the server derives the Firebase project from it, and an unmapped product is rejected outright rather than stored as an undeliverable row. `metadata` is optional free-form context (app version, OS version). Deliberately takes no `fcmProject` and no identity argument: the project is derived server-side so a client cannot file a device under a project that cannot reach it, and the owner is always the calling actor. */ registerDeviceToken: DeviceToken; registerProductAsset: ProductAsset; /** Register a public key for authentication */ registerPublicKey: PublicKeyRegistrationResult; registerPublisher: Publisher; /** Register a resource with custom RBAC configurations. */ registerResource: Resource; registerSupportAttachmentPart: Scalars['Boolean']['output']; reinstatePublisher: Publisher; rejectApplication: Application; /** Platform admin only: reject a pending_review version with a reason. The developer can fix their submission and re-submit. */ rejectApplicationVersion: ApplicationVersion; /** Reject an organization invitation */ rejectDeveloperOrgInvitation: Scalars['Boolean']['output']; rejectDeveloperOrganizationVerification: DeveloperOrganization; /** Reject an organization invite (must be logged in as the invited user) */ rejectOrganizationInvite: OrganizationInvite; rejectPayoutRequest: PayoutRequest; /** Admin rejects a submitted product with a mandatory reason. Publisher can edit and resubmit afterwards. */ rejectProduct: StoreProduct; rejectPublisher: Publisher; rejectReview: ProductReview; rejectWaitlist: NewsletterWaitlist; releaseLegalHold: LegalHold; releaseSuppression: SuppressionEntry; removeAgentSkills: AgentProfile; /** Remove the license configuration for an application */ removeAppLicense: Scalars['Boolean']['output']; /** Remove apps from a collection */ removeAppsFromCollection: AppCollection; /** Remove a member from an organization */ removeDeveloperOrgMember: Scalars['Boolean']['output']; /** Stop using this pickup address for the organization. Only removes our own record — carriers like Shiprocket have no delete API, so the address may still exist on the carrier's account, it just won't be used for this org's shipments anymore. If the removed address was the default and others remain, the most recently added one is promoted to default. */ removeDeveloperOrgPickupAddress: Scalars['Boolean']['output']; /** Remove an item from the cart */ removeFromCart: CartPayload; /** Remove a waitlist entry entirely (admin operation). */ removeFromWaitlist: Scalars['Boolean']['output']; removeFromWishlist: Scalars['Boolean']['output']; /** Remove an interviewer from an interview round (admin). */ removeInterviewerFromRound: Scalars['Boolean']['output']; /** Remove a member from an organization */ removeOrganizationMember: Scalars['Boolean']['output']; /** Remove a passkey */ removePasskey: Scalars['Boolean']['output']; /** Remove a permission override */ removePermissionOverride: Scalars['Boolean']['output']; /** Remove a registered public key */ removePublicKey: Scalars['Boolean']['output']; /** Remove default permission for a role on a resource type */ removeRoleDefaultPermission: Role; /** Remove a role from an actor */ removeRoleFromActor: Scalars['Boolean']['output']; /** Remove a role permission override */ removeRolePermissionOverride: Scalars['Boolean']['output']; removeSubscribersFromList: NewsletterList; removeSuppression: Scalars['Boolean']['output']; /** Remove a single tag binding from an Application. */ removeTagFromApplication: Scalars['Boolean']['output']; /** Revoke a previously-granted tenant-member row. Idempotent on the missing row (returns false). Cascade-removing the user's existing org/workspace memberships under the tenant is NOT performed here — those rows survive and would need to be removed separately if the intent is full ejection. (BOFF-2652) */ removeTenantMember: Scalars['Boolean']['output']; removeTicketTags: SupportTicket; /** Remove user's preference for a feature flag (reverts to default). RBAC is scoped to the target workspace. */ removeUserFeatureFlagPreference: Scalars['Boolean']['output']; /** Remove a visibility rule */ removeVisibilityRule: Scalars['Boolean']['output']; /** Remove a workspace override, reverting to the platform default. RBAC is scoped to the target workspace. */ removeWorkspaceFeatureFlagOverride: Scalars['Boolean']['output']; /** Remove a member from a workspace */ removeWorkspaceMember: Scalars['Boolean']['output']; /** Remove workspace metadata (membership and routing) Note: This only removes metadata. Use workspaces service to delete actual workspace content. */ removeWorkspaceMetadata: Scalars['Boolean']['output']; /** Rename a passkey */ renamePasskey: PasskeyInfo; renewProductEntitlement: ProductEntitlement; reopenSupportTicket: SupportTicket; /** Reorder apps in a collection */ reorderCollectionApps: AppCollection; reorderFAQs: Array; reorderTicketCategories: Array; /** Reorder tour steps */ reorderTourSteps: Array; /** Replace the full set of tag bindings on an Application. */ replaceApplicationTags: Array; replaceChannelConnectionTags: Array; replaceChannelTags: Array; /** Replace all tags on a store product */ replaceStoreProductTags: Array; /** Send an email reply to a contact inquiry. The reply is sent via the notification pipeline (notification-svc → channel-svc → email provider). Auto-updates status to REVIEWED. */ replyToContactInquiry: ContactInquiryReplyResult; /** Send a branded email reply to an applicant (admin). Delivered to the applicant's email via the notification pipeline. Does not change status — the admin controls status explicitly. `message` is rich-text HTML from the admin's editor; it is sanitized to an allowlist before it reaches the email. */ replyToJobApplication: JobApplicationReplyResult; replyToReview: ProductReviewReply; /** Report a review */ reportAppReview: AppReviewReport; /** Webhook callback from the tool-sandbox-cf-proxy "Deploy Devportal Node" CI pipeline (BOFF-5968) reporting the outcome of a NODE version's sandbox image build+deploy. Not developer-facing, and NOT actor-authenticated — the caller is CI, not a platform user/app, so this verifies a shared secret (the `secret` argument, checked against DEVPORTAL_CALLBACK_SECRET, or CALLBACK_SECRET as shipped by the Secrets Manager bundle) inside the resolver itself rather than going through the actor/RBAC system. Sent as a mutation argument rather than a header because global-public-gateway only forwards a fixed header allowlist to subgraphs and drops custom headers. Persists onto ApplicationVersion.metadata.sandboxBuildStatus (READY/FAILED), which is what gates "Test in Workflow" in the devportal UI. */ reportNodeSandboxBuildStatus: Scalars['Boolean']['output']; /** Reprocess a failed webhook event */ reprocessWebhook: WebhookProcessingResult; requestBillingPayout: PayoutRequest; /** Request a credit withdrawal. Converts purchased + earned credits to a PayoutRequest denominated in USD at the current credit rate. Uses the specified payout account for payment. */ requestCreditWithdrawal: PayoutRequest; /** Issue a magic-link identity challenge and email it to the subject. The request parks in IDENTITY_VERIFICATION_PENDING until the token comes back through verifyDSARIdentity. */ requestDSARIdentityVerification: DsarRequest; /** Request a manual payout (devportal legacy alias) */ requestDeveloperOrgPayout: DeveloperOrgPayout; /** Request return for an order (owner only — ownership asserted in service) */ requestOrderReturn: OrderFulfillment; /** Request verification for a developer organization. Sets verificationRequestedAt and notifies platform admins. The method indicates how the dev wants to verify (e.g. "domain", "document", "manual"). */ requestOrgVerification: DeveloperOrganization; /** Request a password reset - sends reset email */ requestPasswordReset: PasswordResetRequestResult; /** Request a manual payout */ requestPayout: DeveloperOrgPayout; /** Request a reactivation link by email — for password-less (OAuth-only) self-deactivated accounts. Always returns a generic success (never reveals whether the email exists or is deactivated). */ requestReactivation: AccountActionResult; requeueFromDLQ: JobExecution; /** Reschedule an existing scheduled notification */ rescheduleNotification: ScheduledNotification; /** Resend an organization invitation */ resendDeveloperOrgInvitation: DeveloperOrgInvitation; /** Resend an organization invite notification (resets expiry, works on expired/rejected/cancelled) */ resendOrganizationInvite: OrganizationInvite; resendSurvey: CustomerSatisfactionSurvey; resendVerificationEmail: ResendVerificationResult; reserveAssistantAccountBudget: AssistantBudgetReceipt; resetCircuitBreaker: CircuitBreakerState; /** Reset password using token from email */ resetPassword: Scalars['Boolean']['output']; /** Reset user's progress for a tour */ resetTourProgress: TourUserProgress; /** Resolve — creating if absent — the default BillingAccount for an org (by `orgId`) or an existing account owned by a user (by `ownerUserId`). Returns the canonical BillingAccount so callers can obtain its `id` for downstream earnings / payout M2M calls. Service/super_admin only — routed through the internal gateway. Bypasses the Stripe/Razorpay sync path. */ resolveBillingAccount: BillingAccount; resolveContextWidgetConversation: ContextWidgetConversationPayload; resolveDLQEntry: Scalars['Boolean']['output']; resolveInventoryAlert: InventoryAlert; /** Mark a seller-reported issue flag resolved. Allowed for a super-admin (no organizationId needed) or the org that raised the flag (organizationId must match) — enforced in the resolver. */ resolveOrderIssueFlag: OrderIssueFlag; resolveSupportTicket: SupportTicket; /** Respond to a review (developer) */ respondToAppReview: AppReview; /** Approve or deny push MFA challenge (called from user's device). Requires authentication — only the user who initiated the challenge can respond to it. */ respondToPushMFA: Scalars['Boolean']['output']; /** Restore an archived channel */ restoreChannel: Channel; restoreScheduleVersion: ScheduledJob; restoreTemplateVersion: NewsletterTemplate; /** Service-trusted internal REDUCTION of a first-party self-delegation, keyed by the app's client id and the user: used when one of several integration connections that share it is deleted or revoked. It never creates, re-enables or widens a delegation: it returns null when there is none (never granted, or erased), a REVOKED or EXPIRED one unchanged, and otherwise the delegation cut down to the requested scopes and workspaces it already held (REVOKED if none are left). Not blocked by a deactivated app: withdrawing access is always permitted. Gated to internal service / super_admin callers and restricted to first-party system apps. */ restrictAppDelegationInternal?: Maybe; /** Public endpoint — no authentication required. Email is normalized (trimmed, lowercased) and validated in the provider. Returns NOT_FOUND when no matching unsubscribed record exists; does not leak which side of the check failed. */ resubscribe: NewsletterSubscriber; /** Resume a paused subscription */ resumeDeveloperOrgSubscription: DeveloperOrgSubscription; resumeSLA: SupportTicket; resumeScheduledJob: ScheduledJob; /** Retire one push registration the transport has reported permanently dead. Called by global-channel-svc after a send fails with a code that means the token itself is gone: FCM's `UNREGISTERED`, or an `INVALID_ARGUMENT` whose message names the registration token. Without it the registry accumulates tokens no push can ever reach, and every later fan-out keeps paying for uninstalled apps. Keyed on the token — that is what the transport rejected, it is unique in this registry, and a service acting on a transport report has no calling actor to scope by. That is precisely why this is service-gated rather than `scopeType: "self"`. `errorCode` is recorded for traceability; the delivery side owns the policy of which codes are terminal (a routing or credential fault must never retire a device — retiring one hides the misconfiguration and destroys the evidence). Returns true if a registration was removed. */ retirePushDeviceInternal: Scalars['Boolean']['output']; retireSubprocessor: Subprocessor; /** Manually retry GraphQL callback for a failed billing order (admin only) Useful for retrying after fixing issues in external service */ retryBillingOrderCallback: RetryBillingOrderCallbackResponse; /** Retry a failed delivery attempt */ retryDelivery: MessageDeliveryResult; retryImportJob: ImportJob; /** Retry invoice generation for a successful transaction that never got an invoice recorded (a transient Zoho Books/Stripe Invoicing failure at payment time). transactionId is the transaction that has no invoiceNumber in its metadata yet — surfaced via getTransactionsByBillingAccount / getTransaction, not the invoice list (which only shows transactions that already have an invoice). */ retryInvoiceGeneration: Invoice; retryJobExecution: JobExecution; /** Platform admin only: re-dispatch the sandbox image build for a NODE version whose build never completed (stuck PENDING) or failed (FAILED / DISPATCH_FAILED / UNSUPPORTED). Calls the exact same dispatch path a fresh publish uses — it does not create a new version or touch review status, it only re-attempts the build for the existing one. */ retryNodeSandboxBuild: Scalars['Boolean']['output']; /** Retry a failed payout */ retryPayout: DeveloperOrgPayout; /** Retry a failed refund */ retryRefund: ProcessRefundResult; retrySaleCreditSync: DeveloperOrgSale; /** Manually requeue a sync outbox entry for retry. The background reconciler will pick it up on its next tick — this mutation does not invoke the sync inline. Intended for PERMANENTLY_FAILED entries after the underlying problem (e.g. a downstream service that was down during signup) has been resolved. Resets attempts to 0 so the entry gets a fresh retry budget. */ retrySyncOutboxEntry: RetrySyncOutboxResult; revertTranslation: Translation; reviewTranslation: Translation; revokeAPIKey: Scalars['Boolean']['output']; /** Revoke all sessions except the current one. Returns the number of sessions that were revoked. */ revokeAllSessions: RevokeAllSessionsResult; /** Service-trusted internal revoke of a first-party self-delegation, keyed by the app's client id and the user — the counterpart of grantAppDelegationInternal, used when the last integration connection that needed it is deleted or revoked. Idempotent: returns true when an ACTIVE delegation was revoked and false when there was none (never granted, already revoked or expired). Gated to internal service / super_admin callers and restricted to first-party system apps. */ revokeAppDelegationInternal: Scalars['Boolean']['output']; /** Revoke an app's access to a workspace. Returns false if the row was already REVOKED or never existed. An owner or super_admin revoking an already-REVOKED row replaces the revocation on record (reason, actor, time). */ revokeAppWorkspaceAccess: Scalars['Boolean']['output']; revokeConsent: NewsletterConsent; revokeDelegation: Scalars['Boolean']['output']; revokeEntitlementSeat: ProductEntitlement; /** Revoke an HMAC credential */ revokeHMACCredential: Scalars['Boolean']['output']; revokeLicense: ProductEntitlement; /** Revoke a SCIM bearer token. The IdP's next provisioning call will get 401. */ revokeScimToken: Scalars['Boolean']['output']; revokeSeat: LicenseSeat; /** Revoke (log out) a specific session by ID. Returns true if the session was successfully revoked. */ revokeSession: Scalars['Boolean']['output']; /** Revoke a signed cookie session */ revokeSignedCookieSession: Scalars['Boolean']['output']; /** Revoke a user's platform connection (sets dmAllowed = false, clears tokens). Does NOT delete the record — keeps presence history intact. */ revokeUserPlatformConnection: UserPlatformConnection; rollbackRelease: ProductRelease; rotateAPIKey: ApiKeyRotateResult; rotateAppSecret: AppCreateResponse; /** Rotate the signing secret for an application. The new secret is returned once in the response; store it securely. The old secret is immediately invalidated. */ rotateApplicationSigningSecret: Application; /** Rotate connection credentials (security) */ rotateConnectionCredentials: ChannelConnection; /** Run health check on a channel */ runChannelHealthCheck: ChannelHealthCheck; /** Admin/service-initiated DSAR for an arbitrary subject (e.g. a support-filed or regulator-filed request, or a same-layer service driving the flow on a subject's behalf). Restricted to super_admin and service actors only — never reachable by a regular user for another person's data. */ runDsarRequestForSubject: DsarOrchestrationResult; runMonthlyPayouts: PayoutRunLog; /** Self-service DSAR: export or erase the CALLING actor's own data across every fan-out target. Self-scoped (Type-A pattern) — subjectId is always the calling actor's own id; there is no identity argument, so this can never be used to act on someone else's data. */ runMyDsarRequest: DsarOrchestrationResult; /** Save SSO/SAML configuration (creates or updates) */ saveSSOConfig: SsoConfig; /** Save an existing tour as a reusable template */ saveTourAsTemplate: TourTemplate; scheduleNewsletter: Newsletter; /** Schedule a notification for future delivery */ scheduleNotification: ScheduledNotification; /** Overwrite the built-in AthleteBridge user-facing tours from the service-owned seed file. */ seedAtheleteBridgeUserTours: SeedAtheleteBridgeUserToursResult; /** Overwrite the service-owned BigConsole onboarding tours. Repeated calls update the same slugs. */ seedBigconsoleUserTours: SeedBigconsoleUserToursResult; /** Overwrite the built-in Buildmyiq user-facing dashboard tour from the service-owned seed file. */ seedBuildmyiqUserTours: SeedBuildmyiqUserToursResult; /** Overwrite the built-in CollabKin user-facing dashboard tour from the service-owned seed file. */ seedCollabkinUserTours: SeedCollabkinUserToursResult; /** Overwrite the built-in CoolAndLovely user-facing Discover tour from the service-owned seed file. */ seedCoolAndLovelyUserTours: SeedCoolAndLovelyUserToursResult; /** Seed default feature flags across all products. Creates all default flags if they don't already exist. Returns the count of newly created flags. Skips flags that already exist (by key uniqueness). */ seedDefaultFeatureFlags: Scalars['Int']['output']; /** Bulk create default shortcuts for a product */ seedDefaultShortcuts: Scalars['Int']['output']; /** Overwrite the built-in FluidGrids user-facing workflow-builder tour from the service-owned seed file. */ seedFluidgridsUserTours: SeedFluidgridsUserToursResult; /** Overwrite the built-in IntelWatchtower user-facing tours for the intelligence workflow. */ seedIntelWatchtowerUserTours: SeedIntelWatchtowerUserToursResult; /** Overwrite the built-in TheCulturePost user-facing tours from the service-owned seed file. */ seedTheCulturePostUserTours: SeedTheCulturePostUserToursResult; /** Overwrite the built-in VibeControls user-facing tours for Support, Notifications, and Conversations from the service-owned seed file. */ seedVibeControlsUserTours: SeedVibeControlsUserToursResult; selectVariantWinner: NewsletterVariant; sendContextWidgetMessage: SendContextWidgetMessagePayload; /** Ask the explore agent a question (public, no authentication). Rate-limited per IP, capped globally per day, and optionally reCAPTCHA v3 gated. Returns immediately with a PENDING/RUNNING assistant message to poll. */ sendExploreMessage: SendExploreMessageResult; sendMagicLink: MagicLinkSendResult; /** Send a message to a channel */ sendMessage: MessageDeliveryResult; sendNewsletter: Newsletter; /** Send a product-specific welcome email to a single recipient. Renders the per-product template (header logo, primary color, body, CTA, resource links) and delivers via EMAIL platform with failover. Idempotent on `idempotencyKey` if provided. */ sendProductWelcomeEmail: ChannelDeliveryResult; /** Send push MFA challenge to user's device */ sendPushMFAChallenge: PushMfaChallengeResult; /** Send a message to the candidate for a specific round and mark it sent (admin). */ sendRoundMessageToCandidate: InterviewRound; sendSurvey: CustomerSatisfactionSurvey; sendTestNewsletter: TestNewsletterResult; /** Record an EarningsEntry on behalf of an org/user by explicit billingAccountId. Service/super_admin only — internal gateway. */ serviceRecordEarning: EarningsEntry; /** Request a payout drawn from a user's AVAILABLE earnings on an explicit billing account. Reserves matching earnings and creates a PayoutRequest that the existing approval/processing workflow drives to completion. Service/super_admin only — internal gateway. */ serviceRequestPayout: PayoutRequest; /** Resolve (or create) a canonical default PayoutAccount for a publisher/org owner so a service caller can obtain a `payoutAccountId` for `serviceRequestPayout` without the user-only `addPayoutAccount` path. Idempotent / self-healing: repeated calls return the SAME account (no duplicates). Prefers an existing user-registered account; otherwise creates a placeholder that can be referenced but against which NO money moves until the user completes real payment setup. Service/super_admin only — internal gateway. */ serviceResolvePayoutAccount: PayoutAccount; /** Mirror a billing PayoutRequest status change back onto the DeveloperOrgPayout it originated from (BOFF-7192). Billing owns the payout system-of-record and is where admins approve/reject/mark-paid; this keeps devportal's own payout history in sync so it doesn't stay stuck showing a stale status forever. Looked up by sourceIdempotencyKey ("devportal:payout:", set when the request was originally mirrored to billing) — a no-op if the key isn't a devportal-originated one, or no matching local payout exists. Service/super_admin only — internal gateway. */ serviceSyncPayoutStatus?: Maybe; setAgentAway: AgentProfile; setAgentOffline: AgentProfile; setAgentOnline: AgentProfile; /** Set (create or update) the license for an application, including optional workspace cap */ setAppLicense: AppLicense; /** Set or update billing address for a billing account */ setBillingAddress: BillingAddress; /** Set a billing account as the default for an org. Only one billing account can be default per org. If another account is currently default, it will be unset. */ setDefaultBillingAccount: BillingAccount; setDefaultLanguage: Language; /** Set a payment method as default */ setDefaultPaymentMethod: DeveloperOrgPaymentMethod; setDefaultPayoutAccount: PayoutAccount; /** Mark one of the organization's pickup addresses as the active one used for carrier rate quoting and shipment booking. Unsets any other default. */ setDefaultPickupAddress: DeveloperOrgPickupAddress; setEntitlementSeatLimit: ProductEntitlement; /** Subscribe or unsubscribe the current user from a notification topic */ setNotificationTopicSubscription: NotificationTopicSubscription; /** Set default permission level for a role on a resource type */ setRoleDefaultPermission: Role; /** Set (or update) the shipping address + method for a store order (physical orders). The backend recomputes the AUTHORITATIVE shipping cost from the order's own line-item weights via the same quote engine as estimateOrderShipping — the client never supplies a cost. Verifies the address belongs to the order's buyer and freezes an immutable shippingSnapshot for delivery integrity. `StoreOrder.total` stays product-cost-only; the billing/checkout layer must add `shippingCost` to the payable amount. */ setStoreOrderShipping: StoreOrder; /** Set or update the endpoint URL for a DEDICATED tenant. Transitions PROVISIONING → ACTIVE when endpoint is set. */ setTenantEndpoint: Tenant; /** Set user's opt-in/out preference for a previewable feature flag. RBAC is scoped to the target workspace via `input.workspaceId`. */ setUserFeatureFlagPreference: UserFeatureFlagPreference; setUserLanguagePreference: UserLanguagePreference; /** Set workspace-level override for a feature flag (super admin or workspace admin). RBAC is scoped to the target workspace via `input.workspaceId`. */ setWorkspaceFeatureFlagOverride: WorkspaceFeatureFlagOverride; settleAssistantAccountBudget: AssistantBudgetReceipt; setupMFA: MfaSetupResult; /** Share a WORKFLOW-type application as a public link by setting its visibility to UNLISTED. Only the developer who owns the app can call this. The app must have a manifest (workflow definition) set. */ shareWorkflow: Application; sideloadApp: StoreAppInstallation; signIn?: Maybe; signOut: Scalars['Boolean']['output']; signUp?: Maybe; /** Skip a refund (mark as not needed) */ skipRefund: RefundRecord; /** Mark a specific step as skipped */ skipStep: TourUserProgress; /** Mark a tour as skipped for a user */ skipTour: TourUserProgress; snapshotTopCharts: Scalars['Int']['output']; spendCredits: SpendCreditResponse; /** Start a trial for an application */ startAppTrial: AppInstallation; startStagedRollout: ProductRelease; /** Mark a tour as started for a user */ startTour: TourUserProgress; submitApplication: Application; /** Submit an application to the store for review. Awaits the store-svc submit call and returns the application with the resulting store submission metadata attached to `metadata.storeSubmissionStatus`. The target store's requiresApproval flag decides whether the submission lands in PENDING_REVIEW (public default) or is auto-published (private registries that trust their publishers). */ submitApplicationForReview: Application; /** Submit a take-home assignment response from the public careers site (burdenoff.com/careersubmissions). No authentication required — protected by reCAPTCHA. Matches the candidate's existing application by email, records the repo/video links on their take-home interview round, and notifies the candidate + careers inbox. */ submitAssignmentResponse: SubmitAssignmentResponsePayload; /** Submit a contact inquiry from a public website (no authentication required). Validates reCAPTCHA token server-side using the product's secret key fetched from the tenant service via internal gateway. */ submitContactInquiry: SubmitContactInquiryResult; /** Rate one answer. Same fire-and-forget posture as `recordExploreClick`: a rating that cannot be attributed — an unfinished answer, a USER turn, a token that does not own the message — comes back `recorded: false` rather than as an error, and never as FORBIDDEN, which would confirm that a message id exists. Submitting again REPLACES the previous rating for that message, so changing your mind is an ordinary action rather than a duplicate or a failure. */ submitExploreFeedback: SubmitExploreFeedbackResult; /** Submit feedback for an interview round (admin). */ submitInterviewFeedback: InterviewFeedback; /** Submit a job application from a public website (no authentication required). Validates reCAPTCHA, stores the resume in private storage, and notifies the applicant + careers inbox. */ submitJobApplication: SubmitJobApplicationResult; /** Submit a product to its target store for review. The store's requiresApproval flag decides whether the product goes to PENDING_REVIEW or is auto-published. */ submitProduct: StoreProduct; submitPublisherVerification: Publisher; submitSatisfactionSurvey: CustomerSatisfactionSurvey; /** Public endpoint — no authentication required for website newsletter signup. Email is normalized (trimmed, lowercased) and validated in the provider. Protected by rate limiting (5 req/min per IP) and optional reCAPTCHA at the resolver. */ subscribe: NewsletterSubscriber; subscribeToStore: UserStoreSubscription; /** Anonymise the subject across support records. With dryRun=true returns counts without mutating. Ticket bodies and agent resolution history are retained for legal-claims defence (`retainedForLegalReason: "claims-3yr"`). Called exclusively by the global-tenant-svc DSAR orchestrator (actorType=service) via global-int-gateway. */ supportEraseSubject: SupportEraseResult; /** Export the subject's support data: tickets they raised, messages they authored, contact inquiries, CSAT surveys submitted. Called exclusively by the global-tenant-svc DSAR orchestrator (actorType=service) via global-int-gateway. */ supportExportSubject: Scalars['JSON']['output']; suppressIdentifier: SuppressionEntry; /** Suspend an installation (admin) */ suspendAppInstallation: AppInstallation; /** Suspend a member */ suspendDeveloperOrgMember: DeveloperOrgMember; suspendProductEntitlement: ProductEntitlement; suspendPublisher: Publisher; /** Suspend a tenant */ suspendTenant: Tenant; /** Suspend a workspace */ suspendWorkspace: Workspace; /** Called by global-store-svc (service actor only) when a product submission is approved or rejected. Updates the Application reviewStatus + metadata and fires applicationStoreStatusChanged subscription. */ syncStoreSubmissionStatus: Scalars['Boolean']['output']; /** Sync tour steps (smart update in ONE call) Send all desired steps, backend handles: update existing, create new, delete removed */ syncTourSteps: Array; /** Sync workspace metadata from workspace layer to global layer. Called by wspace-workspace-svc when a workspace is created directly via workspace layer. This is the reverse of syncFromGlobal - it syncs global ← wspace. Creates workspace metadata + owner membership in global-tenant-svc. */ syncWorkspaceFromWspace: SyncWorkspaceFromWspaceResponse; tagChannel: ChannelTagAssignment; tagChannelConnection: ChannelConnectionTagAssignment; /** Assign a tag to a store product */ tagStoreProduct: StoreProductTagAssignment; /** Test connection health */ testConnectionHealth: ConnectionTestResult; /** Test LDAP connection */ testLDAPConnection: Scalars['Boolean']['output']; /** Test RADIUS connection */ testRADIUSConnection: Scalars['Boolean']['output']; testWebhook: WebhookTestResult; toggleAddOn: Scalars['Boolean']['output']; /** Toggle the featured state of a store product (admin) */ toggleFeatured: Scalars['Boolean']['output']; /** Toggle shortcut enabled status */ toggleKeyboardShortcut: KeyboardShortcut; togglePlan: Scalars['Boolean']['output']; /** Track a tour event */ trackTourEvent: TourAnalytics; /** Batch record multiple tour analytics events */ trackTourEvents: TourBatchAnalyticsResult; transferLicense: LicenseTransferResult; /** Transfer ownership of an organization */ transferOrgOwnership: DeveloperOrganization; /** Trigger multiple notifications in batch */ triggerBatchNotifications: BatchNotificationResult; /** Trigger a notification for delivery via the channel service */ triggerNotification: Notification; /** Trigger notification(s) using a template. Supports single recipient or bulk delivery. */ triggerNotificationWithTemplate: TemplateNotificationResult; /** Restore an archived notification */ unarchiveNotification: Notification; unenrollSubscriberFromAutomation: Scalars['Boolean']['output']; /** Uninstall an application */ uninstallApp: Scalars['Boolean']['output']; /** Uninstall by applicationId + workspaceId. Convenience mutation for the store UI which knows productId (= applicationId) but not the devportal installation ID. Silently returns true if no active installation exists (idempotent). Fires installation.deleted webhook and calls oauthRevokeUrl if configured. */ uninstallAppByApplication: Scalars['Boolean']['output']; /** Unlink the billing account from an organization */ unlinkDevOrgBillingAccount: DeveloperOrganization; unlinkTickets: Scalars['Boolean']['output']; /** Unlink wallet from user account */ unlinkWallet: Scalars['Boolean']['output']; unlistProduct: StoreProduct; unpublishFAQ: Faq; unpublishKnowledgeBaseArticle: KnowledgeBaseArticle; /** Unpublish a tour (change status back to DRAFT) */ unpublishTour: Tour; /** Unregister a device token (e.g. on logout or notification opt-out). Pass `productSlug` to unsubscribe only that product's install, so signing out of one product does not silently unsubscribe the others sharing the device. Returns true if a token was removed. */ unregisterDeviceToken: Scalars['Boolean']['output']; /** Revoke the public link for a shared WORKFLOW app, setting visibility back to PRIVATE. Only the owning developer can call this. */ unshareWorkflow: Application; unsubscribe: Scalars['Boolean']['output']; unsubscribeFromStore: Scalars['Boolean']['output']; untagChannel: Scalars['Boolean']['output']; untagChannelConnection: Scalars['Boolean']['output']; /** Remove a tag from a store product */ untagStoreProduct: Scalars['Boolean']['output']; updateAPIKey: ApiKey; updateAddOnDetails: Scalars['Boolean']['output']; updateAffiliateCode: AffiliateCode; updateAgentProfile: AgentProfile; updateAgentStatus: AgentProfile; updateApp: App; /** Update an app collection */ updateAppCollection: AppCollection; /** Update installation configuration */ updateAppInstallation: AppInstallation; /** Update a review */ updateAppReview: AppReview; updateApplication: Application; updateApplicationVersion: ApplicationVersion; updateAutomationStep: AutomationStep; /** Update a billing account */ updateBillingAccount: BillingAccount; updateCampaignStats: NewsletterCampaign; updateCannedResponse: CannedResponse; /** Update a cart item (quantity, workspace, etc.) */ updateCartItem: CartItemPayload; /** Update cart notes */ updateCartNotes: CartPayload; updateCategory: ProductCategory; /** Update an existing channel */ updateChannel: Channel; /** Save (upsert) organization-level channel settings. */ updateChannelOrgSettings: ChannelOrgSettings; /** Update connection metadata (not credentials) */ updateConnection: ChannelConnection; /** Update the status of a contact inquiry (authenticated, for superadmins) */ updateContactInquiryStatus: ContactInquiry; /** Update an existing content page */ updateContentPage: ProductContentPage; /** Update a coupon (admin) */ updateCoupon: Coupon; /** Update the currently authenticated user's own profile. */ updateCurrentUserProfile: User; updateDSARStatus: DsarRequest; updateDelegation: AppUserDelegation; /** Update a member's role */ updateDeveloperOrgMemberRole: DeveloperOrgMember; /** Update a payment method */ updateDeveloperOrgPaymentMethod: DeveloperOrgPaymentMethod; /** Update a subscription */ updateDeveloperOrgSubscription: DeveloperOrgSubscription; /** Update a developer organization */ updateDeveloperOrganization: DeveloperOrganization; updateDeveloperProfile: DeveloperProfile; /** Update a discount */ updateDiscount: BillingDiscount; /** Update an existing entitlement */ updateEntitlement: SubscriptionEntitlement; updateFAQ: Faq; /** Update an existing feature flag (super admin only) */ updateFeatureFlag: FeatureFlag; updateI18nModule: I18nModule; updateI18nNamespace: I18nNamespace; updateI18nProduct: I18nProduct; updateInstallationStatus: StoreAppInstallation; /** Update previously submitted interview feedback (admin). */ updateInterviewFeedback: InterviewFeedback; /** Update an interview round (admin). */ updateInterviewRound: InterviewRound; /** Update an interview round config (admin). */ updateInterviewRoundConfig: InterviewRoundConfig; /** Update an interviewer (admin). */ updateInterviewer: Interviewer; /** Update the status of a job application (admin). */ updateJobApplicationStatus: JobApplication; /** Update a take-home assignment (admin). */ updateJobAssignment: JobAssignment; /** Update a job posting (admin). */ updateJobPosting: JobPosting; /** Update an existing keyboard shortcut */ updateKeyboardShortcut: KeyboardShortcut; updateKnowledgeBaseArticle: KnowledgeBaseArticle; updateLanguage: Language; /** Update the current user's dashboard widget layout preferences. Replaces the dashboard.widgets array within preferences. */ updateMyDashboardPreferences: Scalars['JSON']['output']; /** Update the current user's general preferences. Merges the provided JSON into the existing preferences field. */ updateMyPreferences: UserPreference; updateNewsletter: Newsletter; updateNewsletterAutomation: NewsletterAutomation; updateNewsletterList: NewsletterList; updateNewsletterTemplate: NewsletterTemplate; updateNewsletterVariant: NewsletterVariant; /** Update a notification (only allowed for DRAFT or PENDING status) */ updateNotification: Notification; /** Update a notification history entry */ updateNotificationHistory: NotificationHistory; /** Update a notification preference */ updateNotificationPreference: NotificationPreference; /** Update a notification template */ updateNotificationTemplate: NotificationTemplate; /** Update a notification topic */ updateNotificationTopic: NotificationTopic; /** Update organization legal information */ updateOrgLegalInfo: DeveloperOrganization; /** Update organization tax information */ updateOrgTaxInfo: DeveloperOrganization; /** Update an existing organization */ updateOrganization: Organization; /** Update an organization member's role */ updateOrganizationMember: OrganizationMember; /** Update a payment method (set default) */ updatePaymentMethod: PaymentMethod; updatePayoutAccount: PayoutAccount; updatePhysicalProduct: StoreProduct; updatePlan: Scalars['Boolean']['output']; /** Update an existing platform product */ updatePlatformProduct: PlatformProduct; /** Update an OPA policy reference */ updatePolicyReference: PolicyReference; /** Update an existing press kit asset */ updatePressKitAsset: ProductPressKitAsset; updateProduct: StoreProduct; updateProductVariant: ProductVariant; /** Update a promotion (admin only) */ updatePromotion: Promotion; updatePublisher: Publisher; updateQuota: Scalars['Boolean']['output']; /** Update RBAC configuration for a scope */ updateRbacConfig: RbacConfig; updateRecurringBillingPlan: RecurringBillingPlan; /** Update a registered resource */ updateResource: Resource; updateReview: ProductReview; /** Update a role */ updateRole: Role; updateRolloutPercentage: ProductRelease; updateSLAPolicy: SlaPolicy; updateScheduleTemplate: ScheduleTemplate; updateScheduledJob: ScheduledJob; updateShippingAddress: ShippingAddress; updateShippingMethod: ShippingMethod; updateStore: Store; /** Update order payment status (called by billing service callback) This is a PUBLIC mutation called by the billing service after payment completion */ updateStoreOrderPaymentStatus: UpdateStoreOrderPaymentStatusResponse; updateSubprocessor: Subprocessor; updateSubscriber: NewsletterSubscriber; /** Update access type or discount percentage on an existing subscription entitlement. */ updateSubscriptionEntitlement: StoreSubscriptionEntitlement; /** Update the seat count on an active PER_SEAT subscription. Syncs quantity to the payment gateway and updates the seat quota ceiling. */ updateSubscriptionSeats: BillingSubscription; updateSupportMessage: SupportMessage; updateSupportTicket: SupportTicket; updateSupportTicketStatus: SupportTicket; /** Update a tax rate */ updateTaxRate: TaxRate; /** Update an existing tenant */ updateTenant: Tenant; /** Change the role on an existing tenant-member grant. Throws NOT_FOUND if the row does not exist. (BOFF-2652) */ updateTenantMemberRole: TenantMember; updateTicketCategory: TicketCategory; updateTicketTemplate: TicketTemplate; /** Update an existing tour */ updateTour: Tour; /** Update tour media */ updateTourMedia: TourMedia; /** Update a tour schedule */ updateTourSchedule: TourSchedule; /** Update an existing tour step */ updateTourStep: TourStep; /** Update a tour template */ updateTourTemplate: TourTemplate; updateTranslation: Translation; updateTranslationKey: TranslationKey; /** Update a user by ID (admin only) */ updateUser: User; /** Update notification preferences for a platform connection */ updateUserPlatformConnectionNotifications: UserPlatformConnection; updateVariantStats: NewsletterVariant; updateWebhook: Webhook; /** Update an existing workspace */ updateWorkspace: Workspace; /** Update a workspace member's role */ updateWorkspaceMember: WorkspaceMember; /** Upgrade from trial to paid */ upgradeFromTrial: AppInstallation; /** Upgrade organization tier */ upgradeOrgTier: DeveloperOrganization; /** Upload tax form for a payment method */ uploadTaxForm: DeveloperOrgPaymentMethod; upsertComplianceSettings: NewsletterComplianceSettings; /** Create or update external OIDC configuration (Google, Microsoft, etc.) Admin only */ upsertExternalOIDCConfig: ExternalOidcConfiguration; /** Create or update fulfillment details for an order (admin) */ upsertOrderFulfillment: OrderFulfillment; /** Upsert a platform connection from a passively-observed webhook event (source = SEEN). Used by WebhookProcessor to track users without granting DM access. */ upsertSeenUser: UserPlatformConnection; upsertSourcingOffer: SourcingOffer; /** M2M: create or update a ShippingAddress for an EXPLICIT user, on behalf of a calling service. Product backends (e.g. Kadaikodi) call this through the INTERNAL gateway so a user's address lives in the canonical store owner rather than a per-product copy. Pass `input.id` to update an existing row (must belong to `input.userId`); omit it to create. Service-actor only. */ upsertUserShippingAddress: ShippingAddress; useCannedResponse: CannedResponse; /** Validate an HMAC signature */ validateHMACSignature: HmacValidationResult; /** Validate a signed cookie */ validateSignedCookie: SignedCookieValidation; validateTokens: TokenValidationResponse; /** Verify a billing payment method by charging a small amount (e.g., ₹1) that will be refunded */ verifyBillingPaymentMethod: VerifyPaymentMethodResponse; /** Verify the subject's identity. `identityProof` must carry a `method` of `magic_link` (with `token`), `idp_step_up` (with `assertion`), or `support_override` (super_admin only, with `reason`). The claim is validated — it is not taken at face value. */ verifyDSARIdentity: DsarRequest; verifyEmail: EmailVerificationResult; verifyMFA: AuthResult; /** Verify passkey authentication and login */ verifyPasskeyAuthentication: AuthResult; /** Verify and complete passkey registration */ verifyPasskeyRegistration: PasskeyRegistrationResult; /** Verify a payment method (micro-deposits) */ verifyPaymentMethod: DeveloperOrgPaymentMethod; verifyPublisherPayoutMethod: PublisherPayoutMethod; /** Verify a WhatsApp pairing code entered by the user in the dashboard. Called by wspace-integrations-svc during its CUSTOM auth step. Looks up the UserPlatformConnection (source=SEEN) for the channel + phone number, checks the pairing code matches and has not expired, then: - Sets pairingStatus = APPROVED - Sets dmAllowed = true - Sets dmConversationId to the WhatsApp JID format Returns true on success, throws on failure. */ verifyWhatsAppPairingCode: Scalars['Boolean']['output']; /** Void an invoice */ voidInvoice: Invoice; /** Vote on a review (helpful/not helpful) */ voteOnAppReview: AppReviewVote; withdrawConsent: ConsentRecord; }; /** Root mutation type */ export type MutationAcceptDeveloperOrgInvitationArgs = { token: Scalars['String']['input']; }; /** Root mutation type */ export type MutationAcceptOrganizationInviteArgs = { inviteId: Scalars['ID']['input']; recaptchaToken?: InputMaybe; }; /** Root mutation type */ export type MutationAcceptSourcingOfferArgs = { offerId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationActivateChannelArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationActivateConnectionArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationActivateLicenseArgs = { input: ActivateLicenseInput; }; /** Root mutation type */ export type MutationActivateScheduleArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationActivateSubscriptionForWorkspaceArgs = { billingAccountId: Scalars['ID']['input']; subscriptionId: Scalars['ID']['input']; workspaceId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationActivateSubscriptionForWorkspacesArgs = { billingAccountId: Scalars['ID']['input']; subscriptionId: Scalars['ID']['input']; workspaceIds: Array; }; /** Root mutation type */ export type MutationActivateTenantArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationActivateTourScheduleArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationActivateWorkspaceArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationAddAffiliateCodeNoteArgs = { input: AddAffiliateCodeNoteInput; }; /** Root mutation type */ export type MutationAddAgentSkillsArgs = { id: Scalars['ID']['input']; skills: Array; }; /** Root mutation type */ export type MutationAddAppsToCollectionArgs = { appIds: Array; id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationAddDeveloperOrgPaymentMethodArgs = { input: AddPaymentMethodInput; organizationId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationAddOrderTrackingEventArgs = { input: AddFulfillmentTrackingEventInput; }; /** Root mutation type */ export type MutationAddOrganizationMemberArgs = { input: AddOrganizationMemberInput; }; /** Root mutation type */ export type MutationAddPaymentMethodArgs = { input: CreatePaymentMethodInput; }; /** Root mutation type */ export type MutationAddPayoutAccountArgs = { input: AddPayoutAccountInput; }; /** Root mutation type */ export type MutationAddPublisherPayoutMethodArgs = { input: AddPayoutMethodInput; }; /** Root mutation type */ export type MutationAddReleaseTestersArgs = { trackId: Scalars['ID']['input']; userIds: Array; }; /** Root mutation type */ export type MutationAddSubscribersToListArgs = { listId: Scalars['ID']['input']; subscriberIds: Array; }; /** Root mutation type */ export type MutationAddSuppressionArgs = { input: AddSuppressionInput; }; /** Root mutation type */ export type MutationAddTagToApplicationArgs = { input: AddTagToApplicationInput; }; /** Root mutation type */ export type MutationAddTenantMemberArgs = { input: AddTenantMemberInput; }; /** Root mutation type */ export type MutationAddTicketTagsArgs = { id: Scalars['ID']['input']; tags: Array; }; /** Root mutation type */ export type MutationAddToCartArgs = { input: AddToCartInput; }; /** Root mutation type */ export type MutationAddToWishlistArgs = { notes?: InputMaybe; productId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationAddTourStepArgs = { input: CreateTourStepInput; }; /** Root mutation type */ export type MutationAddUsageArgs = { billingAccountId: Scalars['ID']['input']; description: Scalars['String']['input']; hash?: InputMaybe; productId?: InputMaybe; quotaName: Scalars['String']['input']; tags?: InputMaybe; userId?: InputMaybe; value: Scalars['Int']['input']; }; /** Root mutation type */ export type MutationAddWorkspaceMemberArgs = { input: AddWorkspaceMemberInput; }; /** Root mutation type */ export type MutationAdjustInventoryArgs = { input: AdjustInventoryInput; }; /** Root mutation type */ export type MutationAdminMarkAffiliateConversionArgs = { input: RecordAffiliateConversionInput; }; /** Root mutation type */ export type MutationApplyBillingDiscountArgs = { billingAccountId: Scalars['ID']['input']; discountCode: Scalars['String']['input']; }; /** Root mutation type */ export type MutationApplySlaPolicyArgs = { policyId: Scalars['ID']['input']; ticketId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationApplySubscriptionCouponArgs = { couponCode: Scalars['String']['input']; id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationApproveApplicationArgs = { id: Scalars['ID']['input']; notes?: InputMaybe; }; /** Root mutation type */ export type MutationApproveApplicationVersionArgs = { id: Scalars['ID']['input']; notes?: InputMaybe; }; /** Root mutation type */ export type MutationApproveDeveloperOrganizationVerificationArgs = { id: Scalars['ID']['input']; notes?: InputMaybe; }; /** Root mutation type */ export type MutationApprovePayoutArgs = { id: Scalars['ID']['input']; notes?: InputMaybe; }; /** Root mutation type */ export type MutationApprovePayoutRequestArgs = { id: Scalars['ID']['input']; notes?: InputMaybe; }; /** Root mutation type */ export type MutationApproveProductArgs = { id: Scalars['ID']['input']; notes?: InputMaybe; }; /** Root mutation type */ export type MutationApprovePublisherArgs = { id: Scalars['ID']['input']; notes?: InputMaybe; }; /** Root mutation type */ export type MutationApproveReviewArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationApproveTranslationArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationApproveWaitlistArgs = { input: ApproveWaitlistInput; }; /** Root mutation type */ export type MutationArchiveBillingAccountArgs = { id: Scalars['ID']['input']; reason?: InputMaybe; replacementDefaultBillingAccountId?: InputMaybe; }; /** Root mutation type */ export type MutationArchiveChannelArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationArchiveKnowledgeBaseArticleArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationArchiveNotificationArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationArchiveNotificationsArgs = { notificationIds: Array; }; /** Root mutation type */ export type MutationArchivePayoutAccountArgs = { billingAccountId: Scalars['ID']['input']; id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationArchiveScheduleArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationArchiveTourArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationArchiveWorkspaceArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationAssignAuthenticatedUserRoleArgs = { userId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationAssignEntitlementSeatArgs = { input: AssignEntitlementSeatInput; }; /** Root mutation type */ export type MutationAssignInterviewersToRoundArgs = { input: AssignInterviewersToRoundInput; }; /** Root mutation type */ export type MutationAssignPlanFreeArgs = { billingAccountId: Scalars['ID']['input']; planId: Scalars['ID']['input']; secret: Scalars['String']['input']; workspaceId?: InputMaybe; }; /** Root mutation type */ export type MutationAssignQuotaFreeArgs = { billingAccountId: Scalars['ID']['input']; durationDays?: InputMaybe; limit?: InputMaybe; quotaId: Scalars['ID']['input']; secret: Scalars['String']['input']; workspaceId?: InputMaybe; }; /** Root mutation type */ export type MutationAssignRoleToActorArgs = { input: AssignRoleInput; }; /** Root mutation type */ export type MutationAssignSeatArgs = { input: AssignSeatInput; }; /** Root mutation type */ export type MutationAssignSupportTicketArgs = { assignedTo: Scalars['String']['input']; id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationAttachMediaToStepArgs = { input: AttachMediaToStepInput; }; /** Root mutation type */ export type MutationAuthEraseSubjectArgs = { dryRun?: InputMaybe; subjectId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationAuthExportSubjectArgs = { subjectId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationAuthenticateArgs = { input: AuthenticateInput; }; /** Root mutation type */ export type MutationAuthenticateApiKeyArgs = { input: ApiKeyInput; }; /** Root mutation type */ export type MutationAuthenticateAppArgs = { input: AuthenticateAppInput; }; /** Root mutation type */ export type MutationAuthenticateBasicAuthArgs = { credentials: Scalars['String']['input']; }; /** Root mutation type */ export type MutationAuthenticateDigestArgs = { cnonce?: InputMaybe; nc?: InputMaybe; nonce: Scalars['String']['input']; opaque: Scalars['String']['input']; qop?: InputMaybe; realm: Scalars['String']['input']; response: Scalars['String']['input']; uri: Scalars['String']['input']; username: Scalars['String']['input']; }; /** Root mutation type */ export type MutationAuthenticateKerberosArgs = { spnegoToken: Scalars['String']['input']; tenantId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationAuthenticateLdapArgs = { password: Scalars['String']['input']; tenantId: Scalars['String']['input']; username: Scalars['String']['input']; }; /** Root mutation type */ export type MutationAuthenticateMagicLinkArgs = { token: Scalars['String']['input']; }; /** Root mutation type */ export type MutationAuthenticateNtlmArgs = { authenticateMessage: Scalars['String']['input']; challengeId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationAuthenticateOAuthArgs = { input: OAuthInput; }; /** Root mutation type */ export type MutationAuthenticateOidcArgs = { input: OidcCallbackInput; }; /** Root mutation type */ export type MutationAuthenticateRadiusArgs = { password: Scalars['String']['input']; tenantId: Scalars['String']['input']; username: Scalars['String']['input']; }; /** Root mutation type */ export type MutationAuthenticateSamlArgs = { input: SamlInput; }; /** Root mutation type */ export type MutationAuthenticateWalletArgs = { message: Scalars['String']['input']; signature: Scalars['String']['input']; walletAddress: Scalars['String']['input']; }; /** Root mutation type */ export type MutationAuthenticateWithPublicKeyArgs = { challenge: Scalars['String']['input']; keyId: Scalars['ID']['input']; signature: Scalars['String']['input']; }; /** Root mutation type */ export type MutationBulkArchiveSchedulesArgs = { filter: BulkOperationFilter; }; /** Root mutation type */ export type MutationBulkAssignRoleArgs = { actorIds: Array; actorType: ActorType; roleId: Scalars['ID']['input']; scopeId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationBulkCreateTranslationKeysArgs = { keys: Array; productId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationBulkCreateTranslationsArgs = { translations: Array; }; /** Root mutation type */ export type MutationBulkEnsureInterviewRoundsArgs = { input: BulkEnsureInterviewRoundsInput; }; /** Root mutation type */ export type MutationBulkPauseSchedulesArgs = { filter: BulkOperationFilter; }; /** Root mutation type */ export type MutationBulkRandomizeAndSendAssignmentArgs = { input: BulkRandomizeAndSendAssignmentInput; }; /** Root mutation type */ export type MutationBulkResumeSchedulesArgs = { filter: BulkOperationFilter; }; /** Root mutation type */ export type MutationBulkSendCustomEmailArgs = { input: BulkSendCustomEmailInput; }; /** Root mutation type */ export type MutationBulkSendRoundMessageArgs = { input: BulkSendRoundMessageInput; }; /** Root mutation type */ export type MutationBulkSetUserFeatureFlagPreferencesArgs = { input: BulkSetUserFeatureFlagPreferenceInput; }; /** Root mutation type */ export type MutationBulkUpdateApplicationStatusArgs = { input: BulkUpdateApplicationStatusInput; }; /** Root mutation type */ export type MutationBulkUpdateSchedulesArgs = { filter: BulkOperationFilter; updates: UpdateScheduledJobInput; }; /** Root mutation type */ export type MutationBulkUpdateTranslationsArgs = { translations: Array; }; /** Root mutation type */ export type MutationCancelDsarArgs = { id: Scalars['ID']['input']; reason?: InputMaybe; }; /** Root mutation type */ export type MutationCancelDeliveryArgs = { attemptId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationCancelDeveloperOrgInvitationArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationCancelDeveloperOrgSubscriptionArgs = { cancelImmediately?: InputMaybe; id: Scalars['ID']['input']; reason?: InputMaybe; }; /** Root mutation type */ export type MutationCancelImportJobArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationCancelNewsletterArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationCancelOrganizationInviteArgs = { inviteId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationCancelPayoutArgs = { id: Scalars['ID']['input']; reason?: InputMaybe; }; /** Root mutation type */ export type MutationCancelScheduledNotificationArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationCancelSourcingRequestArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationCancelSubscriptionArgs = { input: CancelSubscriptionInput; }; /** Root mutation type */ export type MutationChangePasswordArgs = { input: ChangePasswordInput; }; /** Root mutation type */ export type MutationChannelEraseSubjectArgs = { dryRun?: InputMaybe; subjectId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationChannelExportSubjectArgs = { subjectId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationCheckPushMfaStatusArgs = { challengeId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationCheckoutArgs = { input: CheckoutInput; }; /** Root mutation type */ export type MutationCloneScheduleArgs = { newOrganizationId?: InputMaybe; overrides?: InputMaybe; sourceId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationCloseSupportTicketArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationCompleteAppOAuthArgs = { code: Scalars['String']['input']; installationId: Scalars['ID']['input']; redirectUri: Scalars['String']['input']; state: Scalars['String']['input']; }; /** Root mutation type */ export type MutationCompleteOAuthFlowArgs = { authCode: Scalars['String']['input']; channelId: Scalars['ID']['input']; state: Scalars['String']['input']; }; /** Root mutation type */ export type MutationCompleteStepArgs = { stepId: Scalars['ID']['input']; tourId: Scalars['ID']['input']; userId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationCompleteSupportAttachmentUploadArgs = { sessionId: Scalars['ID']['input']; ticketId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationCompleteTourArgs = { tourId: Scalars['ID']['input']; userId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationConfigureAssistantAccountBudgetArgs = { billingAccountId: Scalars['ID']['input']; dailyMicroUsd: Scalars['Int']['input']; dailyTokens: Scalars['Int']['input']; enabled: Scalars['Boolean']['input']; }; /** Root mutation type */ export type MutationConfigureAssistantModelPriceArgs = { inputPer1M: Scalars['String']['input']; model: Scalars['String']['input']; outputPer1M: Scalars['String']['input']; }; /** Root mutation type */ export type MutationConfigureEntitlementSeatsArgs = { entitlementId: Scalars['ID']['input']; maxSeats: Scalars['Int']['input']; }; /** Root mutation type */ export type MutationConfigureKerberosArgs = { input: KerberosConfigInput; tenantId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationConfigureLdapArgs = { input: LdapConfigInput; tenantId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationConfigureRadiusArgs = { input: RadiusConfigInput; tenantId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationConfigureTenantArgs = { id: Scalars['ID']['input']; input: ConfigureTenantInput; }; /** Root mutation type */ export type MutationConfigureWorkspaceArgs = { id: Scalars['ID']['input']; input: ConfigureWorkspaceInput; }; /** Root mutation type */ export type MutationCreateAddOnsArgs = { input: CreateAddOnsInput; }; /** Root mutation type */ export type MutationCreateAffiliateCodeArgs = { input: CreateAffiliateCodeInput; }; /** Root mutation type */ export type MutationCreateAgentProfileArgs = { input: CreateAgentProfileInput; }; /** Root mutation type */ export type MutationCreateAppArgs = { input: CreateAppInput; }; /** Root mutation type */ export type MutationCreateAppCollectionArgs = { input: CreateAppCollectionInput; }; /** Root mutation type */ export type MutationCreateAppReviewArgs = { applicationId: Scalars['ID']['input']; input: CreateAppReviewInput; }; /** Root mutation type */ export type MutationCreateApplicationArgs = { input: CreateApplicationInput; }; /** Root mutation type */ export type MutationCreateApplicationVersionArgs = { applicationId: Scalars['ID']['input']; input: CreateApplicationVersionInput; }; /** Root mutation type */ export type MutationCreateAutomationStepArgs = { input: CreateAutomationStepInput; }; /** Root mutation type */ export type MutationCreateBillingAccountArgs = { input: CreateBillingAccountInput; }; /** Root mutation type */ export type MutationCreateBillingOrderArgs = { input: CreateBillingOrderInput; }; /** Root mutation type */ export type MutationCreateCampaignArgs = { input: CreateCampaignInput; }; /** Root mutation type */ export type MutationCreateCannedResponseArgs = { input: CreateCannedResponseInput; }; /** Root mutation type */ export type MutationCreateCategoriesArgs = { names: Array; }; /** Root mutation type */ export type MutationCreateCategoryArgs = { input: CreateCategoryInput; }; /** Root mutation type */ export type MutationCreateChannelArgs = { input: CreateChannelInput; }; /** Root mutation type */ export type MutationCreateConnectionArgs = { input: CreateConnectionInput; }; /** Root mutation type */ export type MutationCreateContentPageArgs = { input: CreateContentPageInput; }; /** Root mutation type */ export type MutationCreateCouponArgs = { input: CreateCouponInput; }; /** Root mutation type */ export type MutationCreateCreditNoteArgs = { amount: Scalars['Float']['input']; billingAccountId: Scalars['ID']['input']; currency?: InputMaybe; invoiceId?: InputMaybe; metadata?: InputMaybe; reason?: InputMaybe; }; /** Root mutation type */ export type MutationCreateDeveloperOrgSubscriptionArgs = { input: CreateSubscriptionInput; organizationId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationCreateDeveloperOrganizationArgs = { input: CreateDeveloperOrganizationInput; }; /** Root mutation type */ export type MutationCreateDeveloperProfileArgs = { input: CreateDeveloperProfileInput; }; /** Root mutation type */ export type MutationCreateDiscountArgs = { code: Scalars['String']['input']; currency?: InputMaybe; maxUses?: InputMaybe; metadata?: InputMaybe; type: Scalars['String']['input']; validFrom: Scalars['DateTime']['input']; validUntil?: InputMaybe; value: Scalars['Float']['input']; }; /** Root mutation type */ export type MutationCreateEditorialCollectionArgs = { input: CreateEditorialCollectionInput; }; /** Root mutation type */ export type MutationCreateEntitlementArgs = { input: CreateEntitlementInput; }; /** Root mutation type */ export type MutationCreateExploreShareLinkArgs = { conversationToken: Scalars['String']['input']; }; /** Root mutation type */ export type MutationCreateFaqArgs = { input: CreateFaqInput; }; /** Root mutation type */ export type MutationCreateFeatureFlagArgs = { input: CreateFeatureFlagInput; }; /** Root mutation type */ export type MutationCreateI18nModuleArgs = { input: CreateI18nModuleInput; }; /** Root mutation type */ export type MutationCreateI18nNamespaceArgs = { input: CreateI18nNamespaceInput; }; /** Root mutation type */ export type MutationCreateI18nProductArgs = { input: CreateI18nProductInput; }; /** Root mutation type */ export type MutationCreateImportJobArgs = { input: CreateImportJobInput; }; /** Root mutation type */ export type MutationCreateInterviewRoundArgs = { input: CreateInterviewRoundInput; }; /** Root mutation type */ export type MutationCreateInterviewRoundConfigArgs = { input: CreateInterviewRoundConfigInput; }; /** Root mutation type */ export type MutationCreateInterviewerArgs = { input: CreateInterviewerInput; }; /** Root mutation type */ export type MutationCreateJobApplicationArgs = { input: CreateJobApplicationInput; }; /** Root mutation type */ export type MutationCreateJobAssignmentArgs = { input: CreateJobAssignmentInput; }; /** Root mutation type */ export type MutationCreateJobPostingArgs = { input: CreateJobPostingInput; }; /** Root mutation type */ export type MutationCreateKeyboardShortcutArgs = { input: CreateKeyboardShortcutInput; }; /** Root mutation type */ export type MutationCreateKnowledgeBaseArticleArgs = { input: CreateKnowledgeBaseArticleInput; }; /** Root mutation type */ export type MutationCreateLanguageArgs = { input: CreateLanguageInput; }; /** Root mutation type */ export type MutationCreateNewsletterArgs = { input: CreateNewsletterInput; }; /** Root mutation type */ export type MutationCreateNewsletterAutomationArgs = { input: CreateAutomationInput; }; /** Root mutation type */ export type MutationCreateNewsletterListArgs = { input: CreateNewsletterListInput; }; /** Root mutation type */ export type MutationCreateNewsletterTemplateArgs = { input: CreateNewsletterTemplateInput; }; /** Root mutation type */ export type MutationCreateNewsletterVariantArgs = { input: CreateVariantInput; }; /** Root mutation type */ export type MutationCreateNotificationArgs = { input: CreateNotificationInput; }; /** Root mutation type */ export type MutationCreateNotificationHistoryArgs = { input: CreateNotificationHistoryInput; }; /** Root mutation type */ export type MutationCreateNotificationPreferenceArgs = { input: CreateNotificationPreferenceInput; }; /** Root mutation type */ export type MutationCreateNotificationTemplateArgs = { input: CreateTemplateInput; }; /** Root mutation type */ export type MutationCreateNotificationTopicArgs = { input: CreateNotificationTopicInput; }; /** Root mutation type */ export type MutationCreateOrganizationArgs = { input: CreateOrganizationInput; }; /** Root mutation type */ export type MutationCreatePermissionOverrideArgs = { input: CreatePermissionOverrideInput; }; /** Root mutation type */ export type MutationCreatePhysicalProductArgs = { input: CreatePhysicalProductInput; }; /** Root mutation type */ export type MutationCreatePlanArgs = { input: CreatePlanInput; }; /** Root mutation type */ export type MutationCreatePlatformProductArgs = { input: CreatePlatformProductInput; }; /** Root mutation type */ export type MutationCreatePolicyReferenceArgs = { input: CreatePolicyReferenceInput; }; /** Root mutation type */ export type MutationCreatePressKitAssetArgs = { input: CreatePressKitAssetInput; }; /** Root mutation type */ export type MutationCreatePressKitAssetUploadUrlArgs = { input: CreatePressKitAssetUploadUrlInput; }; /** Root mutation type */ export type MutationCreateProductArgs = { input: CreateProductInput; }; /** Root mutation type */ export type MutationCreateProductEntitlementArgs = { input: CreateProductEntitlementInput; }; /** Root mutation type */ export type MutationCreateProductVariantArgs = { input: CreateProductVariantInput; }; /** Root mutation type */ export type MutationCreatePromoCodeArgs = { input: CreatePromoCodeInput; }; /** Root mutation type */ export type MutationCreatePromotionArgs = { input: CreatePromotionInput; }; /** Root mutation type */ export type MutationCreatePublicSupportTicketArgs = { input: CreatePublicSupportTicketInput; }; /** Root mutation type */ export type MutationCreateQuotaArgs = { input: CreateQuotaInput; }; /** Root mutation type */ export type MutationCreateRecurringBillingPlanArgs = { input: CreateRecurringBillingInput; }; /** Root mutation type */ export type MutationCreateReferralCodeArgs = { input: CreateReferralCodeInput; }; /** Root mutation type */ export type MutationCreateRefundArgs = { amount: Scalars['Float']['input']; billingAccountId: Scalars['ID']['input']; chargeId: Scalars['ID']['input']; currency?: InputMaybe; metadata?: InputMaybe; reason?: InputMaybe; }; /** Root mutation type */ export type MutationCreateRefundRecordArgs = { amount: Scalars['Float']['input']; billingAccountId?: InputMaybe; currency: Scalars['String']['input']; gatewayOrderId?: InputMaybe; gatewayPaymentId: Scalars['String']['input']; metadata?: InputMaybe; notes?: InputMaybe; provider: Scalars['String']['input']; purchaseDetail?: InputMaybe; purchaseType?: InputMaybe; reason?: InputMaybe; transactionId?: InputMaybe; }; /** Root mutation type */ export type MutationCreateRefundRecordFromWebhookArgs = { webhookLogId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationCreateReleaseArgs = { input: CreateReleaseInput; }; /** Root mutation type */ export type MutationCreateReleaseTrackArgs = { input: CreateReleaseTrackInput; }; /** Root mutation type */ export type MutationCreateReviewArgs = { input: CreateReviewInput; }; /** Root mutation type */ export type MutationCreateRoleArgs = { input: CreateRoleInput; }; /** Root mutation type */ export type MutationCreateRolePermissionOverrideArgs = { input: CreateRolePermissionOverrideInput; }; /** Root mutation type */ export type MutationCreateSlaPolicyArgs = { input: CreateSlaPolicyInput; }; /** Root mutation type */ export type MutationCreateScheduleFromTemplateArgs = { overrides?: InputMaybe; templateId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationCreateScheduleTemplateArgs = { input: CreateScheduleTemplateInput; }; /** Root mutation type */ export type MutationCreateScheduledJobArgs = { input: CreateScheduledJobInput; }; /** Root mutation type */ export type MutationCreateSellerOrganizationArgs = { input: CreateDeveloperOrganizationInput; }; /** Root mutation type */ export type MutationCreateShippingAddressArgs = { input: CreateShippingAddressInput; }; /** Root mutation type */ export type MutationCreateShippingMethodArgs = { input: CreateShippingMethodInput; }; /** Root mutation type */ export type MutationCreateShippingRateArgs = { input: CreateShippingRateInput; }; /** Root mutation type */ export type MutationCreateShippingZoneArgs = { input: CreateShippingZoneInput; }; /** Root mutation type */ export type MutationCreateSignedCookieSessionArgs = { rememberMe?: InputMaybe; }; /** Root mutation type */ export type MutationCreateSourcingRequestArgs = { input: CreateSourcingRequestInput; }; /** Root mutation type */ export type MutationCreateStoreArgs = { input: CreateStoreInput; }; /** Root mutation type */ export type MutationCreateStoreOrderArgs = { input: CreateStoreOrderInput; }; /** Root mutation type */ export type MutationCreateSubprocessorArgs = { input: SubprocessorInput; }; /** Root mutation type */ export type MutationCreateSubscriptionEntitlementArgs = { input: StoreSubscriptionEntitlementInput; storeProductId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationCreateSupportMessageArgs = { input: CreateSupportMessageInput; }; /** Root mutation type */ export type MutationCreateSupportTicketArgs = { input: CreateSupportTicketInput; }; /** Root mutation type */ export type MutationCreateTagArgs = { input: CreateTagInput; }; /** Root mutation type */ export type MutationCreateTaxRateArgs = { active?: InputMaybe; country: Scalars['String']['input']; description?: InputMaybe; rate: Scalars['Float']['input']; state?: InputMaybe; }; /** Root mutation type */ export type MutationCreateTenantArgs = { input: CreateTenantInput; }; /** Root mutation type */ export type MutationCreateTicketCategoryArgs = { input: CreateTicketCategoryInput; }; /** Root mutation type */ export type MutationCreateTicketFromTemplateArgs = { overrides?: InputMaybe; templateId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationCreateTicketTemplateArgs = { input: CreateTicketTemplateInput; }; /** Root mutation type */ export type MutationCreateTourArgs = { input: CreateTourInput; }; /** Root mutation type */ export type MutationCreateTourFromTemplateArgs = { templateId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationCreateTourMediaMetadataArgs = { input: CreateTourMediaInput; }; /** Root mutation type */ export type MutationCreateTourScheduleArgs = { input: CreateTourScheduleInput; }; /** Root mutation type */ export type MutationCreateTourTemplateArgs = { input: CreateTourTemplateInput; }; /** Root mutation type */ export type MutationCreateTranslationArgs = { input: CreateTranslationInput; }; /** Root mutation type */ export type MutationCreateTranslationKeyArgs = { input: CreateTranslationKeyInput; }; /** Root mutation type */ export type MutationCreateUserTenantStructureArgs = { input: CreateUserTenantStructureInput; }; /** Root mutation type */ export type MutationCreateVisibilityRuleArgs = { input: CreateVisibilityRuleInput; }; /** Root mutation type */ export type MutationCreateWebhookArgs = { applicationId: Scalars['ID']['input']; input: CreateWebhookInput; }; /** Root mutation type */ export type MutationCreateWorkspaceArgs = { input: CreateWorkspaceInput; }; /** Root mutation type */ export type MutationDeactivateAccountArgs = { password: Scalars['String']['input']; }; /** Root mutation type */ export type MutationDeactivateAffiliateCodeArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeactivateAppArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeactivateApplicationArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeactivateChannelArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeactivateConnectionArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeactivateCouponArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeactivateLicenseArgs = { deviceId: Scalars['String']['input']; licenseKey: Scalars['String']['input']; }; /** Root mutation type */ export type MutationDeactivatePromotionArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeactivateReferralCodeArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeactivateResourceArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeactivateTourScheduleArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDecrementQuotaArgs = { amount: Scalars['Int']['input']; billingAccountId: Scalars['ID']['input']; quotaAssignmentId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteAccountArgs = { confirmPhrase: Scalars['String']['input']; password: Scalars['String']['input']; }; /** Root mutation type */ export type MutationDeleteAffiliateCodeArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteAgentProfileArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteAppArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteAppCollectionArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteAppReviewArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteApplicationArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteAutomationStepArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteCannedResponseArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteCategoryArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteChannelArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteConnectionArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteContentPageArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteDeveloperOrgPaymentMethodArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteDeveloperOrganizationArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteDiscountArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteEntitlementArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteExternalOidcConfigArgs = { identifier: Scalars['String']['input']; }; /** Root mutation type */ export type MutationDeleteFaqArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteFeatureFlagArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteI18nModuleArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteI18nNamespaceArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteI18nProductArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteInterviewFeedbackArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteInterviewRoundArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteInterviewRoundConfigArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteInterviewerArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteJobAssignmentArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteJobPostingArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteKerberosConfigurationArgs = { tenantId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationDeleteKeyboardShortcutArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteKnowledgeBaseArticleArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteLdapConfigurationArgs = { tenantId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationDeleteLanguageArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteNewsletterArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteNewsletterAutomationArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteNewsletterListArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteNewsletterTemplateArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteNewsletterVariantArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteNotificationArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteNotificationHistoryArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteNotificationPreferenceArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteNotificationTemplateArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteNotificationTopicArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteNotificationsArgs = { notificationIds: Array; }; /** Root mutation type */ export type MutationDeleteNotificationsByFilterArgs = { filter: NotificationFilterInput; }; /** Root mutation type */ export type MutationDeleteOrganizationArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeletePaymentMethodArgs = { billingAccountId: Scalars['ID']['input']; id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeletePlatformProductArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeletePolicyReferenceArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeletePressKitAssetArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteProductArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteProductAssetArgs = { assetId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteProductEntitlementArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteProductVariantArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteRadiusConfigurationArgs = { tenantId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationDeleteReviewArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteReviewReplyArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteReviewResponseArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteRoleArgs = { id: Scalars['ID']['input']; reassignToRoleId?: InputMaybe; }; /** Root mutation type */ export type MutationDeleteSlaPolicyArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteSsoConfigArgs = { tenantId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationDeleteScheduleTemplateArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteScheduledJobArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteShippingAddressArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteStoreArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteSubscriberArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteSubscriptionEntitlementArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteSupportMessageArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteSupportTicketArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteTagArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteTaxRateArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteTenantArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteTicketCategoryArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteTicketTemplateArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteTourArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteTourMediaArgs = { context?: InputMaybe; id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteTourScheduleArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteTourStepArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteTourTemplateArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteTranslationArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteTranslationKeyArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteUserArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteUserLanguagePreferenceArgs = { userId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteUserPlatformConnectionArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeleteUserShippingAddressArgs = { id: Scalars['ID']['input']; userId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationDeleteWebhookArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDelistProductArgs = { id: Scalars['ID']['input']; reason?: InputMaybe; }; /** Root mutation type */ export type MutationDeliverBulkNotificationArgs = { input: BulkChannelDeliveryInput; }; /** Root mutation type */ export type MutationDeliverMultiPlatformNotificationArgs = { input: MultiPlatformDeliveryInput; }; /** Root mutation type */ export type MutationDeliverNotificationArgs = { input: ChannelDeliveryInput; }; /** Root mutation type */ export type MutationDeliverPushToUserArgs = { input: UserPushDeliveryInput; }; /** Root mutation type */ export type MutationDeprecateApplicationVersionArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDeprecateProductArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDetachMediaFromStepArgs = { context?: InputMaybe; mediaId: Scalars['ID']['input']; tourStepId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDisableAuthMethodArgs = { authType: AuthType; }; /** Root mutation type */ export type MutationDisableMfaArgs = { code?: InputMaybe; }; /** Root mutation type */ export type MutationDisableScheduleArgs = { id: Scalars['ID']['input']; reason?: InputMaybe; }; /** Root mutation type */ export type MutationDiscardDlqEntryArgs = { id: Scalars['ID']['input']; reason?: InputMaybe; }; /** Root mutation type */ export type MutationDismissTourArgs = { permanently?: InputMaybe; tourId: Scalars['ID']['input']; userId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationDuplicateNewsletterArgs = { id: Scalars['ID']['input']; newSlug: Scalars['String']['input']; newTitle?: InputMaybe; }; /** Root mutation type */ export type MutationDuplicateTourArgs = { id: Scalars['ID']['input']; newName?: InputMaybe; }; /** Root mutation type */ export type MutationEarnCreditsArgs = { input: EarnCreditsInput; }; /** Root mutation type */ export type MutationEnableAuthMethodArgs = { authType: AuthType; config?: InputMaybe; }; /** Root mutation type */ export type MutationEnableMfaArgs = { code: Scalars['String']['input']; }; /** Root mutation type */ export type MutationEnableMaintenanceModeArgs = { duration?: InputMaybe; reason: Scalars['String']['input']; }; /** Root mutation type */ export type MutationEnrollSubscriberInAutomationArgs = { automationId: Scalars['ID']['input']; subscriberId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationEnsureOrganizationMemberArgs = { input: EnsureOrganizationMemberInput; }; /** Root mutation type */ export type MutationEnsureStoreOrderBillingOrderArgs = { billingAccountId: Scalars['ID']['input']; currency?: InputMaybe; storeOrderId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationEraseSubjectArgs = { dryRun?: InputMaybe; subjectId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationEscalateExploreConversationArgs = { input: EscalateExploreConversationInput; }; /** Root mutation type */ export type MutationEscalateSupportTicketArgs = { escalateTo?: InputMaybe; id: Scalars['ID']['input']; reason: Scalars['String']['input']; }; /** Root mutation type */ export type MutationExchangeOwnDelegationArgs = { input: ExchangeOwnDelegationInput; }; /** Root mutation type */ export type MutationExchangeTokenArgs = { input: ExchangeTokenInput; }; /** Root mutation type */ export type MutationExecuteJobNowArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationExploreAgentSubmitArgs = { input: ExploreAgentSubmitInput; }; /** Root mutation type */ export type MutationExportApplicationsArgs = { filter?: InputMaybe; format: DevportalExportFormat; }; /** Root mutation type */ export type MutationExportAuditLogsArgs = { filter?: InputMaybe; format: DevportalExportFormat; }; /** Root mutation type */ export type MutationExportChannelUsersArgs = { filter: ExportChannelUsersFilter; format: ChannelExportFormat; }; /** Root mutation type */ export type MutationExportChannelsArgs = { filter: ExportChannelsFilter; format: ChannelExportFormat; }; /** Root mutation type */ export type MutationExportDeliveryAttemptsArgs = { filter: ExportDeliveryAttemptsFilter; format: ChannelExportFormat; }; /** Root mutation type */ export type MutationExportDeveloperOrganizationsArgs = { filter?: InputMaybe; format: DevportalExportFormat; }; /** Root mutation type */ export type MutationExportRevenueArgs = { filter?: InputMaybe; format: DevportalExportFormat; }; /** Root mutation type */ export type MutationExportSubjectArgs = { subjectId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationExportWebhookEventsArgs = { filter: ExportWebhookEventsFilter; format: ChannelExportFormat; }; /** Root mutation type */ export type MutationExportWebhooksArgs = { filter?: InputMaybe; format: DevportalExportFormat; }; /** Root mutation type */ export type MutationFeatureAppReviewArgs = { featured: Scalars['Boolean']['input']; id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationFileDsarArgs = { input: FileDsarInput; }; /** Root mutation type */ export type MutationFlagOrderIssueArgs = { category: OrderIssueCategory; note?: InputMaybe; orderId: Scalars['ID']['input']; organizationId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationFreeUpUsageArgs = { billingAccountId: Scalars['ID']['input']; description?: InputMaybe; hash?: InputMaybe; productId?: InputMaybe; quotaName: Scalars['String']['input']; tags?: InputMaybe; userId?: InputMaybe; value: Scalars['Int']['input']; }; /** Root mutation type */ export type MutationGenerateApiKeyArgs = { input: GenerateApiKeyInput; }; /** Root mutation type */ export type MutationGenerateAppAsUserTokenArgs = { input: GenerateAppAsUserTokenInput; }; /** Root mutation type */ export type MutationGenerateAppTokenArgs = { input: GenerateAppTokenInput; }; /** Root mutation type */ export type MutationGenerateHmacSecretArgs = { algorithm?: InputMaybe; appId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationGenerateInvoiceArgs = { billingAccountId: Scalars['ID']['input']; subscriptionId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationGenerateOidcAuthUrlArgs = { state?: InputMaybe; tenantId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationGeneratePasskeyAuthenticationOptionsArgs = { email?: InputMaybe; }; /** Root mutation type */ export type MutationGeneratePseudoLocaleArgs = { options?: InputMaybe; productCode: Scalars['String']['input']; sourceLocale?: InputMaybe; }; /** Root mutation type */ export type MutationGeneratePublicKeyChallengeArgs = { keyId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationGenerateSamlRequestArgs = { relayState?: InputMaybe; tenantId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationGenerateWalletChallengeArgs = { chain?: InputMaybe; walletAddress: Scalars['String']['input']; }; /** Root mutation type */ export type MutationGetSupportAttachmentPartUploadUrlsArgs = { partNumbers: Array; sessionId: Scalars['ID']['input']; ticketId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationGrantAppDelegationInternalArgs = { input: GrantAppDelegationInternalInput; }; /** Root mutation type */ export type MutationGrantAppWorkspaceAccessArgs = { input: GrantAppWorkspaceAccessInput; }; /** Root mutation type */ export type MutationGrantConsentArgs = { input: GrantConsentInput; }; /** Root mutation type */ export type MutationGrantCreditsArgs = { input: GrantCreditsInput; }; /** Root mutation type */ export type MutationGrantDelegationArgs = { input: GrantDelegationInput; }; /** Root mutation type */ export type MutationHaltRolloutArgs = { reason: Scalars['String']['input']; releaseId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationHandleChannelDeliveryEventArgs = { input: ChannelDeliveryEventInput; }; /** Root mutation type */ export type MutationHardDeleteUserArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationIdentifyAffiliateJourneyArgs = { input: IdentifyAffiliateJourneyInput; }; /** Root mutation type */ export type MutationIgnoreWebhookArgs = { eventId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationImportSubscribersArgs = { subscribers: Array; }; /** Root mutation type */ export type MutationInitializeBillingRolesArgs = { billingAccountId: Scalars['String']['input']; ownerId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationInitializeOrganizationRolesArgs = { organizationId: Scalars['String']['input']; ownerId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationInitiateAppOAuthArgs = { installationId: Scalars['ID']['input']; redirectUri: Scalars['String']['input']; }; /** Root mutation type */ export type MutationInitiateKerberosAuthArgs = { tenantId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationInitiateNtlmChallengeArgs = { negotiateMessage: Scalars['String']['input']; }; /** Root mutation type */ export type MutationInitiatePaymentArgs = { input: InitiatePaymentInput; }; /** Root mutation type */ export type MutationInstallAppArgs = { input: InstallAppInput; }; /** Root mutation type */ export type MutationInstallPurchasedAppArgs = { orderId?: InputMaybe; productId: Scalars['String']['input']; version?: InputMaybe; workspaceId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationInviteDeveloperOrgMemberArgs = { input: InviteDeveloperOrgMemberInput; organizationId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationInviteOrganizationMemberArgs = { input: InviteOrganizationMemberInput; }; /** Root mutation type */ export type MutationIssueAppAsUserTokenInternalArgs = { input: IssueAppAsUserTokenInternalInput; }; /** Root mutation type */ export type MutationJoinWaitlistArgs = { input: JoinWaitlistInput; }; /** Root mutation type */ export type MutationLeaveDeveloperOrganizationArgs = { organizationId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationLinkDevOrgBillingAccountArgs = { billingAccountId: Scalars['ID']['input']; organizationId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationLinkIntegrationConnectionArgs = { channelId: Scalars['ID']['input']; integrationConnectionId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationLinkTicketsArgs = { input: LinkTicketsInput; }; /** Root mutation type */ export type MutationLinkWalletArgs = { message: Scalars['String']['input']; signature: Scalars['String']['input']; walletAddress: Scalars['String']['input']; }; /** Root mutation type */ export type MutationMarkNotificationAsReadArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationMarkNotificationAsUnreadArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationMarkNotificationsAsReadArgs = { notificationIds: Array; }; /** Root mutation type */ export type MutationMarkNotificationsByFilterAsReadArgs = { filter: NotificationReadFilterInput; }; /** Root mutation type */ export type MutationMarkOrderRefundedArgs = { orderId: Scalars['ID']['input']; reason?: InputMaybe; }; /** Root mutation type */ export type MutationMarkPayoutPaidArgs = { externalReference?: InputMaybe; id: Scalars['ID']['input']; notes?: InputMaybe; }; /** Root mutation type */ export type MutationMarkReviewHelpfulArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationMergeCartArgs = { guestSessionId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationMergeTicketsArgs = { sourceIds: Array; targetId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationMintScimTokenArgs = { label: Scalars['String']['input']; tenantId?: InputMaybe; workspaceId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationMintSsoSessionArgs = { token: Scalars['String']['input']; }; /** Root mutation type */ export type MutationModerateAppReviewArgs = { id: Scalars['ID']['input']; note?: InputMaybe; rejectionReason?: InputMaybe; status: AppReviewStatus; }; /** Root mutation type */ export type MutationNewsletterEraseSubjectArgs = { dryRun?: InputMaybe; subjectId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationNewsletterExportSubjectArgs = { subjectId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationNotifyDuplicateApplicantsArgs = { input: NotifyDuplicateApplicantsInput; }; /** Root mutation type */ export type MutationOpenCircuitBreakerArgs = { scope: Scalars['String']['input']; scopeValue: Scalars['String']['input']; }; /** Root mutation type */ export type MutationPauseDeveloperOrgSubscriptionArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationPauseSlaArgs = { reason?: InputMaybe; ticketId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationPauseScheduledJobArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationPayInvoiceArgs = { billingAccountId: Scalars['ID']['input']; invoiceId: Scalars['ID']['input']; paymentMethodId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationPermanentlyDeleteScheduleArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationPlaceLegalHoldArgs = { input: PlaceLegalHoldInput; }; /** Root mutation type */ export type MutationPrepareSupportAttachmentUploadArgs = { input: PrepareSupportAttachmentUploadInput; }; /** Root mutation type */ export type MutationProcessAppSaleRefundArgs = { amount?: InputMaybe; reason: Scalars['String']['input']; saleId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationProcessPayoutRequestArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationProcessRefundArgs = { id: Scalars['ID']['input']; notes?: InputMaybe; }; /** Root mutation type */ export type MutationProcessScheduledNotificationsArgs = { limit?: InputMaybe; }; /** Root mutation type */ export type MutationProcessWebhookArgs = { eventId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationProvisionDedicatedTenantArgs = { input: ProvisionDedicatedTenantInput; }; /** Root mutation type */ export type MutationProvisionFreeTierForWorkspaceArgs = { orgId: Scalars['ID']['input']; workspaceId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationPublicUnsubscribeByTokenArgs = { token: Scalars['String']['input']; }; /** Root mutation type */ export type MutationPublishApplicationArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationPublishApplicationVersionArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationPublishCatalogNodeVersionArgs = { isFirstPublish?: InputMaybe; nodeType: Scalars['String']['input']; secret: Scalars['String']['input']; version: Scalars['String']['input']; zipUrl: Scalars['String']['input']; }; /** Root mutation type */ export type MutationPublishFaqArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationPublishKnowledgeBaseArticleArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationPublishProductArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationPublishTourArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationPublishTranslationArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationPurchaseProductArgs = { paymentMethodId: Scalars['String']['input']; productId: Scalars['String']['input']; workspaceId?: InputMaybe; }; /** Root mutation type */ export type MutationRandomizeAndSendAssignmentArgs = { input: RandomizeAndSendAssignmentInput; }; /** Root mutation type */ export type MutationRateArticleArgs = { helpful: Scalars['Boolean']['input']; id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRateFaqArgs = { helpful: Scalars['Boolean']['input']; id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationReactivateAccountArgs = { email: Scalars['String']['input']; password: Scalars['String']['input']; }; /** Root mutation type */ export type MutationReactivateAccountWithTokenArgs = { token: Scalars['String']['input']; }; /** Root mutation type */ export type MutationReactivateAppInstallationArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationReactivateDeveloperOrgMemberArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationReactivateProductEntitlementArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRecordActivityArgs = { input: RecordActivityInput; }; /** Root mutation type */ export type MutationRecordAffiliateConversionArgs = { input: RecordAffiliateConversionInput; }; /** Root mutation type */ export type MutationRecordAffiliateTouchpointArgs = { input: RecordAffiliateTouchpointInput; }; /** Root mutation type */ export type MutationRecordAppInstallationArgs = { input: RecordAppInstallationInput; }; /** Root mutation type */ export type MutationRecordAppUninstallationArgs = { productId: Scalars['String']['input']; workspaceId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationRecordArticleViewArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRecordAssignmentSubmissionArgs = { input: RecordAssignmentSubmissionInput; }; /** Root mutation type */ export type MutationRecordBounceArgs = { input: RecordBounceInput; }; /** Root mutation type */ export type MutationRecordComplaintArgs = { input: RecordComplaintInput; }; /** Root mutation type */ export type MutationRecordConsentArgs = { input: RecordConsentInput; }; /** Root mutation type */ export type MutationRecordDeveloperOrgPickupAddressArgs = { actorId: Scalars['ID']['input']; actorType?: InputMaybe; input: RecordPickupAddressInput; organizationId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRecordDownloadArgs = { ipAddress?: InputMaybe; productId: Scalars['String']['input']; version?: InputMaybe; }; /** Root mutation type */ export type MutationRecordEarningEntryArgs = { input: RecordEarningEntryInput; }; /** Root mutation type */ export type MutationRecordExploreClickArgs = { input: RecordExploreClickInput; }; /** Root mutation type */ export type MutationRecordExternalSettlementArgs = { input: RecordExternalSettlementInput; }; /** Root mutation type */ export type MutationRecordFaqViewArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRecordLicenseUsageArgs = { input: RecordUsageInput; }; /** Root mutation type */ export type MutationRecordNotificationActionArgs = { input: RecordNotificationActionInput; }; /** Root mutation type */ export type MutationRecordProductVisitArgs = { input: RecordProductVisitInput; }; /** Root mutation type */ export type MutationRecordSaleArgs = { input: RecordSaleInput; }; /** Root mutation type */ export type MutationRecordTourProgressArgs = { input: RecordTourProgressInput; }; /** Root mutation type */ export type MutationRefreshApplicationVersionPackageUrlArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRefreshConnectionTokensArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRefreshProductAssetUrlArgs = { assetId: Scalars['ID']['input']; expiresInSeconds?: InputMaybe; }; /** Root mutation type */ export type MutationRefreshTokenArgs = { token: Scalars['String']['input']; }; /** Root mutation type */ export type MutationRegenerateAffiliateCodeArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRegisterAppWithAuthServiceArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRegisterCarrierPickupLocationArgs = { input: RegisterCarrierPickupLocationInput; }; /** Root mutation type */ export type MutationRegisterDeviceTokenArgs = { deviceId: Scalars['String']['input']; metadata?: InputMaybe; platform: Scalars['String']['input']; productSlug?: InputMaybe; token: Scalars['String']['input']; }; /** Root mutation type */ export type MutationRegisterProductAssetArgs = { input: RegisterProductAssetInput; }; /** Root mutation type */ export type MutationRegisterPublicKeyArgs = { keyType: Scalars['String']['input']; name?: InputMaybe; publicKey: Scalars['String']['input']; }; /** Root mutation type */ export type MutationRegisterPublisherArgs = { input: RegisterPublisherInput; }; /** Root mutation type */ export type MutationRegisterResourceArgs = { input: RegisterResourceInput; }; /** Root mutation type */ export type MutationRegisterSupportAttachmentPartArgs = { input: RegisterSupportAttachmentPartInput; }; /** Root mutation type */ export type MutationReinstatePublisherArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRejectApplicationArgs = { id: Scalars['ID']['input']; notes: Scalars['String']['input']; }; /** Root mutation type */ export type MutationRejectApplicationVersionArgs = { id: Scalars['ID']['input']; reason: Scalars['String']['input']; }; /** Root mutation type */ export type MutationRejectDeveloperOrgInvitationArgs = { token: Scalars['String']['input']; }; /** Root mutation type */ export type MutationRejectDeveloperOrganizationVerificationArgs = { id: Scalars['ID']['input']; notes?: InputMaybe; reason: Scalars['String']['input']; }; /** Root mutation type */ export type MutationRejectOrganizationInviteArgs = { inviteId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRejectPayoutRequestArgs = { id: Scalars['ID']['input']; reason: Scalars['String']['input']; }; /** Root mutation type */ export type MutationRejectProductArgs = { id: Scalars['ID']['input']; reason: Scalars['String']['input']; }; /** Root mutation type */ export type MutationRejectPublisherArgs = { id: Scalars['ID']['input']; reason: Scalars['String']['input']; }; /** Root mutation type */ export type MutationRejectReviewArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRejectWaitlistArgs = { input: RejectWaitlistInput; }; /** Root mutation type */ export type MutationReleaseLegalHoldArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationReleaseSuppressionArgs = { input: ReleaseSuppressionInput; }; /** Root mutation type */ export type MutationRemoveAgentSkillsArgs = { id: Scalars['ID']['input']; skills: Array; }; /** Root mutation type */ export type MutationRemoveAppLicenseArgs = { applicationId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRemoveAppsFromCollectionArgs = { appIds: Array; id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRemoveDeveloperOrgMemberArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRemoveDeveloperOrgPickupAddressArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRemoveFromCartArgs = { cartItemId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationRemoveFromWaitlistArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRemoveFromWishlistArgs = { productId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRemoveInterviewerFromRoundArgs = { interviewerId: Scalars['ID']['input']; roundId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRemoveOrganizationMemberArgs = { organizationId: Scalars['String']['input']; userId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationRemovePasskeyArgs = { credentialId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationRemovePermissionOverrideArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRemovePublicKeyArgs = { keyId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRemoveRoleDefaultPermissionArgs = { resourceType: Scalars['String']['input']; roleId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRemoveRoleFromActorArgs = { assignmentId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRemoveRolePermissionOverrideArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRemoveSubscribersFromListArgs = { listId: Scalars['ID']['input']; subscriberIds: Array; }; /** Root mutation type */ export type MutationRemoveSuppressionArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRemoveTagFromApplicationArgs = { input: RemoveTagFromApplicationInput; }; /** Root mutation type */ export type MutationRemoveTenantMemberArgs = { tenantId: Scalars['ID']['input']; userId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRemoveTicketTagsArgs = { id: Scalars['ID']['input']; tags: Array; }; /** Root mutation type */ export type MutationRemoveUserFeatureFlagPreferenceArgs = { featureFlagId: Scalars['String']['input']; workspaceId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationRemoveVisibilityRuleArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRemoveWorkspaceFeatureFlagOverrideArgs = { featureFlagId: Scalars['String']['input']; workspaceId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationRemoveWorkspaceMemberArgs = { userId: Scalars['String']['input']; workspaceId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationRemoveWorkspaceMetadataArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRenamePasskeyArgs = { credentialId: Scalars['String']['input']; name: Scalars['String']['input']; }; /** Root mutation type */ export type MutationRenewProductEntitlementArgs = { expiresAt: Scalars['DateTime']['input']; id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationReopenSupportTicketArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationReorderCollectionAppsArgs = { appIds: Array; id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationReorderFaQsArgs = { faqIds: Array; }; /** Root mutation type */ export type MutationReorderTicketCategoriesArgs = { categoryIds: Array; }; /** Root mutation type */ export type MutationReorderTourStepsArgs = { stepIds: Array; tourId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationReplaceApplicationTagsArgs = { input: ReplaceApplicationTagsInput; }; /** Root mutation type */ export type MutationReplaceChannelConnectionTagsArgs = { input: ReplaceChannelConnectionTagsInput; }; /** Root mutation type */ export type MutationReplaceChannelTagsArgs = { input: ReplaceChannelTagsInput; }; /** Root mutation type */ export type MutationReplaceStoreProductTagsArgs = { input: ReplaceStoreProductTagsInput; }; /** Root mutation type */ export type MutationReplyToContactInquiryArgs = { id: Scalars['ID']['input']; message: Scalars['String']['input']; }; /** Root mutation type */ export type MutationReplyToJobApplicationArgs = { id: Scalars['ID']['input']; message: Scalars['String']['input']; }; /** Root mutation type */ export type MutationReplyToReviewArgs = { input: CreateReviewReplyInput; }; /** Root mutation type */ export type MutationReportAppReviewArgs = { details?: InputMaybe; reason: Scalars['String']['input']; reviewId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationReportNodeSandboxBuildStatusArgs = { applicationVersionId: Scalars['ID']['input']; error?: InputMaybe; image?: InputMaybe; secret: Scalars['String']['input']; status: Scalars['String']['input']; }; /** Root mutation type */ export type MutationReprocessWebhookArgs = { eventId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRequestBillingPayoutArgs = { input: RequestPayoutInput; }; /** Root mutation type */ export type MutationRequestCreditWithdrawalArgs = { input: RequestCreditWithdrawalInput; }; /** Root mutation type */ export type MutationRequestDsarIdentityVerificationArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRequestDeveloperOrgPayoutArgs = { organizationId: Scalars['ID']['input']; paymentMethodId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRequestOrderReturnArgs = { input: RequestOrderReturnInput; }; /** Root mutation type */ export type MutationRequestOrgVerificationArgs = { domain?: InputMaybe; evidenceUrl?: InputMaybe; id: Scalars['ID']['input']; method: Scalars['String']['input']; notes?: InputMaybe; }; /** Root mutation type */ export type MutationRequestPasswordResetArgs = { email: Scalars['String']['input']; recaptchaToken?: InputMaybe; }; /** Root mutation type */ export type MutationRequestPayoutArgs = { organizationId: Scalars['ID']['input']; paymentMethodId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRequestReactivationArgs = { email: Scalars['String']['input']; }; /** Root mutation type */ export type MutationRequeueFromDlqArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRescheduleNotificationArgs = { input: RescheduleNotificationInput; }; /** Root mutation type */ export type MutationResendDeveloperOrgInvitationArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationResendOrganizationInviteArgs = { inviteId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationResendSurveyArgs = { surveyId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationResendVerificationEmailArgs = { email: Scalars['String']['input']; }; /** Root mutation type */ export type MutationReserveAssistantAccountBudgetArgs = { input: ReserveAssistantBudgetInput; }; /** Root mutation type */ export type MutationResetCircuitBreakerArgs = { scope: Scalars['String']['input']; scopeValue: Scalars['String']['input']; }; /** Root mutation type */ export type MutationResetPasswordArgs = { newPassword: Scalars['String']['input']; token: Scalars['String']['input']; }; /** Root mutation type */ export type MutationResetTourProgressArgs = { tourId: Scalars['ID']['input']; userId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationResolveBillingAccountArgs = { input: ResolveBillingAccountInput; }; /** Root mutation type */ export type MutationResolveContextWidgetConversationArgs = { input: ResolveContextWidgetConversationInput; }; /** Root mutation type */ export type MutationResolveDlqEntryArgs = { id: Scalars['ID']['input']; resolution: Scalars['String']['input']; }; /** Root mutation type */ export type MutationResolveInventoryAlertArgs = { alertId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationResolveOrderIssueFlagArgs = { id: Scalars['ID']['input']; organizationId?: InputMaybe; }; /** Root mutation type */ export type MutationResolveSupportTicketArgs = { id: Scalars['ID']['input']; resolution?: InputMaybe; }; /** Root mutation type */ export type MutationRespondToAppReviewArgs = { id: Scalars['ID']['input']; response: Scalars['String']['input']; }; /** Root mutation type */ export type MutationRespondToPushMfaArgs = { approved: Scalars['Boolean']['input']; challengeId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRestoreChannelArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRestoreScheduleVersionArgs = { scheduleId: Scalars['ID']['input']; versionId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRestoreTemplateVersionArgs = { templateId: Scalars['ID']['input']; version: Scalars['Int']['input']; }; /** Root mutation type */ export type MutationRestrictAppDelegationInternalArgs = { input: RestrictAppDelegationInternalInput; }; /** Root mutation type */ export type MutationResubscribeArgs = { email: Scalars['String']['input']; platformProductId?: InputMaybe; }; /** Root mutation type */ export type MutationResumeDeveloperOrgSubscriptionArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationResumeSlaArgs = { ticketId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationResumeScheduledJobArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRetirePushDeviceInternalArgs = { errorCode: Scalars['String']['input']; token: Scalars['String']['input']; }; /** Root mutation type */ export type MutationRetireSubprocessorArgs = { id: Scalars['ID']['input']; reason?: InputMaybe; }; /** Root mutation type */ export type MutationRetryBillingOrderCallbackArgs = { billingAccountId: Scalars['ID']['input']; orderId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRetryDeliveryArgs = { attemptId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRetryImportJobArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRetryInvoiceGenerationArgs = { billingAccountId: Scalars['ID']['input']; transactionId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRetryJobExecutionArgs = { executionId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRetryNodeSandboxBuildArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRetryPayoutArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRetryRefundArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRetrySaleCreditSyncArgs = { saleId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRetrySyncOutboxEntryArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRevertTranslationArgs = { id: Scalars['ID']['input']; versionId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationReviewTranslationArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRevokeApiKeyArgs = { keyId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationRevokeAppDelegationInternalArgs = { input: RevokeAppDelegationInternalInput; }; /** Root mutation type */ export type MutationRevokeAppWorkspaceAccessArgs = { input: RevokeAppWorkspaceAccessInput; }; /** Root mutation type */ export type MutationRevokeConsentArgs = { consentId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRevokeDelegationArgs = { id: Scalars['ID']['input']; reason?: InputMaybe; }; /** Root mutation type */ export type MutationRevokeEntitlementSeatArgs = { assigneeId: Scalars['String']['input']; entitlementId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRevokeHmacCredentialArgs = { credentialId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRevokeLicenseArgs = { entitlementId: Scalars['ID']['input']; reason: Scalars['String']['input']; }; /** Root mutation type */ export type MutationRevokeScimTokenArgs = { id: Scalars['ID']['input']; workspaceId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRevokeSeatArgs = { reason?: InputMaybe; seatId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRevokeSessionArgs = { sessionId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRevokeSignedCookieSessionArgs = { sessionId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRevokeUserPlatformConnectionArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRollbackReleaseArgs = { releaseId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRotateApiKeyArgs = { keyId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationRotateAppSecretArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRotateApplicationSigningSecretArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRotateConnectionCredentialsArgs = { id: Scalars['ID']['input']; newCredentials: Scalars['JSON']['input']; }; /** Root mutation type */ export type MutationRunChannelHealthCheckArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRunDsarRequestForSubjectArgs = { dryRun?: InputMaybe; mode: DsarMode; subjectId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationRunMonthlyPayoutsArgs = { period: Scalars['String']['input']; }; /** Root mutation type */ export type MutationRunMyDsarRequestArgs = { dryRun?: InputMaybe; mode: DsarMode; }; /** Root mutation type */ export type MutationSaveSsoConfigArgs = { input: SsoConfigInput; tenantId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationSaveTourAsTemplateArgs = { input: SaveTourAsTemplateInput; tourId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationScheduleNewsletterArgs = { id: Scalars['ID']['input']; scheduledFor: Scalars['DateTime']['input']; }; /** Root mutation type */ export type MutationScheduleNotificationArgs = { input: ScheduleNotificationInput; }; /** Root mutation type */ export type MutationSeedDefaultShortcutsArgs = { productId?: InputMaybe; }; /** Root mutation type */ export type MutationSelectVariantWinnerArgs = { variantId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationSendContextWidgetMessageArgs = { input: SendContextWidgetMessageInput; }; /** Root mutation type */ export type MutationSendExploreMessageArgs = { input: SendExploreMessageInput; }; /** Root mutation type */ export type MutationSendMagicLinkArgs = { context?: InputMaybe; email: Scalars['String']['input']; }; /** Root mutation type */ export type MutationSendMessageArgs = { input: SendMessageInput; }; /** Root mutation type */ export type MutationSendNewsletterArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationSendProductWelcomeEmailArgs = { input: ProductWelcomeEmailInput; }; /** Root mutation type */ export type MutationSendPushMfaChallengeArgs = { deviceId?: InputMaybe; }; /** Root mutation type */ export type MutationSendRoundMessageToCandidateArgs = { input: SendRoundMessageToCandidateInput; }; /** Root mutation type */ export type MutationSendSurveyArgs = { ticketId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationSendTestNewsletterArgs = { id: Scalars['ID']['input']; testEmails: Array; }; /** Root mutation type */ export type MutationServiceRecordEarningArgs = { input: ServiceRecordEarningInput; }; /** Root mutation type */ export type MutationServiceRequestPayoutArgs = { input: ServiceRequestPayoutInput; }; /** Root mutation type */ export type MutationServiceResolvePayoutAccountArgs = { input: ServiceResolvePayoutAccountInput; }; /** Root mutation type */ export type MutationServiceSyncPayoutStatusArgs = { input: ServiceSyncPayoutStatusInput; }; /** Root mutation type */ export type MutationSetAgentAwayArgs = { message?: InputMaybe; }; /** Root mutation type */ export type MutationSetAppLicenseArgs = { applicationId: Scalars['ID']['input']; workspaceCap?: InputMaybe; }; /** Root mutation type */ export type MutationSetBillingAddressArgs = { input: SetBillingAddressInput; }; /** Root mutation type */ export type MutationSetDefaultBillingAccountArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationSetDefaultLanguageArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationSetDefaultPaymentMethodArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationSetDefaultPayoutAccountArgs = { billingAccountId: Scalars['ID']['input']; id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationSetDefaultPickupAddressArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationSetEntitlementSeatLimitArgs = { entitlementId: Scalars['ID']['input']; maxSeats: Scalars['Int']['input']; }; /** Root mutation type */ export type MutationSetNotificationTopicSubscriptionArgs = { input: SetNotificationTopicSubscriptionInput; }; /** Root mutation type */ export type MutationSetRoleDefaultPermissionArgs = { input: SetRoleDefaultPermissionInput; }; /** Root mutation type */ export type MutationSetStoreOrderShippingArgs = { input: SetStoreOrderShippingInput; }; /** Root mutation type */ export type MutationSetTenantEndpointArgs = { endpoint: Scalars['String']['input']; tenantId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationSetUserFeatureFlagPreferenceArgs = { input: SetUserFeatureFlagPreferenceInput; }; /** Root mutation type */ export type MutationSetUserLanguagePreferenceArgs = { input: SetUserLanguagePreferenceInput; }; /** Root mutation type */ export type MutationSetWorkspaceFeatureFlagOverrideArgs = { input: SetWorkspaceFeatureFlagOverrideInput; }; /** Root mutation type */ export type MutationSettleAssistantAccountBudgetArgs = { id: Scalars['ID']['input']; inputTokens: Scalars['Int']['input']; outputTokens: Scalars['Int']['input']; workspaceId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationSetupMfaArgs = { method: MfaMethod; }; /** Root mutation type */ export type MutationShareWorkflowArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationSideloadAppArgs = { input: SideloadAppInput; }; /** Root mutation type */ export type MutationSignInArgs = { input: SignInInput; }; /** Root mutation type */ export type MutationSignUpArgs = { input: SignUpInput; }; /** Root mutation type */ export type MutationSkipRefundArgs = { id: Scalars['ID']['input']; reason: Scalars['String']['input']; }; /** Root mutation type */ export type MutationSkipStepArgs = { stepId: Scalars['ID']['input']; tourId: Scalars['ID']['input']; userId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationSkipTourArgs = { tourId: Scalars['ID']['input']; userId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationSnapshotTopChartsArgs = { window?: InputMaybe; }; /** Root mutation type */ export type MutationSpendCreditsArgs = { input: SpendCreditsInput; }; /** Root mutation type */ export type MutationStartAppTrialArgs = { installationId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationStartStagedRolloutArgs = { initialPercentage?: InputMaybe; releaseId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationStartTourArgs = { deviceType?: InputMaybe; tourId: Scalars['ID']['input']; userId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationSubmitApplicationArgs = { id: Scalars['ID']['input']; notes?: InputMaybe; }; /** Root mutation type */ export type MutationSubmitApplicationForReviewArgs = { id: Scalars['ID']['input']; notes?: InputMaybe; }; /** Root mutation type */ export type MutationSubmitAssignmentResponseArgs = { input: SubmitAssignmentResponseInput; }; /** Root mutation type */ export type MutationSubmitContactInquiryArgs = { input: SubmitContactInquiryInput; }; /** Root mutation type */ export type MutationSubmitExploreFeedbackArgs = { input: SubmitExploreFeedbackInput; }; /** Root mutation type */ export type MutationSubmitInterviewFeedbackArgs = { input: SubmitInterviewFeedbackInput; }; /** Root mutation type */ export type MutationSubmitJobApplicationArgs = { input: SubmitJobApplicationInput; }; /** Root mutation type */ export type MutationSubmitProductArgs = { id: Scalars['ID']['input']; notes?: InputMaybe; }; /** Root mutation type */ export type MutationSubmitPublisherVerificationArgs = { input: SubmitPublisherVerificationInput; }; /** Root mutation type */ export type MutationSubmitSatisfactionSurveyArgs = { input: SubmitSatisfactionSurveyInput; }; /** Root mutation type */ export type MutationSubscribeArgs = { input: SubscribeInput; }; /** Root mutation type */ export type MutationSubscribeToStoreArgs = { storeId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationSupportEraseSubjectArgs = { dryRun?: InputMaybe; subjectId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationSupportExportSubjectArgs = { subjectId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationSuppressIdentifierArgs = { input: SuppressIdentifierInput; }; /** Root mutation type */ export type MutationSuspendAppInstallationArgs = { id: Scalars['ID']['input']; reason: Scalars['String']['input']; }; /** Root mutation type */ export type MutationSuspendDeveloperOrgMemberArgs = { id: Scalars['ID']['input']; reason?: InputMaybe; }; /** Root mutation type */ export type MutationSuspendProductEntitlementArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationSuspendPublisherArgs = { id: Scalars['ID']['input']; reason: Scalars['String']['input']; }; /** Root mutation type */ export type MutationSuspendTenantArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationSuspendWorkspaceArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationSyncStoreSubmissionStatusArgs = { input: SyncStoreSubmissionInput; }; /** Root mutation type */ export type MutationSyncTourStepsArgs = { steps: Array; tourId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationSyncWorkspaceFromWspaceArgs = { input: SyncWorkspaceFromWspaceInput; }; /** Root mutation type */ export type MutationTagChannelArgs = { input: TagChannelInput; }; /** Root mutation type */ export type MutationTagChannelConnectionArgs = { input: TagChannelConnectionInput; }; /** Root mutation type */ export type MutationTagStoreProductArgs = { input: TagStoreProductInput; }; /** Root mutation type */ export type MutationTestConnectionHealthArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationTestLdapConnectionArgs = { tenantId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationTestRadiusConnectionArgs = { tenantId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationTestWebhookArgs = { eventType: Scalars['String']['input']; id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationToggleAddOnArgs = { id: Scalars['ID']['input']; status: Scalars['Boolean']['input']; }; /** Root mutation type */ export type MutationToggleFeaturedArgs = { state: Scalars['Boolean']['input']; storeProductId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationToggleKeyboardShortcutArgs = { id: Scalars['ID']['input']; isEnabled: Scalars['Boolean']['input']; }; /** Root mutation type */ export type MutationTogglePlanArgs = { planID: Scalars['ID']['input']; status: Scalars['Boolean']['input']; }; /** Root mutation type */ export type MutationTrackTourEventArgs = { input: RecordTourAnalyticsInput; }; /** Root mutation type */ export type MutationTrackTourEventsArgs = { events: Array; }; /** Root mutation type */ export type MutationTransferLicenseArgs = { input: TransferLicenseInput; }; /** Root mutation type */ export type MutationTransferOrgOwnershipArgs = { newOwnerId: Scalars['ID']['input']; organizationId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationTriggerBatchNotificationsArgs = { input: TriggerBatchNotificationsInput; }; /** Root mutation type */ export type MutationTriggerNotificationArgs = { input: TriggerNotificationInput; }; /** Root mutation type */ export type MutationTriggerNotificationWithTemplateArgs = { input: TriggerNotificationWithTemplateInput; }; /** Root mutation type */ export type MutationUnarchiveNotificationArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationUnenrollSubscriberFromAutomationArgs = { automationId: Scalars['ID']['input']; subscriberId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationUninstallAppArgs = { feedback?: InputMaybe; id: Scalars['ID']['input']; reason?: InputMaybe; }; /** Root mutation type */ export type MutationUninstallAppByApplicationArgs = { applicationId: Scalars['ID']['input']; feedback?: InputMaybe; reason?: InputMaybe; workspaceId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationUnlinkDevOrgBillingAccountArgs = { organizationId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationUnlinkTicketsArgs = { linkId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationUnlinkWalletArgs = { walletAddress: Scalars['String']['input']; }; /** Root mutation type */ export type MutationUnlistProductArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationUnpublishFaqArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationUnpublishKnowledgeBaseArticleArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationUnpublishTourArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationUnregisterDeviceTokenArgs = { deviceId: Scalars['String']['input']; productSlug?: InputMaybe; }; /** Root mutation type */ export type MutationUnshareWorkflowArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationUnsubscribeArgs = { email: Scalars['String']['input']; platformProductId?: InputMaybe; }; /** Root mutation type */ export type MutationUnsubscribeFromStoreArgs = { storeId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationUntagChannelArgs = { input: UntagChannelInput; }; /** Root mutation type */ export type MutationUntagChannelConnectionArgs = { input: UntagChannelConnectionInput; }; /** Root mutation type */ export type MutationUntagStoreProductArgs = { input: UntagStoreProductInput; }; /** Root mutation type */ export type MutationUpdateApiKeyArgs = { input: UpdateApiKeyInput; keyId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationUpdateAddOnDetailsArgs = { input: UpdateAddOnsInput; }; /** Root mutation type */ export type MutationUpdateAffiliateCodeArgs = { id: Scalars['ID']['input']; input: UpdateAffiliateCodeInput; }; /** Root mutation type */ export type MutationUpdateAgentProfileArgs = { id: Scalars['ID']['input']; input: UpdateAgentProfileInput; }; /** Root mutation type */ export type MutationUpdateAgentStatusArgs = { input: UpdateAgentStatusInput; }; /** Root mutation type */ export type MutationUpdateAppArgs = { id: Scalars['ID']['input']; input: UpdateAppInput; }; /** Root mutation type */ export type MutationUpdateAppCollectionArgs = { id: Scalars['ID']['input']; input: UpdateAppCollectionInput; }; /** Root mutation type */ export type MutationUpdateAppInstallationArgs = { id: Scalars['ID']['input']; input: UpdateAppInstallationInput; }; /** Root mutation type */ export type MutationUpdateAppReviewArgs = { id: Scalars['ID']['input']; input: UpdateAppReviewInput; }; /** Root mutation type */ export type MutationUpdateApplicationArgs = { id: Scalars['ID']['input']; input: UpdateApplicationInput; }; /** Root mutation type */ export type MutationUpdateApplicationVersionArgs = { id: Scalars['ID']['input']; input: UpdateApplicationVersionInput; }; /** Root mutation type */ export type MutationUpdateAutomationStepArgs = { id: Scalars['ID']['input']; input: UpdateAutomationStepInput; }; /** Root mutation type */ export type MutationUpdateBillingAccountArgs = { input: UpdateBillingAccountInput; }; /** Root mutation type */ export type MutationUpdateCampaignStatsArgs = { id: Scalars['ID']['input']; input: UpdateCampaignStatsInput; }; /** Root mutation type */ export type MutationUpdateCannedResponseArgs = { id: Scalars['ID']['input']; input: UpdateCannedResponseInput; }; /** Root mutation type */ export type MutationUpdateCartItemArgs = { input: UpdateCartItemInput; }; /** Root mutation type */ export type MutationUpdateCartNotesArgs = { notes: Scalars['String']['input']; }; /** Root mutation type */ export type MutationUpdateCategoryArgs = { id: Scalars['ID']['input']; input: UpdateCategoryInput; }; /** Root mutation type */ export type MutationUpdateChannelArgs = { id: Scalars['ID']['input']; input: UpdateChannelInput; }; /** Root mutation type */ export type MutationUpdateChannelOrgSettingsArgs = { input: ChannelOrgSettingsInput; organizationId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationUpdateConnectionArgs = { id: Scalars['ID']['input']; input: UpdateConnectionInput; }; /** Root mutation type */ export type MutationUpdateContactInquiryStatusArgs = { id: Scalars['ID']['input']; input: UpdateContactInquiryStatusInput; }; /** Root mutation type */ export type MutationUpdateContentPageArgs = { id: Scalars['ID']['input']; input: UpdateContentPageInput; }; /** Root mutation type */ export type MutationUpdateCouponArgs = { id: Scalars['ID']['input']; input: UpdateCouponInput; }; /** Root mutation type */ export type MutationUpdateCurrentUserProfileArgs = { input: UpdateUserInput; }; /** Root mutation type */ export type MutationUpdateDsarStatusArgs = { id: Scalars['ID']['input']; input: UpdateDsarStatusInput; }; /** Root mutation type */ export type MutationUpdateDelegationArgs = { id: Scalars['ID']['input']; input: UpdateDelegationInput; }; /** Root mutation type */ export type MutationUpdateDeveloperOrgMemberRoleArgs = { id: Scalars['ID']['input']; permissions?: InputMaybe; role: DeveloperOrgRole; }; /** Root mutation type */ export type MutationUpdateDeveloperOrgPaymentMethodArgs = { id: Scalars['ID']['input']; input: UpdatePaymentMethodInput; }; /** Root mutation type */ export type MutationUpdateDeveloperOrgSubscriptionArgs = { id: Scalars['ID']['input']; input: UpdateSubscriptionInput; }; /** Root mutation type */ export type MutationUpdateDeveloperOrganizationArgs = { id: Scalars['ID']['input']; input: UpdateDeveloperOrganizationInput; }; /** Root mutation type */ export type MutationUpdateDeveloperProfileArgs = { input: UpdateDeveloperProfileInput; userId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationUpdateDiscountArgs = { id: Scalars['ID']['input']; maxUses?: InputMaybe; validUntil?: InputMaybe; }; /** Root mutation type */ export type MutationUpdateEntitlementArgs = { input: UpdateEntitlementInput; }; /** Root mutation type */ export type MutationUpdateFaqArgs = { id: Scalars['ID']['input']; input: UpdateFaqInput; }; /** Root mutation type */ export type MutationUpdateFeatureFlagArgs = { id: Scalars['ID']['input']; input: UpdateFeatureFlagInput; }; /** Root mutation type */ export type MutationUpdateI18nModuleArgs = { id: Scalars['ID']['input']; input: UpdateI18nModuleInput; }; /** Root mutation type */ export type MutationUpdateI18nNamespaceArgs = { id: Scalars['ID']['input']; input: UpdateI18nNamespaceInput; }; /** Root mutation type */ export type MutationUpdateI18nProductArgs = { id: Scalars['ID']['input']; input: UpdateI18nProductInput; }; /** Root mutation type */ export type MutationUpdateInstallationStatusArgs = { id: Scalars['ID']['input']; status: StoreInstallationStatus; }; /** Root mutation type */ export type MutationUpdateInterviewFeedbackArgs = { id: Scalars['ID']['input']; input: UpdateInterviewFeedbackInput; }; /** Root mutation type */ export type MutationUpdateInterviewRoundArgs = { id: Scalars['ID']['input']; input: UpdateInterviewRoundInput; }; /** Root mutation type */ export type MutationUpdateInterviewRoundConfigArgs = { id: Scalars['ID']['input']; input: UpdateInterviewRoundConfigInput; }; /** Root mutation type */ export type MutationUpdateInterviewerArgs = { id: Scalars['ID']['input']; input: UpdateInterviewerInput; }; /** Root mutation type */ export type MutationUpdateJobApplicationStatusArgs = { id: Scalars['ID']['input']; input: UpdateJobApplicationStatusInput; }; /** Root mutation type */ export type MutationUpdateJobAssignmentArgs = { id: Scalars['ID']['input']; input: UpdateJobAssignmentInput; }; /** Root mutation type */ export type MutationUpdateJobPostingArgs = { id: Scalars['ID']['input']; input: UpdateJobPostingInput; }; /** Root mutation type */ export type MutationUpdateKeyboardShortcutArgs = { id: Scalars['ID']['input']; input: UpdateKeyboardShortcutInput; }; /** Root mutation type */ export type MutationUpdateKnowledgeBaseArticleArgs = { id: Scalars['ID']['input']; input: UpdateKnowledgeBaseArticleInput; }; /** Root mutation type */ export type MutationUpdateLanguageArgs = { id: Scalars['ID']['input']; input: UpdateLanguageInput; }; /** Root mutation type */ export type MutationUpdateMyDashboardPreferencesArgs = { input: UpdateDashboardPreferencesInput; }; /** Root mutation type */ export type MutationUpdateMyPreferencesArgs = { input: Scalars['JSON']['input']; }; /** Root mutation type */ export type MutationUpdateNewsletterArgs = { id: Scalars['ID']['input']; input: UpdateNewsletterInput; }; /** Root mutation type */ export type MutationUpdateNewsletterAutomationArgs = { id: Scalars['ID']['input']; input: UpdateAutomationInput; }; /** Root mutation type */ export type MutationUpdateNewsletterListArgs = { id: Scalars['ID']['input']; input: UpdateNewsletterListInput; }; /** Root mutation type */ export type MutationUpdateNewsletterTemplateArgs = { id: Scalars['ID']['input']; input: UpdateNewsletterTemplateInput; saveVersion?: InputMaybe; }; /** Root mutation type */ export type MutationUpdateNewsletterVariantArgs = { id: Scalars['ID']['input']; input: UpdateVariantInput; }; /** Root mutation type */ export type MutationUpdateNotificationArgs = { id: Scalars['ID']['input']; input: UpdateNotificationInput; }; /** Root mutation type */ export type MutationUpdateNotificationHistoryArgs = { id: Scalars['ID']['input']; input: UpdateNotificationHistoryInput; }; /** Root mutation type */ export type MutationUpdateNotificationPreferenceArgs = { id: Scalars['ID']['input']; input: UpdateNotificationPreferenceInput; }; /** Root mutation type */ export type MutationUpdateNotificationTemplateArgs = { id: Scalars['ID']['input']; input: UpdateTemplateInput; }; /** Root mutation type */ export type MutationUpdateNotificationTopicArgs = { id: Scalars['ID']['input']; input: UpdateNotificationTopicInput; }; /** Root mutation type */ export type MutationUpdateOrgLegalInfoArgs = { id: Scalars['ID']['input']; input: UpdateOrgLegalInfoInput; }; /** Root mutation type */ export type MutationUpdateOrgTaxInfoArgs = { id: Scalars['ID']['input']; input: UpdateOrgTaxInfoInput; }; /** Root mutation type */ export type MutationUpdateOrganizationArgs = { id: Scalars['ID']['input']; input: UpdateOrganizationInput; }; /** Root mutation type */ export type MutationUpdateOrganizationMemberArgs = { input: UpdateOrganizationMemberInput; organizationId: Scalars['String']['input']; userId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationUpdatePaymentMethodArgs = { billingAccountId: Scalars['ID']['input']; id: Scalars['ID']['input']; isDefault: Scalars['Boolean']['input']; }; /** Root mutation type */ export type MutationUpdatePayoutAccountArgs = { billingAccountId: Scalars['ID']['input']; id: Scalars['ID']['input']; input: UpdatePayoutAccountInput; }; /** Root mutation type */ export type MutationUpdatePhysicalProductArgs = { id: Scalars['ID']['input']; input: UpdatePhysicalProductInput; }; /** Root mutation type */ export type MutationUpdatePlanArgs = { input: UpdatePlanInput; }; /** Root mutation type */ export type MutationUpdatePlatformProductArgs = { id: Scalars['ID']['input']; input: UpdatePlatformProductInput; }; /** Root mutation type */ export type MutationUpdatePolicyReferenceArgs = { id: Scalars['ID']['input']; input: UpdatePolicyReferenceInput; }; /** Root mutation type */ export type MutationUpdatePressKitAssetArgs = { id: Scalars['ID']['input']; input: UpdatePressKitAssetInput; }; /** Root mutation type */ export type MutationUpdateProductArgs = { input: UpdateProductInput; }; /** Root mutation type */ export type MutationUpdateProductVariantArgs = { id: Scalars['ID']['input']; input: UpdateProductVariantInput; }; /** Root mutation type */ export type MutationUpdatePromotionArgs = { id: Scalars['ID']['input']; input: UpdatePromotionInput; }; /** Root mutation type */ export type MutationUpdatePublisherArgs = { input: UpdatePublisherInput; }; /** Root mutation type */ export type MutationUpdateQuotaArgs = { input: UpdateQuotaInput; }; /** Root mutation type */ export type MutationUpdateRbacConfigArgs = { input: UpdateRbacConfigInput; }; /** Root mutation type */ export type MutationUpdateRecurringBillingPlanArgs = { input: UpdateRecurringBillingInput; }; /** Root mutation type */ export type MutationUpdateResourceArgs = { id: Scalars['ID']['input']; input: UpdateResourceInput; }; /** Root mutation type */ export type MutationUpdateReviewArgs = { id: Scalars['ID']['input']; input: UpdateReviewInput; }; /** Root mutation type */ export type MutationUpdateRoleArgs = { id: Scalars['ID']['input']; input: UpdateRoleInput; }; /** Root mutation type */ export type MutationUpdateRolloutPercentageArgs = { newPercentage: Scalars['Int']['input']; releaseId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationUpdateSlaPolicyArgs = { id: Scalars['ID']['input']; input: UpdateSlaPolicyInput; }; /** Root mutation type */ export type MutationUpdateScheduleTemplateArgs = { id: Scalars['ID']['input']; input: UpdateScheduleTemplateInput; }; /** Root mutation type */ export type MutationUpdateScheduledJobArgs = { id: Scalars['ID']['input']; input: UpdateScheduledJobInput; }; /** Root mutation type */ export type MutationUpdateShippingAddressArgs = { id: Scalars['ID']['input']; input: UpdateShippingAddressInput; }; /** Root mutation type */ export type MutationUpdateShippingMethodArgs = { id: Scalars['ID']['input']; input: UpdateShippingMethodInput; }; /** Root mutation type */ export type MutationUpdateStoreArgs = { id: Scalars['ID']['input']; input: UpdateStoreInput; }; /** Root mutation type */ export type MutationUpdateStoreOrderPaymentStatusArgs = { billingAccountId: Scalars['ID']['input']; currency?: InputMaybe; failureReason?: InputMaybe; isAutoRenew?: InputMaybe; jurisdiction?: InputMaybe; orderId: Scalars['ID']['input']; paidAmount?: InputMaybe; paymentId?: InputMaybe; provider?: InputMaybe; providerSubscriptions?: InputMaybe; status: Scalars['String']['input']; subtotal?: InputMaybe; subtotalExact?: InputMaybe; taxAmount?: InputMaybe; taxRate?: InputMaybe; taxType?: InputMaybe; transactionId?: InputMaybe; }; /** Root mutation type */ export type MutationUpdateSubprocessorArgs = { id: Scalars['ID']['input']; input: SubprocessorUpdateInput; }; /** Root mutation type */ export type MutationUpdateSubscriberArgs = { id: Scalars['ID']['input']; input: UpdateSubscriberInput; }; /** Root mutation type */ export type MutationUpdateSubscriptionEntitlementArgs = { id: Scalars['ID']['input']; input: UpdateSubscriptionEntitlementInput; }; /** Root mutation type */ export type MutationUpdateSubscriptionSeatsArgs = { input: UpdateSubscriptionSeatsInput; }; /** Root mutation type */ export type MutationUpdateSupportMessageArgs = { id: Scalars['ID']['input']; message: Scalars['String']['input']; }; /** Root mutation type */ export type MutationUpdateSupportTicketArgs = { id: Scalars['ID']['input']; input: UpdateSupportTicketInput; }; /** Root mutation type */ export type MutationUpdateSupportTicketStatusArgs = { id: Scalars['ID']['input']; status: SupportTicketStatus; }; /** Root mutation type */ export type MutationUpdateTaxRateArgs = { active?: InputMaybe; description?: InputMaybe; id: Scalars['ID']['input']; rate?: InputMaybe; }; /** Root mutation type */ export type MutationUpdateTenantArgs = { id: Scalars['ID']['input']; input: UpdateTenantInput; }; /** Root mutation type */ export type MutationUpdateTenantMemberRoleArgs = { role: TenantMemberRole; tenantId: Scalars['ID']['input']; userId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationUpdateTicketCategoryArgs = { id: Scalars['ID']['input']; input: UpdateTicketCategoryInput; }; /** Root mutation type */ export type MutationUpdateTicketTemplateArgs = { id: Scalars['ID']['input']; input: UpdateTicketTemplateInput; }; /** Root mutation type */ export type MutationUpdateTourArgs = { id: Scalars['ID']['input']; input: UpdateTourInput; }; /** Root mutation type */ export type MutationUpdateTourMediaArgs = { id: Scalars['ID']['input']; input: UpdateTourMediaInput; }; /** Root mutation type */ export type MutationUpdateTourScheduleArgs = { id: Scalars['ID']['input']; input: UpdateTourScheduleInput; }; /** Root mutation type */ export type MutationUpdateTourStepArgs = { id: Scalars['ID']['input']; input: UpdateTourStepInput; }; /** Root mutation type */ export type MutationUpdateTourTemplateArgs = { id: Scalars['ID']['input']; input: UpdateTourTemplateInput; }; /** Root mutation type */ export type MutationUpdateTranslationArgs = { id: Scalars['ID']['input']; input: UpdateTranslationInput; }; /** Root mutation type */ export type MutationUpdateTranslationKeyArgs = { id: Scalars['ID']['input']; input: UpdateTranslationKeyInput; }; /** Root mutation type */ export type MutationUpdateUserArgs = { id: Scalars['ID']['input']; input: AdminUpdateUserInput; }; /** Root mutation type */ export type MutationUpdateUserPlatformConnectionNotificationsArgs = { id: Scalars['ID']['input']; notificationsEnabled: Scalars['Boolean']['input']; }; /** Root mutation type */ export type MutationUpdateVariantStatsArgs = { id: Scalars['ID']['input']; input: UpdateVariantStatsInput; }; /** Root mutation type */ export type MutationUpdateWebhookArgs = { id: Scalars['ID']['input']; input: UpdateWebhookInput; }; /** Root mutation type */ export type MutationUpdateWorkspaceArgs = { id: Scalars['ID']['input']; input: UpdateWorkspaceInput; }; /** Root mutation type */ export type MutationUpdateWorkspaceMemberArgs = { input: UpdateWorkspaceMemberInput; userId: Scalars['String']['input']; workspaceId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationUpgradeFromTrialArgs = { installationId: Scalars['ID']['input']; planId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationUpgradeOrgTierArgs = { id: Scalars['ID']['input']; tier: DeveloperOrgTier; }; /** Root mutation type */ export type MutationUploadTaxFormArgs = { formType: Scalars['String']['input']; formUrl: Scalars['String']['input']; id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationUpsertComplianceSettingsArgs = { input: UpsertComplianceSettingsInput; platformProductId: Scalars['String']['input']; }; /** Root mutation type */ export type MutationUpsertExternalOidcConfigArgs = { input: ExternalOidcConfigurationInput; }; /** Root mutation type */ export type MutationUpsertOrderFulfillmentArgs = { input: UpsertOrderFulfillmentInput; orderId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationUpsertSeenUserArgs = { input: UpsertSeenUserInput; }; /** Root mutation type */ export type MutationUpsertSourcingOfferArgs = { input: UpsertSourcingOfferInput; }; /** Root mutation type */ export type MutationUpsertUserShippingAddressArgs = { input: UpsertUserShippingAddressInput; }; /** Root mutation type */ export type MutationUseCannedResponseArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationValidateHmacSignatureArgs = { algorithm?: InputMaybe; appId: Scalars['ID']['input']; body: Scalars['String']['input']; signature: Scalars['String']['input']; timestamp: Scalars['String']['input']; }; /** Root mutation type */ export type MutationValidateSignedCookieArgs = { cookieValue: Scalars['String']['input']; }; /** Root mutation type */ export type MutationValidateTokensArgs = { input: ValidateTokensInput; }; /** Root mutation type */ export type MutationVerifyBillingPaymentMethodArgs = { input: VerifyPaymentMethodInput; }; /** Root mutation type */ export type MutationVerifyDsarIdentityArgs = { id: Scalars['ID']['input']; identityProof: Scalars['JSON']['input']; }; /** Root mutation type */ export type MutationVerifyEmailArgs = { token: Scalars['String']['input']; }; /** Root mutation type */ export type MutationVerifyMfaArgs = { input: MfaVerifyInput; }; /** Root mutation type */ export type MutationVerifyPasskeyAuthenticationArgs = { authenticatorData: Scalars['String']['input']; clientDataJSON: Scalars['String']['input']; credentialId: Scalars['String']['input']; signature: Scalars['String']['input']; userHandle?: InputMaybe; }; /** Root mutation type */ export type MutationVerifyPasskeyRegistrationArgs = { attestationObject: Scalars['String']['input']; clientDataJSON: Scalars['String']['input']; credentialId: Scalars['String']['input']; name?: InputMaybe; transports?: InputMaybe>; }; /** Root mutation type */ export type MutationVerifyPaymentMethodArgs = { amounts: Array; id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationVerifyPublisherPayoutMethodArgs = { id: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationVerifyWhatsAppPairingCodeArgs = { channelId: Scalars['ID']['input']; pairingCode: Scalars['String']['input']; phoneNumber: Scalars['String']['input']; }; /** Root mutation type */ export type MutationVoidInvoiceArgs = { billingAccountId: Scalars['ID']['input']; invoiceId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationVoteOnAppReviewArgs = { isHelpful: Scalars['Boolean']['input']; reviewId: Scalars['ID']['input']; }; /** Root mutation type */ export type MutationWithdrawConsentArgs = { input: WithdrawConsentInput; }; /** Filter inputs for `myContactInquiries`. Search and email-filter are deliberately not exposed — the query is already scoped to the caller's email, so a full-text search across `name`/`subject` would only surface inquiries the caller already owns. */ export type MyContactInquiryFilterInput = { /** Filter by inquiry category (exact match against the stored string). */ category?: InputMaybe; /** Filter by product ID */ productId?: InputMaybe; /** Filter by status */ status?: InputMaybe; }; /** Lightweight result for myRoles query - returns only role information */ export type MyRolesResult = { __typename?: 'MyRolesResult'; /** Whether the actor has admin-level access in this scope */ isAdmin: Scalars['Boolean']['output']; /** Whether the actor is the owner of this scope */ isOwner: Scalars['Boolean']['output']; /** Roles assigned to the actor */ roles: Array; }; export type NtlmChallengeResult = { __typename?: 'NTLMChallengeResult'; challenge: Scalars['String']['output']; challengeId: Scalars['ID']['output']; }; export type Newsletter = { __typename?: 'Newsletter'; clickRate?: Maybe; content: Scalars['String']['output']; /** Contextual IDs for filtering and scoping (workspaceId, userId, productId, tenantId, etc.) */ context?: Maybe; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; metadata?: Maybe; openRate?: Maybe; plans?: Maybe; platformProductId: Scalars['String']['output']; previewText?: Maybe; products?: Maybe; recipientCount: Scalars['Int']['output']; recipientType: NewsletterRecipientType; scheduledFor?: Maybe; segmentConfig?: Maybe; sentAt?: Maybe; slug: Scalars['String']['output']; status: NewsletterStatus; subject: Scalars['String']['output']; title: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; }; export type NewsletterAutomation = { __typename?: 'NewsletterAutomation'; context?: Maybe; createdAt: Scalars['DateTime']['output']; description?: Maybe; enabled: Scalars['Boolean']['output']; id: Scalars['ID']['output']; metadata?: Maybe; name: Scalars['String']['output']; platformProductId: Scalars['String']['output']; subscriberCount: Scalars['Int']['output']; trigger: Scalars['JSON']['output']; updatedAt: Scalars['DateTime']['output']; }; export type NewsletterBounce = { __typename?: 'NewsletterBounce'; bounceType: BounceType; bouncedAt: Scalars['DateTime']['output']; campaignId: Scalars['String']['output']; diagnosticCode?: Maybe; email: Scalars['String']['output']; id: Scalars['ID']['output']; reason?: Maybe; subscriberId: Scalars['String']['output']; }; export type NewsletterCampaign = { __typename?: 'NewsletterCampaign'; bounceCount: Scalars['Int']['output']; clickCount: Scalars['Int']['output']; /** Contextual IDs for filtering and scoping (workspaceId, userId, productId, tenantId, etc.) */ context?: Maybe; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; newsletterId: Scalars['String']['output']; openCount: Scalars['Int']['output']; segment?: Maybe; sentCount: Scalars['Int']['output']; subject: Scalars['String']['output']; }; export type NewsletterComplaint = { __typename?: 'NewsletterComplaint'; campaignId: Scalars['String']['output']; complainedAt: Scalars['DateTime']['output']; complaintType?: Maybe; email: Scalars['String']['output']; feedbackType?: Maybe; id: Scalars['ID']['output']; subscriberId: Scalars['String']['output']; }; export type NewsletterComplianceSettings = { __typename?: 'NewsletterComplianceSettings'; allowResubscribe: Scalars['Boolean']['output']; analyticsRetention: Scalars['Int']['output']; collectReasons: Scalars['Boolean']['output']; doubleOptIn: Scalars['Boolean']['output']; id: Scalars['ID']['output']; inactiveCleanup: Scalars['Int']['output']; physicalAddress?: Maybe; platformProductId: Scalars['String']['output']; privacyPolicyUrl?: Maybe; unsubscribeUrl?: Maybe; }; export type NewsletterConsent = { __typename?: 'NewsletterConsent'; consentType: Scalars['String']['output']; granted: Scalars['Boolean']['output']; grantedAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; ipAddress?: Maybe; revokedAt?: Maybe; source?: Maybe; subscriberId: Scalars['String']['output']; userAgent?: Maybe; }; /** Newsletter-specific context output type. Returns the stored context for each record. Module-specific to avoid federation conflicts with OperationContext in other subgraphs. */ export type NewsletterContext = { __typename?: 'NewsletterContext'; /** Additional custom context as JSON */ custom?: Maybe; /** Organization ID for organization-level scoping */ organizationId?: Maybe; /** Product ID for product-level scoping */ productId?: Maybe; /** Project ID for project-level scoping */ projectId?: Maybe; /** Referring URL the visitor submitted from */ referrer?: Maybe; /** Signup source, e.g. "website" — set by the website SDK waitlist/newsletter forms */ source?: Maybe; /** Tenant ID for tenant-level scoping */ tenantId?: Maybe; /** Client-side ISO timestamp of the submission */ timestamp?: Maybe; /** User ID for user-level scoping */ userId?: Maybe; /** Workspace ID for workspace-level scoping */ workspaceId?: Maybe; }; /** Newsletter context filter input for querying records by context. Supports exact match filtering on context fields. */ export type NewsletterContextFilterInput = { /** Filter by organization ID */ organizationId?: InputMaybe; /** Filter by product ID */ productId?: InputMaybe; /** Filter by project ID */ projectId?: InputMaybe; /** Filter by tenant ID */ tenantId?: InputMaybe; /** Filter by user ID */ userId?: InputMaybe; /** Filter by workspace ID */ workspaceId?: InputMaybe; }; /** Newsletter context input for filtering and scoping data. All fields are optional and can be extended as needed. */ export type NewsletterContextInput = { /** Additional custom context as JSON */ custom?: InputMaybe; /** Organization ID for organization-level scoping */ organizationId?: InputMaybe; /** Product ID for product-level scoping */ productId?: InputMaybe; /** Project ID for project-level scoping */ projectId?: InputMaybe; /** Referring URL the visitor submitted from */ referrer?: InputMaybe; /** Signup source, e.g. "website" — set by the website SDK waitlist/newsletter forms */ source?: InputMaybe; /** Tenant ID for tenant-level scoping */ tenantId?: InputMaybe; /** Client-side ISO timestamp of the submission */ timestamp?: InputMaybe; /** User ID for user-level scoping */ userId?: InputMaybe; /** Workspace ID for workspace-level scoping */ workspaceId?: InputMaybe; }; export type NewsletterEraseResult = { __typename?: 'NewsletterEraseResult'; anonymised: Scalars['Int']['output']; dryRun: Scalars['Boolean']['output']; notes?: Maybe; purged: Scalars['Int']['output']; retainedForLegalReason?: Maybe; service: Scalars['String']['output']; }; export declare enum NewsletterExportFormat { Csv = "CSV", Json = "JSON", Po = "PO", Xliff = "XLIFF", Xlsx = "XLSX" } export type NewsletterFilterInput = { /** Filter by newsletter context (workspaceId, userId, productId, tenantId, etc.) */ context?: InputMaybe; platformProductId?: InputMaybe; search?: InputMaybe; status?: InputMaybe; }; export type NewsletterList = { __typename?: 'NewsletterList'; context?: Maybe; createdAt: Scalars['DateTime']['output']; description?: Maybe; id: Scalars['ID']['output']; metadata?: Maybe; name: Scalars['String']['output']; platformProductId: Scalars['String']['output']; subscriberCount: Scalars['Int']['output']; updatedAt: Scalars['DateTime']['output']; }; export type NewsletterListFilterInput = { context?: InputMaybe; platformProductId?: InputMaybe; search?: InputMaybe; }; export type NewsletterPaginationInput = { cursor?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; }; export type NewsletterRecipientEstimate = { __typename?: 'NewsletterRecipientEstimate'; breakdown?: Maybe; estimatedCount: Scalars['Int']['output']; recipientType: NewsletterRecipientType; }; export declare enum NewsletterRecipientType { All = "ALL", Plan = "PLAN", Product = "PRODUCT", Segment = "SEGMENT" } export type NewsletterStats = { __typename?: 'NewsletterStats'; averageClickRate?: Maybe; averageOpenRate?: Maybe; totalNewsletters: Scalars['Int']['output']; totalSent: Scalars['Int']['output']; totalSubscribers: Scalars['Int']['output']; }; export declare enum NewsletterStatus { Canceled = "CANCELED", Draft = "DRAFT", Scheduled = "SCHEDULED", Sent = "SENT" } export type NewsletterSubscriber = { __typename?: 'NewsletterSubscriber'; /** True when the latest subscribe attempt matched an existing active subscriber. */ alreadySubscribed: Scalars['Boolean']['output']; /** Contextual IDs for filtering and scoping (workspaceId, userId, productId, tenantId, etc.) */ context?: Maybe; email: Scalars['String']['output']; id: Scalars['ID']['output']; metadata?: Maybe; platformProductId: Scalars['String']['output']; status: NewsletterSubscriptionStatus; subscribed: Scalars['Boolean']['output']; subscribedAt: Scalars['DateTime']['output']; unsubscribedAt?: Maybe; userId?: Maybe; }; export declare enum NewsletterSubscriptionStatus { Active = "ACTIVE", Paused = "PAUSED", Unsubscribed = "UNSUBSCRIBED" } export type NewsletterSuppression = { __typename?: 'NewsletterSuppression'; addedAt: Scalars['DateTime']['output']; email: Scalars['String']['output']; id: Scalars['ID']['output']; metadata?: Maybe; platformProductId: Scalars['String']['output']; reason: Scalars['String']['output']; source?: Maybe; }; export type NewsletterTemplate = { __typename?: 'NewsletterTemplate'; category?: Maybe; context?: Maybe; createdAt: Scalars['DateTime']['output']; description?: Maybe; html: Scalars['String']['output']; id: Scalars['ID']['output']; isPublic: Scalars['Boolean']['output']; metadata?: Maybe; name: Scalars['String']['output']; platformProductId: Scalars['String']['output']; thumbnail?: Maybe; updatedAt: Scalars['DateTime']['output']; version: Scalars['Int']['output']; }; export type NewsletterTemplateFilterInput = { category?: InputMaybe; context?: InputMaybe; isPublic?: InputMaybe; platformProductId?: InputMaybe; search?: InputMaybe; }; export type NewsletterTemplateVersion = { __typename?: 'NewsletterTemplateVersion'; changes?: Maybe; createdAt: Scalars['DateTime']['output']; createdBy?: Maybe; html: Scalars['String']['output']; id: Scalars['ID']['output']; templateId: Scalars['String']['output']; version: Scalars['Int']['output']; }; export type NewsletterVariant = { __typename?: 'NewsletterVariant'; clickCount: Scalars['Int']['output']; clickRate?: Maybe; content: Scalars['String']['output']; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; isWinner: Scalars['Boolean']['output']; name: Scalars['String']['output']; newsletterId: Scalars['String']['output']; openCount: Scalars['Int']['output']; openRate?: Maybe; percentage: Scalars['Int']['output']; sentCount: Scalars['Int']['output']; subject: Scalars['String']['output']; }; export type NewsletterWaitlist = { __typename?: 'NewsletterWaitlist'; company?: Maybe; /** Contextual IDs for filtering and scoping (workspaceId, userId, productId, tenantId, etc.) */ context?: Maybe; createdAt: Scalars['DateTime']['output']; email: Scalars['String']['output']; id: Scalars['ID']['output']; name?: Maybe; platformProductId: Scalars['String']['output']; processedAt?: Maybe; processedBy?: Maybe; reason?: Maybe; rejectionReason?: Maybe; status: NewsletterWaitlistStatus; updatedAt: Scalars['DateTime']['output']; }; export declare enum NewsletterWaitlistStatus { Approved = "APPROVED", Pending = "PENDING", Rejected = "REJECTED" } /** One observed run of the "Deploy Devportal Node" GitHub Actions workflow, polled from run history rather than pushed via callback — see workers/nodeSandboxBuildPoll.ts. applicationVersionId/slug/version are best-effort, parsed from the run's title; null on runs from before the workflow embedded them, or a title that didn't parse. */ export type NodeSandboxBuildCheck = { __typename?: 'NodeSandboxBuildCheck'; applicationVersionId?: Maybe; checkedAt: Scalars['DateTime']['output']; failureStep?: Maybe; id: Scalars['ID']['output']; runConclusion?: Maybe; runId: Scalars['String']['output']; runStartedAt?: Maybe; runStatus: Scalars['String']['output']; runUpdatedAt?: Maybe; runUrl: Scalars['String']['output']; slug?: Maybe; version?: Maybe; }; export type NodeSandboxBuildCheckConnection = { __typename?: 'NodeSandboxBuildCheckConnection'; edges: Array; pageInfo: PageInfo; totalCount: Scalars['Int']['output']; }; export type NodeSandboxBuildCheckEdge = { __typename?: 'NodeSandboxBuildCheckEdge'; cursor: Scalars['String']['output']; node: NodeSandboxBuildCheck; }; /** Result of a pollNodeSandboxBuildChecks call. `skipped: true` means no GitHub Actions run history was fetched this call (token unset or the GitHub API call failed) — `recorded` is only meaningful when `skipped` is false. */ export type NodeSandboxBuildPollResult = { __typename?: 'NodeSandboxBuildPollResult'; recorded: Scalars['Int']['output']; skipped: Scalars['Boolean']['output']; }; export type Notification = { __typename?: 'Notification'; actions: Array; appName?: Maybe; archivedAt?: Maybe; /** Platform type used for delivery (EMAIL, SMS, etc.) */ channel: NotificationChannel; /** Channel instance ID from channel service (if used) */ channelId?: Maybe; channelServiceRef?: Maybe; clickedAt?: Maybe; createdAt: Scalars['DateTime']['output']; data?: Maybe; deliveredAt?: Maybe; deliveryStatus?: Maybe; email?: Maybe; errorCode?: Maybe; errorMessage?: Maybe; events: Array; expiresAt?: Maybe; externalId?: Maybe; failedAt?: Maybe; htmlMessage?: Maybe; id: Scalars['ID']['output']; isRead: Scalars['Boolean']['output']; media: Array; message: Scalars['String']['output']; metadata?: Maybe; openedAt?: Maybe; priority: NotificationPriority; readAt?: Maybe; recipientEmail?: Maybe; recipientPhone?: Maybe; recipientToken?: Maybe; redirectUrl?: Maybe; scheduledFor?: Maybe; scheduledNotification?: Maybe; sentAt?: Maybe; sms?: Maybe; status: NotificationStatus; subject?: Maybe; templateId?: Maybe; templateVersion?: Maybe; timezone?: Maybe; title: Scalars['String']['output']; topic?: Maybe; topicId?: Maybe; trackClicks: Scalars['Boolean']['output']; trackOpens: Scalars['Boolean']['output']; triggerStatus: TriggerStatus; triggeredAt?: Maybe; type: NotificationType; updatedAt: Scalars['DateTime']['output']; user?: Maybe; userId: Scalars['ID']['output']; }; export type NotificationAction = { __typename?: 'NotificationAction'; actionType?: Maybe; id: Scalars['String']['output']; label: Scalars['String']['output']; metadata?: Maybe; style?: Maybe; url: Scalars['String']['output']; }; export type NotificationActionInput = { actionType?: InputMaybe; id?: InputMaybe; label: Scalars['String']['input']; metadata?: InputMaybe; style?: InputMaybe; url: Scalars['String']['input']; }; export type NotificationBatchResult = { __typename?: 'NotificationBatchResult'; batchId: Scalars['String']['output']; results: Scalars['JSON']['output']; totalFailed: Scalars['Int']['output']; totalRequested: Scalars['Int']['output']; totalTriggered: Scalars['Int']['output']; }; export declare enum NotificationChannel { Discord = "DISCORD", Email = "EMAIL", InApp = "IN_APP", Push = "PUSH", Slack = "SLACK", Sms = "SMS", Teams = "TEAMS", Telegram = "TELEGRAM", Webhook = "WEBHOOK", Whatsapp = "WHATSAPP" } export type NotificationChannelCounts = { __typename?: 'NotificationChannelCounts'; discord: Scalars['Int']['output']; email: Scalars['Int']['output']; inApp: Scalars['Int']['output']; push: Scalars['Int']['output']; slack: Scalars['Int']['output']; sms: Scalars['Int']['output']; teams: Scalars['Int']['output']; telegram: Scalars['Int']['output']; total: Scalars['Int']['output']; webhook: Scalars['Int']['output']; whatsapp: Scalars['Int']['output']; }; export declare enum NotificationDeliveryStatus { Bounced = "BOUNCED", Clicked = "CLICKED", Complained = "COMPLAINED", Delivered = "DELIVERED", Delivering = "DELIVERING", Failed = "FAILED", Opened = "OPENED", Pending = "PENDING", Processing = "PROCESSING", Queued = "QUEUED", Retrying = "RETRYING", Sent = "SENT", Unsubscribed = "UNSUBSCRIBED" } export type NotificationEvent = { __typename?: 'NotificationEvent'; channelServiceEventId?: Maybe; createdAt: Scalars['DateTime']['output']; deliveryStatus?: Maybe; details?: Maybe; eventType: NotificationEventType; externalId?: Maybe; id: Scalars['ID']['output']; metadata?: Maybe; notificationId: Scalars['ID']['output']; timestamp: Scalars['DateTime']['output']; updatedAt: Scalars['DateTime']['output']; }; export declare enum NotificationEventType { Bounced = "BOUNCED", Cancelled = "CANCELLED", Clicked = "CLICKED", Complained = "COMPLAINED", Created = "CREATED", Delivered = "DELIVERED", Expired = "EXPIRED", Failed = "FAILED", Opened = "OPENED", Retry = "RETRY", Scheduled = "SCHEDULED", Sent = "SENT", Triggered = "TRIGGERED", Unsubscribed = "UNSUBSCRIBED" } export type NotificationFilterInput = { appName?: InputMaybe; archived?: InputMaybe; channel?: InputMaybe; deliveryStatus?: InputMaybe; endDate?: InputMaybe; isRead?: InputMaybe; priority?: InputMaybe; search?: InputMaybe; startDate?: InputMaybe; status?: InputMaybe; topicId?: InputMaybe; triggerStatus?: InputMaybe; type?: InputMaybe; userId?: InputMaybe; }; /** Durable user-visible history entry for a notification. Backed by notification events. */ export type NotificationHistory = { __typename?: 'NotificationHistory'; channelServiceEventId?: Maybe; createdAt: Scalars['DateTime']['output']; deliveryStatus?: Maybe; details?: Maybe; eventType: NotificationEventType; externalId?: Maybe; id: Scalars['ID']['output']; metadata?: Maybe; notification?: Maybe; notificationId: Scalars['ID']['output']; timestamp: Scalars['DateTime']['output']; updatedAt: Scalars['DateTime']['output']; }; export type NotificationHistoryFilterInput = { deliveryStatus?: InputMaybe; endDate?: InputMaybe; eventType?: InputMaybe; notificationId?: InputMaybe; startDate?: InputMaybe; userId?: InputMaybe; }; export type NotificationHistoryList = { __typename?: 'NotificationHistoryList'; hasMore: Scalars['Boolean']['output']; items: Array; total: Scalars['Int']['output']; }; export type NotificationList = { __typename?: 'NotificationList'; hasMore: Scalars['Boolean']['output']; items: Array; total: Scalars['Int']['output']; }; export type NotificationMedia = { __typename?: 'NotificationMedia'; contentType?: Maybe; kind?: Maybe; label?: Maybe; thumbnailUrl?: Maybe; url: Scalars['String']['output']; }; export type NotificationMediaInput = { contentType?: InputMaybe; kind?: InputMaybe; label?: InputMaybe; thumbnailUrl?: InputMaybe; url: Scalars['String']['input']; }; export type NotificationPaginationInput = { cursor?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; }; export type NotificationPreference = { __typename?: 'NotificationPreference'; channel?: Maybe; createdAt: Scalars['DateTime']['output']; enabled: Scalars['Boolean']['output']; frequency: NotificationPreferenceFrequency; id: Scalars['ID']['output']; metadata?: Maybe; preferenceKey: Scalars['String']['output']; quietHoursEnd?: Maybe; quietHoursStart?: Maybe; scope: NotificationPreferenceScope; timezone?: Maybe; topic?: Maybe; topicId?: Maybe; type?: Maybe; updatedAt: Scalars['DateTime']['output']; userId: Scalars['ID']['output']; }; export type NotificationPreferenceFilterInput = { channel?: InputMaybe; enabled?: InputMaybe; scope?: InputMaybe; topicId?: InputMaybe; type?: InputMaybe; userId?: InputMaybe; }; export declare enum NotificationPreferenceFrequency { DailyDigest = "DAILY_DIGEST", Immediate = "IMMEDIATE", Never = "NEVER", WeeklyDigest = "WEEKLY_DIGEST" } export type NotificationPreferenceList = { __typename?: 'NotificationPreferenceList'; hasMore: Scalars['Boolean']['output']; items: Array; total: Scalars['Int']['output']; }; export declare enum NotificationPreferenceScope { Channel = "CHANNEL", Global = "GLOBAL", Topic = "TOPIC", Type = "TYPE" } export declare enum NotificationPriority { High = "HIGH", Low = "LOW", Medium = "MEDIUM", Urgent = "URGENT" } export type NotificationReadFilterInput = { appName?: InputMaybe; channel?: InputMaybe; endDate?: InputMaybe; startDate?: InputMaybe; type?: InputMaybe; userId: Scalars['ID']['input']; }; export type NotificationStats = { __typename?: 'NotificationStats'; byChannel: Scalars['JSON']['output']; byType: Scalars['JSON']['output']; cancelled: Scalars['Int']['output']; delivered: Scalars['Int']['output']; failed: Scalars['Int']['output']; pending: Scalars['Int']['output']; scheduled: Scalars['Int']['output']; sent: Scalars['Int']['output']; total: Scalars['Int']['output']; triggered: Scalars['Int']['output']; }; export declare enum NotificationStatus { Cancelled = "CANCELLED", Delivered = "DELIVERED", Draft = "DRAFT", Expired = "EXPIRED", Failed = "FAILED", Pending = "PENDING", Read = "READ", Scheduled = "SCHEDULED", Sent = "SENT", Triggered = "TRIGGERED" } export type NotificationTemplate = { __typename?: 'NotificationTemplate'; bodyTemplate: Scalars['String']['output']; /** Default delivery channel for this template */ channel: NotificationChannel; createdAt: Scalars['DateTime']['output']; createdBy: Scalars['ID']['output']; description?: Maybe; enabled: Scalars['Boolean']['output']; htmlTemplate?: Maybe; id: Scalars['ID']['output']; locale: Scalars['String']['output']; metadata?: Maybe; name: Scalars['String']['output']; onBehalfOf: Scalars['ID']['output']; slug: Scalars['String']['output']; subject?: Maybe; type: NotificationType; updatedAt: Scalars['DateTime']['output']; variables: Scalars['JSON']['output']; version: Scalars['Int']['output']; }; export type NotificationTemplateList = { __typename?: 'NotificationTemplateList'; hasMore: Scalars['Boolean']['output']; items: Array; total: Scalars['Int']['output']; }; export type NotificationTopic = { __typename?: 'NotificationTopic'; createdAt: Scalars['DateTime']['output']; description?: Maybe; id: Scalars['ID']['output']; isActive: Scalars['Boolean']['output']; metadata?: Maybe; mySubscription?: Maybe; name: Scalars['String']['output']; slug: Scalars['String']['output']; subscriberCount?: Maybe; type: NotificationType; updatedAt: Scalars['DateTime']['output']; }; export type NotificationTopicFilterInput = { isActive?: InputMaybe; search?: InputMaybe; type?: InputMaybe; }; export type NotificationTopicList = { __typename?: 'NotificationTopicList'; hasMore: Scalars['Boolean']['output']; items: Array; total: Scalars['Int']['output']; }; export type NotificationTopicSubscription = { __typename?: 'NotificationTopicSubscription'; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; metadata?: Maybe; subscribed: Scalars['Boolean']['output']; topic?: Maybe; topicId: Scalars['ID']['output']; unsubscribedAt?: Maybe; updatedAt: Scalars['DateTime']['output']; userId: Scalars['ID']['output']; }; export declare enum NotificationType { Alert = "ALERT", Marketing = "MARKETING", System = "SYSTEM", Transactional = "TRANSACTIONAL" } export type NotifyDuplicateApplicantsInput = { /** Between 1 and 100 unique application IDs — typically every application returned by jobApplications(filter: { duplicateEmail: true, jobPostingId }). Applications are grouped by email address; an email that appears only once among these IDs is skipped (NOT_DUPLICATE), not treated as an error. */ applicationIds: Array; /** Resend even to an email address already notified. Defaults to false. */ force?: InputMaybe; }; /** OAuth authorization URL response */ export type OAuthAuthorizationUrl = { __typename?: 'OAuthAuthorizationUrl'; /** URL expires at */ expiresAt: Scalars['DateTime']['output']; /** State parameter for CSRF protection */ state: Scalars['String']['output']; /** Authorization URL to redirect user to */ url: Scalars['String']['output']; }; export type OAuthInput = { code: Scalars['String']['input']; provider: Scalars['String']['input']; redirectUri?: InputMaybe; }; /** Result for OIDC authorization URL generation */ export type OidcAuthUrlResult = { __typename?: 'OIDCAuthUrlResult'; authUrl: Scalars['String']['output']; codeVerifier: Scalars['String']['output']; nonce: Scalars['String']['output']; relayState?: Maybe; state: Scalars['String']['output']; }; /** Input for OIDC SSO callback */ export type OidcCallbackInput = { code: Scalars['String']['input']; codeVerifier: Scalars['String']['input']; nonce: Scalars['String']['input']; state: Scalars['String']['input']; tenantId: Scalars['String']['input']; }; /** OIDC Provider Configuration (Discovery Endpoint Response) */ export type OidcConfig = { __typename?: 'OIDCConfig'; authorizationEndpoint: Scalars['String']['output']; grantTypesSupported?: Maybe>; issuer: Scalars['String']['output']; jwksUri: Scalars['String']['output']; registrationEndpoint?: Maybe; responseTypesSupported?: Maybe>; scopesSupported?: Maybe>; tokenEndpoint: Scalars['String']['output']; userinfoEndpoint?: Maybe; }; export type OidcHybridConfig = { __typename?: 'OIDCHybridConfig'; authorizationEndpoint: Scalars['String']['output']; supportedGrantTypes: Array; supportedResponseTypes: Array; }; /** Operation context output type. Returns the stored context for each record. */ export type OperationContext = { __typename?: 'OperationContext'; /** App ID for app-level scoping */ appId?: Maybe; /** Additional custom context as JSON */ custom?: Maybe; /** Organization ID for organization-level scoping */ organizationId?: Maybe; /** Project ID for project-level scoping */ projectId?: Maybe; /** Tenant ID for tenant-level scoping */ tenantId?: Maybe; /** User ID for user-level scoping */ userId?: Maybe; /** Workspace ID for workspace-level scoping */ workspaceId?: Maybe; }; /** Order estimate for checkout preview */ export type OrderEstimate = { __typename?: 'OrderEstimate'; /** Available shipping methods for physical items */ availableShippingMethods: Array; /** Currency */ currency: Scalars['String']['output']; /** Digital items subtotal */ digitalSubtotal: Scalars['Float']['output']; /** Physical items subtotal */ physicalSubtotal: Scalars['Float']['output']; /** Shipping cost estimate */ shippingCost?: Maybe; /** Subtotal before shipping and tax */ subtotal: Scalars['Float']['output']; /** Tax amount estimate */ taxAmount?: Maybe; /** Total amount */ total: Scalars['Float']['output']; }; /** Input for calculating order estimate */ export type OrderEstimateInput = { /** Shipping address for physical items (required if cart has physical items) */ shippingAddressId?: InputMaybe; /** Selected shipping method ID */ shippingMethodId?: InputMaybe; /** Target workspace for digital items */ workspaceId?: InputMaybe; }; /** Order fulfillment tracking for physical orders */ export type OrderFulfillment = { __typename?: 'OrderFulfillment'; /** Carrier shipment-creation attempt history (every retry, not just the last failure) — for admin debugging of "what happened, why, and how to fix it". */ attempts: Array; /** When order was cancelled */ cancelledAt?: Maybe; /** Shipping carrier name */ carrier?: Maybe; context?: Maybe; createdAt: Scalars['DateTime']['output']; /** When package was delivered */ deliveredAt?: Maybe; /** Estimated delivery date */ estimatedDeliveryDate?: Maybe; /** When delivery failed */ failedAt?: Maybe; /** Reason for delivery failure */ failureReason?: Maybe; id: Scalars['ID']['output']; /** When package entered transit */ inTransitAt?: Maybe; /** When shipping label was created */ labelCreatedAt?: Maybe; /** URL to shipping label PDF */ labelUrl?: Maybe; metadata?: Maybe; /** Internal notes */ notes?: Maybe; order?: Maybe; orderId: Scalars['String']['output']; /** When package went out for delivery */ outForDeliveryAt?: Maybe; /** Package height */ packageHeight?: Maybe; /** Package length */ packageLength?: Maybe; /** Package weight */ packageWeight?: Maybe; /** Package width */ packageWidth?: Maybe; /** When order was processed */ processedAt?: Maybe; /** Reason for return */ returnReason?: Maybe; /** When package was returned */ returnedAt?: Maybe; /** When order was shipped */ shippedAt?: Maybe; /** Whether signature is required on delivery */ signatureRequired: Scalars['Boolean']['output']; /** URL to signature image */ signatureUrl?: Maybe; /** Name of person who signed */ signedBy?: Maybe; /** Current fulfillment status */ status: FulfillmentStatus; /** Tracking event history */ trackingEvents: Array; /** Tracking number from carrier */ trackingNumber?: Maybe; /** Full tracking URL */ trackingUrl?: Maybe; updatedAt: Scalars['DateTime']['output']; }; /** One carrier shipment-creation attempt — Temporal retries this up to 5 times; this is the full history behind OrderFulfillment.failureReason (which only ever holds the last attempt's message). */ export type OrderFulfillmentAttempt = { __typename?: 'OrderFulfillmentAttempt'; attemptNumber: Scalars['Int']['output']; carrier: Scalars['String']['output']; /** How long this attempt took */ durationMs?: Maybe; /** Error message, when this attempt failed */ errorMessage?: Maybe; /** Carrier's HTTP status code, when available */ errorStatusCode?: Maybe; id: Scalars['ID']['output']; occurredAt: Scalars['DateTime']['output']; succeeded: Scalars['Boolean']['output']; }; export type OrderFulfillmentAttemptsPage = { __typename?: 'OrderFulfillmentAttemptsPage'; attempts: Array; totalCount: Scalars['Int']['output']; }; /** Category of a seller-reported problem fulfilling an order. */ export declare enum OrderIssueCategory { CannotFulfill = "CANNOT_FULFILL", Other = "OTHER", OutOfStock = "OUT_OF_STOCK", WrongAddress = "WRONG_ADDRESS" } /** A seller-reported problem fulfilling a physical order (e.g. out of stock, cannot fulfill, wrong address). Raised by the org that owns the physical line item(s) on the order; resolvable by admin or the org that raised it. */ export type OrderIssueFlag = { __typename?: 'OrderIssueFlag'; category: OrderIssueCategory; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; note?: Maybe; orderId: Scalars['String']['output']; /** Developer organization ID that raised this flag */ raisedByOrgId: Scalars['String']['output']; resolvedAt?: Maybe; resolvedBy?: Maybe; status: OrderIssueStatus; updatedAt: Scalars['DateTime']['output']; }; export declare enum OrderIssueStatus { Open = "OPEN", Resolved = "RESOLVED" } /** Shipping estimate for a selected method and destination */ export type OrderShippingEstimate = { __typename?: 'OrderShippingEstimate'; carrier?: Maybe; cost: Scalars['Float']['output']; currency: Scalars['String']['output']; estimatedDeliveryDate?: Maybe; estimatedMaxDays?: Maybe; estimatedMinDays?: Maybe; itemCount: Scalars['Int']['output']; methodName: Scalars['String']['output']; orderId: Scalars['ID']['output']; shippingMethodId: Scalars['String']['output']; totalWeightKg: Scalars['Float']['output']; }; /** Input for estimating shipping cost for an order */ export type OrderShippingEstimateInput = { /** Destination country code (ISO 3166-1 alpha-2) */ destinationCountry: Scalars['String']['input']; /** Optional destination postal code */ destinationPostalCode?: InputMaybe; /** Store order ID */ orderId: Scalars['ID']['input']; /** Shipping method to evaluate */ shippingMethodId: Scalars['String']['input']; }; export declare enum OrderStatus { Failed = "FAILED", Pending = "PENDING", Processed = "PROCESSED", Refunded = "REFUNDED" } /** Order status change event payload */ export type OrderStatusUpdatedEvent = { __typename?: 'OrderStatusUpdatedEvent'; orderId: Scalars['ID']['output']; status: Scalars['String']['output']; updatedAt: Scalars['String']['output']; workspaceId?: Maybe; }; /** Organization type stub - represents an organization entity from another service This service doesn't own the Organization model, but references it */ export type Organization = { __typename?: 'Organization'; createdAt: Scalars['DateTime']['output']; createdBy?: Maybe; description?: Maybe; id: Scalars['ID']['output']; /** Pending invites for this organization */ invites: Array; logo?: Maybe; /** Member count */ memberCount: Scalars['Int']['output']; /** Members of this organization */ memberships: Array; metadata?: Maybe; name: Scalars['String']['output']; settings?: Maybe; slug: Scalars['String']['output']; status: Scalars['String']['output']; /** The tenant this organization belongs to. Nullable: after the per-user tenant consolidation (BOFF-2652) an organization's `tenantId` may transiently point at a removed/soft-deleted tenant row; the field resolves `null` in that case instead of throwing, so a self-scoped `myOrganizations` list never 500s. */ tenant?: Maybe; tenantId: Scalars['String']['output']; tenantStructureProvisioning: TenantStructureProvisioningState; type: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; website?: Maybe; /** Workspace count */ workspaceCount: Scalars['Int']['output']; /** Workspaces belonging to this organization */ workspaces: Array; }; /** A single persistent organization audit log entry. */ export type OrganizationAuditLog = { __typename?: 'OrganizationAuditLog'; action: Scalars['String']['output']; actorId: Scalars['ID']['output']; actorType: Scalars['String']['output']; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; metadata?: Maybe; organizationId: Scalars['ID']['output']; targetId?: Maybe; targetType: Scalars['String']['output']; }; /** Paginated connection of OrganizationAuditLog entries. */ export type OrganizationAuditLogConnection = { __typename?: 'OrganizationAuditLogConnection'; edges: Array; pageInfo: OrganizationAuditLogPageInfo; totalCount: Scalars['Int']['output']; }; /** Edge wrapper for keyset pagination over OrganizationAuditLog. */ export type OrganizationAuditLogEdge = { __typename?: 'OrganizationAuditLogEdge'; cursor: Scalars['String']['output']; node: OrganizationAuditLog; }; /** Page info for relay-style cursor pagination. */ export type OrganizationAuditLogPageInfo = { __typename?: 'OrganizationAuditLogPageInfo'; endCursor?: Maybe; hasNextPage: Scalars['Boolean']['output']; }; /** Inline export payload for `exportOrganizationsCsv`. Returns CSV text along with a count of rows and a flag if the result was capped at the requested limit. Pattern mirrors `TenantExport` from the tenant module. */ export type OrganizationCsvExport = { __typename?: 'OrganizationCsvExport'; csv: Scalars['String']['output']; format: Scalars['String']['output']; generatedAt: Scalars['DateTime']['output']; rowCount: Scalars['Int']['output']; truncated: Scalars['Boolean']['output']; }; /** Filter input for querying organizations */ export type OrganizationFilterInput = { /** Restrict results to organizations the given user is a member of. Only honoured on `allOrganizations`, which already requires a super_admin or service actor — this does NOT let a regular user enumerate another user's orgs. Primary consumer: DSAR fan-out callers (e.g. global-billing-svc) resolving a subject's org memberships to find their org-scoped billing PII. */ memberUserId?: InputMaybe; search?: InputMaybe; tenantId?: InputMaybe; }; /** Organization invite — represents a pending invitation to join an organization */ export type OrganizationInvite = { __typename?: 'OrganizationInvite'; createdAt: Scalars['DateTime']['output']; email: Scalars['String']['output']; expiresAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; invitedBy: Scalars['String']['output']; invitedUserId?: Maybe; message?: Maybe; organization: Organization; organizationId: Scalars['String']['output']; respondedAt?: Maybe; role: UserRole; status: InviteStatus; updatedAt: Scalars['DateTime']['output']; }; /** Filter for listing invites */ export type OrganizationInviteFilterInput = { status?: InputMaybe; }; /** Paginated list of organization invites */ export type OrganizationInviteList = { __typename?: 'OrganizationInviteList'; hasMore: Scalars['Boolean']['output']; items: Array; limit: Scalars['Int']['output']; offset: Scalars['Int']['output']; total: Scalars['Int']['output']; }; /** Paginated list of organizations */ export type OrganizationList = { __typename?: 'OrganizationList'; hasMore: Scalars['Boolean']['output']; items: Array; limit: Scalars['Int']['output']; offset: Scalars['Int']['output']; total: Scalars['Int']['output']; }; /** Organization member with role and join information */ export type OrganizationMember = { __typename?: 'OrganizationMember'; id: Scalars['ID']['output']; invitedBy?: Maybe; joinedAt: Scalars['DateTime']['output']; organization: Organization; organizationId: Scalars['String']['output']; role: UserRole; userId: Scalars['String']['output']; }; /** Organization-scoped identity for visible members. */ export type OrganizationMemberIdentity = { __typename?: 'OrganizationMemberIdentity'; avatar?: Maybe; displayName: Scalars['String']['output']; email?: Maybe; userId: Scalars['ID']['output']; }; /** Paginated list of organization members */ export type OrganizationMemberList = { __typename?: 'OrganizationMemberList'; hasMore: Scalars['Boolean']['output']; items: Array; limit: Scalars['Int']['output']; offset: Scalars['Int']['output']; total: Scalars['Int']['output']; }; export type OrganizationScheduleQuotas = { __typename?: 'OrganizationScheduleQuotas'; currentActiveSchedules: Scalars['Int']['output']; currentExecutionsThisHour: Scalars['Int']['output']; maxActiveSchedules: Scalars['Int']['output']; maxScheduleExecutionsPerHour: Scalars['Int']['output']; nearingLimit: Scalars['Boolean']['output']; utilizationPercentage: Scalars['Float']['output']; }; /** Override types for permission exceptions */ export declare enum OverrideType { /** Explicitly deny permission (overrides grant) */ Deny = "DENY", /** Explicitly grant permission (overrides denial) */ Grant = "GRANT" } export type PageInfo = { __typename?: 'PageInfo'; endCursor?: Maybe; hasNextPage: Scalars['Boolean']['output']; hasPreviousPage: Scalars['Boolean']['output']; startCursor?: Maybe; }; /** Response type for getTransactionsByBillingAccount query Contains basic billing account info and paginated transactions */ export type PaginatedBillingAccountTransactions = { __typename?: 'PaginatedBillingAccountTransactions'; /** Billing-specific email (for invoices) */ billingEmail?: Maybe; /** When the billing account was created */ createdAt: Scalars['DateTime']['output']; /** Credits available */ creditAmount: Scalars['Float']['output']; /** Default currency */ currency: Scalars['String']['output']; /** Billing account email */ email?: Maybe; /** Whether there are more transactions after current page */ hasMore: Scalars['Boolean']['output']; /** Billing account ID */ id: Scalars['ID']['output']; /** Whether the billing account is active */ isActive: Scalars['Boolean']['output']; /** Billing account name */ name: Scalars['String']['output']; /** Current page number (0-indexed) */ page: Scalars['Int']['output']; /** Number of items per page */ pageSize: Scalars['Int']['output']; /** Tax ID / VAT number */ taxId?: Maybe; /** Total count of transactions */ totalCount: Scalars['Int']['output']; /** List of transactions for current page */ transactions: Array; }; export type PaginatedCreditTransactions = { __typename?: 'PaginatedCreditTransactions'; creditTransactions: Array; hasMore: Scalars['Boolean']['output']; page: Scalars['Int']['output']; pageSize: Scalars['Int']['output']; totalCount: Scalars['Int']['output']; }; /** Paginated invoices response */ export type PaginatedInvoices = { __typename?: 'PaginatedInvoices'; hasMore: Scalars['Boolean']['output']; invoices: Array; page: Scalars['Int']['output']; pageSize: Scalars['Int']['output']; totalCount: Scalars['Int']['output']; totalPages: Scalars['Int']['output']; }; /** Paginated products result */ export type PaginatedProducts = { __typename?: 'PaginatedProducts'; products: Array; totalCount: Scalars['Int']['output']; }; export type PaginatedQuotaAssignments = { __typename?: 'PaginatedQuotaAssignments'; page: Scalars['Int']['output']; pageSize: Scalars['Int']['output']; quotaAssignments: Array; totalCount: Scalars['Int']['output']; totalPages: Scalars['Int']['output']; }; export type PaginatedQuotaAssignmentsWithAnalytics = { __typename?: 'PaginatedQuotaAssignmentsWithAnalytics'; page: Scalars['Int']['output']; pageSize: Scalars['Int']['output']; quotaAssignments: Array; totalCount: Scalars['Int']['output']; totalPages: Scalars['Int']['output']; }; /** Paginated refund records response */ export type PaginatedRefundRecords = { __typename?: 'PaginatedRefundRecords'; hasMore: Scalars['Boolean']['output']; page: Scalars['Int']['output']; pageSize: Scalars['Int']['output']; records: Array; totalCount: Scalars['Int']['output']; }; export type PaginatedResponse = { /** Whether there are more items available */ hasMore: Scalars['Boolean']['output']; /** Items per page limit */ limit: Scalars['Int']['output']; /** Current page number */ page: Scalars['Int']['output']; /** Total count of items matching the filter */ total: Scalars['Int']['output']; }; export type PaginatedSubscriptions = { __typename?: 'PaginatedSubscriptions'; hasMore: Scalars['Boolean']['output']; page: Scalars['Int']['output']; pageSize: Scalars['Int']['output']; subscriptions: Array; totalCount: Scalars['Int']['output']; totalPages: Scalars['Int']['output']; }; export type PaginatedUsages = { __typename?: 'PaginatedUsages'; page: Scalars['Int']['output']; pageSize: Scalars['Int']['output']; totalCount: Scalars['Int']['output']; totalPages: Scalars['Int']['output']; usages: Array; }; /** Pagination input */ export type PaginationInput = { limit?: InputMaybe; offset?: InputMaybe; }; /** Status of a Bundle-2 pairing code flow (WhatsApp / Discord). */ export declare enum PairingStatus { /** User approved the pairing code in the dashboard — dmAllowed set to true. */ Approved = "APPROVED", /** Pairing code expired before the user approved it — a new code must be requested. */ Expired = "EXPIRED", /** Pairing code generated and sent to user; waiting for dashboard approval. */ Pending = "PENDING" } export declare enum PartnerTier { Premier = "PREMIER", Registered = "REGISTERED", Select = "SELECT" } export type PasskeyAuthenticationOptions = { __typename?: 'PasskeyAuthenticationOptions'; allowCredentials?: Maybe; challenge: Scalars['String']['output']; rpId: Scalars['String']['output']; timeout: Scalars['Int']['output']; userVerification: Scalars['String']['output']; }; export type PasskeyInfo = { __typename?: 'PasskeyInfo'; backedUp: Scalars['Boolean']['output']; createdAt: Scalars['DateTime']['output']; credentialId: Scalars['String']['output']; deviceType?: Maybe; id: Scalars['ID']['output']; lastUsedAt?: Maybe; name?: Maybe; }; export type PasskeyRegistrationOptions = { __typename?: 'PasskeyRegistrationOptions'; attestation: Scalars['String']['output']; authenticatorSelection: Scalars['JSON']['output']; challenge: Scalars['String']['output']; excludeCredentials?: Maybe; pubKeyCredParams: Scalars['JSON']['output']; rp: Scalars['JSON']['output']; timeout: Scalars['Int']['output']; user: Scalars['JSON']['output']; }; export type PasskeyRegistrationResult = { __typename?: 'PasskeyRegistrationResult'; credentialId?: Maybe; message?: Maybe; success: Scalars['Boolean']['output']; }; export type PasswordResetRequestResult = { __typename?: 'PasswordResetRequestResult'; message: Scalars['String']['output']; success: Scalars['Boolean']['output']; }; export type Payment = { __typename?: 'Payment'; amount: Scalars['Float']['output']; context?: Maybe; createdAt: Scalars['DateTime']['output']; currency: Scalars['String']['output']; failureReason?: Maybe; gatewayOrderId?: Maybe; gatewayPaymentId?: Maybe; id: Scalars['ID']['output']; invoice?: Maybe; metadata?: Maybe; method: PaymentMethodType; orgId: Scalars['String']['output']; paidAt?: Maybe; provider?: Maybe; status: PaymentStatus; transactionId?: Maybe; updatedAt: Scalars['DateTime']['output']; }; export type PaymentFailure = { __typename?: 'PaymentFailure'; code?: Maybe; context?: Maybe; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; message?: Maybe; metadata?: Maybe; orgId: Scalars['String']['output']; paymentId?: Maybe; reason: Scalars['String']['output']; }; export type PaymentMethod = { __typename?: 'PaymentMethod'; billingAccount?: Maybe; billingAccountId?: Maybe; brand?: Maybe; context?: Maybe; createdAt: Scalars['DateTime']['output']; expiryMonth?: Maybe; expiryYear?: Maybe; id: Scalars['ID']['output']; isDefault: Scalars['Boolean']['output']; isVerified: Scalars['Boolean']['output']; last4?: Maybe; metadata?: Maybe; orgId: Scalars['String']['output']; razorpayCustomerId?: Maybe; razorpayPaymentMethodId?: Maybe; stripeCustomerId?: Maybe; stripePaymentMethodId?: Maybe; transactions: Array; type: PaymentMethodType; updatedAt: Scalars['DateTime']['output']; verifiedAt?: Maybe; }; export declare enum PaymentMethodStatus { Disabled = "DISABLED", FailedVerification = "FAILED_VERIFICATION", PendingVerification = "PENDING_VERIFICATION", Verified = "VERIFIED" } export declare enum PaymentMethodType { BankTransfer = "BANK_TRANSFER", CreditCard = "CREDIT_CARD", Crypto = "CRYPTO", DebitCard = "DEBIT_CARD", Netbanking = "NETBANKING", /** Zero-total purchases (e.g. a 100%-off coupon) — no gateway/method involved. */ None = "NONE", Paypal = "PAYPAL", Wallet = "WALLET" } /** Payment provider configuration for frontend integration Contains only public keys safe to expose to the client */ export type PaymentProviderConfig = { __typename?: 'PaymentProviderConfig'; /** Whether Razorpay is configured and available */ razorpayEnabled: Scalars['Boolean']['output']; /** Razorpay key ID for frontend SDK */ razorpayKeyId?: Maybe; /** Whether Stripe is configured and available */ stripeEnabled: Scalars['Boolean']['output']; /** Stripe publishable key for frontend SDK */ stripePublishableKey?: Maybe; }; /** Preferred payment provider */ export declare enum PaymentProviderPreference { AppleIap = "APPLE_IAP", Auto = "AUTO", GooglePlay = "GOOGLE_PLAY", Razorpay = "RAZORPAY", Stripe = "STRIPE" } export declare enum PaymentStatus { Canceled = "CANCELED", Failed = "FAILED", Pending = "PENDING", Refunded = "REFUNDED", Succeeded = "SUCCEEDED" } export type PayoutAccount = { __typename?: 'PayoutAccount'; accountDetails?: Maybe; accountLast4?: Maybe; billingAccountId: Scalars['ID']['output']; context?: Maybe; country?: Maybe; createdAt: Scalars['DateTime']['output']; currency: Scalars['String']['output']; displayName?: Maybe; externalAccountId?: Maybe; externalContactId?: Maybe; id: Scalars['ID']['output']; isActive: Scalars['Boolean']['output']; isDefault: Scalars['Boolean']['output']; label: Scalars['String']['output']; metadata?: Maybe; ownerUserId?: Maybe; providerPreference: PayoutProvider; status: PayoutAccountStatus; type: PayoutAccountType; updatedAt: Scalars['DateTime']['output']; verificationMethod?: Maybe; verifiedAt?: Maybe; }; export declare enum PayoutAccountStatus { Active = "ACTIVE", Archived = "ARCHIVED", FailedVerification = "FAILED_VERIFICATION", PendingVerification = "PENDING_VERIFICATION" } export declare enum PayoutAccountType { BankAccount = "BANK_ACCOUNT", Upi = "UPI", Wallet = "WALLET" } export type PayoutAdminSummary = { __typename?: 'PayoutAdminSummary'; failedCount: Scalars['Int']['output']; pendingCount: Scalars['Int']['output']; providerBreakdown: Array; statusBreakdown: Array; totalPaidAmount: Scalars['Float']['output']; totalProcessingAmount: Scalars['Float']['output']; totalRequestedAmount: Scalars['Float']['output']; }; export declare enum PayoutMethodType { BankTransfer = "BANK_TRANSFER", Paypal = "PAYPAL", RazorpayX = "RAZORPAY_X", StripeConnect = "STRIPE_CONNECT" } export declare enum PayoutProvider { Auto = "AUTO", Manual = "MANUAL", Razorpay = "RAZORPAY", Stripe = "STRIPE" } export type PayoutProviderBreakdown = { __typename?: 'PayoutProviderBreakdown'; count: Scalars['Int']['output']; provider: PayoutProvider; totalAmount: Scalars['Float']['output']; }; export type PayoutRequest = { __typename?: 'PayoutRequest'; approvedAmount?: Maybe; billingAccountId: Scalars['ID']['output']; context?: Maybe; createdAt: Scalars['DateTime']['output']; currency: Scalars['String']['output']; earningsEntries: Array; externalReference?: Maybe; failedAt?: Maybe; failureReason?: Maybe; id: Scalars['ID']['output']; internalNotes?: Maybe; metadata?: Maybe; paidAt?: Maybe; payoutAccount?: Maybe; payoutAccountId?: Maybe; processedAt?: Maybe; provider: PayoutProvider; /** See PayoutRequestKind — what approving this request actually does. */ requestKind: PayoutRequestKind; requestedAmount: Scalars['Float']['output']; requesterUserId?: Maybe; status: PayoutRequestStatus; updatedAt: Scalars['DateTime']['output']; userNotes?: Maybe; }; export type PayoutRequestConnection = { __typename?: 'PayoutRequestConnection'; hasMore: Scalars['Boolean']['output']; items: Array; totalCount: Scalars['Int']['output']; }; export type PayoutRequestFilterInput = { billingAccountId?: InputMaybe; endDate?: InputMaybe; provider?: InputMaybe; startDate?: InputMaybe; status?: InputMaybe; }; /** Distinguishes what approving a PayoutRequest actually does (BOFF-7192) — shown as separate tabs on the admin Payout page so a $35 credit conversion never gets mistaken for a real bank transfer sitting in the same list: - CREDIT_CONVERSION: a developer's "Request Withdrawal" on their Revenue page. Approving one converts the amount straight into earned credits on their billing account — no external payout account involved, no real money moves, and the request completes (PAID) the moment it's approved. - CASH_PAYOUT: everything else (credit withdrawals from /billing/credits/withdraw, store/affiliate payouts, etc.) — real money leaves the platform via the normal approve → process/mark-paid flow. */ export declare enum PayoutRequestKind { CashPayout = "CASH_PAYOUT", CreditConversion = "CREDIT_CONVERSION" } export declare enum PayoutRequestStatus { Approved = "APPROVED", Canceled = "CANCELED", Failed = "FAILED", Paid = "PAID", Processing = "PROCESSING", Rejected = "REJECTED", Requested = "REQUESTED" } export type PayoutRunLog = { __typename?: 'PayoutRunLog'; createdAt: Scalars['DateTime']['output']; currency: Scalars['String']['output']; id: Scalars['ID']['output']; period: Scalars['String']['output']; processedAt: Scalars['DateTime']['output']; publishersCount: Scalars['Int']['output']; status: Scalars['String']['output']; totalAmount: Scalars['Float']['output']; }; export declare enum PayoutStatus { Cancelled = "CANCELLED", Completed = "COMPLETED", Failed = "FAILED", OnHold = "ON_HOLD", Pending = "PENDING", Processing = "PROCESSING", Scheduled = "SCHEDULED" } export type PayoutStatusBreakdown = { __typename?: 'PayoutStatusBreakdown'; count: Scalars['Int']['output']; status: PayoutRequestStatus; totalAmount: Scalars['Float']['output']; }; export type PeakUsage = { __typename?: 'PeakUsage'; /** Highest usage in a single day */ maxDailyUsage: Scalars['Float']['output']; /** Date of peak usage */ peakDate: Scalars['String']['output']; /** Peak usage hour (0-23) */ peakHour?: Maybe; }; /** Permission audit log entry */ export type PermissionAuditLog = { __typename?: 'PermissionAuditLog'; action: Scalars['String']['output']; actorId: Scalars['String']['output']; actorType: ActorType; allowed: Scalars['Boolean']['output']; context?: Maybe; decisionPath: Scalars['String']['output']; evaluatedAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; opaInput?: Maybe; opaOutput?: Maybe; resourceId?: Maybe; resourceType: Scalars['String']['output']; scopeId: Scalars['String']['output']; }; /** Input for checking a single permission */ export type PermissionCheckInput = { /** Action being performed */ action: Scalars['String']['input']; /** Opaque actor ID from auth-svc */ actorId: Scalars['String']['input']; /** Type of actor */ actorType: ActorType; /** Optional: Additional attributes for OPA policies */ attributes?: InputMaybe; /** Optional: Specific resource ID */ resourceId?: InputMaybe; /** Resource type being accessed */ resourceType: Scalars['String']['input']; /** Scope ID - tenantId for global layer */ scopeId: Scalars['String']['input']; }; /** Result of permission check */ export type PermissionCheckResult = { __typename?: 'PermissionCheckResult'; /** Whether the action is allowed */ allowed: Scalars['Boolean']['output']; /** Path taken to reach the decision (for debugging) */ decisionPath: Scalars['String']['output']; opaPolicy?: Maybe; overrideType?: Maybe; /** Additional details about the decision */ roleLevel?: Maybe; roleName?: Maybe; }; /** Actor-level permission override (exception to role-based permissions) */ export type PermissionOverride = { __typename?: 'PermissionOverride'; action: Scalars['String']['output']; actorId: Scalars['String']['output']; actorType: ActorType; createdAt: Scalars['DateTime']['output']; createdBy: Scalars['String']['output']; expiresAt?: Maybe; id: Scalars['ID']['output']; onBehalfOf?: Maybe; overrideType: OverrideType; priority: Scalars['Int']['output']; reason?: Maybe; /** Optional: Scope to specific resource instance */ resourceId?: Maybe; resourceType: Scalars['String']['output']; scopeId: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; validFrom?: Maybe; validUntil?: Maybe; }; export type PlaceLegalHoldInput = { reason: Scalars['String']['input']; reference?: InputMaybe; subjectEmail?: InputMaybe; /** At least one of subjectId / subjectEmail is required. */ subjectId?: InputMaybe; }; export type Plan = { __typename?: 'Plan'; /** Additional context */ context?: Maybe; /** The timestamp when the plan was created. */ createdAt?: Maybe; /** The currency in which the plan is priced. Defaults to 'USD'. */ currency?: Maybe; /** Prices for all supported currencies with beautiful rounding. Example: { "USD": 2.00, "INR": 199, "EUR": 1.99, "GBP": 1.79 } */ currencyPrices?: Maybe; /** The duration for which the plan is valid (e.g., monthly, yearly). Defaults to 'monthly'. */ duration?: Maybe; /** A list of features provided by this plan, such as quotas or special services. */ features?: Maybe>>; /** Geography-specific price overrides. The billing account's country/state/region plus currency decide whether one of these overrides applies. */ geoPricingOverrides: Array; /** The unique identifier for the Plan, automatically generated as a UUID. */ id?: Maybe; /** Indicates whether the plan is currently active. */ isActive?: Maybe; /** Whether the plan can be purchased directly. False = enterprise/contact-us plan. Hidden from publicPlans. Assign via assignPlanFree mutation. Defaults to true when not explicitly set. */ isPurchasable?: Maybe; /** The offers that user get with plan on the store */ itemEntitlements?: Maybe>>; /** Maximum seats allowed (null = unlimited). */ maxSeats?: Maybe; /** Maximum number of distinct workspaces one subscription to this plan can be activated against via activateSubscriptionForWorkspace(s). Each activated workspace gets the FULL per-workspace quota allotment from this plan (not divided across workspaces). Null means today's implicit single-workspace behavior (treated as 1). */ maxWorkspaces?: Maybe; /** Minimum seats required for this plan (e.g. 5 for Team tier). Null means no minimum. */ minSeats?: Maybe; /** The name of the plan (e.g., 'Basic', 'Pro', 'Enterprise'). */ name?: Maybe; /** Apple App Store / Google Play SKU for this plan. */ nativeProductId?: Maybe; /** The price of the plan. */ price?: Maybe; /** Historical record of price changes for this plan */ priceHistory: Array; /** Per-seat rate used when pricingModel is PER_SEAT. Total charge = pricePerSeat × seatCount. */ pricePerSeat?: Maybe; /** Whether this plan bills at a flat rate or per seat. PER_SEAT plans pass seatCount as quantity to Stripe/Razorpay. */ pricingModel?: Maybe; /** Which product the plan belongs to (reference to product microservice) */ productID?: Maybe; /** Per-plan resource cap overrides as a JSON map of resource-name → integer cap (e.g. { "tag": 5000, "sandbox": 50 }). Consumed by @burdenoff/be-sdk resource-caps; null/empty falls back to SDK tier defaults. */ resourceCaps?: Maybe; /** Per-plan storage cap in bytes. Overrides platform defaults (50MB free / 5GB paid). Null = use the platform default for this plan's pricing tier. */ storageBytesLimit?: Maybe; /** The list of subscriptions associated with this plan. */ subscriptions?: Maybe>>; /** The timestamp when the plan was last updated. */ updatedAt?: Maybe; }; export declare enum PlanDuration { Monthly = "monthly", Yearly = "yearly" } /** Tracks historical price changes for a Plan. A new record is created whenever a plan's price is updated. */ export type PlanPriceHistory = { __typename?: 'PlanPriceHistory'; /** Who made the price change (actor ID) */ changedBy?: Maybe; /** When the price change was recorded */ createdAt: Scalars['DateTime']['output']; /** The currency of the price change */ currency: Scalars['String']['output']; /** Unique identifier */ id: Scalars['ID']['output']; /** The new price after the change */ newPrice: Scalars['Float']['output']; /** The previous price before the change */ oldPrice: Scalars['Float']['output']; /** The plan this price change belongs to */ planId: Scalars['String']['output']; /** Optional reason for the price change */ reason?: Maybe; }; /** Determines how a plan is billed — flat rate or multiplied by seat count. */ export declare enum PlanPricingModel { /** Fixed price regardless of user count (e.g. Free tier, flat addons) */ FlatRate = "FLAT_RATE", /** Price × seatCount per billing cycle. Maps to quantity on Stripe/Razorpay subscription items. */ PerSeat = "PER_SEAT" } export type PlanQuotaInput = { quantity: Scalars['Float']['input']; quotaId: Scalars['ID']['input']; }; export type PlansFilter = { /** Include free plans (price = 0) in the response. Defaults to true. Set to false on user-facing browse pages since free plans are auto-assigned and cannot be purchased. */ includeFree?: InputMaybe; /** Filter plans by product ID. When set, only plans with this productID are returned. */ productId?: InputMaybe; }; /** Delivery results for a single platform in a multi-platform delivery */ export type PlatformDeliveryResult = { __typename?: 'PlatformDeliveryResult'; /** The adapter type that was ultimately used (after failover) */ adapterUsed?: Maybe; /** The platform that was targeted */ platform: ChannelPlatform; /** Per-recipient delivery results for this platform */ recipientResults: Array; /** Whether at least one recipient was delivered successfully */ success: Scalars['Boolean']['output']; }; /** PlatformProduct entity - resolvable via Federation Gateway. Other services can reference PlatformProduct by id or slug. */ export type PlatformProduct = { __typename?: 'PlatformProduct'; /** Number of active users */ activeUsers: Scalars['Int']['output']; /** Total API calls made to this product */ apiCalls: Scalars['Int']['output']; /** Apple App Store URL */ appStoreUrl?: Maybe; /** Product application URL */ appUrl?: Maybe; /** Physical contact address */ contactAddress?: Maybe; /** Primary contact email */ contactEmail?: Maybe; /** Contact phone number */ contactPhone?: Maybe; /** Content pages associated with this product */ contentPages: Array; /** When the product was created */ createdAt: Scalars['DateTime']['output']; /** Product description */ description?: Maybe; /** Product documentation URL */ docsUrl?: Maybe; /** GitHub repository URL */ githubUrl?: Maybe; /** The unique identifier for the platform product */ id: Scalars['ID']['output']; /** Optional product launch/release date (epoch ms on wire as DateTime). Used for countdowns and announcement timing on marketing websites. */ launchDate?: Maybe; /** URL to the product logo */ logoUrl?: Maybe; /** Additional metadata (JSON: tagline, businessDomain, category, company, pricingRange, etc.) */ metadata?: Maybe; /** The product name */ name: Scalars['String']['output']; /** Email for contact form notifications (fallback: contactEmail) */ notificationEmail?: Maybe; /** Open Graph image URL */ ogImage?: Maybe; /** Google Play Store URL */ playStoreUrl?: Maybe; /** reCAPTCHA secret key (server-side) for backend verification. Only accessible via internal gateway (platformProduct query requires auth). The publicProduct query does NOT resolve this field. */ recaptchaSecretKey?: Maybe; /** reCAPTCHA site key (public) for frontend verification */ recaptchaSiteKey?: Maybe; /** Resource links for the website footer "Resources" column (JSON: { docs, community, careers, team, companies, ... }). Keys are free-form; the website SDK renders known keys and silently ignores unknown ones, so new resource types can land in CMS before the SDK ships an icon/label. Precedence for the `docs` key vs the standalone `docsUrl` field: when both are set, the website SDK component prefers `resourceLinks.docs`. `docsUrl` is retained as a legacy fallback and for columns that link to Docs OUTSIDE the Footer Resources column (e.g. the existing Product footer column). */ resourceLinks?: Maybe; /** Rybbit analytics site ID for this product */ rybbitSiteId?: Maybe; /** SEO meta description */ seoDescription?: Maybe; /** SEO keywords (comma-separated) */ seoKeywords?: Maybe; /** SEO page title */ seoTitle?: Maybe; /** Unique slug for URL-friendly identification */ slug: Scalars['String']['output']; /** Social media links (JSON: { twitter, github, discord, linkedin, youtube, instagram, ... }) */ socialLinks?: Maybe; /** Current status of the product */ status: PlatformProductStatus; /** Status page URL */ statusPageUrl?: Maybe; /** Storage used in GB */ storageGB: Scalars['Float']['output']; /** Support email address */ supportEmail?: Maybe; /** Searchable tags for this product (e.g. "analytics", "billing") */ tags: Array; /** Number of tenants using this product */ tenantCount: Scalars['Int']['output']; /** When the product was last updated */ updatedAt: Scalars['DateTime']['output']; /** Uptime percentage */ uptime: Scalars['Float']['output']; /** Product website URL */ website?: Maybe; }; export type PlatformProductFilterInput = { /** Search in name, slug, or description */ search?: InputMaybe; /** Filter by product status */ status?: InputMaybe; }; export type PlatformProductList = { __typename?: 'PlatformProductList'; /** Whether there are more products available */ hasMore: Scalars['Boolean']['output']; /** List of platform products */ items: Array; /** Total count of products */ total: Scalars['Int']['output']; }; /** Aggregate statistics about platform products */ export type PlatformProductStats = { __typename?: 'PlatformProductStats'; /** Number of active (released) products */ active: Scalars['Int']['output']; /** Number of coming soon (unreleased) products */ comingSoon: Scalars['Int']['output']; /** Number of draft products */ draft: Scalars['Int']['output']; /** Total number of products */ total: Scalars['Int']['output']; /** Number of waitlist-gated products */ waitlist: Scalars['Int']['output']; }; export declare enum PlatformProductStatus { Active = "ACTIVE", ComingSoon = "COMING_SOON", Draft = "DRAFT", Waitlist = "WAITLIST" } /** OPA policy reference */ export type PolicyReference = { __typename?: 'PolicyReference'; action: Scalars['String']['output']; createdAt: Scalars['DateTime']['output']; description?: Maybe; id: Scalars['ID']['output']; isActive: Scalars['Boolean']['output']; name: Scalars['String']['output']; opaPackage: Scalars['String']['output']; priority: Scalars['Int']['output']; resourceType: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; }; export type PolicyReferenceFilterInput = { action?: InputMaybe; isActive?: InputMaybe; resourceType?: InputMaybe; }; export type PrepareSupportAttachmentUploadInput = { extension: Scalars['String']['input']; fileName: Scalars['String']['input']; fileSize: Scalars['BigInt']['input']; mimeType: Scalars['String']['input']; ticketId: Scalars['ID']['input']; }; export declare enum PressKitAssetCategory { Banner = "BANNER", BrandGuide = "BRAND_GUIDE", Brochure = "BROCHURE", Contract = "CONTRACT", Document = "DOCUMENT", Logo = "LOGO", PressRelease = "PRESS_RELEASE", Screenshot = "SCREENSHOT" } export type PressKitAssetFilterInput = { /** Filter by category (LOGO, BANNER, BROCHURE, ...) */ category?: InputMaybe; /** Search in title or slug */ search?: InputMaybe; /** Filter by a tag. Matches assets whose tags array contains this value. */ tag?: InputMaybe; /** Filter by visibility level */ visibility?: InputMaybe; }; /** A short-lived presigned upload target. PUT the file bytes to uploadUrl, then call createPressKitAsset with fileUrl. */ export type PressKitAssetUploadUrl = { __typename?: 'PressKitAssetUploadUrl'; expiresAt: Scalars['DateTime']['output']; fileUrl: Scalars['String']['output']; key: Scalars['String']['output']; uploadUrl: Scalars['String']['output']; }; /** Price range in results */ export type PriceRange = { __typename?: 'PriceRange'; max: Scalars['Float']['output']; min: Scalars['Float']['output']; }; export declare enum PricingModel { Free = "FREE", PaidOnetime = "PAID_ONETIME", Subscription = "SUBSCRIPTION" } export type PriorityBreakdown = { __typename?: 'PriorityBreakdown'; count: Scalars['Int']['output']; percentage: Scalars['Float']['output']; priority: SupportTicketPriority; }; export type PrivacyPaginationInput = { limit?: InputMaybe; offset?: InputMaybe; }; /** Result of processing a refund */ export type ProcessRefundResult = { __typename?: 'ProcessRefundResult'; error?: Maybe; gatewayRefundId?: Maybe; refundRecord?: Maybe; success: Scalars['Boolean']['output']; }; /** Reason describing why a user does or does not have product access */ export declare enum ProductAccessReason { InternalDomainAccess = "INTERNAL_DOMAIN_ACCESS", NoAccess = "NO_ACCESS", ProductActive = "PRODUCT_ACTIVE", ProductDraft = "PRODUCT_DRAFT", SuperAdminAccess = "SUPER_ADMIN_ACCESS", WaitlistApproved = "WAITLIST_APPROVED", WaitlistNotJoined = "WAITLIST_NOT_JOINED", WaitlistPending = "WAITLIST_PENDING", WaitlistRejected = "WAITLIST_REJECTED" } /** Result of checking whether the current user can access a specific product */ export type ProductAccessResult = { __typename?: 'ProductAccessResult'; hasAccess: Scalars['Boolean']['output']; product?: Maybe; reason: ProductAccessReason; }; export type ProductAsset = { __typename?: 'ProductAsset'; caption?: Maybe; checksum?: Maybe; createdAt: Scalars['DateTime']['output']; downloadUrl?: Maybe; fileName: Scalars['String']['output']; fileType: ProductAssetType; filesSvcId?: Maybe; id: Scalars['ID']['output']; isCurrent: Scalars['Boolean']['output']; locale?: Maybe; mimeType: Scalars['String']['output']; orderIndex: Scalars['Int']['output']; productId: Scalars['ID']['output']; sizeBytes: Scalars['String']['output']; storageKey?: Maybe; updatedAt: Scalars['DateTime']['output']; uploadedBy: Scalars['String']['output']; version?: Maybe; }; export declare enum ProductAssetType { Banner = "BANNER", FeatureGraphic = "FEATURE_GRAPHIC", Icon = "ICON", Logo = "LOGO", Manifest = "MANIFEST", Screenshot = "SCREENSHOT", Thumbnail = "THUMBNAIL", Video = "VIDEO", Zip = "ZIP" } export type ProductCategory = { __typename?: 'ProductCategory'; context?: Maybe; createdAt: Scalars['DateTime']['output']; description?: Maybe; icon?: Maybe; id: Scalars['ID']['output']; metadata?: Maybe; name: Scalars['String']['output']; parentId?: Maybe; slug: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; }; export type ProductChartSnapshot = { __typename?: 'ProductChartSnapshot'; category?: Maybe; chart: ChartType; country?: Maybe; id: Scalars['ID']['output']; productId: Scalars['ID']['output']; rank: Scalars['Int']['output']; score: Scalars['Float']['output']; snapshotAt: Scalars['DateTime']['output']; storeId?: Maybe; window: Scalars['String']['output']; }; /** A content page (privacy policy, terms of service, etc.) stored in markdown format. Supports global defaults (productId = null) and per-product overrides. */ export type ProductContentPage = { __typename?: 'ProductContentPage'; author?: Maybe; category?: Maybe; content: Scalars['String']['output']; contentFormat: Scalars['String']['output']; createdAt: Scalars['DateTime']['output']; /** Blog/article fields */ excerpt?: Maybe; featured: Scalars['Boolean']['output']; id: Scalars['ID']['output']; isPublished: Scalars['Boolean']['output']; lastUpdated: Scalars['DateTime']['output']; product?: Maybe; productId?: Maybe; publishedAt?: Maybe; readingTime?: Maybe; seoDescription?: Maybe; seoKeywords?: Maybe; seoTitle?: Maybe; slug: Scalars['String']['output']; sortOrder: Scalars['Int']['output']; /** Searchable tags for this page (e.g. "legal", "privacy", "blog", "changelog") */ tags: Array; thumbnail?: Maybe; title: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; version: Scalars['Int']['output']; /** Access control: PUBLIC (no auth), AUTHENTICATED (requires login), INTERNAL (admin only) */ visibility: ContentVisibility; }; export type ProductContentPageList = { __typename?: 'ProductContentPageList'; hasMore: Scalars['Boolean']['output']; items: Array; total: Scalars['Int']['output']; }; export type ProductDownload = { __typename?: 'ProductDownload'; context?: Maybe; downloadedAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; ipAddress?: Maybe; productId: Scalars['String']['output']; userId: Scalars['String']['output']; version?: Maybe; }; export type ProductEntitlement = { __typename?: 'ProductEntitlement'; context?: Maybe; createdAt: Scalars['DateTime']['output']; expiresAt?: Maybe; id: Scalars['ID']['output']; licenseKey?: Maybe; metadata?: Maybe; organizationId?: Maybe; product: StoreProduct; productId: Scalars['String']['output']; purchasedBy: Scalars['String']['output']; status: EntitlementStatus; updatedAt: Scalars['DateTime']['output']; workspaceId?: Maybe; }; export type ProductFilterInput = { category?: InputMaybe; inStock?: InputMaybe; maxPrice?: InputMaybe; minPrice?: InputMaybe; nature?: InputMaybe; publisherId?: InputMaybe; requiresShipping?: InputMaybe; search?: InputMaybe; status?: InputMaybe; tags?: InputMaybe>; type?: InputMaybe; }; export declare enum ProductNature { Digital = "DIGITAL", Physical = "PHYSICAL" } /** A downloadable press/media asset (logo, banner, brochure, document, etc.) scoped to a product. Public by default — shown on the product /press page. */ export type ProductPressKitAsset = { __typename?: 'ProductPressKitAsset'; category: PressKitAssetCategory; createdAt: Scalars['DateTime']['output']; description?: Maybe; fileName?: Maybe; fileSize?: Maybe; fileUrl: Scalars['String']['output']; id: Scalars['ID']['output']; mimeType?: Maybe; product?: Maybe; productId: Scalars['String']['output']; slug: Scalars['String']['output']; sortOrder: Scalars['Int']['output']; tags: Array; thumbnailUrl?: Maybe; title: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; version?: Maybe; /** Access control: PUBLIC (no auth), AUTHENTICATED (login), INTERNAL (admin only) */ visibility: ContentVisibility; }; export type ProductPressKitAssetList = { __typename?: 'ProductPressKitAssetList'; hasMore: Scalars['Boolean']['output']; items: Array; total: Scalars['Int']['output']; }; /** Rating distribution for filter refinement (product ratings) */ export type ProductRatingDistribution = { __typename?: 'ProductRatingDistribution'; fiveStars: Scalars['Int']['output']; fourStars: Scalars['Int']['output']; oneStar: Scalars['Int']['output']; threeStars: Scalars['Int']['output']; twoStars: Scalars['Int']['output']; }; export type ProductRelease = { __typename?: 'ProductRelease'; bundleAssetId?: Maybe; completedAt?: Maybe; countries: Array; createdAt: Scalars['DateTime']['output']; haltedAt?: Maybe; haltedReason?: Maybe; id: Scalars['ID']['output']; manifestAssetId?: Maybe; productId: Scalars['ID']['output']; releaseNotes?: Maybe; reviewNotes?: Maybe; reviewedAt?: Maybe; rolledBackAt?: Maybe; rolloutPercentage: Scalars['Int']['output']; startedAt?: Maybe; status: ReleaseStatus; trackId: Scalars['ID']['output']; version: Scalars['String']['output']; }; export type ProductReleaseAuditEvent = { __typename?: 'ProductReleaseAuditEvent'; actorId: Scalars['String']['output']; createdAt: Scalars['DateTime']['output']; eventType: Scalars['String']['output']; id: Scalars['ID']['output']; notes?: Maybe; releaseId: Scalars['ID']['output']; }; export type ProductReview = { __typename?: 'ProductReview'; comment?: Maybe; context?: Maybe; createdAt: Scalars['DateTime']['output']; helpful: Scalars['Int']['output']; id: Scalars['ID']['output']; product: StoreProduct; productId: Scalars['String']['output']; rating: Scalars['Int']['output']; status: ReviewStatus; title?: Maybe; updatedAt: Scalars['DateTime']['output']; userId: Scalars['String']['output']; verifiedPurchase: Scalars['Boolean']['output']; }; export type ProductReviewReply = { __typename?: 'ProductReviewReply'; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; productId: Scalars['ID']['output']; replierId: Scalars['String']['output']; replierType: Scalars['String']['output']; replyText: Scalars['String']['output']; reviewId: Scalars['ID']['output']; updatedAt: Scalars['DateTime']['output']; }; export declare enum ProductStatus { Archived = "ARCHIVED", Deprecated = "DEPRECATED", Draft = "DRAFT", PendingReview = "PENDING_REVIEW", Published = "PUBLISHED", Rejected = "REJECTED", Unlisted = "UNLISTED" } export type ProductTag = { __typename?: 'ProductTag'; context?: Maybe; createdAt: Scalars['DateTime']['output']; description?: Maybe; id: Scalars['ID']['output']; name: Scalars['String']['output']; slug: Scalars['String']['output']; }; export type ProductTourStatistics = { __typename?: 'ProductTourStatistics'; averageCompletionRate: Scalars['Float']['output']; productId: Scalars['String']['output']; publishedTours: Scalars['Int']['output']; totalCompletions: Scalars['Int']['output']; totalSkips: Scalars['Int']['output']; totalTours: Scalars['Int']['output']; totalViews: Scalars['Int']['output']; tourBreakdown: Array; }; export declare enum ProductType { Accessory = "ACCESSORY", Agent = "AGENT", App = "APP", Apparel = "APPAREL", Book = "BOOK", Botapp = "BOTAPP", Collectible = "COLLECTIBLE", Component = "COMPONENT", Console = "CONSOLE", Consumable = "CONSUMABLE", Dashboard = "DASHBOARD", Datasink = "DATASINK", Equipment = "EQUIPMENT", Extension = "EXTENSION", Hardware = "HARDWARE", Integration = "INTEGRATION", Merchandise = "MERCHANDISE", Node = "NODE", Parser = "PARSER", Plugin = "PLUGIN", Template = "TEMPLATE", Theme = "THEME", Vibemodule = "VIBEMODULE", Widget = "WIDGET", Workflow = "WORKFLOW" } /** Product variant for physical products (e.g., size, color combinations) */ export type ProductVariant = { __typename?: 'ProductVariant'; /** Original price for showing discounts */ compareAtPrice?: Maybe; context?: Maybe; createdAt: Scalars['DateTime']['output']; /** Sort order for display */ displayOrder: Scalars['Int']['output']; id: Scalars['ID']['output']; /** Images specific to this variant */ imageUrls: Array; /** Whether this variant is available for purchase */ isActive: Scalars['Boolean']['output']; /** Low stock alert threshold */ lowStockThreshold?: Maybe; metadata?: Maybe; /** Display name for the variant (e.g., "Large / Blue") */ name: Scalars['String']['output']; /** Variant options as JSON (e.g., {"size": "L", "color": "Blue"}) */ options: Scalars['JSON']['output']; /** Override price for this variant (null = use base product price) */ price?: Maybe; /** Stock Keeping Unit for this variant */ sku?: Maybe; /** Stock quantity for this specific variant */ stockQuantity: Scalars['Int']['output']; storeProduct?: Maybe; storeProductId: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; /** Variant-specific weight */ weight?: Maybe; /** Weight unit for this variant */ weightUnit?: Maybe; }; export type ProductWelcomeEmailInput = { /** URL the user just landed on (e.g. https://app.vibecontrols.com). Used as the primary CTA target if the template doesn't override it. */ appUrl?: InputMaybe; /** Idempotency key — same key + same input = at-most-once delivery. Recommended format: "welcome::". */ idempotencyKey?: InputMaybe; /** Organization ID for multi-tenancy / connection lookup. */ organizationId: Scalars['ID']['input']; /** PlatformProduct.slug — e.g. "vibecontrols", "botlit", "workspaces". Falls back to the `default` template if no matching template is registered. */ productSlug: Scalars['String']['input']; /** Recipient email address. */ recipientEmail: Scalars['String']['input']; /** Recipient display name for the greeting line. Defaults to "there" if empty. First name is preferred. */ recipientName?: InputMaybe; /** Optional unsubscribe URL injected into the footer. */ unsubscribeUrl?: InputMaybe; }; export type PromoCode = { __typename?: 'PromoCode'; applicableProductIds: Array; code: Scalars['String']['output']; currency: Scalars['String']['output']; description?: Maybe; expiresAt?: Maybe; id: Scalars['ID']['output']; isActive: Scalars['Boolean']['output']; maxRedemptions?: Maybe; minOrderAmount?: Maybe; redemptionsCount: Scalars['Int']['output']; startsAt?: Maybe; storeId?: Maybe; type: PromoCodeType; value: Scalars['Float']['output']; }; export declare enum PromoCodeType { AmountOff = "AMOUNT_OFF", FreeTrialExtension = "FREE_TRIAL_EXTENSION", PercentOff = "PERCENT_OFF" } export type PromoCodeValidationResult = { __typename?: 'PromoCodeValidationResult'; discount?: Maybe; promoCode?: Maybe; reason?: Maybe; valid: Scalars['Boolean']['output']; }; export type Promotion = { __typename?: 'Promotion'; applicablePlanIds: Array; applicableProductIds: Array; bonusMonths: Scalars['Int']['output']; createdAt: Scalars['DateTime']['output']; createdBy: Scalars['String']['output']; currentRedemptions: Scalars['Int']['output']; description?: Maybe; expiresAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; isActive: Scalars['Boolean']['output']; maxRedemptions?: Maybe; name: Scalars['String']['output']; startsAt: Scalars['DateTime']['output']; updatedAt: Scalars['DateTime']['output']; }; /** Input for provisioning a dedicated tenant */ export type ProvisionDedicatedTenantInput = { customDomain?: InputMaybe; endpoint?: InputMaybe; region?: InputMaybe; tenantId: Scalars['ID']['input']; }; export type ProvisionFreeTierForWorkspaceResult = { __typename?: 'ProvisionFreeTierForWorkspaceResult'; /** Number of WORKSPACE-scoped quota rows assigned to the workspace in this call. */ assignedQuotas: Scalars['Int']['output']; /** Whether a billing account exists (or was lazily created) for the org. */ hasBillingAccount: Scalars['Boolean']['output']; /** Product IDs the assigned quotas belong to. */ productIds: Array; }; /** Response for createUserTenantStructure mutation */ export declare enum ProvisioningStatus { Ok = "OK", PartialFailure = "PARTIAL_FAILURE" } export type PseudoLocaleOptionsInput = { accents?: InputMaybe; brackets?: InputMaybe; expansion?: InputMaybe; expansionFactor?: InputMaybe; mirror?: InputMaybe; preserveHtml?: InputMaybe; preservePlaceholders?: InputMaybe; }; export type PseudoLocaleResult = { __typename?: 'PseudoLocaleResult'; errors: Array; keysProcessed: Scalars['Int']['output']; locale: Scalars['String']['output']; translationsCreated: Scalars['Int']['output']; }; export type PseudoLocaleStats = { __typename?: 'PseudoLocaleStats'; coverage: Scalars['Float']['output']; pseudoTranslations: Scalars['Int']['output']; totalKeys: Scalars['Int']['output']; }; /** An interview round as shown to a candidate on a public careers page. */ export type PublicInterviewRoundConfig = { __typename?: 'PublicInterviewRoundConfig'; description?: Maybe; isRequired: Scalars['Boolean']['output']; name: Scalars['String']['output']; roundNumber: Scalars['Int']['output']; roundType: InterviewRoundType; }; /** A job posting as shown on a public careers page (OPEN postings only). */ export type PublicJobPosting = { __typename?: 'PublicJobPosting'; department?: Maybe; description?: Maybe; employmentType?: Maybe; id: Scalars['ID']['output']; learnings: Array; location?: Maybe; openings: Scalars['Int']['output']; overview?: Maybe; qualifications: Array; responsibilities: Array; rounds: Array; slug: Scalars['String']['output']; title: Scalars['String']['output']; }; export type PublicKeyChallengeResult = { __typename?: 'PublicKeyChallengeResult'; challenge: Scalars['String']['output']; expiresAt: Scalars['DateTime']['output']; }; export type PublicKeyInfo = { __typename?: 'PublicKeyInfo'; createdAt: Scalars['DateTime']['output']; fingerprint: Scalars['String']['output']; id: Scalars['ID']['output']; keyType: Scalars['String']['output']; name?: Maybe; }; export type PublicKeyRegistrationResult = { __typename?: 'PublicKeyRegistrationResult'; fingerprint: Scalars['String']['output']; keyId: Scalars['ID']['output']; }; export type Publisher = { __typename?: 'Publisher'; bio?: Maybe; contactEmail?: Maybe; contactPhone?: Maybe; context?: Maybe; country?: Maybe; createdAt: Scalars['DateTime']['output']; /** The devportal developer organization that owns this publisher profile. Resolved via federation from global-devportal-svc. */ developerOrganization?: Maybe; email: Scalars['String']['output']; id: Scalars['ID']['output']; isVerified: Scalars['Boolean']['output']; legalName?: Maybe; logoUrl?: Maybe; metadata?: Maybe; name: Scalars['String']['output']; /** Opaque ID of the linked devportal DeveloperOrganization (if any). */ organizationId?: Maybe; productCount: Scalars['Int']['output']; products: Array; rejectionReason?: Maybe; supportUrl?: Maybe; suspensionReason?: Maybe; taxId?: Maybe; tier: PublisherTier; totalEarnings: Scalars['Float']['output']; totalSales: Scalars['Int']['output']; updatedAt: Scalars['DateTime']['output']; userId: Scalars['String']['output']; verificationReviewedAt?: Maybe; verificationReviewedBy?: Maybe; verificationStatus: PublisherVerificationStatus; verificationSubmittedAt?: Maybe; websiteUrl?: Maybe; }; /** Consolidated earnings + payout status for the calling publisher, sourced from billing's canonical earnings ledger (global-billing-svc) rather than store's local figures. Null when the publisher has no billing account yet or billing is temporarily unavailable. */ export type PublisherEarningsStatus = { __typename?: 'PublisherEarningsStatus'; availableAmount: Scalars['Float']['output']; billingAccountId: Scalars['ID']['output']; paidAmount: Scalars['Float']['output']; paidCount: Scalars['Int']['output']; pendingAmount: Scalars['Float']['output']; pendingPayoutCount: Scalars['Int']['output']; reservedAmount: Scalars['Float']['output']; totalLifetimeAmount: Scalars['Float']['output']; }; export type PublisherPayoutMethod = { __typename?: 'PublisherPayoutMethod'; createdAt: Scalars['DateTime']['output']; externalAccountId?: Maybe; id: Scalars['ID']['output']; isDefault: Scalars['Boolean']['output']; publisherId: Scalars['ID']['output']; status: Scalars['String']['output']; type: PayoutMethodType; verifiedAt?: Maybe; }; export declare enum PublisherTier { Enterprise = "ENTERPRISE", Individual = "INDIVIDUAL", Organization = "ORGANIZATION" } export type PublisherVerificationDocumentInput = { description?: InputMaybe; filesSvcId: Scalars['ID']['input']; type: Scalars['String']['input']; }; export declare enum PublisherVerificationStatus { PendingVerification = "PENDING_VERIFICATION", Rejected = "REJECTED", Suspended = "SUSPENDED", Unverified = "UNVERIFIED", Verified = "VERIFIED" } /** Type of purchase for payment initiation */ export declare enum PurchaseType { Addon = "ADDON", Credits = "CREDITS", Order = "ORDER", Plan = "PLAN" } /** Outcome for a single device in a push fan-out. */ export type PushDeviceDeliveryResult = { __typename?: 'PushDeviceDeliveryResult'; /** Channel connection actually used. Null when routing refused to select one — the service never substitutes a different project's connection. */ connectionId?: Maybe; /** Whether this device was retired in the registry as a result of this send. Only set for provider errors that mean the token is permanently dead (UNREGISTERED, or an INVALID_ARGUMENT that names the registration token). Routing and credential faults never retire a device. */ deactivated: Scalars['Boolean']['output']; /** Stable per-install device id. */ deviceId: Scalars['String']['output']; /** Failure details when `success` is false. */ error?: Maybe; /** Firebase project the device's token belongs to. */ fcmProject?: Maybe; /** Provider message id when the send succeeded. */ messageId?: Maybe; /** Device platform, or null when the registry row could not be validated. */ platform?: Maybe; /** Device registry row id. Null when the registry row was rejected as malformed. */ registryId?: Maybe; /** Whether the notification reached this device. */ success: Scalars['Boolean']['output']; }; /** Device platform as recorded in the device registry. */ export declare enum PushDevicePlatform { Android = "ANDROID", Ios = "IOS", Web = "WEB" } export type PushMfaChallengeResult = { __typename?: 'PushMFAChallengeResult'; challengeId: Scalars['ID']['output']; expiresAt: Scalars['DateTime']['output']; message: Scalars['String']['output']; }; export type PushMfaStatus = { __typename?: 'PushMFAStatus'; approved?: Maybe; challengeId: Scalars['ID']['output']; status: Scalars['String']['output']; }; /** Root query type */ export type Query = { __typename?: 'Query'; /** Placeholder field so the Query type can be extended. @shareable because every subgraph declares it. */ _empty?: Maybe; /** Health check for the service @rbac(public: true, scopeType: "global") */ _health: Scalars['String']['output']; _newsletterSubscriptionsPlaceholder?: Maybe; /** Placeholder so the Query type exists for the domain files to extend. @shareable because every subgraph declares one. */ _privacyHealth?: Maybe; /** Get action definitions for a resource type */ actionDefinitions: Array; /** Get all active schedules (for background processing). `limit` clamps the page size (default 100, max 500). `cursor` is the ID of the last schedule from the previous page (keyset pagination ordered by `nextExecutionAt` ascending then `id`). Background workers that need to drain every due schedule should loop calling this query with the returned cursor until fewer-than-`limit` rows come back. Addresses the codex review on PR #35: without cursoring, busy tenants could keep schedules permanently outside the first-page window. */ activeSchedules: Array; /** Get all active sessions for the current user. The `isCurrent` field indicates which session belongs to this request. Resolver filters by actorId — membership IS the access list. */ activeSessions: SessionConnection; /** Count activity logs matching the filter (action, resource, resourceType, workspaceId, tenantId, date range, etc.). Lets a service migrating its local audit table verify exact parity (local table count == owner count for its slice) before dropping the local table. Uses the SAME where-builder as `activityLogs`, and applies the SAME tenant/workspace scoping, so the count matches the list it verifies. */ activityCount: Scalars['Int']['output']; activityLog?: Maybe; activityLogs: ActivityLogConnection; /** Get permission overrides for an actor in a scope */ actorPermissionOverrides: Array; /** Get full RBAC summary for a specific actor */ actorRbacSummary: ActorRbacSummary; /** Get role assignments for an actor in a scope */ actorRoleAssignments: Array; /** List actors with RBAC context in a scope */ actors: Array; adminAffiliateAnalytics: AffiliateAdminAnalytics; adminPayoutRequests: PayoutRequestConnection; adminPayoutSummary: PayoutAdminSummary; /** Admin-only: paginated list of physical (fulfillment-tracked) orders, with optional status/search filters. Used by the admin fulfillment console. */ adminPhysicalOrders: StoreOrdersResult; affiliateCode?: Maybe; affiliateCodeAnalytics: AffiliateCodeAnalytics; affiliateJourneyEvents: Array; affiliateJourneys: AffiliateJourneyConnection; agentAvailability: AgentAvailability; agentLeaderboard: AgentLeaderboard; agentPerformance: AgentPerformance; agentProfile?: Maybe; agentProfileByUserId?: Maybe; agentProfiles: AgentProfileConnection; /** Active per-model LLM token prices (USD per 1M tokens) used for AI-credit weighting. */ aiModelPrices: Array; /** Admin query: list all organizations in the platform (optionally filtered). Requires global 'organization:read' permission — super admins and platform admins only. For end-user "my orgs" access use myOrganizations instead. */ allOrganizations: OrganizationList; /** Admin query: list all workspaces in the platform (optionally filtered). Requires global 'workspace:read' permission — super admins and platform admins only. For end-user "my workspaces" access use myWorkspaces instead. */ allWorkspaces: WorkspaceList; app?: Maybe; /** List API keys for a specific app */ appApiKeys: ApiKeyConnection; /** Get a collection by ID */ appCollection?: Maybe; /** Get a collection by slug */ appCollectionBySlug?: Maybe; /** List app collections */ appCollections: AppCollectionConnection; /** Get an installation by ID */ appInstallation?: Maybe; /** List installations for an application */ appInstallations: AppInstallationConnection; /** Get the license configuration for an application */ appLicense?: Maybe; /** Get a review by ID */ appReview?: Maybe; /** Get review summary for an application */ appReviewSummary: ReviewSummary; /** List reviews for an application */ appReviews: AppReviewConnection; /** List all ACTIVE workspace authorizations for an app. */ appWorkspaceAuthorizations: Array; application?: Maybe; applicationAnalytics: Array; applications: ApplicationConnection; applicationsWithPendingVersions: ApplicationConnection; /** Internal: get all approved waitlist entries for an email. Used by tenant-svc for product access checks. */ approvedWaitlistProducts: Array; appsActingAsCurrentUser: AppConnection; /** Service-to-service only: verifies the given actor (forwarded explicitly by the calling service, since the gateway-level actor on an internal M2M call is the calling service itself, not the original end user) has at least minRole membership on the organization. Used by global-store-svc's registerCarrierPickupLocation before it registers a pickup address on an org's behalf, closing a trust-boundary gap where any authenticated caller could otherwise attribute a carrier registration to an arbitrary org. */ assertDeveloperOrgAccess: Scalars['Boolean']['output']; auditLogs: AuditLogConnection; /** List auth audit events visible to the current user. Resolver filters by actorId/userId — membership IS the access list. */ authAuditLogs: AuthAuditLogConnection; authMethodConfig?: Maybe; authStrategiesHealth: Array; automationSteps: Array; automationSubscribers: Array; availableAgents: Array; availableAuthMethods: Array; /** Get available preview features the user can opt-in to within a workspace. Returns only flags that are previewable, active, and allowed by workspace admin. When `productSlug` is provided (each product app shell passes its own slug), the result is scoped to that product's previewable flags PLUS platform-wide previewable flags — so a product's Feature Previews page never surfaces other products' flags. Omit `productSlug` to get every available preview. Bounded by limit/offset to avoid unbounded fetches. */ availableFeaturePreviews: Array; bounceStats: BounceStats; /** Browse store products with unified filtering, sorting, and pagination. Search is treated as a filter - all filters combine with AND logic. Example usage: ```graphql query { browseStore(input: { filter: { search: "ai notification" type: NODE pricingModel: FREE minRating: 4.0 compatibleWith: "workspaces" } sortBy: RELEVANCE pagination: { limit: 20, offset: 0 } }) { products { id name rating downloads } totalCount hasMore facets { categories { value count } } } } ``` */ browseStore: BrowseStoreResult; /** Calculate tax for a purchase (preview without creating payment) Used by checkout to show tax breakdown before payment */ calculateTax: TaxCalculationResult; campaign?: Maybe; campaignBounces: Array; campaignComplaints: Array; campaigns: Array; cannedResponse?: Maybe; cannedResponseByShortcut?: Maybe; cannedResponses: CannedResponseConnection; /** Registered pickup/warehouse addresses across every configured shipping carrier (currently Shiprocket; more may be added later — see listCarrierAdapters) — lets a seller pick a pincode that can actually be booked instead of typing an arbitrary one that checkout will later refuse to ship. Each result is tagged with which carrier it belongs to. Carriers that aren't configured, or that don't support pickup-location listing at all (e.g. the manual carrier), simply contribute nothing — never blocks org configuration. */ carrierPickupLocations: Array; /** Get a cart by ID (admin or owner only) */ cart?: Maybe; /** Get available shipping options for the current cart (caller's own cart) */ cartShippingOptions: Array; categories: Array; category?: Maybe; categoryBySlug?: Maybe; /** Look up a previously-created channel export job by id. */ channelExportJob?: Maybe; /** Check channel health */ checkChannelHealth: ChannelHealthCheck; checkEntitlement?: Maybe; /** Check if an actor has permission to perform an action */ checkPermission: PermissionCheckResult; /** Check multiple permissions at once (max 50) */ checkPermissions: Array; /** Check if a plan has an entitlement for a specific store item */ checkPlanEntitlement?: Maybe; /** Check if the current user can access a specific product. Returns access status and reason. */ checkProductAccess: ProductAccessResult; checkQuotaExhausted: QuotaCheckResult; /** Check if an actor can see a resource */ checkVisibility: VisibilityCheckResult; circuitBreakerState?: Maybe; circuitBreakerStates: Array; circuitBreakerStatus?: Maybe; compareVariants: VariantComparisonResult; complaintStats: ComplaintStats; /** Returns compliance-related audit events (consent changes, suppressions, bounces, complaints) for a given platform product, sorted by most recent first. */ complianceAuditLog: Array; complianceSettings?: Maybe; consentLedger: ConsentRecordConnection; consentRecord?: Maybe; /** Get all contact inquiries with filtering (authenticated, for superadmins) */ contactInquiries: ContactInquiryList; /** Get a single contact inquiry by ID (authenticated, for superadmins) */ contactInquiry?: Maybe; /** Get a single content page by ID */ contentPage?: Maybe; /** Get a content page by slug and optional product ID. If productId is null, returns the global default page. */ contentPageBySlug?: Maybe; /** List content pages with optional filtering by product */ contentPages: ProductContentPageList; /** Convert an amount from one currency to another (uses live exchange rates) Default fromCurrency is USD */ convertCurrency: CurrencyConversion; currentUser?: Maybe; currentUserApps: AppConnection; currentUserDelegations: AppUserDelegationConnection; /** List delegations where current user granted access to apps */ currentUserGrantedDelegations: AppUserDelegationConnection; /** List MFA methods configured for the current user. */ currentUserMFAMethods: MfaMethodStatusConnection; customerSatisfactionSurvey?: Maybe; customerSatisfactionSurveys: CustomerSatisfactionSurveyConnection; deadLetterQueueEntries: DeadLetterQueueConnection; deadLetterQueueEntry?: Maybe; defaultSLAPolicy?: Maybe; /** Get developer earnings dashboard */ developerEarnings: DeveloperEarnings; /** Get organization invitation by ID */ developerOrgInvitation?: Maybe; /** Get invitation by token (for accepting) */ developerOrgInvitationByToken?: Maybe; /** List pending invitations for an organization */ developerOrgInvitations: DeveloperOrgInvitationConnection; /** Get organization member by ID */ developerOrgMember?: Maybe; /** List members of an organization */ developerOrgMembers: DeveloperOrgMemberConnection; /** Get month-by-month revenue trend for an organization, computed directly from sales records (most recent `months` calendar months, oldest first). Used for revenue growth charts on both the developer-facing and admin revenue pages. */ developerOrgMonthlyRevenue: Array; /** Get a payment method by ID */ developerOrgPaymentMethod?: Maybe; /** List payment methods for an organization */ developerOrgPaymentMethods: Array; /** Get a payout by ID */ developerOrgPayout?: Maybe; /** List payouts for an organization */ developerOrgPayouts: DeveloperOrgPayoutConnection; /** Get revenue analytics for an organization */ developerOrgRevenueAnalytics: Array; /** Get revenue dashboard summary */ developerOrgRevenueSummary: RevenueSummary; /** Get a sale by ID */ developerOrgSale?: Maybe; /** List sales for an organization */ developerOrgSales: DeveloperOrgSaleConnection; /** Get a subscription by ID */ developerOrgSubscription?: Maybe; /** List subscriptions for an organization */ developerOrgSubscriptions: DeveloperOrgSubscriptionConnection; /** Get a developer organization by ID */ developerOrganization?: Maybe; /** Get a developer organization by slug */ developerOrganizationBySlug?: Maybe; /** List developer organizations with filters. Membership-scoped (Type C self list): the resolver filters by `members.some(userId: )` for every non-super_admin caller, so the returned set IS the access control. `scopeType: "self"` therefore only has to reject unauthenticated callers at the gateway. */ developerOrganizations: DeveloperOrganizationConnection; developerProfile?: Maybe; /** Look up a previously-created export job by id. */ devportalExportJob?: Maybe; dsarRequest?: Maybe; dsarRequests: DsarRequestConnection; editorialCollections: Array; effectiveConsent?: Maybe; /** Get effective permissions for an actor in a scope */ effectivePermissions: EffectivePermissions; entitlement?: Maybe; /** List devices currently activated against an entitlement. */ entitlementActivations: Array; entitlementSeatSummary: EntitlementSeatSummary; /** List seats assigned to an entitlement (enterprise). */ entitlementSeats: Array; /** Read metered usage for an entitlement. */ entitlementUsage: Array; entitlements: Array; estimateNewsletterRecipients: NewsletterRecipientEstimate; /** Estimate shipping for an order with a specific method */ estimateOrderShipping: OrderShippingEstimate; /** Evaluate feature flags for the current actor in a workspace context. Used by frontend providers for bulk flag evaluation. Returns OpenFeature-compatible ResolutionDetails for each flag. RBAC is scoped to the target workspace via `input.workspaceId`. */ evaluateFeatureFlags: FeatureFlagBulkEvaluation; /** One conversation with its full transcript, references, CTAs and clicks. Superadmin only. */ exploreAdminConversation?: Maybe; /** Explore conversations for the admin console, newest first by default. Superadmin only. */ exploreAdminConversations: ExploreAdminConversationPage; /** Counts and per-product routing for the same filter. Superadmin only. */ exploreAdminStats: ExploreAdminStats; /** The corpus catalog: every product and the website pages the agent can cite. */ exploreAgentCatalog: ExploreAgentCatalog; /** Poll a submitted turn. Null when the job is unknown or has expired. */ exploreAgentJob?: Maybe; /** Products, example prompts, welcome copy and limits for the `/explore` page. Never throws — an unreachable agent yields `enabled: false`. */ exploreCatalog: ExploreCatalog; /** The conversation's messages, oldest first. */ exploreConversationMessages: Array; /** Poll one message. Scoped by `conversationToken`; a token that does not own the message is reported as NOT_FOUND, never FORBIDDEN. */ exploreMessage?: Maybe; /** A shared conversation, read-only. Returns the transcript for a `shareToken` and nothing that would let the caller continue or modify the thread. */ exploreSharedConversation: Array; /** Synchronous super_admin export of organizations as a CSV string. Returns inline CSV (RFC-4180 with CWE-1236 protection) plus row count and a truncated flag indicating the result was capped at the requested limit. */ exportOrganizationsCsv: OrganizationCsvExport; exportSubscribers: Array; /** Synchronous superadmin export of tenants as a CSV string. The wspace-export-svc pipeline is workspace-scoped (every entity needs `workspace_id`) and therefore cannot host a global tenant export. Returning the data inline keeps the surface small; switch to a global-export-svc when the row volume warrants async jobs. */ exportTenantsCsv: TenantExport; exportTranslations: TranslationsExport; faq?: Maybe; faqs: FaqConnection; faqsByCategory: Array; /** Get a feature flag by ID (super admin only) */ featureFlag?: Maybe; /** Get a feature flag by key (super admin only) */ featureFlagByKey?: Maybe; /** List feature flags with optional filtering (super admin only) */ featureFlags: FeatureFlagList; featuredProducts: Array; /** Get available filter options for a given context. Useful for populating filter dropdowns in UI. */ filterOptions: FilterOptionsResult; /** Get currently active promotions for a product/plan (public — used at checkout) */ getActivePromotions: Array; /** Get active subscriptions for a billing account (optimized for dashboard) Only returns subscriptions with status = 'active' */ getActiveSubscriptions: Array; /** Get the price change history for a specific addon */ getAddonPriceHistory: Array; /** Get all addons, optionally filtered by product and free-plan visibility. Organization-scoped (BOFF-6512): the caller's org-level role (e.g. Owner / Admin, which already grants billing:ADMIN) is what should gate this, not a separate global grant. Requires x-org-id — set by the gateway from the caller's JWT org_id claim for user tokens, or from a gateway-verified x-org-id header (checked against organization membership) for app / app_as_user tokens. */ getAllAddOns: Array; /** Browse the plan catalog (e.g. the upgrade-subscription flow). Self-scoped — any authenticated actor may read it; the catalog itself isn't actor-owned data, so there's nothing further to scope. Previously scopeType "global", which no regular user role is ever assigned at (only Authenticated User — billing:NONE — and Platform Superadmin hold a global-scoped role), so this field was unreachable for every non-superadmin user (BOFF-6512). */ getAllPlans: Array; getAllQuotas: Array; getAllQuotasAssignment: PaginatedQuotaAssignments; getAllQuotasOfSub: Array; getAllRecurringBillingPlans: Array; /** List all tag assignments for an Application. */ getApplicationTags: Array; /** Get available tags and resource types for filtering */ getAvailableTagsAndResourceTypes: TagsAndResourceTypes; /** Get a billing account by ID */ getBillingAccount?: Maybe; getBillingAccountCreditTransactions: PaginatedCreditTransactions; /** Get usage summary for all quotas of a billing account. Returns both subscription (PRODUCT_SPECIFIC) and pooled quotas. If productId is provided, filters subscription quotas by that product. */ getBillingAccountQuotasSummary: BillingAccountQuotasSummary; /** Get all billing accounts for the current org (from context) */ getBillingAccountsByOrg: Array; /** Get billing address for a billing account */ getBillingAddress?: Maybe; /** Get billing notifications for the current org (from context) */ getBillingNotifications: Array; /** Get a billing order by ID */ getBillingOrder?: Maybe; /** Paginated, filterable view of ALL BillingOrder callback deliveries (not just FAILED ones) — the admin ops log/debug viewer for the billing→external service (store, etc.) order-completion handoff, mirroring getBillingWebhookLogs for the inbound provider webhook side. */ getBillingOrderCallbacks: BillingOrderCallbacksPage; /** Paginated, filterable view of ALL BillingWebhookLog rows (not just payment-succeeded refund candidates) — the admin ops log/alert viewer for Stripe/Razorpay webhook processing. */ getBillingWebhookLogs: BillingWebhookLogsPage; /** Get a channel by ID */ getChannel?: Maybe; getChannelConnectionTags: Array; /** Get recent delivery attempts for a channel. Supports cursor pagination — pass `cursor` from the previous page's `nextCursor`. Falls back to offset when `cursor` is absent. */ getChannelDeliveryAttempts: DeliveryAttemptList; /** Get organization-level channel settings. Returns defaults when no settings have been saved yet. */ getChannelOrgSettings: ChannelOrgSettings; /** Get channel statistics */ getChannelStats: ChannelStats; getChannelTags: Array; /** Get recent webhook events for a channel. Supports cursor pagination — pass `cursor` from the previous page's `nextCursor`. */ getChannelWebhookEvents: WebhookEventList; /** Get all channels with optional filtering */ getChannels: ChannelList; /** Get channels by organization ID */ getChannelsByOrganization: ChannelList; /** Get channels by platform */ getChannelsByPlatform: ChannelList; /** Get channels for failover (sorted by priority, ascending). Returns channels for a platform that are enabled for failover. Used by delivery logic for priority-based fallback. */ getChannelsForFailover: Array; /** Get a charge by ID */ getCharge?: Maybe; /** Get all charges for the current org (from context), optionally filtered by status */ getCharges: Array; /** Get a connection by ID NOTE: Credentials are never returned in queries */ getConnection?: Maybe; /** Get connection by channel ID */ getConnectionByChannel?: Maybe; /** Get connection status summary */ getConnectionStatus: ConnectionStatus; /** Get all connections for an organization. Supports cursor pagination — pass `cursor` from the previous page's `nextCursor`. */ getConnectionsByOrganization: ChannelConnectionList; getCostOfCredits: CreditCost; /** Get a coupon by ID */ getCoupon?: Maybe; /** Get a coupon by code */ getCouponByCode?: Maybe; /** Get coupon usage history */ getCouponUsageHistory: CouponUsageListResponse; /** Get credit balance broken down by type (purchased, earned, granted, withdrawable). Computed from the transaction ledger — use this for withdrawal eligibility checks. */ getCreditBalanceByType: CreditBalanceByType; /** Get credit notes for the current org (from context) */ getCreditNotes: Array; getCreditTransactionDetails: CreditTransaction; /** Get the default/first billing account for the current org (from context) */ getDefaultBillingAccount?: Maybe; /** Get the default billing account for a specific organization by orgId. Returns the billing account where isDefault = true for the given orgId. If no default is set, returns the first active billing account. Used by gateway for automatic billing account resolution in usage tracking. */ getDefaultBillingAccountByOrgId?: Maybe; /** Get the default payment method for a billing account */ getDefaultPaymentMethod?: Maybe; /** Get delivery attempt by ID */ getDeliveryAttempt?: Maybe; /** Get delivery statistics for a channel */ getDeliveryStats: DeliveryStats; /** Get a discount by ID */ getDiscount?: Maybe; /** Get a discount by code */ getDiscountByCode?: Maybe; /** Get all discounts */ getDiscounts: Array; /** Get a specific entitlement by ID */ getEntitlement?: Maybe; /** Get external OIDC configuration for a tenant (Google, Microsoft, etc.). The return type carries `clientSecret` — the tenant's external IdP OAuth client secret (a live credential). Gated to global scope so only a super_admin / global-scope grant (and the trusted service actor) can read it. Never expose this on a public path. */ getExternalOIDCConfig?: Maybe; /** Get billing orders with failed callbacks (admin only) Useful for monitoring and manual retry */ getFailedBillingOrderCallbacks: FailedBillingOrderCallbacksResponse; /** Get failed delivery attempts for retry. Supports cursor pagination — pass `cursor` from the previous page's `nextCursor`. */ getFailedDeliveryAttempts: DeliveryAttemptList; /** Get failed webhook events for retry. Supports cursor pagination — pass `cursor` from the previous page's `nextCursor`. */ getFailedWebhookEvents: WebhookEventList; /** Get an invoice by ID */ getInvoice?: Maybe; /** Get an invoice by number */ getInvoiceByNumber?: Maybe; /** Get all invoices for the current org (from context), optionally filtered by status and billing account */ getInvoices: Array; /** Get all entitlements for a specific store item */ getItemEntitlements: Array; /** Get user's referral code (creates one if doesn't exist) */ getMyReferralCode: ReferralCode; /** Get OAuth authorization URL for a platform */ getOAuthAuthorizationUrl: OAuthAuthorizationUrl; /** Get OIDC provider configuration (discovery endpoint) */ getOIDCConfig?: Maybe; /** Get paginated invoices for the current org (from context), optionally filtered by status and billing account */ getPaginatedInvoices: PaginatedInvoices; /** Get paginated subscriptions for a billing account */ getPaginatedSubscriptions: PaginatedSubscriptions; /** Get a payment by ID */ getPayment?: Maybe; /** Get payment failures for the current org (from context) */ getPaymentFailures: Array; /** Get payment methods for a billing account */ getPaymentMethods: Array; /** Get payment provider configuration for frontend integration Returns public keys only (safe to expose to client) */ getPaymentProviderConfig: PaymentProviderConfig; /** Get all payments for the current org (from context), optionally filtered by status */ getPayments: Array; /** Get pending refund records (shortcut for admin dashboard) */ getPendingRefunds: PaginatedRefundRecords; /** Fetch a single plan's public details/features (e.g. selecting a plan to upgrade to). Same fix and reasoning as getAllPlans above (BOFF-6512): scopeType "global" is unreachable for every non-superadmin user, and a plan's catalog data isn't actor-owned, so there's nothing to scope beyond "is this caller authenticated". */ getPlan: Plan; /** Get all entitlements for a specific plan */ getPlanEntitlements: Array; /** Get the price change history for a specific plan */ getPlanPriceHistory: Array; /** Get a promotion by ID */ getPromotion?: Maybe; /** Get usage analytics for a specific quota assignment */ getQuotaAnalytics: QuotaUsageAnalytics; /** Enhanced quota assignment query with analytics, pagination and filtering */ getQuotaAssignmentsWithAnalytics: PaginatedQuotaAssignmentsWithAnalytics; getQuotaUsageAndLimit: QuotaUsageAndLimit; getQuotaUsageDetails?: Maybe; getRecurringBillingPlan?: Maybe; getRecurringBillingPlansByType: Array; /** Get referral code by code */ getReferralCodeByCode?: Maybe; /** Get a single refund record by ID */ getRefundRecord?: Maybe; /** Get refund records with filters and pagination (for admin dashboard). Uses orgId from context by default. Super admins can override with orgIdFilter. hasError: true restricts to refunds carrying a non-null errorMessage — an unresolved accounting/reconciliation issue on an otherwise-completed refund (e.g. a Zoho credit-note refund that couldn't be recorded). Powers the admin refund-issue log, independent of status. search: free-text, case-insensitive substring match against the refund record id, the originating transaction id, the gateway payment id, and the gateway refund id — lets an admin trace a specific purchase's refund by whichever identifier they have on hand. */ getRefundRecords: PaginatedRefundRecords; /** Get refund statistics (counts and amounts) */ getRefundStats: RefundStats; /** Get SSO/SAML configuration for a tenant. Returns the full SSOConfig, which includes the SAML signing certificate and IdP endpoints — secret/credential material. Gated to global scope so only a super_admin / global-scope grant (and the trusted service actor) can read it; tenant admins are further narrowed to their own tenant inside the resolver. Pre-auth login pages MUST NOT read this — use `isSSOEnabled` for discovery. */ getSSOConfig?: Maybe; /** Get specific addons by ID. Organization-scoped — see getAllAddOns. */ getSelectedAddons: Array; /** Resolve the active per-user storage cap for an org. Used by file-storage services to enforce per-user quotas at upload. Falls back to the platform default (50MB free / 5GB paid) when no override is configured. */ getStorageLimitForOrg: StorageLimit; /** Get a single store order by ID (verifies ownership or admin access) */ getStoreOrder?: Maybe; /** Get all orders for a billing account */ getStoreOrdersByBillingAccount: Array; /** Get all orders for a user (admin only) */ getStoreOrdersByUser: Array; /** Get tag assignments for a store product */ getStoreProductTags: Array; /** Get a subscription by ID */ getSubscription?: Maybe; /** Enhanced subscription overview with better pagination and filtering @param includeExpired - Include past/canceled/expired subscriptions (default: false) @param onlyExpired - Only fetch past subscriptions for lazy loading (default: false) @param searchQuery - Search quotas by name in database (case-insensitive) @param productId - Restrict to subscriptions for this product (falls back to the requesting product's context when omitted). A billing account carries an active free-plan subscription for every product on the platform, so leaving this unscoped surfaces every other product's subscriptions alongside the caller's own. */ getSubscriptionUsageOverview?: Maybe>; getSubscriptionUsages: SubscriptionQuotaUsageWithFilter; /** Get tax rates */ getTaxRates: Array; /** Get a single transaction by ID (used for refund pre-fill). billingAccountId is optional and only cross-checked when supplied — the whole point of this lookup is finding a transaction (and its billing account) from just its ID. */ getTransaction?: Maybe; /** Get transactions for a billing account with basic account info (paginated) */ getTransactionsByBillingAccount: PaginatedBillingAccountTransactions; /** Get failed webhooks that haven't been converted to refund records yet */ getUnprocessedFailedWebhooks: Array; /** Get usage summary across all quota assignments */ getUsageDashboard: UsageDashboard; /** Get a user platform connection by ID */ getUserPlatformConnection?: Maybe; /** Get a user platform connection by external user ID + channel ID */ getUserPlatformConnectionByExternalId?: Maybe; /** Get webhook event by ID */ getWebhookEvent?: Maybe; /** Get webhook statistics for a channel */ getWebhookStats: WebhookStats; /** Health check endpoint */ health: HealthStatus; /** Get grouped products for homepage. Optionally filter by compatible product (e.g., "bigconsole", "fluidgrids"). */ homeGroupedProducts: GroupedStoreProducts; homepageSections: Array; i18nModule?: Maybe; i18nModules: I18nModuleList; i18nNamespace?: Maybe; i18nNamespaces: I18nNamespaceList; i18nProduct?: Maybe; i18nProductByName?: Maybe; i18nProducts: I18nProductList; importJob?: Maybe; importJobs: ImportJobList; /** Initiate HTTP Digest auth challenge */ initiateDigestChallenge: DigestChallengeResult; /** Public listing of an application's installable versions (published or deprecated only — draft/pending_review/rejected versions are never returned here, to avoid exposing unreviewed versions). Used by the Store to let buyers pick a specific version at install time, and by global-store-svc (service actor) to resolve a chosen version's manifest when installing. */ installableApplicationVersions: Array; installationPermissions?: Maybe; /** Get a single interview round by ID (admin). */ interviewRound?: Maybe; /** Get a single interviewer by ID (admin). */ interviewer?: Maybe; /** List interviewers with filtering (admin). */ interviewers: InterviewerList; inventoryAdjustments: Array; /** Fast check for a single (app, workspace) pair. Used by wspace-auth-svc via the internal global gateway before issuing a workspace token to an app actor. Global-scoped (NOT public): the only legitimate caller is wspace-auth-svc reaching this through the internal global gateway, which injects a service/super_admin actor that satisfies the global-scope check and trusts its own x-actor-* headers. Dropping `public: true` closes the cross-tenant authorization oracle that the public global supergraph would otherwise expose to unauthenticated callers. */ isAppAuthorizedForWorkspace: Scalars['Boolean']['output']; isAppInstalled?: Maybe; isEmailSuppressed: Scalars['Boolean']['output']; /** Public pre-auth discovery probe: whether SAML SSO is enabled for a tenant. Returns ONLY a boolean (no certificate, endpoints, or other secret material) so an unauthenticated login page can decide whether to offer an SSO button. */ isSSOEnabled: Scalars['Boolean']['output']; isSuppressed: SuppressionCheckResult; /** Get a single job application by ID (admin). */ jobApplication?: Maybe; /** Get all interview rounds for a job application (admin). */ jobApplicationInterviewRounds: Array; /** Get a short-lived presigned PREVIEW URL for an application's resume (admin). Same private-bucket read path as jobApplicationResumeUrl, but served with `Content-Disposition: inline` so the browser renders the PDF in an iframe instead of downloading it. */ jobApplicationResumePreviewUrl: Scalars['String']['output']; /** Get a short-lived presigned download URL for an application's resume (admin). The resume bucket is private; this is the only read path. */ jobApplicationResumeUrl: Scalars['String']['output']; /** List job applications with filtering (admin). */ jobApplications: JobApplicationList; /** List take-home assignments with filtering (admin). */ jobAssignments: JobAssignmentList; jobExecution?: Maybe; jobExecutions: JobExecutionConnection; /** Get a single job posting by ID (admin). */ jobPosting?: Maybe; /** List job postings with filtering (admin). */ jobPostings: JobPostingList; /** Get a single keyboard shortcut by ID */ keyboardShortcut?: Maybe; /** Get all keyboard shortcuts with optional filtering */ keyboardShortcuts: KeyboardShortcutList; knowledgeBaseArticle?: Maybe; knowledgeBaseArticleBySlug?: Maybe; knowledgeBaseArticles: KnowledgeBaseArticleConnection; language?: Maybe; languageByCode?: Maybe; languages: LanguageList; legalHolds: LegalHoldConnection; /** List coupons with optional filters */ listCoupons: CouponsListResponse; /** List all promotions (admin only) */ listPromotions: Array; /** List all referral codes (admin) */ listReferralCodes: ReferralCodesListResponse; /** List cross-layer sync outbox entries (failures, in-flight retries, etc.). */ listSyncOutboxEntries: SyncOutboxEntryList; /** List all platform connections for a channel. Supports cursor pagination — pass `cursor` from the previous page's `nextCursor`. */ listUserPlatformConnectionsByChannel: UserPlatformConnectionList; /** List all platform connections for an organization. Supports cursor pagination — pass `cursor` from the previous page's `nextCursor`. */ listUserPlatformConnectionsByOrganization: UserPlatformConnectionList; /** List all platform connections for a given internal user. Supports cursor pagination — pass `cursor` from the previous page's `nextCursor`. */ listUserPlatformConnectionsByUser: UserPlatformConnectionList; /** M2M: list every ShippingAddress owned by an explicit user, on behalf of a calling service. Product backends (e.g. Kadaikodi) call this through the INTERNAL gateway to read a user's canonical addresses instead of keeping a local copy. Service-actor only — the userId is supplied by the caller. */ listUserShippingAddresses: Array; lookupAffiliateCode?: Maybe; lowStockProducts: Array; /** Returns products the current user can access based on their actor type, email domain, and waitlist approval status. Used by app shells for nav. */ myAccessibleProducts: PlatformProductList; myActivityLogs: ActivityLogConnection; myAffiliateCodes: AffiliateCodeConnection; myAgentProfile?: Maybe; /** List API keys for current user's apps */ myApiKeys: ApiKeyConnection; /** Get my installations */ myAppInstallations: AppInstallationConnection; /** Get my review for an application */ myAppReview?: Maybe; /** Get all workspaces the actor is authorized to access Returns list with basic routing details (name, workspaceId, publicUrl) Self-list (Type C): resolver filters by the calling actorId, so the returned set IS the access list. No global workspace grant required. */ myAuthorizedWorkspaces: WorkspaceRoutingList; /** Get all billing accounts created by the current actor. Used by the devportal (global layer) where org context is not available in headers. */ myBillingAccounts: Array; /** Get the current user's active cart */ myCart?: Maybe; /** Get the authenticated caller's own contact inquiries. Matches by email (case-insensitive). The public `submitContactInquiry` mutation stores submissions with `createdBy = "anonymous"`, so there is no userId to filter on; scoping by the gateway-forwarded email is the only reliable way to link a signed-in user back to their earlier anonymous submissions. */ myContactInquiries: ContactInquiryList; /** Get the current user's dashboard widget layout preferences. Returns the dashboard configuration JSON from preferences, or null if no customization has been saved (frontend uses defaults). */ myDashboardPreferences?: Maybe; /** Get my developer organizations (where I'm a member) */ myDeveloperOrganizations: Array; myDeveloperProfile?: Maybe; myDownloads: Array; myEarningsEntries: EarningsEntryConnection; myEarningsSummary: EarningsSummary; myEntitlements: Array; /** Get notification counts grouped by app name for authenticated user */ myNotificationCountsByApp: Scalars['JSON']['output']; /** Get notification counts by channel for authenticated user */ myNotificationCountsByChannel: NotificationChannelCounts; /** Get all orders for the authenticated user */ myOrders: Array; /** Get a SINGLE invite addressed to the current authenticated user, by id. Backs the per-invite acceptance page reached from the invite email link. Self-scoped: the resolver only returns an invite addressed to the caller's own email (or already resolved to their userId); otherwise it returns NOT_FOUND (existence of another account's invite is never revealed). */ myOrganizationInvite?: Maybe; /** Get invites for the current authenticated user (invitee view). Membership-scoped: the resolver filters by actorId (invitee). Any authenticated user may call this; no RBAC permission is checked. */ myOrganizationInvites: OrganizationInviteList; /** Get organizations where the current user is a member (owned + added to). Membership-scoped: the resolver filters by actorId, so the returned set IS the access list. Any authenticated user may call this; no RBAC permission is checked. */ myOrganizations: OrganizationList; /** List user's registered passkeys */ myPasskeys: Array; myPayoutAccounts: Array; myPayoutRequests: PayoutRequestConnection; /** Get my pending invitations */ myPendingInvitations: Array; /** Get current user's permissions in a scope (self-service). Returns full permission details including roles, permission strings, and cache TTL. Self-scoped — the resolver filters by ctx.actorId, so the returned set IS the access list. Any authenticated user may call this; no RBAC permission is checked. Guest callers are rejected at the gateway. (BOFF-2655) */ myPermissions: EffectivePermissions; /** Get the current user's full preferences record. Creates a default record if none exists. */ myPreferences?: Maybe; /** List user's registered public keys */ myPublicKeys: Array; /** Get the current user's publisher profile, or null if none exists yet. */ myPublisher?: Maybe; /** Earnings + payout status for the calling user's publisher profile, read from billing's canonical ledger. Self-scoped: resolved from the authenticated actor. */ myPublisherEarningsStatus?: Maybe; myReviews: Array; /** Get current user's roles in a scope (lightweight, self-service). Use this for quick role checks without fetching full permissions. Self-scoped — see myPermissions for the rationale. (BOFF-2655) */ myRoles: MyRolesResult; myShippingAddresses: Array; mySourcingOffer?: Maybe; mySourcingOffers: Array; mySourcingRequest?: Maybe; mySourcingRequests: Array; myStoreAppInstallations: StoreAppInstallationConnection; /** Stores the current user is subscribed to (auto-includes public stores). */ mySubscribedStores: Array; mySupportTickets: SupportTicketConnection; mySurveys: CustomerSatisfactionSurveyConnection; /** Get tenants the calling user has access to. Returns the union of: - every ACTIVE SHARED tenant (every authenticated user implicitly has access) - every tenant for which the caller has a `TenantMember` row Self-list (Type C): the resolver filters by `actorId`, so the returned set IS the access list. Any authenticated user may call this; no RBAC permission is checked. The dropdown that picks a target tenant for `createOrganization` must use this query so the FE never offers a tenant the server would reject. (BOFF-2652) */ myTenants: TenantList; /** Get unread notification count for authenticated user */ myUnreadNotificationCount: Scalars['Int']['output']; /** Get the current authenticated user's platform connection for a given channel. Uses the actor's internal user ID from request context — no internalUserId argument needed. Returns null if the user has not connected this channel. */ myUserPlatformConnection?: Maybe; /** Public: check waitlist status by email + product. Returns null if not on waitlist. Rate-limited at API gateway level. PII protection: for non-privileged callers (anonymous or authenticated non-admin) the resolver returns a redacted, status-only row — `id`, `email`, `platformProductId`, `status`, `createdAt`, `updatedAt` only. The PII and internal-context fields (name, company, reason, processedBy, processedAt, rejectionReason, context) are nulled out. Only super_admin / isAdmin actors receive the full row. */ myWaitlistStatus?: Maybe; /** List user's linked wallets */ myWallets: Array; myWishlist: Array; /** Get workspaces where the current user is a member (owned + added to). Membership-scoped: the resolver filters by actorId, so the returned set IS the access list. Any authenticated user may call this; no RBAC permission is checked. */ myWorkspaces: WorkspaceList; newsletter?: Maybe; newsletterAutomation?: Maybe; newsletterAutomations: Array; newsletterBySlug?: Maybe; newsletterList?: Maybe; newsletterLists: Array; newsletterStats: NewsletterStats; newsletterTemplate?: Maybe; newsletterTemplateVersions: Array; newsletterTemplates: Array; newsletterVariant?: Maybe; newsletterVariants: Array; newsletters: Array; /** Platform admin only: recent observed runs of the node-sandbox build workflow, newest first — see workers/nodeSandboxBuildPoll.ts. Optionally filtered to one version's runs. */ nodeSandboxBuildChecks: NodeSandboxBuildCheckConnection; /** Get a single notification by ID */ notification?: Maybe; /** Get notification events/history for a specific notification */ notificationEvents: Array; /** List notification history with filtering and pagination */ notificationHistories: NotificationHistoryList; /** Get a single notification history entry by ID */ notificationHistory?: Maybe; /** Get a single notification preference by ID */ notificationPreference?: Maybe; /** List notification preferences with filtering and pagination */ notificationPreferences: NotificationPreferenceList; /** Get notification statistics */ notificationStats: NotificationStats; /** Get a notification template by slug and optional locale */ notificationTemplate?: Maybe; /** List notification templates with filtering and pagination */ notificationTemplates: NotificationTemplateList; /** Get a single notification topic by id or slug */ notificationTopic?: Maybe; /** List notification topics with filtering and pagination */ notificationTopics: NotificationTopicList; /** List notifications with filtering and pagination */ notifications: NotificationList; /** Get OIDC Hybrid flow configuration */ oidcHybridConfig: OidcHybridConfig; openInventoryAlerts: Array; openSourcingRequests: Array; /** Get order estimate for checkout preview (operates on caller's own cart) */ orderEstimate?: Maybe; /** Get fulfillment details for an order */ orderFulfillment?: Maybe; /** Admin-only: paginated log of carrier shipment-creation attempts across all orders (every Temporal retry, not just the last failure), so ops can debug fulfillment failures without direct DB/log access. */ orderFulfillmentAttempts: OrderFulfillmentAttemptsPage; /** Get seller-reported issue flags for an order */ orderIssueFlags: Array; /** Get a single organization by ID */ organization?: Maybe; /** Paginated keyset connection over the persistent OrganizationAuditLog table. Returns audit events for a single organization, newest first. Supports optional filtering by `action` (event name) and `actorId`. */ organizationAuditLogsConnection: OrganizationAuditLogConnection; /** Get an organization by slug within a tenant */ organizationBySlug?: Maybe; /** Get pending invites for an organization (admin view) */ organizationInvites: OrganizationInviteList; /** Lightweight org-kind lookup used by global-store-svc (service actor) to validate a physical-product listing is being created under a PHYSICAL org before it accepts the write. Returns null if the org doesn't exist. `kind` is not sensitive, so this is public the same way installableApplicationVersions is. See DeveloperOrgKind (BOFF-7285). */ organizationKind?: Maybe; /** Resolve human-friendly identities for users who are active members of the target organization and visible to the current actor. */ organizationMemberIdentities: Array; /** Get members of an organization */ organizationMembers: OrganizationMemberList; /** M2M lookup for global-store-svc's shipping-cost quote pipeline: the org's active pickup postal code — the default DeveloperOrgPickupAddress's postalCode, falling back to the legacy pickupPostalCode scalar for orgs that set one before DeveloperOrgPickupAddress existed, then null (caller falls back to the linked billing account's address, then a platform-wide default). */ organizationPickupPostalCode?: Maybe; organizationScheduleQuotas: OrganizationScheduleQuotas; payoutRunHistory: Array; pendingDeveloperOrganizationVerifications: DeveloperOrganizationConnection; /** Publishers awaiting verification review (admin queue). */ pendingPublishers: Array; /** Admin queue: products awaiting review. */ pendingReviewProducts: PaginatedProducts; /** Get pending scheduled notifications that are due for triggering */ pendingScheduledNotifications: Array; pendingSurveys: CustomerSatisfactionSurveyConnection; /** Get permission check audit log */ permissionAuditLog: Array; /** Get a single platform product by ID (admin/catalog read). Returns the full PlatformProduct including DRAFT products and internal operational metrics, so it is gated as a global-scope catalog read. Unauthenticated/marketing callers must use publicProduct(slug), which filters to ACTIVE/WAITLIST/COMING_SOON and strips internal fields. */ platformProduct?: Maybe; /** Get a single platform product by slug (admin/catalog read). Like platformProduct(id), this returns the full internal-metrics surface and is gated global. Public/marketing slug lookups must use publicProduct(slug). */ platformProductBySlug?: Maybe; /** Get aggregate statistics about platform products by status */ platformProductStats: PlatformProductStats; /** Get all platform products with optional filtering (admin/catalog read). Unlike publicProducts, this applies NO status filter, so it can enumerate DRAFT/unreleased products plus internal operational metrics. Gated as a global-scope catalog read. Marketing callers must use publicProducts. */ platformProducts: PlatformProductList; /** Get a configured OPA policy reference by ID */ policyReference?: Maybe; /** Get configured OPA policy references */ policyReferences: Array; popularArticles: Array; popularCannedResponses: Array; popularFAQs: Array; /** Get a single press kit asset by ID (admin — auth required). */ pressKitAsset?: Maybe; /** List press kit assets for a product (admin — auth required). */ pressKitAssets: ProductPressKitAssetList; previewSchedule: SchedulePreview; product?: Maybe; /** List assets linked to a product. */ productAssets: Array; productBySlug?: Maybe; productDownloads: Array; productInstallations: StoreAppInstallationConnection; /** Get orders for a specific store product */ productOrders: ItemOrdersList; productReleases: Array; productReviews: Array; /** Get shortcuts for a specific product (includes global shortcuts). Bounded by limit/offset to avoid unbounded fetches. */ productShortcuts: Array; /** Get product-level tour statistics */ productTourStatistics: ProductTourStatistics; products: Array; pseudoLocaleStats: PseudoLocaleStats; /** Get all active addons for a specific product (public, no authentication required). Used by product website pricing pages. Only returns active addons. */ publicAddons: Array; /** Get a public content page by slug and optional product ID. Only returns pages with visibility=PUBLIC and isPublished=true. */ publicContentPage?: Maybe; /** List public content pages for a product. Only returns pages with visibility=PUBLIC and isPublished=true. Pass tag="changelog" to surface a product's changelog entries. */ publicContentPages: ProductContentPageList; /** Get a single OPEN job posting by slug for a public careers page (no authentication required). */ publicJobPosting?: Maybe; /** List OPEN job postings for public careers pages (no authentication required). */ publicJobPostings: Array; /** List OPEN + CLOSED job postings (id/title/slug only) for the public assignment-submission position picker — closing a posting stops new applicants but must not block an existing candidate from selecting it to submit their take-home (no authentication required). */ publicJobPostingsForSubmission: Array; /** Get all active plans for a specific product (public, no authentication required). Used by product website pricing pages. Only returns active plans with their features. */ publicPlans: Array; /** List public press kit assets for a product (no auth required). Only returns assets with visibility=PUBLIC. */ publicPressKitAssets: ProductPressKitAssetList; /** Get a platform product by slug (public, no auth required). Returns only ACTIVE or WAITLIST products. Does NOT expose sensitive fields like recaptchaSecretKey. */ publicProduct?: Maybe; /** Get all platform products (public, no auth required). Returns only ACTIVE or WAITLIST products (WAITLIST products are visible for waitlist signup). */ publicProducts: PlatformProductList; /** Resolve a public content page for a product with template variable replacement. Only returns pages with visibility=PUBLIC and isPublished=true. */ publicResolvedContentPage?: Maybe; publicScheduleTemplates: ScheduleTemplateConnection; publishedProducts: Array; /** The push-routable devices a user has for one product, newest-first. Every row carries the `fcmProject` whose credentials can reach its `token`; rows with no project, and rows not refreshed inside the staleness window, are excluded. Service-to-service only — this is the read global-channel-svc makes before a send, on behalf of the notification's recipient. It therefore takes an explicit `userId`, which is exactly why it is NOT `scopeType: "self"`: a self gate is an authentication check only, so a self-scoped field taking a `userId` would let any signed-in user enumerate anyone's devices. `actorTypes` denies user/app callers at the gateway before any permission round-trip, and the resolver re-checks the actor type for the internal-gateway path (which runs no RBAC middleware). */ pushDevicesForUserInternal: Array; /** Cost-weighted AI credits for one assistant turn, computed from the given model's token prices (USD/1M) and the credit baseline. Unknown models fall back to the `*default*` price row. */ quoteAiCredits: Scalars['Int']['output']; /** Get RBAC analytics for a scope within a date range */ rbacAnalytics: RbacAnalytics; /** Get RBAC configuration change history */ rbacChangeHistory: Array; /** Get RBAC configuration for a scope */ rbacConfig: Array; /** Get a specific RBAC configuration value */ rbacConfigValue?: Maybe; recentArticles: Array; releaseAuditEvents: Array; releaseTracks: Array; /** Resolve the effective content page for a product. Returns the product-specific page if it exists, otherwise the global default. Template variables in content (e.g. {{productName}}) are replaced with product data. */ resolvedContentPage?: Maybe; /** Get a specific registered resource by ID */ resource?: Maybe; /** Get the resource tree (hierarchy) for a scope */ resourceTree: Array; /** Get all resource types. Optionally filter by product (PlatformProduct.slug): returns resource types mapped to that product, plus cross-product types (those with no product mapping) unless includeUnmapped is false. With no product arg, returns every resource type (backward compatible). */ resourceTypes: Array; /** Get all resource types together with the product slugs each is mapped to. Drives the permission-management UI (badges, product assignment). A resource type with an empty products list is cross-product ("All"). */ resourceTypesWithProducts: Array; /** Get registered resources with custom RBAC configurations. */ resources: Array; review?: Maybe; reviewReplies: Array; /** Get a role by ID */ role?: Maybe; /** Get actors assigned to a role */ roleMembers: Array; /** List roles in a scope */ roles: Array; satisfactionMetrics: SatisfactionMetrics; scheduleTemplate?: Maybe; scheduleTemplates: ScheduleTemplateConnection; scheduleVersionHistory: Array; scheduledJob?: Maybe; scheduledJobs: ScheduledJobConnection; /** Get a single scheduled notification by ID */ scheduledNotification?: Maybe; /** List scheduled notifications with filtering and pagination */ scheduledNotifications: ScheduledNotificationList; schedulerMetrics: SchedulerMetrics; schedulerPrometheusMetrics: Scalars['String']['output']; /** List SCIM bearer tokens minted for a workspace (metadata only). */ scimTokens: Array; searchCannedResponses: Array; /** Search channels by name */ searchChannels: Array; searchFAQs: Array; searchKnowledgeBase: Array; searchProducts: Array; /** Get search suggestions for autocomplete. Returns suggestions from product names, tags, categories, and authors. Uses trigram matching for fuzzy search. */ searchSuggestions: Array; searchTicketTemplates: Array; searchTickets: Array; /** Read the earnings summary + payout-request status counts for a billing account (optionally a single owner). Service/super_admin only — internal gateway. */ serviceEarningsStatus: ServicePayoutStatus; /** Fetch a publicly-shared WORKFLOW app by application ID. No authentication required — works for anyone with the link. */ sharedWorkflow?: Maybe; shippingMethods: Array; shippingZones: Array; /** Get all shortcut categories */ shortcutCategories: Array; slaPolicies: SlaPolicyConnection; slaPolicy?: Maybe; slaReport: SlaReport; sourcingOpportunity?: Maybe; /** Fetch a store by id or slug. */ store?: Maybe; storeAppInstallation?: Maybe; /** Get detailed product information for the app details page. Includes product data, reviews, related products, publisher info, and version history. Automatically increments view count. Example usage: ```graphql query { storeProductDetails(input: { id: "product-123" }) { product { id name description manifest rating downloads } reviews { id rating comment } relatedProducts { id name icon } publisher { id name isVerified } versions { id version status } userReview { id rating } isPurchased } } ``` */ storeProductDetails: StoreProductDetailsResult; /** List all stores the caller can see. */ stores: Array; subprocessor?: Maybe; subprocessors: SubprocessorConnection; subscriber?: Maybe; subscriberByEmail?: Maybe; subscriberConsents: Array; subscriberCount: Scalars['Int']['output']; subscribers: Array; supportAnalytics: SupportAnalytics; supportAttachment: SupportAttachmentFile; supportMessage?: Maybe; supportMessages: Array; supportStats: SupportStats; supportTicket?: Maybe; supportTicketByNumber?: Maybe; supportTickets: SupportTicketConnection; suppressionEntry?: Maybe; suppressionList: SuppressionEntryConnection; suppressions: Array; surveyByTicket?: Maybe; /** Fetch one outbox entry by id (includes the full payload for inspection). */ syncOutboxEntry?: Maybe; /** Aggregate counts for the outbox, used by the admin dashboard tile. */ syncOutboxStats: SyncOutboxStats; tag?: Maybe; tagBySlug?: Maybe; tags: Array; /** Get a single tenant by ID */ tenant?: Maybe; /** Get a tenant by slug */ tenantBySlug?: Maybe; /** List explicit tenant-member grants for a given tenant. Super-admin view used by the admin console to manage tenant access. SHARED-tenant access is implicit and is not reflected in this list. (BOFF-2652) */ tenantMembers: TenantMemberList; /** Get tenant routing info by ID. Lightweight query for gateway routing decisions. Returns type (SHARED/DEDICATED), endpoint, and status. */ tenantRoutingInfo?: Maybe; /** List all tenants with optional filtering and pagination */ tenants: TenantList; /** Test a connection's health */ testConnection: ConnectionTestResult; ticketCategories: TicketCategoryConnection; ticketCategory?: Maybe; ticketCategoryBySlug?: Maybe; ticketSLAStatus?: Maybe; ticketTemplate?: Maybe; ticketTemplates: TicketTemplateConnection; ticketTemplatesByCategory: Array; ticketTrends: Array; tokenInfo?: Maybe; topCharts: Array; /** Get a single tour by ID */ tour?: Maybe; /** Get analytics for a tour */ tourAnalytics: TourAnalyticsAggregation; /** Get a tour by its unique slug */ tourBySlug?: Maybe; /** Get all tour media */ tourMedia: Array; /** Get a tour schedule by ID */ tourSchedule?: Maybe; /** Get all schedules for a tour. `limit` and `offset` are caller-supplied pagination args. Defaults: no `limit` returns every schedule for the tour (per-tour lists are naturally bounded). When provided, `limit` is clamped to 500 (DEFAULT 100 if invalid) and `offset` defaults to 0. Added on PR #35 to address the codex review finding that `getSchedulesForTour` silently dropped the tail past 100 rows once the provider gained an internal cap. */ tourSchedules: Array; /** Get step-level analytics for a tour */ tourStepAnalytics: Array; /** Get a single tour template */ tourTemplate?: Maybe; /** Get tour templates */ tourTemplates: Array; /** Get a user's progress for a specific tour */ tourUserProgress?: Maybe; /** Get all user progress for a tour */ tourUserProgressList: Array; /** Get tours with optional filtering and pagination */ tours: ToursResponse; /** Get tours for a specific context (product/module/page). Public endpoint consumed by frontend SDKs without authentication (the resolver returns published, active, in-window tours and uses an anonymous actor id). See spec global-specs/modules/tours/RBAC.md:34. */ toursForContext: Array; translation?: Maybe; translationAudit: TranslationAuditList; translationByKey?: Maybe; translationCoverage: Array; translationKey?: Maybe; translationKeyByKey?: Maybe; translationKeys: TranslationKeyList; translationStats: Scalars['JSON']['output']; translations: TranslationList; /** Get popular/trending search terms. Useful for showing suggestions when search input is empty. */ trendingSearches: Array; /** Get a user by ID (admin only) */ user?: Maybe; /** Resolve a user's active plan summary for the @burdenoff/be-sdk resource-caps module. Returns tier ("free" | "paid"), plan id/name, and per-plan JSON cap overrides. Falls back to a synthetic "Free"/free-tier response when the user has no active paid subscription. */ userBillingPlan: UserBillingPlan; /** Get total count of users (for analytics) */ userCount: Scalars['Int']['output']; /** Get a user's feature flag preferences in a workspace. Bounded by limit/offset to avoid unbounded fetches. */ userFeatureFlagPreferences: Array; userLanguagePreference?: Maybe; /** Check if the current user has reviewed a specific product */ userReviewForProduct?: Maybe; /** Get all of a user's progress across tours */ userTourProgresses: Array; /** List users with filtering and pagination (admin only) */ users: UserConnection; /** Batch-resolve users by ID. - service and super admins may resolve any IDs - tenant admins are tenant-scoped - regular users may only resolve themselves */ usersByIds: Array; /** Validate a coupon code for a specific order */ validateCoupon: ValidateCouponResponse; /** Validate a license key without modifying state. Used by vibecontrols agents + wspace services to check license validity before plugin load. */ validateLicense: LicenseValidationResult; validatePromoCode: PromoCodeValidationResult; /** Verify an installation using the app signing secret. Called server-to-server by integration backends after receiving the post-install redirect with ?installation_id=xxx. Returns the full installation context (workspaceId, scope, status, consentedPermissions). Responds with NOT_FOUND for any invalid combination to prevent enumeration. */ verifyInstallation: AppInstallation; /** Get visibility rules for a resource */ visibilityRules: Array; waitlist: Array; waitlistEntry?: Maybe; webhook?: Maybe; webhookDeliveries: WebhookDeliveryConnection; webhookDelivery?: Maybe; webhooks: Array; /** Get a single workspace by ID */ workspace?: Maybe; /** Get workspace-level analytics summary */ workspaceAnalyticsSummary: WorkspaceTourAnalyticsSummary; /** Get a workspace by slug within a tenant */ workspaceBySlug?: Maybe; /** Get workspace overrides for a specific workspace. Bounded by limit/offset to avoid unbounded fetches. */ workspaceFeatureFlagOverrides: Array; /** Get members of a workspace */ workspaceMembers: WorkspaceMemberList; /** Get public details of a workspace by ID Returns public info if actor is authorized */ workspacePublicDetails?: Maybe; /** Get workspace routing info by ID Returns workspace name, endpoint (publicUrl), region for routing purposes Requires actor to be a member of the workspace */ workspaceRouting?: Maybe; /** Get workspace store orders with pagination */ workspaceStoreOrders: StoreOrdersResult; }; /** Root query type */ export type QueryActionDefinitionsArgs = { resourceType: Scalars['String']['input']; }; /** Root query type */ export type QueryActiveSchedulesArgs = { cursor?: InputMaybe; limit?: InputMaybe; }; /** Root query type */ export type QueryActiveSessionsArgs = { pagination?: InputMaybe; }; /** Root query type */ export type QueryActivityCountArgs = { filter?: InputMaybe; }; /** Root query type */ export type QueryActivityLogArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryActivityLogsArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryActorPermissionOverridesArgs = { actorId: Scalars['String']['input']; actorType?: InputMaybe; scopeId: Scalars['String']['input']; }; /** Root query type */ export type QueryActorRbacSummaryArgs = { actorId: Scalars['String']['input']; actorType?: InputMaybe; scopeId: Scalars['String']['input']; }; /** Root query type */ export type QueryActorRoleAssignmentsArgs = { actorId: Scalars['String']['input']; actorType?: InputMaybe; scopeId: Scalars['String']['input']; }; /** Root query type */ export type QueryActorsArgs = { filter?: InputMaybe; pagination?: InputMaybe; scopeId: Scalars['String']['input']; }; /** Root query type */ export type QueryAdminAffiliateAnalyticsArgs = { filter?: InputMaybe; }; /** Root query type */ export type QueryAdminPayoutRequestsArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryAdminPayoutSummaryArgs = { filter?: InputMaybe; }; /** Root query type */ export type QueryAdminPhysicalOrdersArgs = { limit: Scalars['Int']['input']; page: Scalars['Int']['input']; search?: InputMaybe; status?: InputMaybe; }; /** Root query type */ export type QueryAffiliateCodeArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryAffiliateCodeAnalyticsArgs = { filter?: InputMaybe; id: Scalars['ID']['input']; }; /** Root query type */ export type QueryAffiliateJourneyEventsArgs = { journeyId: Scalars['ID']['input']; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryAffiliateJourneysArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryAgentLeaderboardArgs = { limit?: InputMaybe; period?: InputMaybe; }; /** Root query type */ export type QueryAgentPerformanceArgs = { filter: AgentPerformanceFilterInput; }; /** Root query type */ export type QueryAgentProfileArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryAgentProfileByUserIdArgs = { userId: Scalars['String']['input']; }; /** Root query type */ export type QueryAgentProfilesArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryAllOrganizationsArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryAllWorkspacesArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryAppArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryAppApiKeysArgs = { appId: Scalars['ID']['input']; pagination?: InputMaybe; }; /** Root query type */ export type QueryAppCollectionArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryAppCollectionBySlugArgs = { slug: Scalars['String']['input']; }; /** Root query type */ export type QueryAppCollectionsArgs = { collectionType?: InputMaybe; isActive?: InputMaybe; isFeatured?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryAppInstallationArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryAppInstallationsArgs = { applicationId?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; organizationId?: InputMaybe; scope?: InputMaybe; status?: InputMaybe; userId?: InputMaybe; workspaceId?: InputMaybe; }; /** Root query type */ export type QueryAppLicenseArgs = { applicationId: Scalars['ID']['input']; }; /** Root query type */ export type QueryAppReviewArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryAppReviewSummaryArgs = { applicationId: Scalars['ID']['input']; }; /** Root query type */ export type QueryAppReviewsArgs = { applicationId: Scalars['ID']['input']; isVerifiedPurchase?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; rating?: InputMaybe; status?: InputMaybe; }; /** Root query type */ export type QueryAppWorkspaceAuthorizationsArgs = { appId: Scalars['ID']['input']; pagination?: InputMaybe; }; /** Root query type */ export type QueryApplicationArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryApplicationAnalyticsArgs = { applicationId: Scalars['ID']['input']; endDate?: InputMaybe; period: Scalars['String']['input']; startDate?: InputMaybe; }; /** Root query type */ export type QueryApplicationsArgs = { developerId?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; organizationId?: InputMaybe; status?: InputMaybe; visibility?: InputMaybe; }; /** Root query type */ export type QueryApplicationsWithPendingVersionsArgs = { limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryApprovedWaitlistProductsArgs = { email: Scalars['String']['input']; }; /** Root query type */ export type QueryAppsActingAsCurrentUserArgs = { pagination?: InputMaybe; }; /** Root query type */ export type QueryAssertDeveloperOrgAccessArgs = { actorId: Scalars['ID']['input']; actorType?: InputMaybe; minRole?: InputMaybe; organizationId: Scalars['ID']['input']; }; /** Root query type */ export type QueryAuditLogsArgs = { actorId?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; resource?: InputMaybe; resourceId?: InputMaybe; }; /** Root query type */ export type QueryAuthAuditLogsArgs = { pagination?: InputMaybe; }; /** Root query type */ export type QueryAuthMethodConfigArgs = { authType: AuthType; tenantId: Scalars['String']['input']; }; /** Root query type */ export type QueryAuthStrategiesHealthArgs = { pagination?: InputMaybe; }; /** Root query type */ export type QueryAutomationStepsArgs = { automationId: Scalars['ID']['input']; }; /** Root query type */ export type QueryAutomationSubscribersArgs = { automationId: Scalars['ID']['input']; limit?: InputMaybe; offset?: InputMaybe; status?: InputMaybe; }; /** Root query type */ export type QueryAvailableAgentsArgs = { limit?: InputMaybe; skills?: InputMaybe>; }; /** Root query type */ export type QueryAvailableAuthMethodsArgs = { pagination?: InputMaybe; tenantId?: InputMaybe; }; /** Root query type */ export type QueryAvailableFeaturePreviewsArgs = { limit?: InputMaybe; offset?: InputMaybe; productSlug?: InputMaybe; workspaceId: Scalars['String']['input']; }; /** Root query type */ export type QueryBounceStatsArgs = { campaignId: Scalars['ID']['input']; }; /** Root query type */ export type QueryBrowseStoreArgs = { input: BrowseStoreInput; }; /** Root query type */ export type QueryCalculateTaxArgs = { input: CalculateTaxInput; }; /** Root query type */ export type QueryCampaignArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryCampaignBouncesArgs = { bounceType?: InputMaybe; campaignId: Scalars['ID']['input']; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryCampaignComplaintsArgs = { campaignId: Scalars['ID']['input']; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryCampaignsArgs = { limit?: InputMaybe; newsletterId?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryCannedResponseArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryCannedResponseByShortcutArgs = { shortcut: Scalars['String']['input']; }; /** Root query type */ export type QueryCannedResponsesArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryCartArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryCartShippingOptionsArgs = { addressId: Scalars['String']['input']; }; /** Root query type */ export type QueryCategoryArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryCategoryBySlugArgs = { slug: Scalars['String']['input']; }; /** Root query type */ export type QueryChannelExportJobArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryCheckChannelHealthArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryCheckEntitlementArgs = { productId: Scalars['String']['input']; workspaceId?: InputMaybe; }; /** Root query type */ export type QueryCheckPermissionArgs = { input: PermissionCheckInput; }; /** Root query type */ export type QueryCheckPermissionsArgs = { inputs: Array; }; /** Root query type */ export type QueryCheckPlanEntitlementArgs = { itemId: Scalars['ID']['input']; planId: Scalars['ID']['input']; }; /** Root query type */ export type QueryCheckProductAccessArgs = { productId: Scalars['ID']['input']; }; /** Root query type */ export type QueryCheckQuotaExhaustedArgs = { billingAccountId: Scalars['ID']['input']; productId?: InputMaybe; quotaName: Scalars['String']['input']; }; /** Root query type */ export type QueryCheckVisibilityArgs = { input: VisibilityCheckInput; }; /** Root query type */ export type QueryCircuitBreakerStateArgs = { scope: Scalars['String']['input']; scopeValue: Scalars['String']['input']; }; /** Root query type */ export type QueryCircuitBreakerStatesArgs = { pagination?: InputMaybe; }; /** Root query type */ export type QueryCompareVariantsArgs = { newsletterId: Scalars['ID']['input']; }; /** Root query type */ export type QueryComplaintStatsArgs = { campaignId: Scalars['ID']['input']; }; /** Root query type */ export type QueryComplianceAuditLogArgs = { days?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; platformProductId: Scalars['String']['input']; }; /** Root query type */ export type QueryComplianceSettingsArgs = { platformProductId: Scalars['String']['input']; }; /** Root query type */ export type QueryConsentLedgerArgs = { filter?: InputMaybe; pagination?: InputMaybe; }; /** Root query type */ export type QueryConsentRecordArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryContactInquiriesArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryContactInquiryArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryContentPageArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryContentPageBySlugArgs = { productId?: InputMaybe; slug: Scalars['String']['input']; }; /** Root query type */ export type QueryContentPagesArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; productId?: InputMaybe; }; /** Root query type */ export type QueryConvertCurrencyArgs = { amount: Scalars['Float']['input']; fromCurrency?: InputMaybe; toCurrency: Scalars['String']['input']; }; /** Root query type */ export type QueryCurrentUserAppsArgs = { pagination?: InputMaybe; }; /** Root query type */ export type QueryCurrentUserDelegationsArgs = { pagination?: InputMaybe; }; /** Root query type */ export type QueryCurrentUserGrantedDelegationsArgs = { pagination?: InputMaybe; }; /** Root query type */ export type QueryCurrentUserMfaMethodsArgs = { pagination?: InputMaybe; }; /** Root query type */ export type QueryCustomerSatisfactionSurveyArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryCustomerSatisfactionSurveysArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryDeadLetterQueueEntriesArgs = { filter?: InputMaybe; pagination?: InputMaybe; }; /** Root query type */ export type QueryDeadLetterQueueEntryArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryDefaultSlaPolicyArgs = { priority: SupportTicketPriority; }; /** Root query type */ export type QueryDeveloperEarningsArgs = { input?: InputMaybe; }; /** Root query type */ export type QueryDeveloperOrgInvitationArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryDeveloperOrgInvitationByTokenArgs = { token: Scalars['String']['input']; }; /** Root query type */ export type QueryDeveloperOrgInvitationsArgs = { limit?: InputMaybe; offset?: InputMaybe; organizationId: Scalars['ID']['input']; status?: InputMaybe; }; /** Root query type */ export type QueryDeveloperOrgMemberArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryDeveloperOrgMembersArgs = { isActive?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; organizationId: Scalars['ID']['input']; role?: InputMaybe; }; /** Root query type */ export type QueryDeveloperOrgMonthlyRevenueArgs = { months?: InputMaybe; organizationId: Scalars['ID']['input']; }; /** Root query type */ export type QueryDeveloperOrgPaymentMethodArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryDeveloperOrgPaymentMethodsArgs = { organizationId: Scalars['ID']['input']; }; /** Root query type */ export type QueryDeveloperOrgPayoutArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryDeveloperOrgPayoutsArgs = { endDate?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; organizationId: Scalars['ID']['input']; startDate?: InputMaybe; status?: InputMaybe; }; /** Root query type */ export type QueryDeveloperOrgRevenueAnalyticsArgs = { endDate?: InputMaybe; organizationId: Scalars['ID']['input']; period: Scalars['String']['input']; startDate?: InputMaybe; }; /** Root query type */ export type QueryDeveloperOrgRevenueSummaryArgs = { organizationId: Scalars['ID']['input']; period: Scalars['String']['input']; }; /** Root query type */ export type QueryDeveloperOrgSaleArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryDeveloperOrgSalesArgs = { applicationId?: InputMaybe; endDate?: InputMaybe; isPaidOut?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; organizationId: Scalars['ID']['input']; pricingModel?: InputMaybe; startDate?: InputMaybe; status?: InputMaybe; }; /** Root query type */ export type QueryDeveloperOrgSubscriptionArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryDeveloperOrgSubscriptionsArgs = { limit?: InputMaybe; offset?: InputMaybe; organizationId: Scalars['ID']['input']; status?: InputMaybe; subscriptionType?: InputMaybe; }; /** Root query type */ export type QueryDeveloperOrganizationArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryDeveloperOrganizationBySlugArgs = { slug: Scalars['String']['input']; }; /** Root query type */ export type QueryDeveloperOrganizationsArgs = { isCertified?: InputMaybe; isVerified?: InputMaybe; kind?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; partnerTier?: InputMaybe; tier?: InputMaybe; }; /** Root query type */ export type QueryDeveloperProfileArgs = { userId: Scalars['ID']['input']; }; /** Root query type */ export type QueryDevportalExportJobArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryDsarRequestArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryDsarRequestsArgs = { filter?: InputMaybe; pagination?: InputMaybe; }; /** Root query type */ export type QueryEditorialCollectionsArgs = { storeId?: InputMaybe; }; /** Root query type */ export type QueryEffectiveConsentArgs = { purpose: ConsentPurpose; subjectId: Scalars['ID']['input']; }; /** Root query type */ export type QueryEffectivePermissionsArgs = { actorId: Scalars['String']['input']; actorType: ActorType; scopeId: Scalars['String']['input']; }; /** Root query type */ export type QueryEntitlementArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryEntitlementActivationsArgs = { entitlementId: Scalars['ID']['input']; }; /** Root query type */ export type QueryEntitlementSeatSummaryArgs = { entitlementId: Scalars['ID']['input']; }; /** Root query type */ export type QueryEntitlementSeatsArgs = { entitlementId: Scalars['ID']['input']; }; /** Root query type */ export type QueryEntitlementUsageArgs = { entitlementId: Scalars['ID']['input']; metricType?: InputMaybe; }; /** Root query type */ export type QueryEntitlementsArgs = { status?: InputMaybe; workspaceId?: InputMaybe; }; /** Root query type */ export type QueryEstimateNewsletterRecipientsArgs = { id: Scalars['ID']['input']; plans?: InputMaybe>; products?: InputMaybe>; recipientType: NewsletterRecipientType; segmentConfig?: InputMaybe; }; /** Root query type */ export type QueryEstimateOrderShippingArgs = { input: OrderShippingEstimateInput; }; /** Root query type */ export type QueryEvaluateFeatureFlagsArgs = { input: EvaluateFeatureFlagsInput; }; /** Root query type */ export type QueryExploreAdminConversationArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryExploreAdminConversationsArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; sort?: InputMaybe; }; /** Root query type */ export type QueryExploreAdminStatsArgs = { filter?: InputMaybe; }; /** Root query type */ export type QueryExploreAgentJobArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryExploreCatalogArgs = { productSlug?: InputMaybe; }; /** Root query type */ export type QueryExploreConversationMessagesArgs = { conversationToken: Scalars['String']['input']; limit?: InputMaybe; }; /** Root query type */ export type QueryExploreMessageArgs = { conversationToken: Scalars['String']['input']; id: Scalars['ID']['input']; }; /** Root query type */ export type QueryExploreSharedConversationArgs = { limit?: InputMaybe; shareToken: Scalars['String']['input']; }; /** Root query type */ export type QueryExportOrganizationsCsvArgs = { filter?: InputMaybe; limit?: InputMaybe; }; /** Root query type */ export type QueryExportSubscribersArgs = { platformProductId?: InputMaybe; subscribed?: InputMaybe; }; /** Root query type */ export type QueryExportTenantsCsvArgs = { filter?: InputMaybe; limit?: InputMaybe; }; /** Root query type */ export type QueryExportTranslationsArgs = { format: ImportJobFormat; languageCode?: InputMaybe; productId: Scalars['String']['input']; }; /** Root query type */ export type QueryFaqArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryFaqsArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryFaqsByCategoryArgs = { category: FaqCategory; limit?: InputMaybe; }; /** Root query type */ export type QueryFeatureFlagArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryFeatureFlagByKeyArgs = { key: Scalars['String']['input']; }; /** Root query type */ export type QueryFeatureFlagsArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryFeaturedProductsArgs = { limit?: InputMaybe; }; /** Root query type */ export type QueryFilterOptionsArgs = { type?: InputMaybe; withProducts?: InputMaybe; }; /** Root query type */ export type QueryGetActivePromotionsArgs = { planId?: InputMaybe; productId?: InputMaybe; }; /** Root query type */ export type QueryGetActiveSubscriptionsArgs = { billingAccountId: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetAddonPriceHistoryArgs = { addonId: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetAllAddOnsArgs = { filter?: InputMaybe; limit?: InputMaybe; }; /** Root query type */ export type QueryGetAllPlansArgs = { filter?: InputMaybe; }; /** Root query type */ export type QueryGetAllQuotasAssignmentArgs = { amountMax?: InputMaybe; amountMin?: InputMaybe; billingAccountId: Scalars['ID']['input']; fromDate?: InputMaybe; page?: InputMaybe; pageSize?: InputMaybe; searchQuery?: InputMaybe; sortBy?: InputMaybe; sortOrder?: InputMaybe; status?: InputMaybe>; toDate?: InputMaybe; }; /** Root query type */ export type QueryGetAllQuotasOfSubArgs = { billingAccountId: Scalars['ID']['input']; subscriptionId: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetAllRecurringBillingPlansArgs = { entityType?: InputMaybe; isActive?: InputMaybe; }; /** Root query type */ export type QueryGetApplicationTagsArgs = { input: GetApplicationTagsInput; }; /** Root query type */ export type QueryGetAvailableTagsAndResourceTypesArgs = { billingAccountId: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetBillingAccountArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetBillingAccountCreditTransactionsArgs = { billingAccountID: Scalars['ID']['input']; days: Scalars['Int']['input']; page?: InputMaybe; pageSize?: InputMaybe; }; /** Root query type */ export type QueryGetBillingAccountQuotasSummaryArgs = { billingAccountId: Scalars['ID']['input']; productId?: InputMaybe; }; /** Root query type */ export type QueryGetBillingAddressArgs = { billingAccountId: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetBillingOrderArgs = { billingAccountId: Scalars['ID']['input']; id: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetBillingOrderCallbacksArgs = { callbackStatus?: InputMaybe; externalService?: InputMaybe; hasError?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryGetBillingWebhookLogsArgs = { hasError?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; processed?: InputMaybe; provider?: InputMaybe; }; /** Root query type */ export type QueryGetChannelArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetChannelConnectionTagsArgs = { input: GetChannelConnectionTagsInput; }; /** Root query type */ export type QueryGetChannelDeliveryAttemptsArgs = { channelId: Scalars['ID']['input']; cursor?: InputMaybe; limit?: InputMaybe; }; /** Root query type */ export type QueryGetChannelOrgSettingsArgs = { organizationId: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetChannelStatsArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetChannelTagsArgs = { input: GetChannelTagsInput; }; /** Root query type */ export type QueryGetChannelWebhookEventsArgs = { channelId: Scalars['ID']['input']; cursor?: InputMaybe; limit?: InputMaybe; }; /** Root query type */ export type QueryGetChannelsArgs = { filter?: InputMaybe; pagination?: InputMaybe; }; /** Root query type */ export type QueryGetChannelsByOrganizationArgs = { organizationId: Scalars['ID']['input']; pagination?: InputMaybe; }; /** Root query type */ export type QueryGetChannelsByPlatformArgs = { organizationId?: InputMaybe; pagination?: InputMaybe; platform: ChannelPlatform; }; /** Root query type */ export type QueryGetChannelsForFailoverArgs = { organizationId: Scalars['ID']['input']; platform: ChannelPlatform; }; /** Root query type */ export type QueryGetChargeArgs = { billingAccountId: Scalars['ID']['input']; id: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetChargesArgs = { status?: InputMaybe; }; /** Root query type */ export type QueryGetConnectionArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetConnectionByChannelArgs = { channelId: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetConnectionStatusArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetConnectionsByOrganizationArgs = { cursor?: InputMaybe; organizationId: Scalars['ID']['input']; pagination?: InputMaybe; }; /** Root query type */ export type QueryGetCostOfCreditsArgs = { creditAmount: Scalars['Float']['input']; currency: Scalars['String']['input']; }; /** Root query type */ export type QueryGetCouponArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetCouponByCodeArgs = { code: Scalars['String']['input']; }; /** Root query type */ export type QueryGetCouponUsageHistoryArgs = { couponId?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; userId?: InputMaybe; }; /** Root query type */ export type QueryGetCreditBalanceByTypeArgs = { billingAccountId: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetCreditTransactionDetailsArgs = { billingAccountId: Scalars['ID']['input']; creditTransactionID: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetDefaultBillingAccountByOrgIdArgs = { orgId: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetDefaultPaymentMethodArgs = { billingAccountId: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetDeliveryAttemptArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetDeliveryStatsArgs = { channelId: Scalars['ID']['input']; endDate?: InputMaybe; startDate?: InputMaybe; }; /** Root query type */ export type QueryGetDiscountArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetDiscountByCodeArgs = { code: Scalars['String']['input']; }; /** Root query type */ export type QueryGetEntitlementArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetExternalOidcConfigArgs = { identifier: Scalars['String']['input']; }; /** Root query type */ export type QueryGetFailedBillingOrderCallbacksArgs = { limit?: InputMaybe; }; /** Root query type */ export type QueryGetFailedDeliveryAttemptsArgs = { channelId?: InputMaybe; cursor?: InputMaybe; limit?: InputMaybe; }; /** Root query type */ export type QueryGetFailedWebhookEventsArgs = { channelId?: InputMaybe; cursor?: InputMaybe; limit?: InputMaybe; }; /** Root query type */ export type QueryGetInvoiceArgs = { billingAccountId: Scalars['ID']['input']; id: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetInvoiceByNumberArgs = { billingAccountId: Scalars['ID']['input']; invoiceNumber: Scalars['String']['input']; }; /** Root query type */ export type QueryGetInvoicesArgs = { billingAccountId?: InputMaybe; status?: InputMaybe; }; /** Root query type */ export type QueryGetItemEntitlementsArgs = { itemId: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetOAuthAuthorizationUrlArgs = { platform: ChannelPlatform; redirectUri: Scalars['String']['input']; }; /** Root query type */ export type QueryGetPaginatedInvoicesArgs = { billingAccountId?: InputMaybe; page?: InputMaybe; pageSize?: InputMaybe; search?: InputMaybe; status?: InputMaybe; }; /** Root query type */ export type QueryGetPaginatedSubscriptionsArgs = { billingAccountId: Scalars['ID']['input']; page?: InputMaybe; pageSize?: InputMaybe; search?: InputMaybe; }; /** Root query type */ export type QueryGetPaymentArgs = { billingAccountId: Scalars['ID']['input']; id: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetPaymentMethodsArgs = { billingAccountId: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetPaymentsArgs = { status?: InputMaybe; }; /** Root query type */ export type QueryGetPendingRefundsArgs = { page?: InputMaybe; pageSize?: InputMaybe; }; /** Root query type */ export type QueryGetPlanArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetPlanEntitlementsArgs = { planId: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetPlanPriceHistoryArgs = { planId: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetPromotionArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetQuotaAnalyticsArgs = { billingAccountId: Scalars['ID']['input']; period?: InputMaybe; quotaAssignmentId: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetQuotaAssignmentsWithAnalyticsArgs = { amountMax?: InputMaybe; amountMin?: InputMaybe; billingAccountId: Scalars['ID']['input']; fromDate?: InputMaybe; page?: InputMaybe; pageSize?: InputMaybe; searchQuery?: InputMaybe; sortBy?: InputMaybe; sortOrder?: InputMaybe; status?: InputMaybe>; toDate?: InputMaybe; }; /** Root query type */ export type QueryGetQuotaUsageAndLimitArgs = { billingAccountId: Scalars['ID']['input']; productId?: InputMaybe; quotaName: Scalars['String']['input']; }; /** Root query type */ export type QueryGetQuotaUsageDetailsArgs = { amountMax?: InputMaybe; amountMin?: InputMaybe; billingAccountId: Scalars['ID']['input']; entity?: InputMaybe; fromDate?: InputMaybe; page?: InputMaybe; pageSize?: InputMaybe; quotaAssignmentId: Scalars['ID']['input']; resourceType?: InputMaybe; searchQuery?: InputMaybe; sortBy?: InputMaybe; sortOrder?: InputMaybe; tags?: InputMaybe>; toDate?: InputMaybe; }; /** Root query type */ export type QueryGetRecurringBillingPlanArgs = { currency: Scalars['String']['input']; entityId: Scalars['String']['input']; entityType: Scalars['String']['input']; }; /** Root query type */ export type QueryGetRecurringBillingPlansByTypeArgs = { entityType: Scalars['String']['input']; }; /** Root query type */ export type QueryGetReferralCodeByCodeArgs = { code: Scalars['String']['input']; }; /** Root query type */ export type QueryGetRefundRecordArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetRefundRecordsArgs = { billingAccountId?: InputMaybe; fromDate?: InputMaybe; hasError?: InputMaybe; orgIdFilter?: InputMaybe; page?: InputMaybe; pageSize?: InputMaybe; provider?: InputMaybe; search?: InputMaybe; source?: InputMaybe; status?: InputMaybe; toDate?: InputMaybe; }; /** Root query type */ export type QueryGetSsoConfigArgs = { tenantId: Scalars['String']['input']; }; /** Root query type */ export type QueryGetSelectedAddonsArgs = { addonIDs: Array; }; /** Root query type */ export type QueryGetStorageLimitForOrgArgs = { orgId: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetStoreOrderArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetStoreOrdersByBillingAccountArgs = { billingAccountId: Scalars['ID']['input']; limit?: InputMaybe; offset?: InputMaybe; status?: InputMaybe; }; /** Root query type */ export type QueryGetStoreOrdersByUserArgs = { limit?: InputMaybe; offset?: InputMaybe; status?: InputMaybe; userId: Scalars['String']['input']; }; /** Root query type */ export type QueryGetStoreProductTagsArgs = { input: GetStoreProductTagsInput; }; /** Root query type */ export type QueryGetSubscriptionArgs = { billingAccountId: Scalars['ID']['input']; id: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetSubscriptionUsageOverviewArgs = { billingAccountId: Scalars['ID']['input']; includeExpired?: InputMaybe; onlyExpired?: InputMaybe; page?: InputMaybe; pageSize?: InputMaybe; productId?: InputMaybe; searchQuery?: InputMaybe; }; /** Root query type */ export type QueryGetSubscriptionUsagesArgs = { billingAccountId: Scalars['ID']['input']; entity?: InputMaybe; fromDate?: InputMaybe; page?: InputMaybe; pageSize?: InputMaybe; resourceType?: InputMaybe; searchQuery?: InputMaybe; toDate?: InputMaybe; }; /** Root query type */ export type QueryGetTaxRatesArgs = { active?: InputMaybe; country?: InputMaybe; }; /** Root query type */ export type QueryGetTransactionArgs = { billingAccountId?: InputMaybe; id: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetTransactionsByBillingAccountArgs = { billingAccountId: Scalars['ID']['input']; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryGetUsageDashboardArgs = { billingAccountId: Scalars['ID']['input']; period?: InputMaybe; }; /** Root query type */ export type QueryGetUserPlatformConnectionArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetUserPlatformConnectionByExternalIdArgs = { channelId: Scalars['ID']['input']; externalUserId: Scalars['String']['input']; }; /** Root query type */ export type QueryGetWebhookEventArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryGetWebhookStatsArgs = { channelId: Scalars['ID']['input']; endDate?: InputMaybe; startDate?: InputMaybe; }; /** Root query type */ export type QueryHomeGroupedProductsArgs = { compatibleWith?: InputMaybe; }; /** Root query type */ export type QueryHomepageSectionsArgs = { storeId: Scalars['ID']['input']; }; /** Root query type */ export type QueryI18nModuleArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryI18nModulesArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryI18nNamespaceArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryI18nNamespacesArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryI18nProductArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryI18nProductByNameArgs = { name: Scalars['String']['input']; }; /** Root query type */ export type QueryI18nProductsArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryImportJobArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryImportJobsArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryInitiateDigestChallengeArgs = { realm?: InputMaybe; }; /** Root query type */ export type QueryInstallableApplicationVersionsArgs = { applicationId: Scalars['ID']['input']; }; /** Root query type */ export type QueryInstallationPermissionsArgs = { installationId: Scalars['ID']['input']; }; /** Root query type */ export type QueryInterviewRoundArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryInterviewerArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryInterviewersArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryInventoryAdjustmentsArgs = { limit?: InputMaybe; offset?: InputMaybe; productId: Scalars['ID']['input']; }; /** Root query type */ export type QueryIsAppAuthorizedForWorkspaceArgs = { appId: Scalars['ID']['input']; workspaceId: Scalars['ID']['input']; }; /** Root query type */ export type QueryIsAppInstalledArgs = { productId: Scalars['String']['input']; workspaceId: Scalars['String']['input']; }; /** Root query type */ export type QueryIsEmailSuppressedArgs = { email: Scalars['String']['input']; platformProductId: Scalars['String']['input']; }; /** Root query type */ export type QueryIsSsoEnabledArgs = { tenantId: Scalars['String']['input']; }; /** Root query type */ export type QueryIsSuppressedArgs = { channel: SuppressionChannel; identifier: Scalars['String']['input']; identifierType: Scalars['String']['input']; }; /** Root query type */ export type QueryJobApplicationArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryJobApplicationInterviewRoundsArgs = { applicationId: Scalars['ID']['input']; }; /** Root query type */ export type QueryJobApplicationResumePreviewUrlArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryJobApplicationResumeUrlArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryJobApplicationsArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryJobAssignmentsArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryJobExecutionArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryJobExecutionsArgs = { jobId: Scalars['ID']['input']; pagination?: InputMaybe; }; /** Root query type */ export type QueryJobPostingArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryJobPostingsArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryKeyboardShortcutArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryKeyboardShortcutsArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryKnowledgeBaseArticleArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryKnowledgeBaseArticleBySlugArgs = { slug: Scalars['String']['input']; }; /** Root query type */ export type QueryKnowledgeBaseArticlesArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryLanguageArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryLanguageByCodeArgs = { code: Scalars['String']['input']; }; /** Root query type */ export type QueryLanguagesArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryLegalHoldsArgs = { filter?: InputMaybe; pagination?: InputMaybe; }; /** Root query type */ export type QueryListCouponsArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryListPromotionsArgs = { includeInactive?: InputMaybe; }; /** Root query type */ export type QueryListReferralCodesArgs = { limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryListSyncOutboxEntriesArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryListUserPlatformConnectionsByChannelArgs = { channelId: Scalars['ID']['input']; cursor?: InputMaybe; filter?: InputMaybe; pagination?: InputMaybe; }; /** Root query type */ export type QueryListUserPlatformConnectionsByOrganizationArgs = { cursor?: InputMaybe; filter?: InputMaybe; organizationId: Scalars['ID']['input']; pagination?: InputMaybe; }; /** Root query type */ export type QueryListUserPlatformConnectionsByUserArgs = { cursor?: InputMaybe; filter?: InputMaybe; internalUserId: Scalars['ID']['input']; }; /** Root query type */ export type QueryListUserShippingAddressesArgs = { userId: Scalars['String']['input']; }; /** Root query type */ export type QueryLookupAffiliateCodeArgs = { code: Scalars['String']['input']; }; /** Root query type */ export type QueryLowStockProductsArgs = { storeId?: InputMaybe; }; /** Root query type */ export type QueryMyAccessibleProductsArgs = { limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryMyActivityLogsArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryMyAffiliateCodesArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryMyApiKeysArgs = { pagination?: InputMaybe; }; /** Root query type */ export type QueryMyAppInstallationsArgs = { limit?: InputMaybe; offset?: InputMaybe; status?: InputMaybe; }; /** Root query type */ export type QueryMyAppReviewArgs = { applicationId: Scalars['ID']['input']; }; /** Root query type */ export type QueryMyAuthorizedWorkspacesArgs = { limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryMyContactInquiriesArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryMyEarningsEntriesArgs = { billingAccountId: Scalars['ID']['input']; filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryMyEarningsSummaryArgs = { billingAccountId: Scalars['ID']['input']; }; /** Root query type */ export type QueryMyEntitlementsArgs = { limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryMyOrdersArgs = { limit?: InputMaybe; offset?: InputMaybe; status?: InputMaybe; }; /** Root query type */ export type QueryMyOrganizationInviteArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryMyOrganizationInvitesArgs = { limit?: InputMaybe; offset?: InputMaybe; status?: InputMaybe; }; /** Root query type */ export type QueryMyOrganizationsArgs = { limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryMyPasskeysArgs = { pagination?: InputMaybe; }; /** Root query type */ export type QueryMyPayoutAccountsArgs = { billingAccountId: Scalars['ID']['input']; }; /** Root query type */ export type QueryMyPayoutRequestsArgs = { billingAccountId: Scalars['ID']['input']; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryMyPermissionsArgs = { scopeId: Scalars['String']['input']; }; /** Root query type */ export type QueryMyPublicKeysArgs = { pagination?: InputMaybe; }; /** Root query type */ export type QueryMyReviewsArgs = { limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryMyRolesArgs = { scopeId: Scalars['String']['input']; }; /** Root query type */ export type QueryMySourcingOfferArgs = { requestId: Scalars['ID']['input']; }; /** Root query type */ export type QueryMySourcingOffersArgs = { limit?: InputMaybe; offset?: InputMaybe; status?: InputMaybe; }; /** Root query type */ export type QueryMySourcingRequestArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryMySourcingRequestsArgs = { limit?: InputMaybe; offset?: InputMaybe; status?: InputMaybe; }; /** Root query type */ export type QueryMyStoreAppInstallationsArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryMySupportTicketsArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryMySurveysArgs = { limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryMyTenantsArgs = { limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryMyUnreadNotificationCountArgs = { filter?: InputMaybe; }; /** Root query type */ export type QueryMyUserPlatformConnectionArgs = { channelId: Scalars['ID']['input']; }; /** Root query type */ export type QueryMyWaitlistStatusArgs = { email: Scalars['String']['input']; platformProductId: Scalars['String']['input']; }; /** Root query type */ export type QueryMyWalletsArgs = { pagination?: InputMaybe; }; /** Root query type */ export type QueryMyWorkspacesArgs = { limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryNewsletterArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryNewsletterAutomationArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryNewsletterAutomationsArgs = { enabled?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; platformProductId?: InputMaybe; }; /** Root query type */ export type QueryNewsletterBySlugArgs = { slug: Scalars['String']['input']; }; /** Root query type */ export type QueryNewsletterListArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryNewsletterListsArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryNewsletterTemplateArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryNewsletterTemplateVersionsArgs = { templateId: Scalars['ID']['input']; }; /** Root query type */ export type QueryNewsletterTemplatesArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryNewsletterVariantArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryNewsletterVariantsArgs = { newsletterId: Scalars['ID']['input']; }; /** Root query type */ export type QueryNewslettersArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryNodeSandboxBuildChecksArgs = { applicationVersionId?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryNotificationArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryNotificationEventsArgs = { notificationId: Scalars['ID']['input']; }; /** Root query type */ export type QueryNotificationHistoriesArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryNotificationHistoryArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryNotificationPreferenceArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryNotificationPreferencesArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryNotificationStatsArgs = { filter?: InputMaybe; }; /** Root query type */ export type QueryNotificationTemplateArgs = { locale?: InputMaybe; slug: Scalars['String']['input']; }; /** Root query type */ export type QueryNotificationTemplatesArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryNotificationTopicArgs = { id?: InputMaybe; slug?: InputMaybe; }; /** Root query type */ export type QueryNotificationTopicsArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryNotificationsArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryOpenInventoryAlertsArgs = { storeId?: InputMaybe; }; /** Root query type */ export type QueryOpenSourcingRequestsArgs = { category?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryOrderEstimateArgs = { input: OrderEstimateInput; }; /** Root query type */ export type QueryOrderFulfillmentArgs = { orderId: Scalars['ID']['input']; }; /** Root query type */ export type QueryOrderFulfillmentAttemptsArgs = { carrier?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; orderId?: InputMaybe; succeeded?: InputMaybe; }; /** Root query type */ export type QueryOrderIssueFlagsArgs = { orderId: Scalars['ID']['input']; }; /** Root query type */ export type QueryOrganizationArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryOrganizationAuditLogsConnectionArgs = { action?: InputMaybe; actorId?: InputMaybe; after?: InputMaybe; first?: InputMaybe; organizationId: Scalars['ID']['input']; }; /** Root query type */ export type QueryOrganizationBySlugArgs = { slug: Scalars['String']['input']; tenantId: Scalars['String']['input']; }; /** Root query type */ export type QueryOrganizationInvitesArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; organizationId: Scalars['String']['input']; }; /** Root query type */ export type QueryOrganizationKindArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryOrganizationMemberIdentitiesArgs = { organizationId: Scalars['String']['input']; userIds: Array; }; /** Root query type */ export type QueryOrganizationMembersArgs = { limit?: InputMaybe; offset?: InputMaybe; organizationId: Scalars['String']['input']; }; /** Root query type */ export type QueryOrganizationPickupPostalCodeArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryPendingDeveloperOrganizationVerificationsArgs = { limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryPendingPublishersArgs = { limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryPendingReviewProductsArgs = { limit?: InputMaybe; offset?: InputMaybe; storeId?: InputMaybe; }; /** Root query type */ export type QueryPendingScheduledNotificationsArgs = { before?: InputMaybe; limit?: InputMaybe; }; /** Root query type */ export type QueryPendingSurveysArgs = { limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryPermissionAuditLogArgs = { filter?: InputMaybe; pagination?: InputMaybe; scopeId: Scalars['String']['input']; }; /** Root query type */ export type QueryPlatformProductArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryPlatformProductBySlugArgs = { slug: Scalars['String']['input']; }; /** Root query type */ export type QueryPlatformProductsArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryPolicyReferenceArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryPolicyReferencesArgs = { filter?: InputMaybe; pagination?: InputMaybe; }; /** Root query type */ export type QueryPopularArticlesArgs = { limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryPopularCannedResponsesArgs = { limit?: InputMaybe; }; /** Root query type */ export type QueryPopularFaQsArgs = { limit?: InputMaybe; }; /** Root query type */ export type QueryPressKitAssetArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryPressKitAssetsArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; productId?: InputMaybe; }; /** Root query type */ export type QueryPreviewScheduleArgs = { count?: InputMaybe; cronExpression?: InputMaybe; endDate?: InputMaybe; interval?: InputMaybe; intervalUnit?: InputMaybe; rrule?: InputMaybe; scheduleType: ScheduleType; startDate?: InputMaybe; timezone?: InputMaybe; }; /** Root query type */ export type QueryProductArgs = { billingAccountId?: InputMaybe; id: Scalars['ID']['input']; }; /** Root query type */ export type QueryProductAssetsArgs = { fileType?: InputMaybe; productId: Scalars['ID']['input']; }; /** Root query type */ export type QueryProductBySlugArgs = { slug: Scalars['String']['input']; }; /** Root query type */ export type QueryProductDownloadsArgs = { productId: Scalars['String']['input']; }; /** Root query type */ export type QueryProductInstallationsArgs = { limit?: InputMaybe; offset?: InputMaybe; productId: Scalars['String']['input']; status?: InputMaybe; }; /** Root query type */ export type QueryProductOrdersArgs = { input: ItemOrdersInput; }; /** Root query type */ export type QueryProductReleasesArgs = { productId: Scalars['ID']['input']; }; /** Root query type */ export type QueryProductReviewsArgs = { limit?: InputMaybe; offset?: InputMaybe; productId: Scalars['String']['input']; status?: InputMaybe; }; /** Root query type */ export type QueryProductShortcutsArgs = { category?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; productId: Scalars['ID']['input']; }; /** Root query type */ export type QueryProductTourStatisticsArgs = { productId: Scalars['String']['input']; }; /** Root query type */ export type QueryProductsArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryPseudoLocaleStatsArgs = { productCode: Scalars['String']['input']; }; /** Root query type */ export type QueryPublicAddonsArgs = { productId: Scalars['String']['input']; }; /** Root query type */ export type QueryPublicContentPageArgs = { productId?: InputMaybe; slug: Scalars['String']['input']; }; /** Root query type */ export type QueryPublicContentPagesArgs = { limit?: InputMaybe; offset?: InputMaybe; productId: Scalars['String']['input']; tag?: InputMaybe; }; /** Root query type */ export type QueryPublicJobPostingArgs = { productId?: InputMaybe; slug: Scalars['String']['input']; }; /** Root query type */ export type QueryPublicJobPostingsArgs = { limit?: InputMaybe; offset?: InputMaybe; productId?: InputMaybe; }; /** Root query type */ export type QueryPublicJobPostingsForSubmissionArgs = { limit?: InputMaybe; offset?: InputMaybe; productId?: InputMaybe; }; /** Root query type */ export type QueryPublicPlansArgs = { productId: Scalars['String']['input']; }; /** Root query type */ export type QueryPublicPressKitAssetsArgs = { category?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; productId: Scalars['String']['input']; }; /** Root query type */ export type QueryPublicProductArgs = { slug: Scalars['String']['input']; }; /** Root query type */ export type QueryPublicProductsArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryPublicResolvedContentPageArgs = { productId: Scalars['String']['input']; slug: Scalars['String']['input']; }; /** Root query type */ export type QueryPublicScheduleTemplatesArgs = { filter?: InputMaybe; pagination?: InputMaybe; }; /** Root query type */ export type QueryPublishedProductsArgs = { category?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; type?: InputMaybe; }; /** Root query type */ export type QueryPushDevicesForUserInternalArgs = { productSlug: Scalars['String']['input']; userId: Scalars['ID']['input']; }; /** Root query type */ export type QueryQuoteAiCreditsArgs = { inputTokens: Scalars['Int']['input']; model: Scalars['String']['input']; outputTokens: Scalars['Int']['input']; }; /** Root query type */ export type QueryRbacAnalyticsArgs = { dateRange?: InputMaybe; scopeId: Scalars['String']['input']; }; /** Root query type */ export type QueryRbacChangeHistoryArgs = { filter?: InputMaybe; pagination?: InputMaybe; scopeId: Scalars['String']['input']; }; /** Root query type */ export type QueryRbacConfigArgs = { scopeId: Scalars['String']['input']; }; /** Root query type */ export type QueryRbacConfigValueArgs = { key: Scalars['String']['input']; scopeId: Scalars['String']['input']; }; /** Root query type */ export type QueryRecentArticlesArgs = { limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryReleaseAuditEventsArgs = { releaseId: Scalars['ID']['input']; }; /** Root query type */ export type QueryReleaseTracksArgs = { productId: Scalars['ID']['input']; }; /** Root query type */ export type QueryResolvedContentPageArgs = { productId: Scalars['String']['input']; slug: Scalars['String']['input']; }; /** Root query type */ export type QueryResourceArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryResourceTreeArgs = { resourceType?: InputMaybe; scopeId: Scalars['String']['input']; }; /** Root query type */ export type QueryResourceTypesArgs = { includeUnmapped?: InputMaybe; product?: InputMaybe; }; /** Root query type */ export type QueryResourceTypesWithProductsArgs = { product?: InputMaybe; }; /** Root query type */ export type QueryResourcesArgs = { filter?: InputMaybe; pagination?: InputMaybe; scopeId: Scalars['String']['input']; }; /** Root query type */ export type QueryReviewArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryReviewRepliesArgs = { reviewId: Scalars['ID']['input']; }; /** Root query type */ export type QueryRoleArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryRoleMembersArgs = { pagination?: InputMaybe; roleId: Scalars['ID']['input']; }; /** Root query type */ export type QueryRolesArgs = { filter?: InputMaybe; pagination?: InputMaybe; scopeId: Scalars['String']['input']; }; /** Root query type */ export type QuerySatisfactionMetricsArgs = { filter?: InputMaybe; }; /** Root query type */ export type QueryScheduleTemplateArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryScheduleTemplatesArgs = { filter?: InputMaybe; pagination?: InputMaybe; }; /** Root query type */ export type QueryScheduleVersionHistoryArgs = { pagination?: InputMaybe; scheduleId: Scalars['ID']['input']; }; /** Root query type */ export type QueryScheduledJobArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryScheduledJobsArgs = { filter?: InputMaybe; pagination?: InputMaybe; }; /** Root query type */ export type QueryScheduledNotificationArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryScheduledNotificationsArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryScimTokensArgs = { workspaceId: Scalars['ID']['input']; }; /** Root query type */ export type QuerySearchCannedResponsesArgs = { limit?: InputMaybe; query: Scalars['String']['input']; }; /** Root query type */ export type QuerySearchChannelsArgs = { limit?: InputMaybe; organizationId?: InputMaybe; query: Scalars['String']['input']; }; /** Root query type */ export type QuerySearchFaQsArgs = { category?: InputMaybe; limit?: InputMaybe; query: Scalars['String']['input']; }; /** Root query type */ export type QuerySearchKnowledgeBaseArgs = { categoryId?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; query: Scalars['String']['input']; }; /** Root query type */ export type QuerySearchProductsArgs = { limit?: InputMaybe; offset?: InputMaybe; query: Scalars['String']['input']; }; /** Root query type */ export type QuerySearchSuggestionsArgs = { limit?: InputMaybe; query: Scalars['String']['input']; types?: InputMaybe>; }; /** Root query type */ export type QuerySearchTicketTemplatesArgs = { limit?: InputMaybe; query: Scalars['String']['input']; }; /** Root query type */ export type QuerySearchTicketsArgs = { limit?: InputMaybe; query: Scalars['String']['input']; }; /** Root query type */ export type QueryServiceEarningsStatusArgs = { billingAccountId: Scalars['ID']['input']; ownerUserId?: InputMaybe; }; /** Root query type */ export type QuerySharedWorkflowArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QuerySlaPoliciesArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QuerySlaPolicyArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QuerySlaReportArgs = { filter?: InputMaybe; }; /** Root query type */ export type QuerySourcingOpportunityArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryStoreArgs = { id?: InputMaybe; slug?: InputMaybe; }; /** Root query type */ export type QueryStoreAppInstallationArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryStoreProductDetailsArgs = { input: StoreProductDetailsInput; }; /** Root query type */ export type QueryStoresArgs = { search?: InputMaybe; type?: InputMaybe; }; /** Root query type */ export type QuerySubprocessorArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QuerySubprocessorsArgs = { filter?: InputMaybe; pagination?: InputMaybe; }; /** Root query type */ export type QuerySubscriberArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QuerySubscriberByEmailArgs = { email: Scalars['String']['input']; platformProductId?: InputMaybe; }; /** Root query type */ export type QuerySubscriberConsentsArgs = { subscriberId: Scalars['ID']['input']; }; /** Root query type */ export type QuerySubscriberCountArgs = { platformProductId?: InputMaybe; subscribed?: InputMaybe; }; /** Root query type */ export type QuerySubscribersArgs = { limit?: InputMaybe; offset?: InputMaybe; platformProductId?: InputMaybe; subscribed?: InputMaybe; }; /** Root query type */ export type QuerySupportAnalyticsArgs = { filter?: InputMaybe; }; /** Root query type */ export type QuerySupportAttachmentArgs = { fileId: Scalars['ID']['input']; ticketId: Scalars['ID']['input']; }; /** Root query type */ export type QuerySupportMessageArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QuerySupportMessagesArgs = { limit?: InputMaybe; offset?: InputMaybe; ticketId: Scalars['String']['input']; }; /** Root query type */ export type QuerySupportStatsArgs = { filter?: InputMaybe; }; /** Root query type */ export type QuerySupportTicketArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QuerySupportTicketByNumberArgs = { ticketNumber: Scalars['String']['input']; }; /** Root query type */ export type QuerySupportTicketsArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QuerySuppressionEntryArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QuerySuppressionListArgs = { filter?: InputMaybe; pagination?: InputMaybe; }; /** Root query type */ export type QuerySuppressionsArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QuerySurveyByTicketArgs = { ticketId: Scalars['ID']['input']; }; /** Root query type */ export type QuerySyncOutboxEntryArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryTagArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryTagBySlugArgs = { slug: Scalars['String']['input']; }; /** Root query type */ export type QueryTenantArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryTenantBySlugArgs = { slug: Scalars['String']['input']; }; /** Root query type */ export type QueryTenantMembersArgs = { limit?: InputMaybe; offset?: InputMaybe; tenantId: Scalars['ID']['input']; }; /** Root query type */ export type QueryTenantRoutingInfoArgs = { tenantId: Scalars['ID']['input']; }; /** Root query type */ export type QueryTenantsArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryTestConnectionArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryTicketCategoriesArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryTicketCategoryArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryTicketCategoryBySlugArgs = { slug: Scalars['String']['input']; }; /** Root query type */ export type QueryTicketSlaStatusArgs = { ticketId: Scalars['ID']['input']; }; /** Root query type */ export type QueryTicketTemplateArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryTicketTemplatesArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryTicketTemplatesByCategoryArgs = { category: SupportTicketCategory; limit?: InputMaybe; }; /** Root query type */ export type QueryTicketTrendsArgs = { filter?: InputMaybe; }; /** Root query type */ export type QueryTopChartsArgs = { input: TopChartsInput; }; /** Root query type */ export type QueryTourArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryTourAnalyticsArgs = { tourId: Scalars['ID']['input']; }; /** Root query type */ export type QueryTourBySlugArgs = { slug: Scalars['String']['input']; }; /** Root query type */ export type QueryTourMediaArgs = { context?: InputMaybe; }; /** Root query type */ export type QueryTourScheduleArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryTourSchedulesArgs = { limit?: InputMaybe; offset?: InputMaybe; tourId: Scalars['ID']['input']; }; /** Root query type */ export type QueryTourStepAnalyticsArgs = { tourId: Scalars['ID']['input']; }; /** Root query type */ export type QueryTourTemplateArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryTourTemplatesArgs = { category?: InputMaybe; isPublic?: InputMaybe; }; /** Root query type */ export type QueryTourUserProgressArgs = { tourId: Scalars['ID']['input']; userId: Scalars['ID']['input']; }; /** Root query type */ export type QueryTourUserProgressListArgs = { pagination?: InputMaybe; tourId: Scalars['ID']['input']; }; /** Root query type */ export type QueryToursArgs = { filters?: InputMaybe; pagination?: InputMaybe; }; /** Root query type */ export type QueryToursForContextArgs = { context: TourContextInput; }; /** Root query type */ export type QueryTranslationArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryTranslationAuditArgs = { keyId: Scalars['String']['input']; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryTranslationByKeyArgs = { keyId: Scalars['String']['input']; languageCode: Scalars['String']['input']; }; /** Root query type */ export type QueryTranslationCoverageArgs = { productId: Scalars['String']['input']; }; /** Root query type */ export type QueryTranslationKeyArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryTranslationKeyByKeyArgs = { key: Scalars['String']['input']; productId: Scalars['String']['input']; }; /** Root query type */ export type QueryTranslationKeysArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryTranslationStatsArgs = { productId: Scalars['String']['input']; }; /** Root query type */ export type QueryTranslationsArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Root query type */ export type QueryTrendingSearchesArgs = { limit?: InputMaybe; type?: InputMaybe; }; /** Root query type */ export type QueryUserArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryUserBillingPlanArgs = { userId: Scalars['ID']['input']; }; /** Root query type */ export type QueryUserFeatureFlagPreferencesArgs = { limit?: InputMaybe; offset?: InputMaybe; workspaceId: Scalars['String']['input']; }; /** Root query type */ export type QueryUserLanguagePreferenceArgs = { userId: Scalars['ID']['input']; }; /** Root query type */ export type QueryUserReviewForProductArgs = { productId: Scalars['String']['input']; }; /** Root query type */ export type QueryUserTourProgressesArgs = { pagination?: InputMaybe; userId?: InputMaybe; }; /** Root query type */ export type QueryUsersArgs = { filter?: InputMaybe; pagination?: InputMaybe; }; /** Root query type */ export type QueryUsersByIdsArgs = { ids: Array; }; /** Root query type */ export type QueryValidateCouponArgs = { input: ValidateCouponInput; }; /** Root query type */ export type QueryValidateLicenseArgs = { licenseKey: Scalars['String']['input']; }; /** Root query type */ export type QueryValidatePromoCodeArgs = { code: Scalars['String']['input']; orderAmount: Scalars['Float']['input']; productIds: Array; }; /** Root query type */ export type QueryVerifyInstallationArgs = { installationId: Scalars['ID']['input']; signingSecret: Scalars['String']['input']; }; /** Root query type */ export type QueryVisibilityRulesArgs = { resourceIdentifier: Scalars['String']['input']; resourceType: Scalars['String']['input']; scopeId: Scalars['String']['input']; }; /** Root query type */ export type QueryWaitlistArgs = { filter?: InputMaybe; }; /** Root query type */ export type QueryWaitlistEntryArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryWebhookArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryWebhookDeliveriesArgs = { limit?: InputMaybe; offset?: InputMaybe; webhookId: Scalars['ID']['input']; }; /** Root query type */ export type QueryWebhookDeliveryArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryWebhooksArgs = { applicationId: Scalars['ID']['input']; }; /** Root query type */ export type QueryWorkspaceArgs = { id: Scalars['ID']['input']; }; /** Root query type */ export type QueryWorkspaceBySlugArgs = { slug: Scalars['String']['input']; tenantId: Scalars['String']['input']; }; /** Root query type */ export type QueryWorkspaceFeatureFlagOverridesArgs = { limit?: InputMaybe; offset?: InputMaybe; workspaceId: Scalars['String']['input']; }; /** Root query type */ export type QueryWorkspaceMembersArgs = { limit?: InputMaybe; offset?: InputMaybe; workspaceId: Scalars['String']['input']; }; /** Root query type */ export type QueryWorkspacePublicDetailsArgs = { workspaceId: Scalars['ID']['input']; }; /** Root query type */ export type QueryWorkspaceRoutingArgs = { workspaceId: Scalars['ID']['input']; }; /** Root query type */ export type QueryWorkspaceStoreOrdersArgs = { billingAccountId: Scalars['ID']['input']; limit: Scalars['Int']['input']; page: Scalars['Int']['input']; search?: InputMaybe; status?: InputMaybe; }; export type Quota = { __typename?: 'Quota'; /** Additional context */ context?: Maybe; /** The timestamp when the quota was created. */ createdAt?: Maybe; /** The unique identifier for the Quota, automatically generated as a UUID. */ id?: Maybe; /** A Quota is active or not */ isActive?: Maybe; /** A JSON object defining the limits associated with the quota, such as message limits, bot creation limits, etc. */ limits?: Maybe; /** The name of the quota, used for identification purposes. */ name?: Maybe; /** Defines whether this quota template is pooled (shared across products) or product-specific. */ quotaType?: Maybe; /** When does usage reset for assignments of this quota? NEVER = static limit (seats, agents, storage cap) DAILY = resets each day at midnight UTC (API requests/day, AI sessions/day) MONTHLY = resets at the start of each billing cycle */ resetPeriod?: Maybe; /** A Quota is reusable or not (e.g., bot,seats). */ reusable?: Maybe; /** Where quota enforcement lives for this quota template. WORKSPACE -> wspace-activity-svc WorkspaceQuotaAssignment (per-workspace tracking) GLOBAL -> billing-svc QuotaAssignment (org-level tracking) */ scope?: Maybe; /** The subscriptions that include this quota. SubscriptionFeatures represent features and quotas associated with subscriptions. */ subscriptions?: Maybe>>; /** The timestamp when the quota was last updated. */ updatedAt?: Maybe; }; export type QuotaAssignment = { __typename?: 'QuotaAssignment'; /** The billing account associated with this quota assignment (for POOLED quotas). */ billingAccount?: Maybe; /** The unique identifier for the billing account associated with this quota assignment (for POOLED quotas). */ billingAccountId?: Maybe; /** Additional context */ context?: Maybe; /** The timestamp when the quota assignment was created. */ createdAt?: Maybe; /** Current usage sum for this quota assignment. */ currentUsageSum?: Maybe; /** The end time when the quota assignment expires. */ endtime?: Maybe; /** The unique identifier for the QuotaAssignment, automatically generated as a UUID. */ id?: Maybe; /** When limits were last restored to their original value by the reset job. Null means this assignment has never been reset in-place. The daily QuotaResetWorkflow uses this to find assignments that need resetting. */ lastResetAt?: Maybe; /** A JSON object defining the limits associated with the assigned quota (e.g., data caps, usage limits). */ limits?: Maybe; /** The name of the quota assigned. */ name?: Maybe; /** The type of quota - POOLED (billing account level) or PRODUCT_SPECIFIC (subscription level). */ quotaType?: Maybe; /** Copied from parent Quota.resetPeriod at creation. Tells the reset job how often limits.value should be restored. DAILY = restore every midnight UTC. */ resetPeriod?: Maybe; /** A Quota is reusable or not (e.g., bot,seats). */ reusable?: Maybe; /** The subscription associated with this quota assignment (for PRODUCT_SPECIFIC quotas). */ subscription?: Maybe; /** The unique identifier for the subscription associated with this quota assignment (for PRODUCT_SPECIFIC quotas). */ subscriptionId?: Maybe; /** Total usage count for this quota assignment. */ totalUsageCount?: Maybe; /** Usage analytics for this quota assignment. */ usageAnalytics?: Maybe; /** The usages associated with this quota assignment. For paginated results, use getQuotaUsageDetails query. */ usages?: Maybe>>; }; export type QuotaAssignmentSummary = { __typename?: 'QuotaAssignmentSummary'; context?: Maybe; createdAt?: Maybe; currentUsageSum?: Maybe; endtime?: Maybe; id?: Maybe; limits?: Maybe; name?: Maybe; usageCount?: Maybe; usages?: Maybe>>; }; /** Summary of a single quota assignment with usage details */ export type QuotaAssignmentUsageSummary = { __typename?: 'QuotaAssignmentUsageSummary'; context?: Maybe; createdAt: Scalars['DateTime']['output']; endtime: Scalars['DateTime']['output']; id: Scalars['ID']['output']; /** Original limit value */ limit: Scalars['Float']['output']; /** Current remaining limit (limit - used) */ limitLeft: Scalars['Float']['output']; name: Scalars['String']['output']; /** Whether this quota has no limit (non-numeric type) */ noLimit: Scalars['Boolean']['output']; quotaType: QuotaType; reusable: Scalars['Boolean']['output']; /** Subscription ID if PRODUCT_SPECIFIC */ subscriptionId?: Maybe; /** Usage percentage (used / limit * 100) */ usagePercentage: Scalars['Float']['output']; /** Total usage amount (sum of all usage records) */ used: Scalars['Float']['output']; }; export type QuotaAssignmentWithAnalytics = { __typename?: 'QuotaAssignmentWithAnalytics'; /** Analytics and insights */ analytics: QuotaUsageAnalytics; billingAccountId?: Maybe; createdAt: Scalars['DateTime']['output']; currentUsageSum: Scalars['Float']['output']; endtime: Scalars['DateTime']['output']; healthScore: Scalars['Float']['output']; /** Basic quota assignment information */ id: Scalars['ID']['output']; limitLeft: Scalars['Float']['output']; limits: Scalars['JSON']['output']; name: Scalars['String']['output']; quotaType: QuotaType; reusable: Scalars['Boolean']['output']; /** Status indicators */ status: QuotaStatus; subscriptionId?: Maybe; /** Usage summary information */ totalUsageCount: Scalars['Int']['output']; usagePercentage: Scalars['Float']['output']; }; export type QuotaCheckResult = { __typename?: 'QuotaCheckResult'; /** BOFF-6343: true when a real QuotaAssignment row backs this answer; false when the billing account has NO assignment for the quota at all. When false the query does NOT throw and does NOT report exhaustion — it returns `noLimit: true`, `limitLeft: 0`, `quotaAssignmentId: ""`, matching the documented fail-open posture of the sibling read query `getQuotaUsageAndLimit` (`QuotaUsageAndLimit.assigned`). Previously this case threw; callers could not tell it from an outage, so a UI that collapses a failed query to `{limitLeft: 0, noLimit: false}` showed "0 left" for a workspace using none of its quota, and service-side helpers silently fell open. Enforcement is unaffected: the authoritative `@usage(checkQuota: true)` gate runs in wspace-public-gateway against wspace-activity-svc and still fails CLOSED, with the distinct `QUOTA_NOT_PROVISIONED` code. A caller that wants to fail closed on a read should branch on `assigned`, never on `limitLeft`. */ assigned: Scalars['Boolean']['output']; limitLeft: Scalars['Int']['output']; noLimit: Scalars['Boolean']['output']; quotaAssignmentId: Scalars['ID']['output']; }; export declare enum QuotaEntityType { Project = "project", Workspace = "workspace" } export type QuotaLimit = { __typename?: 'QuotaLimit'; context?: Maybe; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; lastResetAt?: Maybe; limit: Scalars['Int']['output']; metadata?: Maybe; orgId: Scalars['String']['output']; resetPeriod?: Maybe; resourceType: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; used: Scalars['Int']['output']; }; export declare enum QuotaResetPeriod { /** Resets every day at midnight UTC (API requests/day, AI sessions/day) */ Daily = "DAILY", /** Resets at the start of each billing cycle */ Monthly = "MONTHLY", /** Never resets — static limits (seats, agents, storage cap) */ Never = "NEVER" } export declare enum QuotaScope { /** Global quotas: tracked at billing-account level in billing-svc QuotaAssignment */ Global = "GLOBAL", /** Workspace-scoped quotas: tracked per-workspace in wspace-activity-svc */ Workspace = "WORKSPACE" } export declare enum QuotaStatus { Critical = "CRITICAL", Exhausted = "EXHAUSTED", Healthy = "HEALTHY", Inactive = "INACTIVE", Warning = "WARNING" } export declare enum QuotaType { Pooled = "POOLED", ProductSpecific = "PRODUCT_SPECIFIC" } export type QuotaUsageAnalytics = { __typename?: 'QuotaUsageAnalytics'; /** Daily usage over the last 30 days */ dailyUsage: Array; /** Peak usage information */ peakUsage?: Maybe; /** Usage trends and predictions */ trends?: Maybe; /** Usage by resource type */ usageByType: Array; }; export type QuotaUsageAndLimit = { __typename?: 'QuotaUsageAndLimit'; /** BOFF-3921: true when a real QuotaAssignment row was found for this billing account + quota name; false when there was no matching assignment at all (the account is simply not metered for this quota). `noLimit: true` is returned in both cases for backward compatibility — this field lets a caller that wants to fail CLOSED distinguish "no assignment exists" from "assigned and genuinely unlimited" if it chooses to. Purely additive; existing callers are unaffected. */ assigned: Scalars['Boolean']['output']; limit: Scalars['Int']['output']; limitLeft: Scalars['Int']['output']; noLimit: Scalars['Boolean']['output']; }; export type QuotaUsageSummary = { __typename?: 'QuotaUsageSummary'; limit: Scalars['Float']['output']; percentage: Scalars['Float']['output']; quotaId: Scalars['ID']['output']; quotaName: Scalars['String']['output']; status: QuotaStatus; usage: Scalars['Float']['output']; }; export type RadiusConfig = { __typename?: 'RADIUSConfig'; createdAt: Scalars['DateTime']['output']; enabled: Scalars['Boolean']['output']; host: Scalars['String']['output']; id: Scalars['ID']['output']; port: Scalars['Int']['output']; protocol: Scalars['String']['output']; tenantId: Scalars['ID']['output']; }; export type RadiusConfigInput = { host: Scalars['String']['input']; port?: InputMaybe; protocol?: InputMaybe; retries?: InputMaybe; sharedSecret: Scalars['String']['input']; timeout?: InputMaybe; }; export type RandomizeAndSendAssignmentInput = { applicationId: Scalars['ID']['input']; roundId: Scalars['ID']['input']; }; export type RatingDistribution = { __typename?: 'RatingDistribution'; count: Scalars['Int']['output']; percentage: Scalars['Float']['output']; rating: Scalars['Int']['output']; }; /** RBAC analytics summary */ export type RbacAnalytics = { __typename?: 'RbacAnalytics'; allowedChecks: Scalars['Int']['output']; approvalRate: Scalars['Float']['output']; deniedChecks: Scalars['Int']['output']; scopeId: Scalars['String']['output']; topActions: Array; topActors: Array; totalAssignments: Scalars['Int']['output']; totalChecks: Scalars['Int']['output']; totalOverrides: Scalars['Int']['output']; totalResources: Scalars['Int']['output']; totalRoles: Scalars['Int']['output']; totalVisibilityRules: Scalars['Int']['output']; }; /** RBAC configuration change log entry */ export type RbacChangeLog = { __typename?: 'RbacChangeLog'; changeType: RbacChangeType; changedAt: Scalars['DateTime']['output']; changedBy: Scalars['String']['output']; description: Scalars['String']['output']; details?: Maybe; entityId: Scalars['String']['output']; entityType: Scalars['String']['output']; id: Scalars['ID']['output']; scopeId: Scalars['String']['output']; }; /** Types of RBAC configuration changes for audit log */ export declare enum RbacChangeType { ActorOverrideCreated = "ACTOR_OVERRIDE_CREATED", ActorOverrideRemoved = "ACTOR_OVERRIDE_REMOVED", ConfigUpdated = "CONFIG_UPDATED", DefaultPermissionRemoved = "DEFAULT_PERMISSION_REMOVED", DefaultPermissionSet = "DEFAULT_PERMISSION_SET", ResourceDeactivated = "RESOURCE_DEACTIVATED", ResourceRegistered = "RESOURCE_REGISTERED", ResourceUpdated = "RESOURCE_UPDATED", RoleAssigned = "ROLE_ASSIGNED", RoleCreated = "ROLE_CREATED", RoleDeleted = "ROLE_DELETED", RoleOverrideCreated = "ROLE_OVERRIDE_CREATED", RoleOverrideRemoved = "ROLE_OVERRIDE_REMOVED", RoleRemoved = "ROLE_REMOVED", RoleUpdated = "ROLE_UPDATED", VisibilityRuleCreated = "VISIBILITY_RULE_CREATED", VisibilityRuleRemoved = "VISIBILITY_RULE_REMOVED", VisibilityRuleUpdated = "VISIBILITY_RULE_UPDATED" } /** RBAC configuration key-value pair */ export type RbacConfig = { __typename?: 'RbacConfig'; createdAt: Scalars['DateTime']['output']; description?: Maybe; id: Scalars['ID']['output']; key: Scalars['String']['output']; scopeId: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; value: Scalars['String']['output']; valueType: Scalars['String']['output']; }; /** Delivery result for a single recipient within a platform delivery */ export type RecipientDeliveryResult = { __typename?: 'RecipientDeliveryResult'; /** Error details if delivery failed */ error?: Maybe; /** External platform message ID (e.g. SES MessageId, Twilio SID) */ externalId?: Maybe; /** Internal message ID for tracking */ messageId?: Maybe; /** Zero-based index of this recipient in the input recipients array */ recipientIndex: Scalars['Int']['output']; /** Current delivery status */ status: DeliveryStatus; /** Whether delivery to this recipient succeeded */ success: Scalars['Boolean']['output']; }; export type RecipientInput = { email?: InputMaybe; locale?: InputMaybe; name?: InputMaybe; phoneNumber?: InputMaybe; pushToken?: InputMaybe; slackUserId?: InputMaybe; teamsUserId?: InputMaybe; timezone?: InputMaybe; userId?: InputMaybe; webhookUrl?: InputMaybe; whatsappNumber?: InputMaybe; }; export type RecordActivityInput = { action: Scalars['String']['input']; actorId?: InputMaybe; /** Optional idempotency key for backfill/import (audit phase-2). Derive a STABLE key from the source row (e.g. `global_auth_audit:`). When set, the write UPSERTs on this key: if a row with the same `dedupeKey` already exists it is returned unchanged (no duplicate, no double-count), so a service can replay ALL of its historical audit rows any number of times and converge to exactly one activity_logs row each — including rows already dual-written in phase-1 (give the dual-write the SAME key so backfill and dual-write converge). When null, behaves exactly as before (plain insert). */ dedupeKey?: InputMaybe; description?: InputMaybe; ipAddress?: InputMaybe; metadata?: InputMaybe; resource: Scalars['String']['input']; resourceId?: InputMaybe; resourceType?: InputMaybe; tenantId?: InputMaybe; userAgent?: InputMaybe; userId?: InputMaybe; workspaceId?: InputMaybe; }; export type RecordAffiliateConversionInput = { currency?: InputMaybe; journeyId: Scalars['String']['input']; metadata?: InputMaybe; orderId?: InputMaybe; productSlug?: InputMaybe; storeOrderId?: InputMaybe; type: Scalars['String']['input']; valueAmount?: InputMaybe; }; export type RecordAffiliateTouchpointInput = { code: Scalars['String']['input']; geographyCountry?: InputMaybe; geographyRegion?: InputMaybe; journeyId: Scalars['String']['input']; metadata?: InputMaybe; mode?: InputMaybe; path?: InputMaybe; productSlug?: InputMaybe; referrer?: InputMaybe; utmCampaign?: InputMaybe; utmMedium?: InputMaybe; utmSource?: InputMaybe; }; export type RecordAppInstallationInput = { grantedPermissions?: InputMaybe; manifest?: InputMaybe; metadata?: InputMaybe; organizationId?: InputMaybe; productId: Scalars['String']['input']; version?: InputMaybe; workspaceId: Scalars['String']['input']; workspaceName?: InputMaybe; workspaceType?: InputMaybe; }; export type RecordAssignmentSubmissionInput = { notes?: InputMaybe; repoUrl?: InputMaybe; roundId: Scalars['ID']['input']; videoUrl?: InputMaybe; }; export type RecordBounceInput = { bounceType: BounceType; campaignId: Scalars['ID']['input']; diagnosticCode?: InputMaybe; email: Scalars['String']['input']; reason?: InputMaybe; subscriberId: Scalars['ID']['input']; }; export type RecordComplaintInput = { campaignId: Scalars['ID']['input']; complaintType?: InputMaybe; email: Scalars['String']['input']; feedbackType?: InputMaybe; subscriberId: Scalars['ID']['input']; }; export type RecordConsentInput = { consentType: Scalars['String']['input']; granted: Scalars['Boolean']['input']; ipAddress?: InputMaybe; source?: InputMaybe; subscriberId: Scalars['ID']['input']; userAgent?: InputMaybe; }; export type RecordEarningEntryInput = { amount: Scalars['Float']['input']; availableAt?: InputMaybe; billingAccountId: Scalars['ID']['input']; currency: Scalars['String']['input']; description?: InputMaybe; metadata?: InputMaybe; ownerUserId?: InputMaybe; sourceCategory: EarningsSourceCategory; sourceEventId?: InputMaybe; /** Optional idempotency key for the source event that produced this earning. When set, the write is find-or-create on (billingAccountId, sourceIdempotencyKey): replaying the same source event converges to exactly one EarningsEntry (no duplicate row, no double-credit). Omit/null keeps the legacy always-create behaviour. */ sourceIdempotencyKey?: InputMaybe; sourceReferenceId?: InputMaybe; sourceSubcategory?: InputMaybe; unitType?: InputMaybe; }; /** One visitor following a link an answer offered. The conversion signal explore did not have: every answer was recorded, but not whether anyone acted on one. Anonymous like the rest of explore — the visitor is an ipHash, never an IP — and the URL is re-validated against the catalog allow-list on write, so a forged client cannot inject arbitrary URLs into our analytics. */ export type RecordExploreClickInput = { /** Bearer secret for the conversation the click belongs to. */ conversationToken: Scalars['String']['input']; /** CTA or REFERENCE. */ kind: Scalars['String']['input']; /** The assistant message whose link was followed. */ messageId: Scalars['ID']['input']; /** Destination followed. Must be a link that message actually offered. */ url: Scalars['String']['input']; }; export type RecordExploreClickResult = { __typename?: 'RecordExploreClickResult'; recorded: Scalars['Boolean']['output']; }; export type RecordExternalSettlementInput = { /** Settlement amount in whole currency units (must be > 0). */ amount: Scalars['Float']['input']; /** ISO-4217 currency code (e.g. USD, INR). */ currency: Scalars['String']['input']; /** Human-readable description of what the settlement is for. */ description?: InputMaybe; /** Caller-owned external reference (receipt/voucher/ledger id). Unique per settlement — a repeat call with the same externalRef is idempotent and returns the already-recorded Charge/Transaction rather than duplicating them. */ externalRef: Scalars['String']['input']; /** Opaque org ID the settlement is recorded against. */ orgId: Scalars['ID']['input']; /** Settlement status; SETTLED for a completed external/manual collection. */ status: ExternalSettlementStatus; /** Optional opaque workspace ID that originated the settlement (stored for traceability). */ workspaceId?: InputMaybe; }; export type RecordNotificationActionInput = { actionId?: InputMaybe; metadata?: InputMaybe; notificationId: Scalars['ID']['input']; }; export type RecordPickupAddressInput = { address: Scalars['String']['input']; addressLine2?: InputMaybe; carrier: Scalars['String']['input']; carrierLocationLabel: Scalars['String']['input']; city: Scalars['String']['input']; country: Scalars['String']['input']; email: Scalars['String']['input']; isDefault?: InputMaybe; name: Scalars['String']['input']; phone: Scalars['String']['input']; postalCode: Scalars['String']['input']; state: Scalars['String']['input']; }; export type RecordProductVisitInput = { /** Optional: app URL the user landed on. Used as CTA target in the welcome email. Defaults to https://app..com when omitted. */ appUrl?: InputMaybe; /** PlatformProduct.slug — e.g. "vibecontrols", "botlit", "workspaces". */ productSlug: Scalars['String']['input']; }; export type RecordProductVisitResult = { __typename?: 'RecordProductVisitResult'; /** True iff this call created the row (i.e. user's actual first visit). */ isFirstVisit: Scalars['Boolean']['output']; /** Slug echoed back for client correlation. */ productSlug: Scalars['String']['output']; /** Timestamp the first visit was recorded. */ recordedAt: Scalars['DateTime']['output']; /** Channel-svc messageId when status = SENT, else null. */ welcomeEmailMessageId?: Maybe; /** Outcome of the welcome-email side effect on first visit: "SENT" — successfully queued via channel-svc "FAILED" — channel-svc errored or no organization found "SKIPPED" — not the first visit; no email attempted */ welcomeEmailStatus: Scalars['String']['output']; }; export type RecordSaleInput = { applicationId?: InputMaybe; buyerOrgId?: InputMaybe; buyerTenantId?: InputMaybe; buyerUserId: Scalars['ID']['input']; buyerWorkspaceId?: InputMaybe; currency?: InputMaybe; discountAmount?: InputMaybe; discountCode?: InputMaybe; grossAmount: Scalars['Float']['input']; installationScope: Scalars['String']['input']; isRenewal?: InputMaybe; metadata?: InputMaybe; organizationId: Scalars['ID']['input']; planId?: InputMaybe; planName?: InputMaybe; platformFeeRate: Scalars['Float']['input']; previousSaleId?: InputMaybe; pricingModel: DevPortalPricingModel; storeOrderId?: InputMaybe; storeProductId?: InputMaybe; subscriptionPeriodEnd?: InputMaybe; subscriptionPeriodStart?: InputMaybe; taxAmount?: InputMaybe; taxCountry?: InputMaybe; taxRate?: InputMaybe; taxRegion?: InputMaybe; }; export type RecordTourAnalyticsInput = { /** Operation context for scoping (workspaceId, userId, productId, moduleId, etc.) */ context?: InputMaybe; deviceType?: InputMaybe; duration?: InputMaybe; eventType: TourAnalyticsEventType; metadata?: InputMaybe; moduleId?: InputMaybe; pageId?: InputMaybe; productId?: InputMaybe; sessionId?: InputMaybe; stepId?: InputMaybe; stepOrder?: InputMaybe; tourId: Scalars['String']['input']; userAgent?: InputMaybe; userId?: InputMaybe; }; export type RecordTourProgressInput = { completedSteps?: InputMaybe; /** Operation context for scoping (workspaceId, userId, productId, moduleId, etc.) */ context?: InputMaybe; currentStepId?: InputMaybe; currentStepOrder?: InputMaybe; deviceType?: InputMaybe; sessionId?: InputMaybe; skippedSteps?: InputMaybe; status?: InputMaybe; tourId: Scalars['String']['input']; userId: Scalars['String']['input']; }; export type RecordUsageInput = { amount: Scalars['String']['input']; licenseKey: Scalars['String']['input']; metricType: Scalars['String']['input']; period?: InputMaybe; }; export type RecurringBillingPlan = { __typename?: 'RecurringBillingPlan'; amount: Scalars['Float']['output']; createdAt: Scalars['String']['output']; currency: Scalars['String']['output']; description?: Maybe; entityId: Scalars['String']['output']; entityType: Scalars['String']['output']; id: Scalars['ID']['output']; interval: Scalars['String']['output']; intervalCount: Scalars['Int']['output']; isActive: Scalars['Boolean']['output']; name: Scalars['String']['output']; razorpayPlanId?: Maybe; stripePriceId?: Maybe; stripeProductId?: Maybe; updatedAt: Scalars['String']['output']; }; export type ReferralCode = { __typename?: 'ReferralCode'; code: Scalars['String']['output']; coupon?: Maybe; createdAt: Scalars['DateTime']['output']; createdBy: Scalars['String']['output']; id: Scalars['ID']['output']; isActive: Scalars['Boolean']['output']; metadata?: Maybe; onBehalfOf: Scalars['String']['output']; orgId: Scalars['String']['output']; refereeDiscountType?: Maybe; refereeDiscountValue?: Maybe; referrerRewardCredits?: Maybe; referrerRewardType: ReferralRewardType; referrerRewardValue: Scalars['Float']['output']; totalReferrals: Scalars['Int']['output']; totalRevenueAmount: Scalars['Float']['output']; totalRewardsEarned: Scalars['Float']['output']; updatedAt: Scalars['DateTime']['output']; userId: Scalars['String']['output']; validFrom: Scalars['DateTime']['output']; validUntil?: Maybe; }; export type ReferralCodesListResponse = { __typename?: 'ReferralCodesListResponse'; codes: Array; hasMore: Scalars['Boolean']['output']; total: Scalars['Int']['output']; }; export declare enum ReferralRewardType { Credits = "CREDITS", FixedAmount = "FIXED_AMOUNT", Percentage = "PERCENTAGE" } export type ReferralUsage = { __typename?: 'ReferralUsage'; convertedAt?: Maybe; createdBy: Scalars['String']['output']; currency: Scalars['String']['output']; id: Scalars['ID']['output']; metadata?: Maybe; onBehalfOf: Scalars['String']['output']; orderAmount: Scalars['Float']['output']; orderId?: Maybe; refereeDiscountAmount: Scalars['Float']['output']; referralCode: ReferralCode; referredAt: Scalars['DateTime']['output']; referredUserId: Scalars['String']['output']; referrerRewardAmount: Scalars['Float']['output']; referrerUserId: Scalars['String']['output']; rewardPaid: Scalars['Boolean']['output']; rewardPaidAt?: Maybe; transactionId?: Maybe; }; export type Refund = { __typename?: 'Refund'; amount: Scalars['Float']['output']; charge: Charge; chargeId: Scalars['String']['output']; context?: Maybe; createdAt: Scalars['DateTime']['output']; currency: Scalars['String']['output']; gatewayRefundId?: Maybe; id: Scalars['ID']['output']; metadata?: Maybe; processedAt?: Maybe; provider?: Maybe; reason?: Maybe; status: RefundStatus; updatedAt: Scalars['DateTime']['output']; }; /** Refund record - tracks all refunds (manual and from failed webhooks) */ export type RefundRecord = { __typename?: 'RefundRecord'; amount: Scalars['Float']['output']; billingAccountId?: Maybe; createdAt: Scalars['DateTime']['output']; currency: Scalars['String']['output']; errorMessage?: Maybe; gatewayOrderId?: Maybe; gatewayPaymentId: Scalars['String']['output']; gatewayRefundId?: Maybe; id: Scalars['ID']['output']; metadata?: Maybe; notes?: Maybe; orgId: Scalars['String']['output']; processedAt?: Maybe; processedBy?: Maybe; provider: Scalars['String']['output']; purchaseDetail?: Maybe; purchaseType?: Maybe; reason?: Maybe; retryCount: Scalars['Int']['output']; source: RefundSource; status: RefundRecordStatus; transaction?: Maybe; transactionId?: Maybe; updatedAt: Scalars['DateTime']['output']; webhookLog?: Maybe; webhookLogId?: Maybe; }; /** Status of a refund record (for tracking refund requests) */ export declare enum RefundRecordStatus { Completed = "COMPLETED", Failed = "FAILED", Pending = "PENDING", Processing = "PROCESSING", Skipped = "SKIPPED" } /** Source of a refund request */ export declare enum RefundSource { DuplicatePayment = "DUPLICATE_PAYMENT", Manual = "MANUAL", SubscriptionCancel = "SUBSCRIPTION_CANCEL", WebhookRecovery = "WEBHOOK_RECOVERY" } /** Refund statistics */ export type RefundStats = { __typename?: 'RefundStats'; completed: Scalars['Int']['output']; failed: Scalars['Int']['output']; pending: Scalars['Int']['output']; processing: Scalars['Int']['output']; skipped: Scalars['Int']['output']; totalCompletedAmount: Scalars['Float']['output']; totalPendingAmount: Scalars['Float']['output']; }; export declare enum RefundStatus { Canceled = "CANCELED", Failed = "FAILED", Pending = "PENDING", Succeeded = "SUCCEEDED" } /** A seller's real pickup address, to be registered with a shipping carrier (see registerCarrierPickupLocation). `carrier` selects which configured carrier adapter to register it with — carrier-agnostic by design, since more providers than Shiprocket may be added over time. */ export type RegisterCarrierPickupLocationInput = { address: Scalars['String']['input']; addressLine2?: InputMaybe; carrier: Scalars['String']['input']; city: Scalars['String']['input']; country: Scalars['String']['input']; email: Scalars['String']['input']; /** Contact person at this address. */ name: Scalars['String']['input']; /** The DeveloperOrganization this address is being registered for. Verified via a cross-service call to global-devportal-svc's assertDeveloperOrgAccess before any carrier API call is made. */ organizationId: Scalars['ID']['input']; phone: Scalars['String']['input']; postalCode: Scalars['String']['input']; state: Scalars['String']['input']; }; export type RegisterProductAssetInput = { caption?: InputMaybe; fileName?: InputMaybe; fileType: ProductAssetType; /** File ID returned from wspace-files-svc's completeUpload mutation. The browser uploads the file directly to files-svc, then calls this mutation to link it to the product. */ filesSvcId: Scalars['ID']['input']; locale?: InputMaybe; /** If true (default), marks previous assets of the same fileType+locale as no longer current. Set to false to keep multiple live copies (e.g. when building a screenshot gallery). */ makeCurrent?: InputMaybe; mimeType?: InputMaybe; orderIndex?: InputMaybe; productId: Scalars['ID']['input']; version?: InputMaybe; }; export type RegisterPublisherInput = { bio?: InputMaybe; contactEmail?: InputMaybe; contactPhone?: InputMaybe; country?: InputMaybe; email: Scalars['String']['input']; legalName?: InputMaybe; logoUrl?: InputMaybe; name: Scalars['String']['input']; organizationId?: InputMaybe; supportUrl?: InputMaybe; tier?: InputMaybe; websiteUrl?: InputMaybe; }; /** Input for registering a resource with custom RBAC configurations */ export type RegisterResourceInput = { identifier: Scalars['String']['input']; metadata?: InputMaybe; name?: InputMaybe; ownerId?: InputMaybe; ownerType?: InputMaybe; parentResourceId?: InputMaybe; resourceType: Scalars['String']['input']; scopeId: Scalars['String']['input']; }; export type RegisterSupportAttachmentPartInput = { etag: Scalars['String']['input']; partNumber: Scalars['Int']['input']; sessionId: Scalars['ID']['input']; ticketId: Scalars['ID']['input']; }; export type RejectWaitlistInput = { id: Scalars['ID']['input']; reason?: InputMaybe; }; export declare enum ReleaseStatus { Draft = "DRAFT", Halted = "HALTED", Live = "LIVE", Ready = "READY", Rejected = "REJECTED", Reviewing = "REVIEWING", RolledBack = "ROLLED_BACK", RollingOut = "ROLLING_OUT" } export type ReleaseSuppressionInput = { channel: SuppressionChannel; identifier: Scalars['String']['input']; identifierType: Scalars['String']['input']; }; export type ReleaseTrack = { __typename?: 'ReleaseTrack'; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; name: Scalars['String']['output']; productId: Scalars['ID']['output']; type: ReleaseTrackType; }; export declare enum ReleaseTrackType { ClosedTesting = "CLOSED_TESTING", Internal = "INTERNAL", OpenTesting = "OPEN_TESTING", Production = "PRODUCTION" } export type ReleaseTrackUser = { __typename?: 'ReleaseTrackUser'; addedAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; removedAt?: Maybe; trackId: Scalars['ID']['output']; userId: Scalars['String']['output']; }; export type RemoveTagFromApplicationInput = { applicationId: Scalars['ID']['input']; tagId: Scalars['ID']['input']; }; export type ReplaceApplicationTagsInput = { applicationId: Scalars['ID']['input']; tagIds: Array; }; export type ReplaceChannelConnectionTagsInput = { entityId: Scalars['ID']['input']; tagIds: Array; }; export type ReplaceChannelTagsInput = { entityId: Scalars['ID']['input']; tagIds: Array; }; export type ReplaceStoreProductTagsInput = { entityId: Scalars['ID']['input']; tagIds: Array; }; export type RequestCreditWithdrawalInput = { billingAccountId: Scalars['ID']['input']; creditAmount: Scalars['Float']['input']; currency?: InputMaybe; notes?: InputMaybe; payoutAccountId: Scalars['ID']['input']; }; /** Input for requesting a return */ export type RequestOrderReturnInput = { notes?: InputMaybe; orderId: Scalars['ID']['input']; reason: Scalars['String']['input']; }; export type RequestPayoutInput = { amount: Scalars['Float']['input']; billingAccountId: Scalars['ID']['input']; currency: Scalars['String']['input']; notes?: InputMaybe; payoutAccountId: Scalars['ID']['input']; }; export type RescheduleNotificationInput = { scheduledFor: Scalars['DateTime']['input']; scheduledNotificationId: Scalars['ID']['input']; timezone?: InputMaybe; }; export type ResendVerificationResult = { __typename?: 'ResendVerificationResult'; message: Scalars['String']['output']; success: Scalars['Boolean']['output']; }; export type ReserveAssistantBudgetInput = { id: Scalars['ID']['input']; inputTokens: Scalars['Int']['input']; model: Scalars['String']['input']; outputTokens: Scalars['Int']['input']; workspaceId: Scalars['ID']['input']; }; /** Input for resolving (or creating) the default billing account for a user/org. At least one of `orgId` or `ownerUserId` MUST be supplied: - `orgId` present → resolve-or-create the org's default billing account. - `ownerUserId` only → resolve an EXISTING billing account already associated with that user's earnings/payout accounts. Creation requires an `orgId` anchor because a billing account is always org-scoped. */ export type ResolveBillingAccountInput = { /** Opaque org id that anchors the billing account. When present the org's default billing account is resolved-or-created. */ orgId?: InputMaybe; /** Opaque user id the caller wants a billing account for. Stamped for audit / earnings-owner attribution; on its own it can only resolve an account the user already owns (via an existing EarningsEntry / PayoutAccount). */ ownerUserId?: InputMaybe; /** Optional opaque workspace id that originated the request. Recorded for traceability; workspace-scoped free-plan quota seeding is handled by the canonical provider during lazy account creation. */ workspaceId?: InputMaybe; }; export type ResolveContextWidgetConversationInput = { description?: InputMaybe; sourceContext: WidgetConversationSourceContextInput; title?: InputMaybe; workspaceId: Scalars['ID']['input']; }; /** Registered resource with custom permission configurations. Resources are only registered when they have non-default permissions (overrides, visibility rules, or scoped assignments). */ export type Resource = { __typename?: 'Resource'; children: Array; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; identifier: Scalars['String']['output']; isActive: Scalars['Boolean']['output']; metadata?: Maybe; name?: Maybe; ownerId?: Maybe; ownerType?: Maybe; parent?: Maybe; parentResourceId?: Maybe; resourceType: Scalars['String']['output']; scopeId: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; visibilityRules: Array; }; /** Filter for querying resources */ export type ResourceFilterInput = { isActive?: InputMaybe; ownerId?: InputMaybe; resourceType?: InputMaybe; }; /** A resource type (permission group) together with the products it is mapped to. An empty products list means the resource type is cross-product ("All"). */ export type ResourceTypeProductInfo = { __typename?: 'ResourceTypeProductInfo'; /** Product slugs (PlatformProduct.slug) this resource type is relevant to. */ products: Array; resourceType: Scalars['String']['output']; }; /** Input for the service-trusted internal reduction of a first-party self-delegation. */ export type RestrictAppDelegationInternalInput = { /** Client ID of the first-party system app (e.g. burdenoff_integration_core). */ clientId: Scalars['String']['input']; /** The most the delegation may keep: it keeps only those of these scopes it already holds (and the app still allows), and is revoked if none are left. */ scopes: Array; /** The user whose delegation to the app is reduced. */ userId: Scalars['String']['input']; /** The most workspaces the delegation may keep: it keeps only those of these it already covers, and is revoked if none are left. Empty = leave the workspaces as they are. */ workspaceIds: Array; }; export type RetryBillingOrderCallbackResponse = { __typename?: 'RetryBillingOrderCallbackResponse'; error?: Maybe; order?: Maybe; success: Scalars['Boolean']['output']; }; export type RetrySyncOutboxResult = { __typename?: 'RetrySyncOutboxResult'; entry?: Maybe; message?: Maybe; success: Scalars['Boolean']['output']; }; /** Revenue summary for dashboard */ export type RevenueSummary = { __typename?: 'RevenueSummary'; /** ISO 4217 currency code these totals are denominated in — derived from the org's DeveloperOrgSale rows (the dominant currency by sale count). Orgs are expected to transact in one currency; if an org's sales genuinely span multiple currencies, only the dominant one is reflected here. */ currency: Scalars['String']['output']; nextPayoutAmount?: Maybe; nextPayoutDate?: Maybe; pendingBalance: Scalars['Float']['output']; period: Scalars['String']['output']; revenueByGeo?: Maybe; revenueByPricingModel?: Maybe; topApps: Array; totalGrossRevenue: Scalars['Float']['output']; totalNetRevenue: Scalars['Float']['output']; totalNewCustomers: Scalars['Int']['output']; totalPlatformFees: Scalars['Float']['output']; totalRefunds: Scalars['Float']['output']; totalRefundsCount: Scalars['Int']['output']; totalSales: Scalars['Int']['output']; }; export declare enum ReviewStatus { Approved = "APPROVED", ChangesRequested = "CHANGES_REQUESTED", InProgress = "IN_PROGRESS", Pending = "PENDING", Rejected = "REJECTED" } /** Review summary for an application */ export type ReviewSummary = { __typename?: 'ReviewSummary'; applicationId: Scalars['ID']['output']; averageRating: Scalars['Float']['output']; featuredReviewsCount: Scalars['Int']['output']; ratingDistribution: AppRatingDistribution; totalReviews: Scalars['Int']['output']; verifiedPurchaseCount: Scalars['Int']['output']; }; /** Result of revoking all sessions */ export type RevokeAllSessionsResult = { __typename?: 'RevokeAllSessionsResult'; /** Number of sessions that were revoked */ revokedCount: Scalars['Int']['output']; success: Scalars['Boolean']['output']; }; /** Input for the service-trusted internal revoke of a first-party self-delegation. */ export type RevokeAppDelegationInternalInput = { /** Client ID of the first-party system app (e.g. burdenoff_integration_core). */ clientId: Scalars['String']['input']; /** Recorded on the delegation and in the audit log. */ reason?: InputMaybe; /** The user whose delegation to the app is revoked. */ userId: Scalars['String']['input']; }; export type RevokeAppWorkspaceAccessInput = { appId: Scalars['ID']['input']; /** Withdraw only the calling actor's own grant. The authorization is revoked (true) only when the caller is its sole grantor; when others granted it too, only the caller's share is released and it stays ACTIVE (false); one the caller never granted is left untouched (false). An automated provisioner withdrawing its own grant sets this, so it never revokes access an owner or an app installation gave the app, whichever granted first. */ onlyIfGrantedByCaller?: InputMaybe; reason?: InputMaybe; workspaceId: Scalars['ID']['input']; }; /** Role - Convention-based with resource type mappings */ export type Role = { __typename?: 'Role'; /** Actors assigned this role */ actorAssignments: Array; /** Child roles in hierarchy */ children: Array; createdAt: Scalars['DateTime']['output']; createdBy: Scalars['String']['output']; /** Default permission levels per resource type */ defaultPermissions: Array; description?: Maybe; id: Scalars['ID']['output']; isSystem: Scalars['Boolean']['output']; name: Scalars['String']['output']; onBehalfOf?: Maybe; /** Parent role in hierarchy */ parent?: Maybe; /** Role-level permission overrides */ permissionOverrides: Array; priority: Scalars['Int']['output']; /** Product this role belongs to (PlatformProduct.slug). Null = cross-product / platform role (e.g. Tenant Owner, Editor, Viewer) shown under every product. */ productSlug?: Maybe; scopeId: Scalars['String']['output']; scopeType: Scalars['String']['output']; /** Stable read-only identity of a managed role template and its clones. Null for custom roles. */ templateKey?: Maybe; updatedAt: Scalars['DateTime']['output']; }; /** Maps role to default permission level per resource type */ export type RoleDefaultPermission = { __typename?: 'RoleDefaultPermission'; createdAt: Scalars['DateTime']['output']; createdBy: Scalars['String']['output']; id: Scalars['ID']['output']; level: RoleLevel; onBehalfOf?: Maybe; resourceType: Scalars['String']['output']; roleId: Scalars['String']['output']; }; /** Filter for querying roles. Note: `scopeId` here is IGNORED. The read scope is bound to the required top-level `roles(scopeId:)` argument, which is also what `@rbac` authorizes — honoring a separate `filter.scopeId` let a caller authorized on scope A read roles from scope B (BOFF-2749 / RBAC-001). The field is retained (deprecated) only to keep the input type backward-compatible; the resolver/provider never read it. */ export type RoleFilterInput = { /** Whether to include cross-product/platform roles (productSlug = null) when a product filter is applied. Defaults to true. Ignored when product is unset. */ includePlatformRoles?: InputMaybe; includeSystem?: InputMaybe; parentId?: InputMaybe; /** Filter roles by product (PlatformProduct.slug). When set, returns roles for that product. Cross-product/platform roles (productSlug = null) are included unless includePlatformRoles is explicitly false. */ product?: InputMaybe; /** @deprecated Ignored — role reads are bound to the authorized top-level scopeId argument (BOFF-2749/RBAC-001). */ scopeId?: InputMaybe; }; /** Basic role information */ export type RoleInfo = { __typename?: 'RoleInfo'; id: Scalars['ID']['output']; name: Scalars['String']['output']; priority: Scalars['Int']['output']; }; /** Role permission levels for resource types */ export declare enum RoleLevel { /** Full access to resource type */ Admin = "ADMIN", /** Read + Write access */ Editor = "EDITOR", /** No default access (must be explicitly granted) */ None = "NONE", /** Read-only access */ Viewer = "VIEWER" } /** Role-level permission override for specific resources */ export type RolePermissionOverride = { __typename?: 'RolePermissionOverride'; action: Scalars['String']['output']; createdAt: Scalars['DateTime']['output']; createdBy: Scalars['String']['output']; expiresAt?: Maybe; id: Scalars['ID']['output']; onBehalfOf?: Maybe; overrideType: OverrideType; priority: Scalars['Int']['output']; reason?: Maybe; /** Optional: Scope to specific resource instance */ resourceId?: Maybe; resourceType: Scalars['String']['output']; /** The role this override applies to */ role: Role; roleId: Scalars['String']['output']; scopeId: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; validFrom?: Maybe; validUntil?: Maybe; }; export type SamlInput = { relayState?: InputMaybe; samlResponse: Scalars['String']['input']; tenantId?: InputMaybe; }; export type SamlRequestResult = { __typename?: 'SAMLRequestResult'; requestId: Scalars['String']['output']; samlRequest: Scalars['String']['output']; ssoUrl: Scalars['String']['output']; }; export declare enum SlaBreachStatus { Breached = "BREACHED", None = "NONE", Warning_50 = "WARNING_50", Warning_75 = "WARNING_75", Warning_90 = "WARNING_90" } export type SlaPolicy = { __typename?: 'SLAPolicy'; businessHours?: Maybe; categoryId?: Maybe; context?: Maybe; createdAt: Scalars['DateTime']['output']; description?: Maybe; escalationRules?: Maybe; firstResponseMinutes: Scalars['Int']['output']; holidays?: Maybe; id: Scalars['ID']['output']; isActive: Scalars['Boolean']['output']; isDefault: Scalars['Boolean']['output']; name: Scalars['String']['output']; priority: SupportTicketPriority; resolutionMinutes: Scalars['Int']['output']; tenantId?: Maybe; timezone: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; }; export type SlaPolicyConnection = { __typename?: 'SLAPolicyConnection'; hasMore: Scalars['Boolean']['output']; nodes: Array; totalCount: Scalars['Int']['output']; }; export type SlaPolicyFilterInput = { categoryId?: InputMaybe; context?: InputMaybe; isActive?: InputMaybe; isDefault?: InputMaybe; priority?: InputMaybe; }; export type SlaPriorityBreakdown = { __typename?: 'SLAPriorityBreakdown'; averageFirstResponseMinutes?: Maybe; averageResolutionMinutes?: Maybe; firstResponseCompliance: Scalars['Float']['output']; priority: SupportTicketPriority; resolutionCompliance: Scalars['Float']['output']; totalTickets: Scalars['Int']['output']; }; export type SlaReport = { __typename?: 'SLAReport'; averageFirstResponseMinutes?: Maybe; averageResolutionMinutes?: Maybe; breachRate: Scalars['Float']['output']; byPriority: Array; endDate: Scalars['DateTime']['output']; firstResponseCompliance: Scalars['Float']['output']; period: TimePeriod; resolutionCompliance: Scalars['Float']['output']; startDate: Scalars['DateTime']['output']; ticketsWithSLA: Scalars['Int']['output']; totalBreaches: Scalars['Int']['output']; totalTickets: Scalars['Int']['output']; }; export type SlaReportFilterInput = { endDate?: InputMaybe; period?: InputMaybe; priority?: InputMaybe; startDate?: InputMaybe; workspaceId?: InputMaybe; }; export type SlaStatus = { __typename?: 'SLAStatus'; breachStatus: SlaBreachStatus; escalationLevel: Scalars['Int']['output']; firstResponseAt?: Maybe; firstResponseDue?: Maybe; firstResponseMet?: Maybe; firstResponseTimeRemaining?: Maybe; isPaused: Scalars['Boolean']['output']; pausedAt?: Maybe; policy?: Maybe; policyId?: Maybe; resolutionDue?: Maybe; resolutionMet?: Maybe; resolutionTimeRemaining?: Maybe; resolvedAt?: Maybe; ticketId: Scalars['String']['output']; totalPausedSeconds: Scalars['Int']['output']; }; /** SSO/SAML Configuration */ export type SsoConfig = { __typename?: 'SSOConfig'; certificate: Scalars['String']['output']; createdAt: Scalars['DateTime']['output']; enabled: Scalars['Boolean']['output']; entityId: Scalars['String']['output']; id: Scalars['ID']['output']; identifier: Scalars['String']['output']; metadata?: Maybe; sloUrl?: Maybe; ssoUrl: Scalars['String']['output']; tenantId: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; }; /** Input for creating or updating SSO/SAML configuration */ export type SsoConfigInput = { certificate: Scalars['String']['input']; enabled?: InputMaybe; entityId: Scalars['String']['input']; metadata?: InputMaybe; sloUrl?: InputMaybe; ssoUrl: Scalars['String']['input']; }; export declare enum SaleStatus { Cancelled = "CANCELLED", Chargeback = "CHARGEBACK", Completed = "COMPLETED", Disputed = "DISPUTED", PartialRefund = "PARTIAL_REFUND", Pending = "PENDING", Refunded = "REFUNDED" } export type SatisfactionMetrics = { __typename?: 'SatisfactionMetrics'; averageRating?: Maybe; csatScore?: Maybe; endDate: Scalars['DateTime']['output']; feedbackBreakdown: Array; npsScore?: Maybe; period: TimePeriod; ratingDistribution: Array; responseRate: Scalars['Float']['output']; startDate: Scalars['DateTime']['output']; totalResponses: Scalars['Int']['output']; totalSurveysSent: Scalars['Int']['output']; trendData: Array; }; export type SatisfactionMetricsFilterInput = { endDate?: InputMaybe; groupBy?: InputMaybe; period?: InputMaybe; startDate?: InputMaybe; workspaceId?: InputMaybe; }; export type SatisfactionTrend = { __typename?: 'SatisfactionTrend'; averageRating?: Maybe; csatScore?: Maybe; date: Scalars['DateTime']['output']; responseCount: Scalars['Int']['output']; }; export type SaveTourAsTemplateInput = { category?: InputMaybe; description?: InputMaybe; isPublic?: InputMaybe; name: Scalars['String']['input']; }; export type ScheduleNotificationInput = { /** Or create a new notification to schedule */ notification?: InputMaybe; /** ID of an existing notification to schedule */ notificationId?: InputMaybe; /** When to trigger the notification */ scheduledFor: Scalars['DateTime']['input']; /** Timezone for scheduling (e.g., 'America/New_York') */ timezone?: InputMaybe; }; export type SchedulePreview = { __typename?: 'SchedulePreview'; count: Scalars['Int']['output']; endDate: Scalars['DateTime']['output']; nextExecutions: Array; startDate: Scalars['DateTime']['output']; }; export declare enum SchedulePriority { Critical = "CRITICAL", High = "HIGH", Low = "LOW", Normal = "NORMAL" } export type ScheduleTemplate = { __typename?: 'ScheduleTemplate'; businessCalendarId?: Maybe; category?: Maybe; circuitBreaker?: Maybe; context?: Maybe; createdAt: Scalars['DateTime']['output']; createdBy: Scalars['String']['output']; description?: Maybe; executorConfig: Scalars['JSON']['output']; executorType: ExecutorType; failurePolicy?: Maybe; id: Scalars['ID']['output']; isPublic: Scalars['Boolean']['output']; name: Scalars['String']['output']; organizationId: Scalars['String']['output']; payloadTemplate?: Maybe; retryPolicy?: Maybe; scheduleConfig: Scalars['JSON']['output']; scheduleType: ScheduleType; updatedAt: Scalars['DateTime']['output']; usageCount: Scalars['Int']['output']; }; export type ScheduleTemplateConnection = { __typename?: 'ScheduleTemplateConnection'; hasMore: Scalars['Boolean']['output']; templates: Array; total: Scalars['Int']['output']; }; export type ScheduleTemplateFilterInput = { category?: InputMaybe; createdBy?: InputMaybe; executorType?: InputMaybe; isPublic?: InputMaybe; scheduleType?: InputMaybe; search?: InputMaybe; }; export declare enum ScheduleType { Cron = "CRON", FixedInterval = "FIXED_INTERVAL", OneTime = "ONE_TIME", Rrule = "RRULE", Windowed = "WINDOWED" } export type ScheduleVersion = { __typename?: 'ScheduleVersion'; changeReason?: Maybe; changedBy: Scalars['String']['output']; changedFields: Array; config: Scalars['JSON']['output']; context?: Maybe; createdAt: Scalars['DateTime']['output']; executions: JobExecutionConnection; id: Scalars['ID']['output']; schedule?: Maybe; scheduleId: Scalars['String']['output']; version: Scalars['Int']['output']; }; export type ScheduleVersionExecutionsArgs = { pagination?: InputMaybe; }; export type ScheduledJob = { __typename?: 'ScheduledJob'; actionId?: Maybe; archivedAt?: Maybe; autoDisableAfter?: Maybe; backoffStrategy: BackoffStrategy; businessCalendarId?: Maybe; circuitBreaker?: Maybe; consecutiveFailures: Scalars['Int']['output']; context?: Maybe; createdAt: Scalars['DateTime']['output']; createdBy: Scalars['String']['output']; cronExpression?: Maybe; description?: Maybe; endDate?: Maybe; executions: JobExecutionConnection; executorConfig?: Maybe; executorType?: Maybe; failurePolicy?: Maybe; id: Scalars['ID']['output']; interval?: Maybe; lastExecutionAt?: Maybe; lastFailureAt?: Maybe; maxOccurrences?: Maybe; maxRetries: Scalars['Int']['output']; metadata?: Maybe; misfirePolicy: MisfirePolicy; misfireThreshold: Scalars['Int']['output']; name?: Maybe; nextExecutionAt?: Maybe; organizationId: Scalars['String']['output']; payloadTemplate?: Maybe; priority: SchedulePriority; retryCount: Scalars['Int']['output']; retryDelay: Scalars['Int']['output']; retryPolicy: Scalars['JSON']['output']; rrule?: Maybe; scheduleType: ScheduleType; scheduledAt?: Maybe; secrets?: Maybe; startDate?: Maybe; status: JobStatus; tags: Array; timeWindows?: Maybe; timezone: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; version: Scalars['Int']['output']; versions: Array; }; export type ScheduledJobExecutionsArgs = { pagination?: InputMaybe; }; export type ScheduledJobConnection = { __typename?: 'ScheduledJobConnection'; hasMore: Scalars['Boolean']['output']; jobs: Array; total: Scalars['Int']['output']; }; export type ScheduledNotification = { __typename?: 'ScheduledNotification'; createdAt: Scalars['DateTime']['output']; errorMessage?: Maybe; failedAt?: Maybe; id: Scalars['ID']['output']; maxRetries: Scalars['Int']['output']; notification: Notification; notificationId: Scalars['ID']['output']; retryCount: Scalars['Int']['output']; scheduledFor: Scalars['DateTime']['output']; status: ScheduledNotificationStatus; timezone?: Maybe; triggeredAt?: Maybe; updatedAt: Scalars['DateTime']['output']; }; export type ScheduledNotificationFilterInput = { endDate?: InputMaybe; startDate?: InputMaybe; status?: InputMaybe; userId?: InputMaybe; }; export type ScheduledNotificationList = { __typename?: 'ScheduledNotificationList'; hasMore: Scalars['Boolean']['output']; items: Array; total: Scalars['Int']['output']; }; export declare enum ScheduledNotificationStatus { Cancelled = "CANCELLED", Failed = "FAILED", Pending = "PENDING", Triggered = "TRIGGERED" } export type SchedulerBulkOperationError = { __typename?: 'SchedulerBulkOperationError'; error: Scalars['String']['output']; scheduleId: Scalars['String']['output']; }; export type SchedulerBulkOperationResult = { __typename?: 'SchedulerBulkOperationResult'; affected: Scalars['Int']['output']; errors: Array; scheduleIds: Array; }; export type SchedulerMetrics = { __typename?: 'SchedulerMetrics'; avgExecutionDuration: Scalars['Float']['output']; avgScanDuration?: Maybe; circuitBreakerStates: Scalars['JSON']['output']; dlqByStatus: Scalars['JSON']['output']; dlqEntries: Scalars['Int']['output']; dueJobs: Scalars['Int']['output']; executionSuccessRate: Scalars['Float']['output']; failedExecutions: Scalars['Int']['output']; healthScore: Scalars['Float']['output']; lastScanTime?: Maybe; maxExecutionDuration: Scalars['Float']['output']; minExecutionDuration: Scalars['Float']['output']; overdueJobs: Scalars['Int']['output']; pendingJobs: Scalars['Int']['output']; queueDepth: Scalars['Int']['output']; runningJobs: Scalars['Int']['output']; schedulesByExecutor: Scalars['JSON']['output']; schedulesByStatus: Scalars['JSON']['output']; schedulesByType: Scalars['JSON']['output']; successfulExecutions: Scalars['Int']['output']; totalExecutions: Scalars['Int']['output']; totalSchedules: Scalars['Int']['output']; uptime: Scalars['Float']['output']; workerMetrics: Scalars['JSON']['output']; }; export type SchedulerMetricsUpdate = { __typename?: 'SchedulerMetricsUpdate'; activeSchedules: Scalars['Int']['output']; averageScanDuration: Scalars['Float']['output']; completedToday: Scalars['Int']['output']; failedToday: Scalars['Int']['output']; lastScanAt?: Maybe; pendingSchedules: Scalars['Int']['output']; runningSchedules: Scalars['Int']['output']; timestamp: Scalars['DateTime']['output']; totalSchedules: Scalars['Int']['output']; }; export type SchedulerPaginationInput = { limit?: InputMaybe; offset?: InputMaybe; }; /** SCIM 2.0 bearer token, returned once at mint time. Store the `token` value securely (e.g. in the IdP's provisioning connector config) — it cannot be retrieved again. */ export type ScimTokenResult = { __typename?: 'ScimTokenResult'; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; label: Scalars['String']['output']; token: Scalars['String']['output']; tokenPrefix: Scalars['String']['output']; workspaceId: Scalars['String']['output']; }; /** Metadata about a previously-minted SCIM token. Never exposes the plaintext or the token hash. */ export type ScimTokenSummary = { __typename?: 'ScimTokenSummary'; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; label: Scalars['String']['output']; lastUsedAt?: Maybe; revokedAt?: Maybe; tokenPrefix: Scalars['String']['output']; workspaceId: Scalars['String']['output']; }; /** Search suggestion for autocomplete */ export type SearchSuggestion = { __typename?: 'SearchSuggestion'; /** Number of matching products */ count: Scalars['Int']['output']; /** Highlighted term with match markers */ highlight?: Maybe; /** Suggested search term */ term: Scalars['String']['output']; /** Type of suggestion (product_name, tag, category, author) */ type: Scalars['String']['output']; }; export type SeedAtheleteBridgeUserToursResult = { __typename?: 'SeedAtheleteBridgeUserToursResult'; createdCount: Scalars['Int']['output']; productId: Scalars['String']['output']; totalCount: Scalars['Int']['output']; tours: Array; updatedCount: Scalars['Int']['output']; workspaceId: Scalars['String']['output']; }; export type SeedBigconsoleUserToursResult = { __typename?: 'SeedBigconsoleUserToursResult'; createdCount: Scalars['Int']['output']; productId: Scalars['String']['output']; totalCount: Scalars['Int']['output']; tours: Array; updatedCount: Scalars['Int']['output']; workspaceId: Scalars['String']['output']; }; export type SeedBuildmyiqUserToursResult = { __typename?: 'SeedBuildmyiqUserToursResult'; createdCount: Scalars['Int']['output']; productId: Scalars['String']['output']; totalCount: Scalars['Int']['output']; tours: Array; updatedCount: Scalars['Int']['output']; workspaceId: Scalars['String']['output']; }; export type SeedCollabkinUserToursResult = { __typename?: 'SeedCollabkinUserToursResult'; createdCount: Scalars['Int']['output']; productId: Scalars['String']['output']; totalCount: Scalars['Int']['output']; tours: Array; updatedCount: Scalars['Int']['output']; workspaceId: Scalars['String']['output']; }; export type SeedCoolAndLovelyUserToursResult = { __typename?: 'SeedCoolAndLovelyUserToursResult'; createdCount: Scalars['Int']['output']; productId: Scalars['String']['output']; totalCount: Scalars['Int']['output']; tours: Array; updatedCount: Scalars['Int']['output']; workspaceId: Scalars['String']['output']; }; export type SeedFluidgridsUserToursResult = { __typename?: 'SeedFluidgridsUserToursResult'; createdCount: Scalars['Int']['output']; productId: Scalars['String']['output']; totalCount: Scalars['Int']['output']; tours: Array; updatedCount: Scalars['Int']['output']; workspaceId: Scalars['String']['output']; }; export type SeedIntelWatchtowerUserToursResult = { __typename?: 'SeedIntelWatchtowerUserToursResult'; createdCount: Scalars['Int']['output']; productId: Scalars['String']['output']; totalCount: Scalars['Int']['output']; tours: Array; updatedCount: Scalars['Int']['output']; workspaceId: Scalars['String']['output']; }; export type SeedTheCulturePostUserToursResult = { __typename?: 'SeedTheCulturePostUserToursResult'; createdCount: Scalars['Int']['output']; productId: Scalars['String']['output']; totalCount: Scalars['Int']['output']; tours: Array; updatedCount: Scalars['Int']['output']; workspaceId: Scalars['String']['output']; }; export declare enum SeedTourAction { Created = "created", Updated = "updated" } export type SeedVibeControlsUserToursResult = { __typename?: 'SeedVibeControlsUserToursResult'; createdCount: Scalars['Int']['output']; productId: Scalars['String']['output']; totalCount: Scalars['Int']['output']; tours: Array; updatedCount: Scalars['Int']['output']; workspaceId: Scalars['String']['output']; }; export type SeededUserTourResult = { __typename?: 'SeededUserTourResult'; action: SeedTourAction; name: Scalars['String']['output']; slug: Scalars['String']['output']; stepCount: Scalars['Int']['output']; tourId: Scalars['ID']['output']; }; export type SendContextWidgetMessageInput = { attachments?: InputMaybe>; content: Scalars['JSON']['input']; expiresAt?: InputMaybe; isAnonymous?: InputMaybe; mentionUserIds?: InputMaybe>; parentMessageId?: InputMaybe; sourceContext: WidgetConversationSourceContextInput; type?: InputMaybe; workspaceId: Scalars['ID']['input']; }; export type SendContextWidgetMessagePayload = { __typename?: 'SendContextWidgetMessagePayload'; conversationId?: Maybe; error?: Maybe; messageId?: Maybe; success: Scalars['Boolean']['output']; }; export type SendExploreMessageInput = { /** Files attached as extra context. At most 5, each at most 10 MB. Limits are re-checked server-side — the client's are for feedback, not enforcement. */ attachments?: InputMaybe>; /** Omit to start a new conversation. The result's `conversation.token` is the secret to send back on every following turn. */ conversationToken?: InputMaybe; /** BCP-47 locale of the page (e.g. "en-US"). */ locale?: InputMaybe; /** The visitor's question. */ message: Scalars['String']['input']; /** Absolute URL of the page the visitor asked from. */ pageUrl?: InputMaybe; /** Slug of the product website the visitor is on (a soft hint for the agent). */ productSlug?: InputMaybe; /** reCAPTCHA v3 token — required only when `exploreCatalog.captchaRequired`. */ recaptchaToken?: InputMaybe; }; export type SendExploreMessageResult = { __typename?: 'SendExploreMessageResult'; /** Poll THIS id via `exploreMessage(conversationToken, id)` until `status` is COMPLETED or FAILED. */ assistantMessage: ExploreMessage; conversation: ExploreConversation; /** Messages left for this IP in the current window, when known. */ remainingToday?: Maybe; userMessage: ExploreMessage; }; /** Input for sending a message to a channel (for bot conversations) */ export type SendMessageInput = { /** Attachments (images, files, etc.) */ attachments?: InputMaybe>; /** Channel ID (the bot channel to send through) */ channelId: Scalars['ID']['input']; /** Message content (text, markdown, etc.) */ content: Scalars['String']['input']; /** Operation context for scoping */ context?: InputMaybe; /** Message format (text, markdown, html) */ format?: InputMaybe; /** Organization ID (for multi-tenant context) */ organizationId: Scalars['ID']['input']; /** Platform-specific options (Slack blocks, Teams adaptive cards, etc.) */ platformOptions?: InputMaybe; /** Recipient (platform-specific conversation/channel ID - e.g., Slack DM conversation ID) */ recipient: Scalars['String']['input']; /** Thread ID (for threaded replies in Slack, Teams, etc.) */ threadId?: InputMaybe; }; export type SendRoundMessageToCandidateInput = { message: Scalars['String']['input']; roundId: Scalars['ID']['input']; }; /** Consolidated earnings + payout-request status for a billing account, optionally scoped to a single earnings owner. Lets a delegating service poll the outcome of money-movement it handed to billing. */ export type ServicePayoutStatus = { __typename?: 'ServicePayoutStatus'; approvedCount: Scalars['Int']['output']; billingAccountId: Scalars['ID']['output']; canceledCount: Scalars['Int']['output']; failedCount: Scalars['Int']['output']; ownerUserId?: Maybe; paidCount: Scalars['Int']['output']; pendingPayoutCount: Scalars['Int']['output']; processingCount: Scalars['Int']['output']; rejectedCount: Scalars['Int']['output']; requestedCount: Scalars['Int']['output']; summary: EarningsSummary; }; export type ServiceRecordEarningInput = { amount: Scalars['Float']['input']; availableAt?: InputMaybe; /** Explicit billing account the earning is booked against (from resolveBillingAccount). */ billingAccountId: Scalars['ID']['input']; currency: Scalars['String']['input']; description?: InputMaybe; metadata?: InputMaybe; /** Opaque user id that owns this earning (used later to reserve funds on payout). */ ownerUserId?: InputMaybe; sourceCategory: EarningsSourceCategory; sourceEventId?: InputMaybe; /** Optional idempotency key for the source event that produced this earning (e.g. "store:sale:", "devportal:payoutRun:"). When set, the write is find-or-create on (billingAccountId, sourceIdempotencyKey): replaying the same source event any number of times converges to exactly one EarningsEntry (no duplicate row, no double-credit), so a consumer can safely backfill history. Omit/null keeps the legacy always-create behaviour. */ sourceIdempotencyKey?: InputMaybe; sourceReferenceId?: InputMaybe; sourceSubcategory?: InputMaybe; unitType?: InputMaybe; }; export type ServiceRequestPayoutInput = { amount: Scalars['Float']['input']; /** Explicit billing account the payout is drawn from. */ billingAccountId: Scalars['ID']['input']; currency: Scalars['String']['input']; notes?: InputMaybe; /** Opaque user id whose AVAILABLE earnings are reserved for this payout. */ ownerUserId: Scalars['String']['input']; /** Payout account funds are sent to. Obtain one for a service caller via `serviceResolvePayoutAccount` (resolve-or-create) — the user-only `addPayoutAccount` path is not reachable for a service actor. */ payoutAccountId: Scalars['ID']['input']; /** Optional idempotency key for the source event that produced this payout (e.g. "store:payoutRun:", "devportal:payoutRun:"). When set, the operation is find-or-create on (billingAccountId, sourceIdempotencyKey): a replay with the same key returns the existing PayoutRequest unchanged — no double-reserve of earnings, no duplicate row — so a dual-write consumer can safely retry. Omit/null keeps the legacy always-create behaviour. */ sourceIdempotencyKey?: InputMaybe; }; /** Minimal destination context for resolving a canonical default payout account for a publisher/org owner. Only `billingAccountId` + `ownerUserId` are required; the rest describe the placeholder created when the owner has no account yet. */ export type ServiceResolvePayoutAccountInput = { /** Explicit billing account the payout account belongs to (from resolveBillingAccount). */ billingAccountId: Scalars['ID']['input']; /** Country hint used for provider routing on a newly-created placeholder account. */ country?: InputMaybe; /** Currency for a newly-created placeholder account. Defaults to the billing account currency when omitted. Ignored when an account already exists. */ currency?: InputMaybe; /** Human-readable label for a newly-created placeholder account. */ label?: InputMaybe; /** Opaque user id that owns the payout destination (publisher / developer org owner). */ ownerUserId: Scalars['String']['input']; /** Destination type for a newly-created placeholder account (defaults to BANK_ACCOUNT). */ type?: InputMaybe; }; export type ServiceSyncPayoutStatusInput = { externalReference?: InputMaybe; failureReason?: InputMaybe; /** The billing PayoutRequest's sourceIdempotencyKey, formatted "devportal:payout:" — the id segment identifies which local payout row to update. */ sourceIdempotencyKey: Scalars['String']['input']; /** The billing PayoutRequestStatus after the change (e.g. APPROVED, REJECTED, PAID, FAILED). */ status: Scalars['String']['input']; }; /** An active user session (login instance) */ export type Session = { __typename?: 'Session'; createdAt: Scalars['DateTime']['output']; expiresAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; ipAddress?: Maybe; /** Whether this session is the one making the current request */ isCurrent: Scalars['Boolean']['output']; lastActivityAt: Scalars['DateTime']['output']; location?: Maybe; status: SessionStatus; userAgent?: Maybe; }; /** Paginated list of sessions */ export type SessionConnection = { __typename?: 'SessionConnection'; hasMore: Scalars['Boolean']['output']; sessions: Array; totalCount: Scalars['Int']['output']; }; export declare enum SessionStatus { Active = "ACTIVE", Expired = "EXPIRED", Revoked = "REVOKED" } export type SetBillingAddressInput = { /** Billing account ID to associate with */ billingAccountId: Scalars['ID']['input']; /** City */ city: Scalars['String']['input']; /** Country */ country: Scalars['String']['input']; /** Address line 1 */ line1: Scalars['String']['input']; /** Address line 2 */ line2?: InputMaybe; /** Additional metadata */ metadata?: InputMaybe; /** Postal/ZIP code */ postalCode: Scalars['String']['input']; /** State/Province */ state?: InputMaybe; }; export type SetNotificationTopicSubscriptionInput = { metadata?: InputMaybe; subscribed: Scalars['Boolean']['input']; topicId: Scalars['ID']['input']; }; /** Input for setting role default permission */ export type SetRoleDefaultPermissionInput = { level: RoleLevel; resourceType: Scalars['String']['input']; roleId: Scalars['ID']['input']; }; /** Input for setting the shipping address + method on a store order (physical orders). The client sends IDs ONLY. The backend recomputes the authoritative shipping cost server-side from the order's own line-item weights (same quote engine as estimateOrderShipping) — a client-supplied cost is never trusted. */ export type SetStoreOrderShippingInput = { /** Store order to attach shipping to */ orderId: Scalars['ID']['input']; /** Selected ShippingAddress ID (from myShippingAddresses or a freshly createdShippingAddress). Must belong to the order's buyer. */ shippingAddressId: Scalars['ID']['input']; /** Selected ShippingMethod ID (from the shippingMethods query). NOTE: a ShippingMethod, NOT a ShippingRate — only ShippingMethod is wired to the quote engine. */ shippingMethodId: Scalars['ID']['input']; }; export type SetUserFeatureFlagPreferenceInput = { enabled: Scalars['Boolean']['input']; featureFlagId: Scalars['String']['input']; workspaceId: Scalars['String']['input']; }; export type SetUserLanguagePreferenceInput = { /** ISO 3166-1 alpha-2 country code (e.g., IN, US, DE) */ country?: InputMaybe; /** ISO 4217 currency code (e.g., INR, USD, EUR) */ currency?: InputMaybe; dateFormat?: InputMaybe; languageCode: Scalars['String']['input']; metadata?: InputMaybe; numberFormat?: InputMaybe; tenantId?: InputMaybe; timeFormat?: InputMaybe; timezone?: InputMaybe; userId: Scalars['ID']['input']; }; export type SetWorkspaceFeatureFlagOverrideInput = { allowUserOptIn?: InputMaybe; enabled: Scalars['Boolean']['input']; featureFlagId: Scalars['String']['input']; workspaceId: Scalars['String']['input']; }; /** Public view of a shared WORKFLOW app — no auth required. The manifest is the raw workflow JSON that can be copied into the FluidGrids builder. */ export type SharedWorkflow = { __typename?: 'SharedWorkflow'; appType: AppType; category?: Maybe; description?: Maybe; developerName?: Maybe; iconUrl?: Maybe; id: Scalars['ID']['output']; manifest: Scalars['JSON']['output']; name: Scalars['String']['output']; sharedAt: Scalars['DateTime']['output']; shortDescription?: Maybe; tags: Array; updatedAt: Scalars['DateTime']['output']; }; /** Shipping address for physical product delivery */ export type ShippingAddress = { __typename?: 'ShippingAddress'; /** Street address line 1 */ addressLine1: Scalars['String']['output']; /** Street address line 2 (apt, suite, etc.) */ addressLine2?: Maybe; /** City name */ city: Scalars['String']['output']; context?: Maybe; /** Country ISO 3166-1 alpha-2 code (e.g., "US", "IN") */ country: Scalars['String']['output']; createdAt: Scalars['DateTime']['output']; /** Contact email */ email?: Maybe; /** Recipient full name */ fullName: Scalars['String']['output']; id: Scalars['ID']['output']; /** Delivery instructions */ instructions?: Maybe; /** Whether this is the user's default address */ isDefault: Scalars['Boolean']['output']; /** Whether the address has been validated */ isVerified: Scalars['Boolean']['output']; /** Address label (e.g., "Home", "Office") */ label?: Maybe; metadata?: Maybe; /** Contact phone number */ phone?: Maybe; /** Postal/ZIP code */ postalCode: Scalars['String']['output']; /** State/Province/Region */ state?: Maybe; updatedAt: Scalars['DateTime']['output']; userId: Scalars['String']['output']; }; /** Available shipping method */ export type ShippingMethod = { __typename?: 'ShippingMethod'; /** Countries where this method is available (ISO codes) */ availableCountries: Array; /** Base shipping cost */ baseCost: Scalars['Float']['output']; /** Carrier name (e.g., "FedEx", "UPS") */ carrier?: Maybe; /** Carrier's internal service ID */ carrierServiceId?: Maybe; /** Unique code (e.g., "standard", "express") */ code: Scalars['String']['output']; context?: Maybe; /** Additional cost per item */ costPerItem?: Maybe; /** Additional cost per kilogram */ costPerKg?: Maybe; createdAt: Scalars['DateTime']['output']; /** Currency for the cost */ currency: Scalars['String']['output']; /** Description of the shipping method */ description?: Maybe; /** Display order */ displayOrder: Scalars['Int']['output']; /** Maximum estimated delivery days */ estimatedMaxDays?: Maybe; /** Minimum estimated delivery days */ estimatedMinDays?: Maybe; /** Countries excluded from this method (ISO codes) */ excludedCountries: Array; id: Scalars['ID']['output']; /** Whether this method is currently available */ isActive: Scalars['Boolean']['output']; /** Maximum dimensions as JSON */ maxDimensions?: Maybe; /** Maximum package weight in kg */ maxWeight?: Maybe; metadata?: Maybe; /** Display name (e.g., "Standard Shipping") */ name: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; }; /** Shipping rate within a zone */ export type ShippingRate = { __typename?: 'ShippingRate'; /** Base cost for this rate */ baseCost: Scalars['Float']['output']; context?: Maybe; createdAt: Scalars['DateTime']['output']; /** Currency for the rate */ currency: Scalars['String']['output']; /** Display order */ displayOrder: Scalars['Int']['output']; /** Maximum estimated delivery days */ estimatedMaxDays?: Maybe; /** Minimum estimated delivery days */ estimatedMinDays?: Maybe; /** Minimum order amount for free shipping */ freeShippingMinOrderAmount?: Maybe; id: Scalars['ID']['output']; /** Whether this rate is active */ isActive: Scalars['Boolean']['output']; metadata?: Maybe; /** Rate name (e.g., "Standard", "Express") */ name: Scalars['String']['output']; shippingZone?: Maybe; shippingZoneId: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; /** Weight-based pricing tiers as JSON */ weightTiers?: Maybe; }; /** Shipping zone for rate calculation */ export type ShippingZone = { __typename?: 'ShippingZone'; context?: Maybe; /** Countries in this zone (ISO codes) */ countries: Array; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; /** Whether this zone is active */ isActive: Scalars['Boolean']['output']; metadata?: Maybe; /** Zone name (e.g., "Domestic", "International") */ name: Scalars['String']['output']; /** Shipping rates for this zone */ rates: Array; updatedAt: Scalars['DateTime']['output']; }; export type SideloadAppInput = { manifest: Scalars['JSON']['input']; organizationId?: InputMaybe; productId: Scalars['String']['input']; source?: InputMaybe; version?: InputMaybe; workspaceId: Scalars['String']['input']; workspaceName?: InputMaybe; workspaceType?: InputMaybe; }; export type SignInInput = { email?: InputMaybe; password: Scalars['String']['input']; recaptchaToken?: InputMaybe; rememberMe?: InputMaybe; username?: InputMaybe; }; export type SignUpInput = { email: Scalars['String']['input']; firstName?: InputMaybe; lastName?: InputMaybe; name?: InputMaybe; password: Scalars['String']['input']; phoneNumber?: InputMaybe; /** PlatformProduct slug that originated the signup (e.g. "vibecontrols", "burdenoff"). Optional — when present it is persisted on the EmailVerification row and propagated on the `global.auth.email.verified` event so global-tenant-svc / global-channel-svc can route the welcome email to the correct per-product template. Frontends should pass the slug of the product whose signup form was rendered. */ productSlug?: InputMaybe; recaptchaToken?: InputMaybe; username: Scalars['String']['input']; }; export type SignedCookieResult = { __typename?: 'SignedCookieResult'; cookieName: Scalars['String']['output']; cookieValue: Scalars['String']['output']; httpOnly: Scalars['Boolean']['output']; maxAge: Scalars['Int']['output']; path: Scalars['String']['output']; sameSite: Scalars['String']['output']; secure: Scalars['Boolean']['output']; }; export type SignedCookieValidation = { __typename?: 'SignedCookieValidation'; error?: Maybe; expiresAt?: Maybe; sessionId?: Maybe; userId?: Maybe; valid: Scalars['Boolean']['output']; }; /** Common sort input */ export type SortInput = { /** Field to sort by */ field: Scalars['String']['input']; /** Sort direction */ order?: InputMaybe; }; /** Sort order for queries */ export declare enum SortOrder { Asc = "ASC", Desc = "DESC" } export type SourceBreakdown = { __typename?: 'SourceBreakdown'; count: Scalars['Int']['output']; percentage: Scalars['Float']['output']; source: TicketSource; }; /** Private offer visible only to its publisher and the owning buyer. */ export type SourcingOffer = { __typename?: 'SourcingOffer'; acceptedAt?: Maybe; createdAt: Scalars['DateTime']['output']; currency: Scalars['String']['output']; deliveryDate: Scalars['DateTime']['output']; id: Scalars['ID']['output']; message?: Maybe; order?: Maybe; publisher?: Maybe; publisherId: Scalars['ID']['output']; quantity: Scalars['Int']['output']; rejectedAt?: Maybe; request?: Maybe; requestId: Scalars['ID']['output']; status: SourcingOfferStatus; storeProductId?: Maybe; unit: SourcingUnit; unitPrice: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; }; export declare enum SourcingOfferStatus { Accepted = "ACCEPTED", Active = "ACTIVE", Rejected = "REJECTED" } /** Sanitized OPEN request projection discoverable by eligible active publishers. */ export type SourcingOpportunity = { __typename?: 'SourcingOpportunity'; category: Scalars['String']['output']; createdAt: Scalars['DateTime']['output']; deliveryCity?: Maybe; deliveryCountry: Scalars['String']['output']; deliveryRegion?: Maybe; deliveryWindowEnd: Scalars['DateTime']['output']; deliveryWindowStart: Scalars['DateTime']['output']; id: Scalars['ID']['output']; productName: Scalars['String']['output']; quantity: Scalars['Int']['output']; summary?: Maybe; targetCurrency?: Maybe; targetUnitPrice?: Maybe; unit: SourcingUnit; }; /** Sourcing-safe projection of the accepted StoreOrder visible to its buyer and publisher. */ export type SourcingOrderSummary = { __typename?: 'SourcingOrderSummary'; createdAt: Scalars['DateTime']['output']; currency: Scalars['String']['output']; fulfillment?: Maybe; id: Scalars['ID']['output']; lineItems: Scalars['JSON']['output']; status: OrderStatus; total: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; }; /** Narrow publisher identity visible to a request owner. */ export type SourcingPublisherSummary = { __typename?: 'SourcingPublisherSummary'; id: Scalars['ID']['output']; isVerified: Scalars['Boolean']['output']; logoUrl?: Maybe; name: Scalars['String']['output']; }; /** Buyer-owned request view. Buyer and organization identity are never accepted as arguments. */ export type SourcingRequest = { __typename?: 'SourcingRequest'; acceptedOrder?: Maybe; canceledAt?: Maybe; category: Scalars['String']['output']; createdAt: Scalars['DateTime']['output']; deliveryCity?: Maybe; deliveryCountry: Scalars['String']['output']; deliveryRegion?: Maybe; deliveryWindowEnd: Scalars['DateTime']['output']; deliveryWindowStart: Scalars['DateTime']['output']; id: Scalars['ID']['output']; matchedAt?: Maybe; offers: Array; productName: Scalars['String']['output']; quantity: Scalars['Int']['output']; status: SourcingRequestStatus; summary?: Maybe; targetCurrency?: Maybe; targetUnitPrice?: Maybe; unit: SourcingUnit; updatedAt: Scalars['DateTime']['output']; }; export declare enum SourcingRequestStatus { Canceled = "CANCELED", Matched = "MATCHED", Open = "OPEN" } export declare enum SourcingUnit { Bag = "BAG", Box = "BOX", Gram = "GRAM", Kilogram = "KILOGRAM", Liter = "LITER", MetricTon = "METRIC_TON", Milliliter = "MILLILITER", Pallet = "PALLET", Unit = "UNIT" } export type SpendCreditResponse = { __typename?: 'SpendCreditResponse'; creditTransactionID: Scalars['String']['output']; }; export type SpendCreditsInput = { addOnIds?: InputMaybe>>; billingAccountId: Scalars['String']['input']; /** For plan downgrades — the active higher-tier subscription ID. Old subscription's auto-renewal is cancelled so it won't charge again; it stays active until natural expiry and then the new plan continues. */ downgradeFromSubscriptionId?: InputMaybe; isAnnual?: InputMaybe; /** Order ID to purchase using credits (for store orders, etc.) */ orderId?: InputMaybe; planId?: InputMaybe; /** Number of seats for PER_SEAT plans. Stored on the created subscription. Credits required = pricePerSeat × seatCount × creditsPerUSD (instead of plan.price). Ignored for FLAT_RATE plans. */ seatCount?: InputMaybe; /** For addon purchases - the subscription ID to attach addons to. Required if billing account has multiple active subscriptions. If only one active subscription exists, it will be auto-selected. */ subscriptionId?: InputMaybe; /** For plan upgrades - the subscription ID to upgrade from. Old quotas will be moved to the new subscription. */ upgradeFromSubscriptionId?: InputMaybe; }; /** Resolved storage cap (in bytes) for a billing account. Returned by `getStorageLimitForOrg`. Source order, first-hit wins: 1) plan.storageBytesLimit when set 2) plan-attached quota named "storage_bytes" (limits.value) 3) platform default: 50MB (free / no active sub) or 5GB (paid plan) */ export type StorageLimit = { __typename?: 'StorageLimit'; /** Resolved storage cap in bytes. BigInt encoded as String. */ limitBytes: Scalars['String']['output']; /** Plan ID providing the limit (null when fallback was used). */ planId?: Maybe; /** Plan name providing the limit ("Free" when fallback was used). */ planName: Scalars['String']['output']; /** Source of the limit: PLAN_FIELD | PLAN_QUOTA | DEFAULT_FREE | DEFAULT_PAID. */ source: Scalars['String']['output']; }; export type Store = { __typename?: 'Store'; allowUnverifiedPublishers: Scalars['Boolean']['output']; createdAt: Scalars['DateTime']['output']; currency: Scalars['String']['output']; description?: Maybe; id: Scalars['ID']['output']; isPublic: Scalars['Boolean']['output']; logoUrl?: Maybe; metadata?: Maybe; name: Scalars['String']['output']; requiresApproval: Scalars['Boolean']['output']; slug: Scalars['String']['output']; tenantId?: Maybe; type: StoreType; updatedAt: Scalars['DateTime']['output']; websiteUrl?: Maybe; }; export type StoreAppInstallation = { __typename?: 'StoreAppInstallation'; context?: Maybe; grantedPermissions?: Maybe; id: Scalars['ID']['output']; installedAt: Scalars['DateTime']['output']; installedById: Scalars['String']['output']; manifest?: Maybe; metadata?: Maybe; organizationId?: Maybe; productIcon?: Maybe; productId: Scalars['String']['output']; productName?: Maybe; productStatus?: Maybe; productType?: Maybe; status: StoreInstallationStatus; uninstalledAt?: Maybe; uninstalledById?: Maybe; updatedAt: Scalars['DateTime']['output']; version?: Maybe; workspaceId: Scalars['String']['output']; workspaceName?: Maybe; workspaceType?: Maybe; }; export type StoreAppInstallationConnection = { __typename?: 'StoreAppInstallationConnection'; hasMore: Scalars['Boolean']['output']; items: Array; total: Scalars['Int']['output']; }; /** Filter facets for UI refinement options */ export type StoreFacets = { __typename?: 'StoreFacets'; /** Available categories with counts */ categories: Array; /** Available licenses with counts */ licenses: Array; /** Price range in results */ priceRange?: Maybe; /** Available pricing models with counts */ pricingModels: Array; /** Rating distribution */ ratingDistribution?: Maybe; /** Available subtypes with counts */ subTypes: Array; /** Available types with counts */ types: Array; }; /** Unified filter input for browsing/searching store products. All filters combine with AND logic - search is treated as a filter. */ export type StoreFilterInput = { /** Filter by author name (partial match) */ authorName?: InputMaybe; /** Filter by brand (physical products) */ brand?: InputMaybe; /** Filter by multiple categories (OR within this filter) */ categories?: InputMaybe>; /** Filter by exact category match (e.g., "Customer Support", "Notification") */ category?: InputMaybe; /** Filter by compatible product (e.g., "workspaces", "fluidgrids", "bigconsole") Products must be compatible with this product. */ compatibleWith?: InputMaybe; /** Filter only featured products */ featured?: InputMaybe; /** Filter products that are in stock (physical products) */ inStock?: InputMaybe; /** Filter by license type (e.g., "MIT", "Apache-2.0") */ license?: InputMaybe; /** Filter by multiple licenses (OR within this filter) */ licenses?: InputMaybe>; /** Filter by maximum price (inclusive) */ maxPrice?: InputMaybe; /** Filter by minimum download count */ minDownloads?: InputMaybe; /** Filter by minimum platform version compatibility */ minPlatformVersion?: InputMaybe; /** Filter by minimum price (inclusive) */ minPrice?: InputMaybe; /** Filter by minimum rating (1.0 - 5.0, inclusive) */ minRating?: InputMaybe; /** Filter by nature: DIGITAL or PHYSICAL */ nature?: InputMaybe; /** Filter by pricing model (FREE, PAID_ONETIME, SUBSCRIPTION) */ pricingModel?: InputMaybe; /** Filter by multiple pricing models (OR within this filter) */ pricingModels?: InputMaybe>; /** Filter by publisher ID */ publisherId?: InputMaybe; /** Filter products that require shipping */ requiresShipping?: InputMaybe; /** Full-text search query. Searches across: - name (highest priority) - description - tags - authorName, category (lowest priority) Uses PostgreSQL tsvector with weighted ranking. */ search?: InputMaybe; /** Filter by product status (defaults to PUBLISHED for consumer queries) */ status?: InputMaybe; /** Filter by type-specific subtype. Examples: - For AGENT: "task_automation", "conversational", "research" - For NODE: "action", "trigger", "integration", "ai" - For WIDGET: "chart", "metric", "table", "map" */ subType?: InputMaybe; /** Filter by multiple subtypes (OR within this filter) */ subTypes?: InputMaybe>; /** Filter by tags - products must have ALL specified tags (AND logic) */ tags?: InputMaybe>; /** Filter by tags - products must have ANY of specified tags (OR logic) */ tagsAny?: InputMaybe>; /** Filter by product type (AGENT, NODE, WIDGET, WORKFLOW, etc.) */ type?: InputMaybe; /** Filter by multiple product types (OR within this filter) */ types?: InputMaybe>; /** Filter by required integration (e.g., "slack", "sendgrid") */ usesIntegration?: InputMaybe; /** Filter by multiple integrations - must use ALL (AND logic) */ usesIntegrations?: InputMaybe>; }; export declare enum StoreInstallationStatus { Active = "ACTIVE", Failed = "FAILED", Inactive = "INACTIVE", Installing = "INSTALLING", Pending = "PENDING", Uninstalled = "UNINSTALLED" } /** StoreItem entity reference. The actual StoreItem is defined in the Store service. In Federation 2 setup, this will be marked with @key directive. For now, this is a reference type that returns the itemId for the Gateway to resolve. */ export type StoreItem = { __typename?: 'StoreItem'; /** The unique identifier for the store item */ id: Scalars['ID']['output']; }; /** Line item representing a single product in an order */ export type StoreLineItemInput = { /** * Item type is derived from the catalog product nature. * @deprecated The server derives itemType from product nature */ itemType?: InputMaybe; /** * Product name is retained only for backwards-compatible clients. The store resolves the authoritative name from productId and variantId. * @deprecated The server resolves product and variant names */ name?: InputMaybe; /** * Pricing model is derived from the catalog. * @deprecated The server derives pricingModel from the catalog */ pricingModel?: InputMaybe; /** Store product ID */ productId: Scalars['String']['input']; /** Quantity of this item */ quantity: Scalars['Int']['input']; /** * Subtotal is calculated by the server. * @deprecated The server calculates subtotal */ subtotal?: InputMaybe; /** * Unit price is derived from the catalog or variant price. * @deprecated The server resolves unitPrice from the catalog */ unitPrice?: InputMaybe; /** Product variant ID if applicable */ variantId?: InputMaybe; /** Product version is retained as display metadata only. */ version?: InputMaybe; }; /** External entity stub for StoreOrder from store-svc. Federation gateway will resolve full StoreOrder data from store-svc. Used by: BillingAccount.storeOrders (if extended), Transaction.storeOrder */ export type StoreOrder = { __typename?: 'StoreOrder'; appliedEntitlementId?: Maybe; /** Billing account for payment */ billingAccountId: Scalars['String']['output']; /** Billing order ID (link to billing service order) */ billingOrderId?: Maybe; /** Context JSON (must include workspace_id) */ context: Scalars['JSON']['output']; createdAt: Scalars['DateTime']['output']; /** Currency captured when the store order was created. Billing may still convert at payment time, but this is the canonical order currency for checkout display and reconciliation. */ currency: Scalars['String']['output']; /** Fulfillment tracking for physical orders */ fulfillment?: Maybe; id: Scalars['ID']['output']; /** Seller-reported issues on this order (e.g. out of stock, cannot fulfill). */ issueFlags: Array; /** Array of line items in this order */ lineItems: Scalars['JSON']['output']; metadata?: Maybe; /** When order was fulfilled (null if not yet processed) */ processedAt?: Maybe; /** When payment was completed (null if still pending) */ purchasedAt?: Maybe; /** Resolved shipping destination address (physical orders) */ shippingAddress?: Maybe; /** Selected shipping address ID (physical orders) */ shippingAddressId?: Maybe; /** Server-computed shipping cost, in the order currency. SEPARATE from `total` (which is product-cost-only); billing must add this to the payable amount. */ shippingCost?: Maybe; /** Currency of the shipping cost quote */ shippingCurrency?: Maybe; /** Resolved shipping method (physical orders) */ shippingMethod?: Maybe; /** Selected shipping method ID (physical orders) */ shippingMethodId?: Maybe; /** Immutable snapshot frozen at shipping-selection time: { address, method, cost, currency, quotedAt }. Used by order/confirmation pages so a later edit/delete of the ShippingAddress cannot alter the ship-to. */ shippingSnapshot?: Maybe; status: OrderStatus; /** Total product cost (sum of line items) Note: Currency, tax, and final billing amount handled by billing service */ total: Scalars['Float']['output']; transaction?: Maybe; /** Transaction ID from billing service (set after payment) */ transactionId?: Maybe; updatedAt: Scalars['DateTime']['output']; /** User who made the purchase */ userId: Scalars['String']['output']; }; /** Paginated store orders result */ export type StoreOrdersResult = { __typename?: 'StoreOrdersResult'; orders: Array; total: Scalars['Int']['output']; }; /** Pagination input for store queries */ export type StorePaginationInput = { /** Cursor for cursor-based pagination (alternative to offset) */ cursor?: InputMaybe; /** Number of items to return (default: 20, max: 100) */ limit?: InputMaybe; /** Number of items to skip (for offset pagination) */ offset?: InputMaybe; }; /** External entity stub for StoreProduct from store-svc. Federation gateway will resolve full StoreProduct data from store-svc. Used by: SubscriptionEntitlement.storeProduct */ export type StoreProduct = { __typename?: 'StoreProduct'; /** Allow orders when out of stock (physical products) */ allowBackorder?: Maybe; /** Author/publisher display name (from manifest.author.name) */ authorName?: Maybe; bannerUrl?: Maybe; /** Brand name (physical products) */ brand?: Maybe; category?: Maybe; /** Compatible products (from manifest.compatibility.products) Examples: ["fluidgrids", "workspaces", "bigconsole", "botlit"] */ compatibleProducts: Array; content?: Maybe; context?: Maybe; /** Country of origin ISO code (physical products) */ countryOfOrigin?: Maybe; createdAt: Scalars['DateTime']['output']; currency: Scalars['String']['output']; description?: Maybe; /** Dimension unit (CENTIMETER, INCH, METER) */ dimensionUnit?: Maybe; documentationUrl?: Maybe; downloads: Scalars['Int']['output']; entitlements: Array; featured: Scalars['Boolean']['output']; /** Product height (physical products) */ height?: Maybe; icon?: Maybe; id: Scalars['ID']['output']; /** Integration dependencies (from manifest.dependencies.integrations) Examples: ["slack", "sendgrid", "zendesk", "salesforce"] */ integrationDeps: Array; /** Whether this product is already purchased by the current billing account. Computed field based on billingAccountId context. */ isPurchased?: Maybe; /** Product length (physical products) */ length?: Maybe; /** License type (from manifest.license, e.g., "MIT", "Apache-2.0") */ license?: Maybe; longDescription?: Maybe; /** Alert threshold for low stock (physical products) */ lowStockThreshold?: Maybe; /** Complete manifest.json stored as JSON (source of truth from DevPortal) */ manifest?: Maybe; /** Manifest schema version (e.g., "1.0") */ manifestVersion?: Maybe; /** Manufacturer name (physical products) */ manufacturer?: Maybe; metadata?: Maybe; /** Minimum platform version required (from manifest.compatibility.minVersion) */ minPlatformVersion?: Maybe; name: Scalars['String']['output']; /** Nature of the product - DIGITAL (downloadable) or PHYSICAL (requires shipping) */ nature: ProductNature; orders: Array; price: Scalars['Float']['output']; pricingModel: PricingModel; productId?: Maybe; publishedAt?: Maybe; publisher?: Maybe; publisherId: Scalars['String']['output']; /** Number of PHYSICAL orders this product has been fulfilled in at least once — incremented alongside OrderFulfillment's first creation for the order (see OrderService.ensurePhysicalFulfillmentRecord), the physical counterpart to how `downloads` counts first-install events for digital products. Always 0 for DIGITAL nature. */ purchaseCount: Scalars['Int']['output']; rating?: Maybe; rejectedReason?: Maybe; repositoryUrl?: Maybe; /** Required permissions (from manifest.permissions) Examples: ["network.outbound", "database.write", "notification.email"] */ requiredPermissions: Array; /** Whether this product requires shipping (physical products) */ requiresShipping?: Maybe; /** Return policy details (physical products) */ returnPolicy?: Maybe; reviewCount: Scalars['Int']['output']; reviewNotes?: Maybe; reviewedAt?: Maybe; reviewedBy?: Maybe; reviews: Array; screenshots: Array; /** Stock Keeping Unit - unique identifier for inventory (physical products) */ sku?: Maybe; slug: Scalars['String']['output']; status: ProductStatus; /** Current stock quantity (physical products) */ stockQuantity?: Maybe; storeId?: Maybe; /** Type-specific subtype from manifest.json. Examples: - Agent: task_automation, conversational, research, code_assistant - Node: action, transform, trigger, logic, integration, data, notification, ai - Widget: chart, metric, table, map, form, text, custom */ subType?: Maybe; submittedAt?: Maybe; submittedBy?: Maybe; subscriptionEntitlements: Array; /** Structured tag assignments via wspace-tags-svc */ tagAssignments: Array; tags: Array; /** Whether to track inventory levels (physical products) */ trackInventory?: Maybe; type: ProductType; updatedAt: Scalars['DateTime']['output']; /** Product variants (for physical products with size/color options) */ variants: Array; videoUrls: Array; viewCount: Scalars['Int']['output']; /** Warranty information (physical products) */ warrantyInfo?: Maybe; /** Product weight (physical products) */ weight?: Maybe; /** Weight unit (GRAM, KILOGRAM, OUNCE, POUND) */ weightUnit?: Maybe; /** Product width (physical products) */ width?: Maybe; zipFileUrl?: Maybe; }; /** Input for fetching store product details */ export type StoreProductDetailsInput = { /** Product ID (required if slug not provided) */ id?: InputMaybe; /** Include related products (default: true) */ includeRelated?: InputMaybe; /** Include reviews in response (default: true) */ includeReviews?: InputMaybe; /** Include version history (default: true) */ includeVersions?: InputMaybe; /** Maximum number of related products (default: 6) */ relatedLimit?: InputMaybe; /** Maximum number of reviews to return (default: 10) */ reviewsLimit?: InputMaybe; /** Product slug (required if id not provided) */ slug?: InputMaybe; }; /** Comprehensive result for product details page */ export type StoreProductDetailsResult = { __typename?: 'StoreProductDetailsResult'; /** Whether current user has purchased this product */ isPurchased: Scalars['Boolean']['output']; /** The store product with all details */ product: StoreProduct; /** Publisher/author information */ publisher?: Maybe; /** Rating breakdown by stars */ ratingDistribution?: Maybe; /** Related products based on category and tags */ relatedProducts: Array; /** Product reviews (sorted by helpful count, then date) */ reviews: Array; /** Total number of reviews for pagination */ reviewsCount: Scalars['Int']['output']; /** Current user's entitlement (if any) */ userEntitlement?: Maybe; /** Current user's review (if any) */ userReview?: Maybe; }; /** Tag assignment for a store product (backed by wspace-tags-svc) */ export type StoreProductTagAssignment = { __typename?: 'StoreProductTagAssignment'; assignedAt?: Maybe; assignedBy?: Maybe; entityId: Scalars['ID']['output']; entityType: Scalars['String']['output']; id: Scalars['ID']['output']; metadata?: Maybe; source: Scalars['String']['output']; tag?: Maybe; tagId: Scalars['ID']['output']; validFrom?: Maybe; validTo?: Maybe; }; /** Sort options for store products */ export declare enum StoreSortBy { Downloads = "DOWNLOADS", Featured = "FEATURED", NameAsc = "NAME_ASC", NameDesc = "NAME_DESC", Newest = "NEWEST", Oldest = "OLDEST", PriceHigh = "PRICE_HIGH", PriceLow = "PRICE_LOW", Rating = "RATING", Relevance = "RELEVANCE" } /** Links a store product to a subscription plan for entitlements */ export type StoreSubscriptionEntitlement = { __typename?: 'StoreSubscriptionEntitlement'; accessType: EntitlementAccessType; context?: Maybe; createdAt: Scalars['DateTime']['output']; discountPercentage?: Maybe; id: Scalars['ID']['output']; metadata?: Maybe; planId: Scalars['String']['output']; storeProduct?: Maybe; storeProductId: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; }; export type StoreSubscriptionEntitlementInput = { accessType: EntitlementAccessType; discountPercentage?: InputMaybe; planId: Scalars['String']['input']; }; export declare enum StoreType { Enterprise = "ENTERPRISE", Private = "PRIVATE", Public = "PUBLIC" } /** Publisher submission status change event payload */ export type SubmissionStatusUpdatedEvent = { __typename?: 'SubmissionStatusUpdatedEvent'; productId: Scalars['ID']['output']; publisherId: Scalars['ID']['output']; status: Scalars['String']['output']; submissionId: Scalars['ID']['output']; updatedAt: Scalars['String']['output']; }; /** Input for a candidate submitting their take-home assignment response from the public careers site (burdenoff.com/careersubmissions). No authentication — protected by reCAPTCHA. The candidate is matched to their existing application by email (plus posting/position when given). */ export type SubmitAssignmentResponseInput = { /** Email the candidate applied with (matched case-insensitively). */ email: Scalars['String']['input']; /** Job posting the application belongs to (preferred matcher when provided). */ jobPostingId?: InputMaybe; /** Candidate name (display only — matching is by email). */ name?: InputMaybe; /** Optional notes from the candidate. */ notes?: InputMaybe; /** Position applied for (case-insensitive contains match when no posting ID). */ position?: InputMaybe; /** reCAPTCHA token, verified server-side when CAPTCHA_ENABLED=true. */ recaptchaToken: Scalars['String']['input']; /** GitHub repository link for the assignment (https only). */ repoUrl: Scalars['String']['input']; /** Jam/Loom demo video link for the assignment (https only). */ videoUrl: Scalars['String']['input']; }; export type SubmitAssignmentResponsePayload = { __typename?: 'SubmitAssignmentResponsePayload'; applicationId?: Maybe; message: Scalars['String']['output']; roundId?: Maybe; success: Scalars['Boolean']['output']; }; /** Input for submitting a contact inquiry from a public website. reCAPTCHA token is required only when CAPTCHA_ENABLED=true. */ export type SubmitContactInquiryInput = { /** Inquiry category chosen by the submitter (e.g. "sales", "support", "press"). Optional on the wire so older SDK versions stay compatible; the product website is expected to validate against its own allow-list before sending. Capped at 100 chars server-side. */ category?: InputMaybe; /** Company name (optional) */ company?: InputMaybe; /** Email address for follow-up */ email: Scalars['String']['input']; /** Detailed message */ message: Scalars['String']['input']; /** Extra metadata (browser info, referrer URL, etc.) */ metadata?: InputMaybe; /** Full name of the person submitting the inquiry */ name: Scalars['String']['input']; /** Platform product ID (identifies which product website the form was submitted from) */ productId?: InputMaybe; /** reCAPTCHA token for bot protection (verified server-side when CAPTCHA_ENABLED=true) */ recaptchaToken?: InputMaybe; /** Subject of the inquiry */ subject: Scalars['String']['input']; }; export type SubmitContactInquiryResult = { __typename?: 'SubmitContactInquiryResult'; /** The created inquiry (if successful) */ inquiry?: Maybe; /** Error message (if failed) */ message?: Maybe; /** Whether the submission was successful */ success: Scalars['Boolean']['output']; }; /** One visitor's verdict on one answer. Anonymous like the rest of explore: the conversation token is the only proof of ownership, and the visitor is recorded as an `ipHash`, never an IP. */ export type SubmitExploreFeedbackInput = { /** Optional free text. Capped server-side; the server truncates rather than rejecting, because a rating is never worth failing over its comment. */ comment?: InputMaybe; /** Bearer secret for the conversation the answer belongs to. */ conversationToken: Scalars['String']['input']; /** The assistant message being rated. Must be COMPLETED. */ messageId: Scalars['ID']['input']; rating: ExploreFeedbackRating; /** Why it was not helpful: one of INACCURATE INCOMPLETE OFF_TOPIC HARD_TO_FOLLOW OTHER. Ignored — and stored as null — for HELPFUL, because "what was wrong with it" is not a question a positive rating answers. */ reason?: InputMaybe; }; export type SubmitExploreFeedbackResult = { __typename?: 'SubmitExploreFeedbackResult'; /** What was actually stored — echoed back so the UI renders the server's view rather than assuming its optimistic one was accepted. Null when `recorded` is false. */ feedback?: Maybe; recorded: Scalars['Boolean']['output']; }; export type SubmitInterviewFeedbackInput = { internalNotes?: InputMaybe; interviewerId: Scalars['ID']['input']; rating?: InputMaybe; roundId: Scalars['ID']['input']; verdict?: InputMaybe; }; /** Input for submitting a job application from a public website. The resume is sent inline as base64 (server uploads it to private storage). reCAPTCHA token is required only when CAPTCHA_ENABLED=true. */ export type SubmitJobApplicationInput = { coverLetter?: InputMaybe; department?: InputMaybe; email: Scalars['String']['input']; firstName: Scalars['String']['input']; /** Job posting being applied to (must exist and be OPEN when provided). */ jobPostingId?: InputMaybe; lastName: Scalars['String']['input']; linkedinUrl?: InputMaybe; /** Extra metadata (browser info, referrer URL, etc.). */ metadata?: InputMaybe; phone?: InputMaybe; portfolioUrl?: InputMaybe; /** Role the applicant is applying for (the careers site owns the list). */ position: Scalars['String']['input']; /** Platform product ID (identifies which careers site the form came from). */ productId?: InputMaybe; /** reCAPTCHA token, verified server-side when CAPTCHA_ENABLED=true. */ recaptchaToken?: InputMaybe; /** Base64-encoded resume bytes (a `data:` URL prefix is tolerated). */ resumeBase64: Scalars['String']['input']; /** MIME type — must be PDF, DOC, or DOCX. */ resumeContentType: Scalars['String']['input']; resumeFileName: Scalars['String']['input']; }; export type SubmitJobApplicationResult = { __typename?: 'SubmitJobApplicationResult'; application?: Maybe; message?: Maybe; success: Scalars['Boolean']['output']; }; export type SubmitPublisherVerificationInput = { contactEmail: Scalars['String']['input']; contactPhone?: InputMaybe; country: Scalars['String']['input']; documents: Array; legalName: Scalars['String']['input']; supportUrl?: InputMaybe; taxId: Scalars['String']['input']; websiteUrl?: InputMaybe; }; export type SubmitSatisfactionSurveyInput = { comment?: InputMaybe; feedbackType?: InputMaybe; rating: Scalars['Int']['input']; surveyId: Scalars['ID']['input']; }; export type Subprocessor = { __typename?: 'Subprocessor'; activatedAt?: Maybe; category: SubprocessorCategory; contactEmail?: Maybe; countriesOfTransfer: Array; createdAt: Scalars['DateTime']['output']; dataCategories: Array; dpaSignedAt?: Maybe; dpaUrl?: Maybe; id: Scalars['ID']['output']; legalEntity: Scalars['String']['output']; name: Scalars['String']['output']; notes?: Maybe; privacyPolicyUrl?: Maybe; proposedAt?: Maybe; purpose: Scalars['String']['output']; region: Scalars['String']['output']; retiredAt?: Maybe; securityMeasures?: Maybe; status: SubprocessorStatus; updatedAt: Scalars['DateTime']['output']; websiteUrl?: Maybe; }; export declare enum SubprocessorCategory { AiProvider = "AI_PROVIDER", Analytics = "ANALYTICS", Cdn = "CDN", CloudInfrastructure = "CLOUD_INFRASTRUCTURE", CustomerSupport = "CUSTOMER_SUPPORT", EmailDelivery = "EMAIL_DELIVERY", Monitoring = "MONITORING", Other = "OTHER", Payment = "PAYMENT", Storage = "STORAGE" } export type SubprocessorConnection = { __typename?: 'SubprocessorConnection'; hasMore: Scalars['Boolean']['output']; nodes: Array; total: Scalars['Int']['output']; }; export type SubprocessorFilter = { category?: InputMaybe; region?: InputMaybe; status?: InputMaybe; }; export type SubprocessorInput = { category: SubprocessorCategory; contactEmail?: InputMaybe; countriesOfTransfer: Array; dataCategories: Array; dpaSignedAt?: InputMaybe; dpaUrl?: InputMaybe; legalEntity: Scalars['String']['input']; name: Scalars['String']['input']; notes?: InputMaybe; privacyPolicyUrl?: InputMaybe; purpose: Scalars['String']['input']; region: Scalars['String']['input']; securityMeasures?: InputMaybe; websiteUrl?: InputMaybe; }; export declare enum SubprocessorStatus { Active = "ACTIVE", Proposed = "PROPOSED", Retired = "RETIRED" } export type SubprocessorUpdateInput = { category?: InputMaybe; contactEmail?: InputMaybe; countriesOfTransfer?: InputMaybe>; dataCategories?: InputMaybe>; dpaSignedAt?: InputMaybe; dpaUrl?: InputMaybe; legalEntity?: InputMaybe; name?: InputMaybe; notes?: InputMaybe; privacyPolicyUrl?: InputMaybe; purpose?: InputMaybe; region?: InputMaybe; securityMeasures?: InputMaybe; status?: InputMaybe; websiteUrl?: InputMaybe; }; export type SubscribeInput = { /** Newsletter context for scoping (workspaceId, userId, productId, tenantId, etc.) */ context?: InputMaybe; email: Scalars['String']['input']; metadata?: InputMaybe; platformProductId: Scalars['String']['input']; userId?: InputMaybe; }; /** Root subscription type */ export type Subscription = { __typename?: 'Subscription'; /** Placeholder for extending subscriptions in other modules */ _empty?: Maybe; _emptyBilling?: Maybe; _emptyDevportal?: Maybe; _emptyI18n?: Maybe; /** Placeholder field to allow empty Subscription type extension. Each module has a unique placeholder to avoid naming conflicts across subgraphs. */ _emptyNewsletter?: Maybe; _emptyNotification?: Maybe; /** Placeholder field to allow empty Subscription type extension. Each module has a unique placeholder to avoid naming conflicts across subgraphs. */ _emptySupport?: Maybe; _emptyTours?: Maybe; /** Placeholder subscription (extended by modules) @rbac(public: true, scopeType: "global") */ _placeholder?: Maybe; agentStatusChanged: AgentProfile; /** Fires whenever the AppReview lifecycle changes for a given application (submission -> moderation -> publish/reject). */ appReviewStatusChanged: AppReview; /** Fires when a store admin approves or rejects a developer's submitted application. Subscribe with the applicationId returned from submitApplicationForReview. */ applicationStoreStatusChanged: ApplicationStoreStatus; /** Subscribe to channel health changes. Emits when a channel's connectionHealth status changes (HEALTHY → DEGRADED, etc.) Use cases: - Real-time dashboard updates showing channel health - Alerting systems monitoring channel availability - Auto-failover logic reacting to health degradation */ channelHealthChanged: ChannelHealthUpdate; /** Subscribe to connection-status changes for an organization. Emits when isActive or isHealthy flips on any channel connection in the org. Pass either organizationId (to watch all connections in the org) or channelId (to watch a specific channel's connection). */ connectionStatusChanged: ConnectionStatusChangedEvent; /** Emits the deleted content-page id. */ contentPageDeleted: Scalars['ID']['output']; /** Notifies clients when a content page is created or updated. */ contentPageUpdated: ProductContentPage; coverageChanged: CoverageChangeEvent; /** Subscribe to delivery status updates for a channel. Emits when a message delivery attempt changes status (SENDING, SENT, FAILED, etc.) */ deliveryUpdated: DeliveryUpdatedEvent; dependencyTriggered: DependencyTriggeredUpdate; executionUpdated: ExecutionUpdate; /** Notifies clients when a feature flag definition is created or updated. Subscribers can pass `flagKey` to receive only matching events. */ featureFlagChanged: FeatureFlag; /** Emits the deleted feature-flag id so clients can drop it from their cache. */ featureFlagDeleted: Scalars['ID']['output']; importJobProgress: ImportJobProgressEvent; /** Subscribe to app installation status changes for a workspace. TODO(BOFF-2658): wspace scope on a global svc subgraph — this subscription conceptually belongs on the workspace gateway; flagged for follow-up. */ installationStatusUpdated?: Maybe; jobStatusUpdated: JobStatusUpdate; /** Notifies clients when a keyboard shortcut is created, updated, or toggled. Subscribers can pass `productId` to scope the stream to a single product. */ keyboardShortcutChanged: KeyboardShortcut; /** Emits the deleted shortcut id so clients can drop it from their cache. */ keyboardShortcutDeleted: Scalars['ID']['output']; /** Subscribe to license entitlement status changes. */ licenseStatusUpdated?: Maybe; metricsUpdated: SchedulerMetricsUpdate; /** Live stream of the authenticated caller's unread notification count. Mirrors the result of `myUnreadNotificationCount` and replaces 30s polling on the FE NotificationCenter — backend publishes on every notification create / read / archive / delete. */ myUnreadNotificationCountStream: Scalars['Int']['output']; newTicketInQueue: SupportTicket; /** Subscribe to new notifications for the authenticated user */ notificationReceived?: Maybe; /** Subscribe to delivery status updates for a notification. Useful for real-time tracking of delivery progress. */ onDeliveryStatusUpdate: ChannelDeliveryStatusUpdate; /** Subscribe to order status changes for a specific order or workspace. */ orderStatusUpdated?: Maybe; /** Emits the deleted product id so clients can drop it from their cache. */ productDeleted: Scalars['ID']['output']; /** Notifies clients when a platform product is created or updated. Fires on create + update mutations; deletes are reported via `productDeleted`. */ productUpdated: PlatformProduct; /** Fires when the per-organization revenue rollup recomputes (currently every cron tick or after a settled sale). */ revenueUpdated: DeveloperOrgRevenueAnalytics; /** Subscribe to publisher submission status changes. */ submissionStatusUpdated?: Maybe; /** Stream of soft-deleted tenant ids. */ tenantDeleted: Scalars['ID']['output']; /** Stream of tenant lifecycle changes (create/update/configure/suspend/activate/ provision/endpoint-set). Backed by an in-memory pubsub fed by the matching mutations. Lets the admin tenant list refresh in real time without polling. */ tenantUpdated: Tenant; ticketMessageAdded: SupportMessage; ticketUpdated: SupportTicket; translationStatusChanged: TranslationStatusEvent; translationUpdated: TranslationUpdateEvent; /** Subscribe to unread count changes for the authenticated user */ unreadCountUpdated?: Maybe; /** Fires on every WebhookDelivery state transition for the given webhook (PENDING -> DELIVERING -> DELIVERED|FAILED|RETRYING). */ webhookDeliveryUpdated: WebhookDelivery; /** Subscribe to webhook events received by a channel. Emits when a new WebhookEvent row is persisted (before downstream processing). Resolver-level filter scopes to the requested channelId. */ webhookReceived: WebhookReceivedEvent; }; /** Root subscription type */ export type SubscriptionAppReviewStatusChangedArgs = { applicationId: Scalars['ID']['input']; }; /** Root subscription type */ export type SubscriptionApplicationStoreStatusChangedArgs = { applicationId: Scalars['ID']['input']; }; /** Root subscription type */ export type SubscriptionChannelHealthChangedArgs = { organizationId: Scalars['ID']['input']; }; /** Root subscription type */ export type SubscriptionConnectionStatusChangedArgs = { channelId?: InputMaybe; organizationId?: InputMaybe; }; /** Root subscription type */ export type SubscriptionContentPageUpdatedArgs = { productId?: InputMaybe; }; /** Root subscription type */ export type SubscriptionCoverageChangedArgs = { productCode: Scalars['String']['input']; }; /** Root subscription type */ export type SubscriptionDeliveryUpdatedArgs = { channelId: Scalars['ID']['input']; }; /** Root subscription type */ export type SubscriptionDependencyTriggeredArgs = { scheduleId?: InputMaybe; }; /** Root subscription type */ export type SubscriptionExecutionUpdatedArgs = { executionId?: InputMaybe; scheduleId?: InputMaybe; }; /** Root subscription type */ export type SubscriptionFeatureFlagChangedArgs = { flagKey?: InputMaybe; }; /** Root subscription type */ export type SubscriptionImportJobProgressArgs = { jobId: Scalars['ID']['input']; }; /** Root subscription type */ export type SubscriptionInstallationStatusUpdatedArgs = { workspaceId: Scalars['ID']['input']; }; /** Root subscription type */ export type SubscriptionJobStatusUpdatedArgs = { scheduleId?: InputMaybe; }; /** Root subscription type */ export type SubscriptionKeyboardShortcutChangedArgs = { productId?: InputMaybe; }; /** Root subscription type */ export type SubscriptionLicenseStatusUpdatedArgs = { workspaceId?: InputMaybe; }; /** Root subscription type */ export type SubscriptionMyUnreadNotificationCountStreamArgs = { filter?: InputMaybe; }; /** Root subscription type */ export type SubscriptionNewTicketInQueueArgs = { priority?: InputMaybe; }; /** Root subscription type */ export type SubscriptionNotificationReceivedArgs = { userId: Scalars['ID']['input']; }; /** Root subscription type */ export type SubscriptionOnDeliveryStatusUpdateArgs = { notificationId: Scalars['ID']['input']; organizationId: Scalars['ID']['input']; }; /** Root subscription type */ export type SubscriptionOrderStatusUpdatedArgs = { orderId?: InputMaybe; workspaceId?: InputMaybe; }; /** Root subscription type */ export type SubscriptionProductUpdatedArgs = { productId?: InputMaybe; }; /** Root subscription type */ export type SubscriptionRevenueUpdatedArgs = { organizationId: Scalars['ID']['input']; }; /** Root subscription type */ export type SubscriptionSubmissionStatusUpdatedArgs = { publisherId: Scalars['ID']['input']; }; /** Root subscription type */ export type SubscriptionTenantUpdatedArgs = { tenantId?: InputMaybe; }; /** Root subscription type */ export type SubscriptionTicketMessageAddedArgs = { ticketId: Scalars['ID']['input']; }; /** Root subscription type */ export type SubscriptionTicketUpdatedArgs = { ticketId: Scalars['ID']['input']; }; /** Root subscription type */ export type SubscriptionTranslationStatusChangedArgs = { productCode?: InputMaybe; }; /** Root subscription type */ export type SubscriptionTranslationUpdatedArgs = { languageCode?: InputMaybe; moduleCode?: InputMaybe; namespaceCode?: InputMaybe; productCode?: InputMaybe; }; /** Root subscription type */ export type SubscriptionUnreadCountUpdatedArgs = { userId: Scalars['ID']['input']; }; /** Root subscription type */ export type SubscriptionWebhookDeliveryUpdatedArgs = { webhookId: Scalars['ID']['input']; }; /** Root subscription type */ export type SubscriptionWebhookReceivedArgs = { channelId: Scalars['ID']['input']; }; /** SubscriptionEntitlement defines what store items a plan grants access to. This allows plans to provide discounts or free access to store items. */ export type SubscriptionEntitlement = { __typename?: 'SubscriptionEntitlement'; /** The type of access granted (FREE_ACCESS or DISCOUNT) */ accessType: EntitlementAccessType; /** Additional context */ context?: Maybe; /** When the entitlement was created */ createdAt: Scalars['DateTime']['output']; /** Discount percentage if accessType is DISCOUNT (0-100) */ discountPercentage?: Maybe; /** Unique identifier */ id: Scalars['ID']['output']; /** Reference to the store item entity (resolved via Federation) */ item?: Maybe; /** Reference to the store item (external entity from Store service) Resolved via Federation 2 Gateway */ itemId: Scalars['String']['output']; /** The plan that grants this entitlement */ plan: Plan; /** Reference to the plan that grants this entitlement */ planId: Scalars['String']['output']; /** When the entitlement was last updated */ updatedAt: Scalars['DateTime']['output']; }; export type SubscriptionFeatures = { __typename?: 'SubscriptionFeatures'; addon?: Maybe; addonId?: Maybe; context?: Maybe; id?: Maybe; plan?: Maybe; planId?: Maybe; /** Per-plan quantity for this feature. Seeds write the plan-specific value to `subscriptionFeature.context.quantity`; this field exposes it so pricing pages can show tier-specific limits. Falls back to `quota.limits.value` for legacy rows that have no explicit quantity. */ quantity?: Maybe; quota?: Maybe; quotaId?: Maybe; }; export type SubscriptionHistory = { __typename?: 'SubscriptionHistory'; context?: Maybe; createdAt: Scalars['DateTime']['output']; fromStatus: SubscriptionStatus; id: Scalars['ID']['output']; metadata?: Maybe; reason?: Maybe; subscription: BillingSubscription; subscriptionId: Scalars['ID']['output']; toStatus: SubscriptionStatus; }; export declare enum SubscriptionInterval { Daily = "DAILY", Monthly = "MONTHLY", Weekly = "WEEKLY", Yearly = "YEARLY" } export type SubscriptionQuotaUsageWithFilter = { __typename?: 'SubscriptionQuotaUsageWithFilter'; page: Scalars['Int']['output']; pageSize: Scalars['Int']['output']; totalCount: Scalars['Int']['output']; totalPages: Scalars['Int']['output']; usages: Array; }; export declare enum SubscriptionStatus { Active = "active", Canceled = "canceled", Completed = "completed", Downgraded = "downgraded", Expired = "expired", Incomplete = "incomplete", IncompleteExpired = "incomplete_expired", PastDue = "past_due", Paused = "paused", Trialing = "trialing", Upgraded = "upgraded" } export type SubscriptionWithQuotas = { __typename?: 'SubscriptionWithQuotas'; createdAt: Scalars['DateTime']['output']; id: Scalars['String']['output']; /** Name of the subscription's plan (e.g. "VibeControls - Free"). */ planName?: Maybe; /** Product the subscription's plan belongs to (e.g. "vibecontrols"). */ productId?: Maybe; quotas: Array; status: SubscriptionStatus; }; export type SupportAnalytics = { __typename?: 'SupportAnalytics'; categoryBreakdown: Array; priorityBreakdown: Array; sourceBreakdown: Array; stats: SupportStats; ticketTrends: Array; }; export type SupportAttachmentFile = { __typename?: 'SupportAttachmentFile'; downloadUrl: Scalars['String']['output']; id: Scalars['ID']['output']; mimeType: Scalars['String']['output']; name: Scalars['String']['output']; size: Scalars['BigInt']['output']; }; export type SupportAttachmentPresignedPart = { __typename?: 'SupportAttachmentPresignedPart'; partNumber: Scalars['Int']['output']; url: Scalars['String']['output']; }; export type SupportAttachmentUploadSession = { __typename?: 'SupportAttachmentUploadSession'; attachmentId: Scalars['ID']['output']; partSize: Scalars['Int']['output']; presignedUrls: Array; sessionId: Scalars['ID']['output']; totalParts: Scalars['Int']['output']; uploadType: Scalars['String']['output']; uploadUrl?: Maybe; }; /** Privacy-preserving author projection for SupportMessage. End-users only ever see the anonymized alias + generated avatar for agent authors; super_admin / service actors (admin app) see the real identity. */ export type SupportAuthor = { __typename?: 'SupportAuthor'; avatar: Scalars['String']['output']; displayName: Scalars['String']['output']; /** Stable opaque identifier safe for both viewer scopes. For agent authors viewed by an end-user this is the AgentProfile id (NOT the underlying userId); for admin viewers and customer authors it is the underlying actor id. */ id: Scalars['ID']['output']; /** True when the viewer was scoped down to the anonymized projection. Admins see this as false; end-users see it as true for agent authors. */ isAnonymized: Scalars['Boolean']['output']; /** AGENT | CUSTOMER | SYSTEM — drives UI styling without leaking identity. */ kind: SupportAuthorKind; }; export declare enum SupportAuthorKind { Agent = "AGENT", Customer = "CUSTOMER", System = "SYSTEM" } /** Support-specific context output type. Returns the stored context for each record. Uses a unique type name to avoid federation conflicts with other services. */ export type SupportContext = { __typename?: 'SupportContext'; custom?: Maybe; organizationId?: Maybe; productId?: Maybe; projectId?: Maybe; tenantId?: Maybe; userId?: Maybe; workspaceId?: Maybe; }; /** Context filter input for querying records by context. Supports exact match filtering on context fields. Note: tenantId filtering is applied automatically from context.tenant?.id. */ export type SupportContextFilterInput = { organizationId?: InputMaybe; productId?: InputMaybe; projectId?: InputMaybe; userId?: InputMaybe; workspaceId?: InputMaybe; }; /** Support context input for filtering and scoping data. All fields are optional and can be extended as needed. Note: tenantId is derived from context.tenant?.id (gateway header), not from client input. */ export type SupportContextInput = { custom?: InputMaybe; organizationId?: InputMaybe; productId?: InputMaybe; projectId?: InputMaybe; userId?: InputMaybe; workspaceId?: InputMaybe; }; export type SupportEraseResult = { __typename?: 'SupportEraseResult'; anonymised: Scalars['Int']['output']; dryRun: Scalars['Boolean']['output']; notes?: Maybe; purged: Scalars['Int']['output']; retainedForLegalReason?: Maybe; service: Scalars['String']['output']; }; export declare enum SupportExportFormat { Csv = "CSV", Json = "JSON", Po = "PO", Xliff = "XLIFF", Xlsx = "XLSX" } export type SupportMessage = { __typename?: 'SupportMessage'; attachmentCount: Scalars['Int']['output']; attachments: Array; /** Privacy-aware author projection. Returns the anonymized alias + avatar for end-users; admin app (super_admin / service) sees the real identity. */ author: SupportAuthor; authorId: Scalars['String']['output']; /** Contextual IDs for filtering and scoping (workspaceId, userId, projectId, etc.) */ context?: Maybe; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; isInternal: Scalars['Boolean']['output']; message: Scalars['String']['output']; ticket: SupportTicket; ticketId: Scalars['String']['output']; type: MessageType; updatedAt: Scalars['DateTime']['output']; }; export type SupportPaginationInput = { cursor?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; }; export type SupportStats = { __typename?: 'SupportStats'; averageFirstResponseTimeHours?: Maybe; averageResolutionTimeHours?: Maybe; closedTickets: Scalars['Int']['output']; inProgressTickets: Scalars['Int']['output']; newTickets: Scalars['Int']['output']; openTickets: Scalars['Int']['output']; reopenedTickets: Scalars['Int']['output']; resolvedTickets: Scalars['Int']['output']; slaComplianceRate?: Maybe; totalTickets: Scalars['Int']['output']; waitingOnCustomerTickets: Scalars['Int']['output']; }; export type SupportTicket = { __typename?: 'SupportTicket'; assignedTo?: Maybe; category?: Maybe; categoryId?: Maybe; closedAt?: Maybe; /** Contextual IDs for filtering and scoping (workspaceId, userId, projectId, etc.) */ context?: Maybe; createdAt: Scalars['DateTime']['output']; customFields?: Maybe; description: Scalars['String']['output']; dueAt?: Maybe; escalationLevel: Scalars['Int']['output']; firstResponseAt?: Maybe; firstResponseDue?: Maybe; id: Scalars['ID']['output']; linkedTickets: Array; messages: Array; metadata?: Maybe; priority: SupportTicketPriority; reopenedAt?: Maybe; resolutionDue?: Maybe; resolvedAt?: Maybe; slaBreachStatus: SlaBreachStatus; slaPausedAt?: Maybe; slaPausedSeconds: Scalars['Int']['output']; slaPolicy?: Maybe; slaPolicyId?: Maybe; source: TicketSource; status: SupportTicketStatus; subject: Scalars['String']['output']; surveys: Array; tags: Array; tenantId?: Maybe; ticketCategory?: Maybe; ticketNumber: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; user: User; userId: Scalars['String']['output']; workspaceId?: Maybe; }; export declare enum SupportTicketCategory { BillingAccount = "BILLING_ACCOUNT", BugReport = "BUG_REPORT", FeatureRequest = "FEATURE_REQUEST", GeneralSupport = "GENERAL_SUPPORT", TechnicalSupport = "TECHNICAL_SUPPORT" } export type SupportTicketConnection = { __typename?: 'SupportTicketConnection'; hasMore: Scalars['Boolean']['output']; nodes: Array; totalCount: Scalars['Int']['output']; }; export type SupportTicketFilterInput = { assignedTo?: InputMaybe; category?: InputMaybe; categoryId?: InputMaybe; /** Filter by operation context (workspaceId, userId, projectId, etc.) */ context?: InputMaybe; endDate?: InputMaybe; priorities?: InputMaybe>; priority?: InputMaybe; slaBreachStatus?: InputMaybe; source?: InputMaybe; startDate?: InputMaybe; status?: InputMaybe; statuses?: InputMaybe>; tags?: InputMaybe>; userId?: InputMaybe; workspaceId?: InputMaybe; }; export declare enum SupportTicketPriority { Critical = "CRITICAL", High = "HIGH", Low = "LOW", Normal = "NORMAL" } export declare enum SupportTicketStatus { Closed = "CLOSED", InProgress = "IN_PROGRESS", New = "NEW", Reopened = "REOPENED", Resolved = "RESOLVED", WaitingCustomer = "WAITING_CUSTOMER" } export type SuppressIdentifierInput = { channel: SuppressionChannel; expiresAt?: InputMaybe; identifier: Scalars['String']['input']; identifierType: Scalars['String']['input']; reason: SuppressionReason; reasonNote?: InputMaybe; source: Scalars['String']['input']; }; export declare enum SuppressionChannel { All = "ALL", Email = "EMAIL", InApp = "IN_APP", Push = "PUSH", Sms = "SMS", Whatsapp = "WHATSAPP" } export type SuppressionCheckResult = { __typename?: 'SuppressionCheckResult'; matchedEntry?: Maybe; suppressed: Scalars['Boolean']['output']; }; export type SuppressionEntry = { __typename?: 'SuppressionEntry'; channel: SuppressionChannel; createdAt: Scalars['DateTime']['output']; createdBy?: Maybe; expiresAt?: Maybe; id: Scalars['ID']['output']; identifier: Scalars['String']['output']; identifierType: Scalars['String']['output']; reason: SuppressionReason; reasonNote?: Maybe; releasedAt?: Maybe; source: Scalars['String']['output']; suppressedAt: Scalars['DateTime']['output']; updatedAt: Scalars['DateTime']['output']; }; export type SuppressionEntryConnection = { __typename?: 'SuppressionEntryConnection'; hasMore: Scalars['Boolean']['output']; nodes: Array; total: Scalars['Int']['output']; }; export type SuppressionFilter = { active?: InputMaybe; channel?: InputMaybe; identifier?: InputMaybe; identifierType?: InputMaybe; reason?: InputMaybe; }; export type SuppressionFilterInput = { email?: InputMaybe; platformProductId?: InputMaybe; reason?: InputMaybe; }; export declare enum SuppressionReason { AdminAction = "ADMIN_ACTION", ComplianceHold = "COMPLIANCE_HOLD", GdprErasure = "GDPR_ERASURE", HardBounce = "HARD_BOUNCE", SpamComplaint = "SPAM_COMPLAINT", UserRequest = "USER_REQUEST", UserUnsubscribe = "USER_UNSUBSCRIBE" } /** Input for syncing channel users */ export type SyncChannelUsersInput = { /** Channel ID */ channelId: Scalars['ID']['input']; /** Operation context for scoping */ context?: InputMaybe; /** Force refresh (ignore cache) */ forceRefresh?: InputMaybe; }; /** A recorded cross-layer sync attempt (global-tenant-svc → wspace layer). */ export type SyncOutboxEntry = { __typename?: 'SyncOutboxEntry'; attempts: Scalars['Int']['output']; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; lastAttemptAt?: Maybe; lastError?: Maybe; maxAttempts: Scalars['Int']['output']; nextRetryAt?: Maybe; operation: Scalars['String']['output']; /** Raw cross-layer sync input. Contains PII (workspace/member data, user emails, IDs). Only exposed to Platform Superadmin / service callers — do not surface this field on any less-privileged query. */ payload?: Maybe; status: SyncOutboxStatus; updatedAt: Scalars['DateTime']['output']; workspaceId: Scalars['String']['output']; }; export type SyncOutboxEntryList = { __typename?: 'SyncOutboxEntryList'; items: Array; total: Scalars['Int']['output']; }; export type SyncOutboxFilterInput = { /** Filter by sync operation (e.g. SYNC_WORKSPACE, ADD_MEMBER, REMOVE_MEMBER). */ operation?: InputMaybe; /** Filter to one or more statuses. If omitted, all statuses are returned. */ statuses?: InputMaybe>; /** Filter by the workspace the sync targets. */ workspaceId?: InputMaybe; }; export type SyncOutboxStats = { __typename?: 'SyncOutboxStats'; pending: Scalars['Int']['output']; permanentlyFailed: Scalars['Int']['output']; retrying: Scalars['Int']['output']; successful: Scalars['Int']['output']; }; export declare enum SyncOutboxStatus { Pending = "PENDING", PermanentlyFailed = "PERMANENTLY_FAILED", Retrying = "RETRYING", Success = "SUCCESS" } export type SyncStoreSubmissionInput = { rejectedReason?: InputMaybe; reviewNotes?: InputMaybe; status: Scalars['String']['input']; storeProductId: Scalars['ID']['input']; }; export type SyncTourStepInput = { actions?: InputMaybe; content: Scalars['String']['input']; /** Operation context for scoping (workspaceId, userId, productId, moduleId, etc.) */ context?: InputMaybe; customData?: InputMaybe; id?: InputMaybe; placement: TourStepPlacement; requireInteraction?: InputMaybe; skipConditions?: InputMaybe; stepOrder: Scalars['Int']['input']; targetSelector: Scalars['String']['input']; targetSelectorDesktop?: InputMaybe; targetSelectorMobile?: InputMaybe; targetSelectorTablet?: InputMaybe; title: Scalars['String']['input']; waitForEvent?: InputMaybe; waitForSelector?: InputMaybe; waitForTimeout?: InputMaybe; }; /** Input for syncing workspace from workspace layer to global layer Called by wspace-workspace-svc after creating a workspace directly */ export type SyncWorkspaceFromWspaceInput = { /** Workspace name */ name: Scalars['String']['input']; /** Organization ID */ organizationId: Scalars['String']['input']; /** User ID of workspace creator/owner */ ownerId: Scalars['String']['input']; /** Tenant ID */ tenantId: Scalars['String']['input']; /** Workspace type (maps to PERSONAL, TEAM, ENTERPRISE) */ type?: InputMaybe; /** Workspace ID (must match the ID from workspace layer) */ workspaceId: Scalars['ID']['input']; }; /** Response for syncWorkspaceFromWspace mutation */ export type SyncWorkspaceFromWspaceResponse = { __typename?: 'SyncWorkspaceFromWspaceResponse'; message?: Maybe; success: Scalars['Boolean']['output']; workspaceId?: Maybe; }; export type TagChannelConnectionInput = { entityId: Scalars['ID']['input']; metadata?: InputMaybe; source?: InputMaybe; tagId: Scalars['ID']['input']; }; export type TagChannelInput = { entityId: Scalars['ID']['input']; metadata?: InputMaybe; source?: InputMaybe; tagId: Scalars['ID']['input']; }; export type TagStoreProductInput = { entityId: Scalars['ID']['input']; metadata?: InputMaybe; source?: InputMaybe; tagId: Scalars['ID']['input']; validFrom?: InputMaybe; validTo?: InputMaybe; }; export type TagsAndResourceTypes = { __typename?: 'TagsAndResourceTypes'; /** Available resource types from usage records */ resourceTypes: Array; /** Available tags from usage records */ tags: Array; }; /** Result of tax calculation */ export type TaxCalculationResult = { __typename?: 'TaxCalculationResult'; /** Jurisdiction code (IN, US, EU, etc.) */ jurisdiction: Scalars['String']['output']; /** Original amount before tax */ subtotal: Scalars['Float']['output']; /** Calculated tax amount (in target currency) */ taxAmount: Scalars['Float']['output']; /** Tax breakdown (e.g., IGST, CGST+SGST) */ taxBreakdown?: Maybe; /** Tax rate as decimal (e.g., 0.18 for 18%) */ taxRate: Scalars['Float']['output']; /** Tax type (GST, VAT, SALES_TAX, NONE) */ taxType: Scalars['String']['output']; /** Total amount including tax */ total: Scalars['Float']['output']; }; export type TaxRate = { __typename?: 'TaxRate'; active: Scalars['Boolean']['output']; context?: Maybe; country: Scalars['String']['output']; createdAt: Scalars['DateTime']['output']; description?: Maybe; id: Scalars['ID']['output']; rate: Scalars['Float']['output']; state?: Maybe; updatedAt: Scalars['DateTime']['output']; }; export type TemplateFilterInput = { enabled?: InputMaybe; locale?: InputMaybe; type?: InputMaybe; }; export type TemplateNotificationResult = { __typename?: 'TemplateNotificationResult'; /** The created notification objects */ notifications: Array; /** Number of notifications that failed */ totalFailed: Scalars['Int']['output']; /** Total number of recipients requested */ totalRequested: Scalars['Int']['output']; /** Number of notifications successfully triggered */ totalTriggered: Scalars['Int']['output']; }; /** Tenant type stub - represents a tenant entity from the tenant service This service doesn't own the Tenant model, but references it */ export type Tenant = { __typename?: 'Tenant'; config?: Maybe; createdAt: Scalars['DateTime']['output']; customDomain?: Maybe; /** Service routing endpoint for dedicated tenants For SHARED tenants, this is null (uses default service) For DEDICATED tenants, this points to the dedicated service instance */ endpoint?: Maybe; id: Scalars['ID']['output']; metadata?: Maybe; name: Scalars['String']['output']; /** Organizations belonging to this tenant */ organizations: Array; slug: Scalars['String']['output']; status: TenantStatus; type: TenantType; updatedAt: Scalars['DateTime']['output']; /** Workspaces belonging to this tenant */ workspaces: Array; }; /** Tenant configuration for regional settings, data residency, and features */ export type TenantConfig = { __typename?: 'TenantConfig'; complianceRegion?: Maybe; /** * Always null. Burdenoff does no white-labelling: every product keeps its own brand, so tenants cannot set a custom logo, colour or favicon. * @deprecated No white-labelling — products keep their own brand. This setting is ignored. */ customBranding?: Maybe; dataResidency?: Maybe; features?: Maybe; region?: Maybe; }; /** Inline export payload for `exportTenantsCsv`. Returns CSV text along with a count of rows and a flag if the result was capped at the requested limit. */ export type TenantExport = { __typename?: 'TenantExport'; csv: Scalars['String']['output']; format: Scalars['String']['output']; generatedAt: Scalars['DateTime']['output']; rowCount: Scalars['Int']['output']; truncated: Scalars['Boolean']['output']; }; /** Filter input for querying tenants */ export type TenantFilterInput = { search?: InputMaybe; status?: InputMaybe; type?: InputMaybe; }; /** Paginated list of tenants */ export type TenantList = { __typename?: 'TenantList'; hasMore: Scalars['Boolean']['output']; items: Array; limit: Scalars['Int']['output']; offset: Scalars['Int']['output']; total: Scalars['Int']['output']; }; /** Explicit tenant-membership grant. Used to allow a non-super-admin user to operate inside a DEDICATED tenant (currently: create organizations under it, and have the tenant surface in `myTenants`). The active SHARED tenant is implicit — every authenticated user has access to it without a row here. (BOFF-2652) */ export type TenantMember = { __typename?: 'TenantMember'; /** userId of the super_admin (or service identity) that granted this row. */ addedBy: Scalars['String']['output']; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; role: TenantMemberRole; tenant: Tenant; tenantId: Scalars['ID']['output']; updatedAt: Scalars['DateTime']['output']; userId: Scalars['ID']['output']; }; /** Paginated list of explicit tenant-member grants. */ export type TenantMemberList = { __typename?: 'TenantMemberList'; hasMore: Scalars['Boolean']['output']; items: Array; limit: Scalars['Int']['output']; offset: Scalars['Int']['output']; total: Scalars['Int']['output']; }; /** Role for an explicit tenant-membership grant. - MEMBER: can create organizations inside the tenant (default). - ADMIN: reserved for delegated tenant-member management. Today only super_admin can mutate `tenant_members`; ADMIN is recorded for forward compatibility but is not yet wired into a permission grant. */ export declare enum TenantMemberRole { Admin = "ADMIN", Member = "MEMBER" } /** Lightweight tenant routing info used by gateways to decide whether to proxy requests to a dedicated tenant endpoint. */ export type TenantRoutingInfo = { __typename?: 'TenantRoutingInfo'; endpoint?: Maybe; status: TenantStatus; tenantId: Scalars['ID']['output']; type: TenantType; }; /** Tenant status for lifecycle management */ export declare enum TenantStatus { Active = "ACTIVE", Deleted = "DELETED", Provisioning = "PROVISIONING", Suspended = "SUSPENDED" } export type TenantStructureProvisioningFailure = { __typename?: 'TenantStructureProvisioningFailure'; message: Scalars['String']['output']; recordedAt: Scalars['DateTime']['output']; step: Scalars['String']['output']; }; export type TenantStructureProvisioningState = { __typename?: 'TenantStructureProvisioningState'; failures: Array; status: ProvisioningStatus; updatedAt?: Maybe; }; /** Multi-tenancy tenant type - determines isolation model */ export declare enum TenantType { Dedicated = "DEDICATED", Shared = "SHARED" } export type TestNewsletterResult = { __typename?: 'TestNewsletterResult'; sentCount: Scalars['Int']['output']; sentTo: Array; success: Scalars['Boolean']['output']; }; export type TicketCategory = { __typename?: 'TicketCategory'; articleCount: Scalars['Int']['output']; articles: Array; children: Array; color?: Maybe; context?: Maybe; createdAt: Scalars['DateTime']['output']; description?: Maybe; displayOrder: Scalars['Int']['output']; icon?: Maybe; id: Scalars['ID']['output']; isActive: Scalars['Boolean']['output']; name: Scalars['String']['output']; parent?: Maybe; parentId?: Maybe; slaOverride?: Maybe; slug: Scalars['String']['output']; tenantId?: Maybe; updatedAt: Scalars['DateTime']['output']; }; export type TicketCategoryConnection = { __typename?: 'TicketCategoryConnection'; hasMore: Scalars['Boolean']['output']; nodes: Array; totalCount: Scalars['Int']['output']; }; export type TicketCategoryFilterInput = { context?: InputMaybe; isActive?: InputMaybe; parentId?: InputMaybe; }; export type TicketLink = { __typename?: 'TicketLink'; createdAt: Scalars['DateTime']['output']; createdBy: Scalars['String']['output']; fromTicket: SupportTicket; fromTicketId: Scalars['String']['output']; id: Scalars['ID']['output']; linkType: LinkType; toTicket: SupportTicket; toTicketId: Scalars['String']['output']; }; export declare enum TicketSource { Api = "API", Email = "EMAIL", Import = "IMPORT", InApp = "IN_APP", Phone = "PHONE", Website = "WEBSITE" } export type TicketTemplate = { __typename?: 'TicketTemplate'; body: Scalars['String']['output']; category: SupportTicketCategory; context?: Maybe; createdAt: Scalars['DateTime']['output']; createdBy: Scalars['String']['output']; description?: Maybe; id: Scalars['ID']['output']; isActive: Scalars['Boolean']['output']; name: Scalars['String']['output']; priority: SupportTicketPriority; subject: Scalars['String']['output']; tags: Array; tenantId?: Maybe; updatedAt: Scalars['DateTime']['output']; }; export type TicketTemplateConnection = { __typename?: 'TicketTemplateConnection'; hasMore: Scalars['Boolean']['output']; nodes: Array; totalCount: Scalars['Int']['output']; }; export type TicketTemplateFilterInput = { category?: InputMaybe; context?: InputMaybe; isActive?: InputMaybe; priority?: InputMaybe; tags?: InputMaybe>; }; export type TicketTrend = { __typename?: 'TicketTrend'; count: Scalars['Int']['output']; date: Scalars['DateTime']['output']; groupBy: TrendGroupBy; }; export declare enum TimePeriod { Custom = "CUSTOM", Last_7Days = "LAST_7_DAYS", Last_30Days = "LAST_30_DAYS", Last_90Days = "LAST_90_DAYS", LastYear = "LAST_YEAR" } export type TokenValidationError = { __typename?: 'TokenValidationError'; code: Scalars['String']['output']; message: Scalars['String']['output']; }; export type TokenValidationResponse = { __typename?: 'TokenValidationResponse'; allowedWorkspaceIds?: Maybe>; appId?: Maybe; delegationId?: Maybe; email?: Maybe; error?: Maybe; expiresAt?: Maybe; role?: Maybe; scopes?: Maybe>; tokenType?: Maybe; userId?: Maybe; valid: Scalars['Boolean']['output']; }; export type TopChartsInput = { category?: InputMaybe; chart: ChartType; country?: InputMaybe; limit?: InputMaybe; window?: InputMaybe; }; export type Tour = { __typename?: 'Tour'; analytics?: Maybe>; completionCount: Scalars['Int']['output']; /** Contextual IDs for filtering and scoping (workspaceId, userId, productId, moduleId, etc.) */ context?: Maybe; createdAt: Scalars['DateTime']['output']; createdBy?: Maybe; description?: Maybe; desktopConfig?: Maybe; displayOrder: Scalars['Int']['output']; endDate?: Maybe; id: Scalars['ID']['output']; isActive: Scalars['Boolean']['output']; metadata?: Maybe; mobileConfig?: Maybe; moduleId?: Maybe; /** The current authenticated user's progress for this tour, or null if the user has not interacted with it yet. Resolves to the most recent TourUserProgress row for the requesting actor. Used by the TourTrigger dropdown to render per-tour status chips (Completed / In progress / Skipped) without requiring a second round-trip. */ myProgress?: Maybe; name: Scalars['String']['output']; pageId?: Maybe; priority: Scalars['Int']['output']; productId: Scalars['String']['output']; schedules?: Maybe>; skipCount: Scalars['Int']['output']; slug: Scalars['String']['output']; startDate?: Maybe; status: TourStatus; steps: Array; tabletConfig?: Maybe; triggerConfig?: Maybe; triggerType: TourTriggerType; updatedAt: Scalars['DateTime']['output']; updatedBy?: Maybe; userProgress?: Maybe>; version: Scalars['Int']['output']; viewCount: Scalars['Int']['output']; }; export type TourAnalytics = { __typename?: 'TourAnalytics'; /** Contextual IDs for filtering and scoping (workspaceId, userId, productId, moduleId, etc.) */ context?: Maybe; deviceType?: Maybe; duration?: Maybe; eventType: TourAnalyticsEventType; id: Scalars['ID']['output']; ipHash?: Maybe; metadata?: Maybe; moduleId?: Maybe; pageId?: Maybe; productId?: Maybe; sessionId?: Maybe; stepId?: Maybe; stepOrder?: Maybe; timestamp: Scalars['DateTime']['output']; tour: Tour; tourId: Scalars['String']['output']; userAgent?: Maybe; userId?: Maybe; }; export type TourAnalyticsAggregation = { __typename?: 'TourAnalyticsAggregation'; averageCompletionRate: Scalars['Float']['output']; averageDuration: Scalars['Float']['output']; byDeviceType: Array; byEventType: Array; totalCompletions: Scalars['Int']['output']; totalSkips: Scalars['Int']['output']; totalViews: Scalars['Int']['output']; }; export declare enum TourAnalyticsEventType { Interaction = "INTERACTION", StepCompleted = "STEP_COMPLETED", StepSkipped = "STEP_SKIPPED", StepViewed = "STEP_VIEWED", TourCompleted = "TOUR_COMPLETED", TourDismissed = "TOUR_DISMISSED", TourSkipped = "TOUR_SKIPPED", TourStarted = "TOUR_STARTED" } export type TourBatchAnalyticsResult = { __typename?: 'TourBatchAnalyticsResult'; events: Array; failedCount: Scalars['Int']['output']; successCount: Scalars['Int']['output']; }; export type TourContextInput = { deviceType?: InputMaybe; moduleId?: InputMaybe; pageId?: InputMaybe; productId: Scalars['String']['input']; workspaceId?: InputMaybe; }; /** Operation context for tour-analytics scoping. This is a tours-local input (NOT the shared, federated `ContextInput`) on purpose. `ContextInput` is a value type defined across ~10 subgraphs, so the COMPOSED supergraph only exposes the intersection of their fields — which excludes productId/moduleId/pageId. Clients legitimately scope tour analytics by those dimensions, so analytics owns its own superset context type. Every field is optional; the field is advisory (scoping/telemetry) and never required. */ export type TourEventContextInput = { custom?: InputMaybe; moduleId?: InputMaybe; organizationId?: InputMaybe; pageId?: InputMaybe; productId?: InputMaybe; projectId?: InputMaybe; userId?: InputMaybe; workspaceId?: InputMaybe; }; export type TourEventTypeStats = { __typename?: 'TourEventTypeStats'; count: Scalars['Int']['output']; eventType: TourAnalyticsEventType; }; export type TourFilters = { /** Filter by operation context (workspaceId, userId, productId, moduleId, etc.) */ context?: InputMaybe; isActive?: InputMaybe; moduleId?: InputMaybe; pageId?: InputMaybe; productId?: InputMaybe; status?: InputMaybe; triggerType?: InputMaybe; }; export type TourMedia = { __typename?: 'TourMedia'; altText?: Maybe; caption?: Maybe; cdnUrl?: Maybe; /** Contextual IDs for filtering and scoping (workspaceId, userId, productId, moduleId, etc.) */ context?: Maybe; createdAt: Scalars['DateTime']['output']; description?: Maybe; duration?: Maybe; height?: Maybe; id: Scalars['ID']['output']; isPublic: Scalars['Boolean']['output']; metadata?: Maybe; mimeType: Scalars['String']['output']; name: Scalars['String']['output']; size: Scalars['Int']['output']; storagePath: Scalars['String']['output']; storageUrl: Scalars['String']['output']; tourSteps?: Maybe>; transcript?: Maybe; type: TourMediaType; updatedAt: Scalars['DateTime']['output']; uploadedBy?: Maybe; width?: Maybe; }; export declare enum TourMediaType { Audio = "AUDIO", Document = "DOCUMENT", Image = "IMAGE", Video = "VIDEO" } export type TourPagination = { limit?: InputMaybe; offset?: InputMaybe; }; export type TourSchedule = { __typename?: 'TourSchedule'; /** Contextual IDs for filtering and scoping (workspaceId, userId, productId, moduleId, etc.) */ context?: Maybe; createdAt: Scalars['DateTime']['output']; endDate?: Maybe; executionCount: Scalars['Int']['output']; id: Scalars['ID']['output']; isActive: Scalars['Boolean']['output']; lastExecutedAt?: Maybe; metadata?: Maybe; nextExecutionAt?: Maybe; recurrenceRule?: Maybe; startDate: Scalars['DateTime']['output']; timezone: Scalars['String']['output']; tour: Tour; tourId: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; }; export type TourStatSummary = { __typename?: 'TourStatSummary'; completionCount: Scalars['Int']['output']; completionRate: Scalars['Float']['output']; skipCount: Scalars['Int']['output']; tourId: Scalars['String']['output']; tourName: Scalars['String']['output']; viewCount: Scalars['Int']['output']; }; export declare enum TourStatus { Archived = "ARCHIVED", Draft = "DRAFT", Published = "PUBLISHED", Scheduled = "SCHEDULED" } export type TourStep = { __typename?: 'TourStep'; actions?: Maybe; content: Scalars['String']['output']; /** Contextual IDs for filtering and scoping (workspaceId, userId, productId, moduleId, etc.) */ context?: Maybe; createdAt: Scalars['DateTime']['output']; customData?: Maybe; id: Scalars['ID']['output']; media?: Maybe>; metadata?: Maybe; placement: TourStepPlacement; requireInteraction: Scalars['Boolean']['output']; skipConditions?: Maybe; stepOrder: Scalars['Int']['output']; targetSelector?: Maybe; targetSelectorDesktop?: Maybe; targetSelectorMobile?: Maybe; targetSelectorTablet?: Maybe; title: Scalars['String']['output']; tour: Tour; tourId: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; waitForEvent?: Maybe; waitForSelector?: Maybe; waitForTimeout?: Maybe; }; export type TourStepAnalytics = { __typename?: 'TourStepAnalytics'; averageDuration: Scalars['Float']['output']; completionCount: Scalars['Int']['output']; skipCount: Scalars['Int']['output']; stepId: Scalars['String']['output']; viewCount: Scalars['Int']['output']; }; export type TourStepMedia = { __typename?: 'TourStepMedia'; /** Contextual IDs for filtering and scoping (workspaceId, userId, productId, moduleId, etc.) */ context?: Maybe; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; media: TourMedia; mediaId: Scalars['String']['output']; metadata?: Maybe; position: MediaPosition; tourStep: TourStep; tourStepId: Scalars['String']['output']; }; export declare enum TourStepPlacement { Auto = "AUTO", Bottom = "BOTTOM", Center = "CENTER", Left = "LEFT", Right = "RIGHT", Top = "TOP" } export type TourTemplate = { __typename?: 'TourTemplate'; category?: Maybe; config: Scalars['JSON']['output']; /** Contextual IDs for filtering and scoping (workspaceId, userId, productId, moduleId, etc.) */ context?: Maybe; createdAt: Scalars['DateTime']['output']; createdBy?: Maybe; description?: Maybe; id: Scalars['ID']['output']; isPremium: Scalars['Boolean']['output']; isPublic: Scalars['Boolean']['output']; metadata?: Maybe; name: Scalars['String']['output']; slug: Scalars['String']['output']; tags: Array; thumbnail?: Maybe; updatedAt: Scalars['DateTime']['output']; useCount: Scalars['Int']['output']; }; export declare enum TourTriggerType { AutoAlways = "AUTO_ALWAYS", AutoFirstVisit = "AUTO_FIRST_VISIT", Manual = "MANUAL", OnEvent = "ON_EVENT", Scheduled = "SCHEDULED" } export type TourUserProgress = { __typename?: 'TourUserProgress'; completedAt?: Maybe; completedSteps?: Maybe; /** Contextual IDs for filtering and scoping (workspaceId, userId, productId, moduleId, etc.) */ context?: Maybe; createdAt: Scalars['DateTime']['output']; currentStepId?: Maybe; currentStepOrder?: Maybe; deviceType?: Maybe; id: Scalars['ID']['output']; lastViewedAt?: Maybe; metadata?: Maybe; sessionId?: Maybe; skippedSteps?: Maybe; startedAt?: Maybe; status: TourUserStatus; tour: Tour; tourId: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; userId: Scalars['String']['output']; }; export declare enum TourUserStatus { Completed = "COMPLETED", Dismissed = "DISMISSED", InProgress = "IN_PROGRESS", NotStarted = "NOT_STARTED", Skipped = "SKIPPED" } /** Tours-specific context output type. Returns the stored context for each record. Uses a unique type name to avoid federation conflicts with other services. Must be @shareable since context types may exist in multiple subgraphs. */ export type ToursContext = { __typename?: 'ToursContext'; /** Additional custom context as JSON */ custom?: Maybe; /** Module ID for module-level scoping */ moduleId?: Maybe; /** Organization ID for organization-level scoping */ organizationId?: Maybe; /** Page ID for page-level scoping */ pageId?: Maybe; /** Product ID for product-level scoping */ productId?: Maybe; /** Project ID for project-level scoping */ projectId?: Maybe; /** User ID for user-level scoping */ userId?: Maybe; /** Workspace ID for workspace-level scoping */ workspaceId?: Maybe; }; export type ToursPaginationInput = { cursor?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; /** Page number for page-based pagination */ page?: InputMaybe; }; export type ToursResponse = { __typename?: 'ToursResponse'; hasMore: Scalars['Boolean']['output']; total: Scalars['Int']['output']; tours: Array; }; /** Transaction entity - resolvable via Federation Gateway. Other services (e.g., store-svc) can reference Transaction by id. */ export type Transaction = { __typename?: 'Transaction'; amount: Scalars['Float']['output']; billingAccountId: Scalars['ID']['output']; context?: Maybe; createdAt: Scalars['DateTime']['output']; currency: Scalars['String']['output']; description?: Maybe; id: Scalars['ID']['output']; metadata?: Maybe; razorpayPaymentId?: Maybe; status: TransactionStatus; stripePaymentId?: Maybe; type: TransactionType; updatedAt: Scalars['DateTime']['output']; }; export declare enum TransactionStatus { Failed = "failed", Pending = "pending", Success = "success" } export declare enum TransactionType { Adjustment = "adjustment", Payment = "payment", Refund = "refund" } export type TransferLicenseInput = { entitlementId: Scalars['ID']['input']; notes?: InputMaybe; reason: LicenseTransferReason; toUserId: Scalars['String']['input']; toWorkspaceId: Scalars['String']['input']; }; export type Translation = { __typename?: 'Translation'; createdAt: Scalars['DateTime']['output']; createdBy?: Maybe; id: Scalars['ID']['output']; key: TranslationKey; keyId: Scalars['String']['output']; language: Language; languageCode: Scalars['String']['output']; metadata?: Maybe; notes?: Maybe; pluralForms?: Maybe; publishedAt?: Maybe; publishedBy?: Maybe; reviewedAt?: Maybe; reviewedBy?: Maybe; status: TranslationStatus; tenantId?: Maybe; updatedAt: Scalars['DateTime']['output']; updatedBy?: Maybe; value: Scalars['String']['output']; versions: Array; }; export type TranslationAudit = { __typename?: 'TranslationAudit'; action: Scalars['String']['output']; changes: Scalars['JSON']['output']; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; ipAddress?: Maybe; key: TranslationKey; keyId: Scalars['String']['output']; languageCode?: Maybe; metadata?: Maybe; tenantId?: Maybe; userAgent?: Maybe; userId: Scalars['String']['output']; }; export type TranslationAuditList = { __typename?: 'TranslationAuditList'; hasMore: Scalars['Boolean']['output']; items: Array; total: Scalars['Int']['output']; }; export type TranslationCoverage = { __typename?: 'TranslationCoverage'; coverage: Scalars['Float']['output']; languageCode: Scalars['String']['output']; missingKeys: Array; totalKeys: Scalars['Int']['output']; translatedKeys: Scalars['Int']['output']; }; export type TranslationFilterInput = { keyId?: InputMaybe; languageCode?: InputMaybe; search?: InputMaybe; status?: InputMaybe; tenantId?: InputMaybe; }; export type TranslationKey = { __typename?: 'TranslationKey'; characterLimit?: Maybe; context?: Maybe; createdAt: Scalars['DateTime']['output']; createdBy?: Maybe; defaultValue?: Maybe; description?: Maybe; id: Scalars['ID']['output']; isPlural: Scalars['Boolean']['output']; key: Scalars['String']['output']; metadata?: Maybe; namespace?: Maybe; namespaceId?: Maybe; placeholders?: Maybe; product: I18nProduct; productId: Scalars['String']['output']; status: TranslationKeyStatus; tags: Array; translations: Array; updatedAt: Scalars['DateTime']['output']; updatedBy?: Maybe; versions: Array; }; export type TranslationKeyFilterInput = { namespaceId?: InputMaybe; productId?: InputMaybe; search?: InputMaybe; status?: InputMaybe; tags?: InputMaybe>; }; export type TranslationKeyList = { __typename?: 'TranslationKeyList'; hasMore: Scalars['Boolean']['output']; items: Array; total: Scalars['Int']['output']; }; export declare enum TranslationKeyStatus { Active = "ACTIVE", Deleted = "DELETED", Deprecated = "DEPRECATED" } export type TranslationList = { __typename?: 'TranslationList'; hasMore: Scalars['Boolean']['output']; items: Array; total: Scalars['Int']['output']; }; export declare enum TranslationStatus { Approved = "APPROVED", Draft = "DRAFT", PendingReview = "PENDING_REVIEW", Published = "PUBLISHED" } export type TranslationStatusEvent = { __typename?: 'TranslationStatusEvent'; newStatus: TranslationStatus; previousStatus: TranslationStatus; timestamp: Scalars['DateTime']['output']; translation: Translation; userId?: Maybe; }; export type TranslationUpdateEvent = { __typename?: 'TranslationUpdateEvent'; action: Scalars['String']['output']; timestamp: Scalars['DateTime']['output']; translation: Translation; userId?: Maybe; }; export type TranslationVersion = { __typename?: 'TranslationVersion'; changeReason?: Maybe; createdAt: Scalars['DateTime']['output']; createdBy?: Maybe; id: Scalars['ID']['output']; key: TranslationKey; keyId: Scalars['String']['output']; languageCode: Scalars['String']['output']; pluralForms?: Maybe; translation?: Maybe; translationId?: Maybe; value: Scalars['String']['output']; version: Scalars['Int']['output']; }; export type TranslationsExport = { __typename?: 'TranslationsExport'; expiresAt: Scalars['DateTime']['output']; format: Scalars['String']['output']; url: Scalars['String']['output']; }; export declare enum TrendGroupBy { Day = "DAY", Hour = "HOUR", Month = "MONTH", Week = "WEEK" } export type TriggerBatchNotificationsInput = { /** Size of each batch */ batchSize?: InputMaybe; /** Delay between batches in milliseconds */ delayBetweenBatches?: InputMaybe; /** List of notification IDs to trigger */ notificationIds?: InputMaybe>; /** Or list of new notifications to create and trigger */ notifications?: InputMaybe>; /** Default priority for batch */ priority?: InputMaybe; /** Optionally schedule all notifications instead of sending immediately */ scheduledFor?: InputMaybe; timezone?: InputMaybe; }; export type TriggerNotificationInput = { /** Specific channel instance ID from channel service (takes precedence) */ channelId?: InputMaybe; /** Also deliver as in-app notification alongside the primary platform */ includeInApp?: InputMaybe; /** Or create and trigger a new notification */ notification?: InputMaybe; /** ID of an existing notification to trigger */ notificationId?: InputMaybe; /** Platform type for auto-failover (EMAIL, SMS, etc.) */ platform?: InputMaybe; /** User IDs for in-app notifications (required when includeInApp is true) */ userIds?: InputMaybe>; }; export type TriggerNotificationWithTemplateInput = { actions?: InputMaybe>; /** Specific channel instance ID from channel service (takes precedence) */ channelId?: InputMaybe; expiresAt?: InputMaybe; /** Also deliver as in-app notification alongside the primary platform */ includeInApp?: InputMaybe; media?: InputMaybe>; /** Platform type for auto-failover (EMAIL, SMS, etc.) - used if channelId not provided */ platform?: InputMaybe; priority?: InputMaybe; /** Single recipient (use this OR recipients, not both) */ recipient?: InputMaybe; /** Multiple recipients for bulk delivery (use this OR recipient, not both) */ recipients?: InputMaybe>; redirectUrl?: InputMaybe; /** Optionally schedule for later delivery */ scheduledFor?: InputMaybe; templateSlug: Scalars['String']['input']; timezone?: InputMaybe; topicId?: InputMaybe; trackClicks?: InputMaybe; trackOpens?: InputMaybe; /** User IDs for in-app notifications (required when includeInApp is true) */ userIds?: InputMaybe>; variables: Scalars['JSON']['input']; }; export declare enum TriggerStatus { Cancelled = "CANCELLED", Failed = "FAILED", Pending = "PENDING", Triggered = "TRIGGERED" } export type UniversalTag = { __typename?: 'UniversalTag'; id: Scalars['ID']['output']; }; export type UnreadCountResult = { __typename?: 'UnreadCountResult'; count: Scalars['Int']['output']; userId: Scalars['ID']['output']; }; export type UntagChannelConnectionInput = { entityId: Scalars['ID']['input']; tagId: Scalars['ID']['input']; }; export type UntagChannelInput = { entityId: Scalars['ID']['input']; tagId: Scalars['ID']['input']; }; export type UntagStoreProductInput = { entityId: Scalars['ID']['input']; tagId: Scalars['ID']['input']; }; export type UpdateApiKeyInput = { expiresAt?: InputMaybe; name?: InputMaybe; scope?: InputMaybe>; }; export type UpdateAffiliateCodeInput = { description?: InputMaybe; destinationUrl?: InputMaybe; isActive?: InputMaybe; label?: InputMaybe; metadata?: InputMaybe; }; export type UpdateAgentProfileInput = { autoAssign?: InputMaybe; context?: InputMaybe; maxChats?: InputMaybe; maxTickets?: InputMaybe; skills?: InputMaybe>; teams?: InputMaybe>; timezone?: InputMaybe; workingHours?: InputMaybe; }; export type UpdateAgentStatusInput = { status: AgentStatus; statusMessage?: InputMaybe; }; export type UpdateAppCollectionInput = { bannerUrl?: InputMaybe; description?: InputMaybe; displayOrder?: InputMaybe; endsAt?: InputMaybe; iconUrl?: InputMaybe; isActive?: InputMaybe; isFeatured?: InputMaybe; metadata?: InputMaybe; name?: InputMaybe; startsAt?: InputMaybe; }; export type UpdateAppInput = { description?: InputMaybe; name?: InputMaybe; redirectUris?: InputMaybe>; scopes?: InputMaybe>; status?: InputMaybe; }; export type UpdateAppInstallationInput = { autoUpdate?: InputMaybe; config?: InputMaybe; consentedPermissions?: InputMaybe>; currentVersion?: InputMaybe; }; export type UpdateAppReviewInput = { body?: InputMaybe; rating?: InputMaybe; title?: InputMaybe; }; export type UpdateApplicationInput = { /** Opaque reference to auth-svc App ID (links this application to an OAuth app) */ appId?: InputMaybe; appType?: InputMaybe; bannerUrl?: InputMaybe; category?: InputMaybe; /** Which products this item is compatible with (e.g. "fluidgrids", "workspaces"). Stored in manifest.compatibility.products and extracted to the store on publish. */ compatibleProducts?: InputMaybe>; config?: InputMaybe; description?: InputMaybe; developerOrganizationId?: InputMaybe; documentationUrl?: InputMaybe; githubUrl?: InputMaybe; iconUrl?: InputMaybe; keywords?: InputMaybe>; manifest?: InputMaybe; name?: InputMaybe; oauthAuthUrl?: InputMaybe; oauthRevokeUrl?: InputMaybe; oauthTokenUrl?: InputMaybe; pricingDetails?: InputMaybe; pricingType?: InputMaybe; privacyPolicyUrl?: InputMaybe; requiresApproval?: InputMaybe; screenshots?: InputMaybe; shortDescription?: InputMaybe; slug?: InputMaybe; supportUrl?: InputMaybe; tags?: InputMaybe>; termsOfServiceUrl?: InputMaybe; videoUrl?: InputMaybe; visibility?: InputMaybe; websiteUrl?: InputMaybe; }; export type UpdateApplicationVersionInput = { changelog?: InputMaybe; /** Immutable once status is pending_review or published. */ manifest?: InputMaybe; maxPlatformVersion?: InputMaybe; minPlatformVersion?: InputMaybe; /** Immutable once status is pending_review or published. */ packageHash?: InputMaybe; /** Immutable once status is pending_review or published. */ packageSize?: InputMaybe; /** Immutable once status is pending_review or published. */ packageUrl?: InputMaybe; releaseNotes?: InputMaybe; /** Immutable once status is pending_review or published. */ requiredScopes?: InputMaybe>; }; export type UpdateAutomationInput = { context?: InputMaybe; description?: InputMaybe; enabled?: InputMaybe; metadata?: InputMaybe; name?: InputMaybe; trigger?: InputMaybe; }; export type UpdateAutomationStepInput = { config?: InputMaybe; stepType?: InputMaybe; }; export type UpdateBillingAccountInput = { /** Billing-specific email */ billingEmail?: InputMaybe; /** Contact phone number */ contactNumber?: InputMaybe; /** Default currency */ currency?: InputMaybe; /** Contact email */ email?: InputMaybe; /** ID of the billing account to update */ id: Scalars['ID']['input']; /** Whether the billing account is active */ isActive?: InputMaybe; /** Additional metadata */ metadata?: InputMaybe; /** Name of the billing account */ name?: InputMaybe; /** Tax ID / VAT number */ taxId?: InputMaybe; }; export type UpdateCampaignStatsInput = { bounceCount?: InputMaybe; clickCount?: InputMaybe; /** Newsletter context for scoping (workspaceId, userId, productId, tenantId, etc.) */ context?: InputMaybe; openCount?: InputMaybe; sentCount?: InputMaybe; }; export type UpdateCannedResponseInput = { category?: InputMaybe; content?: InputMaybe; context?: InputMaybe; isActive?: InputMaybe; shortcut?: InputMaybe; tags?: InputMaybe>; title?: InputMaybe; }; /** Input for updating a cart item */ export type UpdateCartItemInput = { /** Cart item ID to update */ cartItemId: Scalars['String']['input']; /** New quantity */ quantity?: InputMaybe; /** New target workspace (for digital products) */ workspaceId?: InputMaybe; }; export type UpdateCategoryInput = { description?: InputMaybe; icon?: InputMaybe; metadata?: InputMaybe; name?: InputMaybe; parentId?: InputMaybe; }; /** Input for updating an existing channel */ export type UpdateChannelInput = { /** Specific adapter type */ adapterType?: InputMaybe; /** Operation context for scoping */ context?: InputMaybe; /** Description */ description?: InputMaybe; /** Channel name */ name?: InputMaybe; /** Platform configuration */ platformConfig?: InputMaybe; /** Priority for fallback ordering (lower = higher priority) */ priority?: InputMaybe; /** Channel status */ status?: InputMaybe; }; /** Input for updating a connection (credentials, metadata, etc.) */ export type UpdateConnectionInput = { /** Operation context for scoping */ context?: InputMaybe; /** Platform-specific credentials (API keys, tokens, etc.) Will be encrypted before storage. */ credentials?: InputMaybe; /** Connection status */ isActive?: InputMaybe; /** Platform-specific metadata (non-sensitive) */ platformMetadata?: InputMaybe; }; export type UpdateContactInquiryStatusInput = { /** If converting to ticket, the ticket ID */ convertedTicketId?: InputMaybe; /** New status for the inquiry */ status: ContactInquiryStatus; }; export type UpdateContentPageInput = { author?: InputMaybe; category?: InputMaybe; content?: InputMaybe; contentFormat?: InputMaybe; excerpt?: InputMaybe; featured?: InputMaybe; isPublished?: InputMaybe; publishedAt?: InputMaybe; readingTime?: InputMaybe; seoDescription?: InputMaybe; seoKeywords?: InputMaybe; seoTitle?: InputMaybe; sortOrder?: InputMaybe; tags?: InputMaybe>; thumbnail?: InputMaybe; title?: InputMaybe; visibility?: InputMaybe; }; export type UpdateCouponInput = { description?: InputMaybe; maxTotalUses?: InputMaybe; maxUsesPerUser?: InputMaybe; metadata?: InputMaybe; name?: InputMaybe; status?: InputMaybe; validUntil?: InputMaybe; }; export type UpdateDsarStatusInput = { notes?: InputMaybe; rejectionReason?: InputMaybe; status: DsarStatus; }; /** Input for updating dashboard layout preferences. */ export type UpdateDashboardPreferencesInput = { /** Complete list of widget configurations */ widgets: Array; }; export type UpdateDelegationInput = { expiresAt?: InputMaybe; scopes?: InputMaybe>; workspaceIds?: InputMaybe>; }; export type UpdateDeveloperOrganizationInput = { bannerUrl?: InputMaybe; contactEmail?: InputMaybe; description?: InputMaybe; logoUrl?: InputMaybe; metadata?: InputMaybe; name?: InputMaybe; /** Dedicated pickup pincode for carrier rate quoting on physical-goods orders (Shiprocket, etc) — separate from the org's billing address, since a seller's fulfillment/warehouse location isn't necessarily the same place as their billing address. */ pickupPostalCode?: InputMaybe; settings?: InputMaybe; supportEmail?: InputMaybe; websiteUrl?: InputMaybe; }; export type UpdateDeveloperProfileInput = { bio?: InputMaybe; companyName?: InputMaybe; emailNotifications?: InputMaybe; githubUsername?: InputMaybe; linkedinUrl?: InputMaybe; marketingEmails?: InputMaybe; twitterUsername?: InputMaybe; website?: InputMaybe; }; /** Input for updating a subscription entitlement */ export type UpdateEntitlementInput = { /** The type of access (FREE_ACCESS or DISCOUNT) */ accessType?: InputMaybe; /** Discount percentage (0-100) */ discountPercentage?: InputMaybe; /** The entitlement ID to update */ id: Scalars['ID']['input']; }; export type UpdateFaqInput = { answer?: InputMaybe; category?: InputMaybe; context?: InputMaybe; displayOrder?: InputMaybe; isPublished?: InputMaybe; question?: InputMaybe; tags?: InputMaybe>; }; export type UpdateFeatureFlagInput = { category?: InputMaybe; defaultValue?: InputMaybe; description?: InputMaybe; flagType?: InputMaybe; metadata?: InputMaybe; name?: InputMaybe; previewable?: InputMaybe; productId?: InputMaybe; status?: InputMaybe; tags?: InputMaybe>; }; export type UpdateI18nModuleInput = { description?: InputMaybe; displayName?: InputMaybe; metadata?: InputMaybe; status?: InputMaybe; }; export type UpdateI18nNamespaceInput = { description?: InputMaybe; displayName?: InputMaybe; metadata?: InputMaybe; status?: InputMaybe; }; export type UpdateI18nProductInput = { description?: InputMaybe; displayName?: InputMaybe; metadata?: InputMaybe; status?: InputMaybe; }; export type UpdateInterviewFeedbackInput = { internalNotes?: InputMaybe; rating?: InputMaybe; verdict?: InputMaybe; }; export type UpdateInterviewRoundConfigInput = { context?: InputMaybe; description?: InputMaybe; isAssignmentRound?: InputMaybe; isRequired?: InputMaybe; name?: InputMaybe; roundType?: InputMaybe; }; export type UpdateInterviewRoundInput = { assignmentId?: InputMaybe; candidateMessage?: InputMaybe; context?: InputMaybe; name?: InputMaybe; notes?: InputMaybe; roundType?: InputMaybe; scheduledAt?: InputMaybe; status?: InputMaybe; }; export type UpdateInterviewerInput = { context?: InputMaybe; department?: InputMaybe; email?: InputMaybe; isActive?: InputMaybe; name?: InputMaybe; notes?: InputMaybe; title?: InputMaybe; userId?: InputMaybe; }; export type UpdateJobApplicationStatusInput = { status: JobApplicationStatus; }; export type UpdateJobAssignmentInput = { context?: InputMaybe; description?: InputMaybe; difficulty?: InputMaybe; isActive?: InputMaybe; /** Optional attribution — who authored/owns this assignment. Pass empty string to clear. */ ownerEmail?: InputMaybe; problemStatement?: InputMaybe; title?: InputMaybe; }; export type UpdateJobPostingInput = { context?: InputMaybe; department?: InputMaybe; description?: InputMaybe; employmentType?: InputMaybe; learnings?: InputMaybe>; location?: InputMaybe; openings?: InputMaybe; overview?: InputMaybe; productId?: InputMaybe; qualifications?: InputMaybe>; responsibilities?: InputMaybe>; slug?: InputMaybe; status?: InputMaybe; title?: InputMaybe; }; export type UpdateKeyboardShortcutInput = { /** Category for grouping */ category?: InputMaybe; /** Extended description */ description?: InputMaybe; /** Event name to emit */ eventName?: InputMaybe; /** Whether shortcut is enabled */ isEnabled?: InputMaybe; /** Whether this is a key sequence */ isSequence?: InputMaybe; /** Display label */ label?: InputMaybe; /** Mac-specific key override */ macKey?: InputMaybe; /** Key combination */ shortcutKey?: InputMaybe; /** Display order */ sortOrder?: InputMaybe; /** Windows/Linux-specific key override */ windowsKey?: InputMaybe; }; export type UpdateKnowledgeBaseArticleInput = { categoryId?: InputMaybe; content?: InputMaybe; context?: InputMaybe; excerpt?: InputMaybe; metaDescription?: InputMaybe; slug?: InputMaybe; status?: InputMaybe; tags?: InputMaybe>; title?: InputMaybe; }; export type UpdateLanguageInput = { dateFormat?: InputMaybe; direction?: InputMaybe; fallbackCode?: InputMaybe; metadata?: InputMaybe; name?: InputMaybe; nativeName?: InputMaybe; pluralRules?: InputMaybe; region?: InputMaybe; status?: InputMaybe; timeFormat?: InputMaybe; }; export type UpdateNewsletterInput = { content?: InputMaybe; /** Newsletter context for scoping (workspaceId, userId, productId, tenantId, etc.) */ context?: InputMaybe; metadata?: InputMaybe; plans?: InputMaybe; previewText?: InputMaybe; products?: InputMaybe; recipientType?: InputMaybe; scheduledFor?: InputMaybe; segmentConfig?: InputMaybe; subject?: InputMaybe; title?: InputMaybe; }; export type UpdateNewsletterListInput = { context?: InputMaybe; description?: InputMaybe; metadata?: InputMaybe; name?: InputMaybe; }; export type UpdateNewsletterTemplateInput = { category?: InputMaybe; context?: InputMaybe; description?: InputMaybe; html?: InputMaybe; isPublic?: InputMaybe; metadata?: InputMaybe; name?: InputMaybe; thumbnail?: InputMaybe; }; export type UpdateNotificationHistoryInput = { channelServiceEventId?: InputMaybe; deliveryStatus?: InputMaybe; details?: InputMaybe; eventType?: InputMaybe; externalId?: InputMaybe; metadata?: InputMaybe; timestamp?: InputMaybe; }; export type UpdateNotificationInput = { actions?: InputMaybe>; appName?: InputMaybe; body?: InputMaybe; data?: InputMaybe; expiresAt?: InputMaybe; htmlBody?: InputMaybe; media?: InputMaybe>; metadata?: InputMaybe; priority?: InputMaybe; recipient?: InputMaybe; redirectUrl?: InputMaybe; subject?: InputMaybe; topicId?: InputMaybe; trackClicks?: InputMaybe; trackOpens?: InputMaybe; }; export type UpdateNotificationPreferenceInput = { channel?: InputMaybe; enabled?: InputMaybe; frequency?: InputMaybe; metadata?: InputMaybe; quietHoursEnd?: InputMaybe; quietHoursStart?: InputMaybe; scope?: InputMaybe; timezone?: InputMaybe; topicId?: InputMaybe; type?: InputMaybe; }; export type UpdateNotificationTopicInput = { description?: InputMaybe; isActive?: InputMaybe; metadata?: InputMaybe; name?: InputMaybe; slug?: InputMaybe; type?: InputMaybe; }; export type UpdateOrgLegalInfoInput = { legalAddress?: InputMaybe; legalEntityName?: InputMaybe; legalEntityType?: InputMaybe; }; export type UpdateOrgTaxInfoInput = { taxCountry?: InputMaybe; taxFormType?: InputMaybe; taxId?: InputMaybe; }; /** Input for updating an existing organization */ export type UpdateOrganizationInput = { description?: InputMaybe; logo?: InputMaybe; metadata?: InputMaybe; name?: InputMaybe; settings?: InputMaybe; status?: InputMaybe; type?: InputMaybe; website?: InputMaybe; }; /** Input for updating an organization member's role */ export type UpdateOrganizationMemberInput = { role: UserRole; }; export type UpdatePaymentMethodInput = { isActive?: InputMaybe; isDefault?: InputMaybe; name?: InputMaybe; }; export type UpdatePayoutAccountInput = { accountHolderName?: InputMaybe; accountNumber?: InputMaybe; bankName?: InputMaybe; country?: InputMaybe; currency?: InputMaybe; iban?: InputMaybe; ifsc?: InputMaybe; label?: InputMaybe; metadata?: InputMaybe; providerPreference?: InputMaybe; routingNumber?: InputMaybe; swift?: InputMaybe; upiId?: InputMaybe; walletHandle?: InputMaybe; walletProvider?: InputMaybe; }; export type UpdatePhysicalProductInput = { allowBackorder?: InputMaybe; bannerUrl?: InputMaybe; brand?: InputMaybe; category?: InputMaybe; countryOfOrigin?: InputMaybe; currency?: InputMaybe; description?: InputMaybe; dimensionUnit?: InputMaybe; height?: InputMaybe; icon?: InputMaybe; length?: InputMaybe; longDescription?: InputMaybe; lowStockThreshold?: InputMaybe; manufacturer?: InputMaybe; metadata?: InputMaybe; name?: InputMaybe; price?: InputMaybe; requiresShipping?: InputMaybe; returnPolicy?: InputMaybe; screenshots?: InputMaybe>; sku?: InputMaybe; status?: InputMaybe; stockQuantity?: InputMaybe; tags?: InputMaybe>; trackInventory?: InputMaybe; warrantyInfo?: InputMaybe; weight?: InputMaybe; weightUnit?: InputMaybe; width?: InputMaybe; }; export type UpdatePlatformProductInput = { /** Number of active users */ activeUsers?: InputMaybe; /** Total API calls */ apiCalls?: InputMaybe; appStoreUrl?: InputMaybe; /** Application URL */ appUrl?: InputMaybe; contactAddress?: InputMaybe; contactEmail?: InputMaybe; contactPhone?: InputMaybe; /** Product description */ description?: InputMaybe; /** Documentation URL */ docsUrl?: InputMaybe; /** GitHub repository URL */ githubUrl?: InputMaybe; /** Optional product launch/release date */ launchDate?: InputMaybe; /** Logo URL */ logoUrl?: InputMaybe; metadata?: InputMaybe; /** Product name */ name?: InputMaybe; notificationEmail?: InputMaybe; ogImage?: InputMaybe; playStoreUrl?: InputMaybe; recaptchaSecretKey?: InputMaybe; recaptchaSiteKey?: InputMaybe; resourceLinks?: InputMaybe; rybbitSiteId?: InputMaybe; seoDescription?: InputMaybe; seoKeywords?: InputMaybe; seoTitle?: InputMaybe; socialLinks?: InputMaybe; /** Product status */ status?: InputMaybe; /** Status page URL */ statusPageUrl?: InputMaybe; /** Storage in GB */ storageGB?: InputMaybe; supportEmail?: InputMaybe; /** Tags to set (replaces all existing tags) */ tags?: InputMaybe>; /** Number of tenants */ tenantCount?: InputMaybe; /** Uptime percentage */ uptime?: InputMaybe; /** Website URL */ website?: InputMaybe; }; export type UpdatePolicyReferenceInput = { action?: InputMaybe; description?: InputMaybe; isActive?: InputMaybe; name?: InputMaybe; opaPackage?: InputMaybe; priority?: InputMaybe; resourceType?: InputMaybe; }; export type UpdatePressKitAssetInput = { category?: InputMaybe; description?: InputMaybe; fileName?: InputMaybe; fileSize?: InputMaybe; fileUrl?: InputMaybe; mimeType?: InputMaybe; sortOrder?: InputMaybe; tags?: InputMaybe>; thumbnailUrl?: InputMaybe; title?: InputMaybe; version?: InputMaybe; visibility?: InputMaybe; }; export type UpdateProductInput = { bannerUrl?: InputMaybe; category?: InputMaybe; /** Which products this item is compatible with (e.g. "fluidgrids", "workspaces"). When provided without a manifest, updates the field directly. */ compatibleProducts?: InputMaybe>; content?: InputMaybe; currency?: InputMaybe; description?: InputMaybe; documentationUrl?: InputMaybe; icon?: InputMaybe; id: Scalars['ID']['input']; longDescription?: InputMaybe; manifest?: InputMaybe; manifestVersion?: InputMaybe; metadata?: InputMaybe; name?: InputMaybe; price?: InputMaybe; pricingModel?: InputMaybe; productId?: InputMaybe; repositoryUrl?: InputMaybe; screenshots?: InputMaybe>; slug?: InputMaybe; status?: InputMaybe; tags?: InputMaybe>; videoUrls?: InputMaybe>; zipFileUrl?: InputMaybe; }; export type UpdateProductVariantInput = { compareAtPrice?: InputMaybe; displayOrder?: InputMaybe; imageUrls?: InputMaybe>; isActive?: InputMaybe; lowStockThreshold?: InputMaybe; metadata?: InputMaybe; name?: InputMaybe; options?: InputMaybe; price?: InputMaybe; sku?: InputMaybe; stockQuantity?: InputMaybe; weight?: InputMaybe; weightUnit?: InputMaybe; }; export type UpdatePromotionInput = { description?: InputMaybe; expiresAt?: InputMaybe; isActive?: InputMaybe; maxRedemptions?: InputMaybe; name?: InputMaybe; }; export type UpdatePublisherInput = { bio?: InputMaybe; logoUrl?: InputMaybe; name?: InputMaybe; organizationId?: InputMaybe; websiteUrl?: InputMaybe; }; /** Input for updating RBAC configuration */ export type UpdateRbacConfigInput = { description?: InputMaybe; key: Scalars['String']['input']; scopeId: Scalars['String']['input']; value: Scalars['String']['input']; valueType?: InputMaybe; }; export type UpdateRecurringBillingInput = { description?: InputMaybe; id: Scalars['ID']['input']; isActive?: InputMaybe; name?: InputMaybe; }; /** Input for updating a registered resource */ export type UpdateResourceInput = { metadata?: InputMaybe; name?: InputMaybe; ownerId?: InputMaybe; ownerType?: InputMaybe; parentResourceId?: InputMaybe; }; export type UpdateReviewInput = { comment?: InputMaybe; rating?: InputMaybe; title?: InputMaybe; }; /** Input for updating a role */ export type UpdateRoleInput = { description?: InputMaybe; name?: InputMaybe; parentId?: InputMaybe; priority?: InputMaybe; /** Product this role belongs to (PlatformProduct.slug). Set to null only from admin-app flows that intentionally manage cross-product platform roles. */ productSlug?: InputMaybe; }; export type UpdateSlaPolicyInput = { businessHours?: InputMaybe; categoryId?: InputMaybe; context?: InputMaybe; description?: InputMaybe; escalationRules?: InputMaybe; firstResponseMinutes?: InputMaybe; holidays?: InputMaybe; isActive?: InputMaybe; isDefault?: InputMaybe; name?: InputMaybe; priority?: InputMaybe; resolutionMinutes?: InputMaybe; timezone?: InputMaybe; }; export type UpdateScheduleTemplateInput = { businessCalendarId?: InputMaybe; category?: InputMaybe; circuitBreaker?: InputMaybe; description?: InputMaybe; executorConfig?: InputMaybe; failurePolicy?: InputMaybe; isPublic?: InputMaybe; name?: InputMaybe; payloadTemplate?: InputMaybe; retryPolicy?: InputMaybe; scheduleConfig?: InputMaybe; }; export type UpdateScheduledJobInput = { actionId?: InputMaybe; autoDisableAfter?: InputMaybe; businessCalendarId?: InputMaybe; changeReason?: InputMaybe; circuitBreaker?: InputMaybe; cronExpression?: InputMaybe; description?: InputMaybe; endDate?: InputMaybe; executorConfig?: InputMaybe; executorType?: InputMaybe; failurePolicy?: InputMaybe; interval?: InputMaybe; intervalUnit?: InputMaybe; maxOccurrences?: InputMaybe; maxRetries?: InputMaybe; metadata?: InputMaybe; misfirePolicy?: InputMaybe; misfireThreshold?: InputMaybe; name?: InputMaybe; payloadTemplate?: InputMaybe; priority?: InputMaybe; retryDelay?: InputMaybe; retryPolicy?: InputMaybe; rrule?: InputMaybe; scheduledAt?: InputMaybe; secrets?: InputMaybe; startDate?: InputMaybe; status?: InputMaybe; tags?: InputMaybe>; timeWindows?: InputMaybe; timezone?: InputMaybe; }; export type UpdateShippingAddressInput = { addressLine1?: InputMaybe; addressLine2?: InputMaybe; city?: InputMaybe; country?: InputMaybe; email?: InputMaybe; fullName?: InputMaybe; instructions?: InputMaybe; isDefault?: InputMaybe; label?: InputMaybe; phone?: InputMaybe; postalCode?: InputMaybe; state?: InputMaybe; }; export type UpdateShippingMethodInput = { availableCountries?: InputMaybe>; baseCost?: InputMaybe; carrier?: InputMaybe; carrierServiceId?: InputMaybe; costPerItem?: InputMaybe; costPerKg?: InputMaybe; currency?: InputMaybe; description?: InputMaybe; displayOrder?: InputMaybe; estimatedMaxDays?: InputMaybe; estimatedMinDays?: InputMaybe; excludedCountries?: InputMaybe>; isActive?: InputMaybe; maxDimensions?: InputMaybe; maxWeight?: InputMaybe; metadata?: InputMaybe; name?: InputMaybe; }; export type UpdateStoreInput = { allowUnverifiedPublishers?: InputMaybe; currency?: InputMaybe; description?: InputMaybe; isPublic?: InputMaybe; logoUrl?: InputMaybe; name?: InputMaybe; requiresApproval?: InputMaybe; websiteUrl?: InputMaybe; }; /** Response for updateStoreOrderPaymentStatus callback */ export type UpdateStoreOrderPaymentStatusResponse = { __typename?: 'UpdateStoreOrderPaymentStatusResponse'; /** Message describing the result */ message: Scalars['String']['output']; /** Whether the update was successful */ success: Scalars['Boolean']['output']; }; export type UpdateSubscriberInput = { /** Optional operation context overrides for admin-managed subscriber updates */ context?: InputMaybe; email?: InputMaybe; metadata?: InputMaybe; userId?: InputMaybe; }; export type UpdateSubscriptionEntitlementInput = { accessType?: InputMaybe; discountPercentage?: InputMaybe; }; export type UpdateSubscriptionInput = { planId?: InputMaybe; planName?: InputMaybe; }; export type UpdateSubscriptionSeatsInput = { /** Billing account that owns this subscription. */ billingAccountId: Scalars['ID']['input']; /** New seat count. Must be >= plan.minSeats. Applied immediately on Stripe (with proration) and at next cycle on Razorpay (proration delta charged as a separate one-time order). */ seatCount: Scalars['Int']['input']; subscriptionId: Scalars['ID']['input']; }; export type UpdateSupportTicketInput = { assignedTo?: InputMaybe; category?: InputMaybe; categoryId?: InputMaybe; /** Operation context for scoping (workspaceId, userId, projectId, etc.) */ context?: InputMaybe; customFields?: InputMaybe; description?: InputMaybe; metadata?: InputMaybe; priority?: InputMaybe; subject?: InputMaybe; tags?: InputMaybe>; }; export type UpdateTemplateInput = { bodyTemplate?: InputMaybe; description?: InputMaybe; enabled?: InputMaybe; htmlTemplate?: InputMaybe; metadata?: InputMaybe; name?: InputMaybe; subject?: InputMaybe; variables?: InputMaybe; }; /** Input for updating an existing tenant */ export type UpdateTenantInput = { config?: InputMaybe; customDomain?: InputMaybe; metadata?: InputMaybe; name?: InputMaybe; }; export type UpdateTicketCategoryInput = { color?: InputMaybe; context?: InputMaybe; description?: InputMaybe; displayOrder?: InputMaybe; icon?: InputMaybe; isActive?: InputMaybe; name?: InputMaybe; parentId?: InputMaybe; slaOverride?: InputMaybe; slug?: InputMaybe; }; export type UpdateTicketTemplateInput = { body?: InputMaybe; category?: InputMaybe; context?: InputMaybe; description?: InputMaybe; isActive?: InputMaybe; name?: InputMaybe; priority?: InputMaybe; subject?: InputMaybe; tags?: InputMaybe>; }; export type UpdateTourInput = { /** Operation context for scoping (workspaceId, userId, productId, moduleId, etc.) */ context?: InputMaybe; description?: InputMaybe; desktopConfig?: InputMaybe; displayOrder?: InputMaybe; endDate?: InputMaybe; isActive?: InputMaybe; metadata?: InputMaybe; mobileConfig?: InputMaybe; moduleId?: InputMaybe; name?: InputMaybe; pageId?: InputMaybe; priority?: InputMaybe; productId?: InputMaybe; slug?: InputMaybe; startDate?: InputMaybe; status?: InputMaybe; tabletConfig?: InputMaybe; triggerConfig?: InputMaybe; triggerType?: InputMaybe; }; export type UpdateTourMediaInput = { altText?: InputMaybe; caption?: InputMaybe; cdnUrl?: InputMaybe; /** Operation context for scoping (workspaceId, userId, productId, moduleId, etc.) */ context?: InputMaybe; description?: InputMaybe; isPublic?: InputMaybe; metadata?: InputMaybe; name?: InputMaybe; transcript?: InputMaybe; type?: InputMaybe; }; export type UpdateTourScheduleInput = { endDate?: InputMaybe; isActive?: InputMaybe; recurrenceRule?: InputMaybe; startDate?: InputMaybe; timezone?: InputMaybe; }; export type UpdateTourStepInput = { actions?: InputMaybe; content?: InputMaybe; /** Operation context for scoping (workspaceId, userId, productId, moduleId, etc.) */ context?: InputMaybe; customData?: InputMaybe; metadata?: InputMaybe; placement?: InputMaybe; requireInteraction?: InputMaybe; skipConditions?: InputMaybe; stepOrder?: InputMaybe; targetSelector?: InputMaybe; targetSelectorDesktop?: InputMaybe; targetSelectorMobile?: InputMaybe; targetSelectorTablet?: InputMaybe; title?: InputMaybe; waitForEvent?: InputMaybe; waitForSelector?: InputMaybe; waitForTimeout?: InputMaybe; }; export type UpdateTourTemplateInput = { category?: InputMaybe; config?: InputMaybe; /** Operation context for scoping (workspaceId, userId, productId, moduleId, etc.) */ context?: InputMaybe; description?: InputMaybe; isPremium?: InputMaybe; isPublic?: InputMaybe; metadata?: InputMaybe; name?: InputMaybe; slug?: InputMaybe; tags?: InputMaybe>; thumbnail?: InputMaybe; }; export type UpdateTranslationInput = { metadata?: InputMaybe; notes?: InputMaybe; pluralForms?: InputMaybe; status?: InputMaybe; value?: InputMaybe; }; export type UpdateTranslationKeyInput = { characterLimit?: InputMaybe; context?: InputMaybe; defaultValue?: InputMaybe; description?: InputMaybe; isPlural?: InputMaybe; metadata?: InputMaybe; placeholders?: InputMaybe; status?: InputMaybe; tags?: InputMaybe>; }; /** Input for updating user profile information */ export type UpdateUserInput = { avatar?: InputMaybe; firstName?: InputMaybe; language?: InputMaybe; lastName?: InputMaybe; name?: InputMaybe; phoneNumber?: InputMaybe; timezone?: InputMaybe; username?: InputMaybe; }; export type UpdateVariantInput = { content?: InputMaybe; percentage?: InputMaybe; subject?: InputMaybe; }; export type UpdateVariantStatsInput = { clickCount?: InputMaybe; openCount?: InputMaybe; sentCount?: InputMaybe; }; export type UpdateWebhookInput = { description?: InputMaybe; events?: InputMaybe>; filters?: InputMaybe; isActive?: InputMaybe; maxRetries?: InputMaybe; name?: InputMaybe; retryEnabled?: InputMaybe; url?: InputMaybe; }; /** Input for updating an existing workspace */ export type UpdateWorkspaceInput = { metadata?: InputMaybe; name?: InputMaybe; }; /** Input for updating a workspace member's role */ export type UpdateWorkspaceMemberInput = { role: UserRole; }; export type UpsertComplianceSettingsInput = { allowResubscribe?: InputMaybe; analyticsRetention?: InputMaybe; collectReasons?: InputMaybe; doubleOptIn?: InputMaybe; inactiveCleanup?: InputMaybe; physicalAddress?: InputMaybe; privacyPolicyUrl?: InputMaybe; unsubscribeUrl?: InputMaybe; }; /** Input for upserting fulfillment details */ export type UpsertOrderFulfillmentInput = { carrier?: InputMaybe; context?: InputMaybe; estimatedDeliveryDate?: InputMaybe; failureReason?: InputMaybe; labelUrl?: InputMaybe; metadata?: InputMaybe; notes?: InputMaybe; packageHeight?: InputMaybe; packageLength?: InputMaybe; packageWeight?: InputMaybe; packageWidth?: InputMaybe; returnReason?: InputMaybe; signatureRequired?: InputMaybe; signatureUrl?: InputMaybe; signedBy?: InputMaybe; status: FulfillmentStatus; trackingNumber?: InputMaybe; trackingUrl?: InputMaybe; }; /** Input for upserting a passively-observed (SEEN) user from a webhook event */ export type UpsertSeenUserInput = { /** Channel ID this event was received on */ channelId: Scalars['ID']['input']; /** Operation context */ context?: InputMaybe; /** Platform avatar URL */ externalAvatarUrl?: InputMaybe; /** Platform display name */ externalDisplayName?: InputMaybe; /** Platform email */ externalEmail?: InputMaybe; /** Extra platform metadata */ externalMetadata?: InputMaybe; /** Platform-specific user ID */ externalUserId: Scalars['String']['input']; /** Platform username / handle */ externalUsername?: InputMaybe; /** Organization ID */ organizationId: Scalars['ID']['input']; /** Platform the event came from */ platform: ChannelPlatform; }; export type UpsertSourcingOfferInput = { /** Store sourcing settlement currency. Currently USD only. */ currency: Scalars['String']['input']; deliveryDate: Scalars['DateTime']['input']; message?: InputMaybe; quantity: Scalars['Int']['input']; requestId: Scalars['ID']['input']; /** Optional published Store product owned by the current publisher. */ storeProductId?: InputMaybe; unit: SourcingUnit; /** Exact decimal string with at most two fractional digits. */ unitPrice: Scalars['String']['input']; }; /** M2M input for managing a ShippingAddress on behalf of an explicit user. The calling service supplies `userId` (the opaque owner) directly; `id` selects an existing row to update (omit to create). */ export type UpsertUserShippingAddressInput = { addressLine1: Scalars['String']['input']; addressLine2?: InputMaybe; city: Scalars['String']['input']; country: Scalars['String']['input']; email?: InputMaybe; fullName: Scalars['String']['input']; /** Existing ShippingAddress id to update. Omit to create a new address. When provided, the row must already belong to `userId` (else NOT_FOUND). */ id?: InputMaybe; instructions?: InputMaybe; isDefault?: InputMaybe; label?: InputMaybe; phone?: InputMaybe; postalCode: Scalars['String']['input']; state?: InputMaybe; /** Opaque id of the user who owns this address. */ userId: Scalars['String']['input']; }; export type Usage = { __typename?: 'Usage'; /** The amount of the resource that has been consumed. */ amount?: Maybe; /** Additional context */ context?: Maybe; /** The description of the resource that has been consumed. */ description?: Maybe; /** The unique identifier for the Usage, automatically generated as a UUID. */ id?: Maybe; /** The timestamp when the usage was last updated. */ lastUpdated?: Maybe; /** The unique identifier for the product associated with this usage. */ productId?: Maybe; /** The quota assignment being tracked by this usage record. */ quotaAssignment?: Maybe; /** The unique identifier for the associated quota assignment. */ quotaAssignmentId?: Maybe; /** tags to filter the usage ! */ tags?: Maybe; /** The timestamp for when this usage record was created. */ timestamp?: Maybe; /** The user who created this usage record. */ user?: Maybe; /** The unique identifier for the user who created this usage record. */ userId?: Maybe; }; export type UsageActivity = { __typename?: 'UsageActivity'; amount: Scalars['Float']['output']; description: Scalars['String']['output']; id: Scalars['ID']['output']; quotaName: Scalars['String']['output']; tags?: Maybe; timestamp: Scalars['DateTime']['output']; }; export type UsageByType = { __typename?: 'UsageByType'; count: Scalars['Int']['output']; percentage: Scalars['Float']['output']; resourceType: Scalars['String']['output']; usage: Scalars['Float']['output']; }; export type UsageDashboard = { __typename?: 'UsageDashboard'; activeQuotas: Scalars['Int']['output']; criticalQuotas: Scalars['Int']['output']; exhaustedQuotas: Scalars['Int']['output']; /** Health overview */ healthyQuotas: Scalars['Int']['output']; /** Usage trends */ overallTrends: UsageTrends; /** Recent activities */ recentActivities: Array; /** Top usage categories */ topUsageByQuota: Array; totalQuotas: Scalars['Int']['output']; /** Overall usage statistics */ totalUsage: Scalars['Float']['output']; warningQuotas: Scalars['Int']['output']; }; export declare enum UsageMetricType { ApiCalls = "API_CALLS", Bandwidth = "BANDWIDTH", ComputeHours = "COMPUTE_HOURS", Custom = "CUSTOM", Requests = "REQUESTS", Storage = "STORAGE", Transactions = "TRANSACTIONS", Users = "USERS" } export type UsageRecord = { __typename?: 'UsageRecord'; context?: Maybe; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; metadata?: Maybe; metricType: UsageMetricType; orgId: Scalars['String']['output']; quantity: Scalars['Int']['output']; subscriptionId?: Maybe; timestamp: Scalars['DateTime']['output']; totalCost?: Maybe; unitCost?: Maybe; }; export type UsageTrends = { __typename?: 'UsageTrends'; /** Average daily usage */ averageDailyUsage?: Maybe; /** Growth rate percentage over last period */ growthRate?: Maybe; /** Predicted usage for next period */ predictedUsage?: Maybe; }; /** User type stub - represents a user entity from the auth/user service This service doesn't own the User model, but references it in usage tracking Federation gateway will resolve full User data from auth/user service. */ export type User = { __typename?: 'User'; /** Tickets assigned to this user (if support agent) */ assignedTickets: SupportTicketConnection; avatar?: Maybe; createdAt: Scalars['DateTime']['output']; defaultWorkspaceId?: Maybe; email: Scalars['String']['output']; emailVerified: Scalars['Boolean']['output']; firstName?: Maybe; id: Scalars['ID']['output']; isAdmin: Scalars['Boolean']['output']; /** Whether this user is a support agent */ isSupportAgent: Scalars['Boolean']['output']; lastLoginAt?: Maybe; lastName?: Maybe; mfaEnabled: Scalars['Boolean']['output']; name?: Maybe; notifications: Array; phoneNumber?: Maybe; role: Scalars['String']['output']; status: Scalars['String']['output']; tenantId?: Maybe; /** Tickets created by this user */ tickets: SupportTicketConnection; updatedAt: Scalars['DateTime']['output']; username: Scalars['String']['output']; }; /** User type stub - represents a user entity from the auth/user service This service doesn't own the User model, but references it in usage tracking Federation gateway will resolve full User data from auth/user service. */ export type UserAssignedTicketsArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** User type stub - represents a user entity from the auth/user service This service doesn't own the User model, but references it in usage tracking Federation gateway will resolve full User data from auth/user service. */ export type UserTicketsArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; }; /** Per-user billing plan summary consumed by @burdenoff/be-sdk resource-caps. Returned by `userBillingPlan`. `tier` is one of "free" | "paid" and is what the SDK reads to pick its default cap. `resourceCaps` is the plan's JSON override map and may be null/empty. */ export type UserBillingPlan = { __typename?: 'UserBillingPlan'; /** Convenience flag — true when tier is "paid". */ isPaid: Scalars['Boolean']['output']; /** Active plan id; null when no active paid subscription. */ planId?: Maybe; /** Plan name; "Free" when no active paid subscription. */ planName: Scalars['String']['output']; /** Per-plan cap overrides JSON map (resource → integer). Null/empty = SDK defaults. */ resourceCaps?: Maybe; /** Tier the SDK uses to choose between free and paid defaults: "free" | "paid". */ tier: Scalars['String']['output']; /** User whose plan this is. */ userId: Scalars['ID']['output']; }; /** Paginated list of users */ export type UserConnection = { __typename?: 'UserConnection'; hasMore: Scalars['Boolean']['output']; totalCount: Scalars['Int']['output']; users: Array; }; /** User's opt-in/out preference for a previewable feature flag in a workspace. */ export type UserFeatureFlagPreference = { __typename?: 'UserFeatureFlagPreference'; createdAt: Scalars['DateTime']['output']; createdBy: Scalars['String']['output']; enabled: Scalars['Boolean']['output']; featureFlag: FeatureFlag; featureFlagId: Scalars['String']['output']; id: Scalars['ID']['output']; updatedAt: Scalars['DateTime']['output']; updatedBy?: Maybe; userId: Scalars['String']['output']; workspaceId: Scalars['String']['output']; }; /** Filter input for listing users */ export type UserFilterInput = { email?: InputMaybe; role?: InputMaybe; search?: InputMaybe; status?: InputMaybe; username?: InputMaybe; }; export type UserLanguagePreference = { __typename?: 'UserLanguagePreference'; /** ISO 3166-1 alpha-2 country code (e.g., IN, US, DE) */ country?: Maybe; createdAt: Scalars['DateTime']['output']; /** ISO 4217 currency code (e.g., INR, USD, EUR) */ currency?: Maybe; dateFormat?: Maybe; id: Scalars['ID']['output']; language?: Maybe; languageCode: Scalars['String']['output']; metadata?: Maybe; numberFormat?: Maybe; tenantId?: Maybe; timeFormat?: Maybe; timezone?: Maybe; updatedAt: Scalars['DateTime']['output']; userId: Scalars['String']['output']; }; /** UserPlatformConnection represents a verified user identity on a communication platform. It serves as the DM authorization allowlist and notification delivery target. Replaces the former ChannelUser model. */ export type UserPlatformConnection = { __typename?: 'UserPlatformConnection'; /** Whether the user has a valid DM conversation target (dmAllowed = true AND dmConversationId is set) */ canReceiveDm: Scalars['Boolean']['output']; /** Associated channel */ channel: Channel; /** Associated channel ID */ channelId: Scalars['ID']['output']; /** When the user explicitly connected (OAuth / pairing approval) */ connectedAt?: Maybe; /** Operation context */ context?: Maybe; /** Creation timestamp */ createdAt: Scalars['DateTime']['output']; /** Custom status message (if set by user) */ customStatus?: Maybe; /** When this record was soft-deleted (null = active) */ deletedAt?: Maybe; /** Whether DMs to/from this user are allowed. Only true when source = OAUTH or PAIRED; never for SEEN. */ dmAllowed: Scalars['Boolean']['output']; /** Platform-specific DM conversation ID. Slack: D0A1B2C3 | Teams: conversation reference JSON | WhatsApp: JID | Discord: N/A | Google Chat: space name */ dmConversationId?: Maybe; /** Platform avatar URL */ externalAvatarUrl?: Maybe; /** Platform display name */ externalDisplayName?: Maybe; /** Platform email address */ externalEmail?: Maybe; /** Extra platform-specific user data */ externalMetadata?: Maybe; /** Platform-specific user ID (Slack: U12345, WhatsApp: +15551234567, etc.) */ externalUserId: Scalars['String']['output']; /** Platform username / handle (@username) */ externalUsername?: Maybe; /** Unique connection ID */ id: Scalars['ID']['output']; /** Opaque reference to the IntegrationConnection in wspace-integrations-svc that holds this user's personal OAuth token. Set after the user completes the OAuth flow in microfe-integrations and clicks "Link to bot channel". Null for connections created via the legacy Slack OAuth flow. */ integrationConnectionId?: Maybe; /** Internal Botlit user ID (opaque reference) */ internalUserId?: Maybe; /** Whether this connection record is active (not soft-deleted) */ isActive: Scalars['Boolean']['output']; /** Whether the user's OAuth token has expired */ isTokenExpired: Scalars['Boolean']['output']; /** Last time the user was seen active */ lastActiveAt?: Maybe; /** Last time this record was synced from the platform */ lastSyncedAt: Scalars['DateTime']['output']; /** Whether outbound notifications are enabled for this user */ notificationsEnabled: Scalars['Boolean']['output']; /** Organization ID */ organizationId: Scalars['ID']['output']; /** When pairing was approved */ pairingApprovedAt?: Maybe; /** 8-character pairing code (WhatsApp / Discord only). Only present when pairingStatus = PENDING. */ pairingCode?: Maybe; /** When the pairing code expires (1-hour TTL from generation) */ pairingCodeExpiresAt?: Maybe; /** Current pairing status */ pairingStatus?: Maybe; /** Platform permissions for this user */ permissions: Array; /** Communication platform */ platform: ChannelPlatform; /** Current presence status on the platform */ presenceStatus: UserPresenceStatus; /** Platform roles assigned to this user */ roles: Array; /** How the connection was established */ source: UserPlatformSource; /** Last update timestamp */ updatedAt: Scalars['DateTime']['output']; /** User's personal OAuth token expiry (AES-256-GCM encrypted at rest) NOTE: The token itself is never returned by queries; only the expiry is exposed. */ userTokenExpiresAt?: Maybe; /** Scopes granted by the user's personal OAuth token */ userTokenScope?: Maybe; }; /** Filter input for querying user platform connections */ export type UserPlatformConnectionFilterInput = { /** Filter by operation context */ context?: InputMaybe; /** Only return connections where dmAllowed = true */ dmAllowed?: InputMaybe; /** Filter by active status */ isActive?: InputMaybe; /** Only return connections where notificationsEnabled = true */ notificationsEnabled?: InputMaybe; /** Filter by platform */ platform?: InputMaybe; /** Filter by presence status */ presenceStatus?: InputMaybe; /** Search by display name, username, or email */ search?: InputMaybe; /** Filter by connection source */ source?: InputMaybe; }; /** Paginated list of user platform connections with cursor support. Pass `nextCursor` from a previous response as `cursor` in the next call. */ export type UserPlatformConnectionList = { __typename?: 'UserPlatformConnectionList'; hasMore: Scalars['Boolean']['output']; items: Array; nextCursor?: Maybe; total: Scalars['Int']['output']; }; /** How a UserPlatformConnection was established. Controls whether dmAllowed can be set to true. */ export declare enum UserPlatformSource { /** Bulk-imported user record (e.g. from CSV or directory sync). */ Import = "IMPORT", /** Admin manually added the user (back-office operation). */ Manual = "MANUAL", /** Connected via dashboard OAuth flow (Slack, Teams, Google Chat). Grants dmAllowed = true immediately after token exchange. */ Oauth = "OAUTH", /** Connected via pairing code (WhatsApp, Discord). Grants dmAllowed = true once the user approves the pairing code in the dashboard. */ Paired = "PAIRED", /** Passively observed from an inbound webhook event. Never grants dmAllowed = true automatically. */ Seen = "SEEN" } /** User preference record storing theme, notification settings, dashboard customization, and other user-specific configuration. */ export type UserPreference = { __typename?: 'UserPreference'; accessibility?: Maybe; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; notifications?: Maybe; preferences?: Maybe; privacy?: Maybe; theme: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; userId: Scalars['String']['output']; }; /** User presence status on the communication platform. Synced from platform webhooks or periodic polling. */ export declare enum UserPresenceStatus { /** User is away or idle */ Away = "AWAY", /** User is in Do Not Disturb mode */ Dnd = "DND", /** User is offline */ Offline = "OFFLINE", /** User is currently online and active */ Online = "ONLINE" } /** Input for a user-targeted push fan-out. Note there is no device token and no connection id: both are resolved by the service. Callers cannot pin a Firebase project, by design. */ export type UserPushDeliveryInput = { /** Notification content. `title` becomes the push title, `text` the body, and `data` is passed through to the device as the FCM data payload. */ content: ChannelDeliveryContentInput; /** Optional lower cap on how many devices to fan out to. Never raises the service-level cap (PUSH_MAX_DEVICES_PER_TRIGGER). */ maxDevices?: InputMaybe; /** Optional reference to originating notification in notification-svc */ notificationId?: InputMaybe; /** Delivery options (priority, TTL, retry policy) */ options?: InputMaybe; /** Organization ID for multi-tenancy */ organizationId: Scalars['ID']['input']; /** Product slug whose app shell minted the tokens (e.g. "vibecontrols"). Determines which of the user's devices are in scope. */ productSlug: Scalars['String']['input']; /** Subject user. The device registry is queried for exactly this actor. */ userId: Scalars['ID']['input']; }; /** Aggregated result of a user-targeted push fan-out. */ export type UserPushDeliveryResult = { __typename?: 'UserPushDeliveryResult'; /** Devices a send was actually attempted for. */ attemptedDevices: Scalars['Int']['output']; /** Devices retired in the registry because the provider reported their token permanently dead. */ deactivatedCount: Scalars['Int']['output']; /** Devices the notification did not reach, for any reason. */ failedCount: Scalars['Int']['output']; /** Per-device outcomes, one entry per device considered. */ results: Array; /** Devices the notification reached. */ successCount: Scalars['Int']['output']; /** Devices the registry returned, including any the service refused to send to. */ totalDevices: Scalars['Int']['output']; }; /** User role for access control across the platform */ export declare enum UserRole { Guest = "GUEST", Member = "MEMBER", OrgAdmin = "ORG_ADMIN", SuperAdmin = "SUPER_ADMIN", TenantAdmin = "TENANT_ADMIN", WorkspaceAdmin = "WORKSPACE_ADMIN" } export declare enum UserStatus { Active = "ACTIVE", Deleted = "DELETED", Inactive = "INACTIVE", Suspended = "SUSPENDED" } export type UserStoreSubscription = { __typename?: 'UserStoreSubscription'; id: Scalars['ID']['output']; role: Scalars['String']['output']; store: Store; storeId: Scalars['ID']['output']; subscribedAt: Scalars['DateTime']['output']; userId: Scalars['ID']['output']; }; export type UserWishlist = { __typename?: 'UserWishlist'; addedAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; notes?: Maybe; productId: Scalars['ID']['output']; userId: Scalars['String']['output']; }; export type ValidateCouponInput = { /** Addon being purchased — same purpose as planId, for addon purchases. */ addonId?: InputMaybe; /** Order amount before discount */ amount: Scalars['Float']['input']; /** Coupon code to validate */ code: Scalars['String']['input']; /** Currency */ currency: Scalars['String']['input']; /** Plan being purchased — used to resolve product/entity-type scoping (applicableProductIds/applicableEntityTypes) from the Plan record itself, not from a client-asserted product/entity string. */ planId?: InputMaybe; /** Optional: product IDs being purchased */ productIds?: InputMaybe>; /** Optional: service IDs being purchased */ serviceIds?: InputMaybe>; /** User email — checked alongside userId for USER_SPECIFIC coupons whose restrictedToUserIds were populated with email addresses */ userEmail?: InputMaybe; /** User ID (UUID) trying to use the coupon */ userId: Scalars['String']['input']; }; export type ValidateCouponResponse = { __typename?: 'ValidateCouponResponse'; /** The coupon details if valid */ coupon?: Maybe; /** Calculated discount amount for the given order amount */ discountAmount?: Maybe; /** Error message if invalid */ error?: Maybe; /** Final amount after discount */ finalAmount?: Maybe; /** Detailed validation messages */ messages: Array; /** Whether the coupon is valid and can be applied */ valid: Scalars['Boolean']['output']; }; export type ValidateTokensInput = { apiKey?: InputMaybe; authToken: Scalars['String']['input']; }; export type VariantComparisonResult = { __typename?: 'VariantComparisonResult'; confidence?: Maybe; significant: Scalars['Boolean']['output']; variants: Array; winner?: Maybe; }; /** Predefined variant option types (e.g., Size, Color, Material) */ export type VariantOptionType = { __typename?: 'VariantOptionType'; context?: Maybe; createdAt: Scalars['DateTime']['output']; /** Display label (e.g., "Size", "Color") */ displayName: Scalars['String']['output']; id: Scalars['ID']['output']; metadata?: Maybe; /** Internal name (e.g., "size", "color") */ name: Scalars['String']['output']; updatedAt: Scalars['DateTime']['output']; /** Available values for this option type */ values: Array; }; /** Input for verifying a payment method with a small charge */ export type VerifyPaymentMethodInput = { /** Billing account ID to associate the payment method with */ billingAccountId: Scalars['ID']['input']; /** Currency for verification charge (INR, USD, EUR) */ currency: Scalars['String']['input']; /** Additional metadata */ metadata?: InputMaybe; /** Payment provider (STRIPE or RAZORPAY) */ provider?: InputMaybe; /** Set as default payment method after verification */ setAsDefault?: InputMaybe; }; /** Response from payment method verification */ export type VerifyPaymentMethodResponse = { __typename?: 'VerifyPaymentMethodResponse'; /** Verification amount (e.g., 1 for ₹1) */ amount: Scalars['Float']['output']; /** Stripe client secret (for Stripe Elements) */ clientSecret?: Maybe; /** Currency (INR, USD, EUR) */ currency: Scalars['String']['output']; /** Error message if failed */ error?: Maybe; /** Razorpay order ID (for Razorpay SDK) */ orderId?: Maybe; /** Customer phone/contact for payment form prefill */ prefillContact?: Maybe; /** Customer email for payment form prefill */ prefillEmail?: Maybe; /** Customer name for payment form prefill */ prefillName?: Maybe; /** Payment provider used (STRIPE or RAZORPAY) */ provider: Scalars['String']['output']; /** Razorpay customer ID (for showing saved cards) */ razorpayCustomerId?: Maybe; /** Razorpay key ID for frontend integration */ razorpayKeyId?: Maybe; /** Whether the verification was initiated successfully */ success: Scalars['Boolean']['output']; }; /** Input for checking resource visibility */ export type VisibilityCheckInput = { actorId: Scalars['String']['input']; actorType: ActorType; resourceIdentifier: Scalars['String']['input']; resourceType: Scalars['String']['input']; scopeId: Scalars['String']['input']; }; /** Visibility check result */ export type VisibilityCheckResult = { __typename?: 'VisibilityCheckResult'; reason: Scalars['String']['output']; visible: Scalars['Boolean']['output']; }; /** Visibility rule controlling who can see a resource */ export type VisibilityRule = { __typename?: 'VisibilityRule'; conditions?: Maybe; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; isActive: Scalars['Boolean']['output']; priority: Scalars['Int']['output']; resourceId: Scalars['String']['output']; resourceType: Scalars['String']['output']; scopeId: Scalars['String']['output']; targetId?: Maybe; targetType?: Maybe; updatedAt: Scalars['DateTime']['output']; visibilityType: VisibilityType; }; /** Types of visibility rules for resources */ export declare enum VisibilityType { /** Custom conditions (JSON-based) */ Custom = "CUSTOM", /** Visible to specific group members */ Group = "GROUP", /** Visible only to owner */ Private = "PRIVATE", /** Visible to all tenant members */ Public = "PUBLIC", /** Visible to actors with specific role */ Role = "ROLE" } export type WaitlistFilterInput = { platformProductId?: InputMaybe; status?: InputMaybe; }; export type WalletAuthResult = { __typename?: 'WalletAuthResult'; accessToken?: Maybe; expiresIn?: Maybe; isNewUser?: Maybe; refreshToken?: Maybe; success: Scalars['Boolean']['output']; user?: Maybe; walletAddress: Scalars['String']['output']; }; export type WalletChallengeResult = { __typename?: 'WalletChallengeResult'; expiresAt: Scalars['DateTime']['output']; message: Scalars['String']['output']; nonce: Scalars['String']['output']; }; export type WalletInfo = { __typename?: 'WalletInfo'; chain: Scalars['String']['output']; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; lastUsedAt?: Maybe; verified: Scalars['Boolean']['output']; walletAddress: Scalars['String']['output']; }; export type Webhook = { __typename?: 'Webhook'; application: Application; applicationId: Scalars['ID']['output']; context?: Maybe; createdAt: Scalars['DateTime']['output']; deliveries: Array; description?: Maybe; events: Array; failureCount: Scalars['Int']['output']; filters?: Maybe; id: Scalars['ID']['output']; isActive: Scalars['Boolean']['output']; lastFailureAt?: Maybe; lastFailureReason?: Maybe; lastSuccessAt?: Maybe; lastTriggeredAt?: Maybe; maxRetries: Scalars['Int']['output']; metadata?: Maybe; name: Scalars['String']['output']; retryDelay: Scalars['Int']['output']; retryEnabled: Scalars['Boolean']['output']; status: WebhookStatus; successCount: Scalars['Int']['output']; updatedAt: Scalars['DateTime']['output']; url: Scalars['String']['output']; }; /** Returned once by createWebhook. The secret field is only present here — never in subsequent webhook queries. */ export type WebhookCreated = { __typename?: 'WebhookCreated'; secret: Scalars['String']['output']; webhook: Webhook; }; export type WebhookDelivery = { __typename?: 'WebhookDelivery'; attemptNumber: Scalars['Int']['output']; context?: Maybe; createdAt: Scalars['DateTime']['output']; deliveredAt?: Maybe; errorCode?: Maybe; errorMessage?: Maybe; eventId: Scalars['String']['output']; eventType: Scalars['String']['output']; failedAt?: Maybe; id: Scalars['ID']['output']; metadata?: Maybe; nextRetryAt?: Maybe; payload: Scalars['JSON']['output']; requestBody?: Maybe; requestHeaders?: Maybe; responseBody?: Maybe; responseHeaders?: Maybe; responseStatus?: Maybe; status: WebhookDeliveryStatus; updatedAt: Scalars['DateTime']['output']; webhook: Webhook; webhookId: Scalars['ID']['output']; }; export type WebhookDeliveryConnection = { __typename?: 'WebhookDeliveryConnection'; edges: Array; pageInfo: PageInfo; totalCount: Scalars['Int']['output']; }; export type WebhookDeliveryEdge = { __typename?: 'WebhookDeliveryEdge'; cursor: Scalars['String']['output']; node: WebhookDelivery; }; export declare enum WebhookDeliveryStatus { Delivered = "DELIVERED", Delivering = "DELIVERING", Failed = "FAILED", Pending = "PENDING", Retrying = "RETRYING" } /** WebhookEvent represents a received webhook (transient, 7-day TTL) Used for debugging and monitoring only */ export type WebhookEvent = { __typename?: 'WebhookEvent'; /** Associated channel */ channel: Channel; /** Associated channel ID */ channelId: Scalars['ID']['output']; /** Operation context (tenantId, userId, etc.) */ context?: Maybe; /** Creation timestamp (when webhook was received) */ createdAt: Scalars['DateTime']['output']; /** Error message (if failed) */ errorMessage?: Maybe; /** Platform event type (message.channels, reaction_added, etc.) */ eventType: Scalars['String']['output']; /** Expiration timestamp (7 days from creation) */ expiresAt: Scalars['DateTime']['output']; /** Unique webhook event ID */ id: Scalars['ID']['output']; /** Whether this is a duplicate event */ isDuplicate: Scalars['Boolean']['output']; /** Original webhook event ID (if duplicate) */ originalEventId?: Maybe; /** Raw webhook payload */ payload: Scalars['JSON']['output']; /** Processed at timestamp */ processedAt?: Maybe; /** Processing result */ processingResult?: Maybe; /** Webhook signature (for verification) */ signature?: Maybe; /** Processing status */ status: WebhookProcessingStatus; /** Last update timestamp */ updatedAt: Scalars['DateTime']['output']; }; /** Paginated list of webhook events with cursor support. Pass `nextCursor` from a previous response as `cursor` in the next call. */ export type WebhookEventList = { __typename?: 'WebhookEventList'; hasMore: Scalars['Boolean']['output']; items: Array; nextCursor?: Maybe; total: Scalars['Int']['output']; }; /** Webhook processing result */ export type WebhookProcessingResult = { __typename?: 'WebhookProcessingResult'; /** Error message (if failed) */ error?: Maybe; /** Webhook event ID */ eventId: Scalars['ID']['output']; /** Processing time (ms) */ processingTimeMs?: Maybe; /** Processing status */ status: WebhookProcessingStatus; /** Whether processing was successful */ success: Scalars['Boolean']['output']; /** Number of workflow triggers executed */ triggersExecuted: Scalars['Int']['output']; }; /** Webhook event processing status */ export declare enum WebhookProcessingStatus { /** Successfully processed */ Completed = "COMPLETED", /** Processing failed */ Failed = "FAILED", /** Webhook ignored (duplicate, invalid signature) */ Ignored = "IGNORED", /** Webhook received, pending processing */ Pending = "PENDING", /** Currently processing */ Processing = "PROCESSING" } /** Webhook received event payload. */ export type WebhookReceivedEvent = { __typename?: 'WebhookReceivedEvent'; channelId: Scalars['ID']['output']; organizationId: Scalars['ID']['output']; platform: Scalars['String']['output']; processingStatus: Scalars['String']['output']; receivedAt: Scalars['DateTime']['output']; webhookEventId: Scalars['ID']['output']; }; /** Webhook statistics */ export type WebhookStats = { __typename?: 'WebhookStats'; /** Average processing time (ms) */ avgProcessingTimeMs: Scalars['Int']['output']; /** Channel ID */ channelId: Scalars['ID']['output']; /** Date range end */ endDate: Scalars['DateTime']['output']; /** Failed processing */ failedProcessing: Scalars['Int']['output']; /** Ignored (duplicate, invalid signature) */ ignored: Scalars['Int']['output']; /** Date range start */ startDate: Scalars['DateTime']['output']; /** Successfully processed */ successfullyProcessed: Scalars['Int']['output']; /** Total webhooks received */ totalReceived: Scalars['Int']['output']; }; export declare enum WebhookStatus { Active = "ACTIVE", Disabled = "DISABLED", Failed = "FAILED", Paused = "PAUSED" } export type WebhookTestResult = { __typename?: 'WebhookTestResult'; error?: Maybe; response?: Maybe; statusCode?: Maybe; success: Scalars['Boolean']['output']; }; export declare enum WeightUnit { Gram = "GRAM", Kilogram = "KILOGRAM", Ounce = "OUNCE", Pound = "POUND" } export type WidgetConversationSourceContextInput = { activeTab?: InputMaybe; contextHref: Scalars['String']['input']; contextTitle?: InputMaybe; entityId?: InputMaybe; entityType?: InputMaybe; metadata?: InputMaybe; pagePath: Scalars['String']['input']; product: Scalars['String']['input']; threadKey: Scalars['String']['input']; widgetKey: Scalars['String']['input']; }; export type WidgetMessageAttachmentInput = { downloadUrl?: InputMaybe; duration?: InputMaybe; fileId: Scalars['ID']['input']; fileName?: InputMaybe; fileSize?: InputMaybe; height?: InputMaybe; mimeType?: InputMaybe; thumbnail?: InputMaybe; width?: InputMaybe; }; export type WithdrawConsentInput = { purpose: ConsentPurpose; source: Scalars['String']['input']; subjectId: Scalars['ID']['input']; subjectType: Scalars['String']['input']; }; /** Workspace type stub - represents a workspace entity from the workspace service This service doesn't own the Workspace model, but references it */ export type Workspace = { __typename?: 'Workspace'; createdAt: Scalars['DateTime']['output']; /** Service routing endpoint for dedicated tenants For SHARED tenants, this is null (uses default workspace service) For DEDICATED tenants, this points to the dedicated workspace service instance */ endpoint?: Maybe; id: Scalars['ID']['output']; /** Member count */ memberCount: Scalars['Int']['output']; /** Members of this workspace. Paginated to avoid silent truncation. Defaults to the first 100 members (the pre-pagination behaviour), which is also the hard per-page ceiling. Use `membersConnection` for total count and a `hasMore` flag when you need to detect / page beyond the first window. */ members: Array; /** Paginated members of this workspace with total count and a `hasMore` flag. Prefer this over `members` when the workspace may have more members than a single page returns — `members` alone cannot signal truncation. */ membersConnection: WorkspaceMemberList; /** Routing metadata only (NOT workspace internals) */ metadata?: Maybe; name: Scalars['String']['output']; organization?: Maybe; organizationId?: Maybe; /** Data residency region for compliance */ region?: Maybe; slug: Scalars['String']['output']; status: WorkspaceStatus; tenant: Tenant; tenantId: Scalars['String']['output']; type: WorkspaceType; updatedAt: Scalars['DateTime']['output']; }; /** Workspace type stub - represents a workspace entity from the workspace service This service doesn't own the Workspace model, but references it */ export type WorkspaceMembersArgs = { limit?: InputMaybe; offset?: InputMaybe; }; /** Workspace type stub - represents a workspace entity from the workspace service This service doesn't own the Workspace model, but references it */ export type WorkspaceMembersConnectionArgs = { limit?: InputMaybe; offset?: InputMaybe; }; /** Per-workspace outcome within a activateSubscriptionForWorkspaces call. */ export type WorkspaceActivationOutcome = { __typename?: 'WorkspaceActivationOutcome'; assignedQuotas: Scalars['Int']['output']; skippedQuotas: Scalars['Int']['output']; workspaceId: Scalars['ID']['output']; }; /** Workspace-level override for a feature flag. Workspace admins can disable flags or control user opt-in for their workspace. */ export type WorkspaceFeatureFlagOverride = { __typename?: 'WorkspaceFeatureFlagOverride'; allowUserOptIn: Scalars['Boolean']['output']; createdAt: Scalars['DateTime']['output']; createdBy: Scalars['String']['output']; enabled: Scalars['Boolean']['output']; featureFlag: FeatureFlag; featureFlagId: Scalars['String']['output']; id: Scalars['ID']['output']; updatedAt: Scalars['DateTime']['output']; updatedBy?: Maybe; workspaceId: Scalars['String']['output']; }; /** Filter input for querying workspaces */ export type WorkspaceFilterInput = { organizationId?: InputMaybe; search?: InputMaybe; status?: InputMaybe; tenantId?: InputMaybe; type?: InputMaybe; }; /** Paginated list of workspaces */ export type WorkspaceList = { __typename?: 'WorkspaceList'; hasMore: Scalars['Boolean']['output']; items: Array; limit: Scalars['Int']['output']; offset: Scalars['Int']['output']; total: Scalars['Int']['output']; }; /** Workspace member with role and join information */ export type WorkspaceMember = { __typename?: 'WorkspaceMember'; id: Scalars['ID']['output']; invitedBy?: Maybe; joinedAt: Scalars['DateTime']['output']; role: UserRole; userId: Scalars['String']['output']; workspace: Workspace; workspaceId: Scalars['String']['output']; }; /** Paginated list of workspace members */ export type WorkspaceMemberList = { __typename?: 'WorkspaceMemberList'; hasMore: Scalars['Boolean']['output']; items: Array; limit: Scalars['Int']['output']; offset: Scalars['Int']['output']; total: Scalars['Int']['output']; }; /** Public workspace details available to authorized actors */ export type WorkspacePublicDetails = { __typename?: 'WorkspacePublicDetails'; id: Scalars['ID']['output']; name: Scalars['String']['output']; publicUrl: Scalars['String']['output']; slug: Scalars['String']['output']; status: WorkspaceStatus; type: WorkspaceType; }; /** Workspace routing information for API gateway routing */ export type WorkspaceRouting = { __typename?: 'WorkspaceRouting'; name: Scalars['String']['output']; publicUrl: Scalars['String']['output']; region?: Maybe; tenantId: Scalars['String']['output']; workspaceId: Scalars['ID']['output']; }; /** Paginated list of workspace routing info */ export type WorkspaceRoutingList = { __typename?: 'WorkspaceRoutingList'; hasMore: Scalars['Boolean']['output']; items: Array; total: Scalars['Int']['output']; }; /** Workspace status for lifecycle management */ export declare enum WorkspaceStatus { Active = "ACTIVE", Archived = "ARCHIVED", Deleted = "DELETED", Suspended = "SUSPENDED" } export type WorkspaceTourAnalyticsSummary = { __typename?: 'WorkspaceTourAnalyticsSummary'; overallCompletionRate: Scalars['Float']['output']; publishedTours: Scalars['Int']['output']; totalCompletions: Scalars['Int']['output']; totalTours: Scalars['Int']['output']; totalViews: Scalars['Int']['output']; }; /** Workspace type determines the workspace tier and capabilities */ export declare enum WorkspaceType { Enterprise = "ENTERPRISE", Personal = "PERSONAL", Team = "TEAM" } export type AddonQuotaInput = { quantity: Scalars['Float']['input']; quotaId: Scalars['ID']['input']; }; export type CreateAddOnsInput = { currency: Scalars['String']['input']; currencyPriceOverrides?: InputMaybe>; duration: PlanDuration; geoPricingOverrides?: InputMaybe>; name: Scalars['String']['input']; price: Scalars['Float']['input']; productId: Scalars['String']['input']; quotas: Array; }; export type CreatePlanInput = { currency?: InputMaybe; currencyPriceOverrides?: InputMaybe>; /** Default USD */ duration: PlanDuration; geoPricingOverrides?: InputMaybe>; /** Set to false for enterprise / contact-us plans. Defaults to true. */ isPurchasable?: InputMaybe; maxSeats?: InputMaybe; /** Maximum number of distinct workspaces one subscription to this plan can be activated against. Each activated workspace gets the FULL per-workspace quota allotment (not divided). Null/omitted = today's implicit single-workspace behavior (treated as 1). */ maxWorkspaces?: InputMaybe; minSeats?: InputMaybe; name: Scalars['String']['input']; price: Scalars['Float']['input']; pricePerSeat?: InputMaybe; pricingModel?: InputMaybe; productId?: InputMaybe; quotas: Array; }; export type CreateQuotaInput = { context?: InputMaybe; limits: Scalars['JSON']['input']; name: Scalars['String']['input']; quotaType?: InputMaybe; resetPeriod?: InputMaybe; reusable: Scalars['Boolean']['input']; }; export type UpdateAddOnsInput = { currency?: InputMaybe; currencyPriceOverrides?: InputMaybe>; duration?: InputMaybe; geoPricingOverrides?: InputMaybe>; id: Scalars['String']['input']; isActive?: InputMaybe; name?: InputMaybe; price?: InputMaybe; quotas: Array; }; export type UpdatePlanInput = { /** Immutable once set — see `price`. Throws CURRENCY_CHANGE_NOT_ALLOWED on an actual change. */ currency?: InputMaybe; /** Not settable on update — any non-empty value throws PRICE_CHANGE_NOT_ALLOWED (same reason as `price`: each currency's price is already registered as its own real Stripe Price / Razorpay Plan). */ currencyPriceOverrides?: InputMaybe>; /** Default USD. Immutable once set — see `price`. Throws DURATION_CHANGE_NOT_ALLOWED on an actual change. */ duration?: InputMaybe; geoPricingOverrides?: InputMaybe>; id: Scalars['String']['input']; isActive?: InputMaybe; isPurchasable?: InputMaybe; maxSeats?: InputMaybe; maxWorkspaces?: InputMaybe; minSeats?: InputMaybe; name?: InputMaybe; /** Immutable once set — a plan's price is already registered as a real Stripe Price / Razorpay Plan object at creation, and those cannot be edited in place. Passing the plan's current price back is a harmless no-op; passing a different value throws PRICE_CHANGE_NOT_ALLOWED. To change pricing, create a new plan and deactivate this one. */ price?: InputMaybe; /** Immutable once set — see `price`. Throws PRICE_CHANGE_NOT_ALLOWED on an actual change. */ pricePerSeat?: InputMaybe; pricingModel?: InputMaybe; quotas: Array; }; export type UpdateQuotaInput = { context?: InputMaybe; id: Scalars['String']['input']; isActive: Scalars['Boolean']['input']; limits?: InputMaybe; name?: InputMaybe; resetPeriod?: InputMaybe; reusable?: InputMaybe; }; export type UserRegisterInput = { email: Scalars['String']['input']; name: Scalars['String']['input']; password: Scalars['String']['input']; phoneNumber?: InputMaybe; username: Scalars['String']['input']; };