@burdenoff/microfe-devportal 2026.914.6 → 2026.914.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/devportal/hooks/usePackageUpload.d.ts.map +1 -1
- package/dist/devportal/hooks/usePackageUpload.js.map +1 -1
- package/dist/devportal/pages/CreateOrganizationPage.d.ts.map +1 -1
- package/dist/devportal/pages/CreateOrganizationPage.js +11 -2
- package/dist/devportal/pages/CreateOrganizationPage.js.map +1 -1
- package/dist/devportal/pages/EditApplicationPage.d.ts.map +1 -1
- package/dist/devportal/pages/EditApplicationPage.js +4 -0
- package/dist/devportal/pages/EditApplicationPage.js.map +1 -1
- package/dist/devportal/pages/OrganizationDetailPage.js +144 -109
- package/dist/devportal/pages/OrganizationDetailPage.js.map +1 -1
- package/dist/devportal/pages/PublishPage.d.ts.map +1 -1
- package/dist/devportal/pages/PublishPage.js.map +1 -1
- package/dist/devportal/pages/RevenueDashboardPage.d.ts.map +1 -1
- package/dist/devportal/pages/RevenueDashboardPage.js +478 -258
- package/dist/devportal/pages/RevenueDashboardPage.js.map +1 -1
- package/dist/devportal/pages/SellerItemsPage.d.ts.map +1 -1
- package/dist/devportal/pages/SellerItemsPage.js.map +1 -1
- package/dist/devportal/types/index.d.ts +1 -0
- package/dist/devportal/types/index.d.ts.map +1 -1
- package/dist/devportal/types/index.js.map +1 -1
- package/dist/generated/global-operations.d.ts +16 -0
- package/dist/generated/global-operations.d.ts.map +1 -1
- package/dist/generated/global-operations.js +74 -46
- package/dist/generated/global-operations.js.map +1 -1
- package/dist/generated/global-types.d.ts +15 -0
- package/dist/generated/global-types.d.ts.map +1 -1
- package/dist/generated/global-types.js +8 -0
- package/dist/generated/global-types.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"global-types.js","names":[],"sources":["../../src/generated/global-types.ts"],"sourcesContent":["// @ts-nocheck\nexport type Maybe<T> = T | null;\nexport type InputMaybe<T> = Maybe<T>;\nexport type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] };\nexport type MakeOptional<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]?: Maybe<T[SubKey]> };\nexport type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]: Maybe<T[SubKey]> };\nexport type MakeEmpty<T extends { [key: string]: unknown }, K extends keyof T> = { [_ in K]?: never };\nexport type Incremental<T> = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never };\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: { input: string; output: string; }\n String: { input: string; output: string; }\n Boolean: { input: boolean; output: boolean; }\n Int: { input: number; output: number; }\n Float: { input: number; output: number; }\n BigInt: { input: string; output: string; }\n /** ISO 8601 date-time string */\n DateTime: { input: string; output: string; }\n Decimal: { input: string; output: string; }\n /** Arbitrary JSON data */\n JSON: { input: Record<string, unknown>; output: Record<string, unknown>; }\n JSONObject: { input: Record<string, unknown>; output: Record<string, unknown>; }\n Upload: { input: File; output: File; }\n _SubscriptionsPlaceholder: { input: any; output: any; }\n};\n\n/** API Key for programmatic access */\nexport type ApiKey = {\n __typename?: 'APIKey';\n appId: Scalars['String']['output'];\n appName?: Maybe<Scalars['String']['output']>;\n createdAt: Scalars['DateTime']['output'];\n expiresAt?: Maybe<Scalars['DateTime']['output']>;\n id: Scalars['ID']['output'];\n lastUsedAt?: Maybe<Scalars['DateTime']['output']>;\n name: Scalars['String']['output'];\n prefix: Scalars['String']['output'];\n scopes: Array<Scalars['String']['output']>;\n};\n\n/** Paginated list of API keys */\nexport type ApiKeyConnection = {\n __typename?: 'APIKeyConnection';\n apiKeys: Array<ApiKey>;\n hasMore: Scalars['Boolean']['output'];\n totalCount: Scalars['Int']['output'];\n};\n\nexport type ApiKeyInput = {\n apiKey: Scalars['String']['input'];\n apiSecret: Scalars['String']['input'];\n};\n\nexport type ApiKeyResult = {\n __typename?: 'APIKeyResult';\n apiKey: Scalars['String']['output'];\n apiSecret: Scalars['String']['output'];\n keyId: Scalars['String']['output'];\n};\n\nexport type ApiKeyRotateResult = {\n __typename?: 'APIKeyRotateResult';\n apiSecret: Scalars['String']['output'];\n};\n\n/** Result for account actions (deactivate/delete) */\nexport type AccountActionResult = {\n __typename?: 'AccountActionResult';\n message: Scalars['String']['output'];\n success: Scalars['Boolean']['output'];\n};\n\n/** Action check count for analytics */\nexport type ActionCount = {\n __typename?: 'ActionCount';\n action: Scalars['String']['output'];\n count: Scalars['Int']['output'];\n resourceType: Scalars['String']['output'];\n};\n\n/** Action definition - what actions exist per resource type */\nexport type ActionDefinition = {\n __typename?: 'ActionDefinition';\n action: Scalars['String']['output'];\n /** ADMIN role level includes this action by default */\n adminDefault: Scalars['Boolean']['output'];\n createdAt: Scalars['DateTime']['output'];\n description?: Maybe<Scalars['String']['output']>;\n /** EDITOR role level includes this action by default */\n editorDefault: Scalars['Boolean']['output'];\n id: Scalars['ID']['output'];\n isSystem: Scalars['Boolean']['output'];\n resourceType: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n /** VIEWER role level includes this action by default */\n viewerDefault: Scalars['Boolean']['output'];\n};\n\nexport type ActivateLicenseInput = {\n deviceId: Scalars['String']['input'];\n deviceName?: InputMaybe<Scalars['String']['input']>;\n ipAddress?: InputMaybe<Scalars['String']['input']>;\n licenseKey: Scalars['String']['input'];\n platform?: InputMaybe<Scalars['String']['input']>;\n userAgent?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Result of activating a subscription's workspace-scoped quotas. */\nexport type ActivateSubscriptionForWorkspaceResult = {\n __typename?: 'ActivateSubscriptionForWorkspaceResult';\n assignedQuotas: Scalars['Int']['output'];\n skippedQuotas: Scalars['Int']['output'];\n workspaceId: Scalars['ID']['output'];\n};\n\n/** Result of activating a subscription's workspace-scoped quotas against multiple workspaces at once. */\nexport type ActivateSubscriptionForWorkspacesResult = {\n __typename?: 'ActivateSubscriptionForWorkspacesResult';\n /** Every workspace now activated for this subscription (including ones activated by an earlier call) — the full, authoritative set. */\n activatedWorkspaceIds: Array<Scalars['ID']['output']>;\n results: Array<WorkspaceActivationOutcome>;\n subscriptionId: Scalars['ID']['output'];\n};\n\nexport enum ActivityAction {\n Create = 'CREATE',\n Delete = 'DELETE',\n Execute = 'EXECUTE',\n Export = 'EXPORT',\n Import = 'IMPORT',\n List = 'LIST',\n Read = 'READ',\n Update = 'UPDATE'\n}\n\nexport type ActivityFilterInput = {\n action?: InputMaybe<Scalars['String']['input']>;\n actorId?: InputMaybe<Scalars['String']['input']>;\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n resource?: InputMaybe<Scalars['String']['input']>;\n resourceId?: InputMaybe<Scalars['String']['input']>;\n resourceType?: InputMaybe<Scalars['String']['input']>;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n tenantId?: InputMaybe<Scalars['String']['input']>;\n userId?: InputMaybe<Scalars['String']['input']>;\n workspaceId?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type ActivityLog = {\n __typename?: 'ActivityLog';\n action: Scalars['String']['output'];\n actorId?: Maybe<Scalars['String']['output']>;\n createdAt: Scalars['DateTime']['output'];\n description?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n ipAddress?: Maybe<Scalars['String']['output']>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n resource: Scalars['String']['output'];\n resourceId?: Maybe<Scalars['ID']['output']>;\n resourceType?: Maybe<Scalars['String']['output']>;\n tenantId?: Maybe<Scalars['String']['output']>;\n userAgent?: Maybe<Scalars['String']['output']>;\n userId?: Maybe<Scalars['ID']['output']>;\n workspaceId?: Maybe<Scalars['ID']['output']>;\n};\n\nexport type ActivityLogConnection = {\n __typename?: 'ActivityLogConnection';\n hasMore: Scalars['Boolean']['output'];\n nodes: Array<ActivityLog>;\n totalCount: Scalars['Int']['output'];\n};\n\n/** Actor activity count for analytics */\nexport type ActorCount = {\n __typename?: 'ActorCount';\n actorId: Scalars['String']['output'];\n actorType: ActorType;\n count: Scalars['Int']['output'];\n};\n\n/** Filter for querying actors */\nexport type ActorFilterInput = {\n actorType?: InputMaybe<ActorType>;\n hasOverrides?: InputMaybe<Scalars['Boolean']['input']>;\n roleId?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Actor RBAC summary - shows an actor's full RBAC profile in a scope */\nexport type ActorRbacSummary = {\n __typename?: 'ActorRbacSummary';\n actorId: Scalars['String']['output'];\n actorType: ActorType;\n /** Total number of effective permissions */\n effectivePermissionCount: Scalars['Int']['output'];\n /** Permission overrides for this actor */\n permissionOverrides: Array<PermissionOverride>;\n /** Roles assigned to this actor */\n roleAssignments: Array<ActorRoleAssignment>;\n scopeId: Scalars['String']['output'];\n};\n\n/** Actor's role assignment in a scope */\nexport type ActorRoleAssignment = {\n __typename?: 'ActorRoleAssignment';\n actorId: Scalars['String']['output'];\n actorType: ActorType;\n assignedAt: Scalars['DateTime']['output'];\n assignedBy?: Maybe<Scalars['String']['output']>;\n createdAt: Scalars['DateTime']['output'];\n createdBy: Scalars['String']['output'];\n delegatedBy?: Maybe<Scalars['String']['output']>;\n expiresAt?: Maybe<Scalars['DateTime']['output']>;\n id: Scalars['ID']['output'];\n isActive: Scalars['Boolean']['output'];\n onBehalfOf?: Maybe<Scalars['String']['output']>;\n /** The role assigned */\n role: Role;\n roleId: Scalars['String']['output'];\n scopeId: Scalars['String']['output'];\n /** Optional: Scope role to specific resource instance */\n scopeResourceId?: Maybe<Scalars['String']['output']>;\n /** Optional: Scope role to specific resource type */\n scopeResourceType?: Maybe<Scalars['String']['output']>;\n};\n\n/** Actor types - actors are created in auth-svc, RBAC just references opaque IDs */\nexport enum ActorType {\n /** Automated bot (workflow, AI assistant) */\n Bot = 'BOT',\n /** Service acting on behalf of user */\n DelegatedAgent = 'DELEGATED_AGENT',\n /** External API integration (Zapier, etc.) */\n Integration = 'INTEGRATION',\n /** Human user */\n User = 'USER'\n}\n\n/** 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 */\nexport enum AdapterType {\n /** Amazon Simple Email Service */\n AwsSes = 'AWS_SES',\n /** Amazon SNS */\n AwsSns = 'AWS_SNS',\n /** Azure Communication Services Email */\n AzureAcs = 'AZURE_ACS',\n /** Discord Bot API */\n DiscordBot = 'DISCORD_BOT',\n /** Firebase Cloud Messaging (Android + iOS + Web) */\n Fcm = 'FCM',\n /** Native Burdenoff In-App Notifications */\n InappNative = 'INAPP_NATIVE',\n /** Slack Bot API */\n SlackBot = 'SLACK_BOT',\n /** Microsoft Teams Bot */\n TeamsBot = 'TEAMS_BOT',\n /** Twilio SMS */\n TwilioSms = 'TWILIO_SMS',\n /** Generic HTTP Webhook */\n WebhookHttp = 'WEBHOOK_HTTP',\n /** WhatsApp Cloud API (Meta) */\n WhatsappCloud = 'WHATSAPP_CLOUD',\n /** WhatsApp via Twilio */\n WhatsappTwilio = 'WHATSAPP_TWILIO'\n}\n\nexport type AddAffiliateCodeNoteInput = {\n body: Scalars['String']['input'];\n codeId: Scalars['ID']['input'];\n};\n\n/** Input for adding a fulfillment tracking event */\nexport type AddFulfillmentTrackingEventInput = {\n carrierEvent?: InputMaybe<Scalars['JSON']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n fulfillmentId: Scalars['String']['input'];\n location?: InputMaybe<Scalars['String']['input']>;\n occurredAt?: InputMaybe<Scalars['DateTime']['input']>;\n status: FulfillmentStatus;\n};\n\nexport type AddOnInputPayment = {\n id: Scalars['String']['input'];\n quantity?: InputMaybe<Scalars['Int']['input']>;\n};\n\n/** Input for adding a member to an organization */\nexport type AddOrganizationMemberInput = {\n organizationId: Scalars['String']['input'];\n role?: InputMaybe<UserRole>;\n userId: Scalars['String']['input'];\n};\n\nexport type AddPaymentMethodInput = {\n accountDetails: Scalars['JSON']['input'];\n country?: InputMaybe<Scalars['String']['input']>;\n currency?: InputMaybe<Scalars['String']['input']>;\n isDefault?: InputMaybe<Scalars['Boolean']['input']>;\n name: Scalars['String']['input'];\n type: DevPortalPaymentMethodType;\n};\n\nexport type AddPayoutAccountInput = {\n accountHolderName: Scalars['String']['input'];\n accountNumber?: InputMaybe<Scalars['String']['input']>;\n bankName?: InputMaybe<Scalars['String']['input']>;\n billingAccountId: Scalars['ID']['input'];\n country?: InputMaybe<Scalars['String']['input']>;\n currency: Scalars['String']['input'];\n iban?: InputMaybe<Scalars['String']['input']>;\n ifsc?: InputMaybe<Scalars['String']['input']>;\n label: Scalars['String']['input'];\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n providerPreference?: InputMaybe<PayoutProvider>;\n routingNumber?: InputMaybe<Scalars['String']['input']>;\n swift?: InputMaybe<Scalars['String']['input']>;\n type: PayoutAccountType;\n upiId?: InputMaybe<Scalars['String']['input']>;\n walletHandle?: InputMaybe<Scalars['String']['input']>;\n walletProvider?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type AddPayoutMethodInput = {\n externalAccountId?: InputMaybe<Scalars['String']['input']>;\n isDefault?: InputMaybe<Scalars['Boolean']['input']>;\n publisherId: Scalars['ID']['input'];\n type: PayoutMethodType;\n};\n\nexport type AddSuppressionInput = {\n email: Scalars['String']['input'];\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n platformProductId: Scalars['String']['input'];\n reason: Scalars['String']['input'];\n source?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type AddTagToApplicationInput = {\n applicationId: Scalars['ID']['input'];\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n source?: InputMaybe<Scalars['String']['input']>;\n tagId: Scalars['ID']['input'];\n validFrom?: InputMaybe<Scalars['DateTime']['input']>;\n validTo?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\nexport type AddTenantMemberInput = {\n role?: InputMaybe<TenantMemberRole>;\n tenantId: Scalars['ID']['input'];\n userId: Scalars['ID']['input'];\n};\n\n/** Input for adding an item to cart */\nexport type AddToCartInput = {\n /** Product ID to add */\n productId: Scalars['String']['input'];\n /** Quantity to add (defaults to 1) */\n quantity?: InputMaybe<Scalars['Int']['input']>;\n /** Variant ID (required for physical products with variants) */\n variantId?: InputMaybe<Scalars['String']['input']>;\n /** Target workspace for installation (for digital products) */\n workspaceId?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Input for adding a member to a workspace */\nexport type AddWorkspaceMemberInput = {\n role?: InputMaybe<UserRole>;\n userId: Scalars['String']['input'];\n workspaceId: Scalars['String']['input'];\n};\n\nexport type Addon = {\n __typename?: 'Addon';\n /** A list of addon subscriptions linked to this addon. */\n addonSubscriptions?: Maybe<Array<Maybe<AddonSubscription>>>;\n /** Additional context */\n context?: Maybe<Scalars['JSON']['output']>;\n /** The timestamp when the addon was created. */\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n /** The currency in which the addon is priced. Defaults to 'USD'. */\n currency?: Maybe<Scalars['String']['output']>;\n /** Prices for all supported currencies with beautiful rounding. Example: { \"USD\": 2.00, \"INR\": 199, \"EUR\": 1.99, \"GBP\": 1.79 } */\n currencyPrices?: Maybe<Scalars['JSON']['output']>;\n /** The duration for which the addon is valid (e.g., monthly, yearly). Defaults to 'monthly'. */\n duration?: Maybe<PlanDuration>;\n /** A list of features provided by this addon, such as extra quotas or special services. */\n features?: Maybe<Array<Maybe<SubscriptionFeatures>>>;\n /** Geography-specific price overrides. The billing account's country/state/region plus currency decide whether one of these overrides applies. */\n geoPricingOverrides: Array<GeoPricingOverride>;\n /** The unique identifier for the Addon, automatically generated as a UUID. */\n id?: Maybe<Scalars['ID']['output']>;\n /** Indicates whether the addon is currently active. */\n isActive?: Maybe<Scalars['Boolean']['output']>;\n /** The name of the addon (e.g., 'Extra Bots', 'Additional Storage'). */\n name?: Maybe<Scalars['String']['output']>;\n /** The price of the addon. */\n price?: Maybe<Scalars['Float']['output']>;\n /** Historical record of price changes for this addon */\n priceHistory: Array<AddonPriceHistory>;\n /** Product ID the addon belongs to (reference to product microservice) */\n productID?: Maybe<Scalars['String']['output']>;\n /** The timestamp when the addon was last updated. */\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\n/** Tracks historical price changes for an Addon. A new record is created whenever an addon's price is updated. */\nexport type AddonPriceHistory = {\n __typename?: 'AddonPriceHistory';\n /** The addon this price change belongs to */\n addonId: Scalars['String']['output'];\n /** Who made the price change (actor ID) */\n changedBy?: Maybe<Scalars['String']['output']>;\n /** When the price change was recorded */\n createdAt: Scalars['DateTime']['output'];\n /** The currency of the price change */\n currency: Scalars['String']['output'];\n /** Unique identifier */\n id: Scalars['ID']['output'];\n /** The new price after the change */\n newPrice: Scalars['Float']['output'];\n /** The previous price before the change */\n oldPrice: Scalars['Float']['output'];\n /** Optional reason for the price change */\n reason?: Maybe<Scalars['String']['output']>;\n};\n\nexport type AddonSubscription = {\n __typename?: 'AddonSubscription';\n /** The addon linked to this subscription. */\n addon?: Maybe<Addon>;\n /** The unique identifier for the addon. */\n addonId?: Maybe<Scalars['ID']['output']>;\n /** Additional context */\n context?: Maybe<Scalars['JSON']['output']>;\n /** The timestamp when the addon subscription was created. */\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n /** The current active subscription linked to this addon subscription. This is updated when a new subscription is bought. */\n currentSubscription?: Maybe<BillingSubscription>;\n /** The unique identifier for the current active subscription. */\n currentSubscriptionId?: Maybe<Scalars['ID']['output']>;\n /** The end date of the addon subscription. */\n endDate?: Maybe<Scalars['DateTime']['output']>;\n /** The unique identifier for the AddonSubscription, automatically generated as a UUID. */\n id?: Maybe<Scalars['ID']['output']>;\n /** The quantity of the addon subscribed to. */\n quantity?: Maybe<Scalars['Int']['output']>;\n /** The start date of the addon subscription. */\n startDate?: Maybe<Scalars['DateTime']['output']>;\n /** The timestamp when the addon subscription was last updated. */\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type AddonsFilter = {\n /** 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. */\n includeFree?: InputMaybe<Scalars['Boolean']['input']>;\n /** Filter addons by product ID. When set, only addons with this productID are returned. */\n productId?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type AdjustInventoryInput = {\n delta: Scalars['Int']['input'];\n notes?: InputMaybe<Scalars['String']['input']>;\n productId: Scalars['ID']['input'];\n reason: InventoryAdjustmentReason;\n variantId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n/** Input for admin updating user (includes role and status) */\nexport type AdminUpdateUserInput = {\n emailVerified?: InputMaybe<Scalars['Boolean']['input']>;\n firstName?: InputMaybe<Scalars['String']['input']>;\n language?: InputMaybe<Scalars['String']['input']>;\n lastName?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n phoneNumber?: InputMaybe<Scalars['String']['input']>;\n role?: InputMaybe<UserRole>;\n status?: InputMaybe<UserStatus>;\n timezone?: InputMaybe<Scalars['String']['input']>;\n username?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type AffiliateAdminAnalytics = {\n __typename?: 'AffiliateAdminAnalytics';\n geographyBreakdown: Array<AffiliateGeographyRow>;\n modeBreakdown: Array<AffiliateModeRow>;\n topAffiliates: Array<AffiliateTopRow>;\n totalCodes: Scalars['Int']['output'];\n totalJourneys: Scalars['Int']['output'];\n totalPaidConversions: Scalars['Int']['output'];\n totalRevenueAmount: Scalars['Float']['output'];\n totalRewardAmount: Scalars['Float']['output'];\n totalSignups: Scalars['Int']['output'];\n totalStorePurchases: Scalars['Int']['output'];\n totalVisits: Scalars['Int']['output'];\n};\n\nexport type AffiliateAnalyticsFilterInput = {\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n geographyCountry?: InputMaybe<Scalars['String']['input']>;\n mode?: InputMaybe<Scalars['String']['input']>;\n productSlug?: InputMaybe<Scalars['String']['input']>;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\nexport type AffiliateCode = {\n __typename?: 'AffiliateCode';\n code: Scalars['String']['output'];\n createdAt: Scalars['DateTime']['output'];\n description?: Maybe<Scalars['String']['output']>;\n destinationUrl?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n isActive: Scalars['Boolean']['output'];\n label?: Maybe<Scalars['String']['output']>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n notes: Array<AffiliateCodeNote>;\n ownerUserId: Scalars['String']['output'];\n paidConversions: Scalars['Int']['output'];\n productSlug?: Maybe<Scalars['String']['output']>;\n revenueAmount: Scalars['Float']['output'];\n rewardAmount: Scalars['Float']['output'];\n signups: Scalars['Int']['output'];\n storePurchases: Scalars['Int']['output'];\n tenantId?: Maybe<Scalars['String']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n visits: Scalars['Int']['output'];\n};\n\nexport type AffiliateCodeAnalytics = {\n __typename?: 'AffiliateCodeAnalytics';\n codeId: Scalars['ID']['output'];\n codeValue: Scalars['String']['output'];\n conversionRate: Scalars['Float']['output'];\n paidConversions: Scalars['Int']['output'];\n revenueAmount: Scalars['Float']['output'];\n rewardAmount: Scalars['Float']['output'];\n signups: Scalars['Int']['output'];\n storePurchases: Scalars['Int']['output'];\n topCountries: Array<AffiliateGeographyRow>;\n topModes: Array<AffiliateModeRow>;\n uniqueJourneys: Scalars['Int']['output'];\n visits: Scalars['Int']['output'];\n};\n\nexport type AffiliateCodeConnection = {\n __typename?: 'AffiliateCodeConnection';\n hasMore: Scalars['Boolean']['output'];\n items: Array<AffiliateCode>;\n totalCount: Scalars['Int']['output'];\n};\n\nexport type AffiliateCodeFilterInput = {\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n ownerUserId?: InputMaybe<Scalars['String']['input']>;\n productSlug?: InputMaybe<Scalars['String']['input']>;\n search?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type AffiliateCodeLookup = {\n __typename?: 'AffiliateCodeLookup';\n code: Scalars['String']['output'];\n destinationUrl?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n isActive: Scalars['Boolean']['output'];\n productSlug?: Maybe<Scalars['String']['output']>;\n};\n\nexport type AffiliateCodeNote = {\n __typename?: 'AffiliateCodeNote';\n authorId: Scalars['String']['output'];\n authorType: Scalars['String']['output'];\n body: Scalars['String']['output'];\n codeId: Scalars['ID']['output'];\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n};\n\nexport type AffiliateGeographyRow = {\n __typename?: 'AffiliateGeographyRow';\n conversions: Scalars['Int']['output'];\n country: Scalars['String']['output'];\n visits: Scalars['Int']['output'];\n};\n\nexport type AffiliateJourney = {\n __typename?: 'AffiliateJourney';\n codeId: Scalars['ID']['output'];\n codeValue: Scalars['String']['output'];\n currentPath?: Maybe<Scalars['String']['output']>;\n geographyCountry?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n identifiedUserId?: Maybe<Scalars['String']['output']>;\n lastVisitedAt: Scalars['DateTime']['output'];\n mode?: Maybe<Scalars['String']['output']>;\n productSlug?: Maybe<Scalars['String']['output']>;\n status: Scalars['String']['output'];\n};\n\nexport type AffiliateJourneyConnection = {\n __typename?: 'AffiliateJourneyConnection';\n hasMore: Scalars['Boolean']['output'];\n items: Array<AffiliateJourney>;\n totalCount: Scalars['Int']['output'];\n};\n\nexport type AffiliateJourneyEvent = {\n __typename?: 'AffiliateJourneyEvent';\n currency?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n journeyId: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n occurredAt: Scalars['DateTime']['output'];\n type: Scalars['String']['output'];\n valueAmount?: Maybe<Scalars['Float']['output']>;\n};\n\nexport type AffiliateJourneyFilterInput = {\n codeId?: InputMaybe<Scalars['ID']['input']>;\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n geographyCountry?: InputMaybe<Scalars['String']['input']>;\n identifiedUserId?: InputMaybe<Scalars['String']['input']>;\n mode?: InputMaybe<Scalars['String']['input']>;\n productSlug?: InputMaybe<Scalars['String']['input']>;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type AffiliateModeRow = {\n __typename?: 'AffiliateModeRow';\n conversions: Scalars['Int']['output'];\n mode: Scalars['String']['output'];\n visits: Scalars['Int']['output'];\n};\n\nexport type AffiliateTopRow = {\n __typename?: 'AffiliateTopRow';\n codeId: Scalars['ID']['output'];\n codeValue: Scalars['String']['output'];\n ownerUserId: Scalars['String']['output'];\n paidConversions: Scalars['Int']['output'];\n revenueAmount: Scalars['Float']['output'];\n rewardAmount: Scalars['Float']['output'];\n signups: Scalars['Int']['output'];\n storePurchases: Scalars['Int']['output'];\n visits: Scalars['Int']['output'];\n};\n\nexport type AffiliateTrackResult = {\n __typename?: 'AffiliateTrackResult';\n codeId?: Maybe<Scalars['ID']['output']>;\n journeyId: Scalars['String']['output'];\n recorded: Scalars['Boolean']['output'];\n};\n\nexport type AgentAvailability = {\n __typename?: 'AgentAvailability';\n agentsBySkill: Array<AgentSkillCount>;\n availableCapacity: Scalars['Int']['output'];\n awayAgents: Scalars['Int']['output'];\n offlineAgents: Scalars['Int']['output'];\n onlineAgents: Scalars['Int']['output'];\n totalAgents: Scalars['Int']['output'];\n};\n\nexport type AgentLeaderboard = {\n __typename?: 'AgentLeaderboard';\n agents: Array<AgentRanking>;\n period: TimePeriod;\n};\n\nexport type AgentPerformance = {\n __typename?: 'AgentPerformance';\n agent: AgentProfile;\n agentId: Scalars['String']['output'];\n averageFirstResponseMinutes?: Maybe<Scalars['Float']['output']>;\n averageRating?: Maybe<Scalars['Float']['output']>;\n averageResolutionMinutes?: Maybe<Scalars['Float']['output']>;\n endDate: Scalars['DateTime']['output'];\n internalNotesCount: Scalars['Int']['output'];\n messagesCount: Scalars['Int']['output'];\n period: TimePeriod;\n slaComplianceRate: Scalars['Float']['output'];\n startDate: Scalars['DateTime']['output'];\n ticketsAssigned: Scalars['Int']['output'];\n ticketsClosed: Scalars['Int']['output'];\n ticketsResolved: Scalars['Int']['output'];\n totalRatings: Scalars['Int']['output'];\n};\n\nexport type AgentPerformanceFilterInput = {\n agentId: Scalars['String']['input'];\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n period?: InputMaybe<TimePeriod>;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\nexport type AgentProfile = {\n __typename?: 'AgentProfile';\n autoAssign: Scalars['Boolean']['output'];\n availableCapacity: Scalars['Int']['output'];\n context?: Maybe<SupportContext>;\n createdAt: Scalars['DateTime']['output'];\n currentChats: Scalars['Int']['output'];\n currentTickets: Scalars['Int']['output'];\n /** 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. */\n displayAlias?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n isAvailable: Scalars['Boolean']['output'];\n lastActiveAt?: Maybe<Scalars['DateTime']['output']>;\n maxChats: Scalars['Int']['output'];\n maxTickets: Scalars['Int']['output'];\n skills: Array<Scalars['String']['output']>;\n status: AgentStatus;\n statusMessage?: Maybe<Scalars['String']['output']>;\n teams: Array<Scalars['String']['output']>;\n tenantId?: Maybe<Scalars['String']['output']>;\n timezone: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n user: User;\n userId: Scalars['String']['output'];\n workingHours?: Maybe<Scalars['JSON']['output']>;\n};\n\nexport type AgentProfileConnection = {\n __typename?: 'AgentProfileConnection';\n hasMore: Scalars['Boolean']['output'];\n nodes: Array<AgentProfile>;\n totalCount: Scalars['Int']['output'];\n};\n\nexport type AgentProfileFilterInput = {\n autoAssign?: InputMaybe<Scalars['Boolean']['input']>;\n context?: InputMaybe<SupportContextFilterInput>;\n isAvailable?: InputMaybe<Scalars['Boolean']['input']>;\n skills?: InputMaybe<Array<Scalars['String']['input']>>;\n status?: InputMaybe<AgentStatus>;\n teams?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\nexport type AgentRanking = {\n __typename?: 'AgentRanking';\n agent: AgentProfile;\n agentId: Scalars['String']['output'];\n averageRating?: Maybe<Scalars['Float']['output']>;\n rank: Scalars['Int']['output'];\n score: Scalars['Float']['output'];\n slaComplianceRate: Scalars['Float']['output'];\n ticketsResolved: Scalars['Int']['output'];\n};\n\nexport type AgentSkillCount = {\n __typename?: 'AgentSkillCount';\n count: Scalars['Int']['output'];\n onlineCount: Scalars['Int']['output'];\n skill: Scalars['String']['output'];\n};\n\nexport enum AgentStatus {\n Away = 'AWAY',\n Offline = 'OFFLINE',\n Online = 'ONLINE'\n}\n\n/** Per-model LLM token prices (USD per 1M tokens) used to weight AI-credit charges. */\nexport type AiModelPrice = {\n __typename?: 'AiModelPrice';\n inputPer1M: Scalars['Float']['output'];\n isActive: Scalars['Boolean']['output'];\n model: Scalars['String']['output'];\n outputPer1M: Scalars['Float']['output'];\n};\n\n/** Amount range filter for queries */\nexport type AmountRangeInput = {\n /** Maximum amount (inclusive) */\n max?: InputMaybe<Scalars['Float']['input']>;\n /** Minimum amount (inclusive) */\n min?: InputMaybe<Scalars['Float']['input']>;\n};\n\n/** Input for analytics date range */\nexport type AnalyticsDateRangeInput = {\n endDate: Scalars['DateTime']['input'];\n startDate: Scalars['DateTime']['input'];\n};\n\nexport type AnalyticsFilterInput = {\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n groupBy?: InputMaybe<TrendGroupBy>;\n period?: InputMaybe<TimePeriod>;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n workspaceId?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum AnalyticsPeriod {\n CurrentMonth = 'CURRENT_MONTH',\n Last_7Days = 'LAST_7_DAYS',\n Last_30Days = 'LAST_30_DAYS',\n Last_90Days = 'LAST_90_DAYS',\n LastMonth = 'LAST_MONTH'\n}\n\nexport type App = {\n __typename?: 'App';\n actorType: Scalars['String']['output'];\n clientId: Scalars['String']['output'];\n createdAt: Scalars['DateTime']['output'];\n delegations: Array<AppUserDelegation>;\n description?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n name: Scalars['String']['output'];\n ownerUserId: Scalars['String']['output'];\n redirectUris: Array<Scalars['String']['output']>;\n scopes: Array<Scalars['String']['output']>;\n status: AppStatus;\n tenantId?: Maybe<Scalars['String']['output']>;\n type: AppType;\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type AppAsUserTokenResponse = {\n __typename?: 'AppAsUserTokenResponse';\n accessToken: Scalars['String']['output'];\n allowedWorkspaceIds: Array<Scalars['String']['output']>;\n delegationId: Scalars['String']['output'];\n expiresIn: Scalars['Int']['output'];\n scopes: Array<Scalars['String']['output']>;\n tokenType: Scalars['String']['output'];\n};\n\n/** App Collection - curated collection of applications */\nexport type AppCollection = {\n __typename?: 'AppCollection';\n appIds: Array<Scalars['ID']['output']>;\n bannerUrl?: Maybe<Scalars['String']['output']>;\n collectionType: Scalars['String']['output'];\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n curatedBy?: Maybe<Scalars['String']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n displayOrder: Scalars['Int']['output'];\n endsAt?: Maybe<Scalars['DateTime']['output']>;\n iconUrl?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n isActive: Scalars['Boolean']['output'];\n isFeatured: Scalars['Boolean']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n name: Scalars['String']['output'];\n slug: Scalars['String']['output'];\n startsAt?: Maybe<Scalars['DateTime']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type AppCollectionConnection = {\n __typename?: 'AppCollectionConnection';\n edges: Array<AppCollectionEdge>;\n pageInfo: PageInfo;\n totalCount: Scalars['Int']['output'];\n};\n\nexport type AppCollectionEdge = {\n __typename?: 'AppCollectionEdge';\n cursor: Scalars['String']['output'];\n node: AppCollection;\n};\n\nexport type AppConnection = {\n __typename?: 'AppConnection';\n apps: Array<App>;\n hasMore: Scalars['Boolean']['output'];\n totalCount: Scalars['Int']['output'];\n};\n\nexport type AppCreateResponse = {\n __typename?: 'AppCreateResponse';\n app: App;\n clientSecret: Scalars['String']['output'];\n};\n\nexport type AppInstallation = {\n __typename?: 'AppInstallation';\n activatedAt?: Maybe<Scalars['DateTime']['output']>;\n apiCallsCount: Scalars['String']['output'];\n application: Application;\n applicationId: Scalars['ID']['output'];\n autoUpdate: Scalars['Boolean']['output'];\n config?: Maybe<Scalars['JSON']['output']>;\n consentedAt?: Maybe<Scalars['DateTime']['output']>;\n consentedPermissions: Array<Scalars['String']['output']>;\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n currentVersion: Scalars['String']['output'];\n delegationId?: Maybe<Scalars['ID']['output']>;\n id: Scalars['ID']['output'];\n installedAt: Scalars['DateTime']['output'];\n installedBy: Scalars['ID']['output'];\n installedVersion: Scalars['String']['output'];\n integrationConnectionId?: Maybe<Scalars['ID']['output']>;\n isTrialActive: Scalars['Boolean']['output'];\n lastUpdatedAt?: Maybe<Scalars['DateTime']['output']>;\n lastUsedAt?: Maybe<Scalars['DateTime']['output']>;\n licenseKey?: Maybe<Scalars['String']['output']>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n oauthClientId?: Maybe<Scalars['ID']['output']>;\n oauthTokenId?: Maybe<Scalars['ID']['output']>;\n organizationId?: Maybe<Scalars['ID']['output']>;\n saleId?: Maybe<Scalars['ID']['output']>;\n scope: InstallationScope;\n status: InstallationStatus;\n statusReason?: Maybe<Scalars['String']['output']>;\n subscriptionId?: Maybe<Scalars['ID']['output']>;\n suspendedAt?: Maybe<Scalars['DateTime']['output']>;\n tenantId: Scalars['ID']['output'];\n trialExpiresAt?: Maybe<Scalars['DateTime']['output']>;\n trialStartedAt?: Maybe<Scalars['DateTime']['output']>;\n uninstallFeedback?: Maybe<Scalars['String']['output']>;\n uninstallReason?: Maybe<Scalars['String']['output']>;\n uninstalledAt?: Maybe<Scalars['DateTime']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n usageCount: Scalars['Int']['output'];\n userId?: Maybe<Scalars['ID']['output']>;\n workspaceId?: Maybe<Scalars['ID']['output']>;\n};\n\nexport type AppInstallationConnection = {\n __typename?: 'AppInstallationConnection';\n edges: Array<AppInstallationEdge>;\n pageInfo: PageInfo;\n totalCount: Scalars['Int']['output'];\n};\n\nexport type AppInstallationEdge = {\n __typename?: 'AppInstallationEdge';\n cursor: Scalars['String']['output'];\n node: AppInstallation;\n};\n\n/** App Installation - tracks where an application is installed */\nexport type AppLicense = {\n __typename?: 'AppLicense';\n applicationId: Scalars['ID']['output'];\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n updatedAt: Scalars['DateTime']['output'];\n workspaceCap?: Maybe<Scalars['Int']['output']>;\n};\n\n/** Returned by initiateAppOAuth — contains the URL to redirect the user to so they can authorize the app on the developer's OAuth page. */\nexport type AppOAuthInitiation = {\n __typename?: 'AppOAuthInitiation';\n connectionId: Scalars['String']['output'];\n installationId: Scalars['String']['output'];\n redirectUrl: Scalars['String']['output'];\n state: Scalars['String']['output'];\n};\n\nexport enum AppOwnerStatus {\n Active = 'ACTIVE',\n Inactive = 'INACTIVE'\n}\n\n/** App rating distribution breakdown */\nexport type AppRatingDistribution = {\n __typename?: 'AppRatingDistribution';\n fiveStar: Scalars['Int']['output'];\n fourStar: Scalars['Int']['output'];\n oneStar: Scalars['Int']['output'];\n threeStar: Scalars['Int']['output'];\n twoStar: Scalars['Int']['output'];\n};\n\n/** Per-app revenue summary */\nexport type AppRevenueSummary = {\n __typename?: 'AppRevenueSummary';\n applicationId: Scalars['ID']['output'];\n applicationName: Scalars['String']['output'];\n grossRevenue: Scalars['Float']['output'];\n netRevenue: Scalars['Float']['output'];\n salesCount: Scalars['Int']['output'];\n};\n\n/** App Review - user review and rating for an application */\nexport type AppReview = {\n __typename?: 'AppReview';\n appVersion?: Maybe<Scalars['String']['output']>;\n application: Application;\n applicationId: Scalars['ID']['output'];\n body?: Maybe<Scalars['String']['output']>;\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n developerResponse?: Maybe<Scalars['String']['output']>;\n editCount: Scalars['Int']['output'];\n editedAt?: Maybe<Scalars['DateTime']['output']>;\n featuredAt?: Maybe<Scalars['DateTime']['output']>;\n helpfulCount: Scalars['Int']['output'];\n id: Scalars['ID']['output'];\n installationId?: Maybe<Scalars['ID']['output']>;\n isEdited: Scalars['Boolean']['output'];\n isFeatured: Scalars['Boolean']['output'];\n isVerifiedInstall: Scalars['Boolean']['output'];\n isVerifiedPurchase: Scalars['Boolean']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n moderatedAt?: Maybe<Scalars['DateTime']['output']>;\n moderatedBy?: Maybe<Scalars['ID']['output']>;\n moderationNote?: Maybe<Scalars['String']['output']>;\n notHelpfulCount: Scalars['Int']['output'];\n rating: Scalars['Int']['output'];\n rejectionReason?: Maybe<Scalars['String']['output']>;\n reportCount: Scalars['Int']['output'];\n respondedAt?: Maybe<Scalars['DateTime']['output']>;\n respondedBy?: Maybe<Scalars['ID']['output']>;\n status: AppReviewStatus;\n tenantId?: Maybe<Scalars['ID']['output']>;\n title?: Maybe<Scalars['String']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n userId: Scalars['ID']['output'];\n};\n\nexport type AppReviewConnection = {\n __typename?: 'AppReviewConnection';\n edges: Array<AppReviewEdge>;\n pageInfo: PageInfo;\n totalCount: Scalars['Int']['output'];\n};\n\nexport type AppReviewEdge = {\n __typename?: 'AppReviewEdge';\n cursor: Scalars['String']['output'];\n node: AppReview;\n};\n\n/** App Review Report - abuse reporting */\nexport type AppReviewReport = {\n __typename?: 'AppReviewReport';\n actionTaken?: Maybe<Scalars['String']['output']>;\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n details?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n reason: Scalars['String']['output'];\n reportedBy: Scalars['ID']['output'];\n reviewId: Scalars['ID']['output'];\n reviewedAt?: Maybe<Scalars['DateTime']['output']>;\n reviewedBy?: Maybe<Scalars['ID']['output']>;\n status: Scalars['String']['output'];\n};\n\nexport enum AppReviewStatus {\n Approved = 'APPROVED',\n Flagged = 'FLAGGED',\n Hidden = 'HIDDEN',\n Pending = 'PENDING',\n Rejected = 'REJECTED'\n}\n\n/** App Review Vote - helpful/not helpful voting */\nexport type AppReviewVote = {\n __typename?: 'AppReviewVote';\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n isHelpful: Scalars['Boolean']['output'];\n reviewId: Scalars['ID']['output'];\n userId: Scalars['ID']['output'];\n};\n\nexport enum AppStatus {\n Active = 'ACTIVE',\n Approved = 'APPROVED',\n Deprecated = 'DEPRECATED',\n Draft = 'DRAFT',\n Inactive = 'INACTIVE',\n InReview = 'IN_REVIEW',\n Published = 'PUBLISHED',\n Rejected = 'REJECTED',\n Revoked = 'REVOKED',\n Submitted = 'SUBMITTED',\n Suspended = 'SUSPENDED',\n Unlisted = 'UNLISTED'\n}\n\nexport enum AppSubmissionReviewStatus {\n Approved = 'APPROVED',\n ChangesRequested = 'CHANGES_REQUESTED',\n InProgress = 'IN_PROGRESS',\n Pending = 'PENDING',\n Rejected = 'REJECTED'\n}\n\nexport type AppTokenResponse = {\n __typename?: 'AppTokenResponse';\n accessToken: Scalars['String']['output'];\n expiresIn: Scalars['Int']['output'];\n scopes: Array<Scalars['String']['output']>;\n tokenType: Scalars['String']['output'];\n};\n\nexport enum AppType {\n Analyst = 'ANALYST',\n ApiIntegration = 'API_INTEGRATION',\n Assistant = 'ASSISTANT',\n Automation = 'AUTOMATION',\n Bot = 'BOT',\n CliTool = 'CLI_TOOL',\n Console = 'CONSOLE',\n Dashboard = 'DASHBOARD',\n Datasink = 'DATASINK',\n DesktopApp = 'DESKTOP_APP',\n Integration = 'INTEGRATION',\n MobileApp = 'MOBILE_APP',\n Node = 'NODE',\n Parser = 'PARSER',\n Service = 'SERVICE',\n Specialist = 'SPECIALIST',\n Vibemodule = 'VIBEMODULE',\n WebApp = 'WEB_APP',\n Widget = 'WIDGET',\n Workflow = 'WORKFLOW'\n}\n\nexport type AppUserDelegation = {\n __typename?: 'AppUserDelegation';\n app: App;\n appId: Scalars['String']['output'];\n expiresAt?: Maybe<Scalars['DateTime']['output']>;\n grantedAt: Scalars['DateTime']['output'];\n grantedBy: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n revokedAt?: Maybe<Scalars['DateTime']['output']>;\n revokedBy?: Maybe<Scalars['String']['output']>;\n scopes: Array<Scalars['String']['output']>;\n status: DelegationStatus;\n userId: Scalars['String']['output'];\n workspaceIds: Array<Scalars['String']['output']>;\n};\n\nexport type AppUserDelegationConnection = {\n __typename?: 'AppUserDelegationConnection';\n delegations: Array<AppUserDelegation>;\n hasMore: Scalars['Boolean']['output'];\n totalCount: Scalars['Int']['output'];\n};\n\nexport enum AppVisibility {\n Internal = 'INTERNAL',\n Private = 'PRIVATE',\n Public = 'PUBLIC',\n Unlisted = 'UNLISTED'\n}\n\nexport enum AppWorkspaceAuthStatus {\n Active = 'ACTIVE',\n Revoked = 'REVOKED'\n}\n\nexport type AppWorkspaceAuthorization = {\n __typename?: 'AppWorkspaceAuthorization';\n appId: Scalars['ID']['output'];\n createdAt: Scalars['DateTime']['output'];\n grantedAt: Scalars['DateTime']['output'];\n grantedBy: Scalars['ID']['output'];\n id: Scalars['ID']['output'];\n revokedAt?: Maybe<Scalars['DateTime']['output']>;\n revokedBy?: Maybe<Scalars['ID']['output']>;\n revokedReason?: Maybe<Scalars['String']['output']>;\n scopes: Array<Scalars['String']['output']>;\n status: AppWorkspaceAuthStatus;\n tenantId: Scalars['ID']['output'];\n updatedAt: Scalars['DateTime']['output'];\n workspaceId: Scalars['ID']['output'];\n};\n\n/** Application type - represents a developer application or integration */\nexport type Application = {\n __typename?: 'Application';\n activeInstallCount: Scalars['Int']['output'];\n analytics: Array<ApplicationAnalytics>;\n appId?: Maybe<Scalars['ID']['output']>;\n appType: AppType;\n averageRating?: Maybe<Scalars['Float']['output']>;\n bannerUrl?: Maybe<Scalars['String']['output']>;\n category?: Maybe<Scalars['String']['output']>;\n config?: Maybe<Scalars['JSON']['output']>;\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n description?: Maybe<Scalars['String']['output']>;\n developerId: Scalars['ID']['output'];\n developerOrganization?: Maybe<DeveloperOrganization>;\n developerOrganizationId?: Maybe<Scalars['ID']['output']>;\n documentationUrl?: Maybe<Scalars['String']['output']>;\n githubUrl?: Maybe<Scalars['String']['output']>;\n iconUrl?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n installCount: Scalars['Int']['output'];\n installations: Array<AppInstallation>;\n integrationProviderId?: Maybe<Scalars['ID']['output']>;\n isFeatured: Scalars['Boolean']['output'];\n isVerified: Scalars['Boolean']['output'];\n keywords: Array<Scalars['String']['output']>;\n lastReviewedAt?: Maybe<Scalars['DateTime']['output']>;\n manifest?: Maybe<Scalars['JSON']['output']>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n name: Scalars['String']['output'];\n oauthAuthUrl?: Maybe<Scalars['String']['output']>;\n oauthRevokeUrl?: Maybe<Scalars['String']['output']>;\n oauthTokenUrl?: Maybe<Scalars['String']['output']>;\n pricingDetails?: Maybe<Scalars['JSON']['output']>;\n pricingType?: Maybe<Scalars['String']['output']>;\n privacyPolicyUrl?: Maybe<Scalars['String']['output']>;\n publishedAt?: Maybe<Scalars['DateTime']['output']>;\n requiresApproval: Scalars['Boolean']['output'];\n reviewCount: Scalars['Int']['output'];\n reviewNotes?: Maybe<Scalars['String']['output']>;\n reviewStatus: AppSubmissionReviewStatus;\n reviewedBy?: Maybe<Scalars['ID']['output']>;\n reviews: Array<AppReview>;\n sales: Array<DeveloperOrgSale>;\n scopes: Array<ApplicationScope>;\n screenshots?: Maybe<Scalars['JSON']['output']>;\n shortDescription?: Maybe<Scalars['String']['output']>;\n /** 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. */\n signingSecret?: Maybe<Scalars['String']['output']>;\n slug: Scalars['String']['output'];\n status: AppStatus;\n submittedAt?: Maybe<Scalars['DateTime']['output']>;\n supportUrl?: Maybe<Scalars['String']['output']>;\n /** Structured tag assignments via wspace-tags-svc. Resource type: APPLICATION. */\n tagAssignments: Array<ApplicationTagAssignment>;\n /** Free-text tag list for application discovery. */\n tags: Array<Scalars['String']['output']>;\n tenantId: Scalars['ID']['output'];\n termsOfServiceUrl?: Maybe<Scalars['String']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n versions: ApplicationVersionConnection;\n videoUrl?: Maybe<Scalars['String']['output']>;\n visibility: AppVisibility;\n webhooks: Array<Webhook>;\n websiteUrl?: Maybe<Scalars['String']['output']>;\n};\n\n\n/** Application type - represents a developer application or integration */\nexport type ApplicationVersionsArgs = {\n after?: InputMaybe<Scalars['String']['input']>;\n before?: InputMaybe<Scalars['String']['input']>;\n first?: InputMaybe<Scalars['Int']['input']>;\n last?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type ApplicationAnalytics = {\n __typename?: 'ApplicationAnalytics';\n activeUsers: Scalars['Int']['output'];\n apiCalls: Scalars['Int']['output'];\n application: Application;\n applicationId: Scalars['ID']['output'];\n avgResponseTime?: Maybe<Scalars['Float']['output']>;\n avgSessionDuration?: Maybe<Scalars['Float']['output']>;\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n date: Scalars['DateTime']['output'];\n errors: Scalars['Int']['output'];\n id: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n newUsers: Scalars['Int']['output'];\n period: Scalars['String']['output'];\n sessions: Scalars['Int']['output'];\n};\n\nexport type ApplicationConnection = {\n __typename?: 'ApplicationConnection';\n edges: Array<ApplicationEdge>;\n pageInfo: PageInfo;\n totalCount: Scalars['Int']['output'];\n};\n\nexport type ApplicationEdge = {\n __typename?: 'ApplicationEdge';\n cursor: Scalars['String']['output'];\n node: Application;\n};\n\nexport type ApplicationScope = {\n __typename?: 'ApplicationScope';\n application: Application;\n applicationId: Scalars['ID']['output'];\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n description?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n isRequired: Scalars['Boolean']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n scope: Scalars['String']['output'];\n};\n\n/** Status update payload from the store when a product is approved or rejected. */\nexport type ApplicationStoreStatus = {\n __typename?: 'ApplicationStoreStatus';\n applicationId: Scalars['ID']['output'];\n rejectedReason?: Maybe<Scalars['String']['output']>;\n reviewNotes?: Maybe<Scalars['String']['output']>;\n status: Scalars['String']['output'];\n storeProductId: Scalars['ID']['output'];\n updatedAt: Scalars['DateTime']['output'];\n};\n\n/** Tag assignment binding a UniversalTag to an Application. Mirrors the universal tag-assignment shape from wspace-tags-svc.UniversalTagAssignment. */\nexport type ApplicationTagAssignment = {\n __typename?: 'ApplicationTagAssignment';\n assignedAt?: Maybe<Scalars['DateTime']['output']>;\n assignedBy?: Maybe<Scalars['ID']['output']>;\n /** The Application id this assignment is bound to. */\n entityId: Scalars['ID']['output'];\n /** Always \"APPLICATION\" for this assignment family. */\n entityType: Scalars['String']['output'];\n /** Stable assignment id (issued by tags-svc). */\n id: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n /** One of MANUAL | AUTOMATIC | SYSTEM | MIGRATED. */\n source: Scalars['String']['output'];\n tag?: Maybe<UniversalTag>;\n /** ID of the UniversalTag (resolved via federation). */\n tagId: Scalars['ID']['output'];\n validFrom?: Maybe<Scalars['DateTime']['output']>;\n validTo?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type ApplicationVersion = {\n __typename?: 'ApplicationVersion';\n application: Application;\n applicationId: Scalars['ID']['output'];\n changelog?: Maybe<Scalars['String']['output']>;\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n deprecatedAt?: Maybe<Scalars['DateTime']['output']>;\n id: Scalars['ID']['output'];\n isLatest: Scalars['Boolean']['output'];\n isStable: Scalars['Boolean']['output'];\n manifest?: Maybe<Scalars['JSON']['output']>;\n maxPlatformVersion?: Maybe<Scalars['String']['output']>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n minPlatformVersion?: Maybe<Scalars['String']['output']>;\n packageHash?: Maybe<Scalars['String']['output']>;\n packageSize?: Maybe<Scalars['String']['output']>;\n packageUrl?: Maybe<Scalars['String']['output']>;\n publishedAt?: Maybe<Scalars['DateTime']['output']>;\n releaseNotes?: Maybe<Scalars['String']['output']>;\n requiredScopes: Array<Scalars['String']['output']>;\n reviewNotes?: Maybe<Scalars['String']['output']>;\n /** Lifecycle: draft → pending_review → published | rejected → deprecated Only platform admins can approve/reject; approved versions are immutable. */\n status: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n version: Scalars['String']['output'];\n};\n\nexport type ApplicationVersionConnection = {\n __typename?: 'ApplicationVersionConnection';\n edges: Array<ApplicationVersionEdge>;\n pageInfo: PageInfo;\n totalCount: Scalars['Int']['output'];\n};\n\nexport type ApplicationVersionEdge = {\n __typename?: 'ApplicationVersionEdge';\n cursor: Scalars['String']['output'];\n node: ApplicationVersion;\n};\n\nexport type ApproveWaitlistInput = {\n id: Scalars['ID']['input'];\n};\n\nexport enum ArticleStatus {\n Archived = 'ARCHIVED',\n Draft = 'DRAFT',\n Published = 'PUBLISHED',\n Review = 'REVIEW'\n}\n\n/** Result of assigning the Authenticated User role */\nexport type AssignAuthenticatedUserRoleResult = {\n __typename?: 'AssignAuthenticatedUserRoleResult';\n /** The assignment ID */\n assignmentId?: Maybe<Scalars['String']['output']>;\n /** Message describing the result */\n message: Scalars['String']['output'];\n /** The role ID that was assigned */\n roleId?: Maybe<Scalars['String']['output']>;\n /** Whether the operation was successful */\n success: Scalars['Boolean']['output'];\n};\n\nexport type AssignEntitlementSeatInput = {\n assigneeId: Scalars['String']['input'];\n entitlementId: Scalars['ID']['input'];\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n};\n\nexport type AssignInterviewersToRoundInput = {\n assignments: Array<InterviewRoundInterviewerAssignmentInput>;\n roundId: Scalars['ID']['input'];\n};\n\n/** Input for assigning a role to an actor */\nexport type AssignRoleInput = {\n actorId: Scalars['String']['input'];\n actorType: ActorType;\n expiresAt?: InputMaybe<Scalars['DateTime']['input']>;\n roleId: Scalars['ID']['input'];\n scopeId: Scalars['String']['input'];\n scopeResourceId?: InputMaybe<Scalars['String']['input']>;\n scopeResourceType?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type AssignSeatInput = {\n assigneeEmail?: InputMaybe<Scalars['String']['input']>;\n assigneeUserId: Scalars['String']['input'];\n entitlementId: Scalars['ID']['input'];\n role?: InputMaybe<LicenseSeatRole>;\n};\n\n/** 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). */\nexport type AssignedQuota = {\n __typename?: 'AssignedQuota';\n billingAccountId?: Maybe<Scalars['ID']['output']>;\n endtime?: Maybe<Scalars['DateTime']['output']>;\n id: Scalars['ID']['output'];\n limit?: Maybe<Scalars['Float']['output']>;\n quotaId: Scalars['ID']['output'];\n quotaName: Scalars['String']['output'];\n resetPeriod?: Maybe<QuotaResetPeriod>;\n scope: QuotaScope;\n workspaceId?: Maybe<Scalars['ID']['output']>;\n};\n\nexport type AttachMediaToStepInput = {\n /** Operation context for scoping (workspaceId, userId, productId, moduleId, etc.) */\n context?: InputMaybe<ContextInput>;\n mediaId: Scalars['ID']['input'];\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n position: MediaPosition;\n stepId: Scalars['ID']['input'];\n};\n\nexport type AuditLog = {\n __typename?: 'AuditLog';\n action: Scalars['String']['output'];\n actorId: Scalars['ID']['output'];\n actorType: Scalars['String']['output'];\n changes?: Maybe<Scalars['JSON']['output']>;\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n ipAddress?: Maybe<Scalars['String']['output']>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n resource: Scalars['String']['output'];\n resourceId?: Maybe<Scalars['ID']['output']>;\n tenantId: Scalars['ID']['output'];\n userAgent?: Maybe<Scalars['String']['output']>;\n};\n\nexport type AuditLogConnection = {\n __typename?: 'AuditLogConnection';\n edges: Array<AuditLogEdge>;\n pageInfo: PageInfo;\n totalCount: Scalars['Int']['output'];\n};\n\nexport type AuditLogEdge = {\n __typename?: 'AuditLogEdge';\n cursor: Scalars['String']['output'];\n node: AuditLog;\n};\n\n/** Filter for querying audit logs */\nexport type AuditLogFilterInput = {\n action?: InputMaybe<Scalars['String']['input']>;\n actorId?: InputMaybe<Scalars['String']['input']>;\n actorType?: InputMaybe<ActorType>;\n allowed?: InputMaybe<Scalars['Boolean']['input']>;\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n resourceType?: InputMaybe<Scalars['String']['input']>;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\n/** Authentication audit event visible to the current actor. */\nexport type AuthAuditLog = {\n __typename?: 'AuthAuditLog';\n action: Scalars['String']['output'];\n createdAt: Scalars['DateTime']['output'];\n description?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n ipAddress?: Maybe<Scalars['String']['output']>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n resource: Scalars['String']['output'];\n resourceId?: Maybe<Scalars['String']['output']>;\n resourceType?: Maybe<Scalars['String']['output']>;\n userAgent?: Maybe<Scalars['String']['output']>;\n};\n\n/** Paginated list of auth audit logs */\nexport type AuthAuditLogConnection = {\n __typename?: 'AuthAuditLogConnection';\n auditLogs: Array<AuthAuditLog>;\n hasMore: Scalars['Boolean']['output'];\n totalCount: Scalars['Int']['output'];\n};\n\nexport type AuthContext = {\n deviceId?: InputMaybe<Scalars['String']['input']>;\n ipAddress?: InputMaybe<Scalars['String']['input']>;\n userAgent?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type AuthEraseResult = {\n __typename?: 'AuthEraseResult';\n anonymised: Scalars['Int']['output'];\n dryRun: Scalars['Boolean']['output'];\n notes?: Maybe<Scalars['String']['output']>;\n purged: Scalars['Int']['output'];\n retainedForLegalReason?: Maybe<Scalars['String']['output']>;\n service: Scalars['String']['output'];\n};\n\nexport type AuthMethod = {\n __typename?: 'AuthMethod';\n enabled: Scalars['Boolean']['output'];\n name: Scalars['String']['output'];\n requiresMFA?: Maybe<Scalars['Boolean']['output']>;\n type: AuthType;\n};\n\nexport type AuthMethodConfig = {\n __typename?: 'AuthMethodConfig';\n config?: Maybe<Scalars['JSON']['output']>;\n enabled: Scalars['Boolean']['output'];\n type: AuthType;\n};\n\nexport type AuthMethodConfigInput = {\n magicLinkExpiry?: InputMaybe<Scalars['Int']['input']>;\n mfaMethod?: InputMaybe<MfaMethod>;\n mfaRequired?: InputMaybe<Scalars['Boolean']['input']>;\n oauthClientId?: InputMaybe<Scalars['String']['input']>;\n oauthClientSecret?: InputMaybe<Scalars['String']['input']>;\n oauthRedirectUri?: InputMaybe<Scalars['String']['input']>;\n oidcClientId?: InputMaybe<Scalars['String']['input']>;\n oidcClientSecret?: InputMaybe<Scalars['String']['input']>;\n oidcIssuer?: InputMaybe<Scalars['String']['input']>;\n samlCertificate?: InputMaybe<Scalars['String']['input']>;\n samlEntityId?: InputMaybe<Scalars['String']['input']>;\n samlSsoUrl?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Authentication response with optional MFA challenge support When requiresMFA is true, user/tokens will be null until MFA verification */\nexport type AuthPayload = {\n __typename?: 'AuthPayload';\n accessToken?: Maybe<Scalars['String']['output']>;\n expiresIn?: Maybe<Scalars['Int']['output']>;\n mfaChallengeId?: Maybe<Scalars['String']['output']>;\n mfaMethod?: Maybe<MfaMethod>;\n refreshToken?: Maybe<Scalars['String']['output']>;\n requiresMFA?: Maybe<Scalars['Boolean']['output']>;\n user?: Maybe<User>;\n};\n\nexport type AuthResult = {\n __typename?: 'AuthResult';\n error?: Maybe<Scalars['String']['output']>;\n expiresIn?: Maybe<Scalars['Int']['output']>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n mfaChallengeId?: Maybe<Scalars['String']['output']>;\n refreshToken?: Maybe<Scalars['String']['output']>;\n requiresMFA?: Maybe<Scalars['Boolean']['output']>;\n sessionId?: Maybe<Scalars['String']['output']>;\n success: Scalars['Boolean']['output'];\n token?: Maybe<Scalars['String']['output']>;\n user?: Maybe<User>;\n};\n\nexport type AuthStrategyHealth = {\n __typename?: 'AuthStrategyHealth';\n healthy: Scalars['Boolean']['output'];\n name: Scalars['String']['output'];\n type: AuthType;\n};\n\nexport enum AuthType {\n ApiKey = 'API_KEY',\n Jwt = 'JWT',\n MagicLink = 'MAGIC_LINK',\n Mfa = 'MFA',\n Oauth = 'OAUTH',\n Oidc = 'OIDC',\n Saml = 'SAML'\n}\n\nexport type AuthenticateAppInput = {\n clientId: Scalars['String']['input'];\n clientSecret: Scalars['String']['input'];\n scopes?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\nexport type AuthenticateInput = {\n credentials: Scalars['JSON']['input'];\n type: AuthType;\n};\n\nexport enum AutomationStatus {\n Active = 'ACTIVE',\n Completed = 'COMPLETED',\n Exited = 'EXITED',\n Paused = 'PAUSED'\n}\n\nexport type AutomationStep = {\n __typename?: 'AutomationStep';\n automationId: Scalars['String']['output'];\n config: Scalars['JSON']['output'];\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n stepNumber: Scalars['Int']['output'];\n stepType: AutomationStepType;\n};\n\nexport enum AutomationStepType {\n AddToList = 'ADD_TO_LIST',\n Condition = 'CONDITION',\n RemoveFromList = 'REMOVE_FROM_LIST',\n SendEmail = 'SEND_EMAIL',\n UpdateField = 'UPDATE_FIELD',\n Wait = 'WAIT'\n}\n\nexport type AutomationSubscriber = {\n __typename?: 'AutomationSubscriber';\n automationId: Scalars['String']['output'];\n completedAt?: Maybe<Scalars['DateTime']['output']>;\n currentStep: Scalars['Int']['output'];\n enteredAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n lastProcessedAt?: Maybe<Scalars['DateTime']['output']>;\n status: AutomationStatus;\n subscriberId: Scalars['String']['output'];\n};\n\nexport enum BackoffStrategy {\n Exponential = 'EXPONENTIAL',\n ExponentialWithJitter = 'EXPONENTIAL_WITH_JITTER',\n Fixed = 'FIXED',\n Linear = 'LINEAR'\n}\n\nexport type BatchNotificationResult = {\n __typename?: 'BatchNotificationResult';\n batchId: Scalars['String']['output'];\n results: Scalars['JSON']['output'];\n totalFailed: Scalars['Int']['output'];\n totalRequested: Scalars['Int']['output'];\n totalTriggered: Scalars['Int']['output'];\n};\n\nexport type BatchOperationResult = {\n __typename?: 'BatchOperationResult';\n count: Scalars['Int']['output'];\n failedIds?: Maybe<Array<Scalars['ID']['output']>>;\n success: Scalars['Boolean']['output'];\n};\n\n/** BillingAccount entity - resolvable via Federation Gateway. Other services (e.g., store-svc) can reference BillingAccount by id. */\nexport type BillingAccount = {\n __typename?: 'BillingAccount';\n /** The billing addresses associated with this billing account */\n billingAddresses?: Maybe<Array<Maybe<BillingAddress>>>;\n /** Billing-specific email (for invoices) */\n billingEmail?: Maybe<Scalars['String']['output']>;\n /** Contact phone number for the billing account */\n contactNumber?: Maybe<Scalars['String']['output']>;\n /** Additional context */\n context?: Maybe<Scalars['JSON']['output']>;\n /** When the billing account was created */\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n /** Credits available in the billing account */\n creditAmount?: Maybe<Scalars['Float']['output']>;\n /** The credit transactions for this billing account */\n creditTransactions?: Maybe<Array<Maybe<CreditTransaction>>>;\n /** Default currency for the account */\n currency?: Maybe<Scalars['String']['output']>;\n /** Default payment method ID */\n defaultPaymentMethod?: Maybe<Scalars['String']['output']>;\n /** Contact email for the billing account */\n email?: Maybe<Scalars['String']['output']>;\n /** The unique identifier for the BillingAccount */\n id?: Maybe<Scalars['ID']['output']>;\n /** Whether the billing account is active */\n isActive?: Maybe<Scalars['Boolean']['output']>;\n /** Whether this is the default billing account for the org (only one per org) */\n isDefault?: Maybe<Scalars['Boolean']['output']>;\n /** Additional metadata */\n metadata?: Maybe<Scalars['JSON']['output']>;\n /** The name of the billing account */\n name?: Maybe<Scalars['String']['output']>;\n /** The org ID this billing account belongs to */\n orgId?: Maybe<Scalars['String']['output']>;\n /** The payment methods associated with this billing account */\n paymentMethods?: Maybe<Array<Maybe<PaymentMethod>>>;\n /** The quota assignments for this billing account (pooled quotas) */\n quotaAssignments?: Maybe<Array<Maybe<QuotaAssignment>>>;\n /** Razorpay customer ID */\n razorpayCustomerId?: Maybe<Scalars['String']['output']>;\n /** Stripe customer ID */\n stripeCustomerId?: Maybe<Scalars['String']['output']>;\n /** The subscriptions associated with this billing account */\n subscriptions?: Maybe<Array<Maybe<BillingSubscription>>>;\n /** Tax ID / VAT number */\n taxId?: Maybe<Scalars['String']['output']>;\n /** The transactions associated with this billing account */\n transactions?: Maybe<Array<Maybe<Transaction>>>;\n /** When the billing account was last updated */\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\n/** Complete usage summary for a billing account */\nexport type BillingAccountQuotasSummary = {\n __typename?: 'BillingAccountQuotasSummary';\n billingAccountId: Scalars['ID']['output'];\n /** Pooled quotas (POOLED) - shared across all subscriptions */\n pooledQuotas: Array<QuotaAssignmentUsageSummary>;\n /** Subscription quotas (PRODUCT_SPECIFIC) */\n subscriptionQuotas: Array<QuotaAssignmentUsageSummary>;\n /** Total limit across all quotas */\n totalLimit: Scalars['Float']['output'];\n /** Total usage across all quotas */\n totalUsage: Scalars['Float']['output'];\n};\n\nexport type BillingAddress = {\n __typename?: 'BillingAddress';\n billingAccount?: Maybe<BillingAccount>;\n billingAccountId?: Maybe<Scalars['String']['output']>;\n city: Scalars['String']['output'];\n context?: Maybe<Scalars['JSON']['output']>;\n country: Scalars['String']['output'];\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n line1: Scalars['String']['output'];\n line2?: Maybe<Scalars['String']['output']>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n orgId: Scalars['String']['output'];\n postalCode: Scalars['String']['output'];\n state?: Maybe<Scalars['String']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type BillingDiscount = {\n __typename?: 'BillingDiscount';\n code: Scalars['String']['output'];\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n currency?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n maxUses?: Maybe<Scalars['Int']['output']>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n transactions: Array<Transaction>;\n type: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n usedCount: Scalars['Int']['output'];\n validFrom: Scalars['DateTime']['output'];\n validUntil?: Maybe<Scalars['DateTime']['output']>;\n value: Scalars['Float']['output'];\n};\n\nexport enum BillingInterval {\n Monthly = 'MONTHLY',\n Quarterly = 'QUARTERLY',\n Yearly = 'YEARLY'\n}\n\nexport type BillingNotification = {\n __typename?: 'BillingNotification';\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n message: Scalars['String']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n orgId: Scalars['String']['output'];\n sentAt?: Maybe<Scalars['DateTime']['output']>;\n type: Scalars['String']['output'];\n};\n\nexport type BillingOrder = {\n __typename?: 'BillingOrder';\n billingAccountId?: Maybe<Scalars['String']['output']>;\n callbackAttempts?: Maybe<Scalars['Int']['output']>;\n callbackLastAttemptAt?: Maybe<Scalars['DateTime']['output']>;\n callbackLastError?: Maybe<Scalars['String']['output']>;\n /** Callback status tracking for manual retry/monitoring */\n callbackStatus?: Maybe<Scalars['String']['output']>;\n createdAt: Scalars['DateTime']['output'];\n currency: Scalars['String']['output'];\n description?: Maybe<Scalars['String']['output']>;\n expiresAt?: Maybe<Scalars['DateTime']['output']>;\n externalService: Scalars['String']['output'];\n /** External order ID from the service (e.g., \"store-order-12345\") */\n id: Scalars['ID']['output'];\n items: Scalars['JSON']['output'];\n /** 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 */\n metadata?: Maybe<Scalars['JSON']['output']>;\n orgId: Scalars['String']['output'];\n /** The Payment/Transaction this order was paid with, once payment completes — cross-reference into the payment record while debugging a stuck callback. */\n paymentId?: Maybe<Scalars['String']['output']>;\n status: BillingOrderStatus;\n subtotal: Scalars['Float']['output'];\n transactionId?: Maybe<Scalars['String']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type BillingOrderCallbacksPage = {\n __typename?: 'BillingOrderCallbacksPage';\n orders: Array<BillingOrder>;\n totalCount: Scalars['Int']['output'];\n};\n\nexport type BillingOrderItemInput = {\n description?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name: Scalars['String']['input'];\n quantity: Scalars['Int']['input'];\n recurringBillingPlanId?: InputMaybe<Scalars['String']['input']>;\n unitPrice: Scalars['Float']['input'];\n};\n\nexport enum BillingOrderStatus {\n Canceled = 'CANCELED',\n Completed = 'COMPLETED',\n Created = 'CREATED',\n Expired = 'EXPIRED',\n Failed = 'FAILED',\n PaymentPending = 'PAYMENT_PENDING'\n}\n\nexport type BillingPaginationInput = {\n /** Cursor for cursor-based pagination */\n cursor?: InputMaybe<Scalars['String']['input']>;\n /** Maximum number of items to return */\n limit?: InputMaybe<Scalars['Int']['input']>;\n /** Number of items to skip */\n offset?: InputMaybe<Scalars['Int']['input']>;\n /** Page number for offset-based pagination */\n page?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type BillingSubscription = {\n __typename?: 'BillingSubscription';\n /** 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. */\n activatedWorkspaceIds: Array<Scalars['ID']['output']>;\n addonSubscriptions: Array<AddonSubscription>;\n assignedWorkspaceId?: Maybe<Scalars['ID']['output']>;\n autoRenewal?: Maybe<Scalars['Boolean']['output']>;\n billingAccount?: Maybe<BillingAccount>;\n billingAccountId: Scalars['ID']['output'];\n bonusRenewalsGranted: Scalars['Int']['output'];\n bonusRenewalsRemaining: Scalars['Int']['output'];\n canceledAt?: Maybe<Scalars['DateTime']['output']>;\n canceledBy?: Maybe<Scalars['String']['output']>;\n cancellationReason?: Maybe<Scalars['String']['output']>;\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n endDate: Scalars['DateTime']['output'];\n history: Array<SubscriptionHistory>;\n id: Scalars['ID']['output'];\n lastBillingDate?: Maybe<Scalars['DateTime']['output']>;\n lastRenewalDate?: Maybe<Scalars['DateTime']['output']>;\n lastSeatChangeAt?: Maybe<Scalars['DateTime']['output']>;\n nextBillingDate?: Maybe<Scalars['DateTime']['output']>;\n paymentGateway?: Maybe<Scalars['String']['output']>;\n plan?: Maybe<Plan>;\n planId: Scalars['ID']['output'];\n promotionId?: Maybe<Scalars['String']['output']>;\n quotas: Array<QuotaAssignment>;\n razorpaySubscriptionId?: Maybe<Scalars['String']['output']>;\n recurrence: Scalars['Boolean']['output'];\n seatCount?: Maybe<Scalars['Int']['output']>;\n startDate: Scalars['DateTime']['output'];\n status: SubscriptionStatus;\n stripeSubscriptionId?: Maybe<Scalars['String']['output']>;\n transactions: Array<Transaction>;\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type BillingWebhookLog = {\n __typename?: 'BillingWebhookLog';\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n error?: Maybe<Scalars['String']['output']>;\n event: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n payload: Scalars['JSON']['output'];\n processed: Scalars['Boolean']['output'];\n provider: Scalars['String']['output'];\n};\n\n/** 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. */\nexport type BillingWebhookLogsPage = {\n __typename?: 'BillingWebhookLogsPage';\n logs: Array<BillingWebhookLog>;\n totalCount: Scalars['Int']['output'];\n};\n\nexport type BounceStats = {\n __typename?: 'BounceStats';\n bounceRate: Scalars['Float']['output'];\n hardBounces: Scalars['Int']['output'];\n softBounces: Scalars['Int']['output'];\n totalBounces: Scalars['Int']['output'];\n};\n\nexport enum BounceType {\n Complaint = 'COMPLAINT',\n Hard = 'HARD',\n Soft = 'SOFT'\n}\n\n/** Comprehensive browse input combining filters, sorting, and pagination */\nexport type BrowseStoreInput = {\n /** All filters (search is a filter too - all combine with AND logic) */\n filter?: InputMaybe<StoreFilterInput>;\n /** Pagination options */\n pagination?: InputMaybe<StorePaginationInput>;\n /** Sort order (defaults to RELEVANCE when search is provided, NEWEST otherwise) */\n sortBy?: InputMaybe<StoreSortBy>;\n};\n\n/** Result type for paginated store browsing */\nexport type BrowseStoreResult = {\n __typename?: 'BrowseStoreResult';\n /** Available filter facets based on current results */\n facets?: Maybe<StoreFacets>;\n /** Whether there are more results after this page */\n hasMore: Scalars['Boolean']['output'];\n /** Cursor for next page (for cursor-based pagination) */\n nextCursor?: Maybe<Scalars['String']['output']>;\n /** List of products matching the filters */\n products: Array<StoreProduct>;\n /** Total count of matching products (for pagination UI) */\n totalCount: Scalars['Int']['output'];\n};\n\nexport type BulkAssignmentSendItemInput = {\n applicationId: Scalars['ID']['input'];\n roundId: Scalars['ID']['input'];\n};\n\n/** Input for delivering the same notification to multiple recipients */\nexport type BulkChannelDeliveryInput = {\n /** Channel connection ID to use (optional - uses default if not provided) */\n connectionId?: InputMaybe<Scalars['ID']['input']>;\n /** Notification content (same for all recipients) */\n content: ChannelDeliveryContentInput;\n /** Optional reference to originating notification in notification-svc */\n notificationId?: InputMaybe<Scalars['ID']['input']>;\n /** Delivery options (priority, scheduling, retry policy) */\n options?: InputMaybe<ChannelDeliveryOptionsInput>;\n /** Organization ID for multi-tenancy */\n organizationId: Scalars['ID']['input'];\n /** Target delivery platform (EMAIL, SMS, PUSH, SLACK, TEAMS, etc.) */\n platform: ChannelPlatform;\n /** List of recipient identifiers (same format as single delivery) */\n recipients: Array<Scalars['String']['input']>;\n};\n\n/** Result of bulk notification delivery */\nexport type BulkChannelDeliveryResult = {\n __typename?: 'BulkChannelDeliveryResult';\n /** Number of failed deliveries */\n failedCount: Scalars['Int']['output'];\n /** Individual results for each recipient */\n results: Array<ChannelDeliveryResult>;\n /** Number of successful deliveries */\n successCount: Scalars['Int']['output'];\n /** Total number of recipients in the batch */\n totalCount: Scalars['Int']['output'];\n};\n\n/** An application that failed during the bulk custom-email mutation. */\nexport type BulkCustomEmailFailed = {\n __typename?: 'BulkCustomEmailFailed';\n applicationId: Scalars['ID']['output'];\n message: Scalars['String']['output'];\n};\n\n/** Outcome of bulkSendCustomEmail — every requested application lands in exactly one bucket. */\nexport type BulkCustomEmailResult = {\n __typename?: 'BulkCustomEmailResult';\n failed: Array<BulkCustomEmailFailed>;\n succeeded: Array<JobApplication>;\n};\n\n/** A requested application that cannot receive the configured interview round. */\nexport type BulkEnsureInterviewRoundFailed = {\n __typename?: 'BulkEnsureInterviewRoundFailed';\n applicationId: Scalars['ID']['output'];\n code: BulkEnsureInterviewRoundFailureCode;\n message: Scalars['String']['output'];\n};\n\n/** Stable per-application failure codes returned by bulkEnsureInterviewRounds. */\nexport enum BulkEnsureInterviewRoundFailureCode {\n ApplicationJobPostingMismatch = 'APPLICATION_JOB_POSTING_MISMATCH',\n ApplicationNotFound = 'APPLICATION_NOT_FOUND'\n}\n\n/** A configured interview round created or found for one requested application. */\nexport type BulkEnsureInterviewRoundItem = {\n __typename?: 'BulkEnsureInterviewRoundItem';\n applicationId: Scalars['ID']['output'];\n round: InterviewRound;\n};\n\nexport type BulkEnsureInterviewRoundsInput = {\n /** Between 1 and 100 unique application IDs. */\n applicationIds: Array<Scalars['ID']['input']>;\n context?: InputMaybe<Scalars['JSON']['input']>;\n jobPostingId: Scalars['ID']['input'];\n roundConfigId: Scalars['ID']['input'];\n};\n\n/** Outcome of ensuring one configured round per application; every requested ID appears in exactly one bucket. */\nexport type BulkEnsureInterviewRoundsResult = {\n __typename?: 'BulkEnsureInterviewRoundsResult';\n alreadyPresent: Array<BulkEnsureInterviewRoundItem>;\n created: Array<BulkEnsureInterviewRoundItem>;\n failed: Array<BulkEnsureInterviewRoundFailed>;\n};\n\nexport type BulkOperationError = {\n __typename?: 'BulkOperationError';\n error: Scalars['String']['output'];\n keyId?: Maybe<Scalars['String']['output']>;\n languageCode?: Maybe<Scalars['String']['output']>;\n};\n\nexport type BulkOperationFilter = {\n filter?: InputMaybe<JobFilterInput>;\n scheduleIds?: InputMaybe<Array<Scalars['ID']['input']>>;\n};\n\nexport type BulkOperationResult = {\n __typename?: 'BulkOperationResult';\n errors: Array<BulkOperationError>;\n failureCount: Scalars['Int']['output'];\n success: Scalars['Boolean']['output'];\n successCount: Scalars['Int']['output'];\n};\n\nexport type BulkRandomizeAndSendAssignmentInput = {\n /** Resend even to candidates already emailed an assignment for that round. Defaults to false. */\n force?: InputMaybe<Scalars['Boolean']['input']>;\n /** Between 1 and 100 unique application/round pairs. */\n items: Array<BulkAssignmentSendItemInput>;\n};\n\nexport type BulkRoundMessageItemInput = {\n applicationId: Scalars['ID']['input'];\n roundId: Scalars['ID']['input'];\n};\n\nexport type BulkSendCustomEmailInput = {\n /** Between 1 and 100 unique application IDs, from any status or round — not scoped to a shared interview round. */\n applicationIds: Array<Scalars['ID']['input']>;\n /** Rich-text HTML message body from the admin's editor; sanitized to an allowlist before it reaches the email. */\n message: Scalars['String']['input'];\n /** Email subject — sent as the actual email Subject line only, never repeated in the body. */\n subject: Scalars['String']['input'];\n};\n\n/** A candidate/round that failed during a bulk-send mutation. */\nexport type BulkSendFailed = {\n __typename?: 'BulkSendFailed';\n applicationId: Scalars['ID']['output'];\n message: Scalars['String']['output'];\n roundId: Scalars['ID']['output'];\n};\n\n/** Outcome of a bulk candidate-email mutation — every input item lands in exactly one bucket. */\nexport type BulkSendResult = {\n __typename?: 'BulkSendResult';\n failed: Array<BulkSendFailed>;\n skipped: Array<BulkSendSkipped>;\n succeeded: Array<InterviewRound>;\n};\n\nexport type BulkSendRoundMessageInput = {\n /** Resend even to candidates already messaged for that round. Defaults to false. */\n force?: InputMaybe<Scalars['Boolean']['input']>;\n /** Between 1 and 100 unique application/round pairs. */\n items: Array<BulkRoundMessageItemInput>;\n message: Scalars['String']['input'];\n};\n\nexport enum BulkSendSkipReason {\n AlreadySent = 'ALREADY_SENT',\n NotAssignmentRound = 'NOT_ASSIGNMENT_ROUND',\n NotDuplicate = 'NOT_DUPLICATE',\n NoActiveAssignments = 'NO_ACTIVE_ASSIGNMENTS'\n}\n\n/** A candidate/round skipped by a bulk-send mutation, with why. */\nexport type BulkSendSkipped = {\n __typename?: 'BulkSendSkipped';\n applicationId: Scalars['ID']['output'];\n message: Scalars['String']['output'];\n reason: BulkSendSkipReason;\n roundId: Scalars['ID']['output'];\n};\n\nexport type BulkSetUserFeatureFlagPreferenceInput = {\n enabled: Scalars['Boolean']['input'];\n featureFlagIds: Array<Scalars['String']['input']>;\n workspaceId: Scalars['String']['input'];\n};\n\nexport type BulkTranslationInput = {\n keyId: Scalars['String']['input'];\n languageCode: Scalars['String']['input'];\n pluralForms?: InputMaybe<Scalars['JSON']['input']>;\n value: Scalars['String']['input'];\n};\n\n/** A requested application ID that could not have its status updated. */\nexport type BulkUpdateApplicationStatusFailed = {\n __typename?: 'BulkUpdateApplicationStatusFailed';\n applicationId: Scalars['ID']['output'];\n message: Scalars['String']['output'];\n};\n\nexport type BulkUpdateApplicationStatusInput = {\n /** Between 1 and 100 unique application IDs, from any status or round. */\n applicationIds: Array<Scalars['ID']['input']>;\n status: JobApplicationStatus;\n};\n\n/** Outcome of bulkUpdateApplicationStatus — every requested ID lands in exactly one bucket. */\nexport type BulkUpdateApplicationStatusResult = {\n __typename?: 'BulkUpdateApplicationStatusResult';\n failed: Array<BulkUpdateApplicationStatusFailed>;\n succeeded: Array<JobApplication>;\n};\n\n/** Input for tax calculation preview */\nexport type CalculateTaxInput = {\n /** Amount in USD (base currency) */\n amount: Scalars['Float']['input'];\n /** Billing account ID (for billing address lookup) */\n billingAccountId: Scalars['ID']['input'];\n /** Target currency for display */\n currency: Scalars['String']['input'];\n};\n\n/** Input for canceling a subscription */\nexport type CancelSubscriptionInput = {\n /** The billing account ID that owns this subscription */\n billingAccountId: Scalars['ID']['input'];\n /** Optional user ID who initiated the cancellation */\n canceledBy?: InputMaybe<Scalars['String']['input']>;\n /** Optional reason for cancellation */\n reason?: InputMaybe<Scalars['String']['input']>;\n /** The subscription ID to cancel */\n subscriptionId: Scalars['ID']['input'];\n};\n\n/** A single outbound candidate email, kept for bulk-send dedup and audit trail. */\nexport type CandidateEmailLog = {\n __typename?: 'CandidateEmailLog';\n applicationId: Scalars['ID']['output'];\n emailType: CandidateEmailType;\n id: Scalars['ID']['output'];\n roundId?: Maybe<Scalars['ID']['output']>;\n sentAt: Scalars['DateTime']['output'];\n sentBy: Scalars['String']['output'];\n subject?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum CandidateEmailType {\n Assignment = 'ASSIGNMENT',\n BulkCustom = 'BULK_CUSTOM',\n DuplicateAssignmentNotice = 'DUPLICATE_ASSIGNMENT_NOTICE',\n Reply = 'REPLY',\n RoundMessage = 'ROUND_MESSAGE'\n}\n\nexport type CannedResponse = {\n __typename?: 'CannedResponse';\n category?: Maybe<Scalars['String']['output']>;\n content: Scalars['String']['output'];\n context?: Maybe<SupportContext>;\n createdAt: Scalars['DateTime']['output'];\n createdBy: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n isActive: Scalars['Boolean']['output'];\n shortcut?: Maybe<Scalars['String']['output']>;\n tags: Array<Scalars['String']['output']>;\n tenantId?: Maybe<Scalars['String']['output']>;\n title: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n usageCount: Scalars['Int']['output'];\n};\n\nexport type CannedResponseConnection = {\n __typename?: 'CannedResponseConnection';\n hasMore: Scalars['Boolean']['output'];\n nodes: Array<CannedResponse>;\n totalCount: Scalars['Int']['output'];\n};\n\nexport type CannedResponseFilterInput = {\n category?: InputMaybe<Scalars['String']['input']>;\n context?: InputMaybe<SupportContextFilterInput>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\n/** Shopping cart for collecting products before checkout */\nexport type Cart = {\n __typename?: 'Cart';\n /** When the cart was created */\n createdAt: Scalars['DateTime']['output'];\n /** Currency for the cart (ISO 4217 code) */\n currency: Scalars['String']['output'];\n /** Summary of digital items in the cart */\n digitalItems: CartItemSummary;\n /** When the cart expires */\n expiresAt?: Maybe<Scalars['DateTime']['output']>;\n id: Scalars['ID']['output'];\n /** Whether the cart is empty */\n isEmpty: Scalars['Boolean']['output'];\n /** Total number of items in the cart */\n itemCount: Scalars['Int']['output'];\n /** Items in the cart */\n items: Array<CartItem>;\n /** Last activity timestamp */\n lastActivityAt: Scalars['DateTime']['output'];\n /** User notes for the order */\n notes?: Maybe<Scalars['String']['output']>;\n /** Organization ID for the cart */\n organizationId?: Maybe<Scalars['String']['output']>;\n /** Summary of physical items in the cart */\n physicalItems: CartPhysicalItemSummary;\n /** Whether the cart has any physical items requiring shipping */\n requiresShipping: Scalars['Boolean']['output'];\n /** Session ID for guest carts */\n sessionId?: Maybe<Scalars['String']['output']>;\n /** Current status of the cart */\n status: CartStatus;\n /** Cart subtotal */\n subtotal: Scalars['Float']['output'];\n /** Final total */\n total: Scalars['Float']['output'];\n /** When the cart was last updated */\n updatedAt: Scalars['DateTime']['output'];\n /** User who owns this cart (authenticated users) */\n userId?: Maybe<Scalars['String']['output']>;\n};\n\n/** Error type for cart operations */\nexport type CartError = {\n __typename?: 'CartError';\n /** Error code for programmatic handling */\n code: Scalars['String']['output'];\n /** Field that caused the error (if applicable) */\n field?: Maybe<Scalars['String']['output']>;\n /** Error message */\n message: Scalars['String']['output'];\n};\n\n/** Individual item in a shopping cart */\nexport type CartItem = {\n __typename?: 'CartItem';\n /** When the item was added */\n addedAt: Scalars['DateTime']['output'];\n /** Cart this item belongs to */\n cartId: Scalars['String']['output'];\n /** Original price before discount (for display) */\n compareAtPrice?: Maybe<Scalars['Float']['output']>;\n id: Scalars['ID']['output'];\n /** Whether this item is available (in stock for physical) */\n isAvailable: Scalars['Boolean']['output'];\n /** Type of item (DIGITAL, PHYSICAL, or BUNDLE) */\n itemType: CartItemType;\n /** Maximum quantity that can be added (based on stock) */\n maxQuantity?: Maybe<Scalars['Int']['output']>;\n /** The product this item refers to */\n product?: Maybe<StoreProduct>;\n /** Cached product icon URL */\n productIcon?: Maybe<Scalars['String']['output']>;\n /** Product ID */\n productId: Scalars['String']['output'];\n /** Cached product name */\n productName: Scalars['String']['output'];\n /** Quantity of this item */\n quantity: Scalars['Int']['output'];\n /** Stock status message (for physical products) */\n stockStatus?: Maybe<Scalars['String']['output']>;\n /** Line item subtotal (quantity * unitPrice) */\n subtotal: Scalars['Float']['output'];\n /** Price per unit */\n unitPrice: Scalars['Float']['output'];\n /** When the item was last updated */\n updatedAt: Scalars['DateTime']['output'];\n /** The variant (for physical products) */\n variant?: Maybe<ProductVariant>;\n /** Variant ID (for physical products with variants) */\n variantId?: Maybe<Scalars['String']['output']>;\n /** Cached variant name (e.g., \"Large / Blue\") */\n variantName?: Maybe<Scalars['String']['output']>;\n /** Target workspace for installation (for digital products) */\n workspaceId?: Maybe<Scalars['String']['output']>;\n};\n\n/** Payload for cart item operations */\nexport type CartItemPayload = {\n __typename?: 'CartItemPayload';\n /** The updated cart */\n cart?: Maybe<Cart>;\n /** The cart item if operation was successful */\n cartItem?: Maybe<CartItem>;\n /** Errors if operation failed */\n errors?: Maybe<Array<CartError>>;\n};\n\n/** Summary of cart items by type */\nexport type CartItemSummary = {\n __typename?: 'CartItemSummary';\n /** Number of items of this type */\n count: Scalars['Int']['output'];\n /** Subtotal for items of this type */\n subtotal: Scalars['Float']['output'];\n};\n\n/** Type of item in the cart */\nexport enum CartItemType {\n /** Bundle containing multiple products */\n Bundle = 'BUNDLE',\n /** Digital product (app, template, integration) */\n Digital = 'DIGITAL',\n /** Physical product (merchandise, hardware) */\n Physical = 'PHYSICAL'\n}\n\n/** Payload for cart operations */\nexport type CartPayload = {\n __typename?: 'CartPayload';\n /** The cart if operation was successful */\n cart?: Maybe<Cart>;\n /** Errors if operation failed */\n errors?: Maybe<Array<CartError>>;\n};\n\n/** Summary of physical items with shipping info */\nexport type CartPhysicalItemSummary = {\n __typename?: 'CartPhysicalItemSummary';\n /** Number of physical items */\n count: Scalars['Int']['output'];\n /** Whether shipping is required */\n requiresShipping: Scalars['Boolean']['output'];\n /** Subtotal for physical items */\n subtotal: Scalars['Float']['output'];\n /** Total weight in grams */\n totalWeight: Scalars['Float']['output'];\n};\n\n/** Status of the shopping cart */\nexport enum CartStatus {\n /** Cart has been abandoned (no activity for configured period) */\n Abandoned = 'ABANDONED',\n /** Cart is currently active and in use */\n Active = 'ACTIVE',\n /** Cart has been converted to an order */\n Converted = 'CONVERTED',\n /** Cart has expired */\n Expired = 'EXPIRED',\n /** Cart was merged into another cart (e.g., after login) */\n Merged = 'MERGED'\n}\n\nexport type CategoryBreakdown = {\n __typename?: 'CategoryBreakdown';\n category: SupportTicketCategory;\n count: Scalars['Int']['output'];\n percentage: Scalars['Float']['output'];\n};\n\n/** Filter for querying change logs */\nexport type ChangeLogFilterInput = {\n changeType?: InputMaybe<RbacChangeType>;\n changedBy?: InputMaybe<Scalars['String']['input']>;\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n entityId?: InputMaybe<Scalars['String']['input']>;\n entityType?: InputMaybe<Scalars['String']['input']>;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\nexport type ChangePasswordInput = {\n currentPassword: Scalars['String']['input'];\n newPassword: Scalars['String']['input'];\n};\n\n/** Channel represents a configured connection to a communication platform */\nexport type Channel = {\n __typename?: 'Channel';\n /** Specific adapter type (SENDGRID, AWS_SES, TWILIO, etc.) Used for priority-based fallback delivery. */\n adapterType?: Maybe<AdapterType>;\n /** Channel type discriminator — determines delivery behaviour. NOTIFICATION (EMAIL, SMS): outbound-only, adapter failover supported. COMMUNICATION (SLACK, TEAMS, DISCORD, WHATSAPP, WEBCHAT, INAPP, WEBHOOK): bi-directional. */\n channelType: ChannelType;\n /** Typed channel configuration. Returns structured configuration with defaults applied. */\n config: ChannelConfig;\n /** Channel connection (authenticated credentials) */\n connection?: Maybe<ChannelConnection>;\n /** Real-time connection health (system-monitored: HEALTHY, DEGRADED, UNHEALTHY). Updated automatically based on API calls and health checks. */\n connectionHealth: ConnectionHealth;\n /** Number of consecutive API failures (resets to 0 on success) */\n consecutiveFailures: Scalars['Int']['output'];\n /** Operation context (tenantId, userId, etc.) */\n context?: Maybe<OperationContext>;\n /** Creation timestamp */\n createdAt: Scalars['DateTime']['output'];\n /** Creator user ID (opaque reference) */\n createdBy: Scalars['ID']['output'];\n /** Soft delete timestamp */\n deletedAt?: Maybe<Scalars['DateTime']['output']>;\n /** Optional description */\n description?: Maybe<Scalars['String']['output']>;\n /** Error message if connection is unhealthy */\n healthCheckError?: Maybe<Scalars['String']['output']>;\n /** Unique channel ID */\n id: Scalars['ID']['output'];\n /** Whether the channel has an active connection */\n isConnected: Scalars['Boolean']['output'];\n /** Last time health was checked */\n lastHealthCheckAt?: Maybe<Scalars['DateTime']['output']>;\n /** Number of messages sent in the last 24 hours */\n messageCount24h: Scalars['Int']['output'];\n /** Channel name */\n name: Scalars['String']['output'];\n /** On behalf of user/system ID (opaque reference) */\n onBehalfOf: Scalars['ID']['output'];\n /** Organization ID (opaque reference - no federation relation) */\n organizationId: Scalars['ID']['output'];\n /** Communication platform (Slack, Teams, Discord, etc.) */\n platform: ChannelPlatform;\n /** Platform-specific configuration (webhook URLs, channel IDs, etc.) Raw JSON for backward compatibility. */\n platformConfig?: Maybe<Scalars['JSON']['output']>;\n /** 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. */\n priority: Scalars['Int']['output'];\n /** Current channel status (admin-controlled: ACTIVE, INACTIVE, etc.) */\n status: ChannelStatus;\n /** Tag assignments for this channel (stub — returns empty until wspace-tags-svc supports org-scoped assignments) */\n tagAssignments: Array<ChannelTagAssignment>;\n /** Number of times this channel has been triggered (e.g., for workflows, automations) */\n triggerCount: Scalars['Int']['output'];\n /** Last update timestamp */\n updatedAt: Scalars['DateTime']['output'];\n /** Platform connections for users on this channel */\n users: Array<UserPlatformConnection>;\n};\n\n/** Authentication method for channel connection */\nexport enum ChannelAuthType {\n /** API Key authentication */\n ApiKey = 'API_KEY',\n /** Bot token (Discord, Slack) */\n BotToken = 'BOT_TOKEN',\n /** OAuth 2.0 flow (Slack, Teams, Discord) */\n Oauth2 = 'OAUTH2',\n /** SMTP/IMAP credentials (Email) */\n SmtpImap = 'SMTP_IMAP',\n /** Webhook-only (no authentication) */\n Webhook = 'WEBHOOK'\n}\n\n/** Channel configuration settings. Strongly-typed configuration instead of generic JSON. */\nexport type ChannelConfig = {\n __typename?: 'ChannelConfig';\n /** Default workflow ID to execute for incoming messages (if any) */\n defaultWorkflowId?: Maybe<Scalars['ID']['output']>;\n /** Enable presence tracking for users on this channel */\n enablePresence: Scalars['Boolean']['output'];\n /** Enable emoji reaction support (if platform supports it) */\n enableReactions: Scalars['Boolean']['output'];\n /** Enable threaded reply support (if platform supports it) */\n enableThreading: Scalars['Boolean']['output'];\n /** Enable typing indicator support (if platform supports it) */\n enableTypingIndicators: Scalars['Boolean']['output'];\n /** Platform-specific settings (JSON for flexibility) */\n platformSettings?: Maybe<Scalars['JSON']['output']>;\n /** Rate limit: maximum messages per hour for this channel. */\n rateLimitPerHour?: Maybe<Scalars['Int']['output']>;\n /** Rate limit: maximum messages per minute for this channel. Platform-specific limits apply (e.g., Slack: 60/min, WhatsApp: varies). */\n rateLimitPerMinute?: Maybe<Scalars['Int']['output']>;\n /** Webhook URL for receiving platform events */\n webhookUrl?: Maybe<Scalars['String']['output']>;\n};\n\n/** Input for updating channel configuration */\nexport type ChannelConfigInput = {\n /** Default workflow ID for incoming messages */\n defaultWorkflowId?: InputMaybe<Scalars['ID']['input']>;\n /** Enable presence tracking */\n enablePresence?: InputMaybe<Scalars['Boolean']['input']>;\n /** Enable emoji reaction support */\n enableReactions?: InputMaybe<Scalars['Boolean']['input']>;\n /** Enable threaded reply support */\n enableThreading?: InputMaybe<Scalars['Boolean']['input']>;\n /** Enable typing indicators */\n enableTypingIndicators?: InputMaybe<Scalars['Boolean']['input']>;\n /** Platform-specific settings */\n platformSettings?: InputMaybe<Scalars['JSON']['input']>;\n /** Rate limit: maximum messages per hour */\n rateLimitPerHour?: InputMaybe<Scalars['Int']['input']>;\n /** Rate limit: maximum messages per minute */\n rateLimitPerMinute?: InputMaybe<Scalars['Int']['input']>;\n /** Webhook URL */\n webhookUrl?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** ChannelConnection represents an authenticated connection to a platform All credentials are encrypted with AES-256-GCM */\nexport type ChannelConnection = {\n __typename?: 'ChannelConnection';\n /** Authentication type used */\n authType: ChannelAuthType;\n /** Associated channel */\n channel: Channel;\n /** Associated channel ID (1:1 relationship) */\n channelId: Scalars['ID']['output'];\n /** Operation context (tenantId, userId, etc.) */\n context?: Maybe<OperationContext>;\n /** Creation timestamp */\n createdAt: Scalars['DateTime']['output'];\n /** Days until token expiration */\n daysUntilExpiry?: Maybe<Scalars['Int']['output']>;\n /** Unique connection ID */\n id: Scalars['ID']['output'];\n /** Whether the connection is currently active */\n isActive: Scalars['Boolean']['output'];\n /** Whether the connection is healthy */\n isHealthy: Scalars['Boolean']['output'];\n /** Last time tokens were refreshed */\n lastRefreshedAt?: Maybe<Scalars['DateTime']['output']>;\n /** Last successful connection test timestamp */\n lastTestedAt?: Maybe<Scalars['DateTime']['output']>;\n /** Whether OAuth tokens need refresh (within 24h of expiry) */\n needsTokenRefresh: Scalars['Boolean']['output'];\n /** Platform-specific metadata (channel IDs, team info, etc.) NOTE: Non-sensitive data only */\n platformMetadata?: Maybe<Scalars['JSON']['output']>;\n /** Tag assignments for this connection (stub — returns empty until wspace-tags-svc supports org-scoped assignments) */\n tagAssignments: Array<ChannelConnectionTagAssignment>;\n /** Connection test status message */\n testStatus?: Maybe<Scalars['String']['output']>;\n /** OAuth token expiration (for OAuth flows) */\n tokenExpiresAt?: Maybe<Scalars['DateTime']['output']>;\n /** Last update timestamp */\n updatedAt: Scalars['DateTime']['output'];\n};\n\n/** Paginated list of channel connections with cursor support. Pass `nextCursor` from a previous response as `cursor` in the next call. */\nexport type ChannelConnectionList = {\n __typename?: 'ChannelConnectionList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<ChannelConnection>;\n nextCursor?: Maybe<Scalars['String']['output']>;\n total: Scalars['Int']['output'];\n};\n\nexport type ChannelConnectionTagAssignment = {\n __typename?: 'ChannelConnectionTagAssignment';\n assignedAt?: Maybe<Scalars['DateTime']['output']>;\n assignedBy?: Maybe<Scalars['ID']['output']>;\n entityId: Scalars['ID']['output'];\n entityType: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n source: Scalars['String']['output'];\n tag?: Maybe<UniversalTag>;\n tagId: Scalars['ID']['output'];\n};\n\n/** Attachment input for channel delivery */\nexport type ChannelDeliveryAttachmentInput = {\n /** Content (Base64 encoded) or URL */\n content: Scalars['String']['input'];\n /** Content type (MIME type) */\n contentType: Scalars['String']['input'];\n /** Filename */\n filename: Scalars['String']['input'];\n /** Whether content is a URL (true) or Base64 encoded data (false) */\n isUrl?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\n/** Notification content for channel delivery */\nexport type ChannelDeliveryContentInput = {\n /** Attachments (used for email, MMS, etc.) */\n attachments?: InputMaybe<Array<ChannelDeliveryAttachmentInput>>;\n /** Structured data payload (passed to platform adapters) */\n data?: InputMaybe<Scalars['JSON']['input']>;\n /** HTML content (used for email body) */\n html?: InputMaybe<Scalars['String']['input']>;\n /** Subject line (used for email subject) */\n subject?: InputMaybe<Scalars['String']['input']>;\n /** Template name (for platforms that support templates) */\n templateName?: InputMaybe<Scalars['String']['input']>;\n /** Template variables (for template-based messages) */\n templateVariables?: InputMaybe<Scalars['JSON']['input']>;\n /** Plain text content (used for SMS, push notification body, etc.) */\n text?: InputMaybe<Scalars['String']['input']>;\n /** Title (used for push notification title, in-app notification title) */\n title?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Delivery error details */\nexport type ChannelDeliveryError = {\n __typename?: 'ChannelDeliveryError';\n /** Error code (platform-specific or internal) */\n code: Scalars['String']['output'];\n /** Additional error details */\n details?: Maybe<Scalars['JSON']['output']>;\n /** Human-readable error message */\n message: Scalars['String']['output'];\n /** Whether the error is retryable */\n retryable: Scalars['Boolean']['output'];\n};\n\nexport type ChannelDeliveryEventInput = {\n /** Event ID from channel service */\n channelServiceEventId: Scalars['String']['input'];\n /** Delivery status */\n deliveryStatus: NotificationDeliveryStatus;\n /** Additional event details */\n details?: InputMaybe<Scalars['JSON']['input']>;\n /** External provider ID */\n externalId?: InputMaybe<Scalars['String']['input']>;\n /** Event metadata */\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n /** Notification ID in this service */\n notificationId: Scalars['ID']['input'];\n /** Event timestamp */\n timestamp: Scalars['DateTime']['input'];\n};\n\n/** Input for delivering a notification to a single recipient */\nexport type ChannelDeliveryInput = {\n /** Channel connection ID to use (optional - uses default if not provided) */\n connectionId?: InputMaybe<Scalars['ID']['input']>;\n /** Notification content */\n content: ChannelDeliveryContentInput;\n /** 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. */\n internalUserId?: InputMaybe<Scalars['ID']['input']>;\n /** Optional reference to originating notification in notification-svc */\n notificationId?: InputMaybe<Scalars['ID']['input']>;\n /** Delivery options (priority, scheduling, retry policy) */\n options?: InputMaybe<ChannelDeliveryOptionsInput>;\n /** Organization ID for multi-tenancy */\n organizationId: Scalars['ID']['input'];\n /** Target delivery platform (EMAIL, SMS, PUSH, SLACK, TEAMS, etc.) */\n platform: ChannelPlatform;\n /** 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. */\n recipient?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Delivery options for channel delivery */\nexport type ChannelDeliveryOptionsInput = {\n /** Idempotency key (for deduplication) */\n idempotencyKey?: InputMaybe<Scalars['String']['input']>;\n /** Custom metadata to include in delivery tracking */\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n /** Delivery priority level */\n priority?: InputMaybe<DeliveryPriority>;\n /** Custom retry policy override */\n retryPolicy?: InputMaybe<ChannelRetryPolicyInput>;\n /** Schedule for later delivery (ISO 8601 timestamp) */\n scheduledAt?: InputMaybe<Scalars['DateTime']['input']>;\n /** Time-to-live in seconds (after which delivery should not be attempted) */\n ttlSeconds?: InputMaybe<Scalars['Int']['input']>;\n};\n\n/** Result of delivering a single notification */\nexport type ChannelDeliveryResult = {\n __typename?: 'ChannelDeliveryResult';\n /** Error details if delivery failed */\n error?: Maybe<ChannelDeliveryError>;\n /** External ID from the platform (e.g., SendGrid message ID, Twilio SID) */\n externalId?: Maybe<Scalars['String']['output']>;\n /** Internal message ID for tracking */\n messageId?: Maybe<Scalars['ID']['output']>;\n /** Additional metadata from the platform */\n metadata?: Maybe<Scalars['JSON']['output']>;\n /** Platform used for delivery */\n platform: ChannelPlatform;\n /** Timestamp when message was sent/queued */\n sentAt?: Maybe<Scalars['DateTime']['output']>;\n /** Current delivery status */\n status: DeliveryStatus;\n /** Whether the delivery was successful (or queued successfully) */\n success: Scalars['Boolean']['output'];\n};\n\n/** Delivery status update event (for subscriptions) */\nexport type ChannelDeliveryStatusUpdate = {\n __typename?: 'ChannelDeliveryStatusUpdate';\n /** Internal message ID */\n messageId: Scalars['ID']['output'];\n /** Additional metadata */\n metadata?: Maybe<Scalars['JSON']['output']>;\n /** Notification ID from notification-svc */\n notificationId: Scalars['ID']['output'];\n /** Platform used for delivery */\n platform: ChannelPlatform;\n /** Updated delivery status */\n status: DeliveryStatus;\n /** Timestamp of the status update */\n timestamp: Scalars['DateTime']['output'];\n};\n\nexport type ChannelEraseResult = {\n __typename?: 'ChannelEraseResult';\n anonymised: Scalars['Int']['output'];\n dryRun: Scalars['Boolean']['output'];\n notes?: Maybe<Scalars['String']['output']>;\n purged: Scalars['Int']['output'];\n retainedForLegalReason?: Maybe<Scalars['String']['output']>;\n service: Scalars['String']['output'];\n};\n\nexport enum ChannelExportFormat {\n /** Comma-separated values; first row is the header. */\n Csv = 'CSV',\n /** JSON array; one row per element. */\n Json = 'JSON',\n /** JSON-Lines; one row per line (streaming-friendly). */\n Jsonl = 'JSONL'\n}\n\n/** Export job descriptor returned by channel export mutations. Poll `channelExportJob(id:)` until status=COMPLETED, then GET downloadUrl. */\nexport type ChannelExportJob = {\n __typename?: 'ChannelExportJob';\n byteSize?: Maybe<Scalars['Int']['output']>;\n completedAt?: Maybe<Scalars['DateTime']['output']>;\n createdAt: Scalars['DateTime']['output'];\n /** Stable GET URL for the payload; valid for 24h after COMPLETED. */\n downloadUrl?: Maybe<Scalars['String']['output']>;\n /** ISO timestamp when downloadUrl expires. */\n downloadUrlExpiresAt?: Maybe<Scalars['DateTime']['output']>;\n entityType: Scalars['String']['output'];\n error?: Maybe<Scalars['String']['output']>;\n format: ChannelExportFormat;\n id: Scalars['ID']['output'];\n rowCount?: Maybe<Scalars['Int']['output']>;\n status: ChannelExportStatus;\n /** True when the result was truncated at the 64 MiB safety limit. */\n truncated?: Maybe<Scalars['Boolean']['output']>;\n};\n\nexport enum ChannelExportStatus {\n /** Job finished successfully; downloadUrl is populated. */\n Completed = 'COMPLETED',\n /** Job accepted and queued. */\n Created = 'CREATED',\n /** Job failed; error contains the reason. */\n Failed = 'FAILED',\n /** Job is materialising the export payload. */\n Running = 'RUNNING'\n}\n\n/** Filter input for querying channels */\nexport type ChannelFilterInput = {\n /** Filter by adapter type */\n adapterType?: InputMaybe<AdapterType>;\n /** Filter by channel type (NOTIFICATION or COMMUNICATION) */\n channelType?: InputMaybe<ChannelType>;\n /** Filter by operation context */\n context?: InputMaybe<ContextFilterInput>;\n /** Filter by creator */\n createdBy?: InputMaybe<Scalars['ID']['input']>;\n /** Filter by organization ID */\n organizationId?: InputMaybe<Scalars['ID']['input']>;\n /** Filter by platform */\n platform?: InputMaybe<ChannelPlatform>;\n /** Search by name */\n search?: InputMaybe<Scalars['String']['input']>;\n /** Filter by status */\n status?: InputMaybe<ChannelStatus>;\n};\n\n/** Channel health check result */\nexport type ChannelHealthCheck = {\n __typename?: 'ChannelHealthCheck';\n /** Channel ID */\n channelId: Scalars['ID']['output'];\n /** Error message (if unhealthy) */\n error?: Maybe<Scalars['String']['output']>;\n /** Is the channel healthy */\n isHealthy: Scalars['Boolean']['output'];\n /** Last successful check timestamp */\n lastCheckAt: Scalars['DateTime']['output'];\n /** Platform API response time (ms) */\n responseTimeMs?: Maybe<Scalars['Int']['output']>;\n /** Health status message */\n status: Scalars['String']['output'];\n};\n\n/** Channel health update event emitted when connectionHealth changes. */\nexport type ChannelHealthUpdate = {\n __typename?: 'ChannelHealthUpdate';\n /** Timestamp of the health change */\n changedAt: Scalars['DateTime']['output'];\n /** The full channel object with updated health status */\n channel: Channel;\n /** Channel ID that changed */\n channelId: Scalars['ID']['output'];\n /** New health status alias for frontend compatibility (same as newHealth) */\n currentHealth: ConnectionHealth;\n /** Error details if health degraded to UNHEALTHY */\n error?: Maybe<Scalars['String']['output']>;\n /** New health status (after the change) */\n newHealth: ConnectionHealth;\n /** Previous health status (before the change) */\n previousHealth: ConnectionHealth;\n /** Reason for the health change (if available) */\n reason?: Maybe<Scalars['String']['output']>;\n /** Timestamp alias for frontend compatibility (same as changedAt) */\n timestamp: Scalars['DateTime']['output'];\n};\n\n/** Channel list response with pagination */\nexport type ChannelList = {\n __typename?: 'ChannelList';\n /** Whether there are more results */\n hasMore: Scalars['Boolean']['output'];\n /** List of channels */\n items: Array<Channel>;\n /** 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. */\n nextCursor?: Maybe<Scalars['String']['output']>;\n /** Total count (for pagination) */\n total: Scalars['Int']['output'];\n};\n\n/** Organization-level channel settings */\nexport type ChannelOrgSettings = {\n __typename?: 'ChannelOrgSettings';\n /** Default priority for new channels (0=lowest … 4=highest) */\n defaultPriority: Scalars['Int']['output'];\n /** Persist an audit log entry for every channel operation */\n enableAuditLogging: Scalars['Boolean']['output'];\n /** Verify HMAC signatures on all incoming webhooks */\n enableWebhookVerification: Scalars['Boolean']['output'];\n /** How often to run scheduled connection health checks (minutes) */\n healthCheckIntervalMinutes: Scalars['Int']['output'];\n /** Organization ID these settings belong to */\n organizationId: Scalars['ID']['output'];\n /** Global rate limit: maximum messages per hour across all channels */\n rateLimitPerHour: Scalars['Int']['output'];\n /** Global rate limit: maximum messages per minute across all channels */\n rateLimitPerMinute: Scalars['Int']['output'];\n /** Idle session timeout for the channel UI (minutes) */\n sessionTimeoutMinutes: Scalars['Int']['output'];\n /** Last updated timestamp */\n updatedAt: Scalars['DateTime']['output'];\n};\n\n/** Input for updating organization-level channel settings */\nexport type ChannelOrgSettingsInput = {\n /** Default priority for new channels (0–4) */\n defaultPriority?: InputMaybe<Scalars['Int']['input']>;\n /** Enable audit logging */\n enableAuditLogging?: InputMaybe<Scalars['Boolean']['input']>;\n /** Enable webhook signature verification */\n enableWebhookVerification?: InputMaybe<Scalars['Boolean']['input']>;\n /** Health check interval in minutes */\n healthCheckIntervalMinutes?: InputMaybe<Scalars['Int']['input']>;\n /** Rate limit per hour */\n rateLimitPerHour?: InputMaybe<Scalars['Int']['input']>;\n /** Rate limit per minute */\n rateLimitPerMinute?: InputMaybe<Scalars['Int']['input']>;\n /** Session timeout in minutes */\n sessionTimeoutMinutes?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type ChannelPaginationInput = {\n cursor?: InputMaybe<Scalars['String']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n/** Supported channel platforms for bi-directional communication */\nexport enum ChannelPlatform {\n /** Discord server integration */\n Discord = 'DISCORD',\n /** Email via SMTP/IMAP/SendGrid/SES/ACS */\n Email = 'EMAIL',\n /** Push notifications via FCM/APNs */\n Push = 'PUSH',\n /** Slack workspace integration */\n Slack = 'SLACK',\n /** SMS via Twilio/AWS SNS */\n Sms = 'SMS',\n /** Microsoft Teams integration */\n Teams = 'TEAMS',\n /** Custom webchat widget */\n Webchat = 'WEBCHAT',\n /** Generic HTTP webhooks */\n Webhook = 'WEBHOOK',\n /** WhatsApp Business API */\n Whatsapp = 'WHATSAPP'\n}\n\n/** Retry policy for channel delivery */\nexport type ChannelRetryPolicyInput = {\n /** Backoff multiplier for exponential backoff */\n backoffMultiplier?: InputMaybe<Scalars['Float']['input']>;\n /** Initial delay in milliseconds before first retry */\n initialDelayMs?: InputMaybe<Scalars['Int']['input']>;\n /** Maximum delay in milliseconds between retries */\n maxDelayMs?: InputMaybe<Scalars['Int']['input']>;\n /** Maximum number of retry attempts */\n maxRetries?: InputMaybe<Scalars['Int']['input']>;\n};\n\n/** Channel statistics - comprehensive metrics for monitoring and analytics. */\nexport type ChannelStats = {\n __typename?: 'ChannelStats';\n /** Active users (active in last 24 hours) */\n activeUsers: Scalars['Int']['output'];\n /** Average delivery latency in milliseconds */\n averageDeliveryLatencyMs?: Maybe<Scalars['Float']['output']>;\n /** Average webhook processing time in milliseconds */\n averageWebhookProcessingMs?: Maybe<Scalars['Float']['output']>;\n /** Channel ID */\n channelId: Scalars['ID']['output'];\n /** Current connection health status */\n connectionHealth: ConnectionHealth;\n /** Deliveries in the last 7 days */\n deliveriesLast7Days: Scalars['Int']['output'];\n /** Deliveries in the last 24 hours */\n deliveriesLast24Hours: Scalars['Int']['output'];\n /** Delivery success rate (0.0 - 1.0) */\n deliverySuccessRate?: Maybe<Scalars['Float']['output']>;\n /** Failed delivery attempts */\n failedDeliveries: Scalars['Int']['output'];\n /** Last message/delivery timestamp */\n lastActivityAt?: Maybe<Scalars['DateTime']['output']>;\n /** Last successful health check timestamp */\n lastHealthCheckAt?: Maybe<Scalars['DateTime']['output']>;\n /** Total messages/notifications sent (all-time) */\n totalDeliveries: Scalars['Int']['output'];\n /** Total channel users */\n totalUsers: Scalars['Int']['output'];\n /** Uptime percentage in last 24 hours (0.0 - 100.0) */\n uptimeLast24Hours?: Maybe<Scalars['Float']['output']>;\n /** Failed webhook processing count */\n webhooksFailed: Scalars['Int']['output'];\n /** Webhooks received in the last 24 hours */\n webhooksLast24Hours: Scalars['Int']['output'];\n /** Total webhooks received (all-time) */\n webhooksReceived: Scalars['Int']['output'];\n};\n\n/** Channel connection status */\nexport enum ChannelStatus {\n /** Channel is active and operational */\n Active = 'ACTIVE',\n /** Channel is archived (soft deleted) */\n Archived = 'ARCHIVED',\n /** Channel has errors and needs attention */\n Error = 'ERROR',\n /** Channel is inactive (manual disable) */\n Inactive = 'INACTIVE',\n /** Channel is suspended (rate limit, violation) */\n Suspended = 'SUSPENDED'\n}\n\nexport type ChannelTagAssignment = {\n __typename?: 'ChannelTagAssignment';\n assignedAt?: Maybe<Scalars['DateTime']['output']>;\n assignedBy?: Maybe<Scalars['ID']['output']>;\n entityId: Scalars['ID']['output'];\n entityType: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n source: Scalars['String']['output'];\n tag?: Maybe<UniversalTag>;\n tagId: Scalars['ID']['output'];\n};\n\n/** 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. */\nexport enum ChannelType {\n /** Bi-directional platform channels: SLACK, TEAMS, DISCORD, WHATSAPP, WEBCHAT, INAPP, WEBHOOK. Processes inbound webhooks and supports DM conversations. */\n Communication = 'COMMUNICATION',\n /** Outbound-only delivery channels: EMAIL, SMS. Supports adapter-level failover (e.g. AWS SES → Azure ACS). */\n Notification = 'NOTIFICATION'\n}\n\nexport type Charge = {\n __typename?: 'Charge';\n amount: Scalars['Float']['output'];\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n currency: Scalars['String']['output'];\n description?: Maybe<Scalars['String']['output']>;\n gatewayChargeId?: Maybe<Scalars['String']['output']>;\n gatewayPaymentId?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n orgId: Scalars['String']['output'];\n provider?: Maybe<Scalars['String']['output']>;\n refunds: Array<Refund>;\n status: ChargeStatus;\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport enum ChargeStatus {\n Failed = 'FAILED',\n Pending = 'PENDING',\n Refunded = 'REFUNDED',\n Succeeded = 'SUCCEEDED'\n}\n\nexport enum ChartType {\n EditorsChoice = 'EDITORS_CHOICE',\n NewReleases = 'NEW_RELEASES',\n TopFree = 'TOP_FREE',\n TopGrossing = 'TOP_GROSSING',\n TopPaid = 'TOP_PAID',\n Trending = 'TRENDING'\n}\n\nexport enum ChartWindow {\n Daily = 'DAILY',\n Monthly = 'MONTHLY',\n Weekly = 'WEEKLY'\n}\n\n/** Input for checkout */\nexport type CheckoutInput = {\n /** Billing account ID. When omitted, the store resolves the caller's default billing account from billing-svc automatically. */\n billingAccountId?: InputMaybe<Scalars['String']['input']>;\n /** Order notes */\n notes?: InputMaybe<Scalars['String']['input']>;\n /** Payment method ID. When omitted, the store uses the default payment method on the resolved billing account. */\n paymentMethodId?: InputMaybe<Scalars['String']['input']>;\n /** Shipping address ID (required for physical items) */\n shippingAddressId?: InputMaybe<Scalars['String']['input']>;\n /** Selected shipping method ID (required for physical items) */\n shippingMethodId?: InputMaybe<Scalars['String']['input']>;\n /** Target workspace for digital product installation (optional) */\n workspaceId?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Payload for checkout operation */\nexport type CheckoutPayload = {\n __typename?: 'CheckoutPayload';\n /** Errors if checkout failed */\n errors?: Maybe<Array<CartError>>;\n /** The created order (if successful) */\n order?: Maybe<StoreOrder>;\n /** Whether checkout was successful */\n success: Scalars['Boolean']['output'];\n};\n\nexport type CircuitBreakerInput = {\n enabled: Scalars['Boolean']['input'];\n failureThreshold: Scalars['Int']['input'];\n halfOpenTimeout: Scalars['Int']['input'];\n timeout: Scalars['Int']['input'];\n};\n\nexport type CircuitBreakerState = {\n __typename?: 'CircuitBreakerState';\n config: Scalars['JSON']['output'];\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n failureCount: Scalars['Int']['output'];\n halfOpenAt?: Maybe<Scalars['DateTime']['output']>;\n id: Scalars['ID']['output'];\n lastFailureAt?: Maybe<Scalars['DateTime']['output']>;\n lastSuccessAt?: Maybe<Scalars['DateTime']['output']>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n openedAt?: Maybe<Scalars['DateTime']['output']>;\n scope: Scalars['String']['output'];\n scopeValue: Scalars['String']['output'];\n state: CircuitState;\n successCount: Scalars['Int']['output'];\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport enum CircuitState {\n Closed = 'CLOSED',\n HalfOpen = 'HALF_OPEN',\n Open = 'OPEN'\n}\n\nexport type ComplaintStats = {\n __typename?: 'ComplaintStats';\n complaintRate: Scalars['Float']['output'];\n totalComplaints: Scalars['Int']['output'];\n};\n\nexport type ComplianceAuditLogEntry = {\n __typename?: 'ComplianceAuditLogEntry';\n details: Scalars['String']['output'];\n email: Scalars['String']['output'];\n event: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n ip?: Maybe<Scalars['String']['output']>;\n timestamp: Scalars['DateTime']['output'];\n};\n\n/** Input for configuring tenant settings */\nexport type ConfigureTenantInput = {\n complianceRegion?: InputMaybe<Scalars['String']['input']>;\n customBranding?: InputMaybe<Scalars['JSON']['input']>;\n dataResidency?: InputMaybe<Scalars['String']['input']>;\n features?: InputMaybe<Scalars['JSON']['input']>;\n region?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Input for configuring workspace routing (admin only) */\nexport type ConfigureWorkspaceInput = {\n endpoint?: InputMaybe<Scalars['String']['input']>;\n region?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Presence and assignment state of one exact configured interview round. */\nexport enum ConfiguredRoundState {\n Assigned = 'ASSIGNED',\n Missing = 'MISSING',\n Unassigned = 'UNASSIGNED'\n}\n\n/** 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. */\nexport enum ConnectionHealth {\n /** Partial failures, high latency, or rate limiting */\n Degraded = 'DEGRADED',\n /** Connection working, all requests succeeding */\n Healthy = 'HEALTHY',\n /** Connection failing, most requests rejected */\n Unhealthy = 'UNHEALTHY',\n /** Never tested or no recent health check */\n Unknown = 'UNKNOWN'\n}\n\n/** Connection status summary */\nexport type ConnectionStatus = {\n __typename?: 'ConnectionStatus';\n /** Connection ID */\n connectionId: Scalars['ID']['output'];\n /** Days until token expiry */\n daysUntilExpiry?: Maybe<Scalars['Int']['output']>;\n /** Is connection active */\n isActive: Scalars['Boolean']['output'];\n /** Is connection healthy */\n isHealthy: Scalars['Boolean']['output'];\n /** Last test timestamp */\n lastTestedAt?: Maybe<Scalars['DateTime']['output']>;\n /** Needs token refresh */\n needsTokenRefresh: Scalars['Boolean']['output'];\n /** Test status message */\n testStatus?: Maybe<Scalars['String']['output']>;\n};\n\n/** Connection status changed event payload. */\nexport type ConnectionStatusChangedEvent = {\n __typename?: 'ConnectionStatusChangedEvent';\n changedAt: Scalars['DateTime']['output'];\n channelId: Scalars['ID']['output'];\n connectionId: Scalars['ID']['output'];\n /** Connection ID (alias: id) */\n id: Scalars['ID']['output'];\n isActive: Scalars['Boolean']['output'];\n isHealthy: Scalars['Boolean']['output'];\n organizationId: Scalars['ID']['output'];\n reason?: Maybe<Scalars['String']['output']>;\n};\n\n/** Connection test result */\nexport type ConnectionTestResult = {\n __typename?: 'ConnectionTestResult';\n /** Error details (if failed) */\n error?: Maybe<Scalars['String']['output']>;\n /** Test status message */\n message: Scalars['String']['output'];\n /** Platform account info (sanitized) */\n platformInfo?: Maybe<Scalars['JSON']['output']>;\n /** Platform API response time (ms) */\n responseTimeMs?: Maybe<Scalars['Int']['output']>;\n /** Whether the test succeeded */\n success: Scalars['Boolean']['output'];\n};\n\nexport type ConsentLedgerFilter = {\n purpose?: InputMaybe<ConsentPurpose>;\n status?: InputMaybe<ConsentStatus>;\n subjectId?: InputMaybe<Scalars['ID']['input']>;\n subjectType?: InputMaybe<Scalars['String']['input']>;\n workspaceId?: InputMaybe<Scalars['ID']['input']>;\n};\n\nexport enum ConsentPurpose {\n AiTraining = 'AI_TRAINING',\n Analytics = 'ANALYTICS',\n CookiesAnalytics = 'COOKIES_ANALYTICS',\n CookiesFunctional = 'COOKIES_FUNCTIONAL',\n CookiesMarketing = 'COOKIES_MARKETING',\n Marketing = 'MARKETING',\n ProductUpdates = 'PRODUCT_UPDATES',\n Profiling = 'PROFILING',\n ThirdPartySharing = 'THIRD_PARTY_SHARING',\n Transactional = 'TRANSACTIONAL'\n}\n\nexport type ConsentRecord = {\n __typename?: 'ConsentRecord';\n createdAt: Scalars['DateTime']['output'];\n expiresAt?: Maybe<Scalars['DateTime']['output']>;\n grantedAt?: Maybe<Scalars['DateTime']['output']>;\n id: Scalars['ID']['output'];\n lawfulBasis: LawfulBasis;\n policyVersion: Scalars['String']['output'];\n proofPayload?: Maybe<Scalars['JSON']['output']>;\n purpose: ConsentPurpose;\n source: Scalars['String']['output'];\n status: ConsentStatus;\n subjectId: Scalars['ID']['output'];\n subjectType: Scalars['String']['output'];\n tenantId?: Maybe<Scalars['ID']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n withdrawnAt?: Maybe<Scalars['DateTime']['output']>;\n workspaceId?: Maybe<Scalars['ID']['output']>;\n};\n\nexport type ConsentRecordConnection = {\n __typename?: 'ConsentRecordConnection';\n hasMore: Scalars['Boolean']['output'];\n nodes: Array<ConsentRecord>;\n total: Scalars['Int']['output'];\n};\n\nexport enum ConsentStatus {\n Expired = 'EXPIRED',\n Granted = 'GRANTED',\n Pending = 'PENDING',\n Withdrawn = 'WITHDRAWN'\n}\n\n/** A contact inquiry submitted via a product website contact form. */\nexport type ContactInquiry = {\n __typename?: 'ContactInquiry';\n /** 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. */\n category?: Maybe<Scalars['String']['output']>;\n company?: Maybe<Scalars['String']['output']>;\n convertedTicketId?: Maybe<Scalars['String']['output']>;\n createdAt: Scalars['DateTime']['output'];\n email: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n message: Scalars['String']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n name: Scalars['String']['output'];\n productId?: Maybe<Scalars['String']['output']>;\n source: Scalars['String']['output'];\n status: ContactInquiryStatus;\n subject: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type ContactInquiryFilterInput = {\n /** Filter by inquiry category (exact match against the stored string). */\n category?: InputMaybe<Scalars['String']['input']>;\n /** Filter by product ID */\n productId?: InputMaybe<Scalars['String']['input']>;\n /** Search in name, email, or subject */\n search?: InputMaybe<Scalars['String']['input']>;\n /** Filter by status */\n status?: InputMaybe<ContactInquiryStatus>;\n};\n\nexport type ContactInquiryList = {\n __typename?: 'ContactInquiryList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<ContactInquiry>;\n total: Scalars['Int']['output'];\n};\n\nexport type ContactInquiryReplyResult = {\n __typename?: 'ContactInquiryReplyResult';\n message?: Maybe<Scalars['String']['output']>;\n success: Scalars['Boolean']['output'];\n};\n\nexport enum ContactInquiryStatus {\n Archived = 'ARCHIVED',\n Converted = 'CONVERTED',\n New = 'NEW',\n Reviewed = 'REVIEWED',\n Spam = 'SPAM'\n}\n\nexport type ContentPageFilterInput = {\n /** Filter by published state */\n isPublished?: InputMaybe<Scalars['Boolean']['input']>;\n /** Search in title or slug */\n search?: InputMaybe<Scalars['String']['input']>;\n /** Filter by slug */\n slug?: InputMaybe<Scalars['String']['input']>;\n /** Filter by a tag (e.g. \"blog\", \"legal\", \"docs\"). Matches pages whose tags array contains this value. */\n tag?: InputMaybe<Scalars['String']['input']>;\n /** Filter by visibility level */\n visibility?: InputMaybe<ContentVisibility>;\n};\n\nexport enum ContentVisibility {\n Authenticated = 'AUTHENTICATED',\n Internal = 'INTERNAL',\n Public = 'PUBLIC'\n}\n\n/** Context filter input for querying records by context. Supports exact match filtering on context fields. */\nexport type ContextFilterInput = {\n /** Filter by organization ID */\n organizationId?: InputMaybe<Scalars['ID']['input']>;\n /** Filter by project ID */\n projectId?: InputMaybe<Scalars['ID']['input']>;\n /** Filter by user ID */\n userId?: InputMaybe<Scalars['ID']['input']>;\n /** Filter by workspace ID */\n workspaceId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n/** Operation context for filtering and scoping data. All fields are optional and can be extended as needed. */\nexport type ContextInput = {\n /** Additional custom context as JSON */\n custom?: InputMaybe<Scalars['JSON']['input']>;\n /** Organization ID for organization-level scoping */\n organizationId?: InputMaybe<Scalars['ID']['input']>;\n /** Project ID for project-level scoping */\n projectId?: InputMaybe<Scalars['ID']['input']>;\n /** User ID for user-level scoping */\n userId?: InputMaybe<Scalars['ID']['input']>;\n /** Workspace ID for workspace-level scoping */\n workspaceId?: InputMaybe<Scalars['ID']['input']>;\n};\n\nexport type ContextWidgetConversationPayload = {\n __typename?: 'ContextWidgetConversationPayload';\n conversationId: Scalars['ID']['output'];\n created: Scalars['Boolean']['output'];\n description?: Maybe<Scalars['String']['output']>;\n settings?: Maybe<Scalars['JSON']['output']>;\n threadKey: Scalars['String']['output'];\n title?: Maybe<Scalars['String']['output']>;\n};\n\nexport type Coupon = {\n __typename?: 'Coupon';\n applicableProducts: Array<Scalars['String']['output']>;\n applicableServices: Array<Scalars['String']['output']>;\n campaignId?: Maybe<Scalars['String']['output']>;\n campaignName?: Maybe<Scalars['String']['output']>;\n code: Scalars['String']['output'];\n createdAt: Scalars['DateTime']['output'];\n createdBy: Scalars['String']['output'];\n currency?: Maybe<Scalars['String']['output']>;\n currentUses: Scalars['Int']['output'];\n description?: Maybe<Scalars['String']['output']>;\n excludedProducts: Array<Scalars['String']['output']>;\n excludedServices: Array<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n maxDiscountAmount?: Maybe<Scalars['Float']['output']>;\n maxTotalUses?: Maybe<Scalars['Int']['output']>;\n maxUsesPerUser: Scalars['Int']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n minPurchaseAmount?: Maybe<Scalars['Float']['output']>;\n name: Scalars['String']['output'];\n onBehalfOf: Scalars['String']['output'];\n referralCode?: Maybe<ReferralCode>;\n restrictedToUserIds: Array<Scalars['String']['output']>;\n scope: CouponScope;\n status: CouponStatus;\n type: CouponType;\n updatedAt: Scalars['DateTime']['output'];\n validFrom: Scalars['DateTime']['output'];\n validUntil?: Maybe<Scalars['DateTime']['output']>;\n value: Scalars['Float']['output'];\n};\n\nexport type CouponFilterInput = {\n campaignId?: InputMaybe<Scalars['String']['input']>;\n scope?: InputMaybe<CouponScope>;\n search?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<CouponStatus>;\n type?: InputMaybe<CouponType>;\n};\n\nexport enum CouponScope {\n Campaign = 'CAMPAIGN',\n Generic = 'GENERIC',\n Referral = 'REFERRAL',\n UserSpecific = 'USER_SPECIFIC'\n}\n\nexport enum CouponStatus {\n Active = 'ACTIVE',\n Depleted = 'DEPLETED',\n Expired = 'EXPIRED',\n Inactive = 'INACTIVE'\n}\n\nexport enum CouponType {\n FixedAmount = 'FIXED_AMOUNT',\n FreeShipping = 'FREE_SHIPPING',\n Percentage = 'PERCENTAGE'\n}\n\nexport type CouponUsage = {\n __typename?: 'CouponUsage';\n coupon: Coupon;\n createdBy: Scalars['String']['output'];\n currency: Scalars['String']['output'];\n discountType: CouponType;\n discountValue: Scalars['Float']['output'];\n finalAmount: Scalars['Float']['output'];\n id: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n onBehalfOf: Scalars['String']['output'];\n orderId?: Maybe<Scalars['String']['output']>;\n originalAmount: Scalars['Float']['output'];\n transactionId?: Maybe<Scalars['String']['output']>;\n usedAt: Scalars['DateTime']['output'];\n userId: Scalars['String']['output'];\n};\n\nexport type CouponUsageListResponse = {\n __typename?: 'CouponUsageListResponse';\n hasMore: Scalars['Boolean']['output'];\n total: Scalars['Int']['output'];\n usages: Array<CouponUsage>;\n};\n\nexport type CouponsListResponse = {\n __typename?: 'CouponsListResponse';\n coupons: Array<Coupon>;\n hasMore: Scalars['Boolean']['output'];\n total: Scalars['Int']['output'];\n};\n\nexport type CoverageChangeEvent = {\n __typename?: 'CoverageChangeEvent';\n languageCode: Scalars['String']['output'];\n newCoverage: Scalars['Float']['output'];\n previousCoverage: Scalars['Float']['output'];\n productCode: Scalars['String']['output'];\n timestamp: Scalars['DateTime']['output'];\n};\n\nexport type CreateAffiliateCodeInput = {\n code?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n destinationUrl?: InputMaybe<Scalars['String']['input']>;\n label?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n productSlug?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateAgentProfileInput = {\n autoAssign?: InputMaybe<Scalars['Boolean']['input']>;\n context?: InputMaybe<SupportContextInput>;\n maxChats?: InputMaybe<Scalars['Int']['input']>;\n maxTickets?: InputMaybe<Scalars['Int']['input']>;\n skills?: InputMaybe<Array<Scalars['String']['input']>>;\n teams?: InputMaybe<Array<Scalars['String']['input']>>;\n timezone?: InputMaybe<Scalars['String']['input']>;\n userId: Scalars['String']['input'];\n workingHours?: InputMaybe<Scalars['JSON']['input']>;\n};\n\nexport type CreateAppCollectionInput = {\n appIds?: InputMaybe<Array<Scalars['ID']['input']>>;\n bannerUrl?: InputMaybe<Scalars['String']['input']>;\n collectionType: Scalars['String']['input'];\n description?: InputMaybe<Scalars['String']['input']>;\n displayOrder?: InputMaybe<Scalars['Int']['input']>;\n endsAt?: InputMaybe<Scalars['DateTime']['input']>;\n iconUrl?: InputMaybe<Scalars['String']['input']>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n isFeatured?: InputMaybe<Scalars['Boolean']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name: Scalars['String']['input'];\n slug?: InputMaybe<Scalars['String']['input']>;\n startsAt?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\nexport type CreateAppInput = {\n actorType?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n name: Scalars['String']['input'];\n redirectUris?: InputMaybe<Array<Scalars['String']['input']>>;\n scopes: Array<Scalars['String']['input']>;\n type: AppType;\n};\n\nexport type CreateAppReviewInput = {\n body?: InputMaybe<Scalars['String']['input']>;\n installationId?: InputMaybe<Scalars['ID']['input']>;\n rating: Scalars['Int']['input'];\n title?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateApplicationInput = {\n /** Opaque reference to auth-svc App ID (links this application to an OAuth app) */\n appId?: InputMaybe<Scalars['ID']['input']>;\n appType: AppType;\n category?: InputMaybe<Scalars['String']['input']>;\n /** Which products this item is compatible with (e.g. \"fluidgrids\", \"workspaces\"). Stored in manifest.compatibility.products and extracted to the store on publish. */\n compatibleProducts?: InputMaybe<Array<Scalars['String']['input']>>;\n description?: InputMaybe<Scalars['String']['input']>;\n developerOrganizationId?: InputMaybe<Scalars['ID']['input']>;\n documentationUrl?: InputMaybe<Scalars['String']['input']>;\n githubUrl?: InputMaybe<Scalars['String']['input']>;\n iconUrl?: InputMaybe<Scalars['String']['input']>;\n keywords?: InputMaybe<Array<Scalars['String']['input']>>;\n manifest?: InputMaybe<Scalars['JSON']['input']>;\n name: Scalars['String']['input'];\n oauthAuthUrl?: InputMaybe<Scalars['String']['input']>;\n oauthRevokeUrl?: InputMaybe<Scalars['String']['input']>;\n oauthTokenUrl?: InputMaybe<Scalars['String']['input']>;\n privacyPolicyUrl?: InputMaybe<Scalars['String']['input']>;\n requiresApproval?: InputMaybe<Scalars['Boolean']['input']>;\n shortDescription?: InputMaybe<Scalars['String']['input']>;\n slug?: InputMaybe<Scalars['String']['input']>;\n supportUrl?: InputMaybe<Scalars['String']['input']>;\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n termsOfServiceUrl?: InputMaybe<Scalars['String']['input']>;\n visibility?: InputMaybe<AppVisibility>;\n websiteUrl?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateApplicationVersionInput = {\n changelog?: InputMaybe<Scalars['String']['input']>;\n manifest?: InputMaybe<Scalars['JSON']['input']>;\n maxPlatformVersion?: InputMaybe<Scalars['String']['input']>;\n minPlatformVersion?: InputMaybe<Scalars['String']['input']>;\n packageHash?: InputMaybe<Scalars['String']['input']>;\n packageSize?: InputMaybe<Scalars['String']['input']>;\n packageUrl?: InputMaybe<Scalars['String']['input']>;\n releaseNotes?: InputMaybe<Scalars['String']['input']>;\n requiredScopes?: InputMaybe<Array<Scalars['String']['input']>>;\n version: Scalars['String']['input'];\n};\n\nexport type CreateAutomationInput = {\n context?: InputMaybe<NewsletterContextInput>;\n description?: InputMaybe<Scalars['String']['input']>;\n enabled?: InputMaybe<Scalars['Boolean']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name: Scalars['String']['input'];\n platformProductId: Scalars['String']['input'];\n trigger: Scalars['JSON']['input'];\n};\n\nexport type CreateAutomationStepInput = {\n automationId: Scalars['ID']['input'];\n config: Scalars['JSON']['input'];\n stepNumber: Scalars['Int']['input'];\n stepType: AutomationStepType;\n};\n\nexport type CreateBillingAccountInput = {\n /** Billing-specific email (optional) */\n billingEmail?: InputMaybe<Scalars['String']['input']>;\n /** Contact phone number (optional) */\n contactNumber?: InputMaybe<Scalars['String']['input']>;\n /** Default currency (defaults to USD) */\n currency?: InputMaybe<Scalars['String']['input']>;\n /** Contact email */\n email: Scalars['String']['input'];\n /** Additional metadata (optional) */\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n /** Name of the billing account */\n name: Scalars['String']['input'];\n /** Tax ID / VAT number (optional) */\n taxId?: InputMaybe<Scalars['String']['input']>;\n /** Workspace ID to auto-assign workspace-scoped free-plan quotas (optional, 1-workspace orgs only) */\n workspaceId?: InputMaybe<Scalars['ID']['input']>;\n};\n\nexport type CreateBillingOrderInput = {\n billingAccountId?: InputMaybe<Scalars['ID']['input']>;\n callbackGraphQL?: InputMaybe<GraphQlCallbackInput>;\n currency: Scalars['String']['input'];\n description?: InputMaybe<Scalars['String']['input']>;\n expiryMinutes?: InputMaybe<Scalars['Int']['input']>;\n externalOrderId: Scalars['String']['input'];\n externalService: Scalars['String']['input'];\n items: Array<BillingOrderItemInput>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n subtotal: Scalars['Float']['input'];\n};\n\nexport type CreateBillingOrderResponse = {\n __typename?: 'CreateBillingOrderResponse';\n error?: Maybe<Scalars['String']['output']>;\n order?: Maybe<BillingOrder>;\n success: Scalars['Boolean']['output'];\n};\n\nexport type CreateCampaignInput = {\n /** Newsletter context for scoping (workspaceId, userId, productId, tenantId, etc.) */\n context?: InputMaybe<NewsletterContextInput>;\n newsletterId: Scalars['String']['input'];\n segment?: InputMaybe<Scalars['String']['input']>;\n subject: Scalars['String']['input'];\n};\n\nexport type CreateCannedResponseInput = {\n category?: InputMaybe<Scalars['String']['input']>;\n content: Scalars['String']['input'];\n context?: InputMaybe<SupportContextInput>;\n shortcut?: InputMaybe<Scalars['String']['input']>;\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n title: Scalars['String']['input'];\n};\n\nexport type CreateCategoryInput = {\n description?: InputMaybe<Scalars['String']['input']>;\n icon?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name: Scalars['String']['input'];\n parentId?: InputMaybe<Scalars['String']['input']>;\n slug: Scalars['String']['input'];\n};\n\n/** Input for creating a new channel */\nexport type CreateChannelInput = {\n /** Specific adapter type (SENDGRID, AWS_SES, TWILIO, etc.) */\n adapterType?: InputMaybe<AdapterType>;\n /** Channel type: NOTIFICATION (EMAIL/SMS) or COMMUNICATION (SLACK/TEAMS/etc). If omitted, defaults based on platform: EMAIL, SMS → NOTIFICATION All others → COMMUNICATION */\n channelType?: InputMaybe<ChannelType>;\n /** Operation context for scoping */\n context?: InputMaybe<ContextInput>;\n /** Optional description */\n description?: InputMaybe<Scalars['String']['input']>;\n /** Channel name */\n name: Scalars['String']['input'];\n /** Organization ID (opaque reference) */\n organizationId: Scalars['ID']['input'];\n /** Channel platform (Slack, Teams, Discord, etc.) */\n platform: ChannelPlatform;\n /** Platform-specific configuration (webhook URLs, etc.) */\n platformConfig?: InputMaybe<Scalars['JSON']['input']>;\n /** Priority for fallback ordering (lower = higher priority). Default is 100. Use 1 for highest priority. All ACTIVE channels are included in the failover chain. */\n priority?: InputMaybe<Scalars['Int']['input']>;\n /** Channel status (default: ACTIVE) */\n status?: InputMaybe<ChannelStatus>;\n};\n\n/** Input for creating a channel connection (OAuth flow) */\nexport type CreateConnectionInput = {\n /** API key or bot token (for direct auth) */\n apiKey?: InputMaybe<Scalars['String']['input']>;\n /** OAuth authorization code (for OAuth flows) */\n authCode?: InputMaybe<Scalars['String']['input']>;\n /** Authentication type */\n authType: ChannelAuthType;\n /** Channel ID to connect */\n channelId: Scalars['ID']['input'];\n /** Operation context for scoping */\n context?: InputMaybe<ContextInput>;\n /** Platform-specific credentials (email: SMTP/IMAP config) */\n credentials?: InputMaybe<Scalars['JSON']['input']>;\n /** Redirect URI (for OAuth) */\n redirectUri?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateContentPageInput = {\n author?: InputMaybe<Scalars['String']['input']>;\n category?: InputMaybe<Scalars['String']['input']>;\n content: Scalars['String']['input'];\n contentFormat?: InputMaybe<Scalars['String']['input']>;\n excerpt?: InputMaybe<Scalars['String']['input']>;\n featured?: InputMaybe<Scalars['Boolean']['input']>;\n isPublished?: InputMaybe<Scalars['Boolean']['input']>;\n productId?: InputMaybe<Scalars['String']['input']>;\n publishedAt?: InputMaybe<Scalars['DateTime']['input']>;\n readingTime?: InputMaybe<Scalars['Int']['input']>;\n seoDescription?: InputMaybe<Scalars['String']['input']>;\n seoKeywords?: InputMaybe<Scalars['String']['input']>;\n seoTitle?: InputMaybe<Scalars['String']['input']>;\n slug: Scalars['String']['input'];\n sortOrder?: InputMaybe<Scalars['Int']['input']>;\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n thumbnail?: InputMaybe<Scalars['String']['input']>;\n title: Scalars['String']['input'];\n visibility?: InputMaybe<ContentVisibility>;\n};\n\nexport type CreateCouponInput = {\n applicableProducts?: InputMaybe<Array<Scalars['String']['input']>>;\n applicableServices?: InputMaybe<Array<Scalars['String']['input']>>;\n campaignId?: InputMaybe<Scalars['String']['input']>;\n campaignName?: InputMaybe<Scalars['String']['input']>;\n code: Scalars['String']['input'];\n currency?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n excludedProducts?: InputMaybe<Array<Scalars['String']['input']>>;\n excludedServices?: InputMaybe<Array<Scalars['String']['input']>>;\n maxDiscountAmount?: InputMaybe<Scalars['Float']['input']>;\n maxTotalUses?: InputMaybe<Scalars['Int']['input']>;\n maxUsesPerUser?: InputMaybe<Scalars['Int']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n minPurchaseAmount?: InputMaybe<Scalars['Float']['input']>;\n name: Scalars['String']['input'];\n restrictedToUserIds?: InputMaybe<Array<Scalars['String']['input']>>;\n scope: CouponScope;\n type: CouponType;\n validFrom: Scalars['DateTime']['input'];\n validUntil?: InputMaybe<Scalars['DateTime']['input']>;\n value: Scalars['Float']['input'];\n};\n\nexport type CreateDeveloperOrganizationInput = {\n bannerUrl?: InputMaybe<Scalars['String']['input']>;\n billingAccountId?: InputMaybe<Scalars['ID']['input']>;\n contactEmail?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n legalAddress?: InputMaybe<Scalars['JSON']['input']>;\n legalEntityName?: InputMaybe<Scalars['String']['input']>;\n legalEntityType?: InputMaybe<Scalars['String']['input']>;\n logoUrl?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name: Scalars['String']['input'];\n /** 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. */\n pickupPostalCode?: InputMaybe<Scalars['String']['input']>;\n slug?: InputMaybe<Scalars['String']['input']>;\n supportEmail?: InputMaybe<Scalars['String']['input']>;\n websiteUrl?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateDeveloperProfileInput = {\n bio?: InputMaybe<Scalars['String']['input']>;\n companyName?: InputMaybe<Scalars['String']['input']>;\n emailNotifications?: InputMaybe<Scalars['Boolean']['input']>;\n githubUsername?: InputMaybe<Scalars['String']['input']>;\n linkedinUrl?: InputMaybe<Scalars['String']['input']>;\n marketingEmails?: InputMaybe<Scalars['Boolean']['input']>;\n twitterUsername?: InputMaybe<Scalars['String']['input']>;\n website?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateEditorialCollectionInput = {\n endsAt?: InputMaybe<Scalars['DateTime']['input']>;\n heroAssetId?: InputMaybe<Scalars['ID']['input']>;\n orderIndex?: InputMaybe<Scalars['Int']['input']>;\n productIds: Array<Scalars['ID']['input']>;\n slug: Scalars['String']['input'];\n startsAt?: InputMaybe<Scalars['DateTime']['input']>;\n storeId: Scalars['ID']['input'];\n subtitle?: InputMaybe<Scalars['String']['input']>;\n title: Scalars['String']['input'];\n};\n\n/** Input for creating a new subscription entitlement */\nexport type CreateEntitlementInput = {\n /** The type of access (FREE_ACCESS or DISCOUNT) */\n accessType: EntitlementAccessType;\n /** Discount percentage (required if accessType is DISCOUNT, 0-100) */\n discountPercentage?: InputMaybe<Scalars['Float']['input']>;\n /** The store item ID (from Store service) */\n itemId: Scalars['ID']['input'];\n /** The plan ID that grants this entitlement */\n planId: Scalars['ID']['input'];\n};\n\nexport type CreateFaqInput = {\n answer: Scalars['String']['input'];\n category?: InputMaybe<FaqCategory>;\n context?: InputMaybe<SupportContextInput>;\n displayOrder?: InputMaybe<Scalars['Int']['input']>;\n isPublished?: InputMaybe<Scalars['Boolean']['input']>;\n question: Scalars['String']['input'];\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\nexport type CreateFeatureFlagInput = {\n category?: InputMaybe<Scalars['String']['input']>;\n defaultValue?: InputMaybe<Scalars['JSON']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n flagType?: InputMaybe<FeatureFlagType>;\n key: Scalars['String']['input'];\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name: Scalars['String']['input'];\n previewable?: InputMaybe<Scalars['Boolean']['input']>;\n productId?: InputMaybe<Scalars['String']['input']>;\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\nexport type CreateI18nModuleInput = {\n description?: InputMaybe<Scalars['String']['input']>;\n displayName: Scalars['String']['input'];\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name: Scalars['String']['input'];\n productId: Scalars['String']['input'];\n};\n\nexport type CreateI18nNamespaceInput = {\n description?: InputMaybe<Scalars['String']['input']>;\n displayName: Scalars['String']['input'];\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n moduleId: Scalars['String']['input'];\n name: Scalars['String']['input'];\n};\n\nexport type CreateI18nProductInput = {\n description?: InputMaybe<Scalars['String']['input']>;\n displayName: Scalars['String']['input'];\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name: Scalars['String']['input'];\n};\n\nexport type CreateImportJobInput = {\n fileName: Scalars['String']['input'];\n fileSize: Scalars['Int']['input'];\n fileUrl?: InputMaybe<Scalars['String']['input']>;\n format: ImportJobFormat;\n options?: InputMaybe<Scalars['JSON']['input']>;\n productId: Scalars['String']['input'];\n};\n\nexport type CreateInterviewRoundConfigInput = {\n context?: InputMaybe<Scalars['JSON']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n isAssignmentRound?: InputMaybe<Scalars['Boolean']['input']>;\n isRequired?: InputMaybe<Scalars['Boolean']['input']>;\n jobPostingId: Scalars['ID']['input'];\n name: Scalars['String']['input'];\n roundNumber: Scalars['Int']['input'];\n roundType: InterviewRoundType;\n};\n\nexport type CreateInterviewRoundInput = {\n applicationId: Scalars['ID']['input'];\n assignmentId?: InputMaybe<Scalars['ID']['input']>;\n candidateMessage?: InputMaybe<Scalars['String']['input']>;\n context?: InputMaybe<Scalars['JSON']['input']>;\n name: Scalars['String']['input'];\n notes?: InputMaybe<Scalars['String']['input']>;\n roundConfigId?: InputMaybe<Scalars['ID']['input']>;\n roundType: InterviewRoundType;\n scheduledAt?: InputMaybe<Scalars['DateTime']['input']>;\n status?: InputMaybe<InterviewRoundStatus>;\n};\n\nexport type CreateInterviewerInput = {\n context?: InputMaybe<Scalars['JSON']['input']>;\n department?: InputMaybe<Scalars['String']['input']>;\n email: Scalars['String']['input'];\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n name: Scalars['String']['input'];\n notes?: InputMaybe<Scalars['String']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n userId?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** 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. */\nexport type CreateJobApplicationInput = {\n coverLetter?: InputMaybe<Scalars['String']['input']>;\n department?: InputMaybe<Scalars['String']['input']>;\n email: Scalars['String']['input'];\n /** Job posting to link; position/department are derived from it when not passed. */\n jobPostingId?: InputMaybe<Scalars['ID']['input']>;\n linkedin?: InputMaybe<Scalars['String']['input']>;\n /** Full name of the candidate (split into first/last server-side). */\n name: Scalars['String']['input'];\n phone?: InputMaybe<Scalars['String']['input']>;\n portfolio?: InputMaybe<Scalars['String']['input']>;\n position?: InputMaybe<Scalars['String']['input']>;\n /** Base64-encoded resume bytes (a `data:` URL prefix is tolerated). */\n resumeBase64?: InputMaybe<Scalars['String']['input']>;\n resumeFileName?: InputMaybe<Scalars['String']['input']>;\n /** MIME type — must be PDF, DOC, or DOCX when a resume is provided. */\n resumeMimeType?: InputMaybe<Scalars['String']['input']>;\n /** How the candidate entered the pipeline (e.g. LINKEDIN, REFERRAL, AGENCY). */\n source: Scalars['String']['input'];\n};\n\nexport type CreateJobAssignmentInput = {\n context?: InputMaybe<Scalars['JSON']['input']>;\n description: Scalars['String']['input'];\n difficulty?: InputMaybe<Scalars['String']['input']>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n jobPostingId: Scalars['ID']['input'];\n /** Optional attribution — who authored/owns this assignment. */\n ownerEmail?: InputMaybe<Scalars['String']['input']>;\n problemStatement?: InputMaybe<Scalars['String']['input']>;\n title: Scalars['String']['input'];\n};\n\nexport type CreateJobPostingInput = {\n context?: InputMaybe<Scalars['JSON']['input']>;\n department?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n employmentType?: InputMaybe<EmploymentType>;\n learnings?: InputMaybe<Array<Scalars['String']['input']>>;\n location?: InputMaybe<Scalars['String']['input']>;\n openings?: InputMaybe<Scalars['Int']['input']>;\n overview?: InputMaybe<Scalars['String']['input']>;\n productId?: InputMaybe<Scalars['String']['input']>;\n qualifications?: InputMaybe<Array<Scalars['String']['input']>>;\n responsibilities?: InputMaybe<Array<Scalars['String']['input']>>;\n slug?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<JobPostingStatus>;\n title: Scalars['String']['input'];\n};\n\nexport type CreateKeyboardShortcutInput = {\n /** Category for grouping (required) */\n category: Scalars['String']['input'];\n /** Extended description */\n description?: InputMaybe<Scalars['String']['input']>;\n /** Event name to emit (required) */\n eventName: Scalars['String']['input'];\n /** Whether shortcut is enabled (defaults to true) */\n isEnabled?: InputMaybe<Scalars['Boolean']['input']>;\n /** Whether this is a key sequence (defaults to auto-detect) */\n isSequence?: InputMaybe<Scalars['Boolean']['input']>;\n /** Display label (required) */\n label: Scalars['String']['input'];\n /** Mac-specific key override */\n macKey?: InputMaybe<Scalars['String']['input']>;\n /** Product ID (optional - null for global shortcuts) */\n productId?: InputMaybe<Scalars['ID']['input']>;\n /** Key combination (required) */\n shortcutKey: Scalars['String']['input'];\n /** Display order (defaults to 0) */\n sortOrder?: InputMaybe<Scalars['Int']['input']>;\n /** Windows/Linux-specific key override */\n windowsKey?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateKnowledgeBaseArticleInput = {\n categoryId?: InputMaybe<Scalars['String']['input']>;\n content: Scalars['String']['input'];\n context?: InputMaybe<SupportContextInput>;\n excerpt?: InputMaybe<Scalars['String']['input']>;\n metaDescription?: InputMaybe<Scalars['String']['input']>;\n slug: Scalars['String']['input'];\n status?: InputMaybe<ArticleStatus>;\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n title: Scalars['String']['input'];\n};\n\nexport type CreateLanguageInput = {\n code: Scalars['String']['input'];\n dateFormat?: InputMaybe<Scalars['String']['input']>;\n direction?: InputMaybe<LanguageDirection>;\n fallbackCode?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name: Scalars['String']['input'];\n nativeName: Scalars['String']['input'];\n pluralRules?: InputMaybe<Scalars['JSON']['input']>;\n region?: InputMaybe<Scalars['String']['input']>;\n timeFormat?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateNewsletterInput = {\n content: Scalars['String']['input'];\n /** Newsletter context for scoping (workspaceId, userId, productId, tenantId, etc.) */\n context?: InputMaybe<NewsletterContextInput>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n plans?: InputMaybe<Scalars['JSON']['input']>;\n platformProductId: Scalars['String']['input'];\n previewText?: InputMaybe<Scalars['String']['input']>;\n products?: InputMaybe<Scalars['JSON']['input']>;\n recipientType?: InputMaybe<NewsletterRecipientType>;\n scheduledFor?: InputMaybe<Scalars['DateTime']['input']>;\n segmentConfig?: InputMaybe<Scalars['JSON']['input']>;\n slug: Scalars['String']['input'];\n subject?: InputMaybe<Scalars['String']['input']>;\n title: Scalars['String']['input'];\n};\n\nexport type CreateNewsletterListInput = {\n context?: InputMaybe<NewsletterContextInput>;\n description?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name: Scalars['String']['input'];\n platformProductId: Scalars['String']['input'];\n};\n\nexport type CreateNewsletterTemplateInput = {\n category?: InputMaybe<Scalars['String']['input']>;\n context?: InputMaybe<NewsletterContextInput>;\n description?: InputMaybe<Scalars['String']['input']>;\n html: Scalars['String']['input'];\n isPublic?: InputMaybe<Scalars['Boolean']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name: Scalars['String']['input'];\n platformProductId: Scalars['String']['input'];\n thumbnail?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateNotificationHistoryInput = {\n channelServiceEventId?: InputMaybe<Scalars['String']['input']>;\n deliveryStatus?: InputMaybe<NotificationDeliveryStatus>;\n details?: InputMaybe<Scalars['JSON']['input']>;\n eventType: NotificationEventType;\n externalId?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n notificationId: Scalars['ID']['input'];\n timestamp?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\nexport type CreateNotificationInput = {\n actions?: InputMaybe<Array<NotificationActionInput>>;\n appName?: InputMaybe<Scalars['String']['input']>;\n body: Scalars['String']['input'];\n channel: NotificationChannel;\n data?: InputMaybe<Scalars['JSON']['input']>;\n expiresAt?: InputMaybe<Scalars['DateTime']['input']>;\n htmlBody?: InputMaybe<Scalars['String']['input']>;\n media?: InputMaybe<Array<NotificationMediaInput>>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n priority?: InputMaybe<NotificationPriority>;\n recipient: RecipientInput;\n redirectUrl?: InputMaybe<Scalars['String']['input']>;\n subject?: InputMaybe<Scalars['String']['input']>;\n topicId?: InputMaybe<Scalars['ID']['input']>;\n trackClicks?: InputMaybe<Scalars['Boolean']['input']>;\n trackOpens?: InputMaybe<Scalars['Boolean']['input']>;\n type?: InputMaybe<NotificationType>;\n};\n\nexport type CreateNotificationPreferenceInput = {\n channel?: InputMaybe<NotificationChannel>;\n enabled?: InputMaybe<Scalars['Boolean']['input']>;\n frequency?: InputMaybe<NotificationPreferenceFrequency>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n quietHoursEnd?: InputMaybe<Scalars['String']['input']>;\n quietHoursStart?: InputMaybe<Scalars['String']['input']>;\n scope: NotificationPreferenceScope;\n timezone?: InputMaybe<Scalars['String']['input']>;\n topicId?: InputMaybe<Scalars['ID']['input']>;\n type?: InputMaybe<NotificationType>;\n userId?: InputMaybe<Scalars['ID']['input']>;\n};\n\nexport type CreateNotificationTopicInput = {\n description?: InputMaybe<Scalars['String']['input']>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name: Scalars['String']['input'];\n slug: Scalars['String']['input'];\n type: NotificationType;\n};\n\n/** Input for creating a new organization */\nexport type CreateOrganizationInput = {\n description?: InputMaybe<Scalars['String']['input']>;\n logo?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name: Scalars['String']['input'];\n /** reCAPTCHA token required when CAPTCHA_ENABLED=true. */\n recaptchaToken?: InputMaybe<Scalars['String']['input']>;\n settings?: InputMaybe<Scalars['JSON']['input']>;\n slug: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n /** 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. */\n tenantId?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n website?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreatePaymentMethodInput = {\n /** Billing account ID to associate with */\n billingAccountId: Scalars['ID']['input'];\n /** Card brand (visa, mastercard, etc.) */\n brand?: InputMaybe<Scalars['String']['input']>;\n /** Card expiry month */\n expiryMonth?: InputMaybe<Scalars['Int']['input']>;\n /** Card expiry year */\n expiryYear?: InputMaybe<Scalars['Int']['input']>;\n /** Set as default payment method */\n isDefault?: InputMaybe<Scalars['Boolean']['input']>;\n /** Last 4 digits of the card */\n last4?: InputMaybe<Scalars['String']['input']>;\n /** Additional metadata */\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n /** Razorpay payment method ID */\n razorpayPaymentMethodId?: InputMaybe<Scalars['String']['input']>;\n /** Stripe payment method ID */\n stripePaymentMethodId?: InputMaybe<Scalars['String']['input']>;\n /** Payment method type */\n type: PaymentMethodType;\n};\n\n/** Input for creating a permission override */\nexport type CreatePermissionOverrideInput = {\n action: Scalars['String']['input'];\n actorId: Scalars['String']['input'];\n actorType: ActorType;\n expiresAt?: InputMaybe<Scalars['DateTime']['input']>;\n overrideType: OverrideType;\n priority?: InputMaybe<Scalars['Int']['input']>;\n reason?: InputMaybe<Scalars['String']['input']>;\n resourceId?: InputMaybe<Scalars['String']['input']>;\n resourceType: Scalars['String']['input'];\n scopeId: Scalars['String']['input'];\n validFrom?: InputMaybe<Scalars['DateTime']['input']>;\n validUntil?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\nexport type CreatePhysicalProductInput = {\n allowBackorder?: InputMaybe<Scalars['Boolean']['input']>;\n brand?: InputMaybe<Scalars['String']['input']>;\n category?: InputMaybe<Scalars['String']['input']>;\n /** Which platform products this listing is relevant to (e.g. \"healthybowl\"). Set by the calling seller-portal shell — see DeveloperOrgKind (BOFF-7285). */\n compatibleProducts?: InputMaybe<Array<Scalars['String']['input']>>;\n countryOfOrigin?: InputMaybe<Scalars['String']['input']>;\n currency?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n dimensionUnit?: InputMaybe<DimensionUnit>;\n height?: InputMaybe<Scalars['Float']['input']>;\n icon?: InputMaybe<Scalars['String']['input']>;\n length?: InputMaybe<Scalars['Float']['input']>;\n longDescription?: InputMaybe<Scalars['String']['input']>;\n lowStockThreshold?: InputMaybe<Scalars['Int']['input']>;\n manufacturer?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name: Scalars['String']['input'];\n organizationId: Scalars['ID']['input'];\n price: Scalars['Float']['input'];\n requiresShipping?: InputMaybe<Scalars['Boolean']['input']>;\n returnPolicy?: InputMaybe<Scalars['String']['input']>;\n screenshots?: InputMaybe<Array<Scalars['String']['input']>>;\n sku?: InputMaybe<Scalars['String']['input']>;\n slug: Scalars['String']['input'];\n stockQuantity?: InputMaybe<Scalars['Int']['input']>;\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n trackInventory?: InputMaybe<Scalars['Boolean']['input']>;\n type: ProductType;\n warrantyInfo?: InputMaybe<Scalars['String']['input']>;\n weight?: InputMaybe<Scalars['Float']['input']>;\n weightUnit?: InputMaybe<WeightUnit>;\n width?: InputMaybe<Scalars['Float']['input']>;\n};\n\nexport type CreatePlatformProductInput = {\n appStoreUrl?: InputMaybe<Scalars['String']['input']>;\n /** Application URL */\n appUrl?: InputMaybe<Scalars['String']['input']>;\n contactAddress?: InputMaybe<Scalars['String']['input']>;\n contactEmail?: InputMaybe<Scalars['String']['input']>;\n contactPhone?: InputMaybe<Scalars['String']['input']>;\n /** Product description */\n description?: InputMaybe<Scalars['String']['input']>;\n /** Documentation URL */\n docsUrl?: InputMaybe<Scalars['String']['input']>;\n /** GitHub repository URL */\n githubUrl?: InputMaybe<Scalars['String']['input']>;\n /** Optional product launch/release date */\n launchDate?: InputMaybe<Scalars['DateTime']['input']>;\n /** Logo URL */\n logoUrl?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n /** Product name (required) */\n name: Scalars['String']['input'];\n notificationEmail?: InputMaybe<Scalars['String']['input']>;\n ogImage?: InputMaybe<Scalars['String']['input']>;\n playStoreUrl?: InputMaybe<Scalars['String']['input']>;\n recaptchaSecretKey?: InputMaybe<Scalars['String']['input']>;\n recaptchaSiteKey?: InputMaybe<Scalars['String']['input']>;\n resourceLinks?: InputMaybe<Scalars['JSON']['input']>;\n rybbitSiteId?: InputMaybe<Scalars['String']['input']>;\n seoDescription?: InputMaybe<Scalars['String']['input']>;\n seoKeywords?: InputMaybe<Scalars['String']['input']>;\n seoTitle?: InputMaybe<Scalars['String']['input']>;\n /** Unique slug (required) */\n slug: Scalars['String']['input'];\n socialLinks?: InputMaybe<Scalars['JSON']['input']>;\n /** Product status (defaults to DRAFT) */\n status?: InputMaybe<PlatformProductStatus>;\n /** Status page URL */\n statusPageUrl?: InputMaybe<Scalars['String']['input']>;\n supportEmail?: InputMaybe<Scalars['String']['input']>;\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n /** Website URL */\n website?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreatePolicyReferenceInput = {\n action: Scalars['String']['input'];\n description?: InputMaybe<Scalars['String']['input']>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n name: Scalars['String']['input'];\n opaPackage: Scalars['String']['input'];\n priority?: InputMaybe<Scalars['Int']['input']>;\n resourceType: Scalars['String']['input'];\n};\n\nexport type CreatePressKitAssetInput = {\n category: PressKitAssetCategory;\n description?: InputMaybe<Scalars['String']['input']>;\n fileName?: InputMaybe<Scalars['String']['input']>;\n fileSize?: InputMaybe<Scalars['Int']['input']>;\n fileUrl: Scalars['String']['input'];\n mimeType?: InputMaybe<Scalars['String']['input']>;\n productId: Scalars['String']['input'];\n slug: Scalars['String']['input'];\n sortOrder?: InputMaybe<Scalars['Int']['input']>;\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n thumbnailUrl?: InputMaybe<Scalars['String']['input']>;\n title: Scalars['String']['input'];\n version?: InputMaybe<Scalars['String']['input']>;\n visibility?: InputMaybe<ContentVisibility>;\n};\n\n/** Input to request a presigned upload URL for a press kit file. */\nexport type CreatePressKitAssetUploadUrlInput = {\n category: PressKitAssetCategory;\n contentType: Scalars['String']['input'];\n fileName: Scalars['String']['input'];\n fileSize: Scalars['Int']['input'];\n productId: Scalars['String']['input'];\n};\n\nexport type CreateProductEntitlementInput = {\n expiresAt?: InputMaybe<Scalars['DateTime']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n productId: Scalars['String']['input'];\n purchasedBy: Scalars['String']['input'];\n workspaceId?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateProductInput = {\n bannerUrl?: InputMaybe<Scalars['String']['input']>;\n category?: InputMaybe<Scalars['String']['input']>;\n compatibleProducts?: InputMaybe<Array<Scalars['String']['input']>>;\n content?: InputMaybe<Scalars['JSON']['input']>;\n currency?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n documentationUrl?: InputMaybe<Scalars['String']['input']>;\n icon?: InputMaybe<Scalars['String']['input']>;\n longDescription?: InputMaybe<Scalars['String']['input']>;\n manifest?: InputMaybe<Scalars['JSON']['input']>;\n manifestVersion?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name: Scalars['String']['input'];\n nature?: InputMaybe<ProductNature>;\n price: Scalars['Float']['input'];\n pricingModel?: InputMaybe<PricingModel>;\n productId?: InputMaybe<Scalars['String']['input']>;\n repositoryUrl?: InputMaybe<Scalars['String']['input']>;\n screenshots?: InputMaybe<Array<Scalars['String']['input']>>;\n slug: Scalars['String']['input'];\n status?: InputMaybe<ProductStatus>;\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n type: ProductType;\n videoUrls?: InputMaybe<Array<Scalars['String']['input']>>;\n zipFileUrl?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateProductVariantInput = {\n compareAtPrice?: InputMaybe<Scalars['Float']['input']>;\n displayOrder?: InputMaybe<Scalars['Int']['input']>;\n imageUrls?: InputMaybe<Array<Scalars['String']['input']>>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n lowStockThreshold?: InputMaybe<Scalars['Int']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name: Scalars['String']['input'];\n options: Scalars['JSON']['input'];\n price?: InputMaybe<Scalars['Float']['input']>;\n sku?: InputMaybe<Scalars['String']['input']>;\n stockQuantity: Scalars['Int']['input'];\n storeProductId: Scalars['String']['input'];\n weight?: InputMaybe<Scalars['Float']['input']>;\n weightUnit?: InputMaybe<WeightUnit>;\n};\n\nexport type CreatePromoCodeInput = {\n applicableCategoryIds?: InputMaybe<Array<Scalars['ID']['input']>>;\n applicableProductIds?: InputMaybe<Array<Scalars['ID']['input']>>;\n code: Scalars['String']['input'];\n currency?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n expiresAt?: InputMaybe<Scalars['DateTime']['input']>;\n maxRedemptions?: InputMaybe<Scalars['Int']['input']>;\n minOrderAmount?: InputMaybe<Scalars['Float']['input']>;\n startsAt?: InputMaybe<Scalars['DateTime']['input']>;\n storeId?: InputMaybe<Scalars['ID']['input']>;\n type: PromoCodeType;\n value: Scalars['Float']['input'];\n};\n\nexport type CreatePromotionInput = {\n applicablePlanIds?: InputMaybe<Array<Scalars['String']['input']>>;\n applicableProductIds?: InputMaybe<Array<Scalars['String']['input']>>;\n bonusMonths: Scalars['Int']['input'];\n description?: InputMaybe<Scalars['String']['input']>;\n expiresAt: Scalars['DateTime']['input'];\n maxRedemptions?: InputMaybe<Scalars['Int']['input']>;\n name: Scalars['String']['input'];\n startsAt: Scalars['DateTime']['input'];\n};\n\n/** Input for creating support tickets from public/unauthenticated sources (e.g. website contact forms). */\nexport type CreatePublicSupportTicketInput = {\n customFields?: InputMaybe<Scalars['JSON']['input']>;\n description: Scalars['String']['input'];\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n /** reCAPTCHA token required when CAPTCHA_ENABLED=true. */\n recaptchaToken?: InputMaybe<Scalars['String']['input']>;\n source?: InputMaybe<TicketSource>;\n subject: Scalars['String']['input'];\n};\n\nexport type CreateRecurringBillingInput = {\n amount: Scalars['Float']['input'];\n currency: Scalars['String']['input'];\n description?: InputMaybe<Scalars['String']['input']>;\n entityId: Scalars['String']['input'];\n entityType: Scalars['String']['input'];\n interval: SubscriptionInterval;\n intervalCount?: InputMaybe<Scalars['Int']['input']>;\n name: Scalars['String']['input'];\n};\n\nexport type CreateReferralCodeInput = {\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n orgId: Scalars['String']['input'];\n refereeDiscountType?: InputMaybe<CouponType>;\n refereeDiscountValue?: InputMaybe<Scalars['Float']['input']>;\n referrerRewardCredits?: InputMaybe<Scalars['Float']['input']>;\n referrerRewardType: ReferralRewardType;\n referrerRewardValue: Scalars['Float']['input'];\n userId: Scalars['String']['input'];\n validUntil?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\nexport type CreateReleaseInput = {\n bundleAssetId?: InputMaybe<Scalars['ID']['input']>;\n countries?: InputMaybe<Array<Scalars['String']['input']>>;\n manifestAssetId?: InputMaybe<Scalars['ID']['input']>;\n productId: Scalars['ID']['input'];\n releaseNotes?: InputMaybe<Scalars['JSON']['input']>;\n trackId: Scalars['ID']['input'];\n version: Scalars['String']['input'];\n};\n\nexport type CreateReleaseTrackInput = {\n name: Scalars['String']['input'];\n productId: Scalars['ID']['input'];\n type: ReleaseTrackType;\n};\n\nexport type CreateReviewInput = {\n comment?: InputMaybe<Scalars['String']['input']>;\n productId: Scalars['String']['input'];\n rating: Scalars['Int']['input'];\n title?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateReviewReplyInput = {\n productId: Scalars['ID']['input'];\n replierType: Scalars['String']['input'];\n replyText: Scalars['String']['input'];\n reviewId: Scalars['ID']['input'];\n};\n\n/** Input for creating a new role */\nexport type CreateRoleInput = {\n description?: InputMaybe<Scalars['String']['input']>;\n isSystem?: InputMaybe<Scalars['Boolean']['input']>;\n name: Scalars['String']['input'];\n parentId?: InputMaybe<Scalars['ID']['input']>;\n priority?: InputMaybe<Scalars['Int']['input']>;\n /** 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. */\n productSlug?: InputMaybe<Scalars['String']['input']>;\n scopeId: Scalars['String']['input'];\n scopeType?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Input for creating a role permission override */\nexport type CreateRolePermissionOverrideInput = {\n action: Scalars['String']['input'];\n expiresAt?: InputMaybe<Scalars['DateTime']['input']>;\n overrideType: OverrideType;\n priority?: InputMaybe<Scalars['Int']['input']>;\n reason?: InputMaybe<Scalars['String']['input']>;\n resourceId?: InputMaybe<Scalars['String']['input']>;\n resourceType: Scalars['String']['input'];\n roleId: Scalars['ID']['input'];\n scopeId: Scalars['String']['input'];\n validFrom?: InputMaybe<Scalars['DateTime']['input']>;\n validUntil?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\nexport type CreateSlaPolicyInput = {\n businessHours?: InputMaybe<Scalars['JSON']['input']>;\n categoryId?: InputMaybe<Scalars['String']['input']>;\n context?: InputMaybe<SupportContextInput>;\n description?: InputMaybe<Scalars['String']['input']>;\n escalationRules?: InputMaybe<Scalars['JSON']['input']>;\n firstResponseMinutes: Scalars['Int']['input'];\n holidays?: InputMaybe<Scalars['JSON']['input']>;\n isDefault?: InputMaybe<Scalars['Boolean']['input']>;\n name: Scalars['String']['input'];\n priority: SupportTicketPriority;\n resolutionMinutes: Scalars['Int']['input'];\n timezone?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateScheduleTemplateInput = {\n businessCalendarId?: InputMaybe<Scalars['String']['input']>;\n category?: InputMaybe<Scalars['String']['input']>;\n circuitBreaker?: InputMaybe<Scalars['JSON']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n executorConfig: Scalars['JSON']['input'];\n executorType: ExecutorType;\n failurePolicy?: InputMaybe<Scalars['JSON']['input']>;\n isPublic?: InputMaybe<Scalars['Boolean']['input']>;\n name: Scalars['String']['input'];\n payloadTemplate?: InputMaybe<Scalars['JSON']['input']>;\n retryPolicy?: InputMaybe<Scalars['JSON']['input']>;\n scheduleConfig: Scalars['JSON']['input'];\n scheduleType: ScheduleType;\n};\n\nexport type CreateScheduledJobInput = {\n actionId?: InputMaybe<Scalars['String']['input']>;\n autoDisableAfter?: InputMaybe<Scalars['Int']['input']>;\n businessCalendarId?: InputMaybe<Scalars['String']['input']>;\n circuitBreaker?: InputMaybe<Scalars['JSON']['input']>;\n cronExpression?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n executorConfig?: InputMaybe<Scalars['JSON']['input']>;\n executorType?: InputMaybe<ExecutorType>;\n failurePolicy?: InputMaybe<Scalars['JSON']['input']>;\n interval?: InputMaybe<Scalars['Int']['input']>;\n intervalUnit?: InputMaybe<Scalars['String']['input']>;\n maxOccurrences?: InputMaybe<Scalars['Int']['input']>;\n maxRetries?: InputMaybe<Scalars['Int']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n misfirePolicy?: InputMaybe<MisfirePolicy>;\n misfireThreshold?: InputMaybe<Scalars['Int']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n payloadTemplate?: InputMaybe<Scalars['JSON']['input']>;\n priority?: InputMaybe<SchedulePriority>;\n retryDelay?: InputMaybe<Scalars['Int']['input']>;\n retryPolicy?: InputMaybe<Scalars['JSON']['input']>;\n rrule?: InputMaybe<Scalars['String']['input']>;\n scheduleType: ScheduleType;\n scheduledAt?: InputMaybe<Scalars['DateTime']['input']>;\n secrets?: InputMaybe<Scalars['JSON']['input']>;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n timeWindows?: InputMaybe<Scalars['JSON']['input']>;\n timezone?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateShippingAddressInput = {\n addressLine1: Scalars['String']['input'];\n addressLine2?: InputMaybe<Scalars['String']['input']>;\n city: Scalars['String']['input'];\n country: Scalars['String']['input'];\n email?: InputMaybe<Scalars['String']['input']>;\n fullName: Scalars['String']['input'];\n instructions?: InputMaybe<Scalars['String']['input']>;\n isDefault?: InputMaybe<Scalars['Boolean']['input']>;\n label?: InputMaybe<Scalars['String']['input']>;\n phone?: InputMaybe<Scalars['String']['input']>;\n postalCode: Scalars['String']['input'];\n state?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateShippingMethodInput = {\n availableCountries?: InputMaybe<Array<Scalars['String']['input']>>;\n baseCost: Scalars['Float']['input'];\n carrier?: InputMaybe<Scalars['String']['input']>;\n carrierServiceId?: InputMaybe<Scalars['String']['input']>;\n code: Scalars['String']['input'];\n costPerItem?: InputMaybe<Scalars['Float']['input']>;\n costPerKg?: InputMaybe<Scalars['Float']['input']>;\n currency?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n displayOrder?: InputMaybe<Scalars['Int']['input']>;\n estimatedMaxDays?: InputMaybe<Scalars['Int']['input']>;\n estimatedMinDays?: InputMaybe<Scalars['Int']['input']>;\n excludedCountries?: InputMaybe<Array<Scalars['String']['input']>>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n maxDimensions?: InputMaybe<Scalars['JSON']['input']>;\n maxWeight?: InputMaybe<Scalars['Float']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name: Scalars['String']['input'];\n};\n\nexport type CreateShippingRateInput = {\n baseCost: Scalars['Float']['input'];\n currency?: InputMaybe<Scalars['String']['input']>;\n displayOrder?: InputMaybe<Scalars['Int']['input']>;\n estimatedMaxDays?: InputMaybe<Scalars['Int']['input']>;\n estimatedMinDays?: InputMaybe<Scalars['Int']['input']>;\n freeShippingMinOrderAmount?: InputMaybe<Scalars['Float']['input']>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name: Scalars['String']['input'];\n shippingZoneId: Scalars['String']['input'];\n weightTiers?: InputMaybe<Scalars['JSON']['input']>;\n};\n\nexport type CreateShippingZoneInput = {\n countries: Array<Scalars['String']['input']>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name: Scalars['String']['input'];\n};\n\nexport type CreateSourcingRequestInput = {\n category: Scalars['String']['input'];\n deliveryCity?: InputMaybe<Scalars['String']['input']>;\n deliveryCountry: Scalars['String']['input'];\n deliveryRegion?: InputMaybe<Scalars['String']['input']>;\n deliveryWindowEnd: Scalars['DateTime']['input'];\n deliveryWindowStart: Scalars['DateTime']['input'];\n productName: Scalars['String']['input'];\n quantity: Scalars['Int']['input'];\n summary?: InputMaybe<Scalars['String']['input']>;\n /** Store sourcing settlement currency. Currently USD only. */\n targetCurrency?: InputMaybe<Scalars['String']['input']>;\n /** Exact decimal string with at most two fractional digits. */\n targetUnitPrice?: InputMaybe<Scalars['String']['input']>;\n unit: SourcingUnit;\n};\n\nexport type CreateStoreInput = {\n allowUnverifiedPublishers?: InputMaybe<Scalars['Boolean']['input']>;\n currency?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n isPublic?: InputMaybe<Scalars['Boolean']['input']>;\n logoUrl?: InputMaybe<Scalars['String']['input']>;\n name: Scalars['String']['input'];\n requiresApproval?: InputMaybe<Scalars['Boolean']['input']>;\n slug: Scalars['String']['input'];\n tenantId?: InputMaybe<Scalars['ID']['input']>;\n type: StoreType;\n websiteUrl?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Input for creating a new store order */\nexport type CreateStoreOrderInput = {\n /** Applied entitlement ID if any */\n appliedEntitlementId?: InputMaybe<Scalars['String']['input']>;\n /** Billing account ID for payment (can be empty, will be set on billing page) */\n billingAccountId?: InputMaybe<Scalars['String']['input']>;\n /** Additional context */\n context?: InputMaybe<Scalars['JSON']['input']>;\n /** Currency for the order (defaults to USD) */\n currency?: InputMaybe<Scalars['String']['input']>;\n /** Line items in this order */\n lineItems: Array<StoreLineItemInput>;\n /** Additional metadata */\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n /**\n * Deprecated client total. The server calculates the total from catalog data.\n * @deprecated The server calculates the order total\n */\n total?: InputMaybe<Scalars['Float']['input']>;\n};\n\nexport type CreateSubscriptionInput = {\n amount: Scalars['Float']['input'];\n applicationId?: InputMaybe<Scalars['ID']['input']>;\n couponCode?: InputMaybe<Scalars['String']['input']>;\n currency?: InputMaybe<Scalars['String']['input']>;\n interval: BillingInterval;\n planId?: InputMaybe<Scalars['ID']['input']>;\n planName?: InputMaybe<Scalars['String']['input']>;\n subscriptionType: Scalars['String']['input'];\n tier?: InputMaybe<DeveloperOrgTier>;\n trialDays?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type CreateSupportMessageInput = {\n attachments?: InputMaybe<Array<Scalars['String']['input']>>;\n /** Operation context for scoping (workspaceId, userId, projectId, etc.) */\n context?: InputMaybe<SupportContextInput>;\n isInternal?: InputMaybe<Scalars['Boolean']['input']>;\n message: Scalars['String']['input'];\n ticketId: Scalars['String']['input'];\n type?: InputMaybe<MessageType>;\n};\n\nexport type CreateSupportTicketInput = {\n category?: InputMaybe<SupportTicketCategory>;\n categoryId?: InputMaybe<Scalars['String']['input']>;\n /** Operation context for scoping (workspaceId, userId, projectId, etc.) */\n context?: InputMaybe<SupportContextInput>;\n customFields?: InputMaybe<Scalars['JSON']['input']>;\n description: Scalars['String']['input'];\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n priority?: InputMaybe<SupportTicketPriority>;\n source?: InputMaybe<TicketSource>;\n subject: Scalars['String']['input'];\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n workspaceId?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateTagInput = {\n description?: InputMaybe<Scalars['String']['input']>;\n name: Scalars['String']['input'];\n slug: Scalars['String']['input'];\n};\n\nexport type CreateTemplateInput = {\n bodyTemplate: Scalars['String']['input'];\n /** Default delivery channel for this template (defaults to EMAIL if not specified) */\n channel?: InputMaybe<NotificationChannel>;\n description?: InputMaybe<Scalars['String']['input']>;\n htmlTemplate?: InputMaybe<Scalars['String']['input']>;\n locale?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name: Scalars['String']['input'];\n slug: Scalars['String']['input'];\n subject?: InputMaybe<Scalars['String']['input']>;\n type: NotificationType;\n variables: Scalars['JSON']['input'];\n};\n\n/** Input for creating a new tenant */\nexport type CreateTenantInput = {\n config?: InputMaybe<Scalars['JSON']['input']>;\n customDomain?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name: Scalars['String']['input'];\n /** reCAPTCHA token required when CAPTCHA_ENABLED=true. */\n recaptchaToken?: InputMaybe<Scalars['String']['input']>;\n slug: Scalars['String']['input'];\n type?: InputMaybe<TenantType>;\n};\n\nexport type CreateTicketCategoryInput = {\n color?: InputMaybe<Scalars['String']['input']>;\n context?: InputMaybe<SupportContextInput>;\n description?: InputMaybe<Scalars['String']['input']>;\n displayOrder?: InputMaybe<Scalars['Int']['input']>;\n icon?: InputMaybe<Scalars['String']['input']>;\n name: Scalars['String']['input'];\n parentId?: InputMaybe<Scalars['String']['input']>;\n slaOverride?: InputMaybe<Scalars['JSON']['input']>;\n slug: Scalars['String']['input'];\n};\n\nexport type CreateTicketTemplateInput = {\n body: Scalars['String']['input'];\n category?: InputMaybe<SupportTicketCategory>;\n context?: InputMaybe<SupportContextInput>;\n description?: InputMaybe<Scalars['String']['input']>;\n name: Scalars['String']['input'];\n priority?: InputMaybe<SupportTicketPriority>;\n subject: Scalars['String']['input'];\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\nexport type CreateTourInput = {\n /** Operation context for scoping (workspaceId, userId, productId, moduleId, etc.) */\n context?: InputMaybe<ContextInput>;\n description?: InputMaybe<Scalars['String']['input']>;\n desktopConfig?: InputMaybe<Scalars['JSON']['input']>;\n displayOrder?: InputMaybe<Scalars['Int']['input']>;\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n mobileConfig?: InputMaybe<Scalars['JSON']['input']>;\n moduleId?: InputMaybe<Scalars['String']['input']>;\n name: Scalars['String']['input'];\n pageId?: InputMaybe<Scalars['String']['input']>;\n priority?: InputMaybe<Scalars['Int']['input']>;\n productId: Scalars['String']['input'];\n slug: Scalars['String']['input'];\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n status?: InputMaybe<TourStatus>;\n tabletConfig?: InputMaybe<Scalars['JSON']['input']>;\n triggerConfig?: InputMaybe<Scalars['JSON']['input']>;\n triggerType?: InputMaybe<TourTriggerType>;\n};\n\nexport type CreateTourMediaInput = {\n altText?: InputMaybe<Scalars['String']['input']>;\n caption?: InputMaybe<Scalars['String']['input']>;\n cdnUrl?: InputMaybe<Scalars['String']['input']>;\n /** Operation context for scoping (workspaceId, userId, productId, moduleId, etc.) */\n context?: InputMaybe<ContextInput>;\n description?: InputMaybe<Scalars['String']['input']>;\n duration?: InputMaybe<Scalars['Int']['input']>;\n height?: InputMaybe<Scalars['Int']['input']>;\n isPublic?: InputMaybe<Scalars['Boolean']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n mimeType: Scalars['String']['input'];\n name: Scalars['String']['input'];\n size: Scalars['Int']['input'];\n storagePath: Scalars['String']['input'];\n storageUrl: Scalars['String']['input'];\n transcript?: InputMaybe<Scalars['String']['input']>;\n type: TourMediaType;\n width?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type CreateTourScheduleInput = {\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n recurrenceRule?: InputMaybe<Scalars['String']['input']>;\n startDate: Scalars['DateTime']['input'];\n timezone?: InputMaybe<Scalars['String']['input']>;\n tourId: Scalars['String']['input'];\n};\n\nexport type CreateTourStepInput = {\n actions?: InputMaybe<Scalars['JSON']['input']>;\n content: Scalars['String']['input'];\n /** Operation context for scoping (workspaceId, userId, productId, moduleId, etc.) */\n context?: InputMaybe<ContextInput>;\n customData?: InputMaybe<Scalars['JSON']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n placement?: InputMaybe<TourStepPlacement>;\n requireInteraction?: InputMaybe<Scalars['Boolean']['input']>;\n skipConditions?: InputMaybe<Scalars['JSON']['input']>;\n stepOrder: Scalars['Int']['input'];\n targetSelector?: InputMaybe<Scalars['String']['input']>;\n targetSelectorDesktop?: InputMaybe<Scalars['String']['input']>;\n targetSelectorMobile?: InputMaybe<Scalars['String']['input']>;\n targetSelectorTablet?: InputMaybe<Scalars['String']['input']>;\n title: Scalars['String']['input'];\n tourId: Scalars['String']['input'];\n waitForEvent?: InputMaybe<Scalars['String']['input']>;\n waitForSelector?: InputMaybe<Scalars['String']['input']>;\n waitForTimeout?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type CreateTourTemplateInput = {\n category?: InputMaybe<Scalars['String']['input']>;\n config: Scalars['JSON']['input'];\n /** Operation context for scoping (workspaceId, userId, productId, moduleId, etc.) */\n context?: InputMaybe<ContextInput>;\n description?: InputMaybe<Scalars['String']['input']>;\n isPremium?: InputMaybe<Scalars['Boolean']['input']>;\n isPublic?: InputMaybe<Scalars['Boolean']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name: Scalars['String']['input'];\n slug: Scalars['String']['input'];\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n thumbnail?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateTranslationInput = {\n keyId: Scalars['String']['input'];\n languageCode: Scalars['String']['input'];\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n notes?: InputMaybe<Scalars['String']['input']>;\n pluralForms?: InputMaybe<Scalars['JSON']['input']>;\n tenantId?: InputMaybe<Scalars['String']['input']>;\n value: Scalars['String']['input'];\n};\n\nexport type CreateTranslationKeyInput = {\n characterLimit?: InputMaybe<Scalars['Int']['input']>;\n context?: InputMaybe<Scalars['String']['input']>;\n defaultValue?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n isPlural?: InputMaybe<Scalars['Boolean']['input']>;\n key: Scalars['String']['input'];\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n namespaceId?: InputMaybe<Scalars['String']['input']>;\n placeholders?: InputMaybe<Scalars['JSON']['input']>;\n productId: Scalars['String']['input'];\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\n/** Input for creating a complete tenant structure for a new user */\nexport type CreateUserTenantStructureInput = {\n /** ISO 3166-1 alpha-2 country code — used to set the default billing account currency */\n country?: InputMaybe<Scalars['String']['input']>;\n email: Scalars['String']['input'];\n name: Scalars['String']['input'];\n organizationName?: InputMaybe<Scalars['String']['input']>;\n tenantName?: InputMaybe<Scalars['String']['input']>;\n userId: Scalars['String']['input'];\n workspaceName?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateUserTenantStructureResponse = {\n __typename?: 'CreateUserTenantStructureResponse';\n message?: Maybe<Scalars['String']['output']>;\n organizationId?: Maybe<Scalars['String']['output']>;\n provisioning: TenantStructureProvisioningState;\n success: Scalars['Boolean']['output'];\n tenantId?: Maybe<Scalars['String']['output']>;\n workspaceId?: Maybe<Scalars['String']['output']>;\n};\n\nexport type CreateVariantInput = {\n content: Scalars['String']['input'];\n name: Scalars['String']['input'];\n newsletterId: Scalars['ID']['input'];\n percentage: Scalars['Int']['input'];\n subject: Scalars['String']['input'];\n};\n\n/** Input for creating a visibility rule */\nexport type CreateVisibilityRuleInput = {\n conditions?: InputMaybe<Scalars['JSON']['input']>;\n priority?: InputMaybe<Scalars['Int']['input']>;\n resourceIdentifier: Scalars['String']['input'];\n resourceType: Scalars['String']['input'];\n scopeId: Scalars['String']['input'];\n targetId?: InputMaybe<Scalars['String']['input']>;\n targetType?: InputMaybe<Scalars['String']['input']>;\n visibilityType: VisibilityType;\n};\n\nexport type CreateWebhookInput = {\n description?: InputMaybe<Scalars['String']['input']>;\n events: Array<Scalars['String']['input']>;\n filters?: InputMaybe<Scalars['JSON']['input']>;\n maxRetries?: InputMaybe<Scalars['Int']['input']>;\n name: Scalars['String']['input'];\n retryEnabled?: InputMaybe<Scalars['Boolean']['input']>;\n url: Scalars['String']['input'];\n};\n\n/** Input for creating a new workspace */\nexport type CreateWorkspaceInput = {\n endpoint?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name: Scalars['String']['input'];\n organizationId?: InputMaybe<Scalars['String']['input']>;\n region?: InputMaybe<Scalars['String']['input']>;\n slug: Scalars['String']['input'];\n /** 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. */\n tenantId?: InputMaybe<Scalars['String']['input']>;\n /** Deprecated: workspaces no longer expose a user-facing type. New workspaces default to TEAM; the field is retained for backward compatibility only. */\n type?: InputMaybe<WorkspaceType>;\n};\n\n/** Credit balance broken down by type */\nexport type CreditBalanceByType = {\n __typename?: 'CreditBalanceByType';\n earned: Scalars['Float']['output'];\n granted: Scalars['Float']['output'];\n purchased: Scalars['Float']['output'];\n total: Scalars['Float']['output'];\n /** Total that can be withdrawn (purchased + earned) */\n withdrawable: Scalars['Float']['output'];\n};\n\nexport type CreditCost = {\n __typename?: 'CreditCost';\n amount: Scalars['Float']['output'];\n};\n\nexport type CreditNote = {\n __typename?: 'CreditNote';\n amount: Scalars['Float']['output'];\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n currency: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n invoiceId?: Maybe<Scalars['String']['output']>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n number: Scalars['String']['output'];\n orgId: Scalars['String']['output'];\n reason?: Maybe<Scalars['String']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type CreditRate = {\n __typename?: 'CreditRate';\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n effectiveFrom: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n rateUSD: Scalars['Float']['output'];\n updatedAt: Scalars['DateTime']['output'];\n};\n\n/** CreditTransaction entity - resolvable via Federation Gateway. Other services (e.g., store-svc) can reference CreditTransaction by id. */\nexport type CreditTransaction = {\n __typename?: 'CreditTransaction';\n amount: Scalars['Float']['output'];\n billingAccount: BillingAccount;\n billingAccountId: Scalars['ID']['output'];\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n entityId?: Maybe<Scalars['ID']['output']>;\n entityType?: Maybe<Scalars['String']['output']>;\n /** For usage (debit) transactions: which credit bucket was debited */\n fromType?: Maybe<CreditTransactionType>;\n id: Scalars['ID']['output'];\n /** For withdrawal debit transactions: the payout request they are reserved for */\n payoutRequestId?: Maybe<Scalars['ID']['output']>;\n productId: Scalars['String']['output'];\n status: CreditTransactionStatus;\n transaction?: Maybe<Transaction>;\n transactionId?: Maybe<Scalars['ID']['output']>;\n type: CreditTransactionType;\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport enum CreditTransactionStatus {\n Failed = 'failed',\n Pending = 'pending',\n Refund = 'refund',\n Success = 'success'\n}\n\nexport enum CreditTransactionType {\n Adjustment = 'adjustment',\n Granted = 'granted',\n Purchase = 'purchase',\n Usage = 'usage'\n}\n\n/** Currency conversion result */\nexport type CurrencyConversion = {\n __typename?: 'CurrencyConversion';\n amount: Scalars['Float']['output'];\n exchangeRate: Scalars['Float']['output'];\n fromCurrency: Scalars['String']['output'];\n toCurrency: Scalars['String']['output'];\n};\n\nexport type CurrencyPriceOverrideInput = {\n amount: Scalars['Float']['input'];\n currency: Scalars['String']['input'];\n perSeatAmount?: InputMaybe<Scalars['Float']['input']>;\n};\n\nexport type CustomerSatisfactionSurvey = {\n __typename?: 'CustomerSatisfactionSurvey';\n comment?: Maybe<Scalars['String']['output']>;\n context?: Maybe<SupportContext>;\n createdAt: Scalars['DateTime']['output'];\n customerId: Scalars['String']['output'];\n expiresAt: Scalars['DateTime']['output'];\n feedbackType?: Maybe<FeedbackCategory>;\n id: Scalars['ID']['output'];\n isExpired: Scalars['Boolean']['output'];\n isSubmitted: Scalars['Boolean']['output'];\n rating: Scalars['Int']['output'];\n sentAt: Scalars['DateTime']['output'];\n submittedAt?: Maybe<Scalars['DateTime']['output']>;\n tenantId?: Maybe<Scalars['String']['output']>;\n ticket: SupportTicket;\n ticketId: Scalars['String']['output'];\n};\n\nexport type CustomerSatisfactionSurveyConnection = {\n __typename?: 'CustomerSatisfactionSurveyConnection';\n hasMore: Scalars['Boolean']['output'];\n nodes: Array<CustomerSatisfactionSurvey>;\n totalCount: Scalars['Int']['output'];\n};\n\nexport type CustomerSatisfactionSurveyFilterInput = {\n context?: InputMaybe<SupportContextFilterInput>;\n customerId?: InputMaybe<Scalars['String']['input']>;\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n feedbackType?: InputMaybe<FeedbackCategory>;\n isSubmitted?: InputMaybe<Scalars['Boolean']['input']>;\n maxRating?: InputMaybe<Scalars['Int']['input']>;\n minRating?: InputMaybe<Scalars['Int']['input']>;\n rating?: InputMaybe<Scalars['Int']['input']>;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n ticketId?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum DlqStatus {\n Discarded = 'DISCARDED',\n Investigating = 'INVESTIGATING',\n Pending = 'PENDING',\n Resolved = 'RESOLVED'\n}\n\nexport type DsarFilter = {\n status?: InputMaybe<DsarStatus>;\n subjectEmail?: InputMaybe<Scalars['String']['input']>;\n subjectId?: InputMaybe<Scalars['ID']['input']>;\n type?: InputMaybe<DsarType>;\n};\n\nexport type DsarRequest = {\n __typename?: 'DSARRequest';\n completedAt?: Maybe<Scalars['DateTime']['output']>;\n createdAt: Scalars['DateTime']['output'];\n dueAt: Scalars['DateTime']['output'];\n fanoutState?: Maybe<Scalars['JSON']['output']>;\n id: Scalars['ID']['output'];\n identityProof?: Maybe<Scalars['JSON']['output']>;\n identityVerifiedAt?: Maybe<Scalars['DateTime']['output']>;\n legalHoldFlag: Scalars['Boolean']['output'];\n notes?: Maybe<Scalars['String']['output']>;\n receivedAt: Scalars['DateTime']['output'];\n rejectionReason?: Maybe<Scalars['String']['output']>;\n requestedBy?: Maybe<Scalars['ID']['output']>;\n resultArtifactHash?: Maybe<Scalars['String']['output']>;\n resultArtifactUrl?: Maybe<Scalars['String']['output']>;\n source: Scalars['String']['output'];\n status: DsarStatus;\n subjectEmail: Scalars['String']['output'];\n subjectId: Scalars['ID']['output'];\n type: DsarType;\n updatedAt: Scalars['DateTime']['output'];\n workflowId?: Maybe<Scalars['String']['output']>;\n workflowRunId?: Maybe<Scalars['String']['output']>;\n};\n\nexport type DsarRequestConnection = {\n __typename?: 'DSARRequestConnection';\n hasMore: Scalars['Boolean']['output'];\n nodes: Array<DsarRequest>;\n total: Scalars['Int']['output'];\n};\n\nexport enum DsarStatus {\n AwaitingSubjectInput = 'AWAITING_SUBJECT_INPUT',\n Cancelled = 'CANCELLED',\n Completed = 'COMPLETED',\n IdentityVerificationPending = 'IDENTITY_VERIFICATION_PENDING',\n IdentityVerified = 'IDENTITY_VERIFIED',\n InProgress = 'IN_PROGRESS',\n OnHoldLegal = 'ON_HOLD_LEGAL',\n Received = 'RECEIVED',\n Rejected = 'REJECTED'\n}\n\nexport enum DsarType {\n Access = 'ACCESS',\n Erasure = 'ERASURE',\n Objection = 'OBJECTION',\n Portability = 'PORTABILITY',\n Rectification = 'RECTIFICATION',\n Restriction = 'RESTRICTION'\n}\n\nexport type DailyUsage = {\n __typename?: 'DailyUsage';\n count: Scalars['Int']['output'];\n date: Scalars['String']['output'];\n usage: Scalars['Float']['output'];\n};\n\n/** Dashboard widget configuration for customization. */\nexport type DashboardWidgetInput = {\n /** Whether the widget is visible on the dashboard */\n enabled: Scalars['Boolean']['input'];\n /** Display order (0-based) */\n order: Scalars['Int']['input'];\n /** Widget size: 'small', 'medium', or 'large' */\n size?: InputMaybe<Scalars['String']['input']>;\n /** Widget identifier (e.g. 'workspaces', 'projects', 'activity') */\n widgetId: Scalars['String']['input'];\n};\n\n/** Date range filter for queries */\nexport type DateRangeInput = {\n /** Start date (inclusive) */\n from?: InputMaybe<Scalars['DateTime']['input']>;\n /** End date (inclusive) */\n to?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\nexport type DeadLetterQueue = {\n __typename?: 'DeadLetterQueue';\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n executorConfig: Scalars['JSON']['output'];\n failureReason: Scalars['String']['output'];\n firstAttemptAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n lastAttemptAt: Scalars['DateTime']['output'];\n lastError: Scalars['String']['output'];\n lastErrorStack?: Maybe<Scalars['String']['output']>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n originalRunId: Scalars['String']['output'];\n resolution?: Maybe<Scalars['JSON']['output']>;\n resolvedAt?: Maybe<Scalars['DateTime']['output']>;\n resolvedBy?: Maybe<Scalars['String']['output']>;\n scheduleId: Scalars['String']['output'];\n scheduleName?: Maybe<Scalars['String']['output']>;\n status: DlqStatus;\n totalAttempts: Scalars['Int']['output'];\n};\n\nexport type DeadLetterQueueConnection = {\n __typename?: 'DeadLetterQueueConnection';\n entries: Array<DeadLetterQueue>;\n hasMore: Scalars['Boolean']['output'];\n total: Scalars['Int']['output'];\n};\n\nexport enum DelegationStatus {\n Active = 'ACTIVE',\n Expired = 'EXPIRED',\n Revoked = 'REVOKED'\n}\n\n/** Result of user deletion */\nexport type DeleteUserResult = {\n __typename?: 'DeleteUserResult';\n message: Scalars['String']['output'];\n success: Scalars['Boolean']['output'];\n};\n\n/** Paginated list of delivery attempts with cursor support. Pass `nextCursor` from a previous response as `cursor` in the next call. */\nexport type DeliveryAttemptList = {\n __typename?: 'DeliveryAttemptList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<MessageDeliveryAttempt>;\n nextCursor?: Maybe<Scalars['String']['output']>;\n total: Scalars['Int']['output'];\n};\n\n/** Delivery priority levels */\nexport enum DeliveryPriority {\n /** High priority - expedited delivery */\n High = 'HIGH',\n /** Low priority - can be delayed */\n Low = 'LOW',\n /** Normal priority - standard delivery */\n Normal = 'NORMAL',\n /** Urgent priority - immediate delivery */\n Urgent = 'URGENT'\n}\n\n/** Delivery statistics */\nexport type DeliveryStats = {\n __typename?: 'DeliveryStats';\n /** Average delivery time (ms) */\n avgDeliveryTimeMs: Scalars['Int']['output'];\n /** Channel ID */\n channelId: Scalars['ID']['output'];\n /** Date range end */\n endDate: Scalars['DateTime']['output'];\n /** Failed deliveries */\n failedDeliveries: Scalars['Int']['output'];\n /** Pending deliveries */\n pendingDeliveries: Scalars['Int']['output'];\n /** Date range start */\n startDate: Scalars['DateTime']['output'];\n /** Success rate (percentage) */\n successRate: Scalars['Float']['output'];\n /** Successful deliveries */\n successfulDeliveries: Scalars['Int']['output'];\n /** Total delivery attempts */\n totalAttempts: Scalars['Int']['output'];\n};\n\n/** Message delivery attempt status */\nexport enum DeliveryStatus {\n /** Message bounced */\n Bounced = 'BOUNCED',\n /** Link clicked by recipient */\n Clicked = 'CLICKED',\n /** Delivered to recipient */\n Delivered = 'DELIVERED',\n /** Delivery failed */\n Failed = 'FAILED',\n /** Message opened by recipient */\n Opened = 'OPENED',\n /** Delivery pending */\n Pending = 'PENDING',\n /** Queued for delivery */\n Queued = 'QUEUED',\n /** Rate limited by platform */\n RateLimited = 'RATE_LIMITED',\n /** Message rejected by recipient */\n Rejected = 'REJECTED',\n /** Retrying after failure */\n Retrying = 'RETRYING',\n /** Currently sending */\n Sending = 'SENDING',\n /** Successfully sent */\n Sent = 'SENT'\n}\n\n/** Delivery updated event payload emitted on delivery status changes. */\nexport type DeliveryUpdatedEvent = {\n __typename?: 'DeliveryUpdatedEvent';\n channelId: Scalars['ID']['output'];\n id: Scalars['ID']['output'];\n status: DeliveryStatus;\n};\n\nexport type DependencyTriggeredUpdate = {\n __typename?: 'DependencyTriggeredUpdate';\n dependencyCount: Scalars['Int']['output'];\n scheduleId: Scalars['ID']['output'];\n scheduleName?: Maybe<Scalars['String']['output']>;\n timestamp: Scalars['DateTime']['output'];\n triggeredBy: Scalars['ID']['output'];\n};\n\nexport enum DevPortalPaymentMethodType {\n BankAccount = 'BANK_ACCOUNT',\n Check = 'CHECK',\n Paypal = 'PAYPAL',\n StripeConnect = 'STRIPE_CONNECT',\n Wire = 'WIRE'\n}\n\nexport enum DevPortalPricingModel {\n Enterprise = 'ENTERPRISE',\n Free = 'FREE',\n Freemium = 'FREEMIUM',\n OneTime = 'ONE_TIME',\n Subscription = 'SUBSCRIPTION',\n UsageBased = 'USAGE_BASED'\n}\n\nexport enum DevPortalSubscriptionStatus {\n Active = 'ACTIVE',\n Cancelled = 'CANCELLED',\n Expired = 'EXPIRED',\n PastDue = 'PAST_DUE',\n Paused = 'PAUSED',\n Trialing = 'TRIALING',\n Unpaid = 'UNPAID'\n}\n\n/** Developer earnings dashboard */\nexport type DeveloperEarnings = {\n __typename?: 'DeveloperEarnings';\n currency: Scalars['String']['output'];\n earnings: Array<MonthlyEarning>;\n monthlyEarnings: Scalars['Float']['output'];\n monthlyOrders: Scalars['Int']['output'];\n topSellingItems: Array<ItemSalesStats>;\n totalEarnings: Scalars['Float']['output'];\n totalOrders: Scalars['Int']['output'];\n};\n\nexport type DeveloperEarningsInput = {\n endDate?: InputMaybe<Scalars['String']['input']>;\n period?: InputMaybe<Scalars['String']['input']>;\n startDate?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Developer Organization Invitation - invite existing users to join a dev org */\nexport type DeveloperOrgInvitation = {\n __typename?: 'DeveloperOrgInvitation';\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n expiresAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n invitedBy: Scalars['ID']['output'];\n invitedEmail: Scalars['String']['output'];\n invitedUserId?: Maybe<Scalars['ID']['output']>;\n memberId?: Maybe<Scalars['ID']['output']>;\n message?: Maybe<Scalars['String']['output']>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n organization: DeveloperOrganization;\n organizationId: Scalars['ID']['output'];\n permissions?: Maybe<Scalars['JSON']['output']>;\n respondedAt?: Maybe<Scalars['DateTime']['output']>;\n role: DeveloperOrgRole;\n status: InvitationStatus;\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type DeveloperOrgInvitationConnection = {\n __typename?: 'DeveloperOrgInvitationConnection';\n edges: Array<DeveloperOrgInvitationEdge>;\n pageInfo: PageInfo;\n totalCount: Scalars['Int']['output'];\n};\n\n/** Returned once by inviteDeveloperOrgMember. The token is only present here — never in subsequent invitation queries. */\nexport type DeveloperOrgInvitationCreated = {\n __typename?: 'DeveloperOrgInvitationCreated';\n invitation: DeveloperOrgInvitation;\n token: Scalars['String']['output'];\n};\n\nexport type DeveloperOrgInvitationEdge = {\n __typename?: 'DeveloperOrgInvitationEdge';\n cursor: Scalars['String']['output'];\n node: DeveloperOrgInvitation;\n};\n\n/** 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. */\nexport enum DeveloperOrgKind {\n Digital = 'DIGITAL',\n Physical = 'PHYSICAL'\n}\n\n/** Developer Organization Member - represents a member of a dev organization */\nexport type DeveloperOrgMember = {\n __typename?: 'DeveloperOrgMember';\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n email?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n invitationId?: Maybe<Scalars['ID']['output']>;\n invitedBy?: Maybe<Scalars['ID']['output']>;\n isActive: Scalars['Boolean']['output'];\n isSuspended: Scalars['Boolean']['output'];\n joinedAt: Scalars['DateTime']['output'];\n lastActiveAt?: Maybe<Scalars['DateTime']['output']>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n organization: DeveloperOrganization;\n organizationId: Scalars['ID']['output'];\n permissions?: Maybe<Scalars['JSON']['output']>;\n role: DeveloperOrgRole;\n suspendedAt?: Maybe<Scalars['DateTime']['output']>;\n suspendedReason?: Maybe<Scalars['String']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n userId: Scalars['ID']['output'];\n};\n\nexport type DeveloperOrgMemberConnection = {\n __typename?: 'DeveloperOrgMemberConnection';\n edges: Array<DeveloperOrgMemberEdge>;\n pageInfo: PageInfo;\n totalCount: Scalars['Int']['output'];\n};\n\nexport type DeveloperOrgMemberEdge = {\n __typename?: 'DeveloperOrgMemberEdge';\n cursor: Scalars['String']['output'];\n node: DeveloperOrgMember;\n};\n\n/** 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. */\nexport type DeveloperOrgMonthlyRevenuePoint = {\n __typename?: 'DeveloperOrgMonthlyRevenuePoint';\n grossRevenue: Scalars['Float']['output'];\n month: Scalars['DateTime']['output'];\n netRevenue: Scalars['Float']['output'];\n platformFees: Scalars['Float']['output'];\n refunds: Scalars['Float']['output'];\n salesCount: Scalars['Int']['output'];\n};\n\n/** Developer Organization Payment Method - for receiving payouts */\nexport type DeveloperOrgPaymentMethod = {\n __typename?: 'DeveloperOrgPaymentMethod';\n accountLast4?: Maybe<Scalars['String']['output']>;\n context?: Maybe<Scalars['JSON']['output']>;\n country?: Maybe<Scalars['String']['output']>;\n createdAt: Scalars['DateTime']['output'];\n currency: Scalars['String']['output'];\n displayName?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n isActive: Scalars['Boolean']['output'];\n isDefault: Scalars['Boolean']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n name: Scalars['String']['output'];\n organization: DeveloperOrganization;\n organizationId: Scalars['ID']['output'];\n status: PaymentMethodStatus;\n taxFormType?: Maybe<Scalars['String']['output']>;\n taxFormUrl?: Maybe<Scalars['String']['output']>;\n taxFormVerified: Scalars['Boolean']['output'];\n taxFormVerifiedAt?: Maybe<Scalars['DateTime']['output']>;\n type: DevPortalPaymentMethodType;\n updatedAt: Scalars['DateTime']['output'];\n verificationMethod?: Maybe<Scalars['String']['output']>;\n verifiedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\n/** Developer Organization Payout - monthly payouts to developers */\nexport type DeveloperOrgPayout = {\n __typename?: 'DeveloperOrgPayout';\n adjustments: Scalars['Float']['output'];\n approvedAt?: Maybe<Scalars['DateTime']['output']>;\n approvedBy?: Maybe<Scalars['ID']['output']>;\n completedAt?: Maybe<Scalars['DateTime']['output']>;\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n currency: Scalars['String']['output'];\n developerNotes?: Maybe<Scalars['String']['output']>;\n externalReference?: Maybe<Scalars['String']['output']>;\n failedAt?: Maybe<Scalars['DateTime']['output']>;\n failureCode?: Maybe<Scalars['String']['output']>;\n failureReason?: Maybe<Scalars['String']['output']>;\n grossRevenue: Scalars['Float']['output'];\n id: Scalars['ID']['output'];\n internalNotes?: Maybe<Scalars['String']['output']>;\n invoiceNumber?: Maybe<Scalars['String']['output']>;\n invoiceUrl?: Maybe<Scalars['String']['output']>;\n lastRetryAt?: Maybe<Scalars['DateTime']['output']>;\n meetsThreshold: Scalars['Boolean']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n minimumThreshold: Scalars['Float']['output'];\n netAmount: Scalars['Float']['output'];\n organization: DeveloperOrganization;\n organizationId: Scalars['ID']['output'];\n paymentMethod?: Maybe<DeveloperOrgPaymentMethod>;\n paymentMethodId?: Maybe<Scalars['ID']['output']>;\n periodEnd: Scalars['DateTime']['output'];\n periodLabel?: Maybe<Scalars['String']['output']>;\n periodStart: Scalars['DateTime']['output'];\n platformFees: Scalars['Float']['output'];\n processedAt?: Maybe<Scalars['DateTime']['output']>;\n receiptUrl?: Maybe<Scalars['String']['output']>;\n refunds: Scalars['Float']['output'];\n refundsCount: Scalars['Int']['output'];\n requiresApproval: Scalars['Boolean']['output'];\n retryCount: Scalars['Int']['output'];\n sales: Array<DeveloperOrgSale>;\n salesCount: Scalars['Int']['output'];\n scheduledAt?: Maybe<Scalars['DateTime']['output']>;\n status: PayoutStatus;\n transactionId?: Maybe<Scalars['ID']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type DeveloperOrgPayoutConnection = {\n __typename?: 'DeveloperOrgPayoutConnection';\n edges: Array<DeveloperOrgPayoutEdge>;\n pageInfo: PageInfo;\n totalCount: Scalars['Int']['output'];\n};\n\nexport type DeveloperOrgPayoutEdge = {\n __typename?: 'DeveloperOrgPayoutEdge';\n cursor: Scalars['String']['output'];\n node: DeveloperOrgPayout;\n};\n\n/** Developer Organization Revenue Analytics - aggregated revenue data */\nexport type DeveloperOrgRevenueAnalytics = {\n __typename?: 'DeveloperOrgRevenueAnalytics';\n appBreakdown?: Maybe<Scalars['JSON']['output']>;\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n date: Scalars['DateTime']['output'];\n geoBreakdown?: Maybe<Scalars['JSON']['output']>;\n grossRevenue: Scalars['Float']['output'];\n id: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n netRevenue: Scalars['Float']['output'];\n newCustomers: Scalars['Int']['output'];\n organization: DeveloperOrganization;\n organizationId: Scalars['ID']['output'];\n period: Scalars['String']['output'];\n platformFees: Scalars['Float']['output'];\n pricingModelBreakdown?: Maybe<Scalars['JSON']['output']>;\n refunds: Scalars['Float']['output'];\n refundsCount: Scalars['Int']['output'];\n salesCount: Scalars['Int']['output'];\n};\n\nexport enum DeveloperOrgRole {\n Admin = 'ADMIN',\n Developer = 'DEVELOPER',\n Owner = 'OWNER',\n Viewer = 'VIEWER'\n}\n\n/** Developer Organization Sale - tracks a sale of an application */\nexport type DeveloperOrgSale = {\n __typename?: 'DeveloperOrgSale';\n application?: Maybe<Application>;\n applicationId?: Maybe<Scalars['ID']['output']>;\n billingCreditSyncError?: Maybe<Scalars['String']['output']>;\n billingCreditSyncStatus: Scalars['String']['output'];\n billingCreditSyncedAt?: Maybe<Scalars['DateTime']['output']>;\n buyerOrgId?: Maybe<Scalars['ID']['output']>;\n buyerTenantId?: Maybe<Scalars['ID']['output']>;\n buyerUserId: Scalars['ID']['output'];\n buyerWorkspaceId?: Maybe<Scalars['ID']['output']>;\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n currency: Scalars['String']['output'];\n discountAmount?: Maybe<Scalars['Float']['output']>;\n discountCode?: Maybe<Scalars['String']['output']>;\n grossAmount: Scalars['Float']['output'];\n id: Scalars['ID']['output'];\n installationId?: Maybe<Scalars['ID']['output']>;\n installationScope: Scalars['String']['output'];\n isPaidOut: Scalars['Boolean']['output'];\n isRenewal: Scalars['Boolean']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n netAmount: Scalars['Float']['output'];\n organization: DeveloperOrganization;\n organizationId: Scalars['ID']['output'];\n payoutId?: Maybe<Scalars['ID']['output']>;\n planId?: Maybe<Scalars['ID']['output']>;\n planName?: Maybe<Scalars['String']['output']>;\n platformFee: Scalars['Float']['output'];\n platformFeeRate: Scalars['Float']['output'];\n previousSaleId?: Maybe<Scalars['ID']['output']>;\n pricingModel: DevPortalPricingModel;\n purchasedAt: Scalars['DateTime']['output'];\n refundAmount?: Maybe<Scalars['Float']['output']>;\n refundReason?: Maybe<Scalars['String']['output']>;\n refundedAt?: Maybe<Scalars['DateTime']['output']>;\n refundedBy?: Maybe<Scalars['ID']['output']>;\n status: SaleStatus;\n storeOrderId?: Maybe<Scalars['ID']['output']>;\n storeProductId?: Maybe<Scalars['ID']['output']>;\n subscriptionPeriodEnd?: Maybe<Scalars['DateTime']['output']>;\n subscriptionPeriodStart?: Maybe<Scalars['DateTime']['output']>;\n taxAmount?: Maybe<Scalars['Float']['output']>;\n taxCountry?: Maybe<Scalars['String']['output']>;\n taxRate?: Maybe<Scalars['Float']['output']>;\n taxRegion?: Maybe<Scalars['String']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type DeveloperOrgSaleConnection = {\n __typename?: 'DeveloperOrgSaleConnection';\n edges: Array<DeveloperOrgSaleEdge>;\n pageInfo: PageInfo;\n totalCount: Scalars['Int']['output'];\n};\n\nexport type DeveloperOrgSaleEdge = {\n __typename?: 'DeveloperOrgSaleEdge';\n cursor: Scalars['String']['output'];\n node: DeveloperOrgSale;\n};\n\n/** Developer Organization Subscription - platform tier or app subscriptions */\nexport type DeveloperOrgSubscription = {\n __typename?: 'DeveloperOrgSubscription';\n amount: Scalars['Float']['output'];\n applicationId?: Maybe<Scalars['ID']['output']>;\n cancelAtPeriodEnd: Scalars['Boolean']['output'];\n cancelReason?: Maybe<Scalars['String']['output']>;\n cancelledAt?: Maybe<Scalars['DateTime']['output']>;\n context?: Maybe<Scalars['JSON']['output']>;\n couponCode?: Maybe<Scalars['String']['output']>;\n createdAt: Scalars['DateTime']['output'];\n currency: Scalars['String']['output'];\n currentPeriodEnd: Scalars['DateTime']['output'];\n currentPeriodStart: Scalars['DateTime']['output'];\n discountEndsAt?: Maybe<Scalars['DateTime']['output']>;\n discountPercent?: Maybe<Scalars['Float']['output']>;\n id: Scalars['ID']['output'];\n interval: BillingInterval;\n metadata?: Maybe<Scalars['JSON']['output']>;\n nextInvoiceAmount?: Maybe<Scalars['Float']['output']>;\n nextInvoiceAt?: Maybe<Scalars['DateTime']['output']>;\n organization: DeveloperOrganization;\n organizationId: Scalars['ID']['output'];\n planId?: Maybe<Scalars['ID']['output']>;\n planName?: Maybe<Scalars['String']['output']>;\n status: DevPortalSubscriptionStatus;\n stripeCustomerId?: Maybe<Scalars['ID']['output']>;\n stripePaymentMethodId?: Maybe<Scalars['ID']['output']>;\n stripePriceId?: Maybe<Scalars['ID']['output']>;\n stripeSubscriptionId?: Maybe<Scalars['ID']['output']>;\n subscriptionType: Scalars['String']['output'];\n tier?: Maybe<DeveloperOrgTier>;\n trialEnd?: Maybe<Scalars['DateTime']['output']>;\n trialStart?: Maybe<Scalars['DateTime']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n usageLimit?: Maybe<Scalars['Int']['output']>;\n usageQuantity?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type DeveloperOrgSubscriptionConnection = {\n __typename?: 'DeveloperOrgSubscriptionConnection';\n edges: Array<DeveloperOrgSubscriptionEdge>;\n pageInfo: PageInfo;\n totalCount: Scalars['Int']['output'];\n};\n\nexport type DeveloperOrgSubscriptionEdge = {\n __typename?: 'DeveloperOrgSubscriptionEdge';\n cursor: Scalars['String']['output'];\n node: DeveloperOrgSubscription;\n};\n\nexport enum DeveloperOrgTier {\n Developer = 'DEVELOPER',\n Enterprise = 'ENTERPRISE',\n Free = 'FREE',\n Professional = 'PROFESSIONAL'\n}\n\nexport enum DeveloperOrgVerificationStatus {\n Pending = 'PENDING',\n Rejected = 'REJECTED',\n Unverified = 'UNVERIFIED',\n Verified = 'VERIFIED'\n}\n\n/** Developer Organization - represents a team or company of developers */\nexport type DeveloperOrganization = {\n __typename?: 'DeveloperOrganization';\n activeInstalls: Scalars['Int']['output'];\n apiCallsLimit: Scalars['Int']['output'];\n apiCallsUsed: Scalars['String']['output'];\n applications: Array<Application>;\n averageRating?: Maybe<Scalars['Float']['output']>;\n bannerUrl?: Maybe<Scalars['String']['output']>;\n billingAccountId?: Maybe<Scalars['ID']['output']>;\n billingLinkedAt?: Maybe<Scalars['DateTime']['output']>;\n certificationExpiry?: Maybe<Scalars['DateTime']['output']>;\n certifiedAt?: Maybe<Scalars['DateTime']['output']>;\n contactEmail?: Maybe<Scalars['String']['output']>;\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n description?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n invitations: Array<DeveloperOrgInvitation>;\n isCertified: Scalars['Boolean']['output'];\n isVerified: Scalars['Boolean']['output'];\n kind: DeveloperOrgKind;\n legalAddress?: Maybe<Scalars['JSON']['output']>;\n legalEntityName?: Maybe<Scalars['String']['output']>;\n legalEntityType?: Maybe<Scalars['String']['output']>;\n lifetimeRevenue: Scalars['Float']['output'];\n logoUrl?: Maybe<Scalars['String']['output']>;\n members: Array<DeveloperOrgMember>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n name: Scalars['String']['output'];\n partnerSince?: Maybe<Scalars['DateTime']['output']>;\n partnerTier?: Maybe<PartnerTier>;\n paymentMethods: Array<DeveloperOrgPaymentMethod>;\n payouts: Array<DeveloperOrgPayout>;\n pendingBalance: Scalars['Float']['output'];\n /** Dedicated pickup pincode for carrier rate quoting (Shiprocket, etc) on physical-goods orders. Checked before falling back to the linked billing account's address — see global-store-svc's resolvePickupPostalCode. */\n pickupPostalCode?: Maybe<Scalars['String']['output']>;\n platformFeeRate: Scalars['Float']['output'];\n publishedApps: Scalars['Int']['output'];\n quotaResetAt?: Maybe<Scalars['DateTime']['output']>;\n revenueAnalytics: Array<DeveloperOrgRevenueAnalytics>;\n sales: Array<DeveloperOrgSale>;\n settings?: Maybe<Scalars['JSON']['output']>;\n slug: Scalars['String']['output'];\n storageLimit: Scalars['String']['output'];\n storageUsed: Scalars['String']['output'];\n subscriptions: Array<DeveloperOrgSubscription>;\n supportEmail?: Maybe<Scalars['String']['output']>;\n taxCountry?: Maybe<Scalars['String']['output']>;\n taxFormType?: Maybe<Scalars['String']['output']>;\n taxFormVerified: Scalars['Boolean']['output'];\n taxId?: Maybe<Scalars['String']['output']>;\n tier: DeveloperOrgTier;\n totalApiCalls: Scalars['String']['output'];\n totalApps: Scalars['Int']['output'];\n totalInstalls: Scalars['Int']['output'];\n totalPayouts: Scalars['Float']['output'];\n totalPlatformFees: Scalars['Float']['output'];\n totalRevenue: Scalars['Float']['output'];\n updatedAt: Scalars['DateTime']['output'];\n verificationDomain?: Maybe<Scalars['String']['output']>;\n verificationEvidenceUrl?: Maybe<Scalars['String']['output']>;\n verificationMethod?: Maybe<Scalars['String']['output']>;\n verificationRejectedReason?: Maybe<Scalars['String']['output']>;\n verificationRequestNotes?: Maybe<Scalars['String']['output']>;\n verificationRequestedAt?: Maybe<Scalars['DateTime']['output']>;\n verificationRequestedBy?: Maybe<Scalars['ID']['output']>;\n verificationReviewNotes?: Maybe<Scalars['String']['output']>;\n verificationReviewedAt?: Maybe<Scalars['DateTime']['output']>;\n verificationReviewedBy?: Maybe<Scalars['ID']['output']>;\n verificationStatus: DeveloperOrgVerificationStatus;\n verifiedAt?: Maybe<Scalars['DateTime']['output']>;\n websiteUrl?: Maybe<Scalars['String']['output']>;\n};\n\nexport type DeveloperOrganizationConnection = {\n __typename?: 'DeveloperOrganizationConnection';\n edges: Array<DeveloperOrganizationEdge>;\n pageInfo: PageInfo;\n totalCount: Scalars['Int']['output'];\n};\n\nexport type DeveloperOrganizationEdge = {\n __typename?: 'DeveloperOrganizationEdge';\n cursor: Scalars['String']['output'];\n node: DeveloperOrganization;\n};\n\nexport type DeveloperProfile = {\n __typename?: 'DeveloperProfile';\n applicationCount: Scalars['Int']['output'];\n averageRating?: Maybe<Scalars['Float']['output']>;\n bio?: Maybe<Scalars['String']['output']>;\n companyName?: Maybe<Scalars['String']['output']>;\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n emailNotifications: Scalars['Boolean']['output'];\n githubUsername?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n isVerified: Scalars['Boolean']['output'];\n linkedinUrl?: Maybe<Scalars['String']['output']>;\n marketingEmails: Scalars['Boolean']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n tenantId: Scalars['ID']['output'];\n totalInstalls: Scalars['Int']['output'];\n twitterUsername?: Maybe<Scalars['String']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n userId: Scalars['ID']['output'];\n verifiedAt?: Maybe<Scalars['DateTime']['output']>;\n website?: Maybe<Scalars['String']['output']>;\n};\n\n/** 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. */\nexport type DeviceToken = {\n __typename?: 'DeviceToken';\n createdAt: Scalars['DateTime']['output'];\n deviceId: Scalars['String']['output'];\n /** 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. */\n fcmProject?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n lastUsedAt: Scalars['DateTime']['output'];\n platform: Scalars['String']['output'];\n /** Product whose app install minted this token (e.g. \"vibecontrols\"). Null on rows registered before push routing existed; such rows are not deliverable. */\n productSlug?: Maybe<Scalars['String']['output']>;\n /** 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. */\n token: Scalars['String']['output'];\n};\n\nexport enum DeviceType {\n Desktop = 'DESKTOP',\n Mobile = 'MOBILE',\n Tablet = 'TABLET'\n}\n\nexport type DeviceTypeStats = {\n __typename?: 'DeviceTypeStats';\n completionRate: Scalars['Float']['output'];\n count: Scalars['Int']['output'];\n deviceType: DeviceType;\n};\n\nexport enum DevportalExportFormat {\n /** Comma-separated values; first row is the header. */\n Csv = 'CSV',\n /** JSON array; one row per element. */\n Json = 'JSON',\n /** JSON-Lines; one row per line (good for streaming consumers). */\n Jsonl = 'JSONL'\n}\n\n/** 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:)`. */\nexport type DevportalExportJob = {\n __typename?: 'DevportalExportJob';\n byteSize?: Maybe<Scalars['Int']['output']>;\n completedAt?: Maybe<Scalars['DateTime']['output']>;\n createdAt: Scalars['DateTime']['output'];\n /** 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. */\n downloadUrl?: Maybe<Scalars['String']['output']>;\n /** ISO timestamp when downloadUrl expires (24h default). */\n downloadUrlExpiresAt?: Maybe<Scalars['DateTime']['output']>;\n entityType: Scalars['String']['output'];\n error?: Maybe<Scalars['String']['output']>;\n format: DevportalExportFormat;\n id: Scalars['ID']['output'];\n rowCount?: Maybe<Scalars['Int']['output']>;\n status: DevportalExportStatus;\n};\n\nexport enum DevportalExportStatus {\n /** Job finished successfully; downloadUrl is populated. */\n Completed = 'COMPLETED',\n /** Job has been accepted and is queued. */\n Created = 'CREATED',\n /** Job failed; error contains the reason. */\n Failed = 'FAILED',\n /** Job is currently materialising the export payload. */\n Running = 'RUNNING'\n}\n\nexport type DigestChallengeResult = {\n __typename?: 'DigestChallengeResult';\n algorithm: Scalars['String']['output'];\n nonce: Scalars['String']['output'];\n opaque: Scalars['String']['output'];\n qop: Scalars['String']['output'];\n realm: Scalars['String']['output'];\n};\n\nexport enum DimensionUnit {\n Centimeter = 'CENTIMETER',\n Inch = 'INCH',\n Meter = 'METER'\n}\n\n/** DSAR mode — GDPR Art. 15 (access/export) or Art. 17 (erasure). */\nexport enum DsarMode {\n Erase = 'ERASE',\n Export = 'EXPORT'\n}\n\n/** 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. */\nexport type DsarOrchestrationResult = {\n __typename?: 'DsarOrchestrationResult';\n completedAt: Scalars['DateTime']['output'];\n dryRun: Scalars['Boolean']['output'];\n failureCount: Scalars['Int']['output'];\n mode: DsarMode;\n results: Array<DsarServiceResult>;\n startedAt: Scalars['DateTime']['output'];\n subjectId: Scalars['ID']['output'];\n successCount: Scalars['Int']['output'];\n};\n\n/** 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. */\nexport type DsarServiceResult = {\n __typename?: 'DsarServiceResult';\n data?: Maybe<Scalars['JSON']['output']>;\n error?: Maybe<Scalars['String']['output']>;\n service: Scalars['String']['output'];\n success: Scalars['Boolean']['output'];\n};\n\n/** A candidate email address that failed during the duplicate-notice mutation. */\nexport type DuplicateNoticeFailed = {\n __typename?: 'DuplicateNoticeFailed';\n email: Scalars['String']['output'];\n message: Scalars['String']['output'];\n};\n\n/** 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. */\nexport type DuplicateNoticeResult = {\n __typename?: 'DuplicateNoticeResult';\n failed: Array<DuplicateNoticeFailed>;\n skipped: Array<DuplicateNoticeSkipped>;\n succeeded: Array<JobApplication>;\n};\n\n/** A candidate email address skipped by the duplicate-notice mutation, with why. */\nexport type DuplicateNoticeSkipped = {\n __typename?: 'DuplicateNoticeSkipped';\n email: Scalars['String']['output'];\n message: Scalars['String']['output'];\n reason: BulkSendSkipReason;\n};\n\nexport type EarnCreditsInput = {\n amount: Scalars['Float']['input'];\n billingAccountId: Scalars['ID']['input'];\n description?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n productId?: InputMaybe<Scalars['String']['input']>;\n sourceReferenceId?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum EarningUnitType {\n Credits = 'CREDITS',\n Money = 'MONEY'\n}\n\nexport type EarningsCategoryBreakdown = {\n __typename?: 'EarningsCategoryBreakdown';\n amount: Scalars['Float']['output'];\n category: EarningsSourceCategory;\n count: Scalars['Int']['output'];\n};\n\nexport type EarningsEntry = {\n __typename?: 'EarningsEntry';\n amount: Scalars['Float']['output'];\n availableAt: Scalars['DateTime']['output'];\n billingAccountId: Scalars['ID']['output'];\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n currency: Scalars['String']['output'];\n description?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n ownerUserId?: Maybe<Scalars['String']['output']>;\n paidAt?: Maybe<Scalars['DateTime']['output']>;\n payoutRequestId?: Maybe<Scalars['ID']['output']>;\n reservedAt?: Maybe<Scalars['DateTime']['output']>;\n sourceCategory: EarningsSourceCategory;\n sourceEventId?: Maybe<Scalars['String']['output']>;\n sourceReferenceId?: Maybe<Scalars['String']['output']>;\n sourceSubcategory?: Maybe<Scalars['String']['output']>;\n status: EarningsEntryStatus;\n unitType: EarningUnitType;\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type EarningsEntryConnection = {\n __typename?: 'EarningsEntryConnection';\n hasMore: Scalars['Boolean']['output'];\n items: Array<EarningsEntry>;\n totalCount: Scalars['Int']['output'];\n};\n\nexport type EarningsEntryFilterInput = {\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n sourceCategory?: InputMaybe<EarningsSourceCategory>;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n status?: InputMaybe<EarningsEntryStatus>;\n unitType?: InputMaybe<EarningUnitType>;\n};\n\nexport enum EarningsEntryStatus {\n Available = 'AVAILABLE',\n Paid = 'PAID',\n Reserved = 'RESERVED',\n Reversed = 'REVERSED'\n}\n\nexport enum EarningsSourceCategory {\n Affiliate = 'AFFILIATE',\n Other = 'OTHER',\n Store = 'STORE'\n}\n\nexport type EarningsSummary = {\n __typename?: 'EarningsSummary';\n availableAmount: Scalars['Float']['output'];\n categoryBreakdown: Array<EarningsCategoryBreakdown>;\n creditsAmount: Scalars['Float']['output'];\n moneyAmount: Scalars['Float']['output'];\n paidAmount: Scalars['Float']['output'];\n pendingAmount: Scalars['Float']['output'];\n reservedAmount: Scalars['Float']['output'];\n totalLifetimeAmount: Scalars['Float']['output'];\n};\n\nexport type EditorialCollection = {\n __typename?: 'EditorialCollection';\n endsAt?: Maybe<Scalars['DateTime']['output']>;\n heroAssetId?: Maybe<Scalars['ID']['output']>;\n id: Scalars['ID']['output'];\n isActive: Scalars['Boolean']['output'];\n orderIndex: Scalars['Int']['output'];\n productIds: Array<Scalars['ID']['output']>;\n slug: Scalars['String']['output'];\n startsAt?: Maybe<Scalars['DateTime']['output']>;\n storeId: Scalars['ID']['output'];\n subtitle?: Maybe<Scalars['String']['output']>;\n title: Scalars['String']['output'];\n};\n\n/** Computed effective permissions for an actor */\nexport type EffectivePermissions = {\n __typename?: 'EffectivePermissions';\n actorId: Scalars['String']['output'];\n /** Cache key for debugging and invalidation */\n cacheKey?: Maybe<Scalars['String']['output']>;\n /** When this permission set should be considered stale. Frontend should refresh after this time. */\n expiresAt: Scalars['DateTime']['output'];\n /** 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:*\") */\n permissionStrings: Array<Scalars['String']['output']>;\n /** Resource types and their effective levels */\n permissions: Array<EffectiveResourcePermission>;\n /** Role names assigned to the actor in this scope */\n roles: Array<Scalars['String']['output']>;\n scopeId: Scalars['String']['output'];\n};\n\n/** Effective permission for a resource type */\nexport type EffectiveResourcePermission = {\n __typename?: 'EffectiveResourcePermission';\n /** Actions allowed at this level */\n allowedActions: Array<Scalars['String']['output']>;\n level: RoleLevel;\n /** Any overrides affecting this permission */\n overrides: Array<PermissionOverride>;\n resourceType: Scalars['String']['output'];\n /** Source of this permission (role name) */\n source: Scalars['String']['output'];\n};\n\nexport type EmailVerificationResult = {\n __typename?: 'EmailVerificationResult';\n email?: Maybe<Scalars['String']['output']>;\n message: Scalars['String']['output'];\n success: Scalars['Boolean']['output'];\n};\n\nexport enum EmploymentType {\n Contract = 'CONTRACT',\n FullTime = 'FULL_TIME',\n Internship = 'INTERNSHIP',\n PartTime = 'PART_TIME'\n}\n\n/** 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). */\nexport type EnsureOrganizationMemberInput = {\n organizationId: Scalars['String']['input'];\n role?: InputMaybe<UserRole>;\n userId: Scalars['String']['input'];\n};\n\n/** 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). */\nexport type EnsureOrganizationMemberResult = {\n __typename?: 'EnsureOrganizationMemberResult';\n created: Scalars['Boolean']['output'];\n member: OrganizationMember;\n roleAssigned: Scalars['Boolean']['output'];\n};\n\n/** Response for ensureStoreOrderBillingOrder */\nexport type EnsureStoreOrderBillingOrderResponse = {\n __typename?: 'EnsureStoreOrderBillingOrderResponse';\n billingOrderId?: Maybe<Scalars['String']['output']>;\n error?: Maybe<Scalars['String']['output']>;\n success: Scalars['Boolean']['output'];\n};\n\n/** Defines the access type for subscription entitlements */\nexport enum EntitlementAccessType {\n /** User gets a discount on the store item with this plan */\n Discount = 'DISCOUNT',\n /** User gets free access to the store item with this plan */\n FreeAccess = 'FREE_ACCESS'\n}\n\nexport type EntitlementSeatAssignment = {\n __typename?: 'EntitlementSeatAssignment';\n assignedAt: Scalars['DateTime']['output'];\n assignedBy?: Maybe<Scalars['String']['output']>;\n assigneeId: Scalars['String']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n};\n\nexport type EntitlementSeatSummary = {\n __typename?: 'EntitlementSeatSummary';\n assignments: Array<EntitlementSeatAssignment>;\n entitlementId: Scalars['ID']['output'];\n maxSeats: Scalars['Int']['output'];\n seatsAvailable: Scalars['Int']['output'];\n seatsInUse: Scalars['Int']['output'];\n};\n\nexport enum EntitlementStatus {\n Active = 'ACTIVE',\n Expired = 'EXPIRED',\n Revoked = 'REVOKED',\n Suspended = 'SUSPENDED'\n}\n\nexport type EraseResult = {\n __typename?: 'EraseResult';\n anonymised: Scalars['Int']['output'];\n dryRun: Scalars['Boolean']['output'];\n notes?: Maybe<Scalars['String']['output']>;\n purged: Scalars['Int']['output'];\n retainedForLegalReason?: Maybe<Scalars['String']['output']>;\n service: Scalars['String']['output'];\n};\n\nexport type EvaluateFeatureFlagsInput = {\n /** Specific flag keys to evaluate. If empty, evaluates ALL active flags. */\n keys?: InputMaybe<Array<Scalars['String']['input']>>;\n /** 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. */\n productSlug?: InputMaybe<Scalars['String']['input']>;\n workspaceId: Scalars['String']['input'];\n};\n\nexport type ExchangeTokenInput = {\n appId: Scalars['String']['input'];\n scopes?: InputMaybe<Array<Scalars['String']['input']>>;\n userId: Scalars['String']['input'];\n};\n\nexport type ExecutionUpdate = {\n __typename?: 'ExecutionUpdate';\n duration?: Maybe<Scalars['Int']['output']>;\n error?: Maybe<Scalars['String']['output']>;\n executionId: Scalars['ID']['output'];\n output?: Maybe<Scalars['JSON']['output']>;\n progress?: Maybe<Scalars['Int']['output']>;\n scheduleId: Scalars['ID']['output'];\n status: JobStatus;\n success: Scalars['Boolean']['output'];\n timestamp: Scalars['DateTime']['output'];\n};\n\nexport enum ExecutorType {\n Email = 'EMAIL',\n Function = 'FUNCTION',\n Graphql = 'GRAPHQL',\n InternalApi = 'INTERNAL_API',\n NatsTopic = 'NATS_TOPIC',\n Webhook = 'WEBHOOK'\n}\n\nexport type ExploreAdminClick = {\n __typename?: 'ExploreAdminClick';\n createdAt: Scalars['DateTime']['output'];\n ctaKind?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n kind: Scalars['String']['output'];\n product?: Maybe<Scalars['String']['output']>;\n url: Scalars['String']['output'];\n};\n\nexport type ExploreAdminConversation = {\n __typename?: 'ExploreAdminConversation';\n /** Number of links followed across the whole conversation. */\n clickCount: Scalars['Int']['output'];\n createdAt: Scalars['DateTime']['output'];\n /** True when at least one answer in the thread could not be grounded. */\n hasUnanswered: Scalars['Boolean']['output'];\n id: Scalars['ID']['output'];\n /** Salted hash of the visitor's IP. Never an IP — grouping only. */\n ipHash: Scalars['String']['output'];\n lastMessageAt?: Maybe<Scalars['DateTime']['output']>;\n locale?: Maybe<Scalars['String']['output']>;\n messages: Array<ExploreAdminMessage>;\n productSlug?: Maybe<Scalars['String']['output']>;\n turnCount: Scalars['Int']['output'];\n};\n\nexport type ExploreAdminConversationPage = {\n __typename?: 'ExploreAdminConversationPage';\n hasMore: Scalars['Boolean']['output'];\n items: Array<ExploreAdminConversation>;\n totalCount: Scalars['Int']['output'];\n};\n\nexport type ExploreAdminFilter = {\n /** Only conversations where at least one link was followed. */\n convertedOnly?: InputMaybe<Scalars['Boolean']['input']>;\n from?: InputMaybe<Scalars['DateTime']['input']>;\n /** Salted IP hash, to group one visitor's sessions. */\n ipHash?: InputMaybe<Scalars['String']['input']>;\n /** Match conversations that started on this product's website. */\n productSlug?: InputMaybe<Scalars['String']['input']>;\n /** Free-text match against message content. */\n search?: InputMaybe<Scalars['String']['input']>;\n to?: InputMaybe<Scalars['DateTime']['input']>;\n /** Only conversations containing an answer the corpus could not ground. */\n unansweredOnly?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type ExploreAdminMessage = {\n __typename?: 'ExploreAdminMessage';\n /** Whether the corpus could ground this answer. False = we could not answer. */\n answered: Scalars['Boolean']['output'];\n /** Links a visitor actually followed from this answer. */\n clicks: Array<ExploreAdminClick>;\n completedAt?: Maybe<Scalars['DateTime']['output']>;\n content: Scalars['String']['output'];\n conversationId: Scalars['ID']['output'];\n createdAt: Scalars['DateTime']['output'];\n ctas: Array<ExploreCta>;\n errorCode?: Maybe<Scalars['String']['output']>;\n followUps: Array<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n references: Array<ExploreReference>;\n role: ExploreMessageRole;\n status: ExploreMessageStatus;\n};\n\n/** Rollup of where the assistant is actually sending people, per product. The signal the product did not have: answers cited vs links followed. */\nexport type ExploreAdminProductStat = {\n __typename?: 'ExploreAdminProductStat';\n /** Answers that cited this product. */\n answerCount: Scalars['Int']['output'];\n /** Links to this product that were actually followed. */\n clickCount: Scalars['Int']['output'];\n product: Scalars['String']['output'];\n};\n\nexport enum ExploreAdminSort {\n MostClicks = 'MOST_CLICKS',\n MostTurns = 'MOST_TURNS',\n Newest = 'NEWEST',\n Oldest = 'OLDEST'\n}\n\nexport type ExploreAdminStats = {\n __typename?: 'ExploreAdminStats';\n byProduct: Array<ExploreAdminProductStat>;\n clicks: Scalars['Int']['output'];\n conversations: Scalars['Int']['output'];\n messages: Scalars['Int']['output'];\n /** Assistant answers the corpus could not ground. */\n unanswered: Scalars['Int']['output'];\n};\n\nexport type ExploreAgentActivity = {\n __typename?: 'ExploreAgentActivity';\n at: Scalars['DateTime']['output'];\n detail?: Maybe<Scalars['String']['output']>;\n kind: Scalars['String']['output'];\n};\n\nexport type ExploreAgentCatalog = {\n __typename?: 'ExploreAgentCatalog';\n builtAt: Scalars['DateTime']['output'];\n products: Array<ExploreAgentProduct>;\n};\n\nexport type ExploreAgentCtaSuggestion = {\n __typename?: 'ExploreAgentCtaSuggestion';\n label: Scalars['String']['output'];\n url: Scalars['String']['output'];\n};\n\nexport type ExploreAgentHistoryTurnInput = {\n content: Scalars['String']['input'];\n role: ExploreAgentRole;\n};\n\nexport type ExploreAgentJob = {\n __typename?: 'ExploreAgentJob';\n activity: Array<ExploreAgentActivity>;\n /** The finished answer. Null until status is COMPLETED. */\n answer?: Maybe<Scalars['String']['output']>;\n createdAt: Scalars['DateTime']['output'];\n /** 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. */\n ctaSuggestions: Array<ExploreAgentCtaSuggestion>;\n errorCode?: Maybe<Scalars['String']['output']>;\n errorMessage?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n /** Answer text so far, for a streaming-style preview while the turn runs. */\n partialText?: Maybe<Scalars['String']['output']>;\n references: Array<ExploreAgentReference>;\n status: ExploreAgentJobStatus;\n updatedAt: Scalars['DateTime']['output'];\n usage?: Maybe<ExploreAgentUsage>;\n};\n\nexport enum ExploreAgentJobStatus {\n Completed = 'COMPLETED',\n Failed = 'FAILED',\n Queued = 'QUEUED',\n Running = 'RUNNING'\n}\n\nexport type ExploreAgentPage = {\n __typename?: 'ExploreAgentPage';\n description?: Maybe<Scalars['String']['output']>;\n group?: Maybe<Scalars['String']['output']>;\n title: Scalars['String']['output'];\n url: Scalars['String']['output'];\n};\n\nexport type ExploreAgentProduct = {\n __typename?: 'ExploreAgentProduct';\n name: Scalars['String']['output'];\n pages: Array<ExploreAgentPage>;\n slug: Scalars['String']['output'];\n tagline?: Maybe<Scalars['String']['output']>;\n website: Scalars['String']['output'];\n};\n\nexport type ExploreAgentReference = {\n __typename?: 'ExploreAgentReference';\n product?: Maybe<Scalars['String']['output']>;\n title?: Maybe<Scalars['String']['output']>;\n url: Scalars['String']['output'];\n};\n\nexport enum ExploreAgentRole {\n Assistant = 'ASSISTANT',\n User = 'USER'\n}\n\nexport type ExploreAgentSubmitInput = {\n /** Context block for files the visitor attached, already sanitised and wrapped as untrusted data by the edge. Injected verbatim alongside the conversation history. */\n attachmentContext?: InputMaybe<Scalars['String']['input']>;\n /** Caller correlation id, echoed in logs. Never shown to the model. */\n clientRef?: InputMaybe<Scalars['String']['input']>;\n /** Prior turns, oldest first. Truncated to the configured history window. */\n history?: InputMaybe<Array<ExploreAgentHistoryTurnInput>>;\n locale?: InputMaybe<Scalars['String']['input']>;\n /** The visitor's question. Treated as untrusted data by the agent. */\n message: Scalars['String']['input'];\n /** Catalog slug of the website the visitor is on. A hint only. */\n productSlug?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type ExploreAgentUsage = {\n __typename?: 'ExploreAgentUsage';\n costUsd?: Maybe<Scalars['Float']['output']>;\n durationMs?: Maybe<Scalars['Int']['output']>;\n inputTokens?: Maybe<Scalars['Int']['output']>;\n model?: Maybe<Scalars['String']['output']>;\n outputTokens?: Maybe<Scalars['Int']['output']>;\n toolCalls?: Maybe<Scalars['Int']['output']>;\n};\n\n/** What the server accepted, echoed back so the UI can show it honestly. */\nexport type ExploreAttachment = {\n __typename?: 'ExploreAttachment';\n mimeType: Scalars['String']['output'];\n name: Scalars['String']['output'];\n size: Scalars['Int']['output'];\n /** False when only the filename and type could be used as context. */\n textExtracted: Scalars['Boolean']['output'];\n};\n\n/** 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\". */\nexport type ExploreAttachmentInput = {\n mimeType: Scalars['String']['input'];\n name: Scalars['String']['input'];\n /** Original size in bytes, for display and server-side limit enforcement. */\n size: Scalars['Int']['input'];\n /** Extracted text, already truncated by the client. Null for binary formats. */\n textContent?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** 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. */\nexport type ExploreCatalog = {\n __typename?: 'ExploreCatalog';\n captchaRequired: Scalars['Boolean']['output'];\n enabled: Scalars['Boolean']['output'];\n examplePrompts: Array<Scalars['String']['output']>;\n limits: ExploreLimits;\n products: Array<ExploreProduct>;\n recaptchaSiteKey?: Maybe<Scalars['String']['output']>;\n welcomeBody: Scalars['String']['output'];\n welcomeTitle: Scalars['String']['output'];\n};\n\n/** 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. */\nexport type ExploreConversation = {\n __typename?: 'ExploreConversation';\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n productSlug?: Maybe<Scalars['String']['output']>;\n token: Scalars['String']['output'];\n turnCount: Scalars['Int']['output'];\n};\n\n/** A call-to-action button derived from a cited link. `kind` is one of: CONTACT PARTNERS PRICING SERVICES WAITLIST STORE APP DOCS OTHER. */\nexport type ExploreCta = {\n __typename?: 'ExploreCta';\n kind: Scalars['String']['output'];\n label: Scalars['String']['output'];\n product?: Maybe<Scalars['String']['output']>;\n url: Scalars['String']['output'];\n};\n\n/** Server-enforced limits, surfaced so the UI can pre-validate instead of discovering them through an error. */\nexport type ExploreLimits = {\n __typename?: 'ExploreLimits';\n historyTurns: Scalars['Int']['output'];\n maxMessageLength: Scalars['Int']['output'];\n maxTurnsPerConversation: Scalars['Int']['output'];\n messagesPerDay: Scalars['Int']['output'];\n};\n\n/** One turn in an explore conversation. USER messages are always COMPLETED on creation; ASSISTANT messages start PENDING and must be polled. */\nexport type ExploreMessage = {\n __typename?: 'ExploreMessage';\n /** Human-readable progress lines (e.g. \"Searching vibecontrols…\"). */\n activity: Array<Scalars['String']['output']>;\n /** 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. */\n answered: Scalars['Boolean']['output'];\n /** Files the visitor attached to THIS turn (user messages only). */\n attachments: Array<ExploreAttachment>;\n completedAt?: Maybe<Scalars['DateTime']['output']>;\n /** Final answer (markdown). Empty string while PENDING/RUNNING. */\n content: Scalars['String']['output'];\n conversationId: Scalars['ID']['output'];\n createdAt: Scalars['DateTime']['output'];\n ctas: Array<ExploreCta>;\n errorCode?: Maybe<Scalars['String']['output']>;\n /** Suggested next questions, derived from what this answer actually covered. Empty until the turn completes, and empty when nothing useful can be derived. */\n followUps: Array<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n /** Streaming preview while PENDING/RUNNING. */\n partialContent?: Maybe<Scalars['String']['output']>;\n references: Array<ExploreReference>;\n role: ExploreMessageRole;\n status: ExploreMessageStatus;\n};\n\nexport enum ExploreMessageRole {\n Assistant = 'ASSISTANT',\n User = 'USER'\n}\n\nexport enum ExploreMessageStatus {\n Completed = 'COMPLETED',\n Failed = 'FAILED',\n Pending = 'PENDING',\n Running = 'RUNNING'\n}\n\n/** A product the explore agent can answer about, from its baked corpus. */\nexport type ExploreProduct = {\n __typename?: 'ExploreProduct';\n name: Scalars['String']['output'];\n slug: Scalars['String']['output'];\n tagline?: Maybe<Scalars['String']['output']>;\n website: Scalars['String']['output'];\n};\n\n/** 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. */\nexport type ExploreReference = {\n __typename?: 'ExploreReference';\n description?: Maybe<Scalars['String']['output']>;\n imageUrl?: Maybe<Scalars['String']['output']>;\n /** 1-based citation number. The answer text carries matching `[n]` markers, so a reader can check the specific claim rather than the whole answer. */\n index: Scalars['Int']['output'];\n product?: Maybe<Scalars['String']['output']>;\n title?: Maybe<Scalars['String']['output']>;\n url: Scalars['String']['output'];\n};\n\n/** 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. */\nexport type ExploreShareLink = {\n __typename?: 'ExploreShareLink';\n shareToken: Scalars['String']['output'];\n};\n\nexport type ExportApplicationsFilter = {\n appType?: InputMaybe<AppType>;\n category?: InputMaybe<Scalars['String']['input']>;\n createdAfter?: InputMaybe<Scalars['DateTime']['input']>;\n createdBefore?: InputMaybe<Scalars['DateTime']['input']>;\n developerId?: InputMaybe<Scalars['ID']['input']>;\n developerOrganizationId?: InputMaybe<Scalars['ID']['input']>;\n status?: InputMaybe<AppStatus>;\n visibility?: InputMaybe<AppVisibility>;\n};\n\nexport type ExportAuditLogsFilter = {\n action?: InputMaybe<Scalars['String']['input']>;\n actorId?: InputMaybe<Scalars['ID']['input']>;\n createdAfter?: InputMaybe<Scalars['DateTime']['input']>;\n createdBefore?: InputMaybe<Scalars['DateTime']['input']>;\n resource?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Filter for channel user (UserPlatformConnection) exports */\nexport type ExportChannelUsersFilter = {\n channelId?: InputMaybe<Scalars['ID']['input']>;\n createdAfter?: InputMaybe<Scalars['DateTime']['input']>;\n createdBefore?: InputMaybe<Scalars['DateTime']['input']>;\n notificationsEnabled?: InputMaybe<Scalars['Boolean']['input']>;\n organizationId: Scalars['ID']['input'];\n platform?: InputMaybe<ChannelPlatform>;\n};\n\n/** Filter for channel list exports */\nexport type ExportChannelsFilter = {\n createdAfter?: InputMaybe<Scalars['DateTime']['input']>;\n createdBefore?: InputMaybe<Scalars['DateTime']['input']>;\n organizationId: Scalars['ID']['input'];\n platform?: InputMaybe<ChannelPlatform>;\n status?: InputMaybe<ChannelStatus>;\n};\n\n/** Filter for delivery attempt exports */\nexport type ExportDeliveryAttemptsFilter = {\n channelId?: InputMaybe<Scalars['ID']['input']>;\n createdAfter?: InputMaybe<Scalars['DateTime']['input']>;\n createdBefore?: InputMaybe<Scalars['DateTime']['input']>;\n organizationId?: InputMaybe<Scalars['ID']['input']>;\n status?: InputMaybe<DeliveryStatus>;\n};\n\nexport type ExportDeveloperOrganizationsFilter = {\n createdAfter?: InputMaybe<Scalars['DateTime']['input']>;\n createdBefore?: InputMaybe<Scalars['DateTime']['input']>;\n isVerified?: InputMaybe<Scalars['Boolean']['input']>;\n tier?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type ExportNewsletterCampaignsInput = {\n format: NewsletterExportFormat;\n newsletterId?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type ExportNewsletterInput = {\n format: NewsletterExportFormat;\n includeStats?: InputMaybe<Scalars['Boolean']['input']>;\n newsletterIds?: InputMaybe<Array<Scalars['ID']['input']>>;\n platformProductId?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type ExportNewsletterSubscribersInput = {\n format: NewsletterExportFormat;\n platformProductId: Scalars['String']['input'];\n status?: InputMaybe<NewsletterSubscriptionStatus>;\n subscribed?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type ExportResult = {\n __typename?: 'ExportResult';\n createdAt: Scalars['DateTime']['output'];\n downloadUrl: Scalars['String']['output'];\n filename: Scalars['String']['output'];\n format: NewsletterExportFormat;\n id: Scalars['ID']['output'];\n recordCount: Scalars['Int']['output'];\n};\n\nexport type ExportRevenueFilter = {\n applicationId?: InputMaybe<Scalars['ID']['input']>;\n developerOrganizationId?: InputMaybe<Scalars['ID']['input']>;\n periodEnd?: InputMaybe<Scalars['DateTime']['input']>;\n periodStart?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\nexport type ExportSubscriber = {\n __typename?: 'ExportSubscriber';\n email: Scalars['String']['output'];\n platformProductId: Scalars['String']['output'];\n status: NewsletterSubscriptionStatus;\n subscribed: Scalars['Boolean']['output'];\n subscribedAt: Scalars['DateTime']['output'];\n unsubscribedAt?: Maybe<Scalars['DateTime']['output']>;\n userId?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ExportSupportInput = {\n /** Date range filter - end date */\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n /** Export format (CSV or JSON) */\n format: SupportExportFormat;\n /** Include support messages in export */\n includeMessages?: InputMaybe<Scalars['Boolean']['input']>;\n /** Filter by priority */\n priority?: InputMaybe<Array<SupportTicketPriority>>;\n /** Date range filter - start date */\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n /** Filter by ticket status */\n status?: InputMaybe<Array<SupportTicketStatus>>;\n /** User ID for which to export support data */\n userId: Scalars['ID']['input'];\n /** Workspace ID (optional) */\n workspaceId?: InputMaybe<Scalars['ID']['input']>;\n};\n\nexport type ExportSupportResponse = {\n __typename?: 'ExportSupportResponse';\n /** Download URL (when ready) */\n downloadUrl?: Maybe<Scalars['String']['output']>;\n /** Estimated number of records */\n estimatedRecords?: Maybe<Scalars['Int']['output']>;\n /** Export job ID */\n jobId: Scalars['ID']['output'];\n /** Message */\n message: Scalars['String']['output'];\n /** Export status */\n status: Scalars['String']['output'];\n};\n\n/** Filter for webhook event exports */\nexport type ExportWebhookEventsFilter = {\n channelId?: InputMaybe<Scalars['ID']['input']>;\n createdAfter?: InputMaybe<Scalars['DateTime']['input']>;\n createdBefore?: InputMaybe<Scalars['DateTime']['input']>;\n organizationId?: InputMaybe<Scalars['ID']['input']>;\n processingStatus?: InputMaybe<WebhookProcessingStatus>;\n};\n\nexport type ExportWebhooksFilter = {\n applicationId?: InputMaybe<Scalars['ID']['input']>;\n createdAfter?: InputMaybe<Scalars['DateTime']['input']>;\n createdBefore?: InputMaybe<Scalars['DateTime']['input']>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\n/** External OIDC Provider Configuration (Google, Microsoft, etc.) */\nexport type ExternalOidcConfiguration = {\n __typename?: 'ExternalOIDCConfiguration';\n clientId: Scalars['String']['output'];\n clientSecret: Scalars['String']['output'];\n createdAt: Scalars['DateTime']['output'];\n discoveryUrl: Scalars['String']['output'];\n enabled: Scalars['Boolean']['output'];\n id: Scalars['ID']['output'];\n identifier: Scalars['String']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n provider: Scalars['String']['output'];\n redirectUri?: Maybe<Scalars['String']['output']>;\n scopes: Array<Scalars['String']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n};\n\n/** Input for creating/updating external OIDC configuration */\nexport type ExternalOidcConfigurationInput = {\n clientId: Scalars['String']['input'];\n clientSecret: Scalars['String']['input'];\n discoveryUrl: Scalars['String']['input'];\n enabled?: InputMaybe<Scalars['Boolean']['input']>;\n identifier: Scalars['String']['input'];\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n provider: Scalars['String']['input'];\n redirectUri?: InputMaybe<Scalars['String']['input']>;\n scopes?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\nexport type ExternalSettlementResult = {\n __typename?: 'ExternalSettlementResult';\n /** True when the externalRef already had a settlement (idempotent replay). */\n alreadyRecorded: Scalars['Boolean']['output'];\n /** ID of the billing account the Transaction was recorded against. */\n billingAccountId: Scalars['ID']['output'];\n /** ID of the created (or previously-recorded) Charge. */\n chargeId: Scalars['ID']['output'];\n /** Normalised status the settlement was recorded with. */\n status: ExternalSettlementStatus;\n /** ID of the created (or previously-recorded) Transaction. */\n transactionId: Scalars['ID']['output'];\n};\n\n/** 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 */\nexport enum ExternalSettlementStatus {\n Failed = 'FAILED',\n Pending = 'PENDING',\n Settled = 'SETTLED'\n}\n\nexport type Faq = {\n __typename?: 'FAQ';\n answer: Scalars['String']['output'];\n category: FaqCategory;\n context?: Maybe<SupportContext>;\n createdAt: Scalars['DateTime']['output'];\n createdBy: Scalars['String']['output'];\n displayOrder: Scalars['Int']['output'];\n helpfulCount: Scalars['Int']['output'];\n helpfulnessScore?: Maybe<Scalars['Float']['output']>;\n id: Scalars['ID']['output'];\n isPublished: Scalars['Boolean']['output'];\n notHelpfulCount: Scalars['Int']['output'];\n question: Scalars['String']['output'];\n tags: Array<Scalars['String']['output']>;\n tenantId?: Maybe<Scalars['String']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n viewCount: Scalars['Int']['output'];\n};\n\nexport enum FaqCategory {\n Account = 'ACCOUNT',\n Billing = 'BILLING',\n General = 'GENERAL',\n GettingStarted = 'GETTING_STARTED',\n Security = 'SECURITY',\n Technical = 'TECHNICAL'\n}\n\nexport type FaqConnection = {\n __typename?: 'FAQConnection';\n hasMore: Scalars['Boolean']['output'];\n nodes: Array<Faq>;\n totalCount: Scalars['Int']['output'];\n};\n\nexport type FaqFilterInput = {\n category?: InputMaybe<FaqCategory>;\n context?: InputMaybe<SupportContextFilterInput>;\n isPublished?: InputMaybe<Scalars['Boolean']['input']>;\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\n/** Facet count for filter refinement */\nexport type FacetCount = {\n __typename?: 'FacetCount';\n count: Scalars['Int']['output'];\n value: Scalars['String']['output'];\n};\n\nexport type FailedBillingOrderCallbacksResponse = {\n __typename?: 'FailedBillingOrderCallbacksResponse';\n orders: Array<BillingOrder>;\n totalCount: Scalars['Int']['output'];\n};\n\n/** Platform-wide feature flag definition. Managed by super admins. Can be scoped to a product and category. */\nexport type FeatureFlag = {\n __typename?: 'FeatureFlag';\n category?: Maybe<Scalars['String']['output']>;\n createdAt: Scalars['DateTime']['output'];\n createdBy: Scalars['String']['output'];\n defaultValue: Scalars['JSON']['output'];\n description?: Maybe<Scalars['String']['output']>;\n flagType: FeatureFlagType;\n id: Scalars['ID']['output'];\n key: Scalars['String']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n name: Scalars['String']['output'];\n previewable: Scalars['Boolean']['output'];\n product?: Maybe<PlatformProduct>;\n productId?: Maybe<Scalars['String']['output']>;\n status: FeatureFlagStatus;\n tags: Array<Scalars['String']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n updatedBy?: Maybe<Scalars['String']['output']>;\n userPreferences: Array<UserFeatureFlagPreference>;\n workspaceOverrides: Array<WorkspaceFeatureFlagOverride>;\n};\n\n/** Result of bulk-evaluating multiple feature flags. */\nexport type FeatureFlagBulkEvaluation = {\n __typename?: 'FeatureFlagBulkEvaluation';\n evaluations: Array<FeatureFlagEvaluation>;\n};\n\n/** Result of evaluating a single feature flag for a specific context. Compatible with OpenFeature ResolutionDetails. */\nexport type FeatureFlagEvaluation = {\n __typename?: 'FeatureFlagEvaluation';\n errorCode?: Maybe<Scalars['String']['output']>;\n flagType: FeatureFlagType;\n key: Scalars['String']['output'];\n reason: Scalars['String']['output'];\n value: Scalars['JSON']['output'];\n variant?: Maybe<Scalars['String']['output']>;\n};\n\nexport type FeatureFlagFilterInput = {\n category?: InputMaybe<Scalars['String']['input']>;\n /** 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. */\n includePlatformFlags?: InputMaybe<Scalars['Boolean']['input']>;\n /** When true, return ONLY platform-wide flags (no product association). Overrides `productId` / `productSlug`. */\n platformOnly?: InputMaybe<Scalars['Boolean']['input']>;\n previewable?: InputMaybe<Scalars['Boolean']['input']>;\n /** Filter to flags belonging to the product with this exact id (UUID). */\n productId?: InputMaybe<Scalars['String']['input']>;\n /** 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. */\n productSlug?: InputMaybe<Scalars['String']['input']>;\n search?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<FeatureFlagStatus>;\n};\n\n/** Paginated list of feature flags. */\nexport type FeatureFlagList = {\n __typename?: 'FeatureFlagList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<FeatureFlag>;\n total: Scalars['Int']['output'];\n};\n\nexport enum FeatureFlagStatus {\n Active = 'ACTIVE',\n Archived = 'ARCHIVED'\n}\n\nexport enum FeatureFlagType {\n Boolean = 'BOOLEAN',\n Json = 'JSON',\n Number = 'NUMBER',\n String = 'STRING'\n}\n\nexport type FeedbackBreakdown = {\n __typename?: 'FeedbackBreakdown';\n category: FeedbackCategory;\n count: Scalars['Int']['output'];\n percentage: Scalars['Float']['output'];\n};\n\nexport enum FeedbackCategory {\n AgentHelpful = 'AGENT_HELPFUL',\n IssueResolved = 'ISSUE_RESOLVED',\n KnowledgeBase = 'KNOWLEDGE_BASE',\n Other = 'OTHER',\n ResponseTime = 'RESPONSE_TIME'\n}\n\nexport type FileDsarInput = {\n notes?: InputMaybe<Scalars['String']['input']>;\n source: Scalars['String']['input'];\n subjectEmail: Scalars['String']['input'];\n subjectId: Scalars['ID']['input'];\n type: DsarType;\n};\n\n/** Available filter options for UI dropdowns */\nexport type FilterOptionsResult = {\n __typename?: 'FilterOptionsResult';\n /** Available categories */\n categories: Array<FacetCount>;\n /** Available compatible products */\n compatibleProducts: Array<FacetCount>;\n /** Available licenses */\n licenses: Array<FacetCount>;\n /** Available subtypes (optionally filtered by type) */\n subTypes: Array<FacetCount>;\n /** Available tags (top N most used) */\n tags: Array<FacetCount>;\n /** Available product types */\n types: Array<FacetCount>;\n};\n\nexport enum FulfillmentStatus {\n Cancelled = 'CANCELLED',\n Delivered = 'DELIVERED',\n Failed = 'FAILED',\n InTransit = 'IN_TRANSIT',\n OutForDelivery = 'OUT_FOR_DELIVERY',\n Pending = 'PENDING',\n Processing = 'PROCESSING',\n ReadyToShip = 'READY_TO_SHIP',\n Returned = 'RETURNED',\n Shipped = 'SHIPPED'\n}\n\n/** Fulfillment tracking event */\nexport type FulfillmentTrackingEvent = {\n __typename?: 'FulfillmentTrackingEvent';\n /** Raw carrier event data */\n carrierEvent?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n /** Event description */\n description?: Maybe<Scalars['String']['output']>;\n fulfillmentId: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n /** Event location */\n location?: Maybe<Scalars['String']['output']>;\n /** When this event occurred */\n occurredAt: Scalars['DateTime']['output'];\n /** Status at this event */\n status: FulfillmentStatus;\n};\n\nexport type GenerateApiKeyInput = {\n appId: Scalars['String']['input'];\n expiresAt?: InputMaybe<Scalars['String']['input']>;\n name: Scalars['String']['input'];\n recaptchaToken?: InputMaybe<Scalars['String']['input']>;\n scope: Array<Scalars['String']['input']>;\n};\n\nexport type GenerateAppAsUserTokenInput = {\n scopes?: InputMaybe<Array<Scalars['String']['input']>>;\n targetUserId: Scalars['String']['input'];\n};\n\nexport type GenerateAppTokenInput = {\n clientId: Scalars['String']['input'];\n clientSecret: Scalars['String']['input'];\n scopes?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\nexport type GeoPricingOverride = {\n __typename?: 'GeoPricingOverride';\n amount?: Maybe<Scalars['Float']['output']>;\n country?: Maybe<Scalars['String']['output']>;\n currency: Scalars['String']['output'];\n perSeatAmount?: Maybe<Scalars['Float']['output']>;\n region?: Maybe<Scalars['String']['output']>;\n state?: Maybe<Scalars['String']['output']>;\n};\n\nexport type GeoPricingOverrideInput = {\n amount?: InputMaybe<Scalars['Float']['input']>;\n country?: InputMaybe<Scalars['String']['input']>;\n currency: Scalars['String']['input'];\n perSeatAmount?: InputMaybe<Scalars['Float']['input']>;\n region?: InputMaybe<Scalars['String']['input']>;\n state?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type GetApplicationTagsInput = {\n applicationId: Scalars['ID']['input'];\n};\n\nexport type GetChannelConnectionTagsInput = {\n entityId: Scalars['ID']['input'];\n};\n\nexport type GetChannelTagsInput = {\n entityId: Scalars['ID']['input'];\n};\n\nexport type GetStoreProductTagsInput = {\n entityId: Scalars['ID']['input'];\n};\n\n/** 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. */\nexport type GrantAppDelegationInternalInput = {\n /** Client ID of the first-party system app (e.g. burdenoff_integration_core). */\n clientId: Scalars['String']['input'];\n /** Scopes to grant — must be a subset of the app's scopes. */\n scopes: Array<Scalars['String']['input']>;\n /** The user granting (and target of) the self-delegation. */\n userId: Scalars['String']['input'];\n /** Workspaces the delegation is restricted to (empty = unrestricted). */\n workspaceIds?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\nexport type GrantAppWorkspaceAccessInput = {\n appId: Scalars['ID']['input'];\n /** 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. */\n reactivateRevoked?: InputMaybe<Scalars['Boolean']['input']>;\n /** Optional subset of the app's global scopes. Empty array means the authorization inherits the app's full scope list. */\n scopes?: InputMaybe<Array<Scalars['String']['input']>>;\n tenantId: Scalars['ID']['input'];\n workspaceId: Scalars['ID']['input'];\n};\n\nexport type GrantConsentInput = {\n expiresAt?: InputMaybe<Scalars['DateTime']['input']>;\n lawfulBasis?: InputMaybe<LawfulBasis>;\n policyVersion: Scalars['String']['input'];\n proofPayload?: InputMaybe<Scalars['JSON']['input']>;\n purpose: ConsentPurpose;\n source: Scalars['String']['input'];\n subjectId: Scalars['ID']['input'];\n subjectType: Scalars['String']['input'];\n tenantId?: InputMaybe<Scalars['ID']['input']>;\n workspaceId?: InputMaybe<Scalars['ID']['input']>;\n};\n\nexport type GrantCreditsInput = {\n amount: Scalars['Float']['input'];\n billingAccountId: Scalars['ID']['input'];\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n productId?: InputMaybe<Scalars['String']['input']>;\n reason?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type GrantDelegationInput = {\n appId: Scalars['ID']['input'];\n expiresAt?: InputMaybe<Scalars['DateTime']['input']>;\n scopes: Array<Scalars['String']['input']>;\n workspaceIds?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\n/** 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 */\nexport type GraphQlCallbackInput = {\n /** 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 */\n authToken?: InputMaybe<Scalars['String']['input']>;\n /** 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 */\n endpoint: Scalars['String']['input'];\n /** Name of the GraphQL mutation to call on payment completion Example: updateOrderPaymentStatus */\n mutationName: Scalars['String']['input'];\n /** Opt in when the callback mutation requires the exact persisted BillingOrder subtotal. Omitted or false preserves the legacy callback document, variables, and signature. */\n requiresExactSubtotal?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type Group = {\n __typename?: 'Group';\n id: Scalars['ID']['output'];\n};\n\n/** Grouped store products for homepage display */\nexport type GroupedStoreProducts = {\n __typename?: 'GroupedStoreProducts';\n featured: Array<StoreProduct>;\n freeItems: Array<StoreProduct>;\n mostDownloaded: Array<StoreProduct>;\n recentlyAdded: Array<StoreProduct>;\n};\n\nexport type HmacCredentialResult = {\n __typename?: 'HMACCredentialResult';\n algorithm: Scalars['String']['output'];\n credentialId: Scalars['ID']['output'];\n secretKey: Scalars['String']['output'];\n};\n\nexport type HmacValidationResult = {\n __typename?: 'HMACValidationResult';\n appId?: Maybe<Scalars['ID']['output']>;\n error?: Maybe<Scalars['String']['output']>;\n valid: Scalars['Boolean']['output'];\n};\n\n/** Health status response */\nexport type HealthStatus = {\n __typename?: 'HealthStatus';\n natsConnected: Scalars['Boolean']['output'];\n status: Scalars['String']['output'];\n temporalError?: Maybe<Scalars['String']['output']>;\n temporalSchedules: Scalars['String']['output'];\n timestamp: Scalars['DateTime']['output'];\n version: Scalars['String']['output'];\n};\n\nexport type HomepageSection = {\n __typename?: 'HomepageSection';\n config: Scalars['JSON']['output'];\n id: Scalars['ID']['output'];\n isActive: Scalars['Boolean']['output'];\n orderIndex: Scalars['Int']['output'];\n sectionType: Scalars['String']['output'];\n storeId: Scalars['ID']['output'];\n subtitle?: Maybe<Scalars['String']['output']>;\n title?: Maybe<Scalars['String']['output']>;\n};\n\nexport type I18nModule = {\n __typename?: 'I18nModule';\n createdAt: Scalars['DateTime']['output'];\n createdBy?: Maybe<Scalars['String']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n displayName: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n name: Scalars['String']['output'];\n namespaces: Array<I18nNamespace>;\n product: I18nProduct;\n productId: Scalars['String']['output'];\n status: I18nModuleStatus;\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type I18nModuleFilterInput = {\n productId?: InputMaybe<Scalars['String']['input']>;\n search?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<I18nModuleStatus>;\n};\n\nexport type I18nModuleList = {\n __typename?: 'I18nModuleList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<I18nModule>;\n total: Scalars['Int']['output'];\n};\n\nexport enum I18nModuleStatus {\n Active = 'ACTIVE',\n Archived = 'ARCHIVED',\n Deprecated = 'DEPRECATED'\n}\n\nexport type I18nNamespace = {\n __typename?: 'I18nNamespace';\n createdAt: Scalars['DateTime']['output'];\n createdBy?: Maybe<Scalars['String']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n displayName: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n module: I18nModule;\n moduleId: Scalars['String']['output'];\n name: Scalars['String']['output'];\n status: I18nNamespaceStatus;\n translationKeys: Array<TranslationKey>;\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type I18nNamespaceFilterInput = {\n moduleId?: InputMaybe<Scalars['String']['input']>;\n search?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<I18nNamespaceStatus>;\n};\n\nexport type I18nNamespaceList = {\n __typename?: 'I18nNamespaceList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<I18nNamespace>;\n total: Scalars['Int']['output'];\n};\n\nexport enum I18nNamespaceStatus {\n Active = 'ACTIVE',\n Archived = 'ARCHIVED',\n Deprecated = 'DEPRECATED'\n}\n\nexport type I18nProduct = {\n __typename?: 'I18nProduct';\n createdAt: Scalars['DateTime']['output'];\n createdBy?: Maybe<Scalars['String']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n displayName: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n modules: Array<I18nModule>;\n name: Scalars['String']['output'];\n status: I18nProductStatus;\n translationKeys: Array<TranslationKey>;\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type I18nProductFilterInput = {\n search?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<I18nProductStatus>;\n};\n\nexport type I18nProductList = {\n __typename?: 'I18nProductList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<I18nProduct>;\n total: Scalars['Int']['output'];\n};\n\nexport enum I18nProductStatus {\n Active = 'ACTIVE',\n Archived = 'ARCHIVED',\n Deprecated = 'DEPRECATED'\n}\n\nexport type IdentifyAffiliateJourneyInput = {\n /** @deprecated Identity is derived from the authenticated actor. This field is ignored. */\n identifiedUserId?: InputMaybe<Scalars['String']['input']>;\n journeyId: Scalars['String']['input'];\n};\n\nexport type ImportJob = {\n __typename?: 'ImportJob';\n completedAt?: Maybe<Scalars['DateTime']['output']>;\n createdAt: Scalars['DateTime']['output'];\n createdBy: Scalars['String']['output'];\n errors?: Maybe<Scalars['JSON']['output']>;\n estimatedDuration?: Maybe<Scalars['Int']['output']>;\n failedKeys: Scalars['Int']['output'];\n fileName: Scalars['String']['output'];\n fileSize: Scalars['Int']['output'];\n fileUrl?: Maybe<Scalars['String']['output']>;\n format: ImportJobFormat;\n id: Scalars['ID']['output'];\n options?: Maybe<Scalars['JSON']['output']>;\n processedKeys: Scalars['Int']['output'];\n productId: Scalars['String']['output'];\n startedAt?: Maybe<Scalars['DateTime']['output']>;\n status: ImportJobStatus;\n successfulKeys: Scalars['Int']['output'];\n totalKeys?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type ImportJobFilterInput = {\n format?: InputMaybe<ImportJobFormat>;\n productId?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<ImportJobStatus>;\n};\n\nexport enum ImportJobFormat {\n Csv = 'CSV',\n Json = 'JSON',\n Po = 'PO',\n Xliff = 'XLIFF',\n Xlsx = 'XLSX'\n}\n\nexport type ImportJobList = {\n __typename?: 'ImportJobList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<ImportJob>;\n total: Scalars['Int']['output'];\n};\n\nexport type ImportJobProgressEvent = {\n __typename?: 'ImportJobProgressEvent';\n job: ImportJob;\n percentComplete: Scalars['Float']['output'];\n processedRecords: Scalars['Int']['output'];\n totalRecords: Scalars['Int']['output'];\n};\n\nexport enum ImportJobStatus {\n Cancelled = 'CANCELLED',\n Completed = 'COMPLETED',\n Failed = 'FAILED',\n Pending = 'PENDING',\n Processing = 'PROCESSING'\n}\n\nexport type ImportSubscriberInput = {\n /** Newsletter context for scoping (workspaceId, userId, productId, tenantId, etc.) */\n context?: InputMaybe<NewsletterContextInput>;\n email: Scalars['String']['input'];\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n platformProductId: Scalars['String']['input'];\n userId?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type ImportSubscribersResult = {\n __typename?: 'ImportSubscribersResult';\n errors: Array<Scalars['String']['output']>;\n failed: Scalars['Int']['output'];\n imported: Scalars['Int']['output'];\n skipped: Scalars['Int']['output'];\n success: Scalars['Boolean']['output'];\n};\n\n/** Result of billing role initialization */\nexport type InitializeBillingRolesResult = {\n __typename?: 'InitializeBillingRolesResult';\n /** Message describing the result */\n message: Scalars['String']['output'];\n /** Whether owner was assigned the Billing Admin role */\n ownerAssigned: Scalars['Boolean']['output'];\n /** Names of roles created */\n roleNames: Array<Scalars['String']['output']>;\n /** Number of roles created */\n rolesCreated: Scalars['Int']['output'];\n /** Whether the operation was successful */\n success: Scalars['Boolean']['output'];\n};\n\n/** Result of organization role initialization */\nexport type InitializeOrganizationRolesResult = {\n __typename?: 'InitializeOrganizationRolesResult';\n /** Message describing the result */\n message: Scalars['String']['output'];\n /** Whether owner was assigned the Owner role */\n ownerAssigned: Scalars['Boolean']['output'];\n /** Names of roles created */\n roleNames: Array<Scalars['String']['output']>;\n /** Number of roles created */\n rolesCreated: Scalars['Int']['output'];\n /** Whether the operation was successful */\n success: Scalars['Boolean']['output'];\n};\n\n/** Input for initiating a payment */\nexport type InitiatePaymentInput = {\n /** For ADDON purchase: the addon ID (single addon) */\n addonId?: InputMaybe<Scalars['ID']['input']>;\n /** For ADDON purchase: multiple addon IDs (for cart checkout) */\n addonIds?: InputMaybe<Array<Scalars['ID']['input']>>;\n /** Base amount before tax */\n amount: Scalars['Float']['input'];\n /** For PLAN purchase: enable automatic renewal when subscription expires */\n autoRenew?: InputMaybe<Scalars['Boolean']['input']>;\n /** 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. */\n autoRenewPaymentMethodId?: InputMaybe<Scalars['ID']['input']>;\n /** Billing account ID (required for tax calculation) */\n billingAccountId: Scalars['ID']['input'];\n /** For CREDITS purchase: number of credits to purchase */\n creditAmount?: InputMaybe<Scalars['Int']['input']>;\n /** Currency code (e.g., INR, USD) */\n currency: Scalars['String']['input'];\n /** 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. */\n downgradeFromSubscriptionId?: InputMaybe<Scalars['ID']['input']>;\n /** For PLAN purchase: whether this is an annual subscription (12 months with discount) */\n isAnnual?: InputMaybe<Scalars['Boolean']['input']>;\n /** Optional metadata */\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n /** Order ID for external service orders (mutually exclusive with creditAmount/planId/addonId) */\n orderId?: InputMaybe<Scalars['ID']['input']>;\n /** Saved payment method ID (from our PaymentMethod table) for one-click checkout */\n paymentMethodId?: InputMaybe<Scalars['ID']['input']>;\n /** For PLAN purchase: the plan ID */\n planId?: InputMaybe<Scalars['ID']['input']>;\n /** Product ID for multi-product systems */\n productId?: InputMaybe<Scalars['String']['input']>;\n /** Promo/discount code to apply */\n promoCode?: InputMaybe<Scalars['String']['input']>;\n /** Preferred payment provider (defaults to AUTO - system chooses based on currency/region) */\n provider?: InputMaybe<PaymentProviderPreference>;\n /** Type of purchase */\n purchaseType: PurchaseType;\n /** For ADDON purchase: quantities for each addon (parallel array with addonIds) */\n quantities?: InputMaybe<Array<Scalars['Int']['input']>>;\n /** For ADDON purchase: quantity (single addon) */\n quantity?: InputMaybe<Scalars['Int']['input']>;\n /** Whether to save the card for future purchases (only for new card payments) */\n saveCard?: InputMaybe<Scalars['Boolean']['input']>;\n /** 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. */\n subscriptionId?: InputMaybe<Scalars['ID']['input']>;\n /** For PLAN upgrade: the subscription ID being upgraded from. If provided, this is an upgrade - old quotas will be moved to new subscription. */\n upgradeFromSubscriptionId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n/** Response from initiatePayment mutation */\nexport type InitiatePaymentResponse = {\n __typename?: 'InitiatePaymentResponse';\n /** Stripe client secret (for Stripe payments) */\n clientSecret?: Maybe<Scalars['String']['output']>;\n /** Coupon code applied (if any) */\n couponCode?: Maybe<Scalars['String']['output']>;\n /** Currency */\n currency: Scalars['String']['output'];\n /** Discount amount applied (if coupon was used) */\n discountAmount?: Maybe<Scalars['Float']['output']>;\n /** Discount type (PERCENTAGE, FIXED_AMOUNT, etc.) */\n discountType?: Maybe<Scalars['String']['output']>;\n /** Error message if failed */\n error?: Maybe<Scalars['String']['output']>;\n /** Tax jurisdiction */\n jurisdiction: Scalars['String']['output'];\n /** Razorpay order ID (for Razorpay payments) */\n orderId?: Maybe<Scalars['String']['output']>;\n /** Whether payment is already complete (for saved card one-click payments) */\n paymentComplete?: Maybe<Scalars['Boolean']['output']>;\n /** Backend payment ID for status polling (use this for getPayment query) */\n paymentId?: Maybe<Scalars['ID']['output']>;\n /** Customer phone/contact for payment form prefill (required for Razorpay) */\n prefillContact?: Maybe<Scalars['String']['output']>;\n /** Customer email for payment form prefill */\n prefillEmail?: Maybe<Scalars['String']['output']>;\n /** Customer name for payment form prefill */\n prefillName?: Maybe<Scalars['String']['output']>;\n /** Payment provider used */\n provider: Scalars['String']['output'];\n /** Razorpay customer ID (for saved cards in Razorpay checkout) */\n razorpayCustomerId?: Maybe<Scalars['String']['output']>;\n /** Razorpay key ID for frontend integration */\n razorpayKeyId?: Maybe<Scalars['String']['output']>;\n /** Whether payment requires additional action (3DS authentication) */\n requiresAction?: Maybe<Scalars['Boolean']['output']>;\n /** Original amount before tax */\n subtotal: Scalars['Float']['output'];\n /** Whether the payment initiation was successful */\n success: Scalars['Boolean']['output'];\n /** Tax amount */\n taxAmount: Scalars['Float']['output'];\n /** Tax breakdown (for GST: igst or cgst+sgst) */\n taxBreakdown?: Maybe<Scalars['JSON']['output']>;\n /** Tax rate applied (as decimal, e.g., 0.18 for 18%) */\n taxRate: Scalars['Float']['output'];\n /** Tax type (GST, VAT, SALES_TAX, etc.) */\n taxType: Scalars['String']['output'];\n /** Total amount including tax */\n total: Scalars['Float']['output'];\n};\n\nexport type InstallAppInput = {\n applicationId: Scalars['ID']['input'];\n autoUpdate?: InputMaybe<Scalars['Boolean']['input']>;\n config?: InputMaybe<Scalars['JSON']['input']>;\n consentedPermissions?: InputMaybe<Array<Scalars['String']['input']>>;\n organizationId?: InputMaybe<Scalars['ID']['input']>;\n scope: InstallationScope;\n userId?: InputMaybe<Scalars['ID']['input']>;\n version?: InputMaybe<Scalars['String']['input']>;\n workspaceId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n/** Result type for installPurchasedApp mutation */\nexport type InstallPurchasedAppResult = {\n __typename?: 'InstallPurchasedAppResult';\n alreadyInstalled?: Maybe<Scalars['Boolean']['output']>;\n error?: Maybe<Scalars['String']['output']>;\n installation?: Maybe<StoreAppInstallation>;\n message?: Maybe<Scalars['String']['output']>;\n success: Scalars['Boolean']['output'];\n};\n\nexport type InstallationFilterInput = {\n organizationId?: InputMaybe<Scalars['String']['input']>;\n productId?: InputMaybe<Scalars['String']['input']>;\n search?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<StoreInstallationStatus>;\n workspaceId?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum InstallationScope {\n Organization = 'ORGANIZATION',\n User = 'USER',\n Workspace = 'WORKSPACE'\n}\n\nexport enum InstallationStatus {\n Active = 'ACTIVE',\n Expired = 'EXPIRED',\n Revoked = 'REVOKED',\n Suspended = 'SUSPENDED',\n Uninstalled = 'UNINSTALLED'\n}\n\n/** Installation status change event payload */\nexport type InstallationStatusUpdatedEvent = {\n __typename?: 'InstallationStatusUpdatedEvent';\n installationId: Scalars['ID']['output'];\n productId: Scalars['ID']['output'];\n status: Scalars['String']['output'];\n updatedAt: Scalars['String']['output'];\n workspaceId: Scalars['ID']['output'];\n};\n\nexport type InterviewFeedback = {\n __typename?: 'InterviewFeedback';\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n createdBy: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n internalNotes?: Maybe<Scalars['String']['output']>;\n interviewer: Interviewer;\n interviewerId: Scalars['ID']['output'];\n onBehalfOf: Scalars['String']['output'];\n rating?: Maybe<Scalars['Int']['output']>;\n round: InterviewRound;\n roundId: Scalars['ID']['output'];\n updatedAt: Scalars['DateTime']['output'];\n updatedBy?: Maybe<Scalars['String']['output']>;\n verdict?: Maybe<InterviewVerdict>;\n};\n\nexport type InterviewRound = {\n __typename?: 'InterviewRound';\n application: JobApplication;\n applicationId: Scalars['ID']['output'];\n assignment?: Maybe<JobAssignment>;\n assignmentId?: Maybe<Scalars['ID']['output']>;\n candidateMessage?: Maybe<Scalars['String']['output']>;\n candidateMessageSentAt?: Maybe<Scalars['DateTime']['output']>;\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n createdBy: Scalars['String']['output'];\n emailLogs: Array<CandidateEmailLog>;\n feedback: Array<InterviewFeedback>;\n id: Scalars['ID']['output'];\n interviewers: Array<InterviewRoundInterviewer>;\n name: Scalars['String']['output'];\n notes?: Maybe<Scalars['String']['output']>;\n onBehalfOf: Scalars['String']['output'];\n roundConfig?: Maybe<InterviewRoundConfig>;\n roundConfigId?: Maybe<Scalars['ID']['output']>;\n roundType: InterviewRoundType;\n scheduledAt?: Maybe<Scalars['DateTime']['output']>;\n status: InterviewRoundStatus;\n submittedAt?: Maybe<Scalars['DateTime']['output']>;\n submittedNotes?: Maybe<Scalars['String']['output']>;\n submittedRepoUrl?: Maybe<Scalars['String']['output']>;\n submittedVideoUrl?: Maybe<Scalars['String']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type InterviewRoundConfig = {\n __typename?: 'InterviewRoundConfig';\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n createdBy: Scalars['String']['output'];\n description?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n isAssignmentRound: Scalars['Boolean']['output'];\n isRequired: Scalars['Boolean']['output'];\n jobPosting: JobPosting;\n jobPostingId: Scalars['ID']['output'];\n name: Scalars['String']['output'];\n onBehalfOf: Scalars['String']['output'];\n roundNumber: Scalars['Int']['output'];\n roundType: InterviewRoundType;\n updatedAt: Scalars['DateTime']['output'];\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type InterviewRoundInterviewer = {\n __typename?: 'InterviewRoundInterviewer';\n assignedAt: Scalars['DateTime']['output'];\n context?: Maybe<Scalars['JSON']['output']>;\n createdBy: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n interviewer: Interviewer;\n interviewerId: Scalars['ID']['output'];\n onBehalfOf: Scalars['String']['output'];\n role: InterviewerRole;\n round: InterviewRound;\n roundId: Scalars['ID']['output'];\n updatedAt: Scalars['DateTime']['output'];\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type InterviewRoundInterviewerAssignmentInput = {\n interviewerId: Scalars['ID']['input'];\n role?: InputMaybe<InterviewerRole>;\n};\n\nexport type InterviewRoundList = {\n __typename?: 'InterviewRoundList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<InterviewRound>;\n total: Scalars['Int']['output'];\n};\n\nexport enum InterviewRoundStatus {\n AwaitingSubmission = 'AWAITING_SUBMISSION',\n Cancelled = 'CANCELLED',\n Completed = 'COMPLETED',\n Failed = 'FAILED',\n NoShow = 'NO_SHOW',\n Passed = 'PASSED',\n Scheduled = 'SCHEDULED',\n Submitted = 'SUBMITTED'\n}\n\nexport enum InterviewRoundType {\n CultureFit = 'CULTURE_FIT',\n Final = 'FINAL',\n Hr = 'HR',\n PhoneScreen = 'PHONE_SCREEN',\n TakeHome = 'TAKE_HOME',\n Technical = 'TECHNICAL'\n}\n\nexport enum InterviewVerdict {\n Neutral = 'NEUTRAL',\n No = 'NO',\n StrongNo = 'STRONG_NO',\n StrongYes = 'STRONG_YES',\n Yes = 'YES'\n}\n\nexport type Interviewer = {\n __typename?: 'Interviewer';\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n createdBy: Scalars['String']['output'];\n department?: Maybe<Scalars['String']['output']>;\n email: Scalars['String']['output'];\n feedback: Array<InterviewFeedback>;\n id: Scalars['ID']['output'];\n isActive: Scalars['Boolean']['output'];\n name: Scalars['String']['output'];\n notes?: Maybe<Scalars['String']['output']>;\n onBehalfOf: Scalars['String']['output'];\n rounds: Array<InterviewRoundInterviewer>;\n title?: Maybe<Scalars['String']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n updatedBy?: Maybe<Scalars['String']['output']>;\n userId?: Maybe<Scalars['String']['output']>;\n};\n\nexport type InterviewerFilterInput = {\n department?: InputMaybe<Scalars['String']['input']>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n search?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type InterviewerList = {\n __typename?: 'InterviewerList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<Interviewer>;\n total: Scalars['Int']['output'];\n};\n\nexport enum InterviewerRole {\n Lead = 'LEAD',\n Panel = 'PANEL'\n}\n\nexport type InventoryAdjustment = {\n __typename?: 'InventoryAdjustment';\n afterQty: Scalars['Int']['output'];\n beforeQty: Scalars['Int']['output'];\n createdAt: Scalars['DateTime']['output'];\n delta: Scalars['Int']['output'];\n id: Scalars['ID']['output'];\n notes?: Maybe<Scalars['String']['output']>;\n performedBy: Scalars['String']['output'];\n productId: Scalars['ID']['output'];\n reason: InventoryAdjustmentReason;\n variantId?: Maybe<Scalars['ID']['output']>;\n};\n\nexport enum InventoryAdjustmentReason {\n Adjustment = 'ADJUSTMENT',\n Damage = 'DAMAGE',\n Purchase = 'PURCHASE',\n Restock = 'RESTOCK',\n Return = 'RETURN',\n Sale = 'SALE',\n Shrinkage = 'SHRINKAGE',\n Transfer = 'TRANSFER'\n}\n\nexport type InventoryAlert = {\n __typename?: 'InventoryAlert';\n currentQty: Scalars['Int']['output'];\n id: Scalars['ID']['output'];\n productId: Scalars['ID']['output'];\n resolvedAt?: Maybe<Scalars['DateTime']['output']>;\n status: InventoryAlertStatus;\n thresholdQty?: Maybe<Scalars['Int']['output']>;\n triggeredAt: Scalars['DateTime']['output'];\n type: InventoryAlertType;\n variantId?: Maybe<Scalars['ID']['output']>;\n};\n\nexport enum InventoryAlertStatus {\n Open = 'OPEN',\n Resolved = 'RESOLVED',\n Snoozed = 'SNOOZED'\n}\n\nexport enum InventoryAlertType {\n BackInStock = 'BACK_IN_STOCK',\n LowStock = 'LOW_STOCK',\n OutOfStock = 'OUT_OF_STOCK'\n}\n\nexport enum InvitationStatus {\n Accepted = 'ACCEPTED',\n Cancelled = 'CANCELLED',\n Expired = 'EXPIRED',\n Pending = 'PENDING',\n Rejected = 'REJECTED'\n}\n\nexport type InviteDeveloperOrgMemberInput = {\n email: Scalars['String']['input'];\n message?: InputMaybe<Scalars['String']['input']>;\n permissions?: InputMaybe<Scalars['JSON']['input']>;\n role: DeveloperOrgRole;\n userId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n/** Input for inviting a member to an organization by email */\nexport type InviteOrganizationMemberInput = {\n email: Scalars['String']['input'];\n message?: InputMaybe<Scalars['String']['input']>;\n organizationId: Scalars['String']['input'];\n role?: InputMaybe<UserRole>;\n};\n\n/** Status of an organization invite */\nexport enum InviteStatus {\n Accepted = 'ACCEPTED',\n Cancelled = 'CANCELLED',\n Expired = 'EXPIRED',\n Pending = 'PENDING',\n Rejected = 'REJECTED'\n}\n\nexport type Invoice = {\n __typename?: 'Invoice';\n amountPaid: Scalars['Float']['output'];\n billingAccountId?: Maybe<Scalars['String']['output']>;\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n currency: Scalars['String']['output'];\n dueDate?: Maybe<Scalars['DateTime']['output']>;\n gatewayInvoiceId?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n invoiceNumber: Scalars['String']['output'];\n /** URL to view the invoice on the payment provider portal (Zoho Books / Stripe) */\n invoiceUrl?: Maybe<Scalars['String']['output']>;\n /** Name of the item purchased (plan/addon name from transaction metadata) */\n itemDescription?: Maybe<Scalars['String']['output']>;\n items: Array<InvoiceItem>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n orgId: Scalars['String']['output'];\n paidAt?: Maybe<Scalars['DateTime']['output']>;\n payment?: Maybe<Payment>;\n paymentId?: Maybe<Scalars['String']['output']>;\n /** Direct URL to download the invoice PDF */\n pdfUrl?: Maybe<Scalars['String']['output']>;\n status: InvoiceStatus;\n subscription?: Maybe<BillingSubscription>;\n subscriptionId?: Maybe<Scalars['String']['output']>;\n subtotal: Scalars['Float']['output'];\n tax: Scalars['Float']['output'];\n total: Scalars['Float']['output'];\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type InvoiceItem = {\n __typename?: 'InvoiceItem';\n amount: Scalars['Float']['output'];\n context?: Maybe<Scalars['JSON']['output']>;\n description: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n invoice: Invoice;\n invoiceId: Scalars['String']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n quantity: Scalars['Int']['output'];\n unitPrice: Scalars['Float']['output'];\n};\n\nexport enum InvoiceStatus {\n Draft = 'DRAFT',\n Open = 'OPEN',\n Paid = 'PAID',\n Uncollectible = 'UNCOLLECTIBLE',\n Void = 'VOID'\n}\n\nexport type InvoiceTransaction = {\n __typename?: 'InvoiceTransaction';\n amount: Scalars['Float']['output'];\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n invoiceId: Scalars['String']['output'];\n transaction: Transaction;\n transactionId: Scalars['String']['output'];\n};\n\n/** 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). */\nexport type IssueAppAsUserTokenInternalInput = {\n /** Client ID of the first-party app to mint as (e.g. burdenoff_integration_core). */\n clientId: Scalars['String']['input'];\n /** Optional subset of the delegation's scopes to embed in the token. */\n scopes?: InputMaybe<Array<Scalars['String']['input']>>;\n /** The user the app will act on behalf of (must have an active delegation). */\n targetUserId: Scalars['String']['input'];\n};\n\nexport type ItemOrder = {\n __typename?: 'ItemOrder';\n appliedEntitlementId?: Maybe<Scalars['String']['output']>;\n buyerId: Scalars['String']['output'];\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['String']['output'];\n itemNameAtPurchase: Scalars['String']['output'];\n itemVersionAtPurchase?: Maybe<Scalars['String']['output']>;\n status: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type ItemOrdersInput = {\n endDate?: InputMaybe<Scalars['String']['input']>;\n limit: Scalars['Int']['input'];\n page: Scalars['Int']['input'];\n startDate?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n storeProductId: Scalars['String']['input'];\n};\n\n/** Orders list for a specific product */\nexport type ItemOrdersList = {\n __typename?: 'ItemOrdersList';\n currency: Scalars['String']['output'];\n orders: Array<ItemOrder>;\n totalCount: Scalars['Int']['output'];\n totalEarnings: Scalars['Float']['output'];\n};\n\nexport type ItemSalesStats = {\n __typename?: 'ItemSalesStats';\n currency: Scalars['String']['output'];\n monthlyEarnings: Scalars['Float']['output'];\n monthlySales: Scalars['Int']['output'];\n storeProduct: StoreProduct;\n totalEarnings: Scalars['Float']['output'];\n totalSales: Scalars['Int']['output'];\n};\n\n/** 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. */\nexport type JobApplication = {\n __typename?: 'JobApplication';\n coverLetter?: Maybe<Scalars['String']['output']>;\n createdAt: Scalars['DateTime']['output'];\n department?: Maybe<Scalars['String']['output']>;\n email: Scalars['String']['output'];\n emailLogs: Array<CandidateEmailLog>;\n firstName: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n interviewRounds: Array<InterviewRound>;\n jobPosting?: Maybe<JobPosting>;\n jobPostingId?: Maybe<Scalars['String']['output']>;\n lastName: Scalars['String']['output'];\n linkedinUrl?: Maybe<Scalars['String']['output']>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n phone?: Maybe<Scalars['String']['output']>;\n portfolioUrl?: Maybe<Scalars['String']['output']>;\n position: Scalars['String']['output'];\n productId?: Maybe<Scalars['String']['output']>;\n resumeFileName?: Maybe<Scalars['String']['output']>;\n resumeFileSize?: Maybe<Scalars['Int']['output']>;\n resumeMimeType?: Maybe<Scalars['String']['output']>;\n source: Scalars['String']['output'];\n status: JobApplicationStatus;\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type JobApplicationFilterInput = {\n /** 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. */\n assignmentOwnerEmail?: InputMaybe<Scalars['String']['input']>;\n /** Filter that exact configured round by presence and assignment state. Requires `roundConfigId`. */\n configuredRoundState?: InputMaybe<ConfiguredRoundState>;\n /** 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`. */\n duplicateEmail?: InputMaybe<Scalars['Boolean']['input']>;\n /** Filter by 1-100 unique application IDs. */\n ids?: InputMaybe<Array<Scalars['ID']['input']>>;\n /** 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. */\n interviewerId?: InputMaybe<Scalars['ID']['input']>;\n jobPostingId?: InputMaybe<Scalars['String']['input']>;\n /** Filter by position (case-insensitive contains). */\n position?: InputMaybe<Scalars['String']['input']>;\n productId?: InputMaybe<Scalars['String']['input']>;\n /** Filter by one exact configured interview round. */\n roundConfigId?: InputMaybe<Scalars['ID']['input']>;\n /** Filter round stages. With `roundConfigId`, stages must match that exact configured round. */\n roundStatuses?: InputMaybe<Array<InterviewRoundStatus>>;\n /** Search in name, email, or position. */\n search?: InputMaybe<Scalars['String']['input']>;\n /** Single-status filter, kept for backward compatibility. Prefer `statuses`. */\n status?: InputMaybe<JobApplicationStatus>;\n /** Filter by any of these statuses at once. Takes precedence over `status` when given. */\n statuses?: InputMaybe<Array<JobApplicationStatus>>;\n};\n\nexport type JobApplicationList = {\n __typename?: 'JobApplicationList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<JobApplication>;\n total: Scalars['Int']['output'];\n};\n\nexport type JobApplicationReplyResult = {\n __typename?: 'JobApplicationReplyResult';\n message?: Maybe<Scalars['String']['output']>;\n success: Scalars['Boolean']['output'];\n};\n\nexport enum JobApplicationStatus {\n Archived = 'ARCHIVED',\n /** 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. */\n EmailSent = 'EMAIL_SENT',\n Hired = 'HIRED',\n Interview = 'INTERVIEW',\n New = 'NEW',\n /** 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. */\n OnHold = 'ON_HOLD',\n Rejected = 'REJECTED',\n Screening = 'SCREENING',\n Shortlisted = 'SHORTLISTED'\n}\n\nexport type JobAssignment = {\n __typename?: 'JobAssignment';\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n createdBy: Scalars['String']['output'];\n description: Scalars['String']['output'];\n difficulty?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n isActive: Scalars['Boolean']['output'];\n jobPosting: JobPosting;\n jobPostingId: Scalars['ID']['output'];\n onBehalfOf: Scalars['String']['output'];\n /** Optional attribution — who authored/owns this assignment. Not used for auth. */\n ownerEmail?: Maybe<Scalars['String']['output']>;\n problemStatement?: Maybe<Scalars['String']['output']>;\n rounds: Array<InterviewRound>;\n title: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type JobAssignmentFilterInput = {\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n jobPostingId?: InputMaybe<Scalars['String']['input']>;\n search?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type JobAssignmentList = {\n __typename?: 'JobAssignmentList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<JobAssignment>;\n total: Scalars['Int']['output'];\n};\n\nexport type JobExecution = {\n __typename?: 'JobExecution';\n completedAt?: Maybe<Scalars['DateTime']['output']>;\n configSnapshot?: Maybe<Scalars['JSON']['output']>;\n context?: Maybe<Scalars['JSON']['output']>;\n correlationId?: Maybe<Scalars['String']['output']>;\n createdAt: Scalars['DateTime']['output'];\n duration?: Maybe<Scalars['Int']['output']>;\n errorMessage?: Maybe<Scalars['String']['output']>;\n errorStack?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n nextRetryAt?: Maybe<Scalars['DateTime']['output']>;\n output?: Maybe<Scalars['JSON']['output']>;\n retryAttempt: Scalars['Int']['output'];\n scheduleVersion?: Maybe<ScheduleVersion>;\n scheduledJobId: Scalars['String']['output'];\n scheduledTime?: Maybe<Scalars['DateTime']['output']>;\n spanId?: Maybe<Scalars['String']['output']>;\n startedAt: Scalars['DateTime']['output'];\n status: JobStatus;\n statusCode?: Maybe<Scalars['Int']['output']>;\n success: Scalars['Boolean']['output'];\n traceId?: Maybe<Scalars['String']['output']>;\n triggeredAt: Scalars['DateTime']['output'];\n versionId?: Maybe<Scalars['String']['output']>;\n willRetry: Scalars['Boolean']['output'];\n workerId?: Maybe<Scalars['String']['output']>;\n workerPod?: Maybe<Scalars['String']['output']>;\n};\n\nexport type JobExecutionConnection = {\n __typename?: 'JobExecutionConnection';\n executions: Array<JobExecution>;\n hasMore: Scalars['Boolean']['output'];\n total: Scalars['Int']['output'];\n};\n\nexport type JobFilterInput = {\n createdAfter?: InputMaybe<Scalars['DateTime']['input']>;\n createdBefore?: InputMaybe<Scalars['DateTime']['input']>;\n createdBy?: InputMaybe<Scalars['String']['input']>;\n executorType?: InputMaybe<ExecutorType>;\n nextExecutionAfter?: InputMaybe<Scalars['DateTime']['input']>;\n nextExecutionBefore?: InputMaybe<Scalars['DateTime']['input']>;\n priority?: InputMaybe<SchedulePriority>;\n scheduleType?: InputMaybe<ScheduleType>;\n search?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<JobStatus>;\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\nexport type JobPosting = {\n __typename?: 'JobPosting';\n applications: Array<JobApplication>;\n assignments: Array<JobAssignment>;\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n createdBy: Scalars['String']['output'];\n department?: Maybe<Scalars['String']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n employmentType?: Maybe<EmploymentType>;\n id: Scalars['ID']['output'];\n learnings: Array<Scalars['String']['output']>;\n location?: Maybe<Scalars['String']['output']>;\n onBehalfOf: Scalars['String']['output'];\n openings: Scalars['Int']['output'];\n overview: Scalars['String']['output'];\n productId?: Maybe<Scalars['String']['output']>;\n qualifications: Array<Scalars['String']['output']>;\n responsibilities: Array<Scalars['String']['output']>;\n rounds: Array<InterviewRoundConfig>;\n slug?: Maybe<Scalars['String']['output']>;\n status: JobPostingStatus;\n title: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type JobPostingFilterInput = {\n department?: InputMaybe<Scalars['String']['input']>;\n employmentType?: InputMaybe<EmploymentType>;\n productId?: InputMaybe<Scalars['String']['input']>;\n search?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<JobPostingStatus>;\n};\n\nexport type JobPostingList = {\n __typename?: 'JobPostingList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<JobPosting>;\n total: Scalars['Int']['output'];\n};\n\nexport enum JobPostingStatus {\n Archived = 'ARCHIVED',\n Closed = 'CLOSED',\n Draft = 'DRAFT',\n Open = 'OPEN'\n}\n\nexport type JobRetryPolicyInput = {\n backoffStrategy: BackoffStrategy;\n maxRetries: Scalars['Int']['input'];\n maxRetryDelay?: InputMaybe<Scalars['Int']['input']>;\n retryDelay: Scalars['Int']['input'];\n retryOn?: InputMaybe<Scalars['JSON']['input']>;\n timeoutPerAttempt?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport enum JobStatus {\n Archived = 'ARCHIVED',\n Cancelled = 'CANCELLED',\n Completed = 'COMPLETED',\n Disabled = 'DISABLED',\n Draft = 'DRAFT',\n Failed = 'FAILED',\n Paused = 'PAUSED',\n Pending = 'PENDING',\n Running = 'RUNNING'\n}\n\nexport type JobStatusUpdate = {\n __typename?: 'JobStatusUpdate';\n lastExecutionAt?: Maybe<Scalars['DateTime']['output']>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n nextExecutionAt?: Maybe<Scalars['DateTime']['output']>;\n previousStatus?: Maybe<JobStatus>;\n scheduleId: Scalars['ID']['output'];\n scheduleName?: Maybe<Scalars['String']['output']>;\n status: JobStatus;\n timestamp: Scalars['DateTime']['output'];\n};\n\nexport type JoinWaitlistInput = {\n company?: InputMaybe<Scalars['String']['input']>;\n /** Newsletter context for scoping (workspaceId, userId, productId, tenantId, etc.) */\n context?: InputMaybe<NewsletterContextInput>;\n email: Scalars['String']['input'];\n name?: InputMaybe<Scalars['String']['input']>;\n platformProductId: Scalars['String']['input'];\n reason?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type KerberosChallengeResult = {\n __typename?: 'KerberosChallengeResult';\n challengeToken: Scalars['String']['output'];\n realm: Scalars['String']['output'];\n};\n\nexport type KerberosConfig = {\n __typename?: 'KerberosConfig';\n createdAt: Scalars['DateTime']['output'];\n enabled: Scalars['Boolean']['output'];\n id: Scalars['ID']['output'];\n kdcHost: Scalars['String']['output'];\n realm: Scalars['String']['output'];\n servicePrincipal: Scalars['String']['output'];\n tenantId: Scalars['ID']['output'];\n};\n\nexport type KerberosConfigInput = {\n kdcHost: Scalars['String']['input'];\n kdcPort?: InputMaybe<Scalars['Int']['input']>;\n realm: Scalars['String']['input'];\n servicePrincipal: Scalars['String']['input'];\n};\n\n/** KeyboardShortcut entity - defines a keyboard shortcut action. Shortcuts can be global (all products) or product-specific. */\nexport type KeyboardShortcut = {\n __typename?: 'KeyboardShortcut';\n /** Category for grouping (e.g., \"Navigation\", \"Actions\", \"UI\", \"Help\") */\n category: Scalars['String']['output'];\n /** When the shortcut was created */\n createdAt: Scalars['DateTime']['output'];\n /** Extended description of what the shortcut does */\n description?: Maybe<Scalars['String']['output']>;\n /** The event name to emit when triggered (e.g., \"navigate:home\", \"open:search\") */\n eventName: Scalars['String']['output'];\n /** The unique identifier for the keyboard shortcut */\n id: Scalars['ID']['output'];\n /** Whether this shortcut is currently enabled */\n isEnabled: Scalars['Boolean']['output'];\n /** Whether this is a key sequence (e.g., \"g h\" = press g, then h) */\n isSequence: Scalars['Boolean']['output'];\n /** Human-readable label (e.g., \"Go to Home\") */\n label: Scalars['String']['output'];\n /** Mac-specific key override (e.g., \"Cmd+K\") */\n macKey?: Maybe<Scalars['String']['output']>;\n /** The associated product (if product-specific) */\n product?: Maybe<PlatformProduct>;\n /** The product this shortcut belongs to (null = global shortcut) */\n productId?: Maybe<Scalars['ID']['output']>;\n /** The key combination (e.g., \"g h\", \"Cmd+K\", \"Ctrl+Shift+P\") */\n shortcutKey: Scalars['String']['output'];\n /** Display order within category */\n sortOrder: Scalars['Int']['output'];\n /** When the shortcut was last updated */\n updatedAt: Scalars['DateTime']['output'];\n /** Windows/Linux-specific key override (e.g., \"Ctrl+K\") */\n windowsKey?: Maybe<Scalars['String']['output']>;\n};\n\nexport type KeyboardShortcutFilterInput = {\n /** Filter by category */\n category?: InputMaybe<Scalars['String']['input']>;\n /** Include global shortcuts (default: true) */\n includeGlobal?: InputMaybe<Scalars['Boolean']['input']>;\n /** Filter by enabled status */\n isEnabled?: InputMaybe<Scalars['Boolean']['input']>;\n /** Filter by product ID (null = global shortcuts only) */\n productId?: InputMaybe<Scalars['ID']['input']>;\n /** Search in label, description, shortcutKey, or eventName */\n search?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type KeyboardShortcutList = {\n __typename?: 'KeyboardShortcutList';\n /** Whether there are more shortcuts available */\n hasMore: Scalars['Boolean']['output'];\n /** List of keyboard shortcuts */\n items: Array<KeyboardShortcut>;\n /** Total count of shortcuts */\n total: Scalars['Int']['output'];\n};\n\nexport type KnowledgeBaseArticle = {\n __typename?: 'KnowledgeBaseArticle';\n archivedAt?: Maybe<Scalars['DateTime']['output']>;\n authorId: Scalars['String']['output'];\n category?: Maybe<TicketCategory>;\n categoryId?: Maybe<Scalars['String']['output']>;\n content: Scalars['String']['output'];\n context?: Maybe<SupportContext>;\n createdAt: Scalars['DateTime']['output'];\n excerpt?: Maybe<Scalars['String']['output']>;\n helpfulCount: Scalars['Int']['output'];\n helpfulnessScore?: Maybe<Scalars['Float']['output']>;\n id: Scalars['ID']['output'];\n metaDescription?: Maybe<Scalars['String']['output']>;\n notHelpfulCount: Scalars['Int']['output'];\n previousVersion?: Maybe<Scalars['String']['output']>;\n publishedAt?: Maybe<Scalars['DateTime']['output']>;\n slug: Scalars['String']['output'];\n status: ArticleStatus;\n tags: Array<Scalars['String']['output']>;\n tenantId?: Maybe<Scalars['String']['output']>;\n title: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n version: Scalars['Int']['output'];\n viewCount: Scalars['Int']['output'];\n};\n\nexport type KnowledgeBaseArticleConnection = {\n __typename?: 'KnowledgeBaseArticleConnection';\n hasMore: Scalars['Boolean']['output'];\n nodes: Array<KnowledgeBaseArticle>;\n totalCount: Scalars['Int']['output'];\n};\n\nexport type KnowledgeBaseArticleFilterInput = {\n authorId?: InputMaybe<Scalars['String']['input']>;\n categoryId?: InputMaybe<Scalars['String']['input']>;\n context?: InputMaybe<SupportContextFilterInput>;\n status?: InputMaybe<ArticleStatus>;\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\nexport type LdapConfig = {\n __typename?: 'LDAPConfig';\n baseDN: Scalars['String']['output'];\n createdAt: Scalars['DateTime']['output'];\n enabled: Scalars['Boolean']['output'];\n host: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n port: Scalars['Int']['output'];\n searchFilter: Scalars['String']['output'];\n tenantId: Scalars['ID']['output'];\n useTLS: Scalars['Boolean']['output'];\n};\n\nexport type LdapConfigInput = {\n baseDN: Scalars['String']['input'];\n bindDN?: InputMaybe<Scalars['String']['input']>;\n bindPassword?: InputMaybe<Scalars['String']['input']>;\n host: Scalars['String']['input'];\n port?: InputMaybe<Scalars['Int']['input']>;\n searchFilter?: InputMaybe<Scalars['String']['input']>;\n useTLS?: InputMaybe<Scalars['Boolean']['input']>;\n userMapping?: InputMaybe<Scalars['JSON']['input']>;\n};\n\nexport type Language = {\n __typename?: 'Language';\n code: Scalars['String']['output'];\n createdAt: Scalars['DateTime']['output'];\n createdBy?: Maybe<Scalars['String']['output']>;\n dateFormat: Scalars['String']['output'];\n direction: LanguageDirection;\n fallbackCode?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n isDefault: Scalars['Boolean']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n name: Scalars['String']['output'];\n nativeName: Scalars['String']['output'];\n pluralRules?: Maybe<Scalars['JSON']['output']>;\n region?: Maybe<Scalars['String']['output']>;\n status: LanguageStatus;\n timeFormat: Scalars['String']['output'];\n translations: Array<Translation>;\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport enum LanguageDirection {\n Ltr = 'LTR',\n Rtl = 'RTL'\n}\n\nexport type LanguageFilterInput = {\n direction?: InputMaybe<LanguageDirection>;\n search?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<LanguageStatus>;\n};\n\nexport type LanguageList = {\n __typename?: 'LanguageList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<Language>;\n total: Scalars['Int']['output'];\n};\n\nexport enum LanguageStatus {\n Active = 'ACTIVE',\n Deprecated = 'DEPRECATED',\n Draft = 'DRAFT'\n}\n\nexport enum LawfulBasis {\n Consent = 'CONSENT',\n Contract = 'CONTRACT',\n LegalObligation = 'LEGAL_OBLIGATION',\n LegitimateInterest = 'LEGITIMATE_INTEREST',\n PublicTask = 'PUBLIC_TASK',\n VitalInterest = 'VITAL_INTEREST'\n}\n\nexport type LegalHold = {\n __typename?: 'LegalHold';\n active: Scalars['Boolean']['output'];\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n placedAt: Scalars['DateTime']['output'];\n placedBy: Scalars['ID']['output'];\n reason: Scalars['String']['output'];\n reference?: Maybe<Scalars['String']['output']>;\n releasedAt?: Maybe<Scalars['DateTime']['output']>;\n releasedBy?: Maybe<Scalars['ID']['output']>;\n subjectEmail?: Maybe<Scalars['String']['output']>;\n subjectId?: Maybe<Scalars['ID']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type LegalHoldConnection = {\n __typename?: 'LegalHoldConnection';\n hasMore: Scalars['Boolean']['output'];\n items: Array<LegalHold>;\n total: Scalars['Int']['output'];\n};\n\nexport type LegalHoldFilter = {\n active?: InputMaybe<Scalars['Boolean']['input']>;\n subjectEmail?: InputMaybe<Scalars['String']['input']>;\n subjectId?: InputMaybe<Scalars['ID']['input']>;\n};\n\nexport type LicenseActivation = {\n __typename?: 'LicenseActivation';\n activatedAt: Scalars['DateTime']['output'];\n deviceId: Scalars['String']['output'];\n deviceName?: Maybe<Scalars['String']['output']>;\n entitlementId: Scalars['ID']['output'];\n id: Scalars['ID']['output'];\n ipAddress?: Maybe<Scalars['String']['output']>;\n lastSeenAt: Scalars['DateTime']['output'];\n platform?: Maybe<Scalars['String']['output']>;\n revokedAt?: Maybe<Scalars['DateTime']['output']>;\n revokedBy?: Maybe<Scalars['String']['output']>;\n userAgent?: Maybe<Scalars['String']['output']>;\n};\n\nexport type LicenseActivationResult = {\n __typename?: 'LicenseActivationResult';\n activation: LicenseActivation;\n entitlement: ProductEntitlement;\n offlineToken: Scalars['String']['output'];\n};\n\nexport type LicenseSeat = {\n __typename?: 'LicenseSeat';\n assignedAt: Scalars['DateTime']['output'];\n assignedBy: Scalars['String']['output'];\n assigneeEmail?: Maybe<Scalars['String']['output']>;\n assigneeUserId: Scalars['String']['output'];\n entitlementId: Scalars['ID']['output'];\n id: Scalars['ID']['output'];\n revocationReason?: Maybe<Scalars['String']['output']>;\n revokedAt?: Maybe<Scalars['DateTime']['output']>;\n revokedBy?: Maybe<Scalars['String']['output']>;\n role: LicenseSeatRole;\n};\n\nexport enum LicenseSeatRole {\n Admin = 'ADMIN',\n Member = 'MEMBER',\n Viewer = 'VIEWER'\n}\n\n/** License entitlement status change event payload */\nexport type LicenseStatusUpdatedEvent = {\n __typename?: 'LicenseStatusUpdatedEvent';\n entitlementId: Scalars['ID']['output'];\n productId: Scalars['ID']['output'];\n status: Scalars['String']['output'];\n updatedAt: Scalars['String']['output'];\n};\n\nexport type LicenseTransfer = {\n __typename?: 'LicenseTransfer';\n entitlementId: Scalars['ID']['output'];\n fromUserId?: Maybe<Scalars['String']['output']>;\n fromWorkspaceId?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n newLicenseKey: Scalars['String']['output'];\n notes?: Maybe<Scalars['String']['output']>;\n oldLicenseKey: Scalars['String']['output'];\n reason: LicenseTransferReason;\n toUserId?: Maybe<Scalars['String']['output']>;\n toWorkspaceId?: Maybe<Scalars['String']['output']>;\n transferredAt: Scalars['DateTime']['output'];\n transferredBy: Scalars['String']['output'];\n};\n\nexport enum LicenseTransferReason {\n AdminAction = 'ADMIN_ACTION',\n Merger = 'MERGER',\n RefundReversal = 'REFUND_REVERSAL',\n UserChange = 'USER_CHANGE',\n WorkspaceChange = 'WORKSPACE_CHANGE'\n}\n\nexport type LicenseTransferResult = {\n __typename?: 'LicenseTransferResult';\n entitlement: ProductEntitlement;\n transfer: LicenseTransfer;\n};\n\nexport type LicenseUsage = {\n __typename?: 'LicenseUsage';\n currentValue: Scalars['String']['output'];\n entitlementId: Scalars['ID']['output'];\n id: Scalars['ID']['output'];\n limitValue?: Maybe<Scalars['String']['output']>;\n metricType: Scalars['String']['output'];\n period: Scalars['String']['output'];\n periodEnd: Scalars['DateTime']['output'];\n periodStart: Scalars['DateTime']['output'];\n};\n\nexport enum LicenseUsagePeriod {\n Daily = 'DAILY',\n Lifetime = 'LIFETIME',\n Monthly = 'MONTHLY'\n}\n\nexport type LicenseValidationResult = {\n __typename?: 'LicenseValidationResult';\n entitlementId?: Maybe<Scalars['ID']['output']>;\n expiresAt?: Maybe<Scalars['DateTime']['output']>;\n features: Array<Scalars['String']['output']>;\n productId?: Maybe<Scalars['ID']['output']>;\n reason?: Maybe<Scalars['String']['output']>;\n valid: Scalars['Boolean']['output'];\n};\n\nexport type LimitType = {\n __typename?: 'LimitType';\n type: Scalars['String']['output'];\n value: Scalars['Int']['output'];\n};\n\nexport type LinkTicketsInput = {\n fromTicketId: Scalars['String']['input'];\n linkType: LinkType;\n toTicketId: Scalars['String']['input'];\n};\n\nexport enum LinkType {\n BlockedBy = 'BLOCKED_BY',\n Blocks = 'BLOCKS',\n Child = 'CHILD',\n Duplicate = 'DUPLICATE',\n Parent = 'PARENT',\n Related = 'RELATED'\n}\n\nexport type LowStockProduct = {\n __typename?: 'LowStockProduct';\n name: Scalars['String']['output'];\n productId: Scalars['ID']['output'];\n stockQuantity: Scalars['Int']['output'];\n threshold: Scalars['Int']['output'];\n};\n\nexport enum MfaMethod {\n Email = 'EMAIL',\n Sms = 'SMS',\n Totp = 'TOTP',\n Webauthn = 'WEBAUTHN'\n}\n\nexport type MfaMethodStatus = {\n __typename?: 'MFAMethodStatus';\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n method: MfaMethod;\n status: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n};\n\n/** Paginated list of MFA method statuses */\nexport type MfaMethodStatusConnection = {\n __typename?: 'MFAMethodStatusConnection';\n hasMore: Scalars['Boolean']['output'];\n methods: Array<MfaMethodStatus>;\n totalCount: Scalars['Int']['output'];\n};\n\nexport type MfaSetupResult = {\n __typename?: 'MFASetupResult';\n backupCodes?: Maybe<Array<Scalars['String']['output']>>;\n method: MfaMethod;\n qrCode?: Maybe<Scalars['String']['output']>;\n secret?: Maybe<Scalars['String']['output']>;\n};\n\nexport type MfaVerifyInput = {\n challengeId: Scalars['String']['input'];\n code: Scalars['String']['input'];\n method: MfaMethod;\n};\n\nexport type MagicLinkSendResult = {\n __typename?: 'MagicLinkSendResult';\n expiresIn?: Maybe<Scalars['Int']['output']>;\n message: Scalars['String']['output'];\n success: Scalars['Boolean']['output'];\n};\n\nexport type MaintenanceModeStatus = {\n __typename?: 'MaintenanceModeStatus';\n enabled: Scalars['Boolean']['output'];\n estimatedEnd?: Maybe<Scalars['DateTime']['output']>;\n reason?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum MediaPosition {\n Footer = 'FOOTER',\n Header = 'HEADER',\n Inline = 'INLINE',\n Overlay = 'OVERLAY',\n Sidebar = 'SIDEBAR'\n}\n\n/** Input for message attachments */\nexport type MessageAttachmentInput = {\n /** MIME type */\n mimeType?: InputMaybe<Scalars['String']['input']>;\n /** Attachment name */\n name?: InputMaybe<Scalars['String']['input']>;\n /** Attachment type (image, file, video) */\n type: Scalars['String']['input'];\n /** Attachment URL */\n url: Scalars['String']['input'];\n};\n\n/** MessageDeliveryAttempt represents a single delivery attempt (transient, 7-day TTL) Used for debugging and monitoring only */\nexport type MessageDeliveryAttempt = {\n __typename?: 'MessageDeliveryAttempt';\n /** Associated channel */\n channel: Channel;\n /** Associated channel ID */\n channelId: Scalars['ID']['output'];\n /** Message content */\n content: Scalars['String']['output'];\n /** Operation context (tenantId, userId, etc.) */\n context?: Maybe<OperationContext>;\n /** Creation timestamp */\n createdAt: Scalars['DateTime']['output'];\n /** Error message (if failed) */\n errorMessage?: Maybe<Scalars['String']['output']>;\n /** Expiration timestamp (7 days from creation) */\n expiresAt: Scalars['DateTime']['output'];\n /** Message format (text, markdown, html) */\n format?: Maybe<Scalars['String']['output']>;\n /** Unique delivery attempt ID */\n id: Scalars['ID']['output'];\n /** Next retry timestamp (if retrying) */\n nextRetryAt?: Maybe<Scalars['DateTime']['output']>;\n /** Platform-specific message options */\n platformOptions?: Maybe<Scalars['JSON']['output']>;\n /** Platform response (message ID, timestamp, etc.) */\n platformResponse?: Maybe<Scalars['JSON']['output']>;\n /** Retry count */\n retryCount: Scalars['Int']['output'];\n /** Message sent timestamp */\n sentAt?: Maybe<Scalars['DateTime']['output']>;\n /** Delivery status */\n status: DeliveryStatus;\n /** Last update timestamp */\n updatedAt: Scalars['DateTime']['output'];\n};\n\n/** Message delivery result */\nexport type MessageDeliveryResult = {\n __typename?: 'MessageDeliveryResult';\n /** Delivery attempt ID (for tracking) */\n attemptId: Scalars['ID']['output'];\n /** Error message (if failed) */\n error?: Maybe<Scalars['String']['output']>;\n /** Platform message ID (if successful) */\n messageId?: Maybe<Scalars['String']['output']>;\n /** Platform metadata for downstream correlation */\n metadata?: Maybe<Scalars['JSON']['output']>;\n /** Next retry timestamp */\n nextRetryAt?: Maybe<Scalars['DateTime']['output']>;\n /** Whether delivery was successful */\n success: Scalars['Boolean']['output'];\n /** Will retry delivery */\n willRetry: Scalars['Boolean']['output'];\n};\n\nexport enum MessageType {\n AgentReply = 'AGENT_REPLY',\n CustomerReply = 'CUSTOMER_REPLY',\n InternalNote = 'INTERNAL_NOTE',\n SystemMessage = 'SYSTEM_MESSAGE'\n}\n\nexport enum MisfirePolicy {\n Coalesce = 'COALESCE',\n FireImmediately = 'FIRE_IMMEDIATELY',\n FireNextValid = 'FIRE_NEXT_VALID',\n Skip = 'SKIP'\n}\n\nexport type MonthlyEarning = {\n __typename?: 'MonthlyEarning';\n currency: Scalars['String']['output'];\n earnings: Scalars['Float']['output'];\n month: Scalars['String']['output'];\n orders: Scalars['Int']['output'];\n year: Scalars['Int']['output'];\n};\n\n/** Input for delivering a notification across multiple platforms and recipients simultaneously. The service fans out per-platform in parallel with independent failover per platform. */\nexport type MultiPlatformDeliveryInput = {\n /** Notification content (same content sent to all platforms/recipients) */\n content: ChannelDeliveryContentInput;\n /** Optional reference to originating notification in notification-svc */\n notificationId?: InputMaybe<Scalars['ID']['input']>;\n /** Delivery options (priority, scheduling, retry policy) */\n options?: InputMaybe<ChannelDeliveryOptionsInput>;\n /** Organization ID for multi-tenancy */\n organizationId: Scalars['ID']['input'];\n /** Target delivery platforms (e.g. [EMAIL, SMS, PUSH]) */\n platforms: Array<ChannelPlatform>;\n /** Recipients — provide the address field for each target platform */\n recipients: Array<MultiPlatformRecipientInput>;\n};\n\n/** Aggregated result of a multi-platform notification delivery */\nexport type MultiPlatformDeliveryResult = {\n __typename?: 'MultiPlatformDeliveryResult';\n /** Number of failed deliveries across all platforms and recipients */\n failedCount: Scalars['Int']['output'];\n /** Per-platform breakdown of delivery results */\n platformResults: Array<PlatformDeliveryResult>;\n /** Number of successful deliveries across all platforms and recipients */\n successCount: Scalars['Int']['output'];\n /** Total number of platforms targeted */\n totalPlatforms: Scalars['Int']['output'];\n /** Total number of recipients across all platforms */\n totalRecipients: Scalars['Int']['output'];\n};\n\n/** Per-recipient addresses for multi-platform delivery. Populate the field that matches each target platform. */\nexport type MultiPlatformRecipientInput = {\n /** Email address (for EMAIL platform) */\n email?: InputMaybe<Scalars['String']['input']>;\n /** Phone number in E.164 format (for SMS and WHATSAPP platforms) */\n phoneNumber?: InputMaybe<Scalars['String']['input']>;\n /** Device push token (for PUSH platform) */\n pushToken?: InputMaybe<Scalars['String']['input']>;\n /** Slack user ID or channel ID (for SLACK platform) */\n slackUserId?: InputMaybe<Scalars['String']['input']>;\n /** Microsoft Teams user ID (for TEAMS platform) */\n teamsUserId?: InputMaybe<Scalars['String']['input']>;\n /** Internal user ID (for INAPP platform) */\n userId?: InputMaybe<Scalars['String']['input']>;\n /** Webhook URL (for WEBHOOK platform) */\n webhookUrl?: InputMaybe<Scalars['String']['input']>;\n /** WhatsApp phone number (for WHATSAPP platform) */\n whatsappNumber?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Root mutation type */\nexport type Mutation = {\n __typename?: 'Mutation';\n /** Placeholder field so the Mutation type can be extended. @shareable because every subgraph declares it. */\n _empty?: Maybe<Scalars['String']['output']>;\n /** Placeholder mutation (extended by modules) @rbac(public: true, scopeType: \"global\") */\n _placeholder?: Maybe<Scalars['String']['output']>;\n /** Accept an organization invitation */\n acceptDeveloperOrgInvitation: DeveloperOrgMember;\n /** Accept an organization invite (must be logged in as the invited user) */\n acceptOrganizationInvite: OrganizationMember;\n acceptSourcingOffer: SourcingOrderSummary;\n /** Activate a channel */\n activateChannel: Channel;\n /** Activate a connection */\n activateConnection: ChannelConnection;\n activateLicense: LicenseActivationResult;\n activateSchedule: ScheduledJob;\n /** 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. */\n activateSubscriptionForWorkspace: ActivateSubscriptionForWorkspaceResult;\n /** 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. */\n activateSubscriptionForWorkspaces: ActivateSubscriptionForWorkspacesResult;\n /** Activate a suspended tenant */\n activateTenant: Tenant;\n /** Activate a tour schedule */\n activateTourSchedule: TourSchedule;\n /** Activate a suspended workspace */\n activateWorkspace: Workspace;\n addAffiliateCodeNote: AffiliateCodeNote;\n addAgentSkills: AgentProfile;\n /** Add apps to a collection */\n addAppsToCollection: AppCollection;\n /** Add a payment method to an organization */\n addDeveloperOrgPaymentMethod: DeveloperOrgPaymentMethod;\n /** Append a tracking event to fulfillment history (admin) */\n addOrderTrackingEvent: FulfillmentTrackingEvent;\n /** Add a member to an organization */\n addOrganizationMember: OrganizationMember;\n /** Add a payment method to a billing account */\n addPaymentMethod: PaymentMethod;\n addPayoutAccount: PayoutAccount;\n addPublisherPayoutMethod: PublisherPayoutMethod;\n addReleaseTesters: Array<ReleaseTrackUser>;\n addSubscribersToList: NewsletterList;\n addSuppression: NewsletterSuppression;\n /** 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). */\n addTagToApplication: ApplicationTagAssignment;\n /** 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) */\n addTenantMember: TenantMember;\n addTicketTags: SupportTicket;\n /** Add an item to the cart (creates cart if needed) */\n addToCart: CartItemPayload;\n addToWishlist: UserWishlist;\n /** Add a new tour step */\n addTourStep: TourStep;\n addUsage: Scalars['Boolean']['output'];\n /** Add a member to a workspace */\n addWorkspaceMember: WorkspaceMember;\n adjustInventory: InventoryAdjustment;\n adminMarkAffiliateConversion: AffiliateJourneyEvent;\n /** Apply a billing discount code */\n applyBillingDiscount: BillingDiscount;\n applySLAPolicy: SupportTicket;\n /** Apply a coupon to a subscription */\n applySubscriptionCoupon: DeveloperOrgSubscription;\n approveApplication: Application;\n /** 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. */\n approveApplicationVersion: ApplicationVersion;\n approveDeveloperOrganizationVerification: DeveloperOrganization;\n /** Approve a payout (admin only) */\n approvePayout: DeveloperOrgPayout;\n approvePayoutRequest: PayoutRequest;\n /** Admin approves a product that's in PENDING_REVIEW, moving it to PUBLISHED. */\n approveProduct: StoreProduct;\n approvePublisher: Publisher;\n approveReview: ProductReview;\n approveTranslation: Translation;\n approveWaitlist: NewsletterWaitlist;\n /** Soft archive a billing account. Financial history is preserved and the account is removed from active billing operations. */\n archiveBillingAccount: BillingAccount;\n /** Archive a channel */\n archiveChannel: Channel;\n archiveKnowledgeBaseArticle: KnowledgeBaseArticle;\n /** Archive a notification without deleting it */\n archiveNotification: Notification;\n /** Archive multiple notifications */\n archiveNotifications: BatchOperationResult;\n archivePayoutAccount: Scalars['Boolean']['output'];\n archiveSchedule: ScheduledJob;\n /** Archive a tour (change status to ARCHIVED) */\n archiveTour: Tour;\n /** Archive a workspace */\n archiveWorkspace: Workspace;\n /** 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. */\n assignAuthenticatedUserRole: AssignAuthenticatedUserRoleResult;\n assignEntitlementSeat: ProductEntitlement;\n /** Assign interviewers to an interview round (admin). */\n assignInterviewersToRound: InterviewRound;\n /** Internal-only: assign any plan to a billing account for free. Requires PLAN_ASSIGN_SECRET env-var value as secret. */\n assignPlanFree: BillingSubscription;\n /** 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). */\n assignQuotaFree: AssignedQuota;\n /** Assign a role to an actor */\n assignRoleToActor: ActorRoleAssignment;\n assignSeat: LicenseSeat;\n assignSupportTicket: SupportTicket;\n /** Attach media to a tour step */\n attachMediaToStep: TourStepMedia;\n /** 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). */\n authEraseSubject: AuthEraseResult;\n /** 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). */\n authExportSubject: Scalars['JSON']['output'];\n authenticate: AuthResult;\n authenticateAPIKey: AuthResult;\n /** Authenticate an app using client credentials (OAuth2 Client Credentials flow) */\n authenticateApp: AppTokenResponse;\n /** Authenticate using HTTP Basic Auth (base64 encoded username:password) */\n authenticateBasicAuth: AuthResult;\n /** Authenticate using HTTP Digest credentials */\n authenticateDigest: AuthResult;\n /** Authenticate with Kerberos SPNEGO token */\n authenticateKerberos: AuthResult;\n /** Authenticate using LDAP credentials */\n authenticateLDAP: AuthResult;\n authenticateMagicLink: AuthResult;\n /** Complete NTLM authentication with Type 3 message */\n authenticateNTLM: AuthResult;\n authenticateOAuth: AuthResult;\n /** Complete OIDC SSO authentication by exchanging authorization code */\n authenticateOIDC: AuthPayload;\n /** Authenticate using RADIUS */\n authenticateRADIUS: AuthResult;\n authenticateSAML: AuthResult;\n /** Authenticate with wallet signature (EIP-191 personal_sign) */\n authenticateWallet: WalletAuthResult;\n /** Authenticate with a signed challenge */\n authenticateWithPublicKey: AuthResult;\n bulkArchiveSchedules: SchedulerBulkOperationResult;\n /** Bulk assign a role to multiple actors */\n bulkAssignRole: Scalars['Int']['output'];\n bulkCreateTranslationKeys: BulkOperationResult;\n bulkCreateTranslations: BulkOperationResult;\n /** Ensure every valid requested application has exactly one concrete interview round for the selected posting round config (admin). */\n bulkEnsureInterviewRounds: BulkEnsureInterviewRoundsResult;\n bulkPauseSchedules: SchedulerBulkOperationResult;\n /** 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. */\n bulkRandomizeAndSendAssignment: BulkSendResult;\n bulkResumeSchedules: SchedulerBulkOperationResult;\n /** 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. */\n bulkSendCustomEmail: BulkCustomEmailResult;\n /** 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. */\n bulkSendRoundMessage: BulkSendResult;\n /** Bulk set user's opt-in/out preference for multiple feature flags. RBAC is scoped to the target workspace via `input.workspaceId`. */\n bulkSetUserFeatureFlagPreferences: Array<UserFeatureFlagPreference>;\n /** 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. */\n bulkUpdateApplicationStatus: BulkUpdateApplicationStatusResult;\n bulkUpdateSchedules: SchedulerBulkOperationResult;\n bulkUpdateTranslations: BulkOperationResult;\n cancelDSAR: DsarRequest;\n /** Cancel pending delivery */\n cancelDelivery: Scalars['Boolean']['output'];\n /** Cancel an organization invitation */\n cancelDeveloperOrgInvitation: Scalars['Boolean']['output'];\n /** Cancel a subscription */\n cancelDeveloperOrgSubscription: DeveloperOrgSubscription;\n cancelImportJob: ImportJob;\n cancelNewsletter: Newsletter;\n /** Cancel an organization invite (admin or inviter) */\n cancelOrganizationInvite: OrganizationInvite;\n /** Cancel a pending payout */\n cancelPayout: DeveloperOrgPayout;\n /** Cancel a scheduled notification */\n cancelScheduledNotification: Scalars['Boolean']['output'];\n cancelSourcingRequest: SourcingRequest;\n /** Cancel a subscription - disables auto-renewal but keeps subscription active until endDate. The subscription will not renew when it expires. */\n cancelSubscription: BillingSubscription;\n changePassword: Scalars['Boolean']['output'];\n /** 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\"`). */\n channelEraseSubject: ChannelEraseResult;\n /** 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. */\n channelExportSubject: Scalars['JSON']['output'];\n /** Check push MFA challenge status (polling) */\n checkPushMFAStatus: PushMfaStatus;\n /** Checkout and create an order from the cart */\n checkout: CheckoutPayload;\n /** Clear all items from the cart */\n clearCart: CartPayload;\n cloneSchedule: ScheduledJob;\n closeSupportTicket: SupportTicket;\n /** 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. */\n completeAppOAuth: AppInstallation;\n /** Complete OAuth flow with authorization code */\n completeOAuthFlow: ChannelConnection;\n /** Mark a specific step as completed */\n completeStep: TourUserProgress;\n completeSupportAttachmentUpload: SupportAttachmentFile;\n /** Mark a tour as completed for a user */\n completeTour: TourUserProgress;\n configureEntitlementSeats: ProductEntitlement;\n /** Configure Kerberos authentication for a tenant */\n configureKerberos: KerberosConfig;\n /** Configure LDAP authentication for a tenant */\n configureLDAP: LdapConfig;\n /** Configure RADIUS authentication for a tenant */\n configureRADIUS: RadiusConfig;\n /** Configure tenant settings */\n configureTenant: Tenant;\n /** Configure workspace routing (admin only) */\n configureWorkspace: Workspace;\n createAddOns: Scalars['Boolean']['output'];\n createAffiliateCode: AffiliateCode;\n createAgentProfile: AgentProfile;\n createApp: AppCreateResponse;\n /** Create an app collection */\n createAppCollection: AppCollection;\n /** Create a review for an application */\n createAppReview: AppReview;\n createApplication: Application;\n createApplicationVersion: ApplicationVersion;\n createAutomationStep: AutomationStep;\n /** Create a new billing account for the current org (from context) */\n createBillingAccount: BillingAccount;\n /** Create a billing order for external service (e.g., store) Stores order details + GraphQL callback endpoint for payment notifications */\n createBillingOrder: CreateBillingOrderResponse;\n createCampaign: NewsletterCampaign;\n createCannedResponse: CannedResponse;\n /** Create multiple categories at once */\n createCategories: Scalars['Boolean']['output'];\n createCategory: ProductCategory;\n /** Create a new channel */\n createChannel: Channel;\n /** Create a new connection (OAuth flow or direct credentials) */\n createConnection: ChannelConnection;\n /** Create a new content page (global default or product-specific) */\n createContentPage: ProductContentPage;\n /** Create a new coupon (admin) */\n createCoupon: Coupon;\n /** Create a credit note */\n createCreditNote: CreditNote;\n /** Create a subscription */\n createDeveloperOrgSubscription: DeveloperOrgSubscription;\n /** Create a new developer organization */\n createDeveloperOrganization: DeveloperOrganization;\n createDeveloperProfile: DeveloperProfile;\n /** Create a discount code */\n createDiscount: BillingDiscount;\n createEditorialCollection: EditorialCollection;\n /** Create a new subscription entitlement (link a plan to a store item) */\n createEntitlement: SubscriptionEntitlement;\n /** 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. */\n createExploreShareLink: ExploreShareLink;\n createFAQ: Faq;\n /** Create a new feature flag (super admin only) */\n createFeatureFlag: FeatureFlag;\n createI18nModule: I18nModule;\n createI18nNamespace: I18nNamespace;\n createI18nProduct: I18nProduct;\n createImportJob: ImportJob;\n /** Create an interview round for a job application (admin). */\n createInterviewRound: InterviewRound;\n /** Create an interview round config for a job posting (admin). */\n createInterviewRoundConfig: InterviewRoundConfig;\n /** Create a new interviewer (admin). */\n createInterviewer: Interviewer;\n /** 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. */\n createJobApplication: JobApplication;\n /** Create a new take-home assignment (admin). */\n createJobAssignment: JobAssignment;\n /** Create a new job posting (admin). */\n createJobPosting: JobPosting;\n /** Create a new keyboard shortcut */\n createKeyboardShortcut: KeyboardShortcut;\n createKnowledgeBaseArticle: KnowledgeBaseArticle;\n createLanguage: Language;\n createNewsletter: Newsletter;\n createNewsletterAutomation: NewsletterAutomation;\n createNewsletterList: NewsletterList;\n createNewsletterTemplate: NewsletterTemplate;\n createNewsletterVariant: NewsletterVariant;\n /** Create a notification (without triggering - use triggerNotification to send) */\n createNotification: Notification;\n /** Create a notification history entry */\n createNotificationHistory: NotificationHistory;\n /** Create a notification preference */\n createNotificationPreference: NotificationPreference;\n /** Create a notification template */\n createNotificationTemplate: NotificationTemplate;\n /** Create a notification topic */\n createNotificationTopic: NotificationTopic;\n /** Create a new organization */\n createOrganization: Organization;\n /** Create a permission override for an actor */\n createPermissionOverride: PermissionOverride;\n createPhysicalProduct: StoreProduct;\n createPlan: Scalars['Boolean']['output'];\n /** Create a new platform product */\n createPlatformProduct: PlatformProduct;\n /** Create an OPA policy reference */\n createPolicyReference: PolicyReference;\n /** Create a press kit asset for a product */\n createPressKitAsset: ProductPressKitAsset;\n /** 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. */\n createPressKitAssetUploadUrl: PressKitAssetUploadUrl;\n createProduct: StoreProduct;\n createProductEntitlement: ProductEntitlement;\n createProductVariant: ProductVariant;\n createPromoCode: PromoCode;\n /** Create a promotional offer (admin only) */\n createPromotion: Promotion;\n /** Create a support ticket from a public/unauthenticated source (e.g. website contact form). Does not require authentication. */\n createPublicSupportTicket: SupportTicket;\n createQuota: Scalars['Boolean']['output'];\n createRecurringBillingPlan: RecurringBillingPlan;\n /** Create/update user's referral code */\n createReferralCode: ReferralCode;\n /** Create a refund for a charge (legacy - use refund management mutations below) */\n createRefund: Refund;\n /** Create a manual refund record for the current org (from context) */\n createRefundRecord: RefundRecord;\n /** Create a refund record from a specific failed webhook */\n createRefundRecordFromWebhook?: Maybe<RefundRecord>;\n /** Create refund records from all failed webhooks */\n createRefundRecordsFromFailedWebhooks: Array<RefundRecord>;\n createRelease: ProductRelease;\n createReleaseTrack: ReleaseTrack;\n createReview: ProductReview;\n /** Create a new role */\n createRole: Role;\n /** Create a permission override for a role */\n createRolePermissionOverride: RolePermissionOverride;\n createSLAPolicy: SlaPolicy;\n createScheduleFromTemplate: ScheduledJob;\n createScheduleTemplate: ScheduleTemplate;\n createScheduledJob: ScheduledJob;\n /** 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. */\n createSellerOrganization: DeveloperOrganization;\n createShippingAddress: ShippingAddress;\n createShippingMethod: ShippingMethod;\n createShippingRate: ShippingRate;\n createShippingZone: ShippingZone;\n /** Create a signed cookie session */\n createSignedCookieSession: SignedCookieResult;\n createSourcingRequest: SourcingRequest;\n createStore: Store;\n /** 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. */\n createStoreOrder: StoreOrder;\n createSubprocessor: Subprocessor;\n /** Link a subscription plan to a store product granting FREE_ACCESS or DISCOUNT. */\n createSubscriptionEntitlement: StoreSubscriptionEntitlement;\n createSupportMessage: SupportMessage;\n createSupportTicket: SupportTicket;\n createTag: ProductTag;\n /** Create a tax rate */\n createTaxRate: TaxRate;\n /** Create a new tenant (requires admin privileges) */\n createTenant: Tenant;\n createTicketCategory: TicketCategory;\n createTicketFromTemplate: SupportTicket;\n createTicketTemplate: TicketTemplate;\n /** Create a new tour */\n createTour: Tour;\n /** Create a tour from a template */\n createTourFromTemplate: Tour;\n /** 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. */\n createTourMediaMetadata: TourMedia;\n /** Create a new tour schedule */\n createTourSchedule: TourSchedule;\n /** Create a tour template */\n createTourTemplate: TourTemplate;\n createTranslation: Translation;\n createTranslationKey: TranslationKey;\n /** Create complete tenant structure for a new user (tenant, org, workspace) This is typically called after user email verification */\n createUserTenantStructure: CreateUserTenantStructureResponse;\n /** Create a visibility rule for a resource. Auto-registers the resource if not already registered. */\n createVisibilityRule: VisibilityRule;\n createWebhook: WebhookCreated;\n /** Create a new workspace */\n createWorkspace: Workspace;\n /** Deactivate current user's account (soft disable, can be reactivated) */\n deactivateAccount: AccountActionResult;\n deactivateAffiliateCode: AffiliateCode;\n deactivateApp: Scalars['Boolean']['output'];\n deactivateApplication: Scalars['Boolean']['output'];\n /** Deactivate a channel */\n deactivateChannel: Channel;\n /** Deactivate a connection */\n deactivateConnection: ChannelConnection;\n /** Deactivate a coupon (admin) */\n deactivateCoupon: Coupon;\n deactivateLicense: Scalars['Boolean']['output'];\n /** Deactivate a promotion (admin only) */\n deactivatePromotion: Promotion;\n /** Deactivate a referral code */\n deactivateReferralCode: ReferralCode;\n /** Deactivate a resource (soft-delete) */\n deactivateResource: Scalars['Boolean']['output'];\n /** Deactivate a tour schedule */\n deactivateTourSchedule: TourSchedule;\n /** 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. */\n decrementQuota: Scalars['Boolean']['output'];\n /** Delete current user's account permanently Requires password confirmation */\n deleteAccount: AccountActionResult;\n deleteAffiliateCode: Scalars['Boolean']['output'];\n deleteAgentProfile: Scalars['Boolean']['output'];\n deleteApp: AccountActionResult;\n /** Delete an app collection */\n deleteAppCollection: Scalars['Boolean']['output'];\n /** Delete a review */\n deleteAppReview: Scalars['Boolean']['output'];\n deleteApplication: Scalars['Boolean']['output'];\n deleteAutomationStep: Scalars['Boolean']['output'];\n deleteCannedResponse: Scalars['Boolean']['output'];\n deleteCategory: Scalars['Boolean']['output'];\n /** Delete a channel (soft delete) */\n deleteChannel: Scalars['Boolean']['output'];\n /** Delete a connection (removes all credentials) */\n deleteConnection: Scalars['Boolean']['output'];\n /** Delete a content page */\n deleteContentPage: Scalars['Boolean']['output'];\n /** Delete a payment method */\n deleteDeveloperOrgPaymentMethod: Scalars['Boolean']['output'];\n /** Delete a developer organization */\n deleteDeveloperOrganization: Scalars['Boolean']['output'];\n /** Delete a discount */\n deleteDiscount: Scalars['Boolean']['output'];\n /** Delete an entitlement */\n deleteEntitlement: Scalars['Boolean']['output'];\n /** Delete external OIDC configuration Admin only */\n deleteExternalOIDCConfig: AccountActionResult;\n deleteFAQ: Scalars['Boolean']['output'];\n /** Delete a feature flag (super admin only) */\n deleteFeatureFlag: Scalars['Boolean']['output'];\n deleteI18nModule: Scalars['Boolean']['output'];\n deleteI18nNamespace: Scalars['Boolean']['output'];\n deleteI18nProduct: Scalars['Boolean']['output'];\n /** Delete interview feedback (admin). */\n deleteInterviewFeedback: Scalars['Boolean']['output'];\n /** Delete an interview round (admin). */\n deleteInterviewRound: Scalars['Boolean']['output'];\n /** Delete an interview round config (admin). */\n deleteInterviewRoundConfig: Scalars['Boolean']['output'];\n /** Delete an interviewer (admin). */\n deleteInterviewer: Scalars['Boolean']['output'];\n /** Delete a take-home assignment (admin). */\n deleteJobAssignment: Scalars['Boolean']['output'];\n /** Delete a job posting and its related round configs/assignments (admin). */\n deleteJobPosting: Scalars['Boolean']['output'];\n /** Delete Kerberos configuration */\n deleteKerberosConfiguration: Scalars['Boolean']['output'];\n /** Delete a keyboard shortcut */\n deleteKeyboardShortcut: Scalars['Boolean']['output'];\n deleteKnowledgeBaseArticle: Scalars['Boolean']['output'];\n /** Delete LDAP configuration */\n deleteLDAPConfiguration: Scalars['Boolean']['output'];\n deleteLanguage: Scalars['Boolean']['output'];\n /** Delete all read notifications for authenticated user */\n deleteMyReadNotifications: Scalars['Boolean']['output'];\n deleteNewsletter: Scalars['Boolean']['output'];\n deleteNewsletterAutomation: Scalars['Boolean']['output'];\n deleteNewsletterList: Scalars['Boolean']['output'];\n deleteNewsletterTemplate: Scalars['Boolean']['output'];\n deleteNewsletterVariant: Scalars['Boolean']['output'];\n /** Delete a single notification */\n deleteNotification: Scalars['Boolean']['output'];\n /** Delete a notification history entry */\n deleteNotificationHistory: Scalars['Boolean']['output'];\n /** Delete a notification preference */\n deleteNotificationPreference: Scalars['Boolean']['output'];\n /** Delete a notification template */\n deleteNotificationTemplate: Scalars['Boolean']['output'];\n /** Delete a notification topic */\n deleteNotificationTopic: Scalars['Boolean']['output'];\n /** Delete multiple notifications by IDs */\n deleteNotifications: Scalars['Boolean']['output'];\n /** Delete notifications matching a filter */\n deleteNotificationsByFilter: Scalars['Int']['output'];\n /** Delete an organization */\n deleteOrganization: Scalars['Boolean']['output'];\n /** Delete a payment method */\n deletePaymentMethod: Scalars['Boolean']['output'];\n /** Delete a platform product */\n deletePlatformProduct: Scalars['Boolean']['output'];\n /** Delete an OPA policy reference */\n deletePolicyReference: Scalars['Boolean']['output'];\n /** Delete a press kit asset */\n deletePressKitAsset: Scalars['Boolean']['output'];\n deleteProduct: Scalars['Boolean']['output'];\n deleteProductAsset: Scalars['Boolean']['output'];\n deleteProductEntitlement: Scalars['Boolean']['output'];\n deleteProductVariant: Scalars['Boolean']['output'];\n /** Delete RADIUS configuration */\n deleteRADIUSConfiguration: Scalars['Boolean']['output'];\n deleteReview: Scalars['Boolean']['output'];\n deleteReviewReply: Scalars['Boolean']['output'];\n /** Delete developer response */\n deleteReviewResponse: AppReview;\n /** Delete a role (optionally reassign members) */\n deleteRole: Scalars['Boolean']['output'];\n deleteSLAPolicy: Scalars['Boolean']['output'];\n /** Delete SSO/SAML configuration */\n deleteSSOConfig: Scalars['Boolean']['output'];\n deleteScheduleTemplate: Scalars['Boolean']['output'];\n deleteScheduledJob: Scalars['Boolean']['output'];\n deleteShippingAddress: Scalars['Boolean']['output'];\n deleteStore: Scalars['Boolean']['output'];\n deleteSubscriber: Scalars['Boolean']['output'];\n /** Remove a plan→product subscription entitlement. */\n deleteSubscriptionEntitlement: Scalars['Boolean']['output'];\n deleteSupportMessage: Scalars['Boolean']['output'];\n deleteSupportTicket: Scalars['Boolean']['output'];\n deleteTag: Scalars['Boolean']['output'];\n /** Delete a tax rate */\n deleteTaxRate: Scalars['Boolean']['output'];\n /** Soft delete a tenant */\n deleteTenant: Scalars['Boolean']['output'];\n deleteTicketCategory: Scalars['Boolean']['output'];\n deleteTicketTemplate: Scalars['Boolean']['output'];\n /** Delete a tour */\n deleteTour: Scalars['Boolean']['output'];\n /** Delete tour media */\n deleteTourMedia: Scalars['Boolean']['output'];\n /** Delete a tour schedule */\n deleteTourSchedule: TourSchedule;\n /** Delete a tour step */\n deleteTourStep: Scalars['Boolean']['output'];\n /** Delete a tour template */\n deleteTourTemplate: Scalars['Boolean']['output'];\n deleteTranslation: Scalars['Boolean']['output'];\n deleteTranslationKey: Scalars['Boolean']['output'];\n /** Delete a user by ID (admin only, soft delete) */\n deleteUser: DeleteUserResult;\n deleteUserLanguagePreference: Scalars['Boolean']['output'];\n /** Soft-delete a user platform connection */\n deleteUserPlatformConnection: Scalars['Boolean']['output'];\n /** 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. */\n deleteUserShippingAddress: Scalars['Boolean']['output'];\n deleteWebhook: Scalars['Boolean']['output'];\n /** Admin delists a published product — removes it from store discovery for new users while preserving access for anyone who already installed it. */\n delistProduct: StoreProduct;\n /** Deliver the same notification to multiple recipients in bulk. More efficient than multiple single calls for broadcast scenarios. */\n deliverBulkNotification: BulkChannelDeliveryResult;\n /** 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. */\n deliverMultiPlatformNotification: MultiPlatformDeliveryResult;\n /** Deliver a notification to a single recipient via Channel service. Called by global-notification-svc to deliver through platform adapters. */\n deliverNotification: ChannelDeliveryResult;\n /** 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. */\n deliverPushToUser: UserPushDeliveryResult;\n deprecateApplicationVersion: ApplicationVersion;\n deprecateProduct: StoreProduct;\n /** Detach media from a tour step */\n detachMediaFromStep: Scalars['Boolean']['output'];\n disableAuthMethod: Scalars['Boolean']['output'];\n disableMFA: Scalars['Boolean']['output'];\n disableMaintenanceMode: MaintenanceModeStatus;\n disableSchedule: ScheduledJob;\n discardDLQEntry: Scalars['Boolean']['output'];\n /** Dismiss a tour for a user (with option to dismiss permanently) */\n dismissTour: TourUserProgress;\n duplicateNewsletter: Newsletter;\n /** Duplicate a tour with all its steps */\n duplicateTour: Tour;\n /** Record earned credits (e.g. from devportal sales, referrals) */\n earnCredits: CreditTransaction;\n enableAuthMethod: Scalars['Boolean']['output'];\n enableMFA: Scalars['Boolean']['output'];\n enableMaintenanceMode: MaintenanceModeStatus;\n enrollSubscriberInAutomation: AutomationSubscriber;\n /** 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/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. */\n ensureOrganizationMember: EnsureOrganizationMemberResult;\n /** 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. */\n ensureStoreOrderBillingOrder: EnsureStoreOrderBillingOrderResponse;\n /** 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. */\n eraseSubject: EraseResult;\n escalateSupportTicket: SupportTicket;\n /** Exchange app token for app-as-user token (Token Exchange flow) */\n exchangeToken: AppAsUserTokenResponse;\n executeJobNow: JobExecution;\n /** Queue one turn. Returns immediately; poll exploreAgentJob for the answer. */\n exploreAgentSubmit: ExploreAgentJob;\n /** Export Application records matching the optional filter. */\n exportApplications: DevportalExportJob;\n /** Export AuditLog records matching the optional filter. */\n exportAuditLogs: DevportalExportJob;\n /** Export channel user (platform connection) records matching the filter. */\n exportChannelUsers: ChannelExportJob;\n /** Export channel configurations matching the filter. */\n exportChannels: ChannelExportJob;\n /** Export delivery attempt records matching the filter. */\n exportDeliveryAttempts: ChannelExportJob;\n /** Export DeveloperOrganization records matching the optional filter. */\n exportDeveloperOrganizations: DevportalExportJob;\n /** Export per-organization revenue rows matching the optional filter. */\n exportRevenue: DevportalExportJob;\n /** 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. */\n exportSubject: Scalars['JSON']['output'];\n /** Export webhook event records matching the filter. */\n exportWebhookEvents: ChannelExportJob;\n /** Export Webhook records matching the optional filter. */\n exportWebhooks: DevportalExportJob;\n /** Feature a review */\n featureAppReview: AppReview;\n fileDSAR: DsarRequest;\n freeUpUsage: Scalars['Boolean']['output'];\n generateAPIKey: ApiKeyResult;\n generateAppAsUserToken: AppAsUserTokenResponse;\n generateAppToken: AppTokenResponse;\n /** Generate HMAC shared secret for an app */\n generateHMACSecret: HmacCredentialResult;\n /** Generate an invoice for a subscription */\n generateInvoice: Invoice;\n /** Generate OIDC authorization URL for SSO login Returns URL to redirect user to the IdP */\n generateOIDCAuthUrl: OidcAuthUrlResult;\n /** Generate passkey authentication options (for login) */\n generatePasskeyAuthenticationOptions: PasskeyAuthenticationOptions;\n /** Generate passkey registration options */\n generatePasskeyRegistrationOptions: PasskeyRegistrationOptions;\n generatePseudoLocale: PseudoLocaleResult;\n /** Generate a challenge for public key authentication */\n generatePublicKeyChallenge: PublicKeyChallengeResult;\n generateSAMLRequest: SamlRequestResult;\n /** Generate security key registration options (cross-platform authenticator) */\n generateSecurityKeyRegistrationOptions: PasskeyRegistrationOptions;\n /** Generate challenge message for wallet signature */\n generateWalletChallenge: WalletChallengeResult;\n getSupportAttachmentPartUploadUrls: Array<SupportAttachmentPresignedPart>;\n /** 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. */\n grantAppDelegationInternal: AppUserDelegation;\n /** 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. */\n grantAppWorkspaceAccess: AppWorkspaceAuthorization;\n grantConsent: ConsentRecord;\n grantCredits: CreditTransaction;\n grantDelegation: AppUserDelegation;\n haltRollout: ProductRelease;\n /** Handle delivery status update from channel service */\n handleChannelDeliveryEvent: NotificationEvent;\n /** Permanently delete a user (super admin only) */\n hardDeleteUser: DeleteUserResult;\n identifyAffiliateJourney: AffiliateTrackResult;\n /** Mark webhook as ignored */\n ignoreWebhook: Scalars['Boolean']['output'];\n importSubscribers: ImportSubscribersResult;\n /** 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). */\n initializeBillingRoles: InitializeBillingRolesResult;\n /** 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. */\n initializeOrganizationRoles: InitializeOrganizationRolesResult;\n /** 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. */\n initiateAppOAuth: AppOAuthInitiation;\n /** Initiate Kerberos SPNEGO authentication */\n initiateKerberosAuth: KerberosChallengeResult;\n /** Initiate NTLM authentication (returns Type 2 challenge) */\n initiateNTLMChallenge: NtlmChallengeResult;\n /** 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 */\n initiatePayment: InitiatePaymentResponse;\n /** Install an application */\n installApp: AppInstallation;\n /** 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). */\n installPurchasedApp: InstallPurchasedAppResult;\n /** Invite a user to join an organization */\n inviteDeveloperOrgMember: DeveloperOrgInvitationCreated;\n /** Invite a user to an organization by email */\n inviteOrganizationMember: OrganizationInvite;\n /** 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. */\n issueAppAsUserTokenInternal: AppAsUserTokenResponse;\n /** Public endpoint — no authentication required. Email is normalized (trimmed, lowercased). Must be protected by API gateway rate limiting (recommended: 5 req/min per IP). */\n joinWaitlist: NewsletterWaitlist;\n /** Leave an organization */\n leaveDeveloperOrganization: Scalars['Boolean']['output'];\n /** Link a billing account to an organization so store sale revenue flows there as credits */\n linkDevOrgBillingAccount: DeveloperOrganization;\n /** 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) */\n linkIntegrationConnection: UserPlatformConnection;\n linkTickets: TicketLink;\n /** Link wallet to existing user account */\n linkWallet: Scalars['Boolean']['output'];\n /** Mark all notifications as read for authenticated user */\n markAllMyNotificationsAsRead: BatchOperationResult;\n /** Mark a single notification as read */\n markNotificationAsRead: Notification;\n /** Mark a notification as unread */\n markNotificationAsUnread: Notification;\n /** Mark multiple notifications as read */\n markNotificationsAsRead: BatchOperationResult;\n /** Mark notifications matching a filter as read */\n markNotificationsByFilterAsRead: BatchOperationResult;\n /** Mark an order as refunded (admin) */\n markOrderRefunded: StoreOrder;\n markPayoutPaid: PayoutRequest;\n markReviewHelpful: ProductReview;\n /** Merge a guest cart into the current user's cart (after login) */\n mergeCart: CartPayload;\n mergeTickets: SupportTicket;\n /** 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. */\n mintScimToken: ScimTokenResult;\n mintSsoSession: AuthPayload;\n /** Moderate a review (admin) */\n moderateAppReview: AppReview;\n /** 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. */\n newsletterEraseSubject: NewsletterEraseResult;\n /** Export the subject's newsletter data: subscriber rows, per-list memberships, consent ledger entries, automation enrolments, waitlist entries. */\n newsletterExportSubject: Scalars['JSON']['output'];\n /** 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. */\n notifyDuplicateApplicants: DuplicateNoticeResult;\n openCircuitBreaker: CircuitBreakerState;\n /** Pause a subscription */\n pauseDeveloperOrgSubscription: DeveloperOrgSubscription;\n pauseSLA: SupportTicket;\n pauseScheduledJob: ScheduledJob;\n /** Pay an invoice using a payment method */\n payInvoice: Invoice;\n permanentlyDeleteSchedule: Scalars['Boolean']['output'];\n placeLegalHold: LegalHold;\n prepareSupportAttachmentUpload: SupportAttachmentUploadSession;\n /** 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. */\n processAppSaleRefund: DeveloperOrgSale;\n processPayoutRequest: PayoutRequest;\n /** Process a refund (one-click - calls payment gateway) */\n processRefund: ProcessRefundResult;\n /** Process pending scheduled notifications (internal/cron use) */\n processScheduledNotifications: Scalars['Int']['output'];\n /** Process a webhook manually (for retry) */\n processWebhook: WebhookProcessingResult;\n /** 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. */\n provisionDedicatedTenant: Tenant;\n /** 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. */\n provisionFreeTierForWorkspace: ProvisionFreeTierForWorkspaceResult;\n /** Public unsubscribe via HMAC-signed token from email link. No authentication required. */\n publicUnsubscribeByToken: Scalars['Boolean']['output'];\n publishApplication: Application;\n /** Developer action: submit a draft (or rejected) version for platform review. Status becomes pending_review. The store is NOT updated until an admin approves. */\n publishApplicationVersion: ApplicationVersion;\n /** 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. */\n publishCatalogNodeVersion: Scalars['JSON']['output'];\n publishFAQ: Faq;\n publishKnowledgeBaseArticle: KnowledgeBaseArticle;\n publishProduct: StoreProduct;\n /** Publish a tour (change status to PUBLISHED) */\n publishTour: Tour;\n publishTranslation: Translation;\n purchaseProduct: ProductEntitlement;\n /** Pick a random active assignment for the posting and email it to the candidate (admin). */\n randomizeAndSendAssignment: InterviewRound;\n rateArticle: KnowledgeBaseArticle;\n rateFAQ: Faq;\n /** Reactivate a self-deactivated account using email + password (proof of ownership). Rejects admin-deactivated accounts (contact support) and is rate-limited + enumeration-safe. */\n reactivateAccount: AuthResult;\n /** Complete reactivation using the token from the reactivation email. */\n reactivateAccountWithToken: AuthResult;\n /** Reactivate a suspended installation */\n reactivateAppInstallation: AppInstallation;\n /** Reactivate a suspended member */\n reactivateDeveloperOrgMember: DeveloperOrgMember;\n reactivateProductEntitlement: ProductEntitlement;\n recordActivity: ActivityLog;\n recordAffiliateConversion: AffiliateJourneyEvent;\n recordAffiliateTouchpoint: AffiliateTrackResult;\n recordAppInstallation: StoreAppInstallation;\n recordAppUninstallation: StoreAppInstallation;\n recordArticleView: KnowledgeBaseArticle;\n /** Record a candidate's assignment submission (admin). */\n recordAssignmentSubmission: InterviewRound;\n recordBounce: NewsletterBounce;\n recordComplaint: NewsletterComplaint;\n recordConsent: NewsletterConsent;\n recordDownload: ProductDownload;\n recordEarningEntry: EarningsEntry;\n /** 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. */\n recordExploreClick: RecordExploreClickResult;\n /** 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. */\n recordExternalSettlement: ExternalSettlementResult;\n recordFAQView: Faq;\n recordLicenseUsage: LicenseUsage;\n /** Record that a user acted on a notification action */\n recordNotificationAction: Notification;\n /** 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. */\n recordProductVisit: RecordProductVisitResult;\n /** Record a sale (usually called by store service) */\n recordSale: DeveloperOrgSale;\n /** Record user progress for a tour */\n recordTourProgress: TourUserProgress;\n /** 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. */\n refreshApplicationVersionPackageUrl?: Maybe<Scalars['String']['output']>;\n /** Refresh OAuth tokens manually */\n refreshConnectionTokens: ChannelConnection;\n refreshProductAssetUrl?: Maybe<Scalars['String']['output']>;\n refreshToken: AuthPayload;\n regenerateAffiliateCode: AffiliateCode;\n /** 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. */\n registerAppWithAuthService: Application;\n /** 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. */\n registerDeviceToken: DeviceToken;\n registerProductAsset: ProductAsset;\n /** Register a public key for authentication */\n registerPublicKey: PublicKeyRegistrationResult;\n registerPublisher: Publisher;\n /** Register a resource with custom RBAC configurations. */\n registerResource: Resource;\n registerSupportAttachmentPart: Scalars['Boolean']['output'];\n reinstatePublisher: Publisher;\n rejectApplication: Application;\n /** Platform admin only: reject a pending_review version with a reason. The developer can fix their submission and re-submit. */\n rejectApplicationVersion: ApplicationVersion;\n /** Reject an organization invitation */\n rejectDeveloperOrgInvitation: Scalars['Boolean']['output'];\n rejectDeveloperOrganizationVerification: DeveloperOrganization;\n /** Reject an organization invite (must be logged in as the invited user) */\n rejectOrganizationInvite: OrganizationInvite;\n rejectPayoutRequest: PayoutRequest;\n /** Admin rejects a submitted product with a mandatory reason. Publisher can edit and resubmit afterwards. */\n rejectProduct: StoreProduct;\n rejectPublisher: Publisher;\n rejectReview: ProductReview;\n rejectWaitlist: NewsletterWaitlist;\n releaseLegalHold: LegalHold;\n releaseSuppression: SuppressionEntry;\n removeAgentSkills: AgentProfile;\n /** Remove the license configuration for an application */\n removeAppLicense: Scalars['Boolean']['output'];\n /** Remove apps from a collection */\n removeAppsFromCollection: AppCollection;\n /** Remove a member from an organization */\n removeDeveloperOrgMember: Scalars['Boolean']['output'];\n /** Remove an item from the cart */\n removeFromCart: CartPayload;\n /** Remove a waitlist entry entirely (admin operation). */\n removeFromWaitlist: Scalars['Boolean']['output'];\n removeFromWishlist: Scalars['Boolean']['output'];\n /** Remove an interviewer from an interview round (admin). */\n removeInterviewerFromRound: Scalars['Boolean']['output'];\n /** Remove a member from an organization */\n removeOrganizationMember: Scalars['Boolean']['output'];\n /** Remove a passkey */\n removePasskey: Scalars['Boolean']['output'];\n /** Remove a permission override */\n removePermissionOverride: Scalars['Boolean']['output'];\n /** Remove a registered public key */\n removePublicKey: Scalars['Boolean']['output'];\n /** Remove default permission for a role on a resource type */\n removeRoleDefaultPermission: Role;\n /** Remove a role from an actor */\n removeRoleFromActor: Scalars['Boolean']['output'];\n /** Remove a role permission override */\n removeRolePermissionOverride: Scalars['Boolean']['output'];\n removeSubscribersFromList: NewsletterList;\n removeSuppression: Scalars['Boolean']['output'];\n /** Remove a single tag binding from an Application. */\n removeTagFromApplication: Scalars['Boolean']['output'];\n /** 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) */\n removeTenantMember: Scalars['Boolean']['output'];\n removeTicketTags: SupportTicket;\n /** Remove user's preference for a feature flag (reverts to default). RBAC is scoped to the target workspace. */\n removeUserFeatureFlagPreference: Scalars['Boolean']['output'];\n /** Remove a visibility rule */\n removeVisibilityRule: Scalars['Boolean']['output'];\n /** Remove a workspace override, reverting to the platform default. RBAC is scoped to the target workspace. */\n removeWorkspaceFeatureFlagOverride: Scalars['Boolean']['output'];\n /** Remove a member from a workspace */\n removeWorkspaceMember: Scalars['Boolean']['output'];\n /** Remove workspace metadata (membership and routing) Note: This only removes metadata. Use workspaces service to delete actual workspace content. */\n removeWorkspaceMetadata: Scalars['Boolean']['output'];\n /** Rename a passkey */\n renamePasskey: PasskeyInfo;\n renewProductEntitlement: ProductEntitlement;\n reopenSupportTicket: SupportTicket;\n /** Reorder apps in a collection */\n reorderCollectionApps: AppCollection;\n reorderFAQs: Array<Faq>;\n reorderTicketCategories: Array<TicketCategory>;\n /** Reorder tour steps */\n reorderTourSteps: Array<TourStep>;\n /** Replace the full set of tag bindings on an Application. */\n replaceApplicationTags: Array<ApplicationTagAssignment>;\n replaceChannelConnectionTags: Array<ChannelConnectionTagAssignment>;\n replaceChannelTags: Array<ChannelTagAssignment>;\n /** Replace all tags on a store product */\n replaceStoreProductTags: Array<StoreProductTagAssignment>;\n /** 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. */\n replyToContactInquiry: ContactInquiryReplyResult;\n /** 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. */\n replyToJobApplication: JobApplicationReplyResult;\n replyToReview: ProductReviewReply;\n /** Report a review */\n reportAppReview: AppReviewReport;\n /** 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. */\n reportNodeSandboxBuildStatus: Scalars['Boolean']['output'];\n /** Reprocess a failed webhook event */\n reprocessWebhook: WebhookProcessingResult;\n requestBillingPayout: PayoutRequest;\n /** 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. */\n requestCreditWithdrawal: PayoutRequest;\n /** 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. */\n requestDSARIdentityVerification: DsarRequest;\n /** Request a manual payout (devportal legacy alias) */\n requestDeveloperOrgPayout: DeveloperOrgPayout;\n /** Request return for an order (owner only — ownership asserted in service) */\n requestOrderReturn: OrderFulfillment;\n /** 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\"). */\n requestOrgVerification: DeveloperOrganization;\n /** Request a password reset - sends reset email */\n requestPasswordReset: PasswordResetRequestResult;\n /** Request a manual payout */\n requestPayout: DeveloperOrgPayout;\n /** 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). */\n requestReactivation: AccountActionResult;\n requeueFromDLQ: JobExecution;\n /** Reschedule an existing scheduled notification */\n rescheduleNotification: ScheduledNotification;\n /** Resend an organization invitation */\n resendDeveloperOrgInvitation: DeveloperOrgInvitation;\n /** Resend an organization invite notification (resets expiry, works on expired/rejected/cancelled) */\n resendOrganizationInvite: OrganizationInvite;\n resendSurvey: CustomerSatisfactionSurvey;\n resendVerificationEmail: ResendVerificationResult;\n resetCircuitBreaker: CircuitBreakerState;\n /** Reset password using token from email */\n resetPassword: Scalars['Boolean']['output'];\n /** Reset user's progress for a tour */\n resetTourProgress: TourUserProgress;\n /** 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. */\n resolveBillingAccount: BillingAccount;\n resolveContextWidgetConversation: ContextWidgetConversationPayload;\n resolveDLQEntry: Scalars['Boolean']['output'];\n resolveInventoryAlert: InventoryAlert;\n resolveSupportTicket: SupportTicket;\n /** Respond to a review (developer) */\n respondToAppReview: AppReview;\n /** Approve or deny push MFA challenge (called from user's device). Requires authentication — only the user who initiated the challenge can respond to it. */\n respondToPushMFA: Scalars['Boolean']['output'];\n /** Restore an archived channel */\n restoreChannel: Channel;\n restoreScheduleVersion: ScheduledJob;\n restoreTemplateVersion: NewsletterTemplate;\n /** 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. */\n resubscribe: NewsletterSubscriber;\n /** Resume a paused subscription */\n resumeDeveloperOrgSubscription: DeveloperOrgSubscription;\n resumeSLA: SupportTicket;\n resumeScheduledJob: ScheduledJob;\n /** 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. */\n retirePushDeviceInternal: Scalars['Boolean']['output'];\n retireSubprocessor: Subprocessor;\n /** Manually retry GraphQL callback for a failed billing order (admin only) Useful for retrying after fixing issues in external service */\n retryBillingOrderCallback: RetryBillingOrderCallbackResponse;\n /** Retry a failed delivery attempt */\n retryDelivery: MessageDeliveryResult;\n retryImportJob: ImportJob;\n /** 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). */\n retryInvoiceGeneration: Invoice;\n retryJobExecution: JobExecution;\n /** Retry a failed payout */\n retryPayout: DeveloperOrgPayout;\n /** Retry a failed refund */\n retryRefund: ProcessRefundResult;\n retrySaleCreditSync: DeveloperOrgSale;\n /** 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. */\n retrySyncOutboxEntry: RetrySyncOutboxResult;\n revertTranslation: Translation;\n reviewTranslation: Translation;\n revokeAPIKey: Scalars['Boolean']['output'];\n /** Revoke all sessions except the current one. Returns the number of sessions that were revoked. */\n revokeAllSessions: RevokeAllSessionsResult;\n /** Revoke an app's access to a workspace. Returns false if the row was already REVOKED or never existed. */\n revokeAppWorkspaceAccess: Scalars['Boolean']['output'];\n revokeConsent: NewsletterConsent;\n revokeDelegation: Scalars['Boolean']['output'];\n revokeEntitlementSeat: ProductEntitlement;\n /** Revoke an HMAC credential */\n revokeHMACCredential: Scalars['Boolean']['output'];\n revokeLicense: ProductEntitlement;\n /** Revoke a SCIM bearer token. The IdP's next provisioning call will get 401. */\n revokeScimToken: Scalars['Boolean']['output'];\n revokeSeat: LicenseSeat;\n /** Revoke (log out) a specific session by ID. Returns true if the session was successfully revoked. */\n revokeSession: Scalars['Boolean']['output'];\n /** Revoke a signed cookie session */\n revokeSignedCookieSession: Scalars['Boolean']['output'];\n /** Revoke a user's platform connection (sets dmAllowed = false, clears tokens). Does NOT delete the record — keeps presence history intact. */\n revokeUserPlatformConnection: UserPlatformConnection;\n rollbackRelease: ProductRelease;\n rotateAPIKey: ApiKeyRotateResult;\n rotateAppSecret: AppCreateResponse;\n /** 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. */\n rotateApplicationSigningSecret: Application;\n /** Rotate connection credentials (security) */\n rotateConnectionCredentials: ChannelConnection;\n /** Run health check on a channel */\n runChannelHealthCheck: ChannelHealthCheck;\n /** 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. */\n runDsarRequestForSubject: DsarOrchestrationResult;\n runMonthlyPayouts: PayoutRunLog;\n /** 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. */\n runMyDsarRequest: DsarOrchestrationResult;\n /** Save SSO/SAML configuration (creates or updates) */\n saveSSOConfig: SsoConfig;\n /** Save an existing tour as a reusable template */\n saveTourAsTemplate: TourTemplate;\n scheduleNewsletter: Newsletter;\n /** Schedule a notification for future delivery */\n scheduleNotification: ScheduledNotification;\n /** Overwrite the built-in AthleteBridge user-facing tours from the service-owned seed file. */\n seedAtheleteBridgeUserTours: SeedAtheleteBridgeUserToursResult;\n /** Overwrite the built-in Buildmyiq user-facing dashboard tour from the service-owned seed file. */\n seedBuildmyiqUserTours: SeedBuildmyiqUserToursResult;\n /** Overwrite the built-in CollabKin user-facing dashboard tour from the service-owned seed file. */\n seedCollabkinUserTours: SeedCollabkinUserToursResult;\n /** Overwrite the built-in CoolAndLovely user-facing Discover tour from the service-owned seed file. */\n seedCoolAndLovelyUserTours: SeedCoolAndLovelyUserToursResult;\n /** 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). */\n seedDefaultFeatureFlags: Scalars['Int']['output'];\n /** Bulk create default shortcuts for a product */\n seedDefaultShortcuts: Scalars['Int']['output'];\n /** Overwrite the built-in FluidGrids user-facing workflow-builder tour from the service-owned seed file. */\n seedFluidgridsUserTours: SeedFluidgridsUserToursResult;\n /** Overwrite the built-in IntelWatchtower user-facing tours for the intelligence workflow. */\n seedIntelWatchtowerUserTours: SeedIntelWatchtowerUserToursResult;\n /** Overwrite the built-in TheCulturePost user-facing tours from the service-owned seed file. */\n seedTheCulturePostUserTours: SeedTheCulturePostUserToursResult;\n /** Overwrite the built-in VibeControls user-facing tours for Support, Notifications, and Conversations from the service-owned seed file. */\n seedVibeControlsUserTours: SeedVibeControlsUserToursResult;\n selectVariantWinner: NewsletterVariant;\n sendContextWidgetMessage: SendContextWidgetMessagePayload;\n /** 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. */\n sendExploreMessage: SendExploreMessageResult;\n sendMagicLink: MagicLinkSendResult;\n /** Send a message to a channel */\n sendMessage: MessageDeliveryResult;\n sendNewsletter: Newsletter;\n /** 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. */\n sendProductWelcomeEmail: ChannelDeliveryResult;\n /** Send push MFA challenge to user's device */\n sendPushMFAChallenge: PushMfaChallengeResult;\n /** Send a message to the candidate for a specific round and mark it sent (admin). */\n sendRoundMessageToCandidate: InterviewRound;\n sendSurvey: CustomerSatisfactionSurvey;\n sendTestNewsletter: TestNewsletterResult;\n /** Record an EarningsEntry on behalf of an org/user by explicit billingAccountId. Service/super_admin only — internal gateway. */\n serviceRecordEarning: EarningsEntry;\n /** 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. */\n serviceRequestPayout: PayoutRequest;\n /** 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. */\n serviceResolvePayoutAccount: PayoutAccount;\n /** 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:<id>\", 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. */\n serviceSyncPayoutStatus?: Maybe<DeveloperOrgPayout>;\n setAgentAway: AgentProfile;\n setAgentOffline: AgentProfile;\n setAgentOnline: AgentProfile;\n /** Set (create or update) the license for an application, including optional workspace cap */\n setAppLicense: AppLicense;\n /** Set or update billing address for a billing account */\n setBillingAddress: BillingAddress;\n /** 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. */\n setDefaultBillingAccount: BillingAccount;\n setDefaultLanguage: Language;\n /** Set a payment method as default */\n setDefaultPaymentMethod: DeveloperOrgPaymentMethod;\n setDefaultPayoutAccount: PayoutAccount;\n setEntitlementSeatLimit: ProductEntitlement;\n /** Subscribe or unsubscribe the current user from a notification topic */\n setNotificationTopicSubscription: NotificationTopicSubscription;\n /** Set default permission level for a role on a resource type */\n setRoleDefaultPermission: Role;\n /** 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. */\n setStoreOrderShipping: StoreOrder;\n /** Set or update the endpoint URL for a DEDICATED tenant. Transitions PROVISIONING → ACTIVE when endpoint is set. */\n setTenantEndpoint: Tenant;\n /** Set user's opt-in/out preference for a previewable feature flag. RBAC is scoped to the target workspace via `input.workspaceId`. */\n setUserFeatureFlagPreference: UserFeatureFlagPreference;\n setUserLanguagePreference: UserLanguagePreference;\n /** Set workspace-level override for a feature flag (super admin or workspace admin). RBAC is scoped to the target workspace via `input.workspaceId`. */\n setWorkspaceFeatureFlagOverride: WorkspaceFeatureFlagOverride;\n setupMFA: MfaSetupResult;\n /** 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. */\n shareWorkflow: Application;\n sideloadApp: StoreAppInstallation;\n signIn?: Maybe<AuthPayload>;\n signOut: Scalars['Boolean']['output'];\n signUp?: Maybe<AuthPayload>;\n /** Skip a refund (mark as not needed) */\n skipRefund: RefundRecord;\n /** Mark a specific step as skipped */\n skipStep: TourUserProgress;\n /** Mark a tour as skipped for a user */\n skipTour: TourUserProgress;\n snapshotTopCharts: Scalars['Int']['output'];\n spendCredits: SpendCreditResponse;\n /** Start a trial for an application */\n startAppTrial: AppInstallation;\n startStagedRollout: ProductRelease;\n /** Mark a tour as started for a user */\n startTour: TourUserProgress;\n submitApplication: Application;\n /** 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). */\n submitApplicationForReview: Application;\n /** 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. */\n submitAssignmentResponse: SubmitAssignmentResponsePayload;\n /** 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. */\n submitContactInquiry: SubmitContactInquiryResult;\n /** Submit feedback for an interview round (admin). */\n submitInterviewFeedback: InterviewFeedback;\n /** 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. */\n submitJobApplication: SubmitJobApplicationResult;\n /** 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. */\n submitProduct: StoreProduct;\n submitPublisherVerification: Publisher;\n submitSatisfactionSurvey: CustomerSatisfactionSurvey;\n /** 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. */\n subscribe: NewsletterSubscriber;\n subscribeToStore: UserStoreSubscription;\n /** 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. */\n supportEraseSubject: SupportEraseResult;\n /** 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. */\n supportExportSubject: Scalars['JSON']['output'];\n suppressIdentifier: SuppressionEntry;\n /** Suspend an installation (admin) */\n suspendAppInstallation: AppInstallation;\n /** Suspend a member */\n suspendDeveloperOrgMember: DeveloperOrgMember;\n suspendProductEntitlement: ProductEntitlement;\n suspendPublisher: Publisher;\n /** Suspend a tenant */\n suspendTenant: Tenant;\n /** Suspend a workspace */\n suspendWorkspace: Workspace;\n /** 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. */\n syncStoreSubmissionStatus: Scalars['Boolean']['output'];\n /** Sync tour steps (smart update in ONE call) Send all desired steps, backend handles: update existing, create new, delete removed */\n syncTourSteps: Array<TourStep>;\n /** 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. */\n syncWorkspaceFromWspace: SyncWorkspaceFromWspaceResponse;\n tagChannel: ChannelTagAssignment;\n tagChannelConnection: ChannelConnectionTagAssignment;\n /** Assign a tag to a store product */\n tagStoreProduct: StoreProductTagAssignment;\n /** Test connection health */\n testConnectionHealth: ConnectionTestResult;\n /** Test LDAP connection */\n testLDAPConnection: Scalars['Boolean']['output'];\n /** Test RADIUS connection */\n testRADIUSConnection: Scalars['Boolean']['output'];\n testWebhook: WebhookTestResult;\n toggleAddOn: Scalars['Boolean']['output'];\n /** Toggle the featured state of a store product (admin) */\n toggleFeatured: Scalars['Boolean']['output'];\n /** Toggle shortcut enabled status */\n toggleKeyboardShortcut: KeyboardShortcut;\n togglePlan: Scalars['Boolean']['output'];\n /** Track a tour event */\n trackTourEvent: TourAnalytics;\n /** Batch record multiple tour analytics events */\n trackTourEvents: TourBatchAnalyticsResult;\n transferLicense: LicenseTransferResult;\n /** Transfer ownership of an organization */\n transferOrgOwnership: DeveloperOrganization;\n /** Trigger multiple notifications in batch */\n triggerBatchNotifications: BatchNotificationResult;\n /** Trigger a notification for delivery via the channel service */\n triggerNotification: Notification;\n /** Trigger notification(s) using a template. Supports single recipient or bulk delivery. */\n triggerNotificationWithTemplate: TemplateNotificationResult;\n /** Restore an archived notification */\n unarchiveNotification: Notification;\n unenrollSubscriberFromAutomation: Scalars['Boolean']['output'];\n /** Uninstall an application */\n uninstallApp: Scalars['Boolean']['output'];\n /** 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. */\n uninstallAppByApplication: Scalars['Boolean']['output'];\n /** Unlink the billing account from an organization */\n unlinkDevOrgBillingAccount: DeveloperOrganization;\n unlinkTickets: Scalars['Boolean']['output'];\n /** Unlink wallet from user account */\n unlinkWallet: Scalars['Boolean']['output'];\n unlistProduct: StoreProduct;\n unpublishFAQ: Faq;\n unpublishKnowledgeBaseArticle: KnowledgeBaseArticle;\n /** Unpublish a tour (change status back to DRAFT) */\n unpublishTour: Tour;\n /** 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. */\n unregisterDeviceToken: Scalars['Boolean']['output'];\n /** Revoke the public link for a shared WORKFLOW app, setting visibility back to PRIVATE. Only the owning developer can call this. */\n unshareWorkflow: Application;\n unsubscribe: Scalars['Boolean']['output'];\n unsubscribeFromStore: Scalars['Boolean']['output'];\n untagChannel: Scalars['Boolean']['output'];\n untagChannelConnection: Scalars['Boolean']['output'];\n /** Remove a tag from a store product */\n untagStoreProduct: Scalars['Boolean']['output'];\n updateAPIKey: ApiKey;\n updateAddOnDetails: Scalars['Boolean']['output'];\n updateAffiliateCode: AffiliateCode;\n updateAgentProfile: AgentProfile;\n updateAgentStatus: AgentProfile;\n updateApp: App;\n /** Update an app collection */\n updateAppCollection: AppCollection;\n /** Update installation configuration */\n updateAppInstallation: AppInstallation;\n /** Update a review */\n updateAppReview: AppReview;\n updateApplication: Application;\n updateApplicationVersion: ApplicationVersion;\n updateAutomationStep: AutomationStep;\n /** Update a billing account */\n updateBillingAccount: BillingAccount;\n updateCampaignStats: NewsletterCampaign;\n updateCannedResponse: CannedResponse;\n /** Update a cart item (quantity, workspace, etc.) */\n updateCartItem: CartItemPayload;\n /** Update cart notes */\n updateCartNotes: CartPayload;\n updateCategory: ProductCategory;\n /** Update an existing channel */\n updateChannel: Channel;\n /** Save (upsert) organization-level channel settings. */\n updateChannelOrgSettings: ChannelOrgSettings;\n /** Update connection metadata (not credentials) */\n updateConnection: ChannelConnection;\n /** Update the status of a contact inquiry (authenticated, for superadmins) */\n updateContactInquiryStatus: ContactInquiry;\n /** Update an existing content page */\n updateContentPage: ProductContentPage;\n /** Update a coupon (admin) */\n updateCoupon: Coupon;\n /** Update the currently authenticated user's own profile. */\n updateCurrentUserProfile: User;\n updateDSARStatus: DsarRequest;\n updateDelegation: AppUserDelegation;\n /** Update a member's role */\n updateDeveloperOrgMemberRole: DeveloperOrgMember;\n /** Update a payment method */\n updateDeveloperOrgPaymentMethod: DeveloperOrgPaymentMethod;\n /** Update a subscription */\n updateDeveloperOrgSubscription: DeveloperOrgSubscription;\n /** Update a developer organization */\n updateDeveloperOrganization: DeveloperOrganization;\n updateDeveloperProfile: DeveloperProfile;\n /** Update a discount */\n updateDiscount: BillingDiscount;\n /** Update an existing entitlement */\n updateEntitlement: SubscriptionEntitlement;\n updateFAQ: Faq;\n /** Update an existing feature flag (super admin only) */\n updateFeatureFlag: FeatureFlag;\n updateI18nModule: I18nModule;\n updateI18nNamespace: I18nNamespace;\n updateI18nProduct: I18nProduct;\n updateInstallationStatus: StoreAppInstallation;\n /** Update previously submitted interview feedback (admin). */\n updateInterviewFeedback: InterviewFeedback;\n /** Update an interview round (admin). */\n updateInterviewRound: InterviewRound;\n /** Update an interview round config (admin). */\n updateInterviewRoundConfig: InterviewRoundConfig;\n /** Update an interviewer (admin). */\n updateInterviewer: Interviewer;\n /** Update the status of a job application (admin). */\n updateJobApplicationStatus: JobApplication;\n /** Update a take-home assignment (admin). */\n updateJobAssignment: JobAssignment;\n /** Update a job posting (admin). */\n updateJobPosting: JobPosting;\n /** Update an existing keyboard shortcut */\n updateKeyboardShortcut: KeyboardShortcut;\n updateKnowledgeBaseArticle: KnowledgeBaseArticle;\n updateLanguage: Language;\n /** Update the current user's dashboard widget layout preferences. Replaces the dashboard.widgets array within preferences. */\n updateMyDashboardPreferences: Scalars['JSON']['output'];\n /** Update the current user's general preferences. Merges the provided JSON into the existing preferences field. */\n updateMyPreferences: UserPreference;\n updateNewsletter: Newsletter;\n updateNewsletterAutomation: NewsletterAutomation;\n updateNewsletterList: NewsletterList;\n updateNewsletterTemplate: NewsletterTemplate;\n updateNewsletterVariant: NewsletterVariant;\n /** Update a notification (only allowed for DRAFT or PENDING status) */\n updateNotification: Notification;\n /** Update a notification history entry */\n updateNotificationHistory: NotificationHistory;\n /** Update a notification preference */\n updateNotificationPreference: NotificationPreference;\n /** Update a notification template */\n updateNotificationTemplate: NotificationTemplate;\n /** Update a notification topic */\n updateNotificationTopic: NotificationTopic;\n /** Update organization legal information */\n updateOrgLegalInfo: DeveloperOrganization;\n /** Update organization tax information */\n updateOrgTaxInfo: DeveloperOrganization;\n /** Update an existing organization */\n updateOrganization: Organization;\n /** Update an organization member's role */\n updateOrganizationMember: OrganizationMember;\n /** Update a payment method (set default) */\n updatePaymentMethod: PaymentMethod;\n updatePayoutAccount: PayoutAccount;\n updatePhysicalProduct: StoreProduct;\n updatePlan: Scalars['Boolean']['output'];\n /** Update an existing platform product */\n updatePlatformProduct: PlatformProduct;\n /** Update an OPA policy reference */\n updatePolicyReference: PolicyReference;\n /** Update an existing press kit asset */\n updatePressKitAsset: ProductPressKitAsset;\n updateProduct: StoreProduct;\n updateProductVariant: ProductVariant;\n /** Update a promotion (admin only) */\n updatePromotion: Promotion;\n updatePublisher: Publisher;\n updateQuota: Scalars['Boolean']['output'];\n /** Update RBAC configuration for a scope */\n updateRbacConfig: RbacConfig;\n updateRecurringBillingPlan: RecurringBillingPlan;\n /** Update a registered resource */\n updateResource: Resource;\n updateReview: ProductReview;\n /** Update a role */\n updateRole: Role;\n updateRolloutPercentage: ProductRelease;\n updateSLAPolicy: SlaPolicy;\n updateScheduleTemplate: ScheduleTemplate;\n updateScheduledJob: ScheduledJob;\n updateShippingAddress: ShippingAddress;\n updateShippingMethod: ShippingMethod;\n updateStore: Store;\n /** Update order payment status (called by billing service callback) This is a PUBLIC mutation called by the billing service after payment completion */\n updateStoreOrderPaymentStatus: UpdateStoreOrderPaymentStatusResponse;\n updateSubprocessor: Subprocessor;\n updateSubscriber: NewsletterSubscriber;\n /** Update access type or discount percentage on an existing subscription entitlement. */\n updateSubscriptionEntitlement: StoreSubscriptionEntitlement;\n /** Update the seat count on an active PER_SEAT subscription. Syncs quantity to the payment gateway and updates the seat quota ceiling. */\n updateSubscriptionSeats: BillingSubscription;\n updateSupportMessage: SupportMessage;\n updateSupportTicket: SupportTicket;\n updateSupportTicketStatus: SupportTicket;\n /** Update a tax rate */\n updateTaxRate: TaxRate;\n /** Update an existing tenant */\n updateTenant: Tenant;\n /** Change the role on an existing tenant-member grant. Throws NOT_FOUND if the row does not exist. (BOFF-2652) */\n updateTenantMemberRole: TenantMember;\n updateTicketCategory: TicketCategory;\n updateTicketTemplate: TicketTemplate;\n /** Update an existing tour */\n updateTour: Tour;\n /** Update tour media */\n updateTourMedia: TourMedia;\n /** Update a tour schedule */\n updateTourSchedule: TourSchedule;\n /** Update an existing tour step */\n updateTourStep: TourStep;\n /** Update a tour template */\n updateTourTemplate: TourTemplate;\n updateTranslation: Translation;\n updateTranslationKey: TranslationKey;\n /** Update a user by ID (admin only) */\n updateUser: User;\n /** Update notification preferences for a platform connection */\n updateUserPlatformConnectionNotifications: UserPlatformConnection;\n updateVariantStats: NewsletterVariant;\n updateWebhook: Webhook;\n /** Update an existing workspace */\n updateWorkspace: Workspace;\n /** Update a workspace member's role */\n updateWorkspaceMember: WorkspaceMember;\n /** Upgrade from trial to paid */\n upgradeFromTrial: AppInstallation;\n /** Upgrade organization tier */\n upgradeOrgTier: DeveloperOrganization;\n /** Upload tax form for a payment method */\n uploadTaxForm: DeveloperOrgPaymentMethod;\n upsertComplianceSettings: NewsletterComplianceSettings;\n /** Create or update external OIDC configuration (Google, Microsoft, etc.) Admin only */\n upsertExternalOIDCConfig: ExternalOidcConfiguration;\n /** Create or update fulfillment details for an order (admin) */\n upsertOrderFulfillment: OrderFulfillment;\n /** Upsert a platform connection from a passively-observed webhook event (source = SEEN). Used by WebhookProcessor to track users without granting DM access. */\n upsertSeenUser: UserPlatformConnection;\n upsertSourcingOffer: SourcingOffer;\n /** 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. */\n upsertUserShippingAddress: ShippingAddress;\n useCannedResponse: CannedResponse;\n validateApiKey: TokenValidationResponse;\n /** Validate an HMAC signature */\n validateHMACSignature: HmacValidationResult;\n /** Validate a signed cookie */\n validateSignedCookie: SignedCookieValidation;\n validateTokens: TokenValidationResponse;\n /** Verify a billing payment method by charging a small amount (e.g., ₹1) that will be refunded */\n verifyBillingPaymentMethod: VerifyPaymentMethodResponse;\n /** 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. */\n verifyDSARIdentity: DsarRequest;\n verifyEmail: EmailVerificationResult;\n verifyMFA: AuthResult;\n /** Verify passkey authentication and login */\n verifyPasskeyAuthentication: AuthResult;\n /** Verify and complete passkey registration */\n verifyPasskeyRegistration: PasskeyRegistrationResult;\n /** Verify a payment method (micro-deposits) */\n verifyPaymentMethod: DeveloperOrgPaymentMethod;\n verifyPublisherPayoutMethod: PublisherPayoutMethod;\n /** 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. */\n verifyWhatsAppPairingCode: Scalars['Boolean']['output'];\n /** Void an invoice */\n voidInvoice: Invoice;\n /** Vote on a review (helpful/not helpful) */\n voteOnAppReview: AppReviewVote;\n withdrawConsent: ConsentRecord;\n};\n\n\n/** Root mutation type */\nexport type MutationAcceptDeveloperOrgInvitationArgs = {\n token: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationAcceptOrganizationInviteArgs = {\n inviteId: Scalars['ID']['input'];\n recaptchaToken?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationAcceptSourcingOfferArgs = {\n offerId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationActivateChannelArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationActivateConnectionArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationActivateLicenseArgs = {\n input: ActivateLicenseInput;\n};\n\n\n/** Root mutation type */\nexport type MutationActivateScheduleArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationActivateSubscriptionForWorkspaceArgs = {\n billingAccountId: Scalars['ID']['input'];\n subscriptionId: Scalars['ID']['input'];\n workspaceId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationActivateSubscriptionForWorkspacesArgs = {\n billingAccountId: Scalars['ID']['input'];\n subscriptionId: Scalars['ID']['input'];\n workspaceIds: Array<Scalars['ID']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationActivateTenantArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationActivateTourScheduleArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationActivateWorkspaceArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationAddAffiliateCodeNoteArgs = {\n input: AddAffiliateCodeNoteInput;\n};\n\n\n/** Root mutation type */\nexport type MutationAddAgentSkillsArgs = {\n id: Scalars['ID']['input'];\n skills: Array<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationAddAppsToCollectionArgs = {\n appIds: Array<Scalars['ID']['input']>;\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationAddDeveloperOrgPaymentMethodArgs = {\n input: AddPaymentMethodInput;\n organizationId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationAddOrderTrackingEventArgs = {\n input: AddFulfillmentTrackingEventInput;\n};\n\n\n/** Root mutation type */\nexport type MutationAddOrganizationMemberArgs = {\n input: AddOrganizationMemberInput;\n};\n\n\n/** Root mutation type */\nexport type MutationAddPaymentMethodArgs = {\n input: CreatePaymentMethodInput;\n};\n\n\n/** Root mutation type */\nexport type MutationAddPayoutAccountArgs = {\n input: AddPayoutAccountInput;\n};\n\n\n/** Root mutation type */\nexport type MutationAddPublisherPayoutMethodArgs = {\n input: AddPayoutMethodInput;\n};\n\n\n/** Root mutation type */\nexport type MutationAddReleaseTestersArgs = {\n trackId: Scalars['ID']['input'];\n userIds: Array<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationAddSubscribersToListArgs = {\n listId: Scalars['ID']['input'];\n subscriberIds: Array<Scalars['ID']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationAddSuppressionArgs = {\n input: AddSuppressionInput;\n};\n\n\n/** Root mutation type */\nexport type MutationAddTagToApplicationArgs = {\n input: AddTagToApplicationInput;\n};\n\n\n/** Root mutation type */\nexport type MutationAddTenantMemberArgs = {\n input: AddTenantMemberInput;\n};\n\n\n/** Root mutation type */\nexport type MutationAddTicketTagsArgs = {\n id: Scalars['ID']['input'];\n tags: Array<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationAddToCartArgs = {\n input: AddToCartInput;\n};\n\n\n/** Root mutation type */\nexport type MutationAddToWishlistArgs = {\n notes?: InputMaybe<Scalars['String']['input']>;\n productId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationAddTourStepArgs = {\n input: CreateTourStepInput;\n};\n\n\n/** Root mutation type */\nexport type MutationAddUsageArgs = {\n billingAccountId: Scalars['ID']['input'];\n description: Scalars['String']['input'];\n hash?: InputMaybe<Scalars['String']['input']>;\n productId?: InputMaybe<Scalars['String']['input']>;\n quotaName: Scalars['String']['input'];\n tags?: InputMaybe<Scalars['JSON']['input']>;\n userId?: InputMaybe<Scalars['ID']['input']>;\n value: Scalars['Int']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationAddWorkspaceMemberArgs = {\n input: AddWorkspaceMemberInput;\n};\n\n\n/** Root mutation type */\nexport type MutationAdjustInventoryArgs = {\n input: AdjustInventoryInput;\n};\n\n\n/** Root mutation type */\nexport type MutationAdminMarkAffiliateConversionArgs = {\n input: RecordAffiliateConversionInput;\n};\n\n\n/** Root mutation type */\nexport type MutationApplyBillingDiscountArgs = {\n billingAccountId: Scalars['ID']['input'];\n discountCode: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationApplySlaPolicyArgs = {\n policyId: Scalars['ID']['input'];\n ticketId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationApplySubscriptionCouponArgs = {\n couponCode: Scalars['String']['input'];\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationApproveApplicationArgs = {\n id: Scalars['ID']['input'];\n notes?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationApproveApplicationVersionArgs = {\n id: Scalars['ID']['input'];\n notes?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationApproveDeveloperOrganizationVerificationArgs = {\n id: Scalars['ID']['input'];\n notes?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationApprovePayoutArgs = {\n id: Scalars['ID']['input'];\n notes?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationApprovePayoutRequestArgs = {\n id: Scalars['ID']['input'];\n notes?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationApproveProductArgs = {\n id: Scalars['ID']['input'];\n notes?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationApprovePublisherArgs = {\n id: Scalars['ID']['input'];\n notes?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationApproveReviewArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationApproveTranslationArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationApproveWaitlistArgs = {\n input: ApproveWaitlistInput;\n};\n\n\n/** Root mutation type */\nexport type MutationArchiveBillingAccountArgs = {\n id: Scalars['ID']['input'];\n reason?: InputMaybe<Scalars['String']['input']>;\n replacementDefaultBillingAccountId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationArchiveChannelArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationArchiveKnowledgeBaseArticleArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationArchiveNotificationArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationArchiveNotificationsArgs = {\n notificationIds: Array<Scalars['ID']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationArchivePayoutAccountArgs = {\n billingAccountId: Scalars['ID']['input'];\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationArchiveScheduleArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationArchiveTourArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationArchiveWorkspaceArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationAssignAuthenticatedUserRoleArgs = {\n userId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationAssignEntitlementSeatArgs = {\n input: AssignEntitlementSeatInput;\n};\n\n\n/** Root mutation type */\nexport type MutationAssignInterviewersToRoundArgs = {\n input: AssignInterviewersToRoundInput;\n};\n\n\n/** Root mutation type */\nexport type MutationAssignPlanFreeArgs = {\n billingAccountId: Scalars['ID']['input'];\n planId: Scalars['ID']['input'];\n secret: Scalars['String']['input'];\n workspaceId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationAssignQuotaFreeArgs = {\n billingAccountId: Scalars['ID']['input'];\n durationDays?: InputMaybe<Scalars['Int']['input']>;\n limit?: InputMaybe<Scalars['Float']['input']>;\n quotaId: Scalars['ID']['input'];\n secret: Scalars['String']['input'];\n workspaceId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationAssignRoleToActorArgs = {\n input: AssignRoleInput;\n};\n\n\n/** Root mutation type */\nexport type MutationAssignSeatArgs = {\n input: AssignSeatInput;\n};\n\n\n/** Root mutation type */\nexport type MutationAssignSupportTicketArgs = {\n assignedTo: Scalars['String']['input'];\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationAttachMediaToStepArgs = {\n input: AttachMediaToStepInput;\n};\n\n\n/** Root mutation type */\nexport type MutationAuthEraseSubjectArgs = {\n dryRun?: InputMaybe<Scalars['Boolean']['input']>;\n subjectId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationAuthExportSubjectArgs = {\n subjectId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationAuthenticateArgs = {\n input: AuthenticateInput;\n};\n\n\n/** Root mutation type */\nexport type MutationAuthenticateApiKeyArgs = {\n input: ApiKeyInput;\n};\n\n\n/** Root mutation type */\nexport type MutationAuthenticateAppArgs = {\n input: AuthenticateAppInput;\n};\n\n\n/** Root mutation type */\nexport type MutationAuthenticateBasicAuthArgs = {\n credentials: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationAuthenticateDigestArgs = {\n cnonce?: InputMaybe<Scalars['String']['input']>;\n nc?: InputMaybe<Scalars['String']['input']>;\n nonce: Scalars['String']['input'];\n opaque: Scalars['String']['input'];\n qop?: InputMaybe<Scalars['String']['input']>;\n realm: Scalars['String']['input'];\n response: Scalars['String']['input'];\n uri: Scalars['String']['input'];\n username: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationAuthenticateKerberosArgs = {\n spnegoToken: Scalars['String']['input'];\n tenantId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationAuthenticateLdapArgs = {\n password: Scalars['String']['input'];\n tenantId: Scalars['String']['input'];\n username: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationAuthenticateMagicLinkArgs = {\n token: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationAuthenticateNtlmArgs = {\n authenticateMessage: Scalars['String']['input'];\n challengeId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationAuthenticateOAuthArgs = {\n input: OAuthInput;\n};\n\n\n/** Root mutation type */\nexport type MutationAuthenticateOidcArgs = {\n input: OidcCallbackInput;\n};\n\n\n/** Root mutation type */\nexport type MutationAuthenticateRadiusArgs = {\n password: Scalars['String']['input'];\n tenantId: Scalars['String']['input'];\n username: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationAuthenticateSamlArgs = {\n input: SamlInput;\n};\n\n\n/** Root mutation type */\nexport type MutationAuthenticateWalletArgs = {\n message: Scalars['String']['input'];\n signature: Scalars['String']['input'];\n walletAddress: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationAuthenticateWithPublicKeyArgs = {\n challenge: Scalars['String']['input'];\n keyId: Scalars['ID']['input'];\n signature: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationBulkArchiveSchedulesArgs = {\n filter: BulkOperationFilter;\n};\n\n\n/** Root mutation type */\nexport type MutationBulkAssignRoleArgs = {\n actorIds: Array<Scalars['String']['input']>;\n actorType: ActorType;\n roleId: Scalars['ID']['input'];\n scopeId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationBulkCreateTranslationKeysArgs = {\n keys: Array<CreateTranslationKeyInput>;\n productId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationBulkCreateTranslationsArgs = {\n translations: Array<BulkTranslationInput>;\n};\n\n\n/** Root mutation type */\nexport type MutationBulkEnsureInterviewRoundsArgs = {\n input: BulkEnsureInterviewRoundsInput;\n};\n\n\n/** Root mutation type */\nexport type MutationBulkPauseSchedulesArgs = {\n filter: BulkOperationFilter;\n};\n\n\n/** Root mutation type */\nexport type MutationBulkRandomizeAndSendAssignmentArgs = {\n input: BulkRandomizeAndSendAssignmentInput;\n};\n\n\n/** Root mutation type */\nexport type MutationBulkResumeSchedulesArgs = {\n filter: BulkOperationFilter;\n};\n\n\n/** Root mutation type */\nexport type MutationBulkSendCustomEmailArgs = {\n input: BulkSendCustomEmailInput;\n};\n\n\n/** Root mutation type */\nexport type MutationBulkSendRoundMessageArgs = {\n input: BulkSendRoundMessageInput;\n};\n\n\n/** Root mutation type */\nexport type MutationBulkSetUserFeatureFlagPreferencesArgs = {\n input: BulkSetUserFeatureFlagPreferenceInput;\n};\n\n\n/** Root mutation type */\nexport type MutationBulkUpdateApplicationStatusArgs = {\n input: BulkUpdateApplicationStatusInput;\n};\n\n\n/** Root mutation type */\nexport type MutationBulkUpdateSchedulesArgs = {\n filter: BulkOperationFilter;\n updates: UpdateScheduledJobInput;\n};\n\n\n/** Root mutation type */\nexport type MutationBulkUpdateTranslationsArgs = {\n translations: Array<BulkTranslationInput>;\n};\n\n\n/** Root mutation type */\nexport type MutationCancelDsarArgs = {\n id: Scalars['ID']['input'];\n reason?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationCancelDeliveryArgs = {\n attemptId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationCancelDeveloperOrgInvitationArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationCancelDeveloperOrgSubscriptionArgs = {\n cancelImmediately?: InputMaybe<Scalars['Boolean']['input']>;\n id: Scalars['ID']['input'];\n reason?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationCancelImportJobArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationCancelNewsletterArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationCancelOrganizationInviteArgs = {\n inviteId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationCancelPayoutArgs = {\n id: Scalars['ID']['input'];\n reason?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationCancelScheduledNotificationArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationCancelSourcingRequestArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationCancelSubscriptionArgs = {\n input: CancelSubscriptionInput;\n};\n\n\n/** Root mutation type */\nexport type MutationChangePasswordArgs = {\n input: ChangePasswordInput;\n};\n\n\n/** Root mutation type */\nexport type MutationChannelEraseSubjectArgs = {\n dryRun?: InputMaybe<Scalars['Boolean']['input']>;\n subjectId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationChannelExportSubjectArgs = {\n subjectId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationCheckPushMfaStatusArgs = {\n challengeId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationCheckoutArgs = {\n input: CheckoutInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCloneScheduleArgs = {\n newOrganizationId?: InputMaybe<Scalars['ID']['input']>;\n overrides?: InputMaybe<CreateScheduledJobInput>;\n sourceId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationCloseSupportTicketArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationCompleteAppOAuthArgs = {\n code: Scalars['String']['input'];\n installationId: Scalars['ID']['input'];\n redirectUri: Scalars['String']['input'];\n state: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationCompleteOAuthFlowArgs = {\n authCode: Scalars['String']['input'];\n channelId: Scalars['ID']['input'];\n state: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationCompleteStepArgs = {\n stepId: Scalars['ID']['input'];\n tourId: Scalars['ID']['input'];\n userId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationCompleteSupportAttachmentUploadArgs = {\n sessionId: Scalars['ID']['input'];\n ticketId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationCompleteTourArgs = {\n tourId: Scalars['ID']['input'];\n userId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationConfigureEntitlementSeatsArgs = {\n entitlementId: Scalars['ID']['input'];\n maxSeats: Scalars['Int']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationConfigureKerberosArgs = {\n input: KerberosConfigInput;\n tenantId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationConfigureLdapArgs = {\n input: LdapConfigInput;\n tenantId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationConfigureRadiusArgs = {\n input: RadiusConfigInput;\n tenantId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationConfigureTenantArgs = {\n id: Scalars['ID']['input'];\n input: ConfigureTenantInput;\n};\n\n\n/** Root mutation type */\nexport type MutationConfigureWorkspaceArgs = {\n id: Scalars['ID']['input'];\n input: ConfigureWorkspaceInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateAddOnsArgs = {\n input: CreateAddOnsInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateAffiliateCodeArgs = {\n input: CreateAffiliateCodeInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateAgentProfileArgs = {\n input: CreateAgentProfileInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateAppArgs = {\n input: CreateAppInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateAppCollectionArgs = {\n input: CreateAppCollectionInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateAppReviewArgs = {\n applicationId: Scalars['ID']['input'];\n input: CreateAppReviewInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateApplicationArgs = {\n input: CreateApplicationInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateApplicationVersionArgs = {\n applicationId: Scalars['ID']['input'];\n input: CreateApplicationVersionInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateAutomationStepArgs = {\n input: CreateAutomationStepInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateBillingAccountArgs = {\n input: CreateBillingAccountInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateBillingOrderArgs = {\n input: CreateBillingOrderInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateCampaignArgs = {\n input: CreateCampaignInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateCannedResponseArgs = {\n input: CreateCannedResponseInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateCategoriesArgs = {\n names: Array<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateCategoryArgs = {\n input: CreateCategoryInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateChannelArgs = {\n input: CreateChannelInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateConnectionArgs = {\n input: CreateConnectionInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateContentPageArgs = {\n input: CreateContentPageInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateCouponArgs = {\n input: CreateCouponInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateCreditNoteArgs = {\n amount: Scalars['Float']['input'];\n billingAccountId: Scalars['ID']['input'];\n currency?: InputMaybe<Scalars['String']['input']>;\n invoiceId?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n reason?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateDeveloperOrgSubscriptionArgs = {\n input: CreateSubscriptionInput;\n organizationId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationCreateDeveloperOrganizationArgs = {\n input: CreateDeveloperOrganizationInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateDeveloperProfileArgs = {\n input: CreateDeveloperProfileInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateDiscountArgs = {\n code: Scalars['String']['input'];\n currency?: InputMaybe<Scalars['String']['input']>;\n maxUses?: InputMaybe<Scalars['Int']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n type: Scalars['String']['input'];\n validFrom: Scalars['DateTime']['input'];\n validUntil?: InputMaybe<Scalars['DateTime']['input']>;\n value: Scalars['Float']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationCreateEditorialCollectionArgs = {\n input: CreateEditorialCollectionInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateEntitlementArgs = {\n input: CreateEntitlementInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateExploreShareLinkArgs = {\n conversationToken: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationCreateFaqArgs = {\n input: CreateFaqInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateFeatureFlagArgs = {\n input: CreateFeatureFlagInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateI18nModuleArgs = {\n input: CreateI18nModuleInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateI18nNamespaceArgs = {\n input: CreateI18nNamespaceInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateI18nProductArgs = {\n input: CreateI18nProductInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateImportJobArgs = {\n input: CreateImportJobInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateInterviewRoundArgs = {\n input: CreateInterviewRoundInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateInterviewRoundConfigArgs = {\n input: CreateInterviewRoundConfigInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateInterviewerArgs = {\n input: CreateInterviewerInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateJobApplicationArgs = {\n input: CreateJobApplicationInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateJobAssignmentArgs = {\n input: CreateJobAssignmentInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateJobPostingArgs = {\n input: CreateJobPostingInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateKeyboardShortcutArgs = {\n input: CreateKeyboardShortcutInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateKnowledgeBaseArticleArgs = {\n input: CreateKnowledgeBaseArticleInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateLanguageArgs = {\n input: CreateLanguageInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateNewsletterArgs = {\n input: CreateNewsletterInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateNewsletterAutomationArgs = {\n input: CreateAutomationInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateNewsletterListArgs = {\n input: CreateNewsletterListInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateNewsletterTemplateArgs = {\n input: CreateNewsletterTemplateInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateNewsletterVariantArgs = {\n input: CreateVariantInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateNotificationArgs = {\n input: CreateNotificationInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateNotificationHistoryArgs = {\n input: CreateNotificationHistoryInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateNotificationPreferenceArgs = {\n input: CreateNotificationPreferenceInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateNotificationTemplateArgs = {\n input: CreateTemplateInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateNotificationTopicArgs = {\n input: CreateNotificationTopicInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateOrganizationArgs = {\n input: CreateOrganizationInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreatePermissionOverrideArgs = {\n input: CreatePermissionOverrideInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreatePhysicalProductArgs = {\n input: CreatePhysicalProductInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreatePlanArgs = {\n input: CreatePlanInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreatePlatformProductArgs = {\n input: CreatePlatformProductInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreatePolicyReferenceArgs = {\n input: CreatePolicyReferenceInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreatePressKitAssetArgs = {\n input: CreatePressKitAssetInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreatePressKitAssetUploadUrlArgs = {\n input: CreatePressKitAssetUploadUrlInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateProductArgs = {\n input: CreateProductInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateProductEntitlementArgs = {\n input: CreateProductEntitlementInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateProductVariantArgs = {\n input: CreateProductVariantInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreatePromoCodeArgs = {\n input: CreatePromoCodeInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreatePromotionArgs = {\n input: CreatePromotionInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreatePublicSupportTicketArgs = {\n input: CreatePublicSupportTicketInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateQuotaArgs = {\n input: CreateQuotaInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateRecurringBillingPlanArgs = {\n input: CreateRecurringBillingInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateReferralCodeArgs = {\n input: CreateReferralCodeInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateRefundArgs = {\n amount: Scalars['Float']['input'];\n billingAccountId: Scalars['ID']['input'];\n chargeId: Scalars['ID']['input'];\n currency?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n reason?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateRefundRecordArgs = {\n amount: Scalars['Float']['input'];\n billingAccountId?: InputMaybe<Scalars['String']['input']>;\n currency: Scalars['String']['input'];\n gatewayOrderId?: InputMaybe<Scalars['String']['input']>;\n gatewayPaymentId: Scalars['String']['input'];\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n notes?: InputMaybe<Scalars['String']['input']>;\n provider: Scalars['String']['input'];\n purchaseDetail?: InputMaybe<Scalars['String']['input']>;\n purchaseType?: InputMaybe<Scalars['String']['input']>;\n reason?: InputMaybe<Scalars['String']['input']>;\n transactionId?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateRefundRecordFromWebhookArgs = {\n webhookLogId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationCreateReleaseArgs = {\n input: CreateReleaseInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateReleaseTrackArgs = {\n input: CreateReleaseTrackInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateReviewArgs = {\n input: CreateReviewInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateRoleArgs = {\n input: CreateRoleInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateRolePermissionOverrideArgs = {\n input: CreateRolePermissionOverrideInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateSlaPolicyArgs = {\n input: CreateSlaPolicyInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateScheduleFromTemplateArgs = {\n overrides?: InputMaybe<CreateScheduledJobInput>;\n templateId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationCreateScheduleTemplateArgs = {\n input: CreateScheduleTemplateInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateScheduledJobArgs = {\n input: CreateScheduledJobInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateSellerOrganizationArgs = {\n input: CreateDeveloperOrganizationInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateShippingAddressArgs = {\n input: CreateShippingAddressInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateShippingMethodArgs = {\n input: CreateShippingMethodInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateShippingRateArgs = {\n input: CreateShippingRateInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateShippingZoneArgs = {\n input: CreateShippingZoneInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateSignedCookieSessionArgs = {\n rememberMe?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateSourcingRequestArgs = {\n input: CreateSourcingRequestInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateStoreArgs = {\n input: CreateStoreInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateStoreOrderArgs = {\n input: CreateStoreOrderInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateSubprocessorArgs = {\n input: SubprocessorInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateSubscriptionEntitlementArgs = {\n input: StoreSubscriptionEntitlementInput;\n storeProductId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationCreateSupportMessageArgs = {\n input: CreateSupportMessageInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateSupportTicketArgs = {\n input: CreateSupportTicketInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateTagArgs = {\n input: CreateTagInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateTaxRateArgs = {\n active?: InputMaybe<Scalars['Boolean']['input']>;\n country: Scalars['String']['input'];\n description?: InputMaybe<Scalars['String']['input']>;\n rate: Scalars['Float']['input'];\n state?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateTenantArgs = {\n input: CreateTenantInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateTicketCategoryArgs = {\n input: CreateTicketCategoryInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateTicketFromTemplateArgs = {\n overrides?: InputMaybe<CreateSupportTicketInput>;\n templateId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationCreateTicketTemplateArgs = {\n input: CreateTicketTemplateInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateTourArgs = {\n input: CreateTourInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateTourFromTemplateArgs = {\n templateId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationCreateTourMediaMetadataArgs = {\n input: CreateTourMediaInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateTourScheduleArgs = {\n input: CreateTourScheduleInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateTourTemplateArgs = {\n input: CreateTourTemplateInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateTranslationArgs = {\n input: CreateTranslationInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateTranslationKeyArgs = {\n input: CreateTranslationKeyInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateUserTenantStructureArgs = {\n input: CreateUserTenantStructureInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateVisibilityRuleArgs = {\n input: CreateVisibilityRuleInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateWebhookArgs = {\n applicationId: Scalars['ID']['input'];\n input: CreateWebhookInput;\n};\n\n\n/** Root mutation type */\nexport type MutationCreateWorkspaceArgs = {\n input: CreateWorkspaceInput;\n};\n\n\n/** Root mutation type */\nexport type MutationDeactivateAccountArgs = {\n password: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeactivateAffiliateCodeArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeactivateAppArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeactivateApplicationArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeactivateChannelArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeactivateConnectionArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeactivateCouponArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeactivateLicenseArgs = {\n deviceId: Scalars['String']['input'];\n licenseKey: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeactivatePromotionArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeactivateReferralCodeArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeactivateResourceArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeactivateTourScheduleArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDecrementQuotaArgs = {\n amount: Scalars['Int']['input'];\n billingAccountId: Scalars['ID']['input'];\n quotaAssignmentId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteAccountArgs = {\n confirmPhrase: Scalars['String']['input'];\n password: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteAffiliateCodeArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteAgentProfileArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteAppArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteAppCollectionArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteAppReviewArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteApplicationArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteAutomationStepArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteCannedResponseArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteCategoryArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteChannelArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteConnectionArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteContentPageArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteDeveloperOrgPaymentMethodArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteDeveloperOrganizationArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteDiscountArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteEntitlementArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteExternalOidcConfigArgs = {\n identifier: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteFaqArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteFeatureFlagArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteI18nModuleArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteI18nNamespaceArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteI18nProductArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteInterviewFeedbackArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteInterviewRoundArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteInterviewRoundConfigArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteInterviewerArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteJobAssignmentArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteJobPostingArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteKerberosConfigurationArgs = {\n tenantId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteKeyboardShortcutArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteKnowledgeBaseArticleArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteLdapConfigurationArgs = {\n tenantId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteLanguageArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteNewsletterArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteNewsletterAutomationArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteNewsletterListArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteNewsletterTemplateArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteNewsletterVariantArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteNotificationArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteNotificationHistoryArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteNotificationPreferenceArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteNotificationTemplateArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteNotificationTopicArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteNotificationsArgs = {\n notificationIds: Array<Scalars['ID']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteNotificationsByFilterArgs = {\n filter: NotificationFilterInput;\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteOrganizationArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeletePaymentMethodArgs = {\n billingAccountId: Scalars['ID']['input'];\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeletePlatformProductArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeletePolicyReferenceArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeletePressKitAssetArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteProductArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteProductAssetArgs = {\n assetId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteProductEntitlementArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteProductVariantArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteRadiusConfigurationArgs = {\n tenantId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteReviewArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteReviewReplyArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteReviewResponseArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteRoleArgs = {\n id: Scalars['ID']['input'];\n reassignToRoleId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteSlaPolicyArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteSsoConfigArgs = {\n tenantId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteScheduleTemplateArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteScheduledJobArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteShippingAddressArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteStoreArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteSubscriberArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteSubscriptionEntitlementArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteSupportMessageArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteSupportTicketArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteTagArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteTaxRateArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteTenantArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteTicketCategoryArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteTicketTemplateArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteTourArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteTourMediaArgs = {\n context?: InputMaybe<ContextInput>;\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteTourScheduleArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteTourStepArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteTourTemplateArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteTranslationArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteTranslationKeyArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteUserArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteUserLanguagePreferenceArgs = {\n userId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteUserPlatformConnectionArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteUserShippingAddressArgs = {\n id: Scalars['ID']['input'];\n userId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeleteWebhookArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDelistProductArgs = {\n id: Scalars['ID']['input'];\n reason?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationDeliverBulkNotificationArgs = {\n input: BulkChannelDeliveryInput;\n};\n\n\n/** Root mutation type */\nexport type MutationDeliverMultiPlatformNotificationArgs = {\n input: MultiPlatformDeliveryInput;\n};\n\n\n/** Root mutation type */\nexport type MutationDeliverNotificationArgs = {\n input: ChannelDeliveryInput;\n};\n\n\n/** Root mutation type */\nexport type MutationDeliverPushToUserArgs = {\n input: UserPushDeliveryInput;\n};\n\n\n/** Root mutation type */\nexport type MutationDeprecateApplicationVersionArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDeprecateProductArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDetachMediaFromStepArgs = {\n context?: InputMaybe<ContextInput>;\n mediaId: Scalars['ID']['input'];\n tourStepId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDisableAuthMethodArgs = {\n authType: AuthType;\n};\n\n\n/** Root mutation type */\nexport type MutationDisableScheduleArgs = {\n id: Scalars['ID']['input'];\n reason?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationDiscardDlqEntryArgs = {\n id: Scalars['ID']['input'];\n reason?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationDismissTourArgs = {\n permanently?: InputMaybe<Scalars['Boolean']['input']>;\n tourId: Scalars['ID']['input'];\n userId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationDuplicateNewsletterArgs = {\n id: Scalars['ID']['input'];\n newSlug: Scalars['String']['input'];\n newTitle?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationDuplicateTourArgs = {\n id: Scalars['ID']['input'];\n newName?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationEarnCreditsArgs = {\n input: EarnCreditsInput;\n};\n\n\n/** Root mutation type */\nexport type MutationEnableAuthMethodArgs = {\n authType: AuthType;\n config?: InputMaybe<AuthMethodConfigInput>;\n};\n\n\n/** Root mutation type */\nexport type MutationEnableMfaArgs = {\n code: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationEnableMaintenanceModeArgs = {\n duration?: InputMaybe<Scalars['Int']['input']>;\n reason: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationEnrollSubscriberInAutomationArgs = {\n automationId: Scalars['ID']['input'];\n subscriberId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationEnsureOrganizationMemberArgs = {\n input: EnsureOrganizationMemberInput;\n};\n\n\n/** Root mutation type */\nexport type MutationEnsureStoreOrderBillingOrderArgs = {\n billingAccountId: Scalars['ID']['input'];\n currency?: InputMaybe<Scalars['String']['input']>;\n storeOrderId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationEraseSubjectArgs = {\n dryRun?: InputMaybe<Scalars['Boolean']['input']>;\n subjectId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationEscalateSupportTicketArgs = {\n escalateTo?: InputMaybe<Scalars['String']['input']>;\n id: Scalars['ID']['input'];\n reason: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationExchangeTokenArgs = {\n input: ExchangeTokenInput;\n};\n\n\n/** Root mutation type */\nexport type MutationExecuteJobNowArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationExploreAgentSubmitArgs = {\n input: ExploreAgentSubmitInput;\n};\n\n\n/** Root mutation type */\nexport type MutationExportApplicationsArgs = {\n filter?: InputMaybe<ExportApplicationsFilter>;\n format: DevportalExportFormat;\n};\n\n\n/** Root mutation type */\nexport type MutationExportAuditLogsArgs = {\n filter?: InputMaybe<ExportAuditLogsFilter>;\n format: DevportalExportFormat;\n};\n\n\n/** Root mutation type */\nexport type MutationExportChannelUsersArgs = {\n filter: ExportChannelUsersFilter;\n format: ChannelExportFormat;\n};\n\n\n/** Root mutation type */\nexport type MutationExportChannelsArgs = {\n filter: ExportChannelsFilter;\n format: ChannelExportFormat;\n};\n\n\n/** Root mutation type */\nexport type MutationExportDeliveryAttemptsArgs = {\n filter: ExportDeliveryAttemptsFilter;\n format: ChannelExportFormat;\n};\n\n\n/** Root mutation type */\nexport type MutationExportDeveloperOrganizationsArgs = {\n filter?: InputMaybe<ExportDeveloperOrganizationsFilter>;\n format: DevportalExportFormat;\n};\n\n\n/** Root mutation type */\nexport type MutationExportRevenueArgs = {\n filter?: InputMaybe<ExportRevenueFilter>;\n format: DevportalExportFormat;\n};\n\n\n/** Root mutation type */\nexport type MutationExportSubjectArgs = {\n subjectId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationExportWebhookEventsArgs = {\n filter: ExportWebhookEventsFilter;\n format: ChannelExportFormat;\n};\n\n\n/** Root mutation type */\nexport type MutationExportWebhooksArgs = {\n filter?: InputMaybe<ExportWebhooksFilter>;\n format: DevportalExportFormat;\n};\n\n\n/** Root mutation type */\nexport type MutationFeatureAppReviewArgs = {\n featured: Scalars['Boolean']['input'];\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationFileDsarArgs = {\n input: FileDsarInput;\n};\n\n\n/** Root mutation type */\nexport type MutationFreeUpUsageArgs = {\n billingAccountId: Scalars['ID']['input'];\n description?: InputMaybe<Scalars['String']['input']>;\n hash?: InputMaybe<Scalars['String']['input']>;\n productId?: InputMaybe<Scalars['String']['input']>;\n quotaName: Scalars['String']['input'];\n tags?: InputMaybe<Scalars['JSON']['input']>;\n userId?: InputMaybe<Scalars['ID']['input']>;\n value: Scalars['Int']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationGenerateApiKeyArgs = {\n input: GenerateApiKeyInput;\n};\n\n\n/** Root mutation type */\nexport type MutationGenerateAppAsUserTokenArgs = {\n input: GenerateAppAsUserTokenInput;\n};\n\n\n/** Root mutation type */\nexport type MutationGenerateAppTokenArgs = {\n input: GenerateAppTokenInput;\n};\n\n\n/** Root mutation type */\nexport type MutationGenerateHmacSecretArgs = {\n algorithm?: InputMaybe<Scalars['String']['input']>;\n appId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationGenerateInvoiceArgs = {\n billingAccountId: Scalars['ID']['input'];\n subscriptionId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationGenerateOidcAuthUrlArgs = {\n state?: InputMaybe<Scalars['String']['input']>;\n tenantId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationGeneratePasskeyAuthenticationOptionsArgs = {\n email?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationGeneratePseudoLocaleArgs = {\n options?: InputMaybe<PseudoLocaleOptionsInput>;\n productCode: Scalars['String']['input'];\n sourceLocale?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationGeneratePublicKeyChallengeArgs = {\n keyId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationGenerateSamlRequestArgs = {\n relayState?: InputMaybe<Scalars['String']['input']>;\n tenantId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationGenerateWalletChallengeArgs = {\n chain?: InputMaybe<Scalars['String']['input']>;\n walletAddress: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationGetSupportAttachmentPartUploadUrlsArgs = {\n partNumbers: Array<Scalars['Int']['input']>;\n sessionId: Scalars['ID']['input'];\n ticketId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationGrantAppDelegationInternalArgs = {\n input: GrantAppDelegationInternalInput;\n};\n\n\n/** Root mutation type */\nexport type MutationGrantAppWorkspaceAccessArgs = {\n input: GrantAppWorkspaceAccessInput;\n};\n\n\n/** Root mutation type */\nexport type MutationGrantConsentArgs = {\n input: GrantConsentInput;\n};\n\n\n/** Root mutation type */\nexport type MutationGrantCreditsArgs = {\n input: GrantCreditsInput;\n};\n\n\n/** Root mutation type */\nexport type MutationGrantDelegationArgs = {\n input: GrantDelegationInput;\n};\n\n\n/** Root mutation type */\nexport type MutationHaltRolloutArgs = {\n reason: Scalars['String']['input'];\n releaseId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationHandleChannelDeliveryEventArgs = {\n input: ChannelDeliveryEventInput;\n};\n\n\n/** Root mutation type */\nexport type MutationHardDeleteUserArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationIdentifyAffiliateJourneyArgs = {\n input: IdentifyAffiliateJourneyInput;\n};\n\n\n/** Root mutation type */\nexport type MutationIgnoreWebhookArgs = {\n eventId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationImportSubscribersArgs = {\n subscribers: Array<ImportSubscriberInput>;\n};\n\n\n/** Root mutation type */\nexport type MutationInitializeBillingRolesArgs = {\n billingAccountId: Scalars['String']['input'];\n ownerId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationInitializeOrganizationRolesArgs = {\n organizationId: Scalars['String']['input'];\n ownerId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationInitiateAppOAuthArgs = {\n installationId: Scalars['ID']['input'];\n redirectUri: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationInitiateKerberosAuthArgs = {\n tenantId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationInitiateNtlmChallengeArgs = {\n negotiateMessage: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationInitiatePaymentArgs = {\n input: InitiatePaymentInput;\n};\n\n\n/** Root mutation type */\nexport type MutationInstallAppArgs = {\n input: InstallAppInput;\n};\n\n\n/** Root mutation type */\nexport type MutationInstallPurchasedAppArgs = {\n orderId?: InputMaybe<Scalars['ID']['input']>;\n productId: Scalars['String']['input'];\n version?: InputMaybe<Scalars['String']['input']>;\n workspaceId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationInviteDeveloperOrgMemberArgs = {\n input: InviteDeveloperOrgMemberInput;\n organizationId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationInviteOrganizationMemberArgs = {\n input: InviteOrganizationMemberInput;\n};\n\n\n/** Root mutation type */\nexport type MutationIssueAppAsUserTokenInternalArgs = {\n input: IssueAppAsUserTokenInternalInput;\n};\n\n\n/** Root mutation type */\nexport type MutationJoinWaitlistArgs = {\n input: JoinWaitlistInput;\n};\n\n\n/** Root mutation type */\nexport type MutationLeaveDeveloperOrganizationArgs = {\n organizationId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationLinkDevOrgBillingAccountArgs = {\n billingAccountId: Scalars['ID']['input'];\n organizationId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationLinkIntegrationConnectionArgs = {\n channelId: Scalars['ID']['input'];\n integrationConnectionId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationLinkTicketsArgs = {\n input: LinkTicketsInput;\n};\n\n\n/** Root mutation type */\nexport type MutationLinkWalletArgs = {\n message: Scalars['String']['input'];\n signature: Scalars['String']['input'];\n walletAddress: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationMarkNotificationAsReadArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationMarkNotificationAsUnreadArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationMarkNotificationsAsReadArgs = {\n notificationIds: Array<Scalars['ID']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationMarkNotificationsByFilterAsReadArgs = {\n filter: NotificationReadFilterInput;\n};\n\n\n/** Root mutation type */\nexport type MutationMarkOrderRefundedArgs = {\n orderId: Scalars['ID']['input'];\n reason?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationMarkPayoutPaidArgs = {\n externalReference?: InputMaybe<Scalars['String']['input']>;\n id: Scalars['ID']['input'];\n notes?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationMarkReviewHelpfulArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationMergeCartArgs = {\n guestSessionId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationMergeTicketsArgs = {\n sourceIds: Array<Scalars['ID']['input']>;\n targetId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationMintScimTokenArgs = {\n label: Scalars['String']['input'];\n tenantId?: InputMaybe<Scalars['String']['input']>;\n workspaceId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationMintSsoSessionArgs = {\n token: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationModerateAppReviewArgs = {\n id: Scalars['ID']['input'];\n note?: InputMaybe<Scalars['String']['input']>;\n rejectionReason?: InputMaybe<Scalars['String']['input']>;\n status: AppReviewStatus;\n};\n\n\n/** Root mutation type */\nexport type MutationNewsletterEraseSubjectArgs = {\n dryRun?: InputMaybe<Scalars['Boolean']['input']>;\n subjectId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationNewsletterExportSubjectArgs = {\n subjectId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationNotifyDuplicateApplicantsArgs = {\n input: NotifyDuplicateApplicantsInput;\n};\n\n\n/** Root mutation type */\nexport type MutationOpenCircuitBreakerArgs = {\n scope: Scalars['String']['input'];\n scopeValue: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationPauseDeveloperOrgSubscriptionArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationPauseSlaArgs = {\n reason?: InputMaybe<Scalars['String']['input']>;\n ticketId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationPauseScheduledJobArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationPayInvoiceArgs = {\n billingAccountId: Scalars['ID']['input'];\n invoiceId: Scalars['ID']['input'];\n paymentMethodId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationPermanentlyDeleteScheduleArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationPlaceLegalHoldArgs = {\n input: PlaceLegalHoldInput;\n};\n\n\n/** Root mutation type */\nexport type MutationPrepareSupportAttachmentUploadArgs = {\n input: PrepareSupportAttachmentUploadInput;\n};\n\n\n/** Root mutation type */\nexport type MutationProcessAppSaleRefundArgs = {\n amount?: InputMaybe<Scalars['Float']['input']>;\n reason: Scalars['String']['input'];\n saleId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationProcessPayoutRequestArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationProcessRefundArgs = {\n id: Scalars['ID']['input'];\n notes?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationProcessScheduledNotificationsArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationProcessWebhookArgs = {\n eventId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationProvisionDedicatedTenantArgs = {\n input: ProvisionDedicatedTenantInput;\n};\n\n\n/** Root mutation type */\nexport type MutationProvisionFreeTierForWorkspaceArgs = {\n orgId: Scalars['ID']['input'];\n workspaceId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationPublicUnsubscribeByTokenArgs = {\n token: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationPublishApplicationArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationPublishApplicationVersionArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationPublishCatalogNodeVersionArgs = {\n isFirstPublish?: InputMaybe<Scalars['Boolean']['input']>;\n nodeType: Scalars['String']['input'];\n secret: Scalars['String']['input'];\n version: Scalars['String']['input'];\n zipUrl: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationPublishFaqArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationPublishKnowledgeBaseArticleArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationPublishProductArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationPublishTourArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationPublishTranslationArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationPurchaseProductArgs = {\n paymentMethodId: Scalars['String']['input'];\n productId: Scalars['String']['input'];\n workspaceId?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationRandomizeAndSendAssignmentArgs = {\n input: RandomizeAndSendAssignmentInput;\n};\n\n\n/** Root mutation type */\nexport type MutationRateArticleArgs = {\n helpful: Scalars['Boolean']['input'];\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRateFaqArgs = {\n helpful: Scalars['Boolean']['input'];\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationReactivateAccountArgs = {\n email: Scalars['String']['input'];\n password: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationReactivateAccountWithTokenArgs = {\n token: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationReactivateAppInstallationArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationReactivateDeveloperOrgMemberArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationReactivateProductEntitlementArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRecordActivityArgs = {\n input: RecordActivityInput;\n};\n\n\n/** Root mutation type */\nexport type MutationRecordAffiliateConversionArgs = {\n input: RecordAffiliateConversionInput;\n};\n\n\n/** Root mutation type */\nexport type MutationRecordAffiliateTouchpointArgs = {\n input: RecordAffiliateTouchpointInput;\n};\n\n\n/** Root mutation type */\nexport type MutationRecordAppInstallationArgs = {\n input: RecordAppInstallationInput;\n};\n\n\n/** Root mutation type */\nexport type MutationRecordAppUninstallationArgs = {\n productId: Scalars['String']['input'];\n workspaceId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRecordArticleViewArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRecordAssignmentSubmissionArgs = {\n input: RecordAssignmentSubmissionInput;\n};\n\n\n/** Root mutation type */\nexport type MutationRecordBounceArgs = {\n input: RecordBounceInput;\n};\n\n\n/** Root mutation type */\nexport type MutationRecordComplaintArgs = {\n input: RecordComplaintInput;\n};\n\n\n/** Root mutation type */\nexport type MutationRecordConsentArgs = {\n input: RecordConsentInput;\n};\n\n\n/** Root mutation type */\nexport type MutationRecordDownloadArgs = {\n ipAddress?: InputMaybe<Scalars['String']['input']>;\n productId: Scalars['String']['input'];\n version?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationRecordEarningEntryArgs = {\n input: RecordEarningEntryInput;\n};\n\n\n/** Root mutation type */\nexport type MutationRecordExploreClickArgs = {\n input: RecordExploreClickInput;\n};\n\n\n/** Root mutation type */\nexport type MutationRecordExternalSettlementArgs = {\n input: RecordExternalSettlementInput;\n};\n\n\n/** Root mutation type */\nexport type MutationRecordFaqViewArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRecordLicenseUsageArgs = {\n input: RecordUsageInput;\n};\n\n\n/** Root mutation type */\nexport type MutationRecordNotificationActionArgs = {\n input: RecordNotificationActionInput;\n};\n\n\n/** Root mutation type */\nexport type MutationRecordProductVisitArgs = {\n input: RecordProductVisitInput;\n};\n\n\n/** Root mutation type */\nexport type MutationRecordSaleArgs = {\n input: RecordSaleInput;\n};\n\n\n/** Root mutation type */\nexport type MutationRecordTourProgressArgs = {\n input: RecordTourProgressInput;\n};\n\n\n/** Root mutation type */\nexport type MutationRefreshApplicationVersionPackageUrlArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRefreshConnectionTokensArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRefreshProductAssetUrlArgs = {\n assetId: Scalars['ID']['input'];\n expiresInSeconds?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationRefreshTokenArgs = {\n token: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRegenerateAffiliateCodeArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRegisterAppWithAuthServiceArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRegisterDeviceTokenArgs = {\n deviceId: Scalars['String']['input'];\n metadata?: InputMaybe<Scalars['JSONObject']['input']>;\n platform: Scalars['String']['input'];\n productSlug?: InputMaybe<Scalars['String']['input']>;\n token: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRegisterProductAssetArgs = {\n input: RegisterProductAssetInput;\n};\n\n\n/** Root mutation type */\nexport type MutationRegisterPublicKeyArgs = {\n keyType: Scalars['String']['input'];\n name?: InputMaybe<Scalars['String']['input']>;\n publicKey: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRegisterPublisherArgs = {\n input: RegisterPublisherInput;\n};\n\n\n/** Root mutation type */\nexport type MutationRegisterResourceArgs = {\n input: RegisterResourceInput;\n};\n\n\n/** Root mutation type */\nexport type MutationRegisterSupportAttachmentPartArgs = {\n input: RegisterSupportAttachmentPartInput;\n};\n\n\n/** Root mutation type */\nexport type MutationReinstatePublisherArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRejectApplicationArgs = {\n id: Scalars['ID']['input'];\n notes: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRejectApplicationVersionArgs = {\n id: Scalars['ID']['input'];\n reason: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRejectDeveloperOrgInvitationArgs = {\n token: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRejectDeveloperOrganizationVerificationArgs = {\n id: Scalars['ID']['input'];\n notes?: InputMaybe<Scalars['String']['input']>;\n reason: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRejectOrganizationInviteArgs = {\n inviteId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRejectPayoutRequestArgs = {\n id: Scalars['ID']['input'];\n reason: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRejectProductArgs = {\n id: Scalars['ID']['input'];\n reason: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRejectPublisherArgs = {\n id: Scalars['ID']['input'];\n reason: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRejectReviewArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRejectWaitlistArgs = {\n input: RejectWaitlistInput;\n};\n\n\n/** Root mutation type */\nexport type MutationReleaseLegalHoldArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationReleaseSuppressionArgs = {\n input: ReleaseSuppressionInput;\n};\n\n\n/** Root mutation type */\nexport type MutationRemoveAgentSkillsArgs = {\n id: Scalars['ID']['input'];\n skills: Array<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationRemoveAppLicenseArgs = {\n applicationId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRemoveAppsFromCollectionArgs = {\n appIds: Array<Scalars['ID']['input']>;\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRemoveDeveloperOrgMemberArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRemoveFromCartArgs = {\n cartItemId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRemoveFromWaitlistArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRemoveFromWishlistArgs = {\n productId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRemoveInterviewerFromRoundArgs = {\n interviewerId: Scalars['ID']['input'];\n roundId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRemoveOrganizationMemberArgs = {\n organizationId: Scalars['String']['input'];\n userId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRemovePasskeyArgs = {\n credentialId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRemovePermissionOverrideArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRemovePublicKeyArgs = {\n keyId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRemoveRoleDefaultPermissionArgs = {\n resourceType: Scalars['String']['input'];\n roleId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRemoveRoleFromActorArgs = {\n assignmentId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRemoveRolePermissionOverrideArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRemoveSubscribersFromListArgs = {\n listId: Scalars['ID']['input'];\n subscriberIds: Array<Scalars['ID']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationRemoveSuppressionArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRemoveTagFromApplicationArgs = {\n input: RemoveTagFromApplicationInput;\n};\n\n\n/** Root mutation type */\nexport type MutationRemoveTenantMemberArgs = {\n tenantId: Scalars['ID']['input'];\n userId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRemoveTicketTagsArgs = {\n id: Scalars['ID']['input'];\n tags: Array<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationRemoveUserFeatureFlagPreferenceArgs = {\n featureFlagId: Scalars['String']['input'];\n workspaceId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRemoveVisibilityRuleArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRemoveWorkspaceFeatureFlagOverrideArgs = {\n featureFlagId: Scalars['String']['input'];\n workspaceId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRemoveWorkspaceMemberArgs = {\n userId: Scalars['String']['input'];\n workspaceId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRemoveWorkspaceMetadataArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRenamePasskeyArgs = {\n credentialId: Scalars['String']['input'];\n name: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRenewProductEntitlementArgs = {\n expiresAt: Scalars['DateTime']['input'];\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationReopenSupportTicketArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationReorderCollectionAppsArgs = {\n appIds: Array<Scalars['ID']['input']>;\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationReorderFaQsArgs = {\n faqIds: Array<Scalars['ID']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationReorderTicketCategoriesArgs = {\n categoryIds: Array<Scalars['ID']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationReorderTourStepsArgs = {\n stepIds: Array<Scalars['ID']['input']>;\n tourId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationReplaceApplicationTagsArgs = {\n input: ReplaceApplicationTagsInput;\n};\n\n\n/** Root mutation type */\nexport type MutationReplaceChannelConnectionTagsArgs = {\n input: ReplaceChannelConnectionTagsInput;\n};\n\n\n/** Root mutation type */\nexport type MutationReplaceChannelTagsArgs = {\n input: ReplaceChannelTagsInput;\n};\n\n\n/** Root mutation type */\nexport type MutationReplaceStoreProductTagsArgs = {\n input: ReplaceStoreProductTagsInput;\n};\n\n\n/** Root mutation type */\nexport type MutationReplyToContactInquiryArgs = {\n id: Scalars['ID']['input'];\n message: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationReplyToJobApplicationArgs = {\n id: Scalars['ID']['input'];\n message: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationReplyToReviewArgs = {\n input: CreateReviewReplyInput;\n};\n\n\n/** Root mutation type */\nexport type MutationReportAppReviewArgs = {\n details?: InputMaybe<Scalars['String']['input']>;\n reason: Scalars['String']['input'];\n reviewId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationReportNodeSandboxBuildStatusArgs = {\n applicationVersionId: Scalars['ID']['input'];\n error?: InputMaybe<Scalars['String']['input']>;\n image?: InputMaybe<Scalars['String']['input']>;\n secret: Scalars['String']['input'];\n status: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationReprocessWebhookArgs = {\n eventId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRequestBillingPayoutArgs = {\n input: RequestPayoutInput;\n};\n\n\n/** Root mutation type */\nexport type MutationRequestCreditWithdrawalArgs = {\n input: RequestCreditWithdrawalInput;\n};\n\n\n/** Root mutation type */\nexport type MutationRequestDsarIdentityVerificationArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRequestDeveloperOrgPayoutArgs = {\n organizationId: Scalars['ID']['input'];\n paymentMethodId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRequestOrderReturnArgs = {\n input: RequestOrderReturnInput;\n};\n\n\n/** Root mutation type */\nexport type MutationRequestOrgVerificationArgs = {\n domain?: InputMaybe<Scalars['String']['input']>;\n evidenceUrl?: InputMaybe<Scalars['String']['input']>;\n id: Scalars['ID']['input'];\n method: Scalars['String']['input'];\n notes?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationRequestPasswordResetArgs = {\n email: Scalars['String']['input'];\n recaptchaToken?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationRequestPayoutArgs = {\n organizationId: Scalars['ID']['input'];\n paymentMethodId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRequestReactivationArgs = {\n email: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRequeueFromDlqArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRescheduleNotificationArgs = {\n input: RescheduleNotificationInput;\n};\n\n\n/** Root mutation type */\nexport type MutationResendDeveloperOrgInvitationArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationResendOrganizationInviteArgs = {\n inviteId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationResendSurveyArgs = {\n surveyId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationResendVerificationEmailArgs = {\n email: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationResetCircuitBreakerArgs = {\n scope: Scalars['String']['input'];\n scopeValue: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationResetPasswordArgs = {\n newPassword: Scalars['String']['input'];\n token: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationResetTourProgressArgs = {\n tourId: Scalars['ID']['input'];\n userId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationResolveBillingAccountArgs = {\n input: ResolveBillingAccountInput;\n};\n\n\n/** Root mutation type */\nexport type MutationResolveContextWidgetConversationArgs = {\n input: ResolveContextWidgetConversationInput;\n};\n\n\n/** Root mutation type */\nexport type MutationResolveDlqEntryArgs = {\n id: Scalars['ID']['input'];\n resolution: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationResolveInventoryAlertArgs = {\n alertId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationResolveSupportTicketArgs = {\n id: Scalars['ID']['input'];\n resolution?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationRespondToAppReviewArgs = {\n id: Scalars['ID']['input'];\n response: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRespondToPushMfaArgs = {\n approved: Scalars['Boolean']['input'];\n challengeId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRestoreChannelArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRestoreScheduleVersionArgs = {\n scheduleId: Scalars['ID']['input'];\n versionId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRestoreTemplateVersionArgs = {\n templateId: Scalars['ID']['input'];\n version: Scalars['Int']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationResubscribeArgs = {\n email: Scalars['String']['input'];\n platformProductId?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationResumeDeveloperOrgSubscriptionArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationResumeSlaArgs = {\n ticketId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationResumeScheduledJobArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRetirePushDeviceInternalArgs = {\n errorCode: Scalars['String']['input'];\n token: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRetireSubprocessorArgs = {\n id: Scalars['ID']['input'];\n reason?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationRetryBillingOrderCallbackArgs = {\n billingAccountId: Scalars['ID']['input'];\n orderId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRetryDeliveryArgs = {\n attemptId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRetryImportJobArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRetryInvoiceGenerationArgs = {\n billingAccountId: Scalars['ID']['input'];\n transactionId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRetryJobExecutionArgs = {\n executionId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRetryPayoutArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRetryRefundArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRetrySaleCreditSyncArgs = {\n saleId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRetrySyncOutboxEntryArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRevertTranslationArgs = {\n id: Scalars['ID']['input'];\n versionId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationReviewTranslationArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRevokeApiKeyArgs = {\n keyId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRevokeAppWorkspaceAccessArgs = {\n input: RevokeAppWorkspaceAccessInput;\n};\n\n\n/** Root mutation type */\nexport type MutationRevokeConsentArgs = {\n consentId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRevokeDelegationArgs = {\n id: Scalars['ID']['input'];\n reason?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationRevokeEntitlementSeatArgs = {\n assigneeId: Scalars['String']['input'];\n entitlementId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRevokeHmacCredentialArgs = {\n credentialId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRevokeLicenseArgs = {\n entitlementId: Scalars['ID']['input'];\n reason: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRevokeScimTokenArgs = {\n id: Scalars['ID']['input'];\n workspaceId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRevokeSeatArgs = {\n reason?: InputMaybe<Scalars['String']['input']>;\n seatId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRevokeSessionArgs = {\n sessionId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRevokeSignedCookieSessionArgs = {\n sessionId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRevokeUserPlatformConnectionArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRollbackReleaseArgs = {\n releaseId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRotateApiKeyArgs = {\n keyId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRotateAppSecretArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRotateApplicationSigningSecretArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRotateConnectionCredentialsArgs = {\n id: Scalars['ID']['input'];\n newCredentials: Scalars['JSON']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRunChannelHealthCheckArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRunDsarRequestForSubjectArgs = {\n dryRun?: InputMaybe<Scalars['Boolean']['input']>;\n mode: DsarMode;\n subjectId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRunMonthlyPayoutsArgs = {\n period: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationRunMyDsarRequestArgs = {\n dryRun?: InputMaybe<Scalars['Boolean']['input']>;\n mode: DsarMode;\n};\n\n\n/** Root mutation type */\nexport type MutationSaveSsoConfigArgs = {\n input: SsoConfigInput;\n tenantId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationSaveTourAsTemplateArgs = {\n input: SaveTourAsTemplateInput;\n tourId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationScheduleNewsletterArgs = {\n id: Scalars['ID']['input'];\n scheduledFor: Scalars['DateTime']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationScheduleNotificationArgs = {\n input: ScheduleNotificationInput;\n};\n\n\n/** Root mutation type */\nexport type MutationSeedDefaultShortcutsArgs = {\n productId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationSelectVariantWinnerArgs = {\n variantId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationSendContextWidgetMessageArgs = {\n input: SendContextWidgetMessageInput;\n};\n\n\n/** Root mutation type */\nexport type MutationSendExploreMessageArgs = {\n input: SendExploreMessageInput;\n};\n\n\n/** Root mutation type */\nexport type MutationSendMagicLinkArgs = {\n context?: InputMaybe<AuthContext>;\n email: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationSendMessageArgs = {\n input: SendMessageInput;\n};\n\n\n/** Root mutation type */\nexport type MutationSendNewsletterArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationSendProductWelcomeEmailArgs = {\n input: ProductWelcomeEmailInput;\n};\n\n\n/** Root mutation type */\nexport type MutationSendPushMfaChallengeArgs = {\n deviceId?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationSendRoundMessageToCandidateArgs = {\n input: SendRoundMessageToCandidateInput;\n};\n\n\n/** Root mutation type */\nexport type MutationSendSurveyArgs = {\n ticketId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationSendTestNewsletterArgs = {\n id: Scalars['ID']['input'];\n testEmails: Array<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationServiceRecordEarningArgs = {\n input: ServiceRecordEarningInput;\n};\n\n\n/** Root mutation type */\nexport type MutationServiceRequestPayoutArgs = {\n input: ServiceRequestPayoutInput;\n};\n\n\n/** Root mutation type */\nexport type MutationServiceResolvePayoutAccountArgs = {\n input: ServiceResolvePayoutAccountInput;\n};\n\n\n/** Root mutation type */\nexport type MutationServiceSyncPayoutStatusArgs = {\n input: ServiceSyncPayoutStatusInput;\n};\n\n\n/** Root mutation type */\nexport type MutationSetAgentAwayArgs = {\n message?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationSetAppLicenseArgs = {\n applicationId: Scalars['ID']['input'];\n workspaceCap?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationSetBillingAddressArgs = {\n input: SetBillingAddressInput;\n};\n\n\n/** Root mutation type */\nexport type MutationSetDefaultBillingAccountArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationSetDefaultLanguageArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationSetDefaultPaymentMethodArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationSetDefaultPayoutAccountArgs = {\n billingAccountId: Scalars['ID']['input'];\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationSetEntitlementSeatLimitArgs = {\n entitlementId: Scalars['ID']['input'];\n maxSeats: Scalars['Int']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationSetNotificationTopicSubscriptionArgs = {\n input: SetNotificationTopicSubscriptionInput;\n};\n\n\n/** Root mutation type */\nexport type MutationSetRoleDefaultPermissionArgs = {\n input: SetRoleDefaultPermissionInput;\n};\n\n\n/** Root mutation type */\nexport type MutationSetStoreOrderShippingArgs = {\n input: SetStoreOrderShippingInput;\n};\n\n\n/** Root mutation type */\nexport type MutationSetTenantEndpointArgs = {\n endpoint: Scalars['String']['input'];\n tenantId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationSetUserFeatureFlagPreferenceArgs = {\n input: SetUserFeatureFlagPreferenceInput;\n};\n\n\n/** Root mutation type */\nexport type MutationSetUserLanguagePreferenceArgs = {\n input: SetUserLanguagePreferenceInput;\n};\n\n\n/** Root mutation type */\nexport type MutationSetWorkspaceFeatureFlagOverrideArgs = {\n input: SetWorkspaceFeatureFlagOverrideInput;\n};\n\n\n/** Root mutation type */\nexport type MutationSetupMfaArgs = {\n method: MfaMethod;\n};\n\n\n/** Root mutation type */\nexport type MutationShareWorkflowArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationSideloadAppArgs = {\n input: SideloadAppInput;\n};\n\n\n/** Root mutation type */\nexport type MutationSignInArgs = {\n input: SignInInput;\n};\n\n\n/** Root mutation type */\nexport type MutationSignUpArgs = {\n input: SignUpInput;\n};\n\n\n/** Root mutation type */\nexport type MutationSkipRefundArgs = {\n id: Scalars['ID']['input'];\n reason: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationSkipStepArgs = {\n stepId: Scalars['ID']['input'];\n tourId: Scalars['ID']['input'];\n userId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationSkipTourArgs = {\n tourId: Scalars['ID']['input'];\n userId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationSnapshotTopChartsArgs = {\n window?: InputMaybe<ChartWindow>;\n};\n\n\n/** Root mutation type */\nexport type MutationSpendCreditsArgs = {\n input: SpendCreditsInput;\n};\n\n\n/** Root mutation type */\nexport type MutationStartAppTrialArgs = {\n installationId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationStartStagedRolloutArgs = {\n initialPercentage?: InputMaybe<Scalars['Int']['input']>;\n releaseId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationStartTourArgs = {\n deviceType?: InputMaybe<DeviceType>;\n tourId: Scalars['ID']['input'];\n userId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationSubmitApplicationArgs = {\n id: Scalars['ID']['input'];\n notes?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationSubmitApplicationForReviewArgs = {\n id: Scalars['ID']['input'];\n notes?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationSubmitAssignmentResponseArgs = {\n input: SubmitAssignmentResponseInput;\n};\n\n\n/** Root mutation type */\nexport type MutationSubmitContactInquiryArgs = {\n input: SubmitContactInquiryInput;\n};\n\n\n/** Root mutation type */\nexport type MutationSubmitInterviewFeedbackArgs = {\n input: SubmitInterviewFeedbackInput;\n};\n\n\n/** Root mutation type */\nexport type MutationSubmitJobApplicationArgs = {\n input: SubmitJobApplicationInput;\n};\n\n\n/** Root mutation type */\nexport type MutationSubmitProductArgs = {\n id: Scalars['ID']['input'];\n notes?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationSubmitPublisherVerificationArgs = {\n input: SubmitPublisherVerificationInput;\n};\n\n\n/** Root mutation type */\nexport type MutationSubmitSatisfactionSurveyArgs = {\n input: SubmitSatisfactionSurveyInput;\n};\n\n\n/** Root mutation type */\nexport type MutationSubscribeArgs = {\n input: SubscribeInput;\n};\n\n\n/** Root mutation type */\nexport type MutationSubscribeToStoreArgs = {\n storeId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationSupportEraseSubjectArgs = {\n dryRun?: InputMaybe<Scalars['Boolean']['input']>;\n subjectId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationSupportExportSubjectArgs = {\n subjectId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationSuppressIdentifierArgs = {\n input: SuppressIdentifierInput;\n};\n\n\n/** Root mutation type */\nexport type MutationSuspendAppInstallationArgs = {\n id: Scalars['ID']['input'];\n reason: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationSuspendDeveloperOrgMemberArgs = {\n id: Scalars['ID']['input'];\n reason?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationSuspendProductEntitlementArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationSuspendPublisherArgs = {\n id: Scalars['ID']['input'];\n reason: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationSuspendTenantArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationSuspendWorkspaceArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationSyncStoreSubmissionStatusArgs = {\n input: SyncStoreSubmissionInput;\n};\n\n\n/** Root mutation type */\nexport type MutationSyncTourStepsArgs = {\n steps: Array<SyncTourStepInput>;\n tourId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationSyncWorkspaceFromWspaceArgs = {\n input: SyncWorkspaceFromWspaceInput;\n};\n\n\n/** Root mutation type */\nexport type MutationTagChannelArgs = {\n input: TagChannelInput;\n};\n\n\n/** Root mutation type */\nexport type MutationTagChannelConnectionArgs = {\n input: TagChannelConnectionInput;\n};\n\n\n/** Root mutation type */\nexport type MutationTagStoreProductArgs = {\n input: TagStoreProductInput;\n};\n\n\n/** Root mutation type */\nexport type MutationTestConnectionHealthArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationTestLdapConnectionArgs = {\n tenantId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationTestRadiusConnectionArgs = {\n tenantId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationTestWebhookArgs = {\n eventType: Scalars['String']['input'];\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationToggleAddOnArgs = {\n id: Scalars['ID']['input'];\n status: Scalars['Boolean']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationToggleFeaturedArgs = {\n state: Scalars['Boolean']['input'];\n storeProductId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationToggleKeyboardShortcutArgs = {\n id: Scalars['ID']['input'];\n isEnabled: Scalars['Boolean']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationTogglePlanArgs = {\n planID: Scalars['ID']['input'];\n status: Scalars['Boolean']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationTrackTourEventArgs = {\n input: RecordTourAnalyticsInput;\n};\n\n\n/** Root mutation type */\nexport type MutationTrackTourEventsArgs = {\n events: Array<RecordTourAnalyticsInput>;\n};\n\n\n/** Root mutation type */\nexport type MutationTransferLicenseArgs = {\n input: TransferLicenseInput;\n};\n\n\n/** Root mutation type */\nexport type MutationTransferOrgOwnershipArgs = {\n newOwnerId: Scalars['ID']['input'];\n organizationId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationTriggerBatchNotificationsArgs = {\n input: TriggerBatchNotificationsInput;\n};\n\n\n/** Root mutation type */\nexport type MutationTriggerNotificationArgs = {\n input: TriggerNotificationInput;\n};\n\n\n/** Root mutation type */\nexport type MutationTriggerNotificationWithTemplateArgs = {\n input: TriggerNotificationWithTemplateInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUnarchiveNotificationArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationUnenrollSubscriberFromAutomationArgs = {\n automationId: Scalars['ID']['input'];\n subscriberId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationUninstallAppArgs = {\n feedback?: InputMaybe<Scalars['String']['input']>;\n id: Scalars['ID']['input'];\n reason?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationUninstallAppByApplicationArgs = {\n applicationId: Scalars['ID']['input'];\n feedback?: InputMaybe<Scalars['String']['input']>;\n reason?: InputMaybe<Scalars['String']['input']>;\n workspaceId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationUnlinkDevOrgBillingAccountArgs = {\n organizationId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationUnlinkTicketsArgs = {\n linkId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationUnlinkWalletArgs = {\n walletAddress: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationUnlistProductArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationUnpublishFaqArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationUnpublishKnowledgeBaseArticleArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationUnpublishTourArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationUnregisterDeviceTokenArgs = {\n deviceId: Scalars['String']['input'];\n productSlug?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationUnshareWorkflowArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationUnsubscribeArgs = {\n email: Scalars['String']['input'];\n platformProductId?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationUnsubscribeFromStoreArgs = {\n storeId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationUntagChannelArgs = {\n input: UntagChannelInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUntagChannelConnectionArgs = {\n input: UntagChannelConnectionInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUntagStoreProductArgs = {\n input: UntagStoreProductInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateApiKeyArgs = {\n input: UpdateApiKeyInput;\n keyId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateAddOnDetailsArgs = {\n input: UpdateAddOnsInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateAffiliateCodeArgs = {\n id: Scalars['ID']['input'];\n input: UpdateAffiliateCodeInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateAgentProfileArgs = {\n id: Scalars['ID']['input'];\n input: UpdateAgentProfileInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateAgentStatusArgs = {\n input: UpdateAgentStatusInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateAppArgs = {\n id: Scalars['ID']['input'];\n input: UpdateAppInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateAppCollectionArgs = {\n id: Scalars['ID']['input'];\n input: UpdateAppCollectionInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateAppInstallationArgs = {\n id: Scalars['ID']['input'];\n input: UpdateAppInstallationInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateAppReviewArgs = {\n id: Scalars['ID']['input'];\n input: UpdateAppReviewInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateApplicationArgs = {\n id: Scalars['ID']['input'];\n input: UpdateApplicationInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateApplicationVersionArgs = {\n id: Scalars['ID']['input'];\n input: UpdateApplicationVersionInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateAutomationStepArgs = {\n id: Scalars['ID']['input'];\n input: UpdateAutomationStepInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateBillingAccountArgs = {\n input: UpdateBillingAccountInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateCampaignStatsArgs = {\n id: Scalars['ID']['input'];\n input: UpdateCampaignStatsInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateCannedResponseArgs = {\n id: Scalars['ID']['input'];\n input: UpdateCannedResponseInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateCartItemArgs = {\n input: UpdateCartItemInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateCartNotesArgs = {\n notes: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateCategoryArgs = {\n id: Scalars['ID']['input'];\n input: UpdateCategoryInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateChannelArgs = {\n id: Scalars['ID']['input'];\n input: UpdateChannelInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateChannelOrgSettingsArgs = {\n input: ChannelOrgSettingsInput;\n organizationId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateConnectionArgs = {\n id: Scalars['ID']['input'];\n input: UpdateConnectionInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateContactInquiryStatusArgs = {\n id: Scalars['ID']['input'];\n input: UpdateContactInquiryStatusInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateContentPageArgs = {\n id: Scalars['ID']['input'];\n input: UpdateContentPageInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateCouponArgs = {\n id: Scalars['ID']['input'];\n input: UpdateCouponInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateCurrentUserProfileArgs = {\n input: UpdateUserInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateDsarStatusArgs = {\n id: Scalars['ID']['input'];\n input: UpdateDsarStatusInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateDelegationArgs = {\n id: Scalars['ID']['input'];\n input: UpdateDelegationInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateDeveloperOrgMemberRoleArgs = {\n id: Scalars['ID']['input'];\n permissions?: InputMaybe<Scalars['JSON']['input']>;\n role: DeveloperOrgRole;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateDeveloperOrgPaymentMethodArgs = {\n id: Scalars['ID']['input'];\n input: UpdatePaymentMethodInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateDeveloperOrgSubscriptionArgs = {\n id: Scalars['ID']['input'];\n input: UpdateSubscriptionInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateDeveloperOrganizationArgs = {\n id: Scalars['ID']['input'];\n input: UpdateDeveloperOrganizationInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateDeveloperProfileArgs = {\n input: UpdateDeveloperProfileInput;\n userId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateDiscountArgs = {\n id: Scalars['ID']['input'];\n maxUses?: InputMaybe<Scalars['Int']['input']>;\n validUntil?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateEntitlementArgs = {\n input: UpdateEntitlementInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateFaqArgs = {\n id: Scalars['ID']['input'];\n input: UpdateFaqInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateFeatureFlagArgs = {\n id: Scalars['ID']['input'];\n input: UpdateFeatureFlagInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateI18nModuleArgs = {\n id: Scalars['ID']['input'];\n input: UpdateI18nModuleInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateI18nNamespaceArgs = {\n id: Scalars['ID']['input'];\n input: UpdateI18nNamespaceInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateI18nProductArgs = {\n id: Scalars['ID']['input'];\n input: UpdateI18nProductInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateInstallationStatusArgs = {\n id: Scalars['ID']['input'];\n status: StoreInstallationStatus;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateInterviewFeedbackArgs = {\n id: Scalars['ID']['input'];\n input: UpdateInterviewFeedbackInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateInterviewRoundArgs = {\n id: Scalars['ID']['input'];\n input: UpdateInterviewRoundInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateInterviewRoundConfigArgs = {\n id: Scalars['ID']['input'];\n input: UpdateInterviewRoundConfigInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateInterviewerArgs = {\n id: Scalars['ID']['input'];\n input: UpdateInterviewerInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateJobApplicationStatusArgs = {\n id: Scalars['ID']['input'];\n input: UpdateJobApplicationStatusInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateJobAssignmentArgs = {\n id: Scalars['ID']['input'];\n input: UpdateJobAssignmentInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateJobPostingArgs = {\n id: Scalars['ID']['input'];\n input: UpdateJobPostingInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateKeyboardShortcutArgs = {\n id: Scalars['ID']['input'];\n input: UpdateKeyboardShortcutInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateKnowledgeBaseArticleArgs = {\n id: Scalars['ID']['input'];\n input: UpdateKnowledgeBaseArticleInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateLanguageArgs = {\n id: Scalars['ID']['input'];\n input: UpdateLanguageInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateMyDashboardPreferencesArgs = {\n input: UpdateDashboardPreferencesInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateMyPreferencesArgs = {\n input: Scalars['JSON']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateNewsletterArgs = {\n id: Scalars['ID']['input'];\n input: UpdateNewsletterInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateNewsletterAutomationArgs = {\n id: Scalars['ID']['input'];\n input: UpdateAutomationInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateNewsletterListArgs = {\n id: Scalars['ID']['input'];\n input: UpdateNewsletterListInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateNewsletterTemplateArgs = {\n id: Scalars['ID']['input'];\n input: UpdateNewsletterTemplateInput;\n saveVersion?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateNewsletterVariantArgs = {\n id: Scalars['ID']['input'];\n input: UpdateVariantInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateNotificationArgs = {\n id: Scalars['ID']['input'];\n input: UpdateNotificationInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateNotificationHistoryArgs = {\n id: Scalars['ID']['input'];\n input: UpdateNotificationHistoryInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateNotificationPreferenceArgs = {\n id: Scalars['ID']['input'];\n input: UpdateNotificationPreferenceInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateNotificationTemplateArgs = {\n id: Scalars['ID']['input'];\n input: UpdateTemplateInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateNotificationTopicArgs = {\n id: Scalars['ID']['input'];\n input: UpdateNotificationTopicInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateOrgLegalInfoArgs = {\n id: Scalars['ID']['input'];\n input: UpdateOrgLegalInfoInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateOrgTaxInfoArgs = {\n id: Scalars['ID']['input'];\n input: UpdateOrgTaxInfoInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateOrganizationArgs = {\n id: Scalars['ID']['input'];\n input: UpdateOrganizationInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateOrganizationMemberArgs = {\n input: UpdateOrganizationMemberInput;\n organizationId: Scalars['String']['input'];\n userId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationUpdatePaymentMethodArgs = {\n billingAccountId: Scalars['ID']['input'];\n id: Scalars['ID']['input'];\n isDefault: Scalars['Boolean']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationUpdatePayoutAccountArgs = {\n billingAccountId: Scalars['ID']['input'];\n id: Scalars['ID']['input'];\n input: UpdatePayoutAccountInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdatePhysicalProductArgs = {\n id: Scalars['ID']['input'];\n input: UpdatePhysicalProductInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdatePlanArgs = {\n input: UpdatePlanInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdatePlatformProductArgs = {\n id: Scalars['ID']['input'];\n input: UpdatePlatformProductInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdatePolicyReferenceArgs = {\n id: Scalars['ID']['input'];\n input: UpdatePolicyReferenceInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdatePressKitAssetArgs = {\n id: Scalars['ID']['input'];\n input: UpdatePressKitAssetInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateProductArgs = {\n input: UpdateProductInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateProductVariantArgs = {\n id: Scalars['ID']['input'];\n input: UpdateProductVariantInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdatePromotionArgs = {\n id: Scalars['ID']['input'];\n input: UpdatePromotionInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdatePublisherArgs = {\n input: UpdatePublisherInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateQuotaArgs = {\n input: UpdateQuotaInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateRbacConfigArgs = {\n input: UpdateRbacConfigInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateRecurringBillingPlanArgs = {\n input: UpdateRecurringBillingInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateResourceArgs = {\n id: Scalars['ID']['input'];\n input: UpdateResourceInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateReviewArgs = {\n id: Scalars['ID']['input'];\n input: UpdateReviewInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateRoleArgs = {\n id: Scalars['ID']['input'];\n input: UpdateRoleInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateRolloutPercentageArgs = {\n newPercentage: Scalars['Int']['input'];\n releaseId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateSlaPolicyArgs = {\n id: Scalars['ID']['input'];\n input: UpdateSlaPolicyInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateScheduleTemplateArgs = {\n id: Scalars['ID']['input'];\n input: UpdateScheduleTemplateInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateScheduledJobArgs = {\n id: Scalars['ID']['input'];\n input: UpdateScheduledJobInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateShippingAddressArgs = {\n id: Scalars['ID']['input'];\n input: UpdateShippingAddressInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateShippingMethodArgs = {\n id: Scalars['ID']['input'];\n input: UpdateShippingMethodInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateStoreArgs = {\n id: Scalars['ID']['input'];\n input: UpdateStoreInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateStoreOrderPaymentStatusArgs = {\n billingAccountId: Scalars['ID']['input'];\n currency?: InputMaybe<Scalars['String']['input']>;\n failureReason?: InputMaybe<Scalars['String']['input']>;\n isAutoRenew?: InputMaybe<Scalars['Boolean']['input']>;\n jurisdiction?: InputMaybe<Scalars['String']['input']>;\n orderId: Scalars['ID']['input'];\n paidAmount?: InputMaybe<Scalars['Float']['input']>;\n paymentId?: InputMaybe<Scalars['String']['input']>;\n provider?: InputMaybe<Scalars['String']['input']>;\n providerSubscriptions?: InputMaybe<Scalars['String']['input']>;\n status: Scalars['String']['input'];\n subtotal?: InputMaybe<Scalars['Float']['input']>;\n subtotalExact?: InputMaybe<Scalars['String']['input']>;\n taxAmount?: InputMaybe<Scalars['Float']['input']>;\n taxRate?: InputMaybe<Scalars['Float']['input']>;\n taxType?: InputMaybe<Scalars['String']['input']>;\n transactionId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateSubprocessorArgs = {\n id: Scalars['ID']['input'];\n input: SubprocessorUpdateInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateSubscriberArgs = {\n id: Scalars['ID']['input'];\n input: UpdateSubscriberInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateSubscriptionEntitlementArgs = {\n id: Scalars['ID']['input'];\n input: UpdateSubscriptionEntitlementInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateSubscriptionSeatsArgs = {\n input: UpdateSubscriptionSeatsInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateSupportMessageArgs = {\n id: Scalars['ID']['input'];\n message: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateSupportTicketArgs = {\n id: Scalars['ID']['input'];\n input: UpdateSupportTicketInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateSupportTicketStatusArgs = {\n id: Scalars['ID']['input'];\n status: SupportTicketStatus;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateTaxRateArgs = {\n active?: InputMaybe<Scalars['Boolean']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n id: Scalars['ID']['input'];\n rate?: InputMaybe<Scalars['Float']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateTenantArgs = {\n id: Scalars['ID']['input'];\n input: UpdateTenantInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateTenantMemberRoleArgs = {\n role: TenantMemberRole;\n tenantId: Scalars['ID']['input'];\n userId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateTicketCategoryArgs = {\n id: Scalars['ID']['input'];\n input: UpdateTicketCategoryInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateTicketTemplateArgs = {\n id: Scalars['ID']['input'];\n input: UpdateTicketTemplateInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateTourArgs = {\n id: Scalars['ID']['input'];\n input: UpdateTourInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateTourMediaArgs = {\n id: Scalars['ID']['input'];\n input: UpdateTourMediaInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateTourScheduleArgs = {\n id: Scalars['ID']['input'];\n input: UpdateTourScheduleInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateTourStepArgs = {\n id: Scalars['ID']['input'];\n input: UpdateTourStepInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateTourTemplateArgs = {\n id: Scalars['ID']['input'];\n input: UpdateTourTemplateInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateTranslationArgs = {\n id: Scalars['ID']['input'];\n input: UpdateTranslationInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateTranslationKeyArgs = {\n id: Scalars['ID']['input'];\n input: UpdateTranslationKeyInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateUserArgs = {\n id: Scalars['ID']['input'];\n input: AdminUpdateUserInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateUserPlatformConnectionNotificationsArgs = {\n id: Scalars['ID']['input'];\n notificationsEnabled: Scalars['Boolean']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateVariantStatsArgs = {\n id: Scalars['ID']['input'];\n input: UpdateVariantStatsInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateWebhookArgs = {\n id: Scalars['ID']['input'];\n input: UpdateWebhookInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateWorkspaceArgs = {\n id: Scalars['ID']['input'];\n input: UpdateWorkspaceInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpdateWorkspaceMemberArgs = {\n input: UpdateWorkspaceMemberInput;\n userId: Scalars['String']['input'];\n workspaceId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationUpgradeFromTrialArgs = {\n installationId: Scalars['ID']['input'];\n planId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationUpgradeOrgTierArgs = {\n id: Scalars['ID']['input'];\n tier: DeveloperOrgTier;\n};\n\n\n/** Root mutation type */\nexport type MutationUploadTaxFormArgs = {\n formType: Scalars['String']['input'];\n formUrl: Scalars['String']['input'];\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationUpsertComplianceSettingsArgs = {\n input: UpsertComplianceSettingsInput;\n platformProductId: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationUpsertExternalOidcConfigArgs = {\n input: ExternalOidcConfigurationInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpsertOrderFulfillmentArgs = {\n input: UpsertOrderFulfillmentInput;\n orderId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationUpsertSeenUserArgs = {\n input: UpsertSeenUserInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpsertSourcingOfferArgs = {\n input: UpsertSourcingOfferInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUpsertUserShippingAddressArgs = {\n input: UpsertUserShippingAddressInput;\n};\n\n\n/** Root mutation type */\nexport type MutationUseCannedResponseArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationValidateApiKeyArgs = {\n apiKey: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationValidateHmacSignatureArgs = {\n algorithm?: InputMaybe<Scalars['String']['input']>;\n appId: Scalars['ID']['input'];\n body: Scalars['String']['input'];\n signature: Scalars['String']['input'];\n timestamp: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationValidateSignedCookieArgs = {\n cookieValue: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationValidateTokensArgs = {\n input: ValidateTokensInput;\n};\n\n\n/** Root mutation type */\nexport type MutationVerifyBillingPaymentMethodArgs = {\n input: VerifyPaymentMethodInput;\n};\n\n\n/** Root mutation type */\nexport type MutationVerifyDsarIdentityArgs = {\n id: Scalars['ID']['input'];\n identityProof: Scalars['JSON']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationVerifyEmailArgs = {\n token: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationVerifyMfaArgs = {\n input: MfaVerifyInput;\n};\n\n\n/** Root mutation type */\nexport type MutationVerifyPasskeyAuthenticationArgs = {\n authenticatorData: Scalars['String']['input'];\n clientDataJSON: Scalars['String']['input'];\n credentialId: Scalars['String']['input'];\n signature: Scalars['String']['input'];\n userHandle?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root mutation type */\nexport type MutationVerifyPasskeyRegistrationArgs = {\n attestationObject: Scalars['String']['input'];\n clientDataJSON: Scalars['String']['input'];\n credentialId: Scalars['String']['input'];\n name?: InputMaybe<Scalars['String']['input']>;\n transports?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\n\n/** Root mutation type */\nexport type MutationVerifyPaymentMethodArgs = {\n amounts: Array<Scalars['Float']['input']>;\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationVerifyPublisherPayoutMethodArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationVerifyWhatsAppPairingCodeArgs = {\n channelId: Scalars['ID']['input'];\n pairingCode: Scalars['String']['input'];\n phoneNumber: Scalars['String']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationVoidInvoiceArgs = {\n billingAccountId: Scalars['ID']['input'];\n invoiceId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationVoteOnAppReviewArgs = {\n isHelpful: Scalars['Boolean']['input'];\n reviewId: Scalars['ID']['input'];\n};\n\n\n/** Root mutation type */\nexport type MutationWithdrawConsentArgs = {\n input: WithdrawConsentInput;\n};\n\n/** 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. */\nexport type MyContactInquiryFilterInput = {\n /** Filter by inquiry category (exact match against the stored string). */\n category?: InputMaybe<Scalars['String']['input']>;\n /** Filter by product ID */\n productId?: InputMaybe<Scalars['String']['input']>;\n /** Filter by status */\n status?: InputMaybe<ContactInquiryStatus>;\n};\n\n/** Lightweight result for myRoles query - returns only role information */\nexport type MyRolesResult = {\n __typename?: 'MyRolesResult';\n /** Whether the actor has admin-level access in this scope */\n isAdmin: Scalars['Boolean']['output'];\n /** Whether the actor is the owner of this scope */\n isOwner: Scalars['Boolean']['output'];\n /** Roles assigned to the actor */\n roles: Array<RoleInfo>;\n};\n\nexport type NtlmChallengeResult = {\n __typename?: 'NTLMChallengeResult';\n challenge: Scalars['String']['output'];\n challengeId: Scalars['ID']['output'];\n};\n\nexport type Newsletter = {\n __typename?: 'Newsletter';\n clickRate?: Maybe<Scalars['Float']['output']>;\n content: Scalars['String']['output'];\n /** Contextual IDs for filtering and scoping (workspaceId, userId, productId, tenantId, etc.) */\n context?: Maybe<NewsletterContext>;\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n openRate?: Maybe<Scalars['Float']['output']>;\n plans?: Maybe<Scalars['JSON']['output']>;\n platformProductId: Scalars['String']['output'];\n previewText?: Maybe<Scalars['String']['output']>;\n products?: Maybe<Scalars['JSON']['output']>;\n recipientCount: Scalars['Int']['output'];\n recipientType: NewsletterRecipientType;\n scheduledFor?: Maybe<Scalars['DateTime']['output']>;\n segmentConfig?: Maybe<Scalars['JSON']['output']>;\n sentAt?: Maybe<Scalars['DateTime']['output']>;\n slug: Scalars['String']['output'];\n status: NewsletterStatus;\n subject: Scalars['String']['output'];\n title: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type NewsletterAutomation = {\n __typename?: 'NewsletterAutomation';\n context?: Maybe<NewsletterContext>;\n createdAt: Scalars['DateTime']['output'];\n description?: Maybe<Scalars['String']['output']>;\n enabled: Scalars['Boolean']['output'];\n id: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n name: Scalars['String']['output'];\n platformProductId: Scalars['String']['output'];\n subscriberCount: Scalars['Int']['output'];\n trigger: Scalars['JSON']['output'];\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type NewsletterBounce = {\n __typename?: 'NewsletterBounce';\n bounceType: BounceType;\n bouncedAt: Scalars['DateTime']['output'];\n campaignId: Scalars['String']['output'];\n diagnosticCode?: Maybe<Scalars['String']['output']>;\n email: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n reason?: Maybe<Scalars['String']['output']>;\n subscriberId: Scalars['String']['output'];\n};\n\nexport type NewsletterCampaign = {\n __typename?: 'NewsletterCampaign';\n bounceCount: Scalars['Int']['output'];\n clickCount: Scalars['Int']['output'];\n /** Contextual IDs for filtering and scoping (workspaceId, userId, productId, tenantId, etc.) */\n context?: Maybe<NewsletterContext>;\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n newsletterId: Scalars['String']['output'];\n openCount: Scalars['Int']['output'];\n segment?: Maybe<Scalars['String']['output']>;\n sentCount: Scalars['Int']['output'];\n subject: Scalars['String']['output'];\n};\n\nexport type NewsletterComplaint = {\n __typename?: 'NewsletterComplaint';\n campaignId: Scalars['String']['output'];\n complainedAt: Scalars['DateTime']['output'];\n complaintType?: Maybe<Scalars['String']['output']>;\n email: Scalars['String']['output'];\n feedbackType?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n subscriberId: Scalars['String']['output'];\n};\n\nexport type NewsletterComplianceSettings = {\n __typename?: 'NewsletterComplianceSettings';\n allowResubscribe: Scalars['Boolean']['output'];\n analyticsRetention: Scalars['Int']['output'];\n collectReasons: Scalars['Boolean']['output'];\n doubleOptIn: Scalars['Boolean']['output'];\n id: Scalars['ID']['output'];\n inactiveCleanup: Scalars['Int']['output'];\n physicalAddress?: Maybe<Scalars['String']['output']>;\n platformProductId: Scalars['String']['output'];\n privacyPolicyUrl?: Maybe<Scalars['String']['output']>;\n unsubscribeUrl?: Maybe<Scalars['String']['output']>;\n};\n\nexport type NewsletterConsent = {\n __typename?: 'NewsletterConsent';\n consentType: Scalars['String']['output'];\n granted: Scalars['Boolean']['output'];\n grantedAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n ipAddress?: Maybe<Scalars['String']['output']>;\n revokedAt?: Maybe<Scalars['DateTime']['output']>;\n source?: Maybe<Scalars['String']['output']>;\n subscriberId: Scalars['String']['output'];\n userAgent?: Maybe<Scalars['String']['output']>;\n};\n\n/** Newsletter-specific context output type. Returns the stored context for each record. Module-specific to avoid federation conflicts with OperationContext in other subgraphs. */\nexport type NewsletterContext = {\n __typename?: 'NewsletterContext';\n /** Additional custom context as JSON */\n custom?: Maybe<Scalars['JSON']['output']>;\n /** Organization ID for organization-level scoping */\n organizationId?: Maybe<Scalars['ID']['output']>;\n /** Product ID for product-level scoping */\n productId?: Maybe<Scalars['ID']['output']>;\n /** Project ID for project-level scoping */\n projectId?: Maybe<Scalars['ID']['output']>;\n /** Referring URL the visitor submitted from */\n referrer?: Maybe<Scalars['String']['output']>;\n /** Signup source, e.g. \"website\" — set by the website SDK waitlist/newsletter forms */\n source?: Maybe<Scalars['String']['output']>;\n /** Tenant ID for tenant-level scoping */\n tenantId?: Maybe<Scalars['ID']['output']>;\n /** Client-side ISO timestamp of the submission */\n timestamp?: Maybe<Scalars['String']['output']>;\n /** User ID for user-level scoping */\n userId?: Maybe<Scalars['ID']['output']>;\n /** Workspace ID for workspace-level scoping */\n workspaceId?: Maybe<Scalars['ID']['output']>;\n};\n\n/** Newsletter context filter input for querying records by context. Supports exact match filtering on context fields. */\nexport type NewsletterContextFilterInput = {\n /** Filter by organization ID */\n organizationId?: InputMaybe<Scalars['ID']['input']>;\n /** Filter by product ID */\n productId?: InputMaybe<Scalars['ID']['input']>;\n /** Filter by project ID */\n projectId?: InputMaybe<Scalars['ID']['input']>;\n /** Filter by tenant ID */\n tenantId?: InputMaybe<Scalars['ID']['input']>;\n /** Filter by user ID */\n userId?: InputMaybe<Scalars['ID']['input']>;\n /** Filter by workspace ID */\n workspaceId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n/** Newsletter context input for filtering and scoping data. All fields are optional and can be extended as needed. */\nexport type NewsletterContextInput = {\n /** Additional custom context as JSON */\n custom?: InputMaybe<Scalars['JSON']['input']>;\n /** Organization ID for organization-level scoping */\n organizationId?: InputMaybe<Scalars['ID']['input']>;\n /** Product ID for product-level scoping */\n productId?: InputMaybe<Scalars['ID']['input']>;\n /** Project ID for project-level scoping */\n projectId?: InputMaybe<Scalars['ID']['input']>;\n /** Referring URL the visitor submitted from */\n referrer?: InputMaybe<Scalars['String']['input']>;\n /** Signup source, e.g. \"website\" — set by the website SDK waitlist/newsletter forms */\n source?: InputMaybe<Scalars['String']['input']>;\n /** Tenant ID for tenant-level scoping */\n tenantId?: InputMaybe<Scalars['ID']['input']>;\n /** Client-side ISO timestamp of the submission */\n timestamp?: InputMaybe<Scalars['String']['input']>;\n /** User ID for user-level scoping */\n userId?: InputMaybe<Scalars['ID']['input']>;\n /** Workspace ID for workspace-level scoping */\n workspaceId?: InputMaybe<Scalars['ID']['input']>;\n};\n\nexport type NewsletterEraseResult = {\n __typename?: 'NewsletterEraseResult';\n anonymised: Scalars['Int']['output'];\n dryRun: Scalars['Boolean']['output'];\n notes?: Maybe<Scalars['String']['output']>;\n purged: Scalars['Int']['output'];\n retainedForLegalReason?: Maybe<Scalars['String']['output']>;\n service: Scalars['String']['output'];\n};\n\nexport enum NewsletterExportFormat {\n Csv = 'CSV',\n Json = 'JSON',\n Po = 'PO',\n Xliff = 'XLIFF',\n Xlsx = 'XLSX'\n}\n\nexport type NewsletterFilterInput = {\n /** Filter by newsletter context (workspaceId, userId, productId, tenantId, etc.) */\n context?: InputMaybe<NewsletterContextFilterInput>;\n platformProductId?: InputMaybe<Scalars['String']['input']>;\n search?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<NewsletterStatus>;\n};\n\nexport type NewsletterList = {\n __typename?: 'NewsletterList';\n context?: Maybe<NewsletterContext>;\n createdAt: Scalars['DateTime']['output'];\n description?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n name: Scalars['String']['output'];\n platformProductId: Scalars['String']['output'];\n subscriberCount: Scalars['Int']['output'];\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type NewsletterListFilterInput = {\n context?: InputMaybe<NewsletterContextFilterInput>;\n platformProductId?: InputMaybe<Scalars['String']['input']>;\n search?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type NewsletterPaginationInput = {\n cursor?: InputMaybe<Scalars['String']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type NewsletterRecipientEstimate = {\n __typename?: 'NewsletterRecipientEstimate';\n breakdown?: Maybe<Scalars['JSON']['output']>;\n estimatedCount: Scalars['Int']['output'];\n recipientType: NewsletterRecipientType;\n};\n\nexport enum NewsletterRecipientType {\n All = 'ALL',\n Plan = 'PLAN',\n Product = 'PRODUCT',\n Segment = 'SEGMENT'\n}\n\nexport type NewsletterStats = {\n __typename?: 'NewsletterStats';\n averageClickRate?: Maybe<Scalars['Float']['output']>;\n averageOpenRate?: Maybe<Scalars['Float']['output']>;\n totalNewsletters: Scalars['Int']['output'];\n totalSent: Scalars['Int']['output'];\n totalSubscribers: Scalars['Int']['output'];\n};\n\nexport enum NewsletterStatus {\n Canceled = 'CANCELED',\n Draft = 'DRAFT',\n Scheduled = 'SCHEDULED',\n Sent = 'SENT'\n}\n\nexport type NewsletterSubscriber = {\n __typename?: 'NewsletterSubscriber';\n /** True when the latest subscribe attempt matched an existing active subscriber. */\n alreadySubscribed: Scalars['Boolean']['output'];\n /** Contextual IDs for filtering and scoping (workspaceId, userId, productId, tenantId, etc.) */\n context?: Maybe<NewsletterContext>;\n email: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n platformProductId: Scalars['String']['output'];\n status: NewsletterSubscriptionStatus;\n subscribed: Scalars['Boolean']['output'];\n subscribedAt: Scalars['DateTime']['output'];\n unsubscribedAt?: Maybe<Scalars['DateTime']['output']>;\n userId?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum NewsletterSubscriptionStatus {\n Active = 'ACTIVE',\n Paused = 'PAUSED',\n Unsubscribed = 'UNSUBSCRIBED'\n}\n\nexport type NewsletterSuppression = {\n __typename?: 'NewsletterSuppression';\n addedAt: Scalars['DateTime']['output'];\n email: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n platformProductId: Scalars['String']['output'];\n reason: Scalars['String']['output'];\n source?: Maybe<Scalars['String']['output']>;\n};\n\nexport type NewsletterTemplate = {\n __typename?: 'NewsletterTemplate';\n category?: Maybe<Scalars['String']['output']>;\n context?: Maybe<NewsletterContext>;\n createdAt: Scalars['DateTime']['output'];\n description?: Maybe<Scalars['String']['output']>;\n html: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n isPublic: Scalars['Boolean']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n name: Scalars['String']['output'];\n platformProductId: Scalars['String']['output'];\n thumbnail?: Maybe<Scalars['String']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n version: Scalars['Int']['output'];\n};\n\nexport type NewsletterTemplateFilterInput = {\n category?: InputMaybe<Scalars['String']['input']>;\n context?: InputMaybe<NewsletterContextFilterInput>;\n isPublic?: InputMaybe<Scalars['Boolean']['input']>;\n platformProductId?: InputMaybe<Scalars['String']['input']>;\n search?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type NewsletterTemplateVersion = {\n __typename?: 'NewsletterTemplateVersion';\n changes?: Maybe<Scalars['String']['output']>;\n createdAt: Scalars['DateTime']['output'];\n createdBy?: Maybe<Scalars['String']['output']>;\n html: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n templateId: Scalars['String']['output'];\n version: Scalars['Int']['output'];\n};\n\nexport type NewsletterVariant = {\n __typename?: 'NewsletterVariant';\n clickCount: Scalars['Int']['output'];\n clickRate?: Maybe<Scalars['Float']['output']>;\n content: Scalars['String']['output'];\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n isWinner: Scalars['Boolean']['output'];\n name: Scalars['String']['output'];\n newsletterId: Scalars['String']['output'];\n openCount: Scalars['Int']['output'];\n openRate?: Maybe<Scalars['Float']['output']>;\n percentage: Scalars['Int']['output'];\n sentCount: Scalars['Int']['output'];\n subject: Scalars['String']['output'];\n};\n\nexport type NewsletterWaitlist = {\n __typename?: 'NewsletterWaitlist';\n company?: Maybe<Scalars['String']['output']>;\n /** Contextual IDs for filtering and scoping (workspaceId, userId, productId, tenantId, etc.) */\n context?: Maybe<NewsletterContext>;\n createdAt: Scalars['DateTime']['output'];\n email: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n name?: Maybe<Scalars['String']['output']>;\n platformProductId: Scalars['String']['output'];\n processedAt?: Maybe<Scalars['DateTime']['output']>;\n processedBy?: Maybe<Scalars['String']['output']>;\n reason?: Maybe<Scalars['String']['output']>;\n rejectionReason?: Maybe<Scalars['String']['output']>;\n status: NewsletterWaitlistStatus;\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport enum NewsletterWaitlistStatus {\n Approved = 'APPROVED',\n Pending = 'PENDING',\n Rejected = 'REJECTED'\n}\n\nexport type Notification = {\n __typename?: 'Notification';\n actions: Array<NotificationAction>;\n appName?: Maybe<Scalars['String']['output']>;\n archivedAt?: Maybe<Scalars['DateTime']['output']>;\n /** Platform type used for delivery (EMAIL, SMS, etc.) */\n channel: NotificationChannel;\n /** Channel instance ID from channel service (if used) */\n channelId?: Maybe<Scalars['ID']['output']>;\n channelServiceRef?: Maybe<Scalars['String']['output']>;\n clickedAt?: Maybe<Scalars['DateTime']['output']>;\n createdAt: Scalars['DateTime']['output'];\n data?: Maybe<Scalars['JSON']['output']>;\n deliveredAt?: Maybe<Scalars['DateTime']['output']>;\n deliveryStatus?: Maybe<NotificationDeliveryStatus>;\n email?: Maybe<Scalars['Boolean']['output']>;\n errorCode?: Maybe<Scalars['String']['output']>;\n errorMessage?: Maybe<Scalars['String']['output']>;\n events: Array<NotificationEvent>;\n expiresAt?: Maybe<Scalars['DateTime']['output']>;\n externalId?: Maybe<Scalars['String']['output']>;\n failedAt?: Maybe<Scalars['DateTime']['output']>;\n htmlMessage?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n isRead: Scalars['Boolean']['output'];\n media: Array<NotificationMedia>;\n message: Scalars['String']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n openedAt?: Maybe<Scalars['DateTime']['output']>;\n priority: NotificationPriority;\n readAt?: Maybe<Scalars['DateTime']['output']>;\n recipientEmail?: Maybe<Scalars['String']['output']>;\n recipientPhone?: Maybe<Scalars['String']['output']>;\n recipientToken?: Maybe<Scalars['String']['output']>;\n redirectUrl?: Maybe<Scalars['String']['output']>;\n scheduledFor?: Maybe<Scalars['DateTime']['output']>;\n scheduledNotification?: Maybe<ScheduledNotification>;\n sentAt?: Maybe<Scalars['DateTime']['output']>;\n sms?: Maybe<Scalars['Boolean']['output']>;\n status: NotificationStatus;\n subject?: Maybe<Scalars['String']['output']>;\n templateId?: Maybe<Scalars['ID']['output']>;\n templateVersion?: Maybe<Scalars['Int']['output']>;\n timezone?: Maybe<Scalars['String']['output']>;\n title: Scalars['String']['output'];\n topic?: Maybe<NotificationTopic>;\n topicId?: Maybe<Scalars['ID']['output']>;\n trackClicks: Scalars['Boolean']['output'];\n trackOpens: Scalars['Boolean']['output'];\n triggerStatus: TriggerStatus;\n triggeredAt?: Maybe<Scalars['DateTime']['output']>;\n type: NotificationType;\n updatedAt: Scalars['DateTime']['output'];\n user?: Maybe<User>;\n userId: Scalars['ID']['output'];\n};\n\nexport type NotificationAction = {\n __typename?: 'NotificationAction';\n actionType?: Maybe<Scalars['String']['output']>;\n id: Scalars['String']['output'];\n label: Scalars['String']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n style?: Maybe<Scalars['String']['output']>;\n url: Scalars['String']['output'];\n};\n\nexport type NotificationActionInput = {\n actionType?: InputMaybe<Scalars['String']['input']>;\n id?: InputMaybe<Scalars['String']['input']>;\n label: Scalars['String']['input'];\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n style?: InputMaybe<Scalars['String']['input']>;\n url: Scalars['String']['input'];\n};\n\nexport type NotificationBatchResult = {\n __typename?: 'NotificationBatchResult';\n batchId: Scalars['String']['output'];\n results: Scalars['JSON']['output'];\n totalFailed: Scalars['Int']['output'];\n totalRequested: Scalars['Int']['output'];\n totalTriggered: Scalars['Int']['output'];\n};\n\nexport enum NotificationChannel {\n Discord = 'DISCORD',\n Email = 'EMAIL',\n InApp = 'IN_APP',\n Push = 'PUSH',\n Slack = 'SLACK',\n Sms = 'SMS',\n Teams = 'TEAMS',\n Telegram = 'TELEGRAM',\n Webhook = 'WEBHOOK',\n Whatsapp = 'WHATSAPP'\n}\n\nexport type NotificationChannelCounts = {\n __typename?: 'NotificationChannelCounts';\n discord: Scalars['Int']['output'];\n email: Scalars['Int']['output'];\n inApp: Scalars['Int']['output'];\n push: Scalars['Int']['output'];\n slack: Scalars['Int']['output'];\n sms: Scalars['Int']['output'];\n teams: Scalars['Int']['output'];\n telegram: Scalars['Int']['output'];\n total: Scalars['Int']['output'];\n webhook: Scalars['Int']['output'];\n whatsapp: Scalars['Int']['output'];\n};\n\nexport enum NotificationDeliveryStatus {\n Bounced = 'BOUNCED',\n Clicked = 'CLICKED',\n Complained = 'COMPLAINED',\n Delivered = 'DELIVERED',\n Delivering = 'DELIVERING',\n Failed = 'FAILED',\n Opened = 'OPENED',\n Pending = 'PENDING',\n Processing = 'PROCESSING',\n Queued = 'QUEUED',\n Retrying = 'RETRYING',\n Sent = 'SENT',\n Unsubscribed = 'UNSUBSCRIBED'\n}\n\nexport type NotificationEvent = {\n __typename?: 'NotificationEvent';\n channelServiceEventId?: Maybe<Scalars['String']['output']>;\n createdAt: Scalars['DateTime']['output'];\n deliveryStatus?: Maybe<NotificationDeliveryStatus>;\n details?: Maybe<Scalars['JSON']['output']>;\n eventType: NotificationEventType;\n externalId?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n notificationId: Scalars['ID']['output'];\n timestamp: Scalars['DateTime']['output'];\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport enum NotificationEventType {\n Bounced = 'BOUNCED',\n Cancelled = 'CANCELLED',\n Clicked = 'CLICKED',\n Complained = 'COMPLAINED',\n Created = 'CREATED',\n Delivered = 'DELIVERED',\n Expired = 'EXPIRED',\n Failed = 'FAILED',\n Opened = 'OPENED',\n Retry = 'RETRY',\n Scheduled = 'SCHEDULED',\n Sent = 'SENT',\n Triggered = 'TRIGGERED',\n Unsubscribed = 'UNSUBSCRIBED'\n}\n\nexport type NotificationFilterInput = {\n appName?: InputMaybe<Scalars['String']['input']>;\n archived?: InputMaybe<Scalars['Boolean']['input']>;\n channel?: InputMaybe<NotificationChannel>;\n deliveryStatus?: InputMaybe<NotificationDeliveryStatus>;\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n isRead?: InputMaybe<Scalars['Boolean']['input']>;\n priority?: InputMaybe<NotificationPriority>;\n search?: InputMaybe<Scalars['String']['input']>;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n status?: InputMaybe<NotificationStatus>;\n topicId?: InputMaybe<Scalars['ID']['input']>;\n triggerStatus?: InputMaybe<TriggerStatus>;\n type?: InputMaybe<NotificationType>;\n userId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n/** Durable user-visible history entry for a notification. Backed by notification events. */\nexport type NotificationHistory = {\n __typename?: 'NotificationHistory';\n channelServiceEventId?: Maybe<Scalars['String']['output']>;\n createdAt: Scalars['DateTime']['output'];\n deliveryStatus?: Maybe<NotificationDeliveryStatus>;\n details?: Maybe<Scalars['JSON']['output']>;\n eventType: NotificationEventType;\n externalId?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n notification?: Maybe<Notification>;\n notificationId: Scalars['ID']['output'];\n timestamp: Scalars['DateTime']['output'];\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type NotificationHistoryFilterInput = {\n deliveryStatus?: InputMaybe<NotificationDeliveryStatus>;\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n eventType?: InputMaybe<NotificationEventType>;\n notificationId?: InputMaybe<Scalars['ID']['input']>;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n userId?: InputMaybe<Scalars['ID']['input']>;\n};\n\nexport type NotificationHistoryList = {\n __typename?: 'NotificationHistoryList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<NotificationHistory>;\n total: Scalars['Int']['output'];\n};\n\nexport type NotificationList = {\n __typename?: 'NotificationList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<Notification>;\n total: Scalars['Int']['output'];\n};\n\nexport type NotificationMedia = {\n __typename?: 'NotificationMedia';\n contentType?: Maybe<Scalars['String']['output']>;\n kind?: Maybe<Scalars['String']['output']>;\n label?: Maybe<Scalars['String']['output']>;\n thumbnailUrl?: Maybe<Scalars['String']['output']>;\n url: Scalars['String']['output'];\n};\n\nexport type NotificationMediaInput = {\n contentType?: InputMaybe<Scalars['String']['input']>;\n kind?: InputMaybe<Scalars['String']['input']>;\n label?: InputMaybe<Scalars['String']['input']>;\n thumbnailUrl?: InputMaybe<Scalars['String']['input']>;\n url: Scalars['String']['input'];\n};\n\nexport type NotificationPaginationInput = {\n cursor?: InputMaybe<Scalars['String']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type NotificationPreference = {\n __typename?: 'NotificationPreference';\n channel?: Maybe<NotificationChannel>;\n createdAt: Scalars['DateTime']['output'];\n enabled: Scalars['Boolean']['output'];\n frequency: NotificationPreferenceFrequency;\n id: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n preferenceKey: Scalars['String']['output'];\n quietHoursEnd?: Maybe<Scalars['String']['output']>;\n quietHoursStart?: Maybe<Scalars['String']['output']>;\n scope: NotificationPreferenceScope;\n timezone?: Maybe<Scalars['String']['output']>;\n topic?: Maybe<NotificationTopic>;\n topicId?: Maybe<Scalars['ID']['output']>;\n type?: Maybe<NotificationType>;\n updatedAt: Scalars['DateTime']['output'];\n userId: Scalars['ID']['output'];\n};\n\nexport type NotificationPreferenceFilterInput = {\n channel?: InputMaybe<NotificationChannel>;\n enabled?: InputMaybe<Scalars['Boolean']['input']>;\n scope?: InputMaybe<NotificationPreferenceScope>;\n topicId?: InputMaybe<Scalars['ID']['input']>;\n type?: InputMaybe<NotificationType>;\n userId?: InputMaybe<Scalars['ID']['input']>;\n};\n\nexport enum NotificationPreferenceFrequency {\n DailyDigest = 'DAILY_DIGEST',\n Immediate = 'IMMEDIATE',\n Never = 'NEVER',\n WeeklyDigest = 'WEEKLY_DIGEST'\n}\n\nexport type NotificationPreferenceList = {\n __typename?: 'NotificationPreferenceList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<NotificationPreference>;\n total: Scalars['Int']['output'];\n};\n\nexport enum NotificationPreferenceScope {\n Channel = 'CHANNEL',\n Global = 'GLOBAL',\n Topic = 'TOPIC',\n Type = 'TYPE'\n}\n\nexport enum NotificationPriority {\n High = 'HIGH',\n Low = 'LOW',\n Medium = 'MEDIUM',\n Urgent = 'URGENT'\n}\n\nexport type NotificationReadFilterInput = {\n appName?: InputMaybe<Scalars['String']['input']>;\n channel?: InputMaybe<NotificationChannel>;\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n type?: InputMaybe<NotificationType>;\n userId: Scalars['ID']['input'];\n};\n\nexport type NotificationStats = {\n __typename?: 'NotificationStats';\n byChannel: Scalars['JSON']['output'];\n byType: Scalars['JSON']['output'];\n cancelled: Scalars['Int']['output'];\n delivered: Scalars['Int']['output'];\n failed: Scalars['Int']['output'];\n pending: Scalars['Int']['output'];\n scheduled: Scalars['Int']['output'];\n sent: Scalars['Int']['output'];\n total: Scalars['Int']['output'];\n triggered: Scalars['Int']['output'];\n};\n\nexport enum NotificationStatus {\n Cancelled = 'CANCELLED',\n Delivered = 'DELIVERED',\n Draft = 'DRAFT',\n Expired = 'EXPIRED',\n Failed = 'FAILED',\n Pending = 'PENDING',\n Read = 'READ',\n Scheduled = 'SCHEDULED',\n Sent = 'SENT',\n Triggered = 'TRIGGERED'\n}\n\nexport type NotificationTemplate = {\n __typename?: 'NotificationTemplate';\n bodyTemplate: Scalars['String']['output'];\n /** Default delivery channel for this template */\n channel: NotificationChannel;\n createdAt: Scalars['DateTime']['output'];\n createdBy: Scalars['ID']['output'];\n description?: Maybe<Scalars['String']['output']>;\n enabled: Scalars['Boolean']['output'];\n htmlTemplate?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n locale: Scalars['String']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n name: Scalars['String']['output'];\n onBehalfOf: Scalars['ID']['output'];\n slug: Scalars['String']['output'];\n subject?: Maybe<Scalars['String']['output']>;\n type: NotificationType;\n updatedAt: Scalars['DateTime']['output'];\n variables: Scalars['JSON']['output'];\n version: Scalars['Int']['output'];\n};\n\nexport type NotificationTemplateList = {\n __typename?: 'NotificationTemplateList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<NotificationTemplate>;\n total: Scalars['Int']['output'];\n};\n\nexport type NotificationTopic = {\n __typename?: 'NotificationTopic';\n createdAt: Scalars['DateTime']['output'];\n description?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n isActive: Scalars['Boolean']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n mySubscription?: Maybe<NotificationTopicSubscription>;\n name: Scalars['String']['output'];\n slug: Scalars['String']['output'];\n subscriberCount?: Maybe<Scalars['Int']['output']>;\n type: NotificationType;\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type NotificationTopicFilterInput = {\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n search?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<NotificationType>;\n};\n\nexport type NotificationTopicList = {\n __typename?: 'NotificationTopicList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<NotificationTopic>;\n total: Scalars['Int']['output'];\n};\n\nexport type NotificationTopicSubscription = {\n __typename?: 'NotificationTopicSubscription';\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n subscribed: Scalars['Boolean']['output'];\n topic?: Maybe<NotificationTopic>;\n topicId: Scalars['ID']['output'];\n unsubscribedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n userId: Scalars['ID']['output'];\n};\n\nexport enum NotificationType {\n Alert = 'ALERT',\n Marketing = 'MARKETING',\n System = 'SYSTEM',\n Transactional = 'TRANSACTIONAL'\n}\n\nexport type NotifyDuplicateApplicantsInput = {\n /** 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. */\n applicationIds: Array<Scalars['ID']['input']>;\n /** Resend even to an email address already notified. Defaults to false. */\n force?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\n/** OAuth authorization URL response */\nexport type OAuthAuthorizationUrl = {\n __typename?: 'OAuthAuthorizationUrl';\n /** URL expires at */\n expiresAt: Scalars['DateTime']['output'];\n /** State parameter for CSRF protection */\n state: Scalars['String']['output'];\n /** Authorization URL to redirect user to */\n url: Scalars['String']['output'];\n};\n\nexport type OAuthInput = {\n code: Scalars['String']['input'];\n provider: Scalars['String']['input'];\n redirectUri?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Result for OIDC authorization URL generation */\nexport type OidcAuthUrlResult = {\n __typename?: 'OIDCAuthUrlResult';\n authUrl: Scalars['String']['output'];\n codeVerifier: Scalars['String']['output'];\n nonce: Scalars['String']['output'];\n relayState?: Maybe<Scalars['String']['output']>;\n state: Scalars['String']['output'];\n};\n\n/** Input for OIDC SSO callback */\nexport type OidcCallbackInput = {\n code: Scalars['String']['input'];\n codeVerifier: Scalars['String']['input'];\n nonce: Scalars['String']['input'];\n state: Scalars['String']['input'];\n tenantId: Scalars['String']['input'];\n};\n\n/** OIDC Provider Configuration (Discovery Endpoint Response) */\nexport type OidcConfig = {\n __typename?: 'OIDCConfig';\n authorizationEndpoint: Scalars['String']['output'];\n grantTypesSupported?: Maybe<Array<Scalars['String']['output']>>;\n issuer: Scalars['String']['output'];\n jwksUri: Scalars['String']['output'];\n registrationEndpoint?: Maybe<Scalars['String']['output']>;\n responseTypesSupported?: Maybe<Array<Scalars['String']['output']>>;\n scopesSupported?: Maybe<Array<Scalars['String']['output']>>;\n tokenEndpoint: Scalars['String']['output'];\n userinfoEndpoint?: Maybe<Scalars['String']['output']>;\n};\n\nexport type OidcHybridConfig = {\n __typename?: 'OIDCHybridConfig';\n authorizationEndpoint: Scalars['String']['output'];\n supportedGrantTypes: Array<Scalars['String']['output']>;\n supportedResponseTypes: Array<Scalars['String']['output']>;\n};\n\n/** Operation context output type. Returns the stored context for each record. */\nexport type OperationContext = {\n __typename?: 'OperationContext';\n /** App ID for app-level scoping */\n appId?: Maybe<Scalars['ID']['output']>;\n /** Additional custom context as JSON */\n custom?: Maybe<Scalars['JSON']['output']>;\n /** Organization ID for organization-level scoping */\n organizationId?: Maybe<Scalars['ID']['output']>;\n /** Project ID for project-level scoping */\n projectId?: Maybe<Scalars['ID']['output']>;\n /** Tenant ID for tenant-level scoping */\n tenantId?: Maybe<Scalars['ID']['output']>;\n /** User ID for user-level scoping */\n userId?: Maybe<Scalars['ID']['output']>;\n /** Workspace ID for workspace-level scoping */\n workspaceId?: Maybe<Scalars['ID']['output']>;\n};\n\n/** Order estimate for checkout preview */\nexport type OrderEstimate = {\n __typename?: 'OrderEstimate';\n /** Available shipping methods for physical items */\n availableShippingMethods: Array<ShippingMethod>;\n /** Currency */\n currency: Scalars['String']['output'];\n /** Digital items subtotal */\n digitalSubtotal: Scalars['Float']['output'];\n /** Physical items subtotal */\n physicalSubtotal: Scalars['Float']['output'];\n /** Shipping cost estimate */\n shippingCost?: Maybe<Scalars['Float']['output']>;\n /** Subtotal before shipping and tax */\n subtotal: Scalars['Float']['output'];\n /** Tax amount estimate */\n taxAmount?: Maybe<Scalars['Float']['output']>;\n /** Total amount */\n total: Scalars['Float']['output'];\n};\n\n/** Input for calculating order estimate */\nexport type OrderEstimateInput = {\n /** Shipping address for physical items (required if cart has physical items) */\n shippingAddressId?: InputMaybe<Scalars['String']['input']>;\n /** Selected shipping method ID */\n shippingMethodId?: InputMaybe<Scalars['String']['input']>;\n /** Target workspace for digital items */\n workspaceId?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Order fulfillment tracking for physical orders */\nexport type OrderFulfillment = {\n __typename?: 'OrderFulfillment';\n /** When order was cancelled */\n cancelledAt?: Maybe<Scalars['DateTime']['output']>;\n /** Shipping carrier name */\n carrier?: Maybe<Scalars['String']['output']>;\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n /** When package was delivered */\n deliveredAt?: Maybe<Scalars['DateTime']['output']>;\n /** Estimated delivery date */\n estimatedDeliveryDate?: Maybe<Scalars['DateTime']['output']>;\n /** When delivery failed */\n failedAt?: Maybe<Scalars['DateTime']['output']>;\n /** Reason for delivery failure */\n failureReason?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n /** When package entered transit */\n inTransitAt?: Maybe<Scalars['DateTime']['output']>;\n /** When shipping label was created */\n labelCreatedAt?: Maybe<Scalars['DateTime']['output']>;\n /** URL to shipping label PDF */\n labelUrl?: Maybe<Scalars['String']['output']>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n /** Internal notes */\n notes?: Maybe<Scalars['String']['output']>;\n order?: Maybe<StoreOrder>;\n orderId: Scalars['String']['output'];\n /** When package went out for delivery */\n outForDeliveryAt?: Maybe<Scalars['DateTime']['output']>;\n /** Package height */\n packageHeight?: Maybe<Scalars['Float']['output']>;\n /** Package length */\n packageLength?: Maybe<Scalars['Float']['output']>;\n /** Package weight */\n packageWeight?: Maybe<Scalars['Float']['output']>;\n /** Package width */\n packageWidth?: Maybe<Scalars['Float']['output']>;\n /** When order was processed */\n processedAt?: Maybe<Scalars['DateTime']['output']>;\n /** Reason for return */\n returnReason?: Maybe<Scalars['String']['output']>;\n /** When package was returned */\n returnedAt?: Maybe<Scalars['DateTime']['output']>;\n /** When order was shipped */\n shippedAt?: Maybe<Scalars['DateTime']['output']>;\n /** Whether signature is required on delivery */\n signatureRequired: Scalars['Boolean']['output'];\n /** URL to signature image */\n signatureUrl?: Maybe<Scalars['String']['output']>;\n /** Name of person who signed */\n signedBy?: Maybe<Scalars['String']['output']>;\n /** Current fulfillment status */\n status: FulfillmentStatus;\n /** Tracking event history */\n trackingEvents: Array<FulfillmentTrackingEvent>;\n /** Tracking number from carrier */\n trackingNumber?: Maybe<Scalars['String']['output']>;\n /** Full tracking URL */\n trackingUrl?: Maybe<Scalars['String']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n};\n\n/** Shipping estimate for a selected method and destination */\nexport type OrderShippingEstimate = {\n __typename?: 'OrderShippingEstimate';\n carrier?: Maybe<Scalars['String']['output']>;\n cost: Scalars['Float']['output'];\n currency: Scalars['String']['output'];\n estimatedDeliveryDate?: Maybe<Scalars['DateTime']['output']>;\n estimatedMaxDays?: Maybe<Scalars['Int']['output']>;\n estimatedMinDays?: Maybe<Scalars['Int']['output']>;\n itemCount: Scalars['Int']['output'];\n methodName: Scalars['String']['output'];\n orderId: Scalars['ID']['output'];\n shippingMethodId: Scalars['String']['output'];\n totalWeightKg: Scalars['Float']['output'];\n};\n\n/** Input for estimating shipping cost for an order */\nexport type OrderShippingEstimateInput = {\n /** Destination country code (ISO 3166-1 alpha-2) */\n destinationCountry: Scalars['String']['input'];\n /** Optional destination postal code */\n destinationPostalCode?: InputMaybe<Scalars['String']['input']>;\n /** Store order ID */\n orderId: Scalars['ID']['input'];\n /** Shipping method to evaluate */\n shippingMethodId: Scalars['String']['input'];\n};\n\nexport enum OrderStatus {\n Failed = 'FAILED',\n Pending = 'PENDING',\n Processed = 'PROCESSED',\n Refunded = 'REFUNDED'\n}\n\n/** Order status change event payload */\nexport type OrderStatusUpdatedEvent = {\n __typename?: 'OrderStatusUpdatedEvent';\n orderId: Scalars['ID']['output'];\n status: Scalars['String']['output'];\n updatedAt: Scalars['String']['output'];\n workspaceId?: Maybe<Scalars['ID']['output']>;\n};\n\n/** Organization type stub - represents an organization entity from another service This service doesn't own the Organization model, but references it */\nexport type Organization = {\n __typename?: 'Organization';\n createdAt: Scalars['DateTime']['output'];\n createdBy?: Maybe<Scalars['String']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n /** Pending invites for this organization */\n invites: Array<OrganizationInvite>;\n logo?: Maybe<Scalars['String']['output']>;\n /** Member count */\n memberCount: Scalars['Int']['output'];\n /** Members of this organization */\n memberships: Array<OrganizationMember>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n name: Scalars['String']['output'];\n settings?: Maybe<Scalars['JSON']['output']>;\n slug: Scalars['String']['output'];\n status: Scalars['String']['output'];\n /** 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. */\n tenant?: Maybe<Tenant>;\n tenantId: Scalars['String']['output'];\n tenantStructureProvisioning: TenantStructureProvisioningState;\n type: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n website?: Maybe<Scalars['String']['output']>;\n /** Workspace count */\n workspaceCount: Scalars['Int']['output'];\n /** Workspaces belonging to this organization */\n workspaces: Array<Workspace>;\n};\n\n/** A single persistent organization audit log entry. */\nexport type OrganizationAuditLog = {\n __typename?: 'OrganizationAuditLog';\n action: Scalars['String']['output'];\n actorId: Scalars['ID']['output'];\n actorType: Scalars['String']['output'];\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n organizationId: Scalars['ID']['output'];\n targetId?: Maybe<Scalars['ID']['output']>;\n targetType: Scalars['String']['output'];\n};\n\n/** Paginated connection of OrganizationAuditLog entries. */\nexport type OrganizationAuditLogConnection = {\n __typename?: 'OrganizationAuditLogConnection';\n edges: Array<OrganizationAuditLogEdge>;\n pageInfo: OrganizationAuditLogPageInfo;\n totalCount: Scalars['Int']['output'];\n};\n\n/** Edge wrapper for keyset pagination over OrganizationAuditLog. */\nexport type OrganizationAuditLogEdge = {\n __typename?: 'OrganizationAuditLogEdge';\n cursor: Scalars['String']['output'];\n node: OrganizationAuditLog;\n};\n\n/** Page info for relay-style cursor pagination. */\nexport type OrganizationAuditLogPageInfo = {\n __typename?: 'OrganizationAuditLogPageInfo';\n endCursor?: Maybe<Scalars['String']['output']>;\n hasNextPage: Scalars['Boolean']['output'];\n};\n\n/** 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. */\nexport type OrganizationCsvExport = {\n __typename?: 'OrganizationCsvExport';\n csv: Scalars['String']['output'];\n format: Scalars['String']['output'];\n generatedAt: Scalars['DateTime']['output'];\n rowCount: Scalars['Int']['output'];\n truncated: Scalars['Boolean']['output'];\n};\n\n/** Filter input for querying organizations */\nexport type OrganizationFilterInput = {\n /** 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. */\n memberUserId?: InputMaybe<Scalars['String']['input']>;\n search?: InputMaybe<Scalars['String']['input']>;\n tenantId?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Organization invite — represents a pending invitation to join an organization */\nexport type OrganizationInvite = {\n __typename?: 'OrganizationInvite';\n createdAt: Scalars['DateTime']['output'];\n email: Scalars['String']['output'];\n expiresAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n invitedBy: Scalars['String']['output'];\n invitedUserId?: Maybe<Scalars['String']['output']>;\n message?: Maybe<Scalars['String']['output']>;\n organization: Organization;\n organizationId: Scalars['String']['output'];\n respondedAt?: Maybe<Scalars['DateTime']['output']>;\n role: UserRole;\n status: InviteStatus;\n updatedAt: Scalars['DateTime']['output'];\n};\n\n/** Filter for listing invites */\nexport type OrganizationInviteFilterInput = {\n status?: InputMaybe<InviteStatus>;\n};\n\n/** Paginated list of organization invites */\nexport type OrganizationInviteList = {\n __typename?: 'OrganizationInviteList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<OrganizationInvite>;\n limit: Scalars['Int']['output'];\n offset: Scalars['Int']['output'];\n total: Scalars['Int']['output'];\n};\n\n/** Paginated list of organizations */\nexport type OrganizationList = {\n __typename?: 'OrganizationList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<Organization>;\n limit: Scalars['Int']['output'];\n offset: Scalars['Int']['output'];\n total: Scalars['Int']['output'];\n};\n\n/** Organization member with role and join information */\nexport type OrganizationMember = {\n __typename?: 'OrganizationMember';\n id: Scalars['ID']['output'];\n invitedBy?: Maybe<Scalars['String']['output']>;\n joinedAt: Scalars['DateTime']['output'];\n organization: Organization;\n organizationId: Scalars['String']['output'];\n role: UserRole;\n userId: Scalars['String']['output'];\n};\n\n/** Organization-scoped identity for visible members. */\nexport type OrganizationMemberIdentity = {\n __typename?: 'OrganizationMemberIdentity';\n avatar?: Maybe<Scalars['String']['output']>;\n displayName: Scalars['String']['output'];\n email?: Maybe<Scalars['String']['output']>;\n userId: Scalars['ID']['output'];\n};\n\n/** Paginated list of organization members */\nexport type OrganizationMemberList = {\n __typename?: 'OrganizationMemberList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<OrganizationMember>;\n limit: Scalars['Int']['output'];\n offset: Scalars['Int']['output'];\n total: Scalars['Int']['output'];\n};\n\nexport type OrganizationScheduleQuotas = {\n __typename?: 'OrganizationScheduleQuotas';\n currentActiveSchedules: Scalars['Int']['output'];\n currentExecutionsThisHour: Scalars['Int']['output'];\n maxActiveSchedules: Scalars['Int']['output'];\n maxScheduleExecutionsPerHour: Scalars['Int']['output'];\n nearingLimit: Scalars['Boolean']['output'];\n utilizationPercentage: Scalars['Float']['output'];\n};\n\n/** Override types for permission exceptions */\nexport enum OverrideType {\n /** Explicitly deny permission (overrides grant) */\n Deny = 'DENY',\n /** Explicitly grant permission (overrides denial) */\n Grant = 'GRANT'\n}\n\nexport type PageInfo = {\n __typename?: 'PageInfo';\n endCursor?: Maybe<Scalars['String']['output']>;\n hasNextPage: Scalars['Boolean']['output'];\n hasPreviousPage: Scalars['Boolean']['output'];\n startCursor?: Maybe<Scalars['String']['output']>;\n};\n\n/** Response type for getTransactionsByBillingAccount query Contains basic billing account info and paginated transactions */\nexport type PaginatedBillingAccountTransactions = {\n __typename?: 'PaginatedBillingAccountTransactions';\n /** Billing-specific email (for invoices) */\n billingEmail?: Maybe<Scalars['String']['output']>;\n /** When the billing account was created */\n createdAt: Scalars['DateTime']['output'];\n /** Credits available */\n creditAmount: Scalars['Float']['output'];\n /** Default currency */\n currency: Scalars['String']['output'];\n /** Billing account email */\n email?: Maybe<Scalars['String']['output']>;\n /** Whether there are more transactions after current page */\n hasMore: Scalars['Boolean']['output'];\n /** Billing account ID */\n id: Scalars['ID']['output'];\n /** Whether the billing account is active */\n isActive: Scalars['Boolean']['output'];\n /** Billing account name */\n name: Scalars['String']['output'];\n /** Current page number (0-indexed) */\n page: Scalars['Int']['output'];\n /** Number of items per page */\n pageSize: Scalars['Int']['output'];\n /** Tax ID / VAT number */\n taxId?: Maybe<Scalars['String']['output']>;\n /** Total count of transactions */\n totalCount: Scalars['Int']['output'];\n /** List of transactions for current page */\n transactions: Array<Transaction>;\n};\n\nexport type PaginatedCreditTransactions = {\n __typename?: 'PaginatedCreditTransactions';\n creditTransactions: Array<CreditTransaction>;\n hasMore: Scalars['Boolean']['output'];\n page: Scalars['Int']['output'];\n pageSize: Scalars['Int']['output'];\n totalCount: Scalars['Int']['output'];\n};\n\n/** Paginated invoices response */\nexport type PaginatedInvoices = {\n __typename?: 'PaginatedInvoices';\n hasMore: Scalars['Boolean']['output'];\n invoices: Array<Invoice>;\n page: Scalars['Int']['output'];\n pageSize: Scalars['Int']['output'];\n totalCount: Scalars['Int']['output'];\n totalPages: Scalars['Int']['output'];\n};\n\n/** Paginated products result */\nexport type PaginatedProducts = {\n __typename?: 'PaginatedProducts';\n products: Array<StoreProduct>;\n totalCount: Scalars['Int']['output'];\n};\n\nexport type PaginatedQuotaAssignments = {\n __typename?: 'PaginatedQuotaAssignments';\n page: Scalars['Int']['output'];\n pageSize: Scalars['Int']['output'];\n quotaAssignments: Array<QuotaAssignment>;\n totalCount: Scalars['Int']['output'];\n totalPages: Scalars['Int']['output'];\n};\n\nexport type PaginatedQuotaAssignmentsWithAnalytics = {\n __typename?: 'PaginatedQuotaAssignmentsWithAnalytics';\n page: Scalars['Int']['output'];\n pageSize: Scalars['Int']['output'];\n quotaAssignments: Array<QuotaAssignmentWithAnalytics>;\n totalCount: Scalars['Int']['output'];\n totalPages: Scalars['Int']['output'];\n};\n\n/** Paginated refund records response */\nexport type PaginatedRefundRecords = {\n __typename?: 'PaginatedRefundRecords';\n hasMore: Scalars['Boolean']['output'];\n page: Scalars['Int']['output'];\n pageSize: Scalars['Int']['output'];\n records: Array<RefundRecord>;\n totalCount: Scalars['Int']['output'];\n};\n\nexport type PaginatedResponse = {\n /** Whether there are more items available */\n hasMore: Scalars['Boolean']['output'];\n /** Items per page limit */\n limit: Scalars['Int']['output'];\n /** Current page number */\n page: Scalars['Int']['output'];\n /** Total count of items matching the filter */\n total: Scalars['Int']['output'];\n};\n\nexport type PaginatedSubscriptions = {\n __typename?: 'PaginatedSubscriptions';\n hasMore: Scalars['Boolean']['output'];\n page: Scalars['Int']['output'];\n pageSize: Scalars['Int']['output'];\n subscriptions: Array<BillingSubscription>;\n totalCount: Scalars['Int']['output'];\n totalPages: Scalars['Int']['output'];\n};\n\nexport type PaginatedUsages = {\n __typename?: 'PaginatedUsages';\n page: Scalars['Int']['output'];\n pageSize: Scalars['Int']['output'];\n totalCount: Scalars['Int']['output'];\n totalPages: Scalars['Int']['output'];\n usages: Array<Usage>;\n};\n\n/** Pagination input */\nexport type PaginationInput = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n/** Status of a Bundle-2 pairing code flow (WhatsApp / Discord). */\nexport enum PairingStatus {\n /** User approved the pairing code in the dashboard — dmAllowed set to true. */\n Approved = 'APPROVED',\n /** Pairing code expired before the user approved it — a new code must be requested. */\n Expired = 'EXPIRED',\n /** Pairing code generated and sent to user; waiting for dashboard approval. */\n Pending = 'PENDING'\n}\n\nexport enum PartnerTier {\n Premier = 'PREMIER',\n Registered = 'REGISTERED',\n Select = 'SELECT'\n}\n\nexport type PasskeyAuthenticationOptions = {\n __typename?: 'PasskeyAuthenticationOptions';\n allowCredentials?: Maybe<Scalars['JSON']['output']>;\n challenge: Scalars['String']['output'];\n rpId: Scalars['String']['output'];\n timeout: Scalars['Int']['output'];\n userVerification: Scalars['String']['output'];\n};\n\nexport type PasskeyInfo = {\n __typename?: 'PasskeyInfo';\n backedUp: Scalars['Boolean']['output'];\n createdAt: Scalars['DateTime']['output'];\n credentialId: Scalars['String']['output'];\n deviceType?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n lastUsedAt?: Maybe<Scalars['DateTime']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n};\n\nexport type PasskeyRegistrationOptions = {\n __typename?: 'PasskeyRegistrationOptions';\n attestation: Scalars['String']['output'];\n authenticatorSelection: Scalars['JSON']['output'];\n challenge: Scalars['String']['output'];\n excludeCredentials?: Maybe<Scalars['JSON']['output']>;\n pubKeyCredParams: Scalars['JSON']['output'];\n rp: Scalars['JSON']['output'];\n timeout: Scalars['Int']['output'];\n user: Scalars['JSON']['output'];\n};\n\nexport type PasskeyRegistrationResult = {\n __typename?: 'PasskeyRegistrationResult';\n credentialId?: Maybe<Scalars['String']['output']>;\n message?: Maybe<Scalars['String']['output']>;\n success: Scalars['Boolean']['output'];\n};\n\nexport type PasswordResetRequestResult = {\n __typename?: 'PasswordResetRequestResult';\n message: Scalars['String']['output'];\n success: Scalars['Boolean']['output'];\n};\n\nexport type Payment = {\n __typename?: 'Payment';\n amount: Scalars['Float']['output'];\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n currency: Scalars['String']['output'];\n failureReason?: Maybe<Scalars['String']['output']>;\n gatewayOrderId?: Maybe<Scalars['String']['output']>;\n gatewayPaymentId?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n invoice?: Maybe<Invoice>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n method: PaymentMethodType;\n orgId: Scalars['String']['output'];\n paidAt?: Maybe<Scalars['DateTime']['output']>;\n provider?: Maybe<Scalars['String']['output']>;\n status: PaymentStatus;\n transactionId?: Maybe<Scalars['String']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type PaymentFailure = {\n __typename?: 'PaymentFailure';\n code?: Maybe<Scalars['String']['output']>;\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n message?: Maybe<Scalars['String']['output']>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n orgId: Scalars['String']['output'];\n paymentId?: Maybe<Scalars['String']['output']>;\n reason: Scalars['String']['output'];\n};\n\nexport type PaymentMethod = {\n __typename?: 'PaymentMethod';\n billingAccount?: Maybe<BillingAccount>;\n billingAccountId?: Maybe<Scalars['String']['output']>;\n brand?: Maybe<Scalars['String']['output']>;\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n expiryMonth?: Maybe<Scalars['Int']['output']>;\n expiryYear?: Maybe<Scalars['Int']['output']>;\n id: Scalars['ID']['output'];\n isDefault: Scalars['Boolean']['output'];\n isVerified: Scalars['Boolean']['output'];\n last4?: Maybe<Scalars['String']['output']>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n orgId: Scalars['String']['output'];\n razorpayCustomerId?: Maybe<Scalars['String']['output']>;\n razorpayPaymentMethodId?: Maybe<Scalars['String']['output']>;\n stripeCustomerId?: Maybe<Scalars['String']['output']>;\n stripePaymentMethodId?: Maybe<Scalars['String']['output']>;\n transactions: Array<Transaction>;\n type: PaymentMethodType;\n updatedAt: Scalars['DateTime']['output'];\n verifiedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport enum PaymentMethodStatus {\n Disabled = 'DISABLED',\n FailedVerification = 'FAILED_VERIFICATION',\n PendingVerification = 'PENDING_VERIFICATION',\n Verified = 'VERIFIED'\n}\n\nexport enum PaymentMethodType {\n BankTransfer = 'BANK_TRANSFER',\n CreditCard = 'CREDIT_CARD',\n Crypto = 'CRYPTO',\n DebitCard = 'DEBIT_CARD',\n Netbanking = 'NETBANKING',\n Paypal = 'PAYPAL',\n Wallet = 'WALLET'\n}\n\n/** Payment provider configuration for frontend integration Contains only public keys safe to expose to the client */\nexport type PaymentProviderConfig = {\n __typename?: 'PaymentProviderConfig';\n /** Whether Razorpay is configured and available */\n razorpayEnabled: Scalars['Boolean']['output'];\n /** Razorpay key ID for frontend SDK */\n razorpayKeyId?: Maybe<Scalars['String']['output']>;\n /** Whether Stripe is configured and available */\n stripeEnabled: Scalars['Boolean']['output'];\n /** Stripe publishable key for frontend SDK */\n stripePublishableKey?: Maybe<Scalars['String']['output']>;\n};\n\n/** Preferred payment provider */\nexport enum PaymentProviderPreference {\n AppleIap = 'APPLE_IAP',\n Auto = 'AUTO',\n GooglePlay = 'GOOGLE_PLAY',\n Razorpay = 'RAZORPAY',\n Stripe = 'STRIPE'\n}\n\nexport enum PaymentStatus {\n Canceled = 'CANCELED',\n Failed = 'FAILED',\n Pending = 'PENDING',\n Refunded = 'REFUNDED',\n Succeeded = 'SUCCEEDED'\n}\n\nexport type PayoutAccount = {\n __typename?: 'PayoutAccount';\n accountDetails?: Maybe<Scalars['JSON']['output']>;\n accountLast4?: Maybe<Scalars['String']['output']>;\n billingAccountId: Scalars['ID']['output'];\n context?: Maybe<Scalars['JSON']['output']>;\n country?: Maybe<Scalars['String']['output']>;\n createdAt: Scalars['DateTime']['output'];\n currency: Scalars['String']['output'];\n displayName?: Maybe<Scalars['String']['output']>;\n externalAccountId?: Maybe<Scalars['String']['output']>;\n externalContactId?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n isActive: Scalars['Boolean']['output'];\n isDefault: Scalars['Boolean']['output'];\n label: Scalars['String']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n ownerUserId?: Maybe<Scalars['String']['output']>;\n providerPreference: PayoutProvider;\n status: PayoutAccountStatus;\n type: PayoutAccountType;\n updatedAt: Scalars['DateTime']['output'];\n verificationMethod?: Maybe<Scalars['String']['output']>;\n verifiedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport enum PayoutAccountStatus {\n Active = 'ACTIVE',\n Archived = 'ARCHIVED',\n FailedVerification = 'FAILED_VERIFICATION',\n PendingVerification = 'PENDING_VERIFICATION'\n}\n\nexport enum PayoutAccountType {\n BankAccount = 'BANK_ACCOUNT',\n Upi = 'UPI',\n Wallet = 'WALLET'\n}\n\nexport type PayoutAdminSummary = {\n __typename?: 'PayoutAdminSummary';\n failedCount: Scalars['Int']['output'];\n pendingCount: Scalars['Int']['output'];\n providerBreakdown: Array<PayoutProviderBreakdown>;\n statusBreakdown: Array<PayoutStatusBreakdown>;\n totalPaidAmount: Scalars['Float']['output'];\n totalProcessingAmount: Scalars['Float']['output'];\n totalRequestedAmount: Scalars['Float']['output'];\n};\n\nexport enum PayoutMethodType {\n BankTransfer = 'BANK_TRANSFER',\n Paypal = 'PAYPAL',\n RazorpayX = 'RAZORPAY_X',\n StripeConnect = 'STRIPE_CONNECT'\n}\n\nexport enum PayoutProvider {\n Auto = 'AUTO',\n Manual = 'MANUAL',\n Razorpay = 'RAZORPAY',\n Stripe = 'STRIPE'\n}\n\nexport type PayoutProviderBreakdown = {\n __typename?: 'PayoutProviderBreakdown';\n count: Scalars['Int']['output'];\n provider: PayoutProvider;\n totalAmount: Scalars['Float']['output'];\n};\n\nexport type PayoutRequest = {\n __typename?: 'PayoutRequest';\n approvedAmount?: Maybe<Scalars['Float']['output']>;\n billingAccountId: Scalars['ID']['output'];\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n currency: Scalars['String']['output'];\n earningsEntries: Array<EarningsEntry>;\n externalReference?: Maybe<Scalars['String']['output']>;\n failedAt?: Maybe<Scalars['DateTime']['output']>;\n failureReason?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n internalNotes?: Maybe<Scalars['String']['output']>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n paidAt?: Maybe<Scalars['DateTime']['output']>;\n payoutAccount?: Maybe<PayoutAccount>;\n payoutAccountId?: Maybe<Scalars['ID']['output']>;\n processedAt?: Maybe<Scalars['DateTime']['output']>;\n provider: PayoutProvider;\n /** See PayoutRequestKind — what approving this request actually does. */\n requestKind: PayoutRequestKind;\n requestedAmount: Scalars['Float']['output'];\n requesterUserId?: Maybe<Scalars['String']['output']>;\n status: PayoutRequestStatus;\n updatedAt: Scalars['DateTime']['output'];\n userNotes?: Maybe<Scalars['String']['output']>;\n};\n\nexport type PayoutRequestConnection = {\n __typename?: 'PayoutRequestConnection';\n hasMore: Scalars['Boolean']['output'];\n items: Array<PayoutRequest>;\n totalCount: Scalars['Int']['output'];\n};\n\nexport type PayoutRequestFilterInput = {\n billingAccountId?: InputMaybe<Scalars['ID']['input']>;\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n provider?: InputMaybe<PayoutProvider>;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n status?: InputMaybe<PayoutRequestStatus>;\n};\n\n/** 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. */\nexport enum PayoutRequestKind {\n CashPayout = 'CASH_PAYOUT',\n CreditConversion = 'CREDIT_CONVERSION'\n}\n\nexport enum PayoutRequestStatus {\n Approved = 'APPROVED',\n Canceled = 'CANCELED',\n Failed = 'FAILED',\n Paid = 'PAID',\n Processing = 'PROCESSING',\n Rejected = 'REJECTED',\n Requested = 'REQUESTED'\n}\n\nexport type PayoutRunLog = {\n __typename?: 'PayoutRunLog';\n createdAt: Scalars['DateTime']['output'];\n currency: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n period: Scalars['String']['output'];\n processedAt: Scalars['DateTime']['output'];\n publishersCount: Scalars['Int']['output'];\n status: Scalars['String']['output'];\n totalAmount: Scalars['Float']['output'];\n};\n\nexport enum PayoutStatus {\n Cancelled = 'CANCELLED',\n Completed = 'COMPLETED',\n Failed = 'FAILED',\n OnHold = 'ON_HOLD',\n Pending = 'PENDING',\n Processing = 'PROCESSING',\n Scheduled = 'SCHEDULED'\n}\n\nexport type PayoutStatusBreakdown = {\n __typename?: 'PayoutStatusBreakdown';\n count: Scalars['Int']['output'];\n status: PayoutRequestStatus;\n totalAmount: Scalars['Float']['output'];\n};\n\nexport type PeakUsage = {\n __typename?: 'PeakUsage';\n /** Highest usage in a single day */\n maxDailyUsage: Scalars['Float']['output'];\n /** Date of peak usage */\n peakDate: Scalars['String']['output'];\n /** Peak usage hour (0-23) */\n peakHour?: Maybe<Scalars['Int']['output']>;\n};\n\n/** Permission audit log entry */\nexport type PermissionAuditLog = {\n __typename?: 'PermissionAuditLog';\n action: Scalars['String']['output'];\n actorId: Scalars['String']['output'];\n actorType: ActorType;\n allowed: Scalars['Boolean']['output'];\n context?: Maybe<Scalars['JSON']['output']>;\n decisionPath: Scalars['String']['output'];\n evaluatedAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n opaInput?: Maybe<Scalars['JSON']['output']>;\n opaOutput?: Maybe<Scalars['JSON']['output']>;\n resourceId?: Maybe<Scalars['String']['output']>;\n resourceType: Scalars['String']['output'];\n scopeId: Scalars['String']['output'];\n};\n\n/** Input for checking a single permission */\nexport type PermissionCheckInput = {\n /** Action being performed */\n action: Scalars['String']['input'];\n /** Opaque actor ID from auth-svc */\n actorId: Scalars['String']['input'];\n /** Type of actor */\n actorType: ActorType;\n /** Optional: Additional attributes for OPA policies */\n attributes?: InputMaybe<Scalars['JSON']['input']>;\n /** Optional: Specific resource ID */\n resourceId?: InputMaybe<Scalars['String']['input']>;\n /** Resource type being accessed */\n resourceType: Scalars['String']['input'];\n /** Scope ID - tenantId for global layer */\n scopeId: Scalars['String']['input'];\n};\n\n/** Result of permission check */\nexport type PermissionCheckResult = {\n __typename?: 'PermissionCheckResult';\n /** Whether the action is allowed */\n allowed: Scalars['Boolean']['output'];\n /** Path taken to reach the decision (for debugging) */\n decisionPath: Scalars['String']['output'];\n opaPolicy?: Maybe<Scalars['String']['output']>;\n overrideType?: Maybe<Scalars['String']['output']>;\n /** Additional details about the decision */\n roleLevel?: Maybe<Scalars['String']['output']>;\n roleName?: Maybe<Scalars['String']['output']>;\n};\n\n/** Actor-level permission override (exception to role-based permissions) */\nexport type PermissionOverride = {\n __typename?: 'PermissionOverride';\n action: Scalars['String']['output'];\n actorId: Scalars['String']['output'];\n actorType: ActorType;\n createdAt: Scalars['DateTime']['output'];\n createdBy: Scalars['String']['output'];\n expiresAt?: Maybe<Scalars['DateTime']['output']>;\n id: Scalars['ID']['output'];\n onBehalfOf?: Maybe<Scalars['String']['output']>;\n overrideType: OverrideType;\n priority: Scalars['Int']['output'];\n reason?: Maybe<Scalars['String']['output']>;\n /** Optional: Scope to specific resource instance */\n resourceId?: Maybe<Scalars['String']['output']>;\n resourceType: Scalars['String']['output'];\n scopeId: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n validFrom?: Maybe<Scalars['DateTime']['output']>;\n validUntil?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type PlaceLegalHoldInput = {\n reason: Scalars['String']['input'];\n reference?: InputMaybe<Scalars['String']['input']>;\n subjectEmail?: InputMaybe<Scalars['String']['input']>;\n /** At least one of subjectId / subjectEmail is required. */\n subjectId?: InputMaybe<Scalars['ID']['input']>;\n};\n\nexport type Plan = {\n __typename?: 'Plan';\n /** Additional context */\n context?: Maybe<Scalars['JSON']['output']>;\n /** The timestamp when the plan was created. */\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n /** The currency in which the plan is priced. Defaults to 'USD'. */\n currency?: Maybe<Scalars['String']['output']>;\n /** Prices for all supported currencies with beautiful rounding. Example: { \"USD\": 2.00, \"INR\": 199, \"EUR\": 1.99, \"GBP\": 1.79 } */\n currencyPrices?: Maybe<Scalars['JSON']['output']>;\n /** The duration for which the plan is valid (e.g., monthly, yearly). Defaults to 'monthly'. */\n duration?: Maybe<PlanDuration>;\n /** A list of features provided by this plan, such as quotas or special services. */\n features?: Maybe<Array<Maybe<SubscriptionFeatures>>>;\n /** Geography-specific price overrides. The billing account's country/state/region plus currency decide whether one of these overrides applies. */\n geoPricingOverrides: Array<GeoPricingOverride>;\n /** The unique identifier for the Plan, automatically generated as a UUID. */\n id?: Maybe<Scalars['ID']['output']>;\n /** Indicates whether the plan is currently active. */\n isActive?: Maybe<Scalars['Boolean']['output']>;\n /** 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. */\n isPurchasable?: Maybe<Scalars['Boolean']['output']>;\n /** The offers that user get with plan on the store */\n itemEntitlements?: Maybe<Array<Maybe<SubscriptionEntitlement>>>;\n /** Maximum seats allowed (null = unlimited). */\n maxSeats?: Maybe<Scalars['Int']['output']>;\n /** 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). */\n maxWorkspaces?: Maybe<Scalars['Int']['output']>;\n /** Minimum seats required for this plan (e.g. 5 for Team tier). Null means no minimum. */\n minSeats?: Maybe<Scalars['Int']['output']>;\n /** The name of the plan (e.g., 'Basic', 'Pro', 'Enterprise'). */\n name?: Maybe<Scalars['String']['output']>;\n /** The price of the plan. */\n price?: Maybe<Scalars['Float']['output']>;\n /** Historical record of price changes for this plan */\n priceHistory: Array<PlanPriceHistory>;\n /** Per-seat rate used when pricingModel is PER_SEAT. Total charge = pricePerSeat × seatCount. */\n pricePerSeat?: Maybe<Scalars['Float']['output']>;\n /** Whether this plan bills at a flat rate or per seat. PER_SEAT plans pass seatCount as quantity to Stripe/Razorpay. */\n pricingModel?: Maybe<PlanPricingModel>;\n /** Which product the plan belongs to (reference to product microservice) */\n productID?: Maybe<Scalars['String']['output']>;\n /** 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. */\n resourceCaps?: Maybe<Scalars['JSON']['output']>;\n /** Per-plan storage cap in bytes. Overrides platform defaults (50MB free / 5GB paid). Null = use the platform default for this plan's pricing tier. */\n storageBytesLimit?: Maybe<Scalars['String']['output']>;\n /** The list of subscriptions associated with this plan. */\n subscriptions?: Maybe<Array<Maybe<BillingSubscription>>>;\n /** The timestamp when the plan was last updated. */\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport enum PlanDuration {\n Monthly = 'monthly',\n Yearly = 'yearly'\n}\n\n/** Tracks historical price changes for a Plan. A new record is created whenever a plan's price is updated. */\nexport type PlanPriceHistory = {\n __typename?: 'PlanPriceHistory';\n /** Who made the price change (actor ID) */\n changedBy?: Maybe<Scalars['String']['output']>;\n /** When the price change was recorded */\n createdAt: Scalars['DateTime']['output'];\n /** The currency of the price change */\n currency: Scalars['String']['output'];\n /** Unique identifier */\n id: Scalars['ID']['output'];\n /** The new price after the change */\n newPrice: Scalars['Float']['output'];\n /** The previous price before the change */\n oldPrice: Scalars['Float']['output'];\n /** The plan this price change belongs to */\n planId: Scalars['String']['output'];\n /** Optional reason for the price change */\n reason?: Maybe<Scalars['String']['output']>;\n};\n\n/** Determines how a plan is billed — flat rate or multiplied by seat count. */\nexport enum PlanPricingModel {\n /** Fixed price regardless of user count (e.g. Free tier, flat addons) */\n FlatRate = 'FLAT_RATE',\n /** Price × seatCount per billing cycle. Maps to quantity on Stripe/Razorpay subscription items. */\n PerSeat = 'PER_SEAT'\n}\n\nexport type PlanQuotaInput = {\n quantity: Scalars['Float']['input'];\n quotaId: Scalars['ID']['input'];\n};\n\nexport type PlansFilter = {\n /** 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. */\n includeFree?: InputMaybe<Scalars['Boolean']['input']>;\n /** Filter plans by product ID. When set, only plans with this productID are returned. */\n productId?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Delivery results for a single platform in a multi-platform delivery */\nexport type PlatformDeliveryResult = {\n __typename?: 'PlatformDeliveryResult';\n /** The adapter type that was ultimately used (after failover) */\n adapterUsed?: Maybe<Scalars['String']['output']>;\n /** The platform that was targeted */\n platform: ChannelPlatform;\n /** Per-recipient delivery results for this platform */\n recipientResults: Array<RecipientDeliveryResult>;\n /** Whether at least one recipient was delivered successfully */\n success: Scalars['Boolean']['output'];\n};\n\n/** PlatformProduct entity - resolvable via Federation Gateway. Other services can reference PlatformProduct by id or slug. */\nexport type PlatformProduct = {\n __typename?: 'PlatformProduct';\n /** Number of active users */\n activeUsers: Scalars['Int']['output'];\n /** Total API calls made to this product */\n apiCalls: Scalars['Int']['output'];\n /** Apple App Store URL */\n appStoreUrl?: Maybe<Scalars['String']['output']>;\n /** Product application URL */\n appUrl?: Maybe<Scalars['String']['output']>;\n /** Physical contact address */\n contactAddress?: Maybe<Scalars['String']['output']>;\n /** Primary contact email */\n contactEmail?: Maybe<Scalars['String']['output']>;\n /** Contact phone number */\n contactPhone?: Maybe<Scalars['String']['output']>;\n /** Content pages associated with this product */\n contentPages: Array<ProductContentPage>;\n /** When the product was created */\n createdAt: Scalars['DateTime']['output'];\n /** Product description */\n description?: Maybe<Scalars['String']['output']>;\n /** Product documentation URL */\n docsUrl?: Maybe<Scalars['String']['output']>;\n /** GitHub repository URL */\n githubUrl?: Maybe<Scalars['String']['output']>;\n /** The unique identifier for the platform product */\n id: Scalars['ID']['output'];\n /** Optional product launch/release date (epoch ms on wire as DateTime). Used for countdowns and announcement timing on marketing websites. */\n launchDate?: Maybe<Scalars['DateTime']['output']>;\n /** URL to the product logo */\n logoUrl?: Maybe<Scalars['String']['output']>;\n /** Additional metadata (JSON: tagline, businessDomain, category, company, pricingRange, etc.) */\n metadata?: Maybe<Scalars['JSON']['output']>;\n /** The product name */\n name: Scalars['String']['output'];\n /** Email for contact form notifications (fallback: contactEmail) */\n notificationEmail?: Maybe<Scalars['String']['output']>;\n /** Open Graph image URL */\n ogImage?: Maybe<Scalars['String']['output']>;\n /** Google Play Store URL */\n playStoreUrl?: Maybe<Scalars['String']['output']>;\n /** 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. */\n recaptchaSecretKey?: Maybe<Scalars['String']['output']>;\n /** reCAPTCHA site key (public) for frontend verification */\n recaptchaSiteKey?: Maybe<Scalars['String']['output']>;\n /** 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). */\n resourceLinks?: Maybe<Scalars['JSON']['output']>;\n /** Rybbit analytics site ID for this product */\n rybbitSiteId?: Maybe<Scalars['String']['output']>;\n /** SEO meta description */\n seoDescription?: Maybe<Scalars['String']['output']>;\n /** SEO keywords (comma-separated) */\n seoKeywords?: Maybe<Scalars['String']['output']>;\n /** SEO page title */\n seoTitle?: Maybe<Scalars['String']['output']>;\n /** Unique slug for URL-friendly identification */\n slug: Scalars['String']['output'];\n /** Social media links (JSON: { twitter, github, discord, linkedin, youtube, instagram, ... }) */\n socialLinks?: Maybe<Scalars['JSON']['output']>;\n /** Current status of the product */\n status: PlatformProductStatus;\n /** Status page URL */\n statusPageUrl?: Maybe<Scalars['String']['output']>;\n /** Storage used in GB */\n storageGB: Scalars['Float']['output'];\n /** Support email address */\n supportEmail?: Maybe<Scalars['String']['output']>;\n /** Searchable tags for this product (e.g. \"analytics\", \"billing\") */\n tags: Array<Scalars['String']['output']>;\n /** Number of tenants using this product */\n tenantCount: Scalars['Int']['output'];\n /** When the product was last updated */\n updatedAt: Scalars['DateTime']['output'];\n /** Uptime percentage */\n uptime: Scalars['Float']['output'];\n /** Product website URL */\n website?: Maybe<Scalars['String']['output']>;\n};\n\nexport type PlatformProductFilterInput = {\n /** Search in name, slug, or description */\n search?: InputMaybe<Scalars['String']['input']>;\n /** Filter by product status */\n status?: InputMaybe<PlatformProductStatus>;\n};\n\nexport type PlatformProductList = {\n __typename?: 'PlatformProductList';\n /** Whether there are more products available */\n hasMore: Scalars['Boolean']['output'];\n /** List of platform products */\n items: Array<PlatformProduct>;\n /** Total count of products */\n total: Scalars['Int']['output'];\n};\n\n/** Aggregate statistics about platform products */\nexport type PlatformProductStats = {\n __typename?: 'PlatformProductStats';\n /** Number of active (released) products */\n active: Scalars['Int']['output'];\n /** Number of coming soon (unreleased) products */\n comingSoon: Scalars['Int']['output'];\n /** Number of draft products */\n draft: Scalars['Int']['output'];\n /** Total number of products */\n total: Scalars['Int']['output'];\n /** Number of waitlist-gated products */\n waitlist: Scalars['Int']['output'];\n};\n\nexport enum PlatformProductStatus {\n Active = 'ACTIVE',\n ComingSoon = 'COMING_SOON',\n Draft = 'DRAFT',\n Waitlist = 'WAITLIST'\n}\n\n/** OPA policy reference */\nexport type PolicyReference = {\n __typename?: 'PolicyReference';\n action: Scalars['String']['output'];\n createdAt: Scalars['DateTime']['output'];\n description?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n isActive: Scalars['Boolean']['output'];\n name: Scalars['String']['output'];\n opaPackage: Scalars['String']['output'];\n priority: Scalars['Int']['output'];\n resourceType: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type PolicyReferenceFilterInput = {\n action?: InputMaybe<Scalars['String']['input']>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n resourceType?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type PrepareSupportAttachmentUploadInput = {\n extension: Scalars['String']['input'];\n fileName: Scalars['String']['input'];\n fileSize: Scalars['BigInt']['input'];\n mimeType: Scalars['String']['input'];\n ticketId: Scalars['ID']['input'];\n};\n\nexport enum PressKitAssetCategory {\n Banner = 'BANNER',\n BrandGuide = 'BRAND_GUIDE',\n Brochure = 'BROCHURE',\n Contract = 'CONTRACT',\n Document = 'DOCUMENT',\n Logo = 'LOGO',\n PressRelease = 'PRESS_RELEASE',\n Screenshot = 'SCREENSHOT'\n}\n\nexport type PressKitAssetFilterInput = {\n /** Filter by category (LOGO, BANNER, BROCHURE, ...) */\n category?: InputMaybe<PressKitAssetCategory>;\n /** Search in title or slug */\n search?: InputMaybe<Scalars['String']['input']>;\n /** Filter by a tag. Matches assets whose tags array contains this value. */\n tag?: InputMaybe<Scalars['String']['input']>;\n /** Filter by visibility level */\n visibility?: InputMaybe<ContentVisibility>;\n};\n\n/** A short-lived presigned upload target. PUT the file bytes to uploadUrl, then call createPressKitAsset with fileUrl. */\nexport type PressKitAssetUploadUrl = {\n __typename?: 'PressKitAssetUploadUrl';\n expiresAt: Scalars['DateTime']['output'];\n fileUrl: Scalars['String']['output'];\n key: Scalars['String']['output'];\n uploadUrl: Scalars['String']['output'];\n};\n\n/** Price range in results */\nexport type PriceRange = {\n __typename?: 'PriceRange';\n max: Scalars['Float']['output'];\n min: Scalars['Float']['output'];\n};\n\nexport enum PricingModel {\n Free = 'FREE',\n PaidOnetime = 'PAID_ONETIME',\n Subscription = 'SUBSCRIPTION'\n}\n\nexport type PriorityBreakdown = {\n __typename?: 'PriorityBreakdown';\n count: Scalars['Int']['output'];\n percentage: Scalars['Float']['output'];\n priority: SupportTicketPriority;\n};\n\nexport type PrivacyPaginationInput = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n/** Result of processing a refund */\nexport type ProcessRefundResult = {\n __typename?: 'ProcessRefundResult';\n error?: Maybe<Scalars['String']['output']>;\n gatewayRefundId?: Maybe<Scalars['String']['output']>;\n refundRecord?: Maybe<RefundRecord>;\n success: Scalars['Boolean']['output'];\n};\n\n/** Reason describing why a user does or does not have product access */\nexport enum ProductAccessReason {\n InternalDomainAccess = 'INTERNAL_DOMAIN_ACCESS',\n NoAccess = 'NO_ACCESS',\n ProductActive = 'PRODUCT_ACTIVE',\n ProductDraft = 'PRODUCT_DRAFT',\n SuperAdminAccess = 'SUPER_ADMIN_ACCESS',\n WaitlistApproved = 'WAITLIST_APPROVED',\n WaitlistNotJoined = 'WAITLIST_NOT_JOINED',\n WaitlistPending = 'WAITLIST_PENDING',\n WaitlistRejected = 'WAITLIST_REJECTED'\n}\n\n/** Result of checking whether the current user can access a specific product */\nexport type ProductAccessResult = {\n __typename?: 'ProductAccessResult';\n hasAccess: Scalars['Boolean']['output'];\n product?: Maybe<PlatformProduct>;\n reason: ProductAccessReason;\n};\n\nexport type ProductAsset = {\n __typename?: 'ProductAsset';\n caption?: Maybe<Scalars['String']['output']>;\n checksum?: Maybe<Scalars['String']['output']>;\n createdAt: Scalars['DateTime']['output'];\n downloadUrl?: Maybe<Scalars['String']['output']>;\n fileName: Scalars['String']['output'];\n fileType: ProductAssetType;\n filesSvcId?: Maybe<Scalars['ID']['output']>;\n id: Scalars['ID']['output'];\n isCurrent: Scalars['Boolean']['output'];\n locale?: Maybe<Scalars['String']['output']>;\n mimeType: Scalars['String']['output'];\n orderIndex: Scalars['Int']['output'];\n productId: Scalars['ID']['output'];\n sizeBytes: Scalars['String']['output'];\n storageKey?: Maybe<Scalars['String']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n uploadedBy: Scalars['String']['output'];\n version?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum ProductAssetType {\n Banner = 'BANNER',\n FeatureGraphic = 'FEATURE_GRAPHIC',\n Icon = 'ICON',\n Logo = 'LOGO',\n Manifest = 'MANIFEST',\n Screenshot = 'SCREENSHOT',\n Thumbnail = 'THUMBNAIL',\n Video = 'VIDEO',\n Zip = 'ZIP'\n}\n\nexport type ProductCategory = {\n __typename?: 'ProductCategory';\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n description?: Maybe<Scalars['String']['output']>;\n icon?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n name: Scalars['String']['output'];\n parentId?: Maybe<Scalars['String']['output']>;\n slug: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type ProductChartSnapshot = {\n __typename?: 'ProductChartSnapshot';\n category?: Maybe<Scalars['String']['output']>;\n chart: ChartType;\n country?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n productId: Scalars['ID']['output'];\n rank: Scalars['Int']['output'];\n score: Scalars['Float']['output'];\n snapshotAt: Scalars['DateTime']['output'];\n storeId?: Maybe<Scalars['ID']['output']>;\n window: Scalars['String']['output'];\n};\n\n/** A content page (privacy policy, terms of service, etc.) stored in markdown format. Supports global defaults (productId = null) and per-product overrides. */\nexport type ProductContentPage = {\n __typename?: 'ProductContentPage';\n author?: Maybe<Scalars['String']['output']>;\n category?: Maybe<Scalars['String']['output']>;\n content: Scalars['String']['output'];\n contentFormat: Scalars['String']['output'];\n createdAt: Scalars['DateTime']['output'];\n /** Blog/article fields */\n excerpt?: Maybe<Scalars['String']['output']>;\n featured: Scalars['Boolean']['output'];\n id: Scalars['ID']['output'];\n isPublished: Scalars['Boolean']['output'];\n lastUpdated: Scalars['DateTime']['output'];\n product?: Maybe<PlatformProduct>;\n productId?: Maybe<Scalars['String']['output']>;\n publishedAt?: Maybe<Scalars['DateTime']['output']>;\n readingTime?: Maybe<Scalars['Int']['output']>;\n seoDescription?: Maybe<Scalars['String']['output']>;\n seoKeywords?: Maybe<Scalars['String']['output']>;\n seoTitle?: Maybe<Scalars['String']['output']>;\n slug: Scalars['String']['output'];\n sortOrder: Scalars['Int']['output'];\n /** Searchable tags for this page (e.g. \"legal\", \"privacy\", \"blog\", \"changelog\") */\n tags: Array<Scalars['String']['output']>;\n thumbnail?: Maybe<Scalars['String']['output']>;\n title: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n version: Scalars['Int']['output'];\n /** Access control: PUBLIC (no auth), AUTHENTICATED (requires login), INTERNAL (admin only) */\n visibility: ContentVisibility;\n};\n\nexport type ProductContentPageList = {\n __typename?: 'ProductContentPageList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<ProductContentPage>;\n total: Scalars['Int']['output'];\n};\n\nexport type ProductDownload = {\n __typename?: 'ProductDownload';\n context?: Maybe<Scalars['JSON']['output']>;\n downloadedAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n ipAddress?: Maybe<Scalars['String']['output']>;\n productId: Scalars['String']['output'];\n userId: Scalars['String']['output'];\n version?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ProductEntitlement = {\n __typename?: 'ProductEntitlement';\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n expiresAt?: Maybe<Scalars['DateTime']['output']>;\n id: Scalars['ID']['output'];\n licenseKey?: Maybe<Scalars['String']['output']>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n organizationId?: Maybe<Scalars['String']['output']>;\n product: StoreProduct;\n productId: Scalars['String']['output'];\n purchasedBy: Scalars['String']['output'];\n status: EntitlementStatus;\n updatedAt: Scalars['DateTime']['output'];\n workspaceId?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ProductFilterInput = {\n category?: InputMaybe<Scalars['String']['input']>;\n inStock?: InputMaybe<Scalars['Boolean']['input']>;\n maxPrice?: InputMaybe<Scalars['Float']['input']>;\n minPrice?: InputMaybe<Scalars['Float']['input']>;\n nature?: InputMaybe<ProductNature>;\n publisherId?: InputMaybe<Scalars['String']['input']>;\n requiresShipping?: InputMaybe<Scalars['Boolean']['input']>;\n search?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<ProductStatus>;\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n type?: InputMaybe<ProductType>;\n};\n\nexport enum ProductNature {\n Digital = 'DIGITAL',\n Physical = 'PHYSICAL'\n}\n\n/** A downloadable press/media asset (logo, banner, brochure, document, etc.) scoped to a product. Public by default — shown on the product /press page. */\nexport type ProductPressKitAsset = {\n __typename?: 'ProductPressKitAsset';\n category: PressKitAssetCategory;\n createdAt: Scalars['DateTime']['output'];\n description?: Maybe<Scalars['String']['output']>;\n fileName?: Maybe<Scalars['String']['output']>;\n fileSize?: Maybe<Scalars['Int']['output']>;\n fileUrl: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n mimeType?: Maybe<Scalars['String']['output']>;\n product?: Maybe<PlatformProduct>;\n productId: Scalars['String']['output'];\n slug: Scalars['String']['output'];\n sortOrder: Scalars['Int']['output'];\n tags: Array<Scalars['String']['output']>;\n thumbnailUrl?: Maybe<Scalars['String']['output']>;\n title: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n version?: Maybe<Scalars['String']['output']>;\n /** Access control: PUBLIC (no auth), AUTHENTICATED (login), INTERNAL (admin only) */\n visibility: ContentVisibility;\n};\n\nexport type ProductPressKitAssetList = {\n __typename?: 'ProductPressKitAssetList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<ProductPressKitAsset>;\n total: Scalars['Int']['output'];\n};\n\n/** Rating distribution for filter refinement (product ratings) */\nexport type ProductRatingDistribution = {\n __typename?: 'ProductRatingDistribution';\n fiveStars: Scalars['Int']['output'];\n fourStars: Scalars['Int']['output'];\n oneStar: Scalars['Int']['output'];\n threeStars: Scalars['Int']['output'];\n twoStars: Scalars['Int']['output'];\n};\n\nexport type ProductRelease = {\n __typename?: 'ProductRelease';\n bundleAssetId?: Maybe<Scalars['ID']['output']>;\n completedAt?: Maybe<Scalars['DateTime']['output']>;\n countries: Array<Scalars['String']['output']>;\n createdAt: Scalars['DateTime']['output'];\n haltedAt?: Maybe<Scalars['DateTime']['output']>;\n haltedReason?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n manifestAssetId?: Maybe<Scalars['ID']['output']>;\n productId: Scalars['ID']['output'];\n releaseNotes?: Maybe<Scalars['JSON']['output']>;\n reviewNotes?: Maybe<Scalars['String']['output']>;\n reviewedAt?: Maybe<Scalars['DateTime']['output']>;\n rolledBackAt?: Maybe<Scalars['DateTime']['output']>;\n rolloutPercentage: Scalars['Int']['output'];\n startedAt?: Maybe<Scalars['DateTime']['output']>;\n status: ReleaseStatus;\n trackId: Scalars['ID']['output'];\n version: Scalars['String']['output'];\n};\n\nexport type ProductReleaseAuditEvent = {\n __typename?: 'ProductReleaseAuditEvent';\n actorId: Scalars['String']['output'];\n createdAt: Scalars['DateTime']['output'];\n eventType: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n notes?: Maybe<Scalars['String']['output']>;\n releaseId: Scalars['ID']['output'];\n};\n\nexport type ProductReview = {\n __typename?: 'ProductReview';\n comment?: Maybe<Scalars['String']['output']>;\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n helpful: Scalars['Int']['output'];\n id: Scalars['ID']['output'];\n product: StoreProduct;\n productId: Scalars['String']['output'];\n rating: Scalars['Int']['output'];\n status: ReviewStatus;\n title?: Maybe<Scalars['String']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n userId: Scalars['String']['output'];\n verifiedPurchase: Scalars['Boolean']['output'];\n};\n\nexport type ProductReviewReply = {\n __typename?: 'ProductReviewReply';\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n productId: Scalars['ID']['output'];\n replierId: Scalars['String']['output'];\n replierType: Scalars['String']['output'];\n replyText: Scalars['String']['output'];\n reviewId: Scalars['ID']['output'];\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport enum ProductStatus {\n Archived = 'ARCHIVED',\n Deprecated = 'DEPRECATED',\n Draft = 'DRAFT',\n PendingReview = 'PENDING_REVIEW',\n Published = 'PUBLISHED',\n Rejected = 'REJECTED',\n Unlisted = 'UNLISTED'\n}\n\nexport type ProductTag = {\n __typename?: 'ProductTag';\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n description?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n name: Scalars['String']['output'];\n slug: Scalars['String']['output'];\n};\n\nexport type ProductTourStatistics = {\n __typename?: 'ProductTourStatistics';\n averageCompletionRate: Scalars['Float']['output'];\n productId: Scalars['String']['output'];\n publishedTours: Scalars['Int']['output'];\n totalCompletions: Scalars['Int']['output'];\n totalSkips: Scalars['Int']['output'];\n totalTours: Scalars['Int']['output'];\n totalViews: Scalars['Int']['output'];\n tourBreakdown: Array<TourStatSummary>;\n};\n\nexport enum ProductType {\n Accessory = 'ACCESSORY',\n Agent = 'AGENT',\n App = 'APP',\n Apparel = 'APPAREL',\n Book = 'BOOK',\n Botapp = 'BOTAPP',\n Collectible = 'COLLECTIBLE',\n Component = 'COMPONENT',\n Console = 'CONSOLE',\n Consumable = 'CONSUMABLE',\n Dashboard = 'DASHBOARD',\n Datasink = 'DATASINK',\n Equipment = 'EQUIPMENT',\n Extension = 'EXTENSION',\n Hardware = 'HARDWARE',\n Integration = 'INTEGRATION',\n Merchandise = 'MERCHANDISE',\n Node = 'NODE',\n Parser = 'PARSER',\n Plugin = 'PLUGIN',\n Template = 'TEMPLATE',\n Theme = 'THEME',\n Vibemodule = 'VIBEMODULE',\n Widget = 'WIDGET',\n Workflow = 'WORKFLOW'\n}\n\n/** Product variant for physical products (e.g., size, color combinations) */\nexport type ProductVariant = {\n __typename?: 'ProductVariant';\n /** Original price for showing discounts */\n compareAtPrice?: Maybe<Scalars['Float']['output']>;\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n /** Sort order for display */\n displayOrder: Scalars['Int']['output'];\n id: Scalars['ID']['output'];\n /** Images specific to this variant */\n imageUrls: Array<Scalars['String']['output']>;\n /** Whether this variant is available for purchase */\n isActive: Scalars['Boolean']['output'];\n /** Low stock alert threshold */\n lowStockThreshold?: Maybe<Scalars['Int']['output']>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n /** Display name for the variant (e.g., \"Large / Blue\") */\n name: Scalars['String']['output'];\n /** Variant options as JSON (e.g., {\"size\": \"L\", \"color\": \"Blue\"}) */\n options: Scalars['JSON']['output'];\n /** Override price for this variant (null = use base product price) */\n price?: Maybe<Scalars['Float']['output']>;\n /** Stock Keeping Unit for this variant */\n sku?: Maybe<Scalars['String']['output']>;\n /** Stock quantity for this specific variant */\n stockQuantity: Scalars['Int']['output'];\n storeProduct?: Maybe<StoreProduct>;\n storeProductId: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n /** Variant-specific weight */\n weight?: Maybe<Scalars['Float']['output']>;\n /** Weight unit for this variant */\n weightUnit?: Maybe<WeightUnit>;\n};\n\nexport type ProductWelcomeEmailInput = {\n /** 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. */\n appUrl?: InputMaybe<Scalars['String']['input']>;\n /** Idempotency key — same key + same input = at-most-once delivery. Recommended format: \"welcome:<productSlug>:<userId>\". */\n idempotencyKey?: InputMaybe<Scalars['String']['input']>;\n /** Organization ID for multi-tenancy / connection lookup. */\n organizationId: Scalars['ID']['input'];\n /** PlatformProduct.slug — e.g. \"vibecontrols\", \"botlit\", \"workspaces\". Falls back to the `default` template if no matching template is registered. */\n productSlug: Scalars['String']['input'];\n /** Recipient email address. */\n recipientEmail: Scalars['String']['input'];\n /** Recipient display name for the greeting line. Defaults to \"there\" if empty. First name is preferred. */\n recipientName?: InputMaybe<Scalars['String']['input']>;\n /** Optional unsubscribe URL injected into the footer. */\n unsubscribeUrl?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type PromoCode = {\n __typename?: 'PromoCode';\n applicableProductIds: Array<Scalars['ID']['output']>;\n code: Scalars['String']['output'];\n currency: Scalars['String']['output'];\n description?: Maybe<Scalars['String']['output']>;\n expiresAt?: Maybe<Scalars['DateTime']['output']>;\n id: Scalars['ID']['output'];\n isActive: Scalars['Boolean']['output'];\n maxRedemptions?: Maybe<Scalars['Int']['output']>;\n minOrderAmount?: Maybe<Scalars['Float']['output']>;\n redemptionsCount: Scalars['Int']['output'];\n startsAt?: Maybe<Scalars['DateTime']['output']>;\n storeId?: Maybe<Scalars['ID']['output']>;\n type: PromoCodeType;\n value: Scalars['Float']['output'];\n};\n\nexport enum PromoCodeType {\n AmountOff = 'AMOUNT_OFF',\n FreeTrialExtension = 'FREE_TRIAL_EXTENSION',\n PercentOff = 'PERCENT_OFF'\n}\n\nexport type PromoCodeValidationResult = {\n __typename?: 'PromoCodeValidationResult';\n discount?: Maybe<Scalars['Float']['output']>;\n promoCode?: Maybe<PromoCode>;\n reason?: Maybe<Scalars['String']['output']>;\n valid: Scalars['Boolean']['output'];\n};\n\nexport type Promotion = {\n __typename?: 'Promotion';\n applicablePlanIds: Array<Scalars['String']['output']>;\n applicableProductIds: Array<Scalars['String']['output']>;\n bonusMonths: Scalars['Int']['output'];\n createdAt: Scalars['DateTime']['output'];\n createdBy: Scalars['String']['output'];\n currentRedemptions: Scalars['Int']['output'];\n description?: Maybe<Scalars['String']['output']>;\n expiresAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n isActive: Scalars['Boolean']['output'];\n maxRedemptions?: Maybe<Scalars['Int']['output']>;\n name: Scalars['String']['output'];\n startsAt: Scalars['DateTime']['output'];\n updatedAt: Scalars['DateTime']['output'];\n};\n\n/** Input for provisioning a dedicated tenant */\nexport type ProvisionDedicatedTenantInput = {\n customDomain?: InputMaybe<Scalars['String']['input']>;\n endpoint?: InputMaybe<Scalars['String']['input']>;\n region?: InputMaybe<Scalars['String']['input']>;\n tenantId: Scalars['ID']['input'];\n};\n\nexport type ProvisionFreeTierForWorkspaceResult = {\n __typename?: 'ProvisionFreeTierForWorkspaceResult';\n /** Number of WORKSPACE-scoped quota rows assigned to the workspace in this call. */\n assignedQuotas: Scalars['Int']['output'];\n /** Whether a billing account exists (or was lazily created) for the org. */\n hasBillingAccount: Scalars['Boolean']['output'];\n /** Product IDs the assigned quotas belong to. */\n productIds: Array<Scalars['String']['output']>;\n};\n\n/** Response for createUserTenantStructure mutation */\nexport enum ProvisioningStatus {\n Ok = 'OK',\n PartialFailure = 'PARTIAL_FAILURE'\n}\n\nexport type PseudoLocaleOptionsInput = {\n accents?: InputMaybe<Scalars['Boolean']['input']>;\n brackets?: InputMaybe<Scalars['Boolean']['input']>;\n expansion?: InputMaybe<Scalars['Boolean']['input']>;\n expansionFactor?: InputMaybe<Scalars['Float']['input']>;\n mirror?: InputMaybe<Scalars['Boolean']['input']>;\n preserveHtml?: InputMaybe<Scalars['Boolean']['input']>;\n preservePlaceholders?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type PseudoLocaleResult = {\n __typename?: 'PseudoLocaleResult';\n errors: Array<Scalars['String']['output']>;\n keysProcessed: Scalars['Int']['output'];\n locale: Scalars['String']['output'];\n translationsCreated: Scalars['Int']['output'];\n};\n\nexport type PseudoLocaleStats = {\n __typename?: 'PseudoLocaleStats';\n coverage: Scalars['Float']['output'];\n pseudoTranslations: Scalars['Int']['output'];\n totalKeys: Scalars['Int']['output'];\n};\n\n/** An interview round as shown to a candidate on a public careers page. */\nexport type PublicInterviewRoundConfig = {\n __typename?: 'PublicInterviewRoundConfig';\n description?: Maybe<Scalars['String']['output']>;\n isRequired: Scalars['Boolean']['output'];\n name: Scalars['String']['output'];\n roundNumber: Scalars['Int']['output'];\n roundType: InterviewRoundType;\n};\n\n/** A job posting as shown on a public careers page (OPEN postings only). */\nexport type PublicJobPosting = {\n __typename?: 'PublicJobPosting';\n department?: Maybe<Scalars['String']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n employmentType?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n learnings: Array<Scalars['String']['output']>;\n location?: Maybe<Scalars['String']['output']>;\n openings: Scalars['Int']['output'];\n overview?: Maybe<Scalars['String']['output']>;\n qualifications: Array<Scalars['String']['output']>;\n responsibilities: Array<Scalars['String']['output']>;\n rounds: Array<PublicInterviewRoundConfig>;\n slug: Scalars['String']['output'];\n title: Scalars['String']['output'];\n};\n\nexport type PublicKeyChallengeResult = {\n __typename?: 'PublicKeyChallengeResult';\n challenge: Scalars['String']['output'];\n expiresAt: Scalars['DateTime']['output'];\n};\n\nexport type PublicKeyInfo = {\n __typename?: 'PublicKeyInfo';\n createdAt: Scalars['DateTime']['output'];\n fingerprint: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n keyType: Scalars['String']['output'];\n name?: Maybe<Scalars['String']['output']>;\n};\n\nexport type PublicKeyRegistrationResult = {\n __typename?: 'PublicKeyRegistrationResult';\n fingerprint: Scalars['String']['output'];\n keyId: Scalars['ID']['output'];\n};\n\nexport type Publisher = {\n __typename?: 'Publisher';\n bio?: Maybe<Scalars['String']['output']>;\n contactEmail?: Maybe<Scalars['String']['output']>;\n contactPhone?: Maybe<Scalars['String']['output']>;\n context?: Maybe<Scalars['JSON']['output']>;\n country?: Maybe<Scalars['String']['output']>;\n createdAt: Scalars['DateTime']['output'];\n /** The devportal developer organization that owns this publisher profile. Resolved via federation from global-devportal-svc. */\n developerOrganization?: Maybe<DeveloperOrganization>;\n email: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n isVerified: Scalars['Boolean']['output'];\n legalName?: Maybe<Scalars['String']['output']>;\n logoUrl?: Maybe<Scalars['String']['output']>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n name: Scalars['String']['output'];\n /** Opaque ID of the linked devportal DeveloperOrganization (if any). */\n organizationId?: Maybe<Scalars['ID']['output']>;\n productCount: Scalars['Int']['output'];\n products: Array<StoreProduct>;\n rejectionReason?: Maybe<Scalars['String']['output']>;\n supportUrl?: Maybe<Scalars['String']['output']>;\n suspensionReason?: Maybe<Scalars['String']['output']>;\n taxId?: Maybe<Scalars['String']['output']>;\n tier: PublisherTier;\n totalEarnings: Scalars['Float']['output'];\n totalSales: Scalars['Int']['output'];\n updatedAt: Scalars['DateTime']['output'];\n userId: Scalars['String']['output'];\n verificationReviewedAt?: Maybe<Scalars['DateTime']['output']>;\n verificationReviewedBy?: Maybe<Scalars['String']['output']>;\n verificationStatus: PublisherVerificationStatus;\n verificationSubmittedAt?: Maybe<Scalars['DateTime']['output']>;\n websiteUrl?: Maybe<Scalars['String']['output']>;\n};\n\n/** 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. */\nexport type PublisherEarningsStatus = {\n __typename?: 'PublisherEarningsStatus';\n availableAmount: Scalars['Float']['output'];\n billingAccountId: Scalars['ID']['output'];\n paidAmount: Scalars['Float']['output'];\n paidCount: Scalars['Int']['output'];\n pendingAmount: Scalars['Float']['output'];\n pendingPayoutCount: Scalars['Int']['output'];\n reservedAmount: Scalars['Float']['output'];\n totalLifetimeAmount: Scalars['Float']['output'];\n};\n\nexport type PublisherPayoutMethod = {\n __typename?: 'PublisherPayoutMethod';\n createdAt: Scalars['DateTime']['output'];\n externalAccountId?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n isDefault: Scalars['Boolean']['output'];\n publisherId: Scalars['ID']['output'];\n status: Scalars['String']['output'];\n type: PayoutMethodType;\n verifiedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport enum PublisherTier {\n Enterprise = 'ENTERPRISE',\n Individual = 'INDIVIDUAL',\n Organization = 'ORGANIZATION'\n}\n\nexport type PublisherVerificationDocumentInput = {\n description?: InputMaybe<Scalars['String']['input']>;\n filesSvcId: Scalars['ID']['input'];\n type: Scalars['String']['input'];\n};\n\nexport enum PublisherVerificationStatus {\n PendingVerification = 'PENDING_VERIFICATION',\n Rejected = 'REJECTED',\n Suspended = 'SUSPENDED',\n Unverified = 'UNVERIFIED',\n Verified = 'VERIFIED'\n}\n\n/** Type of purchase for payment initiation */\nexport enum PurchaseType {\n Addon = 'ADDON',\n Credits = 'CREDITS',\n Order = 'ORDER',\n Plan = 'PLAN'\n}\n\n/** Outcome for a single device in a push fan-out. */\nexport type PushDeviceDeliveryResult = {\n __typename?: 'PushDeviceDeliveryResult';\n /** Channel connection actually used. Null when routing refused to select one — the service never substitutes a different project's connection. */\n connectionId?: Maybe<Scalars['ID']['output']>;\n /** 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. */\n deactivated: Scalars['Boolean']['output'];\n /** Stable per-install device id. */\n deviceId: Scalars['String']['output'];\n /** Failure details when `success` is false. */\n error?: Maybe<ChannelDeliveryError>;\n /** Firebase project the device's token belongs to. */\n fcmProject?: Maybe<Scalars['String']['output']>;\n /** Provider message id when the send succeeded. */\n messageId?: Maybe<Scalars['ID']['output']>;\n /** Device platform, or null when the registry row could not be validated. */\n platform?: Maybe<PushDevicePlatform>;\n /** Device registry row id. Null when the registry row was rejected as malformed. */\n registryId?: Maybe<Scalars['ID']['output']>;\n /** Whether the notification reached this device. */\n success: Scalars['Boolean']['output'];\n};\n\n/** Device platform as recorded in the device registry. */\nexport enum PushDevicePlatform {\n Android = 'ANDROID',\n Ios = 'IOS',\n Web = 'WEB'\n}\n\nexport type PushMfaChallengeResult = {\n __typename?: 'PushMFAChallengeResult';\n challengeId: Scalars['ID']['output'];\n expiresAt: Scalars['DateTime']['output'];\n message: Scalars['String']['output'];\n};\n\nexport type PushMfaStatus = {\n __typename?: 'PushMFAStatus';\n approved?: Maybe<Scalars['Boolean']['output']>;\n challengeId: Scalars['ID']['output'];\n status: Scalars['String']['output'];\n};\n\n/** Root query type */\nexport type Query = {\n __typename?: 'Query';\n /** Placeholder field so the Query type can be extended. @shareable because every subgraph declares it. */\n _empty?: Maybe<Scalars['String']['output']>;\n /** Health check for the service @rbac(public: true, scopeType: \"global\") */\n _health: Scalars['String']['output'];\n _newsletterSubscriptionsPlaceholder?: Maybe<Scalars['String']['output']>;\n /** Placeholder so the Query type exists for the domain files to extend. @shareable because every subgraph declares one. */\n _privacyHealth?: Maybe<Scalars['String']['output']>;\n /** Get action definitions for a resource type */\n actionDefinitions: Array<ActionDefinition>;\n /** 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. */\n activeSchedules: Array<TourSchedule>;\n /** 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. */\n activeSessions: SessionConnection;\n /** 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. */\n activityCount: Scalars['Int']['output'];\n activityLog?: Maybe<ActivityLog>;\n activityLogs: ActivityLogConnection;\n /** Get permission overrides for an actor in a scope */\n actorPermissionOverrides: Array<PermissionOverride>;\n /** Get full RBAC summary for a specific actor */\n actorRbacSummary: ActorRbacSummary;\n /** Get role assignments for an actor in a scope */\n actorRoleAssignments: Array<ActorRoleAssignment>;\n /** List actors with RBAC context in a scope */\n actors: Array<ActorRbacSummary>;\n adminAffiliateAnalytics: AffiliateAdminAnalytics;\n adminPayoutRequests: PayoutRequestConnection;\n adminPayoutSummary: PayoutAdminSummary;\n affiliateCode?: Maybe<AffiliateCode>;\n affiliateCodeAnalytics: AffiliateCodeAnalytics;\n affiliateJourneyEvents: Array<AffiliateJourneyEvent>;\n affiliateJourneys: AffiliateJourneyConnection;\n agentAvailability: AgentAvailability;\n agentLeaderboard: AgentLeaderboard;\n agentPerformance: AgentPerformance;\n agentProfile?: Maybe<AgentProfile>;\n agentProfileByUserId?: Maybe<AgentProfile>;\n agentProfiles: AgentProfileConnection;\n /** Active per-model LLM token prices (USD per 1M tokens) used for AI-credit weighting. */\n aiModelPrices: Array<AiModelPrice>;\n /** 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. */\n allOrganizations: OrganizationList;\n /** 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. */\n allWorkspaces: WorkspaceList;\n app?: Maybe<App>;\n /** List API keys for a specific app */\n appApiKeys: ApiKeyConnection;\n /** Get a collection by ID */\n appCollection?: Maybe<AppCollection>;\n /** Get a collection by slug */\n appCollectionBySlug?: Maybe<AppCollection>;\n /** List app collections */\n appCollections: AppCollectionConnection;\n /** Get an installation by ID */\n appInstallation?: Maybe<AppInstallation>;\n /** List installations for an application */\n appInstallations: AppInstallationConnection;\n /** Get the license configuration for an application */\n appLicense?: Maybe<AppLicense>;\n /** Get a review by ID */\n appReview?: Maybe<AppReview>;\n /** Get review summary for an application */\n appReviewSummary: ReviewSummary;\n /** List reviews for an application */\n appReviews: AppReviewConnection;\n /** List all ACTIVE workspace authorizations for an app. */\n appWorkspaceAuthorizations: Array<AppWorkspaceAuthorization>;\n application?: Maybe<Application>;\n applicationAnalytics: Array<ApplicationAnalytics>;\n applications: ApplicationConnection;\n applicationsWithPendingVersions: ApplicationConnection;\n /** Internal: get all approved waitlist entries for an email. Used by tenant-svc for product access checks. */\n approvedWaitlistProducts: Array<NewsletterWaitlist>;\n appsActingAsCurrentUser: AppConnection;\n auditLogs: AuditLogConnection;\n /** List auth audit events visible to the current user. Resolver filters by actorId/userId — membership IS the access list. */\n authAuditLogs: AuthAuditLogConnection;\n authMethodConfig?: Maybe<AuthMethodConfig>;\n authStrategiesHealth: Array<AuthStrategyHealth>;\n automationSteps: Array<AutomationStep>;\n automationSubscribers: Array<AutomationSubscriber>;\n availableAgents: Array<AgentProfile>;\n availableAuthMethods: Array<AuthMethod>;\n /** 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. */\n availableFeaturePreviews: Array<FeatureFlag>;\n bounceStats: BounceStats;\n /** 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 } } } } ``` */\n browseStore: BrowseStoreResult;\n /** Calculate tax for a purchase (preview without creating payment) Used by checkout to show tax breakdown before payment */\n calculateTax: TaxCalculationResult;\n campaign?: Maybe<NewsletterCampaign>;\n campaignBounces: Array<NewsletterBounce>;\n campaignComplaints: Array<NewsletterComplaint>;\n campaigns: Array<NewsletterCampaign>;\n cannedResponse?: Maybe<CannedResponse>;\n cannedResponseByShortcut?: Maybe<CannedResponse>;\n cannedResponses: CannedResponseConnection;\n /** Get a cart by ID (admin or owner only) */\n cart?: Maybe<Cart>;\n /** Get available shipping options for the current cart (caller's own cart) */\n cartShippingOptions: Array<ShippingMethod>;\n categories: Array<ProductCategory>;\n category?: Maybe<ProductCategory>;\n categoryBySlug?: Maybe<ProductCategory>;\n /** Look up a previously-created channel export job by id. */\n channelExportJob?: Maybe<ChannelExportJob>;\n /** Check channel health */\n checkChannelHealth: ChannelHealthCheck;\n checkEntitlement?: Maybe<ProductEntitlement>;\n /** Check if an actor has permission to perform an action */\n checkPermission: PermissionCheckResult;\n /** Check multiple permissions at once (max 50) */\n checkPermissions: Array<PermissionCheckResult>;\n /** Check if a plan has an entitlement for a specific store item */\n checkPlanEntitlement?: Maybe<SubscriptionEntitlement>;\n /** Check if the current user can access a specific product. Returns access status and reason. */\n checkProductAccess: ProductAccessResult;\n checkQuotaExhausted: QuotaCheckResult;\n /** Check if an actor can see a resource */\n checkVisibility: VisibilityCheckResult;\n circuitBreakerState?: Maybe<CircuitBreakerState>;\n circuitBreakerStates: Array<CircuitBreakerState>;\n circuitBreakerStatus?: Maybe<CircuitBreakerState>;\n compareVariants: VariantComparisonResult;\n complaintStats: ComplaintStats;\n /** Returns compliance-related audit events (consent changes, suppressions, bounces, complaints) for a given platform product, sorted by most recent first. */\n complianceAuditLog: Array<ComplianceAuditLogEntry>;\n complianceSettings?: Maybe<NewsletterComplianceSettings>;\n consentLedger: ConsentRecordConnection;\n consentRecord?: Maybe<ConsentRecord>;\n /** Get all contact inquiries with filtering (authenticated, for superadmins) */\n contactInquiries: ContactInquiryList;\n /** Get a single contact inquiry by ID (authenticated, for superadmins) */\n contactInquiry?: Maybe<ContactInquiry>;\n /** Get a single content page by ID */\n contentPage?: Maybe<ProductContentPage>;\n /** Get a content page by slug and optional product ID. If productId is null, returns the global default page. */\n contentPageBySlug?: Maybe<ProductContentPage>;\n /** List content pages with optional filtering by product */\n contentPages: ProductContentPageList;\n /** Convert an amount from one currency to another (uses live exchange rates) Default fromCurrency is USD */\n convertCurrency: CurrencyConversion;\n currentUser?: Maybe<User>;\n currentUserApps: AppConnection;\n currentUserDelegations: AppUserDelegationConnection;\n /** List delegations where current user granted access to apps */\n currentUserGrantedDelegations: AppUserDelegationConnection;\n /** List MFA methods configured for the current user. */\n currentUserMFAMethods: MfaMethodStatusConnection;\n customerSatisfactionSurvey?: Maybe<CustomerSatisfactionSurvey>;\n customerSatisfactionSurveys: CustomerSatisfactionSurveyConnection;\n deadLetterQueueEntries: DeadLetterQueueConnection;\n deadLetterQueueEntry?: Maybe<DeadLetterQueue>;\n defaultSLAPolicy?: Maybe<SlaPolicy>;\n /** Get developer earnings dashboard */\n developerEarnings: DeveloperEarnings;\n /** Get organization invitation by ID */\n developerOrgInvitation?: Maybe<DeveloperOrgInvitation>;\n /** Get invitation by token (for accepting) */\n developerOrgInvitationByToken?: Maybe<DeveloperOrgInvitation>;\n /** List pending invitations for an organization */\n developerOrgInvitations: DeveloperOrgInvitationConnection;\n /** Get organization member by ID */\n developerOrgMember?: Maybe<DeveloperOrgMember>;\n /** List members of an organization */\n developerOrgMembers: DeveloperOrgMemberConnection;\n /** 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. */\n developerOrgMonthlyRevenue: Array<DeveloperOrgMonthlyRevenuePoint>;\n /** Get a payment method by ID */\n developerOrgPaymentMethod?: Maybe<DeveloperOrgPaymentMethod>;\n /** List payment methods for an organization */\n developerOrgPaymentMethods: Array<DeveloperOrgPaymentMethod>;\n /** Get a payout by ID */\n developerOrgPayout?: Maybe<DeveloperOrgPayout>;\n /** List payouts for an organization */\n developerOrgPayouts: DeveloperOrgPayoutConnection;\n /** Get revenue analytics for an organization */\n developerOrgRevenueAnalytics: Array<DeveloperOrgRevenueAnalytics>;\n /** Get revenue dashboard summary */\n developerOrgRevenueSummary: RevenueSummary;\n /** Get a sale by ID */\n developerOrgSale?: Maybe<DeveloperOrgSale>;\n /** List sales for an organization */\n developerOrgSales: DeveloperOrgSaleConnection;\n /** Get a subscription by ID */\n developerOrgSubscription?: Maybe<DeveloperOrgSubscription>;\n /** List subscriptions for an organization */\n developerOrgSubscriptions: DeveloperOrgSubscriptionConnection;\n /** Get a developer organization by ID */\n developerOrganization?: Maybe<DeveloperOrganization>;\n /** Get a developer organization by slug */\n developerOrganizationBySlug?: Maybe<DeveloperOrganization>;\n /** List developer organizations with filters. Membership-scoped (Type C self list): the resolver filters by `members.some(userId: <actor>)` 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. */\n developerOrganizations: DeveloperOrganizationConnection;\n developerProfile?: Maybe<DeveloperProfile>;\n /** Look up a previously-created export job by id. */\n devportalExportJob?: Maybe<DevportalExportJob>;\n dsarRequest?: Maybe<DsarRequest>;\n dsarRequests: DsarRequestConnection;\n editorialCollections: Array<EditorialCollection>;\n effectiveConsent?: Maybe<ConsentRecord>;\n /** Get effective permissions for an actor in a scope */\n effectivePermissions: EffectivePermissions;\n entitlement?: Maybe<ProductEntitlement>;\n /** List devices currently activated against an entitlement. */\n entitlementActivations: Array<LicenseActivation>;\n entitlementSeatSummary: EntitlementSeatSummary;\n /** List seats assigned to an entitlement (enterprise). */\n entitlementSeats: Array<LicenseSeat>;\n /** Read metered usage for an entitlement. */\n entitlementUsage: Array<LicenseUsage>;\n entitlements: Array<ProductEntitlement>;\n estimateNewsletterRecipients: NewsletterRecipientEstimate;\n /** Estimate shipping for an order with a specific method */\n estimateOrderShipping: OrderShippingEstimate;\n /** 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`. */\n evaluateFeatureFlags: FeatureFlagBulkEvaluation;\n /** One conversation with its full transcript, references, CTAs and clicks. Superadmin only. */\n exploreAdminConversation?: Maybe<ExploreAdminConversation>;\n /** Explore conversations for the admin console, newest first by default. Superadmin only. */\n exploreAdminConversations: ExploreAdminConversationPage;\n /** Counts and per-product routing for the same filter. Superadmin only. */\n exploreAdminStats: ExploreAdminStats;\n /** The corpus catalog: every product and the website pages the agent can cite. */\n exploreAgentCatalog: ExploreAgentCatalog;\n /** Poll a submitted turn. Null when the job is unknown or has expired. */\n exploreAgentJob?: Maybe<ExploreAgentJob>;\n /** Products, example prompts, welcome copy and limits for the `/explore` page. Never throws — an unreachable agent yields `enabled: false`. */\n exploreCatalog: ExploreCatalog;\n /** The conversation's messages, oldest first. */\n exploreConversationMessages: Array<ExploreMessage>;\n /** Poll one message. Scoped by `conversationToken`; a token that does not own the message is reported as NOT_FOUND, never FORBIDDEN. */\n exploreMessage?: Maybe<ExploreMessage>;\n /** A shared conversation, read-only. Returns the transcript for a `shareToken` and nothing that would let the caller continue or modify the thread. */\n exploreSharedConversation: Array<ExploreMessage>;\n /** 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. */\n exportOrganizationsCsv: OrganizationCsvExport;\n exportSubscribers: Array<ExportSubscriber>;\n /** 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. */\n exportTenantsCsv: TenantExport;\n exportTranslations: TranslationsExport;\n faq?: Maybe<Faq>;\n faqs: FaqConnection;\n faqsByCategory: Array<Faq>;\n /** Get a feature flag by ID (super admin only) */\n featureFlag?: Maybe<FeatureFlag>;\n /** Get a feature flag by key (super admin only) */\n featureFlagByKey?: Maybe<FeatureFlag>;\n /** List feature flags with optional filtering (super admin only) */\n featureFlags: FeatureFlagList;\n featuredProducts: Array<StoreProduct>;\n /** Get available filter options for a given context. Useful for populating filter dropdowns in UI. */\n filterOptions: FilterOptionsResult;\n /** Get currently active promotions for a product/plan (public — used at checkout) */\n getActivePromotions: Array<Promotion>;\n /** Get active subscriptions for a billing account (optimized for dashboard) Only returns subscriptions with status = 'active' */\n getActiveSubscriptions: Array<BillingSubscription>;\n /** Get the price change history for a specific addon */\n getAddonPriceHistory: Array<AddonPriceHistory>;\n /** 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. */\n getAllAddOns: Array<Addon>;\n /** 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). */\n getAllPlans: Array<Plan>;\n getAllQuotas: Array<Quota>;\n getAllQuotasAssignment: PaginatedQuotaAssignments;\n getAllQuotasOfSub: Array<QuotaAssignment>;\n getAllRecurringBillingPlans: Array<RecurringBillingPlan>;\n /** List all tag assignments for an Application. */\n getApplicationTags: Array<ApplicationTagAssignment>;\n /** Get available tags and resource types for filtering */\n getAvailableTagsAndResourceTypes: TagsAndResourceTypes;\n /** Get a billing account by ID */\n getBillingAccount?: Maybe<BillingAccount>;\n getBillingAccountCreditTransactions: PaginatedCreditTransactions;\n /** 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. */\n getBillingAccountQuotasSummary: BillingAccountQuotasSummary;\n /** Get all billing accounts for the current org (from context) */\n getBillingAccountsByOrg: Array<BillingAccount>;\n /** Get billing address for a billing account */\n getBillingAddress?: Maybe<BillingAddress>;\n /** Get billing notifications for the current org (from context) */\n getBillingNotifications: Array<BillingNotification>;\n /** Get a billing order by ID */\n getBillingOrder?: Maybe<BillingOrder>;\n /** 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. */\n getBillingOrderCallbacks: BillingOrderCallbacksPage;\n /** Paginated, filterable view of ALL BillingWebhookLog rows (not just payment-succeeded refund candidates) — the admin ops log/alert viewer for Stripe/Razorpay webhook processing. */\n getBillingWebhookLogs: BillingWebhookLogsPage;\n /** Get a channel by ID */\n getChannel?: Maybe<Channel>;\n getChannelConnectionTags: Array<ChannelConnectionTagAssignment>;\n /** 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. */\n getChannelDeliveryAttempts: DeliveryAttemptList;\n /** Get organization-level channel settings. Returns defaults when no settings have been saved yet. */\n getChannelOrgSettings: ChannelOrgSettings;\n /** Get channel statistics */\n getChannelStats: ChannelStats;\n getChannelTags: Array<ChannelTagAssignment>;\n /** Get recent webhook events for a channel. Supports cursor pagination — pass `cursor` from the previous page's `nextCursor`. */\n getChannelWebhookEvents: WebhookEventList;\n /** Get all channels with optional filtering */\n getChannels: ChannelList;\n /** Get channels by organization ID */\n getChannelsByOrganization: ChannelList;\n /** Get channels by platform */\n getChannelsByPlatform: ChannelList;\n /** 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. */\n getChannelsForFailover: Array<Channel>;\n /** Get a charge by ID */\n getCharge?: Maybe<Charge>;\n /** Get all charges for the current org (from context), optionally filtered by status */\n getCharges: Array<Charge>;\n /** Get a connection by ID NOTE: Credentials are never returned in queries */\n getConnection?: Maybe<ChannelConnection>;\n /** Get connection by channel ID */\n getConnectionByChannel?: Maybe<ChannelConnection>;\n /** Get connection status summary */\n getConnectionStatus: ConnectionStatus;\n /** Get all connections for an organization. Supports cursor pagination — pass `cursor` from the previous page's `nextCursor`. */\n getConnectionsByOrganization: ChannelConnectionList;\n getCostOfCredits: CreditCost;\n /** Get a coupon by ID */\n getCoupon?: Maybe<Coupon>;\n /** Get a coupon by code */\n getCouponByCode?: Maybe<Coupon>;\n /** Get coupon usage history */\n getCouponUsageHistory: CouponUsageListResponse;\n /** Get credit balance broken down by type (purchased, earned, granted, withdrawable). Computed from the transaction ledger — use this for withdrawal eligibility checks. */\n getCreditBalanceByType: CreditBalanceByType;\n /** Get credit notes for the current org (from context) */\n getCreditNotes: Array<CreditNote>;\n getCreditTransactionDetails: CreditTransaction;\n /** Get the default/first billing account for the current org (from context) */\n getDefaultBillingAccount?: Maybe<BillingAccount>;\n /** 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. */\n getDefaultBillingAccountByOrgId?: Maybe<BillingAccount>;\n /** Get the default payment method for a billing account */\n getDefaultPaymentMethod?: Maybe<PaymentMethod>;\n /** Get delivery attempt by ID */\n getDeliveryAttempt?: Maybe<MessageDeliveryAttempt>;\n /** Get delivery statistics for a channel */\n getDeliveryStats: DeliveryStats;\n /** Get a discount by ID */\n getDiscount?: Maybe<BillingDiscount>;\n /** Get a discount by code */\n getDiscountByCode?: Maybe<BillingDiscount>;\n /** Get all discounts */\n getDiscounts: Array<BillingDiscount>;\n /** Get a specific entitlement by ID */\n getEntitlement?: Maybe<SubscriptionEntitlement>;\n /** 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. */\n getExternalOIDCConfig?: Maybe<ExternalOidcConfiguration>;\n /** Get billing orders with failed callbacks (admin only) Useful for monitoring and manual retry */\n getFailedBillingOrderCallbacks: FailedBillingOrderCallbacksResponse;\n /** Get failed delivery attempts for retry. Supports cursor pagination — pass `cursor` from the previous page's `nextCursor`. */\n getFailedDeliveryAttempts: DeliveryAttemptList;\n /** Get failed webhook events for retry. Supports cursor pagination — pass `cursor` from the previous page's `nextCursor`. */\n getFailedWebhookEvents: WebhookEventList;\n /** Get an invoice by ID */\n getInvoice?: Maybe<Invoice>;\n /** Get an invoice by number */\n getInvoiceByNumber?: Maybe<Invoice>;\n /** Get all invoices for the current org (from context), optionally filtered by status and billing account */\n getInvoices: Array<Invoice>;\n /** Get all entitlements for a specific store item */\n getItemEntitlements: Array<SubscriptionEntitlement>;\n /** Get user's referral code (creates one if doesn't exist) */\n getMyReferralCode: ReferralCode;\n /** Get OAuth authorization URL for a platform */\n getOAuthAuthorizationUrl: OAuthAuthorizationUrl;\n /** Get OIDC provider configuration (discovery endpoint) */\n getOIDCConfig?: Maybe<OidcConfig>;\n /** Get paginated invoices for the current org (from context), optionally filtered by status and billing account */\n getPaginatedInvoices: PaginatedInvoices;\n /** Get paginated subscriptions for a billing account */\n getPaginatedSubscriptions: PaginatedSubscriptions;\n /** Get a payment by ID */\n getPayment?: Maybe<Payment>;\n /** Get payment failures for the current org (from context) */\n getPaymentFailures: Array<PaymentFailure>;\n /** Get payment methods for a billing account */\n getPaymentMethods: Array<PaymentMethod>;\n /** Get payment provider configuration for frontend integration Returns public keys only (safe to expose to client) */\n getPaymentProviderConfig: PaymentProviderConfig;\n /** Get all payments for the current org (from context), optionally filtered by status */\n getPayments: Array<Payment>;\n /** Get pending refund records (shortcut for admin dashboard) */\n getPendingRefunds: PaginatedRefundRecords;\n /** 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\". */\n getPlan: Plan;\n /** Get all entitlements for a specific plan */\n getPlanEntitlements: Array<SubscriptionEntitlement>;\n /** Get the price change history for a specific plan */\n getPlanPriceHistory: Array<PlanPriceHistory>;\n /** Get a promotion by ID */\n getPromotion?: Maybe<Promotion>;\n /** Get usage analytics for a specific quota assignment */\n getQuotaAnalytics: QuotaUsageAnalytics;\n /** Enhanced quota assignment query with analytics, pagination and filtering */\n getQuotaAssignmentsWithAnalytics: PaginatedQuotaAssignmentsWithAnalytics;\n getQuotaUsageAndLimit: QuotaUsageAndLimit;\n getQuotaUsageDetails?: Maybe<PaginatedUsages>;\n getRecurringBillingPlan?: Maybe<RecurringBillingPlan>;\n getRecurringBillingPlansByType: Array<RecurringBillingPlan>;\n /** Get referral code by code */\n getReferralCodeByCode?: Maybe<ReferralCode>;\n /** Get a single refund record by ID */\n getRefundRecord?: Maybe<RefundRecord>;\n /** 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. */\n getRefundRecords: PaginatedRefundRecords;\n /** Get refund statistics (counts and amounts) */\n getRefundStats: RefundStats;\n /** 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. */\n getSSOConfig?: Maybe<SsoConfig>;\n /** Get specific addons by ID. Organization-scoped — see getAllAddOns. */\n getSelectedAddons: Array<Addon>;\n /** 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. */\n getStorageLimitForOrg: StorageLimit;\n /** Get a single store order by ID (verifies ownership or admin access) */\n getStoreOrder?: Maybe<StoreOrder>;\n /** Get all orders for a billing account */\n getStoreOrdersByBillingAccount: Array<StoreOrder>;\n /** Get all orders for a user (admin only) */\n getStoreOrdersByUser: Array<StoreOrder>;\n /** Get tag assignments for a store product */\n getStoreProductTags: Array<StoreProductTagAssignment>;\n /** Get a subscription by ID */\n getSubscription?: Maybe<BillingSubscription>;\n /** 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. */\n getSubscriptionUsageOverview?: Maybe<Array<SubscriptionWithQuotas>>;\n getSubscriptionUsages: SubscriptionQuotaUsageWithFilter;\n /** Get tax rates */\n getTaxRates: Array<TaxRate>;\n /** 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. */\n getTransaction?: Maybe<Transaction>;\n /** Get transactions for a billing account with basic account info (paginated) */\n getTransactionsByBillingAccount: PaginatedBillingAccountTransactions;\n /** Get failed webhooks that haven't been converted to refund records yet */\n getUnprocessedFailedWebhooks: Array<BillingWebhookLog>;\n /** Get usage summary across all quota assignments */\n getUsageDashboard: UsageDashboard;\n /** Get a user platform connection by ID */\n getUserPlatformConnection?: Maybe<UserPlatformConnection>;\n /** Get a user platform connection by external user ID + channel ID */\n getUserPlatformConnectionByExternalId?: Maybe<UserPlatformConnection>;\n /** Get webhook event by ID */\n getWebhookEvent?: Maybe<WebhookEvent>;\n /** Get webhook statistics for a channel */\n getWebhookStats: WebhookStats;\n /** Health check endpoint */\n health: HealthStatus;\n /** Get grouped products for homepage. Optionally filter by compatible product (e.g., \"bigconsole\", \"fluidgrids\"). */\n homeGroupedProducts: GroupedStoreProducts;\n homepageSections: Array<HomepageSection>;\n i18nModule?: Maybe<I18nModule>;\n i18nModules: I18nModuleList;\n i18nNamespace?: Maybe<I18nNamespace>;\n i18nNamespaces: I18nNamespaceList;\n i18nProduct?: Maybe<I18nProduct>;\n i18nProductByName?: Maybe<I18nProduct>;\n i18nProducts: I18nProductList;\n importJob?: Maybe<ImportJob>;\n importJobs: ImportJobList;\n /** Initiate HTTP Digest auth challenge */\n initiateDigestChallenge: DigestChallengeResult;\n /** 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. */\n installableApplicationVersions: Array<ApplicationVersion>;\n installationPermissions?: Maybe<Scalars['JSON']['output']>;\n /** Get a single interview round by ID (admin). */\n interviewRound?: Maybe<InterviewRound>;\n /** Get a single interviewer by ID (admin). */\n interviewer?: Maybe<Interviewer>;\n /** List interviewers with filtering (admin). */\n interviewers: InterviewerList;\n inventoryAdjustments: Array<InventoryAdjustment>;\n /** 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. */\n isAppAuthorizedForWorkspace: Scalars['Boolean']['output'];\n isAppInstalled?: Maybe<StoreAppInstallation>;\n isEmailSuppressed: Scalars['Boolean']['output'];\n /** 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. */\n isSSOEnabled: Scalars['Boolean']['output'];\n isSuppressed: SuppressionCheckResult;\n /** Get a single job application by ID (admin). */\n jobApplication?: Maybe<JobApplication>;\n /** Get all interview rounds for a job application (admin). */\n jobApplicationInterviewRounds: Array<InterviewRound>;\n /** 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. */\n jobApplicationResumePreviewUrl: Scalars['String']['output'];\n /** Get a short-lived presigned download URL for an application's resume (admin). The resume bucket is private; this is the only read path. */\n jobApplicationResumeUrl: Scalars['String']['output'];\n /** List job applications with filtering (admin). */\n jobApplications: JobApplicationList;\n /** List take-home assignments with filtering (admin). */\n jobAssignments: JobAssignmentList;\n jobExecution?: Maybe<JobExecution>;\n jobExecutions: JobExecutionConnection;\n /** Get a single job posting by ID (admin). */\n jobPosting?: Maybe<JobPosting>;\n /** List job postings with filtering (admin). */\n jobPostings: JobPostingList;\n /** Get a single keyboard shortcut by ID */\n keyboardShortcut?: Maybe<KeyboardShortcut>;\n /** Get all keyboard shortcuts with optional filtering */\n keyboardShortcuts: KeyboardShortcutList;\n knowledgeBaseArticle?: Maybe<KnowledgeBaseArticle>;\n knowledgeBaseArticleBySlug?: Maybe<KnowledgeBaseArticle>;\n knowledgeBaseArticles: KnowledgeBaseArticleConnection;\n language?: Maybe<Language>;\n languageByCode?: Maybe<Language>;\n languages: LanguageList;\n legalHolds: LegalHoldConnection;\n /** List coupons with optional filters */\n listCoupons: CouponsListResponse;\n /** List all promotions (admin only) */\n listPromotions: Array<Promotion>;\n /** List all referral codes (admin) */\n listReferralCodes: ReferralCodesListResponse;\n /** List cross-layer sync outbox entries (failures, in-flight retries, etc.). */\n listSyncOutboxEntries: SyncOutboxEntryList;\n /** List all platform connections for a channel. Supports cursor pagination — pass `cursor` from the previous page's `nextCursor`. */\n listUserPlatformConnectionsByChannel: UserPlatformConnectionList;\n /** List all platform connections for an organization. Supports cursor pagination — pass `cursor` from the previous page's `nextCursor`. */\n listUserPlatformConnectionsByOrganization: UserPlatformConnectionList;\n /** List all platform connections for a given internal user. Supports cursor pagination — pass `cursor` from the previous page's `nextCursor`. */\n listUserPlatformConnectionsByUser: UserPlatformConnectionList;\n /** 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. */\n listUserShippingAddresses: Array<ShippingAddress>;\n lookupAffiliateCode?: Maybe<AffiliateCodeLookup>;\n lowStockProducts: Array<LowStockProduct>;\n /** Returns products the current user can access based on their actor type, email domain, and waitlist approval status. Used by app shells for nav. */\n myAccessibleProducts: PlatformProductList;\n myActivityLogs: ActivityLogConnection;\n myAffiliateCodes: AffiliateCodeConnection;\n myAgentProfile?: Maybe<AgentProfile>;\n /** List API keys for current user's apps */\n myApiKeys: ApiKeyConnection;\n /** Get my installations */\n myAppInstallations: AppInstallationConnection;\n /** Get my review for an application */\n myAppReview?: Maybe<AppReview>;\n /** 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. */\n myAuthorizedWorkspaces: WorkspaceRoutingList;\n /** Get all billing accounts created by the current actor. Used by the devportal (global layer) where org context is not available in headers. */\n myBillingAccounts: Array<BillingAccount>;\n /** Get the current user's active cart */\n myCart?: Maybe<Cart>;\n /** 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. */\n myContactInquiries: ContactInquiryList;\n /** 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). */\n myDashboardPreferences?: Maybe<Scalars['JSON']['output']>;\n /** Get my developer organizations (where I'm a member) */\n myDeveloperOrganizations: Array<DeveloperOrganization>;\n myDeveloperProfile?: Maybe<DeveloperProfile>;\n myDownloads: Array<ProductDownload>;\n myEarningsEntries: EarningsEntryConnection;\n myEarningsSummary: EarningsSummary;\n myEntitlements: Array<ProductEntitlement>;\n /** Get notification counts grouped by app name for authenticated user */\n myNotificationCountsByApp: Scalars['JSON']['output'];\n /** Get notification counts by channel for authenticated user */\n myNotificationCountsByChannel: NotificationChannelCounts;\n /** Get all orders for the authenticated user */\n myOrders: Array<StoreOrder>;\n /** 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). */\n myOrganizationInvite?: Maybe<OrganizationInvite>;\n /** 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. */\n myOrganizationInvites: OrganizationInviteList;\n /** 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. */\n myOrganizations: OrganizationList;\n /** List user's registered passkeys */\n myPasskeys: Array<PasskeyInfo>;\n myPayoutAccounts: Array<PayoutAccount>;\n myPayoutRequests: PayoutRequestConnection;\n /** Get my pending invitations */\n myPendingInvitations: Array<DeveloperOrgInvitation>;\n /** 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) */\n myPermissions: EffectivePermissions;\n /** Get the current user's full preferences record. Creates a default record if none exists. */\n myPreferences?: Maybe<UserPreference>;\n /** List user's registered public keys */\n myPublicKeys: Array<PublicKeyInfo>;\n /** Get the current user's publisher profile, or null if none exists yet. */\n myPublisher?: Maybe<Publisher>;\n /** Earnings + payout status for the calling user's publisher profile, read from billing's canonical ledger. Self-scoped: resolved from the authenticated actor. */\n myPublisherEarningsStatus?: Maybe<PublisherEarningsStatus>;\n myReviews: Array<ProductReview>;\n /** 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) */\n myRoles: MyRolesResult;\n myShippingAddresses: Array<ShippingAddress>;\n mySourcingOffer?: Maybe<SourcingOffer>;\n mySourcingOffers: Array<SourcingOffer>;\n mySourcingRequest?: Maybe<SourcingRequest>;\n mySourcingRequests: Array<SourcingRequest>;\n myStoreAppInstallations: StoreAppInstallationConnection;\n /** Stores the current user is subscribed to (auto-includes public stores). */\n mySubscribedStores: Array<Store>;\n mySupportTickets: SupportTicketConnection;\n mySurveys: CustomerSatisfactionSurveyConnection;\n /** 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) */\n myTenants: TenantList;\n /** Get unread notification count for authenticated user */\n myUnreadNotificationCount: Scalars['Int']['output'];\n /** 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. */\n myUserPlatformConnection?: Maybe<UserPlatformConnection>;\n /** 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. */\n myWaitlistStatus?: Maybe<NewsletterWaitlist>;\n /** List user's linked wallets */\n myWallets: Array<WalletInfo>;\n myWishlist: Array<UserWishlist>;\n /** 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. */\n myWorkspaces: WorkspaceList;\n newsletter?: Maybe<Newsletter>;\n newsletterAutomation?: Maybe<NewsletterAutomation>;\n newsletterAutomations: Array<NewsletterAutomation>;\n newsletterBySlug?: Maybe<Newsletter>;\n newsletterList?: Maybe<NewsletterList>;\n newsletterLists: Array<NewsletterList>;\n newsletterStats: NewsletterStats;\n newsletterTemplate?: Maybe<NewsletterTemplate>;\n newsletterTemplateVersions: Array<NewsletterTemplateVersion>;\n newsletterTemplates: Array<NewsletterTemplate>;\n newsletterVariant?: Maybe<NewsletterVariant>;\n newsletterVariants: Array<NewsletterVariant>;\n newsletters: Array<Newsletter>;\n /** Get a single notification by ID */\n notification?: Maybe<Notification>;\n /** Get notification events/history for a specific notification */\n notificationEvents: Array<NotificationEvent>;\n /** List notification history with filtering and pagination */\n notificationHistories: NotificationHistoryList;\n /** Get a single notification history entry by ID */\n notificationHistory?: Maybe<NotificationHistory>;\n /** Get a single notification preference by ID */\n notificationPreference?: Maybe<NotificationPreference>;\n /** List notification preferences with filtering and pagination */\n notificationPreferences: NotificationPreferenceList;\n /** Get notification statistics */\n notificationStats: NotificationStats;\n /** Get a notification template by slug and optional locale */\n notificationTemplate?: Maybe<NotificationTemplate>;\n /** List notification templates with filtering and pagination */\n notificationTemplates: NotificationTemplateList;\n /** Get a single notification topic by id or slug */\n notificationTopic?: Maybe<NotificationTopic>;\n /** List notification topics with filtering and pagination */\n notificationTopics: NotificationTopicList;\n /** List notifications with filtering and pagination */\n notifications: NotificationList;\n /** Get OIDC Hybrid flow configuration */\n oidcHybridConfig: OidcHybridConfig;\n openInventoryAlerts: Array<InventoryAlert>;\n openSourcingRequests: Array<SourcingOpportunity>;\n /** Get order estimate for checkout preview (operates on caller's own cart) */\n orderEstimate?: Maybe<OrderEstimate>;\n /** Get fulfillment details for an order */\n orderFulfillment?: Maybe<OrderFulfillment>;\n /** Get a single organization by ID */\n organization?: Maybe<Organization>;\n /** 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`. */\n organizationAuditLogsConnection: OrganizationAuditLogConnection;\n /** Get an organization by slug within a tenant */\n organizationBySlug?: Maybe<Organization>;\n /** Get pending invites for an organization (admin view) */\n organizationInvites: OrganizationInviteList;\n /** 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). */\n organizationKind?: Maybe<DeveloperOrgKind>;\n /** Resolve human-friendly identities for users who are active members of the target organization and visible to the current actor. */\n organizationMemberIdentities: Array<OrganizationMemberIdentity>;\n /** Get members of an organization */\n organizationMembers: OrganizationMemberList;\n /** M2M lookup for global-store-svc's shipping-cost quote pipeline: the org's dedicated pickup pincode, or null when unset (caller falls back to the linked billing account's address, then a platform-wide default). */\n organizationPickupPostalCode?: Maybe<Scalars['String']['output']>;\n organizationScheduleQuotas: OrganizationScheduleQuotas;\n payoutRunHistory: Array<PayoutRunLog>;\n pendingDeveloperOrganizationVerifications: DeveloperOrganizationConnection;\n /** Publishers awaiting verification review (admin queue). */\n pendingPublishers: Array<Publisher>;\n /** Admin queue: products awaiting review. */\n pendingReviewProducts: PaginatedProducts;\n /** Get pending scheduled notifications that are due for triggering */\n pendingScheduledNotifications: Array<ScheduledNotification>;\n pendingSurveys: CustomerSatisfactionSurveyConnection;\n /** Get permission check audit log */\n permissionAuditLog: Array<PermissionAuditLog>;\n /** 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. */\n platformProduct?: Maybe<PlatformProduct>;\n /** 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). */\n platformProductBySlug?: Maybe<PlatformProduct>;\n /** Get aggregate statistics about platform products by status */\n platformProductStats: PlatformProductStats;\n /** 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. */\n platformProducts: PlatformProductList;\n /** Get a configured OPA policy reference by ID */\n policyReference?: Maybe<PolicyReference>;\n /** Get configured OPA policy references */\n policyReferences: Array<PolicyReference>;\n popularArticles: Array<KnowledgeBaseArticle>;\n popularCannedResponses: Array<CannedResponse>;\n popularFAQs: Array<Faq>;\n /** Get a single press kit asset by ID (admin — auth required). */\n pressKitAsset?: Maybe<ProductPressKitAsset>;\n /** List press kit assets for a product (admin — auth required). */\n pressKitAssets: ProductPressKitAssetList;\n previewSchedule: SchedulePreview;\n product?: Maybe<StoreProduct>;\n /** List assets linked to a product. */\n productAssets: Array<ProductAsset>;\n productBySlug?: Maybe<StoreProduct>;\n productDownloads: Array<ProductDownload>;\n productInstallations: StoreAppInstallationConnection;\n /** Get orders for a specific store product */\n productOrders: ItemOrdersList;\n productReleases: Array<ProductRelease>;\n productReviews: Array<ProductReview>;\n /** Get shortcuts for a specific product (includes global shortcuts). Bounded by limit/offset to avoid unbounded fetches. */\n productShortcuts: Array<KeyboardShortcut>;\n /** Get product-level tour statistics */\n productTourStatistics: ProductTourStatistics;\n products: Array<StoreProduct>;\n pseudoLocaleStats: PseudoLocaleStats;\n /** Get all active addons for a specific product (public, no authentication required). Used by product website pricing pages. Only returns active addons. */\n publicAddons: Array<Addon>;\n /** Get a public content page by slug and optional product ID. Only returns pages with visibility=PUBLIC and isPublished=true. */\n publicContentPage?: Maybe<ProductContentPage>;\n /** 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. */\n publicContentPages: ProductContentPageList;\n /** Get a single OPEN job posting by slug for a public careers page (no authentication required). */\n publicJobPosting?: Maybe<PublicJobPosting>;\n /** List OPEN job postings for public careers pages (no authentication required). */\n publicJobPostings: Array<PublicJobPosting>;\n /** 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). */\n publicJobPostingsForSubmission: Array<PublicJobPosting>;\n /** 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. */\n publicPlans: Array<Plan>;\n /** List public press kit assets for a product (no auth required). Only returns assets with visibility=PUBLIC. */\n publicPressKitAssets: ProductPressKitAssetList;\n /** Get a platform product by slug (public, no auth required). Returns only ACTIVE or WAITLIST products. Does NOT expose sensitive fields like recaptchaSecretKey. */\n publicProduct?: Maybe<PlatformProduct>;\n /** Get all platform products (public, no auth required). Returns only ACTIVE or WAITLIST products (WAITLIST products are visible for waitlist signup). */\n publicProducts: PlatformProductList;\n /** Resolve a public content page for a product with template variable replacement. Only returns pages with visibility=PUBLIC and isPublished=true. */\n publicResolvedContentPage?: Maybe<ProductContentPage>;\n publicScheduleTemplates: ScheduleTemplateConnection;\n publishedProducts: Array<StoreProduct>;\n /** 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). */\n pushDevicesForUserInternal: Array<DeviceToken>;\n /** 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. */\n quoteAiCredits: Scalars['Int']['output'];\n /** Get RBAC analytics for a scope within a date range */\n rbacAnalytics: RbacAnalytics;\n /** Get RBAC configuration change history */\n rbacChangeHistory: Array<RbacChangeLog>;\n /** Get RBAC configuration for a scope */\n rbacConfig: Array<RbacConfig>;\n /** Get a specific RBAC configuration value */\n rbacConfigValue?: Maybe<RbacConfig>;\n recentArticles: Array<KnowledgeBaseArticle>;\n releaseAuditEvents: Array<ProductReleaseAuditEvent>;\n releaseTracks: Array<ReleaseTrack>;\n /** 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. */\n resolvedContentPage?: Maybe<ProductContentPage>;\n /** Get a specific registered resource by ID */\n resource?: Maybe<Resource>;\n /** Get the resource tree (hierarchy) for a scope */\n resourceTree: Array<Resource>;\n /** 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). */\n resourceTypes: Array<Scalars['String']['output']>;\n /** 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\"). */\n resourceTypesWithProducts: Array<ResourceTypeProductInfo>;\n /** Get registered resources with custom RBAC configurations. */\n resources: Array<Resource>;\n review?: Maybe<ProductReview>;\n reviewReplies: Array<ProductReviewReply>;\n /** Get a role by ID */\n role?: Maybe<Role>;\n /** Get actors assigned to a role */\n roleMembers: Array<ActorRoleAssignment>;\n /** List roles in a scope */\n roles: Array<Role>;\n satisfactionMetrics: SatisfactionMetrics;\n scheduleTemplate?: Maybe<ScheduleTemplate>;\n scheduleTemplates: ScheduleTemplateConnection;\n scheduleVersionHistory: Array<ScheduleVersion>;\n scheduledJob?: Maybe<ScheduledJob>;\n scheduledJobs: ScheduledJobConnection;\n /** Get a single scheduled notification by ID */\n scheduledNotification?: Maybe<ScheduledNotification>;\n /** List scheduled notifications with filtering and pagination */\n scheduledNotifications: ScheduledNotificationList;\n schedulerMetrics: SchedulerMetrics;\n schedulerPrometheusMetrics: Scalars['String']['output'];\n /** List SCIM bearer tokens minted for a workspace (metadata only). */\n scimTokens: Array<ScimTokenSummary>;\n searchCannedResponses: Array<CannedResponse>;\n /** Search channels by name */\n searchChannels: Array<Channel>;\n searchFAQs: Array<Faq>;\n searchKnowledgeBase: Array<KnowledgeBaseArticle>;\n searchProducts: Array<StoreProduct>;\n /** Get search suggestions for autocomplete. Returns suggestions from product names, tags, categories, and authors. Uses trigram matching for fuzzy search. */\n searchSuggestions: Array<SearchSuggestion>;\n searchTicketTemplates: Array<TicketTemplate>;\n searchTickets: Array<SupportTicket>;\n /** Read the earnings summary + payout-request status counts for a billing account (optionally a single owner). Service/super_admin only — internal gateway. */\n serviceEarningsStatus: ServicePayoutStatus;\n /** Fetch a publicly-shared WORKFLOW app by application ID. No authentication required — works for anyone with the link. */\n sharedWorkflow?: Maybe<SharedWorkflow>;\n shippingMethods: Array<ShippingMethod>;\n shippingZones: Array<ShippingZone>;\n /** Get all shortcut categories */\n shortcutCategories: Array<Scalars['String']['output']>;\n slaPolicies: SlaPolicyConnection;\n slaPolicy?: Maybe<SlaPolicy>;\n slaReport: SlaReport;\n sourcingOpportunity?: Maybe<SourcingOpportunity>;\n /** Fetch a store by id or slug. */\n store?: Maybe<Store>;\n storeAppInstallation?: Maybe<StoreAppInstallation>;\n /** 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 } } ``` */\n storeProductDetails: StoreProductDetailsResult;\n /** List all stores the caller can see. */\n stores: Array<Store>;\n subprocessor?: Maybe<Subprocessor>;\n subprocessors: SubprocessorConnection;\n subscriber?: Maybe<NewsletterSubscriber>;\n subscriberByEmail?: Maybe<NewsletterSubscriber>;\n subscriberConsents: Array<NewsletterConsent>;\n subscriberCount: Scalars['Int']['output'];\n subscribers: Array<NewsletterSubscriber>;\n supportAnalytics: SupportAnalytics;\n supportAttachment: SupportAttachmentFile;\n supportMessage?: Maybe<SupportMessage>;\n supportMessages: Array<SupportMessage>;\n supportStats: SupportStats;\n supportTicket?: Maybe<SupportTicket>;\n supportTicketByNumber?: Maybe<SupportTicket>;\n supportTickets: SupportTicketConnection;\n suppressionEntry?: Maybe<SuppressionEntry>;\n suppressionList: SuppressionEntryConnection;\n suppressions: Array<NewsletterSuppression>;\n surveyByTicket?: Maybe<CustomerSatisfactionSurvey>;\n /** Fetch one outbox entry by id (includes the full payload for inspection). */\n syncOutboxEntry?: Maybe<SyncOutboxEntry>;\n /** Aggregate counts for the outbox, used by the admin dashboard tile. */\n syncOutboxStats: SyncOutboxStats;\n tag?: Maybe<ProductTag>;\n tagBySlug?: Maybe<ProductTag>;\n tags: Array<ProductTag>;\n /** Get a single tenant by ID */\n tenant?: Maybe<Tenant>;\n /** Get a tenant by slug */\n tenantBySlug?: Maybe<Tenant>;\n /** 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) */\n tenantMembers: TenantMemberList;\n /** Get tenant routing info by ID. Lightweight query for gateway routing decisions. Returns type (SHARED/DEDICATED), endpoint, and status. */\n tenantRoutingInfo?: Maybe<TenantRoutingInfo>;\n /** List all tenants with optional filtering and pagination */\n tenants: TenantList;\n /** Test a connection's health */\n testConnection: ConnectionTestResult;\n ticketCategories: TicketCategoryConnection;\n ticketCategory?: Maybe<TicketCategory>;\n ticketCategoryBySlug?: Maybe<TicketCategory>;\n ticketSLAStatus?: Maybe<SlaStatus>;\n ticketTemplate?: Maybe<TicketTemplate>;\n ticketTemplates: TicketTemplateConnection;\n ticketTemplatesByCategory: Array<TicketTemplate>;\n ticketTrends: Array<TicketTrend>;\n tokenInfo?: Maybe<TokenValidationResponse>;\n topCharts: Array<ProductChartSnapshot>;\n /** Get a single tour by ID */\n tour?: Maybe<Tour>;\n /** Get analytics for a tour */\n tourAnalytics: TourAnalyticsAggregation;\n /** Get a tour by its unique slug */\n tourBySlug?: Maybe<Tour>;\n /** Get all tour media */\n tourMedia: Array<TourMedia>;\n /** Get a tour schedule by ID */\n tourSchedule?: Maybe<TourSchedule>;\n /** 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. */\n tourSchedules: Array<TourSchedule>;\n /** Get step-level analytics for a tour */\n tourStepAnalytics: Array<TourStepAnalytics>;\n /** Get a single tour template */\n tourTemplate?: Maybe<TourTemplate>;\n /** Get tour templates */\n tourTemplates: Array<TourTemplate>;\n /** Get a user's progress for a specific tour */\n tourUserProgress?: Maybe<TourUserProgress>;\n /** Get all user progress for a tour */\n tourUserProgressList: Array<TourUserProgress>;\n /** Get tours with optional filtering and pagination */\n tours: ToursResponse;\n /** 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. */\n toursForContext: Array<Tour>;\n translation?: Maybe<Translation>;\n translationAudit: TranslationAuditList;\n translationByKey?: Maybe<Translation>;\n translationCoverage: Array<TranslationCoverage>;\n translationKey?: Maybe<TranslationKey>;\n translationKeyByKey?: Maybe<TranslationKey>;\n translationKeys: TranslationKeyList;\n translationStats: Scalars['JSON']['output'];\n translations: TranslationList;\n /** Get popular/trending search terms. Useful for showing suggestions when search input is empty. */\n trendingSearches: Array<Scalars['String']['output']>;\n /** Get a user by ID (admin only) */\n user?: Maybe<User>;\n /** 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. */\n userBillingPlan: UserBillingPlan;\n /** Get total count of users (for analytics) */\n userCount: Scalars['Int']['output'];\n /** Get a user's feature flag preferences in a workspace. Bounded by limit/offset to avoid unbounded fetches. */\n userFeatureFlagPreferences: Array<UserFeatureFlagPreference>;\n userLanguagePreference?: Maybe<UserLanguagePreference>;\n /** Check if the current user has reviewed a specific product */\n userReviewForProduct?: Maybe<ProductReview>;\n /** Get all of a user's progress across tours */\n userTourProgresses: Array<TourUserProgress>;\n /** List users with filtering and pagination (admin only) */\n users: UserConnection;\n /** Batch-resolve users by ID. - service and super admins may resolve any IDs - tenant admins are tenant-scoped - regular users may only resolve themselves */\n usersByIds: Array<User>;\n /** Validate a coupon code for a specific order */\n validateCoupon: ValidateCouponResponse;\n /** Validate a license key without modifying state. Used by vibecontrols agents + wspace services to check license validity before plugin load. */\n validateLicense: LicenseValidationResult;\n validatePromoCode: PromoCodeValidationResult;\n /** 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. */\n verifyInstallation: AppInstallation;\n /** Get visibility rules for a resource */\n visibilityRules: Array<VisibilityRule>;\n waitlist: Array<NewsletterWaitlist>;\n waitlistEntry?: Maybe<NewsletterWaitlist>;\n webhook?: Maybe<Webhook>;\n webhookDeliveries: WebhookDeliveryConnection;\n webhookDelivery?: Maybe<WebhookDelivery>;\n webhooks: Array<Webhook>;\n /** Get a single workspace by ID */\n workspace?: Maybe<Workspace>;\n /** Get workspace-level analytics summary */\n workspaceAnalyticsSummary: WorkspaceTourAnalyticsSummary;\n /** Get a workspace by slug within a tenant */\n workspaceBySlug?: Maybe<Workspace>;\n /** Get workspace overrides for a specific workspace. Bounded by limit/offset to avoid unbounded fetches. */\n workspaceFeatureFlagOverrides: Array<WorkspaceFeatureFlagOverride>;\n /** Get members of a workspace */\n workspaceMembers: WorkspaceMemberList;\n /** Get public details of a workspace by ID Returns public info if actor is authorized */\n workspacePublicDetails?: Maybe<WorkspacePublicDetails>;\n /** Get workspace routing info by ID Returns workspace name, endpoint (publicUrl), region for routing purposes Requires actor to be a member of the workspace */\n workspaceRouting?: Maybe<WorkspaceRouting>;\n /** Get workspace store orders with pagination */\n workspaceStoreOrders: StoreOrdersResult;\n};\n\n\n/** Root query type */\nexport type QueryActionDefinitionsArgs = {\n resourceType: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryActiveSchedulesArgs = {\n cursor?: InputMaybe<Scalars['ID']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryActiveSessionsArgs = {\n pagination?: InputMaybe<PaginationInput>;\n};\n\n\n/** Root query type */\nexport type QueryActivityCountArgs = {\n filter?: InputMaybe<ActivityFilterInput>;\n};\n\n\n/** Root query type */\nexport type QueryActivityLogArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryActivityLogsArgs = {\n filter?: InputMaybe<ActivityFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryActorPermissionOverridesArgs = {\n actorId: Scalars['String']['input'];\n actorType?: InputMaybe<ActorType>;\n scopeId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryActorRbacSummaryArgs = {\n actorId: Scalars['String']['input'];\n actorType?: InputMaybe<ActorType>;\n scopeId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryActorRoleAssignmentsArgs = {\n actorId: Scalars['String']['input'];\n actorType?: InputMaybe<ActorType>;\n scopeId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryActorsArgs = {\n filter?: InputMaybe<ActorFilterInput>;\n pagination?: InputMaybe<PaginationInput>;\n scopeId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryAdminAffiliateAnalyticsArgs = {\n filter?: InputMaybe<AffiliateAnalyticsFilterInput>;\n};\n\n\n/** Root query type */\nexport type QueryAdminPayoutRequestsArgs = {\n filter?: InputMaybe<PayoutRequestFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryAdminPayoutSummaryArgs = {\n filter?: InputMaybe<PayoutRequestFilterInput>;\n};\n\n\n/** Root query type */\nexport type QueryAffiliateCodeArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryAffiliateCodeAnalyticsArgs = {\n filter?: InputMaybe<AffiliateAnalyticsFilterInput>;\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryAffiliateJourneyEventsArgs = {\n journeyId: Scalars['ID']['input'];\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryAffiliateJourneysArgs = {\n filter?: InputMaybe<AffiliateJourneyFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryAgentLeaderboardArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n period?: InputMaybe<TimePeriod>;\n};\n\n\n/** Root query type */\nexport type QueryAgentPerformanceArgs = {\n filter: AgentPerformanceFilterInput;\n};\n\n\n/** Root query type */\nexport type QueryAgentProfileArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryAgentProfileByUserIdArgs = {\n userId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryAgentProfilesArgs = {\n filter?: InputMaybe<AgentProfileFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryAllOrganizationsArgs = {\n filter?: InputMaybe<OrganizationFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryAllWorkspacesArgs = {\n filter?: InputMaybe<WorkspaceFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryAppArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryAppApiKeysArgs = {\n appId: Scalars['ID']['input'];\n pagination?: InputMaybe<PaginationInput>;\n};\n\n\n/** Root query type */\nexport type QueryAppCollectionArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryAppCollectionBySlugArgs = {\n slug: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryAppCollectionsArgs = {\n collectionType?: InputMaybe<Scalars['String']['input']>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n isFeatured?: InputMaybe<Scalars['Boolean']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryAppInstallationArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryAppInstallationsArgs = {\n applicationId?: InputMaybe<Scalars['ID']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n organizationId?: InputMaybe<Scalars['ID']['input']>;\n scope?: InputMaybe<InstallationScope>;\n status?: InputMaybe<InstallationStatus>;\n userId?: InputMaybe<Scalars['ID']['input']>;\n workspaceId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryAppLicenseArgs = {\n applicationId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryAppReviewArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryAppReviewSummaryArgs = {\n applicationId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryAppReviewsArgs = {\n applicationId: Scalars['ID']['input'];\n isVerifiedPurchase?: InputMaybe<Scalars['Boolean']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n rating?: InputMaybe<Scalars['Int']['input']>;\n status?: InputMaybe<AppReviewStatus>;\n};\n\n\n/** Root query type */\nexport type QueryAppWorkspaceAuthorizationsArgs = {\n appId: Scalars['ID']['input'];\n pagination?: InputMaybe<PaginationInput>;\n};\n\n\n/** Root query type */\nexport type QueryApplicationArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryApplicationAnalyticsArgs = {\n applicationId: Scalars['ID']['input'];\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n period: Scalars['String']['input'];\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryApplicationsArgs = {\n developerId?: InputMaybe<Scalars['ID']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n organizationId?: InputMaybe<Scalars['ID']['input']>;\n status?: InputMaybe<AppStatus>;\n visibility?: InputMaybe<AppVisibility>;\n};\n\n\n/** Root query type */\nexport type QueryApplicationsWithPendingVersionsArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryApprovedWaitlistProductsArgs = {\n email: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryAppsActingAsCurrentUserArgs = {\n pagination?: InputMaybe<PaginationInput>;\n};\n\n\n/** Root query type */\nexport type QueryAuditLogsArgs = {\n actorId?: InputMaybe<Scalars['ID']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n resource?: InputMaybe<Scalars['String']['input']>;\n resourceId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryAuthAuditLogsArgs = {\n pagination?: InputMaybe<PaginationInput>;\n};\n\n\n/** Root query type */\nexport type QueryAuthMethodConfigArgs = {\n authType: AuthType;\n tenantId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryAuthStrategiesHealthArgs = {\n pagination?: InputMaybe<PaginationInput>;\n};\n\n\n/** Root query type */\nexport type QueryAutomationStepsArgs = {\n automationId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryAutomationSubscribersArgs = {\n automationId: Scalars['ID']['input'];\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n status?: InputMaybe<AutomationStatus>;\n};\n\n\n/** Root query type */\nexport type QueryAvailableAgentsArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n skills?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\n\n/** Root query type */\nexport type QueryAvailableAuthMethodsArgs = {\n pagination?: InputMaybe<PaginationInput>;\n tenantId?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryAvailableFeaturePreviewsArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n productSlug?: InputMaybe<Scalars['String']['input']>;\n workspaceId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryBounceStatsArgs = {\n campaignId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryBrowseStoreArgs = {\n input: BrowseStoreInput;\n};\n\n\n/** Root query type */\nexport type QueryCalculateTaxArgs = {\n input: CalculateTaxInput;\n};\n\n\n/** Root query type */\nexport type QueryCampaignArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryCampaignBouncesArgs = {\n bounceType?: InputMaybe<BounceType>;\n campaignId: Scalars['ID']['input'];\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryCampaignComplaintsArgs = {\n campaignId: Scalars['ID']['input'];\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryCampaignsArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n newsletterId?: InputMaybe<Scalars['String']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryCannedResponseArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryCannedResponseByShortcutArgs = {\n shortcut: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryCannedResponsesArgs = {\n filter?: InputMaybe<CannedResponseFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryCartArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryCartShippingOptionsArgs = {\n addressId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryCategoryArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryCategoryBySlugArgs = {\n slug: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryChannelExportJobArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryCheckChannelHealthArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryCheckEntitlementArgs = {\n productId: Scalars['String']['input'];\n workspaceId?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryCheckPermissionArgs = {\n input: PermissionCheckInput;\n};\n\n\n/** Root query type */\nexport type QueryCheckPermissionsArgs = {\n inputs: Array<PermissionCheckInput>;\n};\n\n\n/** Root query type */\nexport type QueryCheckPlanEntitlementArgs = {\n itemId: Scalars['ID']['input'];\n planId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryCheckProductAccessArgs = {\n productId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryCheckQuotaExhaustedArgs = {\n billingAccountId: Scalars['ID']['input'];\n productId?: InputMaybe<Scalars['String']['input']>;\n quotaName: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryCheckVisibilityArgs = {\n input: VisibilityCheckInput;\n};\n\n\n/** Root query type */\nexport type QueryCircuitBreakerStateArgs = {\n scope: Scalars['String']['input'];\n scopeValue: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryCircuitBreakerStatesArgs = {\n pagination?: InputMaybe<SchedulerPaginationInput>;\n};\n\n\n/** Root query type */\nexport type QueryCompareVariantsArgs = {\n newsletterId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryComplaintStatsArgs = {\n campaignId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryComplianceAuditLogArgs = {\n days?: InputMaybe<Scalars['Int']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n platformProductId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryComplianceSettingsArgs = {\n platformProductId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryConsentLedgerArgs = {\n filter?: InputMaybe<ConsentLedgerFilter>;\n pagination?: InputMaybe<PrivacyPaginationInput>;\n};\n\n\n/** Root query type */\nexport type QueryConsentRecordArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryContactInquiriesArgs = {\n filter?: InputMaybe<ContactInquiryFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryContactInquiryArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryContentPageArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryContentPageBySlugArgs = {\n productId?: InputMaybe<Scalars['String']['input']>;\n slug: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryContentPagesArgs = {\n filter?: InputMaybe<ContentPageFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n productId?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryConvertCurrencyArgs = {\n amount: Scalars['Float']['input'];\n fromCurrency?: InputMaybe<Scalars['String']['input']>;\n toCurrency: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryCurrentUserAppsArgs = {\n pagination?: InputMaybe<PaginationInput>;\n};\n\n\n/** Root query type */\nexport type QueryCurrentUserDelegationsArgs = {\n pagination?: InputMaybe<PaginationInput>;\n};\n\n\n/** Root query type */\nexport type QueryCurrentUserGrantedDelegationsArgs = {\n pagination?: InputMaybe<PaginationInput>;\n};\n\n\n/** Root query type */\nexport type QueryCurrentUserMfaMethodsArgs = {\n pagination?: InputMaybe<PaginationInput>;\n};\n\n\n/** Root query type */\nexport type QueryCustomerSatisfactionSurveyArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryCustomerSatisfactionSurveysArgs = {\n filter?: InputMaybe<CustomerSatisfactionSurveyFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryDeadLetterQueueEntriesArgs = {\n filter?: InputMaybe<JobFilterInput>;\n pagination?: InputMaybe<SchedulerPaginationInput>;\n};\n\n\n/** Root query type */\nexport type QueryDeadLetterQueueEntryArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryDefaultSlaPolicyArgs = {\n priority: SupportTicketPriority;\n};\n\n\n/** Root query type */\nexport type QueryDeveloperEarningsArgs = {\n input?: InputMaybe<DeveloperEarningsInput>;\n};\n\n\n/** Root query type */\nexport type QueryDeveloperOrgInvitationArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryDeveloperOrgInvitationByTokenArgs = {\n token: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryDeveloperOrgInvitationsArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n organizationId: Scalars['ID']['input'];\n status?: InputMaybe<InvitationStatus>;\n};\n\n\n/** Root query type */\nexport type QueryDeveloperOrgMemberArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryDeveloperOrgMembersArgs = {\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n organizationId: Scalars['ID']['input'];\n role?: InputMaybe<DeveloperOrgRole>;\n};\n\n\n/** Root query type */\nexport type QueryDeveloperOrgMonthlyRevenueArgs = {\n months?: InputMaybe<Scalars['Int']['input']>;\n organizationId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryDeveloperOrgPaymentMethodArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryDeveloperOrgPaymentMethodsArgs = {\n organizationId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryDeveloperOrgPayoutArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryDeveloperOrgPayoutsArgs = {\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n organizationId: Scalars['ID']['input'];\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n status?: InputMaybe<PayoutStatus>;\n};\n\n\n/** Root query type */\nexport type QueryDeveloperOrgRevenueAnalyticsArgs = {\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n organizationId: Scalars['ID']['input'];\n period: Scalars['String']['input'];\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryDeveloperOrgRevenueSummaryArgs = {\n organizationId: Scalars['ID']['input'];\n period: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryDeveloperOrgSaleArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryDeveloperOrgSalesArgs = {\n applicationId?: InputMaybe<Scalars['ID']['input']>;\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n isPaidOut?: InputMaybe<Scalars['Boolean']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n organizationId: Scalars['ID']['input'];\n pricingModel?: InputMaybe<DevPortalPricingModel>;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n status?: InputMaybe<SaleStatus>;\n};\n\n\n/** Root query type */\nexport type QueryDeveloperOrgSubscriptionArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryDeveloperOrgSubscriptionsArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n organizationId: Scalars['ID']['input'];\n status?: InputMaybe<DevPortalSubscriptionStatus>;\n subscriptionType?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryDeveloperOrganizationArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryDeveloperOrganizationBySlugArgs = {\n slug: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryDeveloperOrganizationsArgs = {\n isCertified?: InputMaybe<Scalars['Boolean']['input']>;\n isVerified?: InputMaybe<Scalars['Boolean']['input']>;\n kind?: InputMaybe<DeveloperOrgKind>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n partnerTier?: InputMaybe<PartnerTier>;\n tier?: InputMaybe<DeveloperOrgTier>;\n};\n\n\n/** Root query type */\nexport type QueryDeveloperProfileArgs = {\n userId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryDevportalExportJobArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryDsarRequestArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryDsarRequestsArgs = {\n filter?: InputMaybe<DsarFilter>;\n pagination?: InputMaybe<PrivacyPaginationInput>;\n};\n\n\n/** Root query type */\nexport type QueryEditorialCollectionsArgs = {\n storeId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryEffectiveConsentArgs = {\n purpose: ConsentPurpose;\n subjectId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryEffectivePermissionsArgs = {\n actorId: Scalars['String']['input'];\n actorType: ActorType;\n scopeId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryEntitlementArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryEntitlementActivationsArgs = {\n entitlementId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryEntitlementSeatSummaryArgs = {\n entitlementId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryEntitlementSeatsArgs = {\n entitlementId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryEntitlementUsageArgs = {\n entitlementId: Scalars['ID']['input'];\n metricType?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryEntitlementsArgs = {\n status?: InputMaybe<EntitlementStatus>;\n workspaceId?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryEstimateNewsletterRecipientsArgs = {\n id: Scalars['ID']['input'];\n plans?: InputMaybe<Array<Scalars['String']['input']>>;\n products?: InputMaybe<Array<Scalars['String']['input']>>;\n recipientType: NewsletterRecipientType;\n segmentConfig?: InputMaybe<Scalars['JSON']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryEstimateOrderShippingArgs = {\n input: OrderShippingEstimateInput;\n};\n\n\n/** Root query type */\nexport type QueryEvaluateFeatureFlagsArgs = {\n input: EvaluateFeatureFlagsInput;\n};\n\n\n/** Root query type */\nexport type QueryExploreAdminConversationArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryExploreAdminConversationsArgs = {\n filter?: InputMaybe<ExploreAdminFilter>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n sort?: InputMaybe<ExploreAdminSort>;\n};\n\n\n/** Root query type */\nexport type QueryExploreAdminStatsArgs = {\n filter?: InputMaybe<ExploreAdminFilter>;\n};\n\n\n/** Root query type */\nexport type QueryExploreAgentJobArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryExploreCatalogArgs = {\n productSlug?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryExploreConversationMessagesArgs = {\n conversationToken: Scalars['String']['input'];\n limit?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryExploreMessageArgs = {\n conversationToken: Scalars['String']['input'];\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryExploreSharedConversationArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n shareToken: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryExportOrganizationsCsvArgs = {\n filter?: InputMaybe<OrganizationFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryExportSubscribersArgs = {\n platformProductId?: InputMaybe<Scalars['String']['input']>;\n subscribed?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryExportTenantsCsvArgs = {\n filter?: InputMaybe<TenantFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryExportTranslationsArgs = {\n format: ImportJobFormat;\n languageCode?: InputMaybe<Scalars['String']['input']>;\n productId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryFaqArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryFaqsArgs = {\n filter?: InputMaybe<FaqFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryFaqsByCategoryArgs = {\n category: FaqCategory;\n limit?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryFeatureFlagArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryFeatureFlagByKeyArgs = {\n key: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryFeatureFlagsArgs = {\n filter?: InputMaybe<FeatureFlagFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryFeaturedProductsArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryFilterOptionsArgs = {\n type?: InputMaybe<ProductType>;\n withProducts?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryGetActivePromotionsArgs = {\n planId?: InputMaybe<Scalars['String']['input']>;\n productId?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryGetActiveSubscriptionsArgs = {\n billingAccountId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetAddonPriceHistoryArgs = {\n addonId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetAllAddOnsArgs = {\n filter?: InputMaybe<AddonsFilter>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryGetAllPlansArgs = {\n filter?: InputMaybe<PlansFilter>;\n};\n\n\n/** Root query type */\nexport type QueryGetAllQuotasAssignmentArgs = {\n amountMax?: InputMaybe<Scalars['Float']['input']>;\n amountMin?: InputMaybe<Scalars['Float']['input']>;\n billingAccountId: Scalars['ID']['input'];\n fromDate?: InputMaybe<Scalars['DateTime']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n searchQuery?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortOrder?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Array<QuotaStatus>>;\n toDate?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryGetAllQuotasOfSubArgs = {\n billingAccountId: Scalars['ID']['input'];\n subscriptionId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetAllRecurringBillingPlansArgs = {\n entityType?: InputMaybe<Scalars['String']['input']>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryGetApplicationTagsArgs = {\n input: GetApplicationTagsInput;\n};\n\n\n/** Root query type */\nexport type QueryGetAvailableTagsAndResourceTypesArgs = {\n billingAccountId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetBillingAccountArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetBillingAccountCreditTransactionsArgs = {\n billingAccountID: Scalars['ID']['input'];\n days: Scalars['Int']['input'];\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryGetBillingAccountQuotasSummaryArgs = {\n billingAccountId: Scalars['ID']['input'];\n productId?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryGetBillingAddressArgs = {\n billingAccountId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetBillingOrderArgs = {\n billingAccountId: Scalars['ID']['input'];\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetBillingOrderCallbacksArgs = {\n callbackStatus?: InputMaybe<Scalars['String']['input']>;\n externalService?: InputMaybe<Scalars['String']['input']>;\n hasError?: InputMaybe<Scalars['Boolean']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryGetBillingWebhookLogsArgs = {\n hasError?: InputMaybe<Scalars['Boolean']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n processed?: InputMaybe<Scalars['Boolean']['input']>;\n provider?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryGetChannelArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetChannelConnectionTagsArgs = {\n input: GetChannelConnectionTagsInput;\n};\n\n\n/** Root query type */\nexport type QueryGetChannelDeliveryAttemptsArgs = {\n channelId: Scalars['ID']['input'];\n cursor?: InputMaybe<Scalars['String']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryGetChannelOrgSettingsArgs = {\n organizationId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetChannelStatsArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetChannelTagsArgs = {\n input: GetChannelTagsInput;\n};\n\n\n/** Root query type */\nexport type QueryGetChannelWebhookEventsArgs = {\n channelId: Scalars['ID']['input'];\n cursor?: InputMaybe<Scalars['String']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryGetChannelsArgs = {\n filter?: InputMaybe<ChannelFilterInput>;\n pagination?: InputMaybe<ChannelPaginationInput>;\n};\n\n\n/** Root query type */\nexport type QueryGetChannelsByOrganizationArgs = {\n organizationId: Scalars['ID']['input'];\n pagination?: InputMaybe<ChannelPaginationInput>;\n};\n\n\n/** Root query type */\nexport type QueryGetChannelsByPlatformArgs = {\n organizationId?: InputMaybe<Scalars['ID']['input']>;\n pagination?: InputMaybe<ChannelPaginationInput>;\n platform: ChannelPlatform;\n};\n\n\n/** Root query type */\nexport type QueryGetChannelsForFailoverArgs = {\n organizationId: Scalars['ID']['input'];\n platform: ChannelPlatform;\n};\n\n\n/** Root query type */\nexport type QueryGetChargeArgs = {\n billingAccountId: Scalars['ID']['input'];\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetChargesArgs = {\n status?: InputMaybe<ChargeStatus>;\n};\n\n\n/** Root query type */\nexport type QueryGetConnectionArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetConnectionByChannelArgs = {\n channelId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetConnectionStatusArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetConnectionsByOrganizationArgs = {\n cursor?: InputMaybe<Scalars['String']['input']>;\n organizationId: Scalars['ID']['input'];\n pagination?: InputMaybe<ChannelPaginationInput>;\n};\n\n\n/** Root query type */\nexport type QueryGetCostOfCreditsArgs = {\n creditAmount: Scalars['Float']['input'];\n currency: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetCouponArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetCouponByCodeArgs = {\n code: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetCouponUsageHistoryArgs = {\n couponId?: InputMaybe<Scalars['ID']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n userId?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryGetCreditBalanceByTypeArgs = {\n billingAccountId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetCreditTransactionDetailsArgs = {\n billingAccountId: Scalars['ID']['input'];\n creditTransactionID: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetDefaultBillingAccountByOrgIdArgs = {\n orgId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetDefaultPaymentMethodArgs = {\n billingAccountId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetDeliveryAttemptArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetDeliveryStatsArgs = {\n channelId: Scalars['ID']['input'];\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryGetDiscountArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetDiscountByCodeArgs = {\n code: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetEntitlementArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetExternalOidcConfigArgs = {\n identifier: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetFailedBillingOrderCallbacksArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryGetFailedDeliveryAttemptsArgs = {\n channelId?: InputMaybe<Scalars['ID']['input']>;\n cursor?: InputMaybe<Scalars['String']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryGetFailedWebhookEventsArgs = {\n channelId?: InputMaybe<Scalars['ID']['input']>;\n cursor?: InputMaybe<Scalars['String']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryGetInvoiceArgs = {\n billingAccountId: Scalars['ID']['input'];\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetInvoiceByNumberArgs = {\n billingAccountId: Scalars['ID']['input'];\n invoiceNumber: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetInvoicesArgs = {\n billingAccountId?: InputMaybe<Scalars['ID']['input']>;\n status?: InputMaybe<InvoiceStatus>;\n};\n\n\n/** Root query type */\nexport type QueryGetItemEntitlementsArgs = {\n itemId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetOAuthAuthorizationUrlArgs = {\n platform: ChannelPlatform;\n redirectUri: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetPaginatedInvoicesArgs = {\n billingAccountId?: InputMaybe<Scalars['ID']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n search?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<InvoiceStatus>;\n};\n\n\n/** Root query type */\nexport type QueryGetPaginatedSubscriptionsArgs = {\n billingAccountId: Scalars['ID']['input'];\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n search?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryGetPaymentArgs = {\n billingAccountId: Scalars['ID']['input'];\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetPaymentMethodsArgs = {\n billingAccountId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetPaymentsArgs = {\n status?: InputMaybe<PaymentStatus>;\n};\n\n\n/** Root query type */\nexport type QueryGetPendingRefundsArgs = {\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryGetPlanArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetPlanEntitlementsArgs = {\n planId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetPlanPriceHistoryArgs = {\n planId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetPromotionArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetQuotaAnalyticsArgs = {\n billingAccountId: Scalars['ID']['input'];\n period?: InputMaybe<AnalyticsPeriod>;\n quotaAssignmentId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetQuotaAssignmentsWithAnalyticsArgs = {\n amountMax?: InputMaybe<Scalars['Float']['input']>;\n amountMin?: InputMaybe<Scalars['Float']['input']>;\n billingAccountId: Scalars['ID']['input'];\n fromDate?: InputMaybe<Scalars['DateTime']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n searchQuery?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortOrder?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Array<QuotaStatus>>;\n toDate?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryGetQuotaUsageAndLimitArgs = {\n billingAccountId: Scalars['ID']['input'];\n productId?: InputMaybe<Scalars['String']['input']>;\n quotaName: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetQuotaUsageDetailsArgs = {\n amountMax?: InputMaybe<Scalars['Float']['input']>;\n amountMin?: InputMaybe<Scalars['Float']['input']>;\n billingAccountId: Scalars['ID']['input'];\n entity?: InputMaybe<Scalars['String']['input']>;\n fromDate?: InputMaybe<Scalars['DateTime']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n quotaAssignmentId: Scalars['ID']['input'];\n resourceType?: InputMaybe<Scalars['String']['input']>;\n searchQuery?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortOrder?: InputMaybe<Scalars['String']['input']>;\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n toDate?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryGetRecurringBillingPlanArgs = {\n currency: Scalars['String']['input'];\n entityId: Scalars['String']['input'];\n entityType: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetRecurringBillingPlansByTypeArgs = {\n entityType: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetReferralCodeByCodeArgs = {\n code: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetRefundRecordArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetRefundRecordsArgs = {\n billingAccountId?: InputMaybe<Scalars['String']['input']>;\n fromDate?: InputMaybe<Scalars['DateTime']['input']>;\n hasError?: InputMaybe<Scalars['Boolean']['input']>;\n orgIdFilter?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n provider?: InputMaybe<Scalars['String']['input']>;\n search?: InputMaybe<Scalars['String']['input']>;\n source?: InputMaybe<RefundSource>;\n status?: InputMaybe<RefundRecordStatus>;\n toDate?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryGetSsoConfigArgs = {\n tenantId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetSelectedAddonsArgs = {\n addonIDs: Array<Scalars['String']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryGetStorageLimitForOrgArgs = {\n orgId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetStoreOrderArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetStoreOrdersByBillingAccountArgs = {\n billingAccountId: Scalars['ID']['input'];\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n status?: InputMaybe<OrderStatus>;\n};\n\n\n/** Root query type */\nexport type QueryGetStoreOrdersByUserArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n status?: InputMaybe<OrderStatus>;\n userId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetStoreProductTagsArgs = {\n input: GetStoreProductTagsInput;\n};\n\n\n/** Root query type */\nexport type QueryGetSubscriptionArgs = {\n billingAccountId: Scalars['ID']['input'];\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetSubscriptionUsageOverviewArgs = {\n billingAccountId: Scalars['ID']['input'];\n includeExpired?: InputMaybe<Scalars['Boolean']['input']>;\n onlyExpired?: InputMaybe<Scalars['Boolean']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n productId?: InputMaybe<Scalars['ID']['input']>;\n searchQuery?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryGetSubscriptionUsagesArgs = {\n billingAccountId: Scalars['ID']['input'];\n entity?: InputMaybe<Scalars['String']['input']>;\n fromDate?: InputMaybe<Scalars['DateTime']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n resourceType?: InputMaybe<Scalars['String']['input']>;\n searchQuery?: InputMaybe<Scalars['String']['input']>;\n toDate?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryGetTaxRatesArgs = {\n active?: InputMaybe<Scalars['Boolean']['input']>;\n country?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryGetTransactionArgs = {\n billingAccountId?: InputMaybe<Scalars['ID']['input']>;\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetTransactionsByBillingAccountArgs = {\n billingAccountId: Scalars['ID']['input'];\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryGetUsageDashboardArgs = {\n billingAccountId: Scalars['ID']['input'];\n period?: InputMaybe<AnalyticsPeriod>;\n};\n\n\n/** Root query type */\nexport type QueryGetUserPlatformConnectionArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetUserPlatformConnectionByExternalIdArgs = {\n channelId: Scalars['ID']['input'];\n externalUserId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetWebhookEventArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryGetWebhookStatsArgs = {\n channelId: Scalars['ID']['input'];\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryHomeGroupedProductsArgs = {\n compatibleWith?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryHomepageSectionsArgs = {\n storeId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryI18nModuleArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryI18nModulesArgs = {\n filter?: InputMaybe<I18nModuleFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryI18nNamespaceArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryI18nNamespacesArgs = {\n filter?: InputMaybe<I18nNamespaceFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryI18nProductArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryI18nProductByNameArgs = {\n name: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryI18nProductsArgs = {\n filter?: InputMaybe<I18nProductFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryImportJobArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryImportJobsArgs = {\n filter?: InputMaybe<ImportJobFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryInitiateDigestChallengeArgs = {\n realm?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryInstallableApplicationVersionsArgs = {\n applicationId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryInstallationPermissionsArgs = {\n installationId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryInterviewRoundArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryInterviewerArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryInterviewersArgs = {\n filter?: InputMaybe<InterviewerFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryInventoryAdjustmentsArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n productId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryIsAppAuthorizedForWorkspaceArgs = {\n appId: Scalars['ID']['input'];\n workspaceId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryIsAppInstalledArgs = {\n productId: Scalars['String']['input'];\n workspaceId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryIsEmailSuppressedArgs = {\n email: Scalars['String']['input'];\n platformProductId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryIsSsoEnabledArgs = {\n tenantId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryIsSuppressedArgs = {\n channel: SuppressionChannel;\n identifier: Scalars['String']['input'];\n identifierType: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryJobApplicationArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryJobApplicationInterviewRoundsArgs = {\n applicationId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryJobApplicationResumePreviewUrlArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryJobApplicationResumeUrlArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryJobApplicationsArgs = {\n filter?: InputMaybe<JobApplicationFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryJobAssignmentsArgs = {\n filter?: InputMaybe<JobAssignmentFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryJobExecutionArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryJobExecutionsArgs = {\n jobId: Scalars['ID']['input'];\n pagination?: InputMaybe<SchedulerPaginationInput>;\n};\n\n\n/** Root query type */\nexport type QueryJobPostingArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryJobPostingsArgs = {\n filter?: InputMaybe<JobPostingFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryKeyboardShortcutArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryKeyboardShortcutsArgs = {\n filter?: InputMaybe<KeyboardShortcutFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryKnowledgeBaseArticleArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryKnowledgeBaseArticleBySlugArgs = {\n slug: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryKnowledgeBaseArticlesArgs = {\n filter?: InputMaybe<KnowledgeBaseArticleFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryLanguageArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryLanguageByCodeArgs = {\n code: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryLanguagesArgs = {\n filter?: InputMaybe<LanguageFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryLegalHoldsArgs = {\n filter?: InputMaybe<LegalHoldFilter>;\n pagination?: InputMaybe<PrivacyPaginationInput>;\n};\n\n\n/** Root query type */\nexport type QueryListCouponsArgs = {\n filter?: InputMaybe<CouponFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryListPromotionsArgs = {\n includeInactive?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryListReferralCodesArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryListSyncOutboxEntriesArgs = {\n filter?: InputMaybe<SyncOutboxFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryListUserPlatformConnectionsByChannelArgs = {\n channelId: Scalars['ID']['input'];\n cursor?: InputMaybe<Scalars['String']['input']>;\n filter?: InputMaybe<UserPlatformConnectionFilterInput>;\n pagination?: InputMaybe<ChannelPaginationInput>;\n};\n\n\n/** Root query type */\nexport type QueryListUserPlatformConnectionsByOrganizationArgs = {\n cursor?: InputMaybe<Scalars['String']['input']>;\n filter?: InputMaybe<UserPlatformConnectionFilterInput>;\n organizationId: Scalars['ID']['input'];\n pagination?: InputMaybe<ChannelPaginationInput>;\n};\n\n\n/** Root query type */\nexport type QueryListUserPlatformConnectionsByUserArgs = {\n cursor?: InputMaybe<Scalars['String']['input']>;\n filter?: InputMaybe<UserPlatformConnectionFilterInput>;\n internalUserId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryListUserShippingAddressesArgs = {\n userId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryLookupAffiliateCodeArgs = {\n code: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryLowStockProductsArgs = {\n storeId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryMyAccessibleProductsArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryMyActivityLogsArgs = {\n filter?: InputMaybe<ActivityFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryMyAffiliateCodesArgs = {\n filter?: InputMaybe<AffiliateCodeFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryMyApiKeysArgs = {\n pagination?: InputMaybe<PaginationInput>;\n};\n\n\n/** Root query type */\nexport type QueryMyAppInstallationsArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n status?: InputMaybe<InstallationStatus>;\n};\n\n\n/** Root query type */\nexport type QueryMyAppReviewArgs = {\n applicationId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryMyAuthorizedWorkspacesArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryMyContactInquiriesArgs = {\n filter?: InputMaybe<MyContactInquiryFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryMyEarningsEntriesArgs = {\n billingAccountId: Scalars['ID']['input'];\n filter?: InputMaybe<EarningsEntryFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryMyEarningsSummaryArgs = {\n billingAccountId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryMyEntitlementsArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryMyOrdersArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n status?: InputMaybe<OrderStatus>;\n};\n\n\n/** Root query type */\nexport type QueryMyOrganizationInviteArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryMyOrganizationInvitesArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n status?: InputMaybe<InviteStatus>;\n};\n\n\n/** Root query type */\nexport type QueryMyOrganizationsArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryMyPasskeysArgs = {\n pagination?: InputMaybe<PaginationInput>;\n};\n\n\n/** Root query type */\nexport type QueryMyPayoutAccountsArgs = {\n billingAccountId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryMyPayoutRequestsArgs = {\n billingAccountId: Scalars['ID']['input'];\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryMyPermissionsArgs = {\n scopeId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryMyPublicKeysArgs = {\n pagination?: InputMaybe<PaginationInput>;\n};\n\n\n/** Root query type */\nexport type QueryMyReviewsArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryMyRolesArgs = {\n scopeId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryMySourcingOfferArgs = {\n requestId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryMySourcingOffersArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n status?: InputMaybe<SourcingOfferStatus>;\n};\n\n\n/** Root query type */\nexport type QueryMySourcingRequestArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryMySourcingRequestsArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n status?: InputMaybe<SourcingRequestStatus>;\n};\n\n\n/** Root query type */\nexport type QueryMyStoreAppInstallationsArgs = {\n filter?: InputMaybe<InstallationFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryMySupportTicketsArgs = {\n filter?: InputMaybe<SupportTicketFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryMySurveysArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryMyTenantsArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryMyUnreadNotificationCountArgs = {\n filter?: InputMaybe<NotificationFilterInput>;\n};\n\n\n/** Root query type */\nexport type QueryMyUserPlatformConnectionArgs = {\n channelId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryMyWaitlistStatusArgs = {\n email: Scalars['String']['input'];\n platformProductId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryMyWalletsArgs = {\n pagination?: InputMaybe<PaginationInput>;\n};\n\n\n/** Root query type */\nexport type QueryMyWorkspacesArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryNewsletterArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryNewsletterAutomationArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryNewsletterAutomationsArgs = {\n enabled?: InputMaybe<Scalars['Boolean']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n platformProductId?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryNewsletterBySlugArgs = {\n slug: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryNewsletterListArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryNewsletterListsArgs = {\n filter?: InputMaybe<NewsletterListFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryNewsletterTemplateArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryNewsletterTemplateVersionsArgs = {\n templateId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryNewsletterTemplatesArgs = {\n filter?: InputMaybe<NewsletterTemplateFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryNewsletterVariantArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryNewsletterVariantsArgs = {\n newsletterId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryNewslettersArgs = {\n filter?: InputMaybe<NewsletterFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryNotificationArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryNotificationEventsArgs = {\n notificationId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryNotificationHistoriesArgs = {\n filter?: InputMaybe<NotificationHistoryFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryNotificationHistoryArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryNotificationPreferenceArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryNotificationPreferencesArgs = {\n filter?: InputMaybe<NotificationPreferenceFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryNotificationStatsArgs = {\n filter?: InputMaybe<NotificationFilterInput>;\n};\n\n\n/** Root query type */\nexport type QueryNotificationTemplateArgs = {\n locale?: InputMaybe<Scalars['String']['input']>;\n slug: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryNotificationTemplatesArgs = {\n filter?: InputMaybe<TemplateFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryNotificationTopicArgs = {\n id?: InputMaybe<Scalars['ID']['input']>;\n slug?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryNotificationTopicsArgs = {\n filter?: InputMaybe<NotificationTopicFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryNotificationsArgs = {\n filter?: InputMaybe<NotificationFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryOpenInventoryAlertsArgs = {\n storeId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryOpenSourcingRequestsArgs = {\n category?: InputMaybe<Scalars['String']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryOrderEstimateArgs = {\n input: OrderEstimateInput;\n};\n\n\n/** Root query type */\nexport type QueryOrderFulfillmentArgs = {\n orderId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryOrganizationArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryOrganizationAuditLogsConnectionArgs = {\n action?: InputMaybe<Scalars['String']['input']>;\n actorId?: InputMaybe<Scalars['ID']['input']>;\n after?: InputMaybe<Scalars['String']['input']>;\n first?: InputMaybe<Scalars['Int']['input']>;\n organizationId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryOrganizationBySlugArgs = {\n slug: Scalars['String']['input'];\n tenantId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryOrganizationInvitesArgs = {\n filter?: InputMaybe<OrganizationInviteFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n organizationId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryOrganizationKindArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryOrganizationMemberIdentitiesArgs = {\n organizationId: Scalars['String']['input'];\n userIds: Array<Scalars['ID']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryOrganizationMembersArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n organizationId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryOrganizationPickupPostalCodeArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryPendingDeveloperOrganizationVerificationsArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryPendingPublishersArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryPendingReviewProductsArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n storeId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryPendingScheduledNotificationsArgs = {\n before?: InputMaybe<Scalars['DateTime']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryPendingSurveysArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryPermissionAuditLogArgs = {\n filter?: InputMaybe<AuditLogFilterInput>;\n pagination?: InputMaybe<PaginationInput>;\n scopeId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryPlatformProductArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryPlatformProductBySlugArgs = {\n slug: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryPlatformProductsArgs = {\n filter?: InputMaybe<PlatformProductFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryPolicyReferenceArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryPolicyReferencesArgs = {\n filter?: InputMaybe<PolicyReferenceFilterInput>;\n pagination?: InputMaybe<PaginationInput>;\n};\n\n\n/** Root query type */\nexport type QueryPopularArticlesArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryPopularCannedResponsesArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryPopularFaQsArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryPressKitAssetArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryPressKitAssetsArgs = {\n filter?: InputMaybe<PressKitAssetFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n productId?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryPreviewScheduleArgs = {\n count?: InputMaybe<Scalars['Int']['input']>;\n cronExpression?: InputMaybe<Scalars['String']['input']>;\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n interval?: InputMaybe<Scalars['Int']['input']>;\n intervalUnit?: InputMaybe<Scalars['String']['input']>;\n rrule?: InputMaybe<Scalars['String']['input']>;\n scheduleType: ScheduleType;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n timezone?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryProductArgs = {\n billingAccountId?: InputMaybe<Scalars['ID']['input']>;\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryProductAssetsArgs = {\n fileType?: InputMaybe<ProductAssetType>;\n productId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryProductBySlugArgs = {\n slug: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryProductDownloadsArgs = {\n productId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryProductInstallationsArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n productId: Scalars['String']['input'];\n status?: InputMaybe<StoreInstallationStatus>;\n};\n\n\n/** Root query type */\nexport type QueryProductOrdersArgs = {\n input: ItemOrdersInput;\n};\n\n\n/** Root query type */\nexport type QueryProductReleasesArgs = {\n productId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryProductReviewsArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n productId: Scalars['String']['input'];\n status?: InputMaybe<ReviewStatus>;\n};\n\n\n/** Root query type */\nexport type QueryProductShortcutsArgs = {\n category?: InputMaybe<Scalars['String']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n productId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryProductTourStatisticsArgs = {\n productId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryProductsArgs = {\n filter?: InputMaybe<ProductFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryPseudoLocaleStatsArgs = {\n productCode: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryPublicAddonsArgs = {\n productId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryPublicContentPageArgs = {\n productId?: InputMaybe<Scalars['String']['input']>;\n slug: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryPublicContentPagesArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n productId: Scalars['String']['input'];\n tag?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryPublicJobPostingArgs = {\n productId?: InputMaybe<Scalars['ID']['input']>;\n slug: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryPublicJobPostingsArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n productId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryPublicJobPostingsForSubmissionArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n productId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryPublicPlansArgs = {\n productId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryPublicPressKitAssetsArgs = {\n category?: InputMaybe<PressKitAssetCategory>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n productId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryPublicProductArgs = {\n slug: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryPublicProductsArgs = {\n filter?: InputMaybe<PlatformProductFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryPublicResolvedContentPageArgs = {\n productId: Scalars['String']['input'];\n slug: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryPublicScheduleTemplatesArgs = {\n filter?: InputMaybe<ScheduleTemplateFilterInput>;\n pagination?: InputMaybe<SchedulerPaginationInput>;\n};\n\n\n/** Root query type */\nexport type QueryPublishedProductsArgs = {\n category?: InputMaybe<Scalars['String']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n type?: InputMaybe<ProductType>;\n};\n\n\n/** Root query type */\nexport type QueryPushDevicesForUserInternalArgs = {\n productSlug: Scalars['String']['input'];\n userId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryQuoteAiCreditsArgs = {\n inputTokens: Scalars['Int']['input'];\n model: Scalars['String']['input'];\n outputTokens: Scalars['Int']['input'];\n};\n\n\n/** Root query type */\nexport type QueryRbacAnalyticsArgs = {\n dateRange?: InputMaybe<AnalyticsDateRangeInput>;\n scopeId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryRbacChangeHistoryArgs = {\n filter?: InputMaybe<ChangeLogFilterInput>;\n pagination?: InputMaybe<PaginationInput>;\n scopeId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryRbacConfigArgs = {\n scopeId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryRbacConfigValueArgs = {\n key: Scalars['String']['input'];\n scopeId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryRecentArticlesArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryReleaseAuditEventsArgs = {\n releaseId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryReleaseTracksArgs = {\n productId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryResolvedContentPageArgs = {\n productId: Scalars['String']['input'];\n slug: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryResourceArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryResourceTreeArgs = {\n resourceType?: InputMaybe<Scalars['String']['input']>;\n scopeId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryResourceTypesArgs = {\n includeUnmapped?: InputMaybe<Scalars['Boolean']['input']>;\n product?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryResourceTypesWithProductsArgs = {\n product?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryResourcesArgs = {\n filter?: InputMaybe<ResourceFilterInput>;\n pagination?: InputMaybe<PaginationInput>;\n scopeId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryReviewArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryReviewRepliesArgs = {\n reviewId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryRoleArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryRoleMembersArgs = {\n pagination?: InputMaybe<PaginationInput>;\n roleId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryRolesArgs = {\n filter?: InputMaybe<RoleFilterInput>;\n pagination?: InputMaybe<PaginationInput>;\n scopeId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QuerySatisfactionMetricsArgs = {\n filter?: InputMaybe<SatisfactionMetricsFilterInput>;\n};\n\n\n/** Root query type */\nexport type QueryScheduleTemplateArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryScheduleTemplatesArgs = {\n filter?: InputMaybe<ScheduleTemplateFilterInput>;\n pagination?: InputMaybe<SchedulerPaginationInput>;\n};\n\n\n/** Root query type */\nexport type QueryScheduleVersionHistoryArgs = {\n pagination?: InputMaybe<SchedulerPaginationInput>;\n scheduleId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryScheduledJobArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryScheduledJobsArgs = {\n filter?: InputMaybe<JobFilterInput>;\n pagination?: InputMaybe<SchedulerPaginationInput>;\n};\n\n\n/** Root query type */\nexport type QueryScheduledNotificationArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryScheduledNotificationsArgs = {\n filter?: InputMaybe<ScheduledNotificationFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryScimTokensArgs = {\n workspaceId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QuerySearchCannedResponsesArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n query: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QuerySearchChannelsArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n organizationId?: InputMaybe<Scalars['ID']['input']>;\n query: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QuerySearchFaQsArgs = {\n category?: InputMaybe<FaqCategory>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n query: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QuerySearchKnowledgeBaseArgs = {\n categoryId?: InputMaybe<Scalars['String']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n query: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QuerySearchProductsArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n query: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QuerySearchSuggestionsArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n query: Scalars['String']['input'];\n types?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\n\n/** Root query type */\nexport type QuerySearchTicketTemplatesArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n query: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QuerySearchTicketsArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n query: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryServiceEarningsStatusArgs = {\n billingAccountId: Scalars['ID']['input'];\n ownerUserId?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root query type */\nexport type QuerySharedWorkflowArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QuerySlaPoliciesArgs = {\n filter?: InputMaybe<SlaPolicyFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QuerySlaPolicyArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QuerySlaReportArgs = {\n filter?: InputMaybe<SlaReportFilterInput>;\n};\n\n\n/** Root query type */\nexport type QuerySourcingOpportunityArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryStoreArgs = {\n id?: InputMaybe<Scalars['ID']['input']>;\n slug?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryStoreAppInstallationArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryStoreProductDetailsArgs = {\n input: StoreProductDetailsInput;\n};\n\n\n/** Root query type */\nexport type QueryStoresArgs = {\n search?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<StoreType>;\n};\n\n\n/** Root query type */\nexport type QuerySubprocessorArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QuerySubprocessorsArgs = {\n filter?: InputMaybe<SubprocessorFilter>;\n pagination?: InputMaybe<PrivacyPaginationInput>;\n};\n\n\n/** Root query type */\nexport type QuerySubscriberArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QuerySubscriberByEmailArgs = {\n email: Scalars['String']['input'];\n platformProductId?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root query type */\nexport type QuerySubscriberConsentsArgs = {\n subscriberId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QuerySubscriberCountArgs = {\n platformProductId?: InputMaybe<Scalars['String']['input']>;\n subscribed?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\n\n/** Root query type */\nexport type QuerySubscribersArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n platformProductId?: InputMaybe<Scalars['String']['input']>;\n subscribed?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\n\n/** Root query type */\nexport type QuerySupportAnalyticsArgs = {\n filter?: InputMaybe<AnalyticsFilterInput>;\n};\n\n\n/** Root query type */\nexport type QuerySupportAttachmentArgs = {\n fileId: Scalars['ID']['input'];\n ticketId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QuerySupportMessageArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QuerySupportMessagesArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n ticketId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QuerySupportStatsArgs = {\n filter?: InputMaybe<SupportTicketFilterInput>;\n};\n\n\n/** Root query type */\nexport type QuerySupportTicketArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QuerySupportTicketByNumberArgs = {\n ticketNumber: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QuerySupportTicketsArgs = {\n filter?: InputMaybe<SupportTicketFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QuerySuppressionEntryArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QuerySuppressionListArgs = {\n filter?: InputMaybe<SuppressionFilter>;\n pagination?: InputMaybe<PrivacyPaginationInput>;\n};\n\n\n/** Root query type */\nexport type QuerySuppressionsArgs = {\n filter?: InputMaybe<SuppressionFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QuerySurveyByTicketArgs = {\n ticketId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QuerySyncOutboxEntryArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryTagArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryTagBySlugArgs = {\n slug: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryTenantArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryTenantBySlugArgs = {\n slug: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryTenantMembersArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n tenantId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryTenantRoutingInfoArgs = {\n tenantId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryTenantsArgs = {\n filter?: InputMaybe<TenantFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryTestConnectionArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryTicketCategoriesArgs = {\n filter?: InputMaybe<TicketCategoryFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryTicketCategoryArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryTicketCategoryBySlugArgs = {\n slug: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryTicketSlaStatusArgs = {\n ticketId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryTicketTemplateArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryTicketTemplatesArgs = {\n filter?: InputMaybe<TicketTemplateFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryTicketTemplatesByCategoryArgs = {\n category: SupportTicketCategory;\n limit?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryTicketTrendsArgs = {\n filter?: InputMaybe<AnalyticsFilterInput>;\n};\n\n\n/** Root query type */\nexport type QueryTopChartsArgs = {\n input: TopChartsInput;\n};\n\n\n/** Root query type */\nexport type QueryTourArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryTourAnalyticsArgs = {\n tourId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryTourBySlugArgs = {\n slug: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryTourMediaArgs = {\n context?: InputMaybe<ContextInput>;\n};\n\n\n/** Root query type */\nexport type QueryTourScheduleArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryTourSchedulesArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n tourId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryTourStepAnalyticsArgs = {\n tourId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryTourTemplateArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryTourTemplatesArgs = {\n category?: InputMaybe<Scalars['String']['input']>;\n isPublic?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryTourUserProgressArgs = {\n tourId: Scalars['ID']['input'];\n userId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryTourUserProgressListArgs = {\n pagination?: InputMaybe<TourPagination>;\n tourId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryToursArgs = {\n filters?: InputMaybe<TourFilters>;\n pagination?: InputMaybe<TourPagination>;\n};\n\n\n/** Root query type */\nexport type QueryToursForContextArgs = {\n context: TourContextInput;\n};\n\n\n/** Root query type */\nexport type QueryTranslationArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryTranslationAuditArgs = {\n keyId: Scalars['String']['input'];\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryTranslationByKeyArgs = {\n keyId: Scalars['String']['input'];\n languageCode: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryTranslationCoverageArgs = {\n productId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryTranslationKeyArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryTranslationKeyByKeyArgs = {\n key: Scalars['String']['input'];\n productId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryTranslationKeysArgs = {\n filter?: InputMaybe<TranslationKeyFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryTranslationStatsArgs = {\n productId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryTranslationsArgs = {\n filter?: InputMaybe<TranslationFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryTrendingSearchesArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n type?: InputMaybe<ProductType>;\n};\n\n\n/** Root query type */\nexport type QueryUserArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryUserBillingPlanArgs = {\n userId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryUserFeatureFlagPreferencesArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n workspaceId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryUserLanguagePreferenceArgs = {\n userId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryUserReviewForProductArgs = {\n productId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryUserTourProgressesArgs = {\n pagination?: InputMaybe<TourPagination>;\n userId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryUsersArgs = {\n filter?: InputMaybe<UserFilterInput>;\n pagination?: InputMaybe<PaginationInput>;\n};\n\n\n/** Root query type */\nexport type QueryUsersByIdsArgs = {\n ids: Array<Scalars['ID']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryValidateCouponArgs = {\n input: ValidateCouponInput;\n};\n\n\n/** Root query type */\nexport type QueryValidateLicenseArgs = {\n licenseKey: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryValidatePromoCodeArgs = {\n code: Scalars['String']['input'];\n orderAmount: Scalars['Float']['input'];\n productIds: Array<Scalars['ID']['input']>;\n};\n\n\n/** Root query type */\nexport type QueryVerifyInstallationArgs = {\n installationId: Scalars['ID']['input'];\n signingSecret: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryVisibilityRulesArgs = {\n resourceIdentifier: Scalars['String']['input'];\n resourceType: Scalars['String']['input'];\n scopeId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryWaitlistArgs = {\n filter?: InputMaybe<WaitlistFilterInput>;\n};\n\n\n/** Root query type */\nexport type QueryWaitlistEntryArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryWebhookArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryWebhookDeliveriesArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n webhookId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryWebhookDeliveryArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryWebhooksArgs = {\n applicationId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryWorkspaceArgs = {\n id: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryWorkspaceBySlugArgs = {\n slug: Scalars['String']['input'];\n tenantId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryWorkspaceFeatureFlagOverridesArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n workspaceId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryWorkspaceMembersArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n workspaceId: Scalars['String']['input'];\n};\n\n\n/** Root query type */\nexport type QueryWorkspacePublicDetailsArgs = {\n workspaceId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryWorkspaceRoutingArgs = {\n workspaceId: Scalars['ID']['input'];\n};\n\n\n/** Root query type */\nexport type QueryWorkspaceStoreOrdersArgs = {\n billingAccountId: Scalars['ID']['input'];\n limit: Scalars['Int']['input'];\n page: Scalars['Int']['input'];\n search?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<OrderStatus>;\n};\n\nexport type Quota = {\n __typename?: 'Quota';\n /** Additional context */\n context?: Maybe<Scalars['JSON']['output']>;\n /** The timestamp when the quota was created. */\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n /** The unique identifier for the Quota, automatically generated as a UUID. */\n id?: Maybe<Scalars['ID']['output']>;\n /** A Quota is active or not */\n isActive?: Maybe<Scalars['Boolean']['output']>;\n /** A JSON object defining the limits associated with the quota, such as message limits, bot creation limits, etc. */\n limits?: Maybe<Scalars['JSON']['output']>;\n /** The name of the quota, used for identification purposes. */\n name?: Maybe<Scalars['String']['output']>;\n /** Defines whether this quota template is pooled (shared across products) or product-specific. */\n quotaType?: Maybe<QuotaType>;\n /** 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 */\n resetPeriod?: Maybe<QuotaResetPeriod>;\n /** A Quota is reusable or not (e.g., bot,seats). */\n reusable?: Maybe<Scalars['Boolean']['output']>;\n /** Where quota enforcement lives for this quota template. WORKSPACE -> wspace-activity-svc WorkspaceQuotaAssignment (per-workspace tracking) GLOBAL -> billing-svc QuotaAssignment (org-level tracking) */\n scope?: Maybe<QuotaScope>;\n /** The subscriptions that include this quota. SubscriptionFeatures represent features and quotas associated with subscriptions. */\n subscriptions?: Maybe<Array<Maybe<SubscriptionFeatures>>>;\n /** The timestamp when the quota was last updated. */\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type QuotaAssignment = {\n __typename?: 'QuotaAssignment';\n /** The billing account associated with this quota assignment (for POOLED quotas). */\n billingAccount?: Maybe<BillingAccount>;\n /** The unique identifier for the billing account associated with this quota assignment (for POOLED quotas). */\n billingAccountId?: Maybe<Scalars['ID']['output']>;\n /** Additional context */\n context?: Maybe<Scalars['JSON']['output']>;\n /** The timestamp when the quota assignment was created. */\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n /** Current usage sum for this quota assignment. */\n currentUsageSum?: Maybe<Scalars['Float']['output']>;\n /** The end time when the quota assignment expires. */\n endtime?: Maybe<Scalars['DateTime']['output']>;\n /** The unique identifier for the QuotaAssignment, automatically generated as a UUID. */\n id?: Maybe<Scalars['ID']['output']>;\n /** 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. */\n lastResetAt?: Maybe<Scalars['DateTime']['output']>;\n /** A JSON object defining the limits associated with the assigned quota (e.g., data caps, usage limits). */\n limits?: Maybe<Scalars['JSON']['output']>;\n /** The name of the quota assigned. */\n name?: Maybe<Scalars['String']['output']>;\n /** The type of quota - POOLED (billing account level) or PRODUCT_SPECIFIC (subscription level). */\n quotaType?: Maybe<QuotaType>;\n /** Copied from parent Quota.resetPeriod at creation. Tells the reset job how often limits.value should be restored. DAILY = restore every midnight UTC. */\n resetPeriod?: Maybe<QuotaResetPeriod>;\n /** A Quota is reusable or not (e.g., bot,seats). */\n reusable?: Maybe<Scalars['Boolean']['output']>;\n /** The subscription associated with this quota assignment (for PRODUCT_SPECIFIC quotas). */\n subscription?: Maybe<BillingSubscription>;\n /** The unique identifier for the subscription associated with this quota assignment (for PRODUCT_SPECIFIC quotas). */\n subscriptionId?: Maybe<Scalars['ID']['output']>;\n /** Total usage count for this quota assignment. */\n totalUsageCount?: Maybe<Scalars['Int']['output']>;\n /** Usage analytics for this quota assignment. */\n usageAnalytics?: Maybe<QuotaUsageAnalytics>;\n /** The usages associated with this quota assignment. For paginated results, use getQuotaUsageDetails query. */\n usages?: Maybe<Array<Maybe<Usage>>>;\n};\n\nexport type QuotaAssignmentSummary = {\n __typename?: 'QuotaAssignmentSummary';\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n currentUsageSum?: Maybe<Scalars['Int']['output']>;\n endtime?: Maybe<Scalars['DateTime']['output']>;\n id?: Maybe<Scalars['ID']['output']>;\n limits?: Maybe<Scalars['JSON']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n usageCount?: Maybe<Scalars['Int']['output']>;\n usages?: Maybe<Array<Maybe<Usage>>>;\n};\n\n/** Summary of a single quota assignment with usage details */\nexport type QuotaAssignmentUsageSummary = {\n __typename?: 'QuotaAssignmentUsageSummary';\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n endtime: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n /** Original limit value */\n limit: Scalars['Float']['output'];\n /** Current remaining limit (limit - used) */\n limitLeft: Scalars['Float']['output'];\n name: Scalars['String']['output'];\n /** Whether this quota has no limit (non-numeric type) */\n noLimit: Scalars['Boolean']['output'];\n quotaType: QuotaType;\n reusable: Scalars['Boolean']['output'];\n /** Subscription ID if PRODUCT_SPECIFIC */\n subscriptionId?: Maybe<Scalars['ID']['output']>;\n /** Usage percentage (used / limit * 100) */\n usagePercentage: Scalars['Float']['output'];\n /** Total usage amount (sum of all usage records) */\n used: Scalars['Float']['output'];\n};\n\nexport type QuotaAssignmentWithAnalytics = {\n __typename?: 'QuotaAssignmentWithAnalytics';\n /** Analytics and insights */\n analytics: QuotaUsageAnalytics;\n billingAccountId?: Maybe<Scalars['ID']['output']>;\n createdAt: Scalars['DateTime']['output'];\n currentUsageSum: Scalars['Float']['output'];\n endtime: Scalars['DateTime']['output'];\n healthScore: Scalars['Float']['output'];\n /** Basic quota assignment information */\n id: Scalars['ID']['output'];\n limitLeft: Scalars['Float']['output'];\n limits: Scalars['JSON']['output'];\n name: Scalars['String']['output'];\n quotaType: QuotaType;\n reusable: Scalars['Boolean']['output'];\n /** Status indicators */\n status: QuotaStatus;\n subscriptionId?: Maybe<Scalars['ID']['output']>;\n /** Usage summary information */\n totalUsageCount: Scalars['Int']['output'];\n usagePercentage: Scalars['Float']['output'];\n};\n\nexport type QuotaCheckResult = {\n __typename?: 'QuotaCheckResult';\n /** 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`. */\n assigned: Scalars['Boolean']['output'];\n limitLeft: Scalars['Int']['output'];\n noLimit: Scalars['Boolean']['output'];\n quotaAssignmentId: Scalars['ID']['output'];\n};\n\nexport enum QuotaEntityType {\n Project = 'project',\n Workspace = 'workspace'\n}\n\nexport type QuotaLimit = {\n __typename?: 'QuotaLimit';\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n lastResetAt?: Maybe<Scalars['DateTime']['output']>;\n limit: Scalars['Int']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n orgId: Scalars['String']['output'];\n resetPeriod?: Maybe<Scalars['String']['output']>;\n resourceType: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n used: Scalars['Int']['output'];\n};\n\nexport enum QuotaResetPeriod {\n /** Resets every day at midnight UTC (API requests/day, AI sessions/day) */\n Daily = 'DAILY',\n /** Resets at the start of each billing cycle */\n Monthly = 'MONTHLY',\n /** Never resets — static limits (seats, agents, storage cap) */\n Never = 'NEVER'\n}\n\nexport enum QuotaScope {\n /** Global quotas: tracked at billing-account level in billing-svc QuotaAssignment */\n Global = 'GLOBAL',\n /** Workspace-scoped quotas: tracked per-workspace in wspace-activity-svc */\n Workspace = 'WORKSPACE'\n}\n\nexport enum QuotaStatus {\n Critical = 'CRITICAL',\n Exhausted = 'EXHAUSTED',\n Healthy = 'HEALTHY',\n Inactive = 'INACTIVE',\n Warning = 'WARNING'\n}\n\nexport enum QuotaType {\n Pooled = 'POOLED',\n ProductSpecific = 'PRODUCT_SPECIFIC'\n}\n\nexport type QuotaUsageAnalytics = {\n __typename?: 'QuotaUsageAnalytics';\n /** Daily usage over the last 30 days */\n dailyUsage: Array<DailyUsage>;\n /** Peak usage information */\n peakUsage?: Maybe<PeakUsage>;\n /** Usage trends and predictions */\n trends?: Maybe<UsageTrends>;\n /** Usage by resource type */\n usageByType: Array<UsageByType>;\n};\n\nexport type QuotaUsageAndLimit = {\n __typename?: 'QuotaUsageAndLimit';\n /** 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. */\n assigned: Scalars['Boolean']['output'];\n limit: Scalars['Int']['output'];\n limitLeft: Scalars['Int']['output'];\n noLimit: Scalars['Boolean']['output'];\n};\n\nexport type QuotaUsageSummary = {\n __typename?: 'QuotaUsageSummary';\n limit: Scalars['Float']['output'];\n percentage: Scalars['Float']['output'];\n quotaId: Scalars['ID']['output'];\n quotaName: Scalars['String']['output'];\n status: QuotaStatus;\n usage: Scalars['Float']['output'];\n};\n\nexport type RadiusConfig = {\n __typename?: 'RADIUSConfig';\n createdAt: Scalars['DateTime']['output'];\n enabled: Scalars['Boolean']['output'];\n host: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n port: Scalars['Int']['output'];\n protocol: Scalars['String']['output'];\n tenantId: Scalars['ID']['output'];\n};\n\nexport type RadiusConfigInput = {\n host: Scalars['String']['input'];\n port?: InputMaybe<Scalars['Int']['input']>;\n protocol?: InputMaybe<Scalars['String']['input']>;\n retries?: InputMaybe<Scalars['Int']['input']>;\n sharedSecret: Scalars['String']['input'];\n timeout?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type RandomizeAndSendAssignmentInput = {\n applicationId: Scalars['ID']['input'];\n roundId: Scalars['ID']['input'];\n};\n\nexport type RatingDistribution = {\n __typename?: 'RatingDistribution';\n count: Scalars['Int']['output'];\n percentage: Scalars['Float']['output'];\n rating: Scalars['Int']['output'];\n};\n\n/** RBAC analytics summary */\nexport type RbacAnalytics = {\n __typename?: 'RbacAnalytics';\n allowedChecks: Scalars['Int']['output'];\n approvalRate: Scalars['Float']['output'];\n deniedChecks: Scalars['Int']['output'];\n scopeId: Scalars['String']['output'];\n topActions: Array<ActionCount>;\n topActors: Array<ActorCount>;\n totalAssignments: Scalars['Int']['output'];\n totalChecks: Scalars['Int']['output'];\n totalOverrides: Scalars['Int']['output'];\n totalResources: Scalars['Int']['output'];\n totalRoles: Scalars['Int']['output'];\n totalVisibilityRules: Scalars['Int']['output'];\n};\n\n/** RBAC configuration change log entry */\nexport type RbacChangeLog = {\n __typename?: 'RbacChangeLog';\n changeType: RbacChangeType;\n changedAt: Scalars['DateTime']['output'];\n changedBy: Scalars['String']['output'];\n description: Scalars['String']['output'];\n details?: Maybe<Scalars['JSON']['output']>;\n entityId: Scalars['String']['output'];\n entityType: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n scopeId: Scalars['String']['output'];\n};\n\n/** Types of RBAC configuration changes for audit log */\nexport enum RbacChangeType {\n ActorOverrideCreated = 'ACTOR_OVERRIDE_CREATED',\n ActorOverrideRemoved = 'ACTOR_OVERRIDE_REMOVED',\n ConfigUpdated = 'CONFIG_UPDATED',\n DefaultPermissionRemoved = 'DEFAULT_PERMISSION_REMOVED',\n DefaultPermissionSet = 'DEFAULT_PERMISSION_SET',\n ResourceDeactivated = 'RESOURCE_DEACTIVATED',\n ResourceRegistered = 'RESOURCE_REGISTERED',\n ResourceUpdated = 'RESOURCE_UPDATED',\n RoleAssigned = 'ROLE_ASSIGNED',\n RoleCreated = 'ROLE_CREATED',\n RoleDeleted = 'ROLE_DELETED',\n RoleOverrideCreated = 'ROLE_OVERRIDE_CREATED',\n RoleOverrideRemoved = 'ROLE_OVERRIDE_REMOVED',\n RoleRemoved = 'ROLE_REMOVED',\n RoleUpdated = 'ROLE_UPDATED',\n VisibilityRuleCreated = 'VISIBILITY_RULE_CREATED',\n VisibilityRuleRemoved = 'VISIBILITY_RULE_REMOVED',\n VisibilityRuleUpdated = 'VISIBILITY_RULE_UPDATED'\n}\n\n/** RBAC configuration key-value pair */\nexport type RbacConfig = {\n __typename?: 'RbacConfig';\n createdAt: Scalars['DateTime']['output'];\n description?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n key: Scalars['String']['output'];\n scopeId: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n value: Scalars['String']['output'];\n valueType: Scalars['String']['output'];\n};\n\n/** Delivery result for a single recipient within a platform delivery */\nexport type RecipientDeliveryResult = {\n __typename?: 'RecipientDeliveryResult';\n /** Error details if delivery failed */\n error?: Maybe<ChannelDeliveryError>;\n /** External platform message ID (e.g. SES MessageId, Twilio SID) */\n externalId?: Maybe<Scalars['String']['output']>;\n /** Internal message ID for tracking */\n messageId?: Maybe<Scalars['ID']['output']>;\n /** Zero-based index of this recipient in the input recipients array */\n recipientIndex: Scalars['Int']['output'];\n /** Current delivery status */\n status: DeliveryStatus;\n /** Whether delivery to this recipient succeeded */\n success: Scalars['Boolean']['output'];\n};\n\nexport type RecipientInput = {\n email?: InputMaybe<Scalars['String']['input']>;\n locale?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n phoneNumber?: InputMaybe<Scalars['String']['input']>;\n pushToken?: InputMaybe<Scalars['String']['input']>;\n slackUserId?: InputMaybe<Scalars['String']['input']>;\n teamsUserId?: InputMaybe<Scalars['String']['input']>;\n timezone?: InputMaybe<Scalars['String']['input']>;\n userId?: InputMaybe<Scalars['ID']['input']>;\n webhookUrl?: InputMaybe<Scalars['String']['input']>;\n whatsappNumber?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type RecordActivityInput = {\n action: Scalars['String']['input'];\n actorId?: InputMaybe<Scalars['String']['input']>;\n /** Optional idempotency key for backfill/import (audit phase-2). Derive a STABLE key from the source row (e.g. `global_auth_audit:<rowId>`). 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). */\n dedupeKey?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n ipAddress?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n resource: Scalars['String']['input'];\n resourceId?: InputMaybe<Scalars['String']['input']>;\n resourceType?: InputMaybe<Scalars['String']['input']>;\n tenantId?: InputMaybe<Scalars['String']['input']>;\n userAgent?: InputMaybe<Scalars['String']['input']>;\n userId?: InputMaybe<Scalars['String']['input']>;\n workspaceId?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type RecordAffiliateConversionInput = {\n currency?: InputMaybe<Scalars['String']['input']>;\n journeyId: Scalars['String']['input'];\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n orderId?: InputMaybe<Scalars['String']['input']>;\n productSlug?: InputMaybe<Scalars['String']['input']>;\n storeOrderId?: InputMaybe<Scalars['String']['input']>;\n type: Scalars['String']['input'];\n valueAmount?: InputMaybe<Scalars['Float']['input']>;\n};\n\nexport type RecordAffiliateTouchpointInput = {\n code: Scalars['String']['input'];\n geographyCountry?: InputMaybe<Scalars['String']['input']>;\n geographyRegion?: InputMaybe<Scalars['String']['input']>;\n journeyId: Scalars['String']['input'];\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n mode?: InputMaybe<Scalars['String']['input']>;\n path?: InputMaybe<Scalars['String']['input']>;\n productSlug?: InputMaybe<Scalars['String']['input']>;\n referrer?: InputMaybe<Scalars['String']['input']>;\n utmCampaign?: InputMaybe<Scalars['String']['input']>;\n utmMedium?: InputMaybe<Scalars['String']['input']>;\n utmSource?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type RecordAppInstallationInput = {\n grantedPermissions?: InputMaybe<Scalars['JSON']['input']>;\n manifest?: InputMaybe<Scalars['JSON']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n organizationId?: InputMaybe<Scalars['String']['input']>;\n productId: Scalars['String']['input'];\n version?: InputMaybe<Scalars['String']['input']>;\n workspaceId: Scalars['String']['input'];\n workspaceName?: InputMaybe<Scalars['String']['input']>;\n workspaceType?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type RecordAssignmentSubmissionInput = {\n notes?: InputMaybe<Scalars['String']['input']>;\n repoUrl?: InputMaybe<Scalars['String']['input']>;\n roundId: Scalars['ID']['input'];\n videoUrl?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type RecordBounceInput = {\n bounceType: BounceType;\n campaignId: Scalars['ID']['input'];\n diagnosticCode?: InputMaybe<Scalars['String']['input']>;\n email: Scalars['String']['input'];\n reason?: InputMaybe<Scalars['String']['input']>;\n subscriberId: Scalars['ID']['input'];\n};\n\nexport type RecordComplaintInput = {\n campaignId: Scalars['ID']['input'];\n complaintType?: InputMaybe<Scalars['String']['input']>;\n email: Scalars['String']['input'];\n feedbackType?: InputMaybe<Scalars['String']['input']>;\n subscriberId: Scalars['ID']['input'];\n};\n\nexport type RecordConsentInput = {\n consentType: Scalars['String']['input'];\n granted: Scalars['Boolean']['input'];\n ipAddress?: InputMaybe<Scalars['String']['input']>;\n source?: InputMaybe<Scalars['String']['input']>;\n subscriberId: Scalars['ID']['input'];\n userAgent?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type RecordEarningEntryInput = {\n amount: Scalars['Float']['input'];\n availableAt?: InputMaybe<Scalars['DateTime']['input']>;\n billingAccountId: Scalars['ID']['input'];\n currency: Scalars['String']['input'];\n description?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n ownerUserId?: InputMaybe<Scalars['String']['input']>;\n sourceCategory: EarningsSourceCategory;\n sourceEventId?: InputMaybe<Scalars['String']['input']>;\n /** 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. */\n sourceIdempotencyKey?: InputMaybe<Scalars['String']['input']>;\n sourceReferenceId?: InputMaybe<Scalars['String']['input']>;\n sourceSubcategory?: InputMaybe<Scalars['String']['input']>;\n unitType?: InputMaybe<EarningUnitType>;\n};\n\n/** 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. */\nexport type RecordExploreClickInput = {\n /** Bearer secret for the conversation the click belongs to. */\n conversationToken: Scalars['String']['input'];\n /** CTA or REFERENCE. */\n kind: Scalars['String']['input'];\n /** The assistant message whose link was followed. */\n messageId: Scalars['ID']['input'];\n /** Destination followed. Must be a link that message actually offered. */\n url: Scalars['String']['input'];\n};\n\nexport type RecordExploreClickResult = {\n __typename?: 'RecordExploreClickResult';\n recorded: Scalars['Boolean']['output'];\n};\n\nexport type RecordExternalSettlementInput = {\n /** Settlement amount in whole currency units (must be > 0). */\n amount: Scalars['Float']['input'];\n /** ISO-4217 currency code (e.g. USD, INR). */\n currency: Scalars['String']['input'];\n /** Human-readable description of what the settlement is for. */\n description?: InputMaybe<Scalars['String']['input']>;\n /** 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. */\n externalRef: Scalars['String']['input'];\n /** Opaque org ID the settlement is recorded against. */\n orgId: Scalars['ID']['input'];\n /** Settlement status; SETTLED for a completed external/manual collection. */\n status: ExternalSettlementStatus;\n /** Optional opaque workspace ID that originated the settlement (stored for traceability). */\n workspaceId?: InputMaybe<Scalars['ID']['input']>;\n};\n\nexport type RecordNotificationActionInput = {\n actionId?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n notificationId: Scalars['ID']['input'];\n};\n\nexport type RecordProductVisitInput = {\n /** Optional: app URL the user landed on. Used as CTA target in the welcome email. Defaults to https://app.<slug>.com when omitted. */\n appUrl?: InputMaybe<Scalars['String']['input']>;\n /** PlatformProduct.slug — e.g. \"vibecontrols\", \"botlit\", \"workspaces\". */\n productSlug: Scalars['String']['input'];\n};\n\nexport type RecordProductVisitResult = {\n __typename?: 'RecordProductVisitResult';\n /** True iff this call created the row (i.e. user's actual first visit). */\n isFirstVisit: Scalars['Boolean']['output'];\n /** Slug echoed back for client correlation. */\n productSlug: Scalars['String']['output'];\n /** Timestamp the first visit was recorded. */\n recordedAt: Scalars['DateTime']['output'];\n /** Channel-svc messageId when status = SENT, else null. */\n welcomeEmailMessageId?: Maybe<Scalars['String']['output']>;\n /** 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 */\n welcomeEmailStatus: Scalars['String']['output'];\n};\n\nexport type RecordSaleInput = {\n applicationId?: InputMaybe<Scalars['ID']['input']>;\n buyerOrgId?: InputMaybe<Scalars['ID']['input']>;\n buyerTenantId?: InputMaybe<Scalars['ID']['input']>;\n buyerUserId: Scalars['ID']['input'];\n buyerWorkspaceId?: InputMaybe<Scalars['ID']['input']>;\n currency?: InputMaybe<Scalars['String']['input']>;\n discountAmount?: InputMaybe<Scalars['Float']['input']>;\n discountCode?: InputMaybe<Scalars['String']['input']>;\n grossAmount: Scalars['Float']['input'];\n installationScope: Scalars['String']['input'];\n isRenewal?: InputMaybe<Scalars['Boolean']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n organizationId: Scalars['ID']['input'];\n planId?: InputMaybe<Scalars['ID']['input']>;\n planName?: InputMaybe<Scalars['String']['input']>;\n platformFeeRate: Scalars['Float']['input'];\n previousSaleId?: InputMaybe<Scalars['ID']['input']>;\n pricingModel: DevPortalPricingModel;\n storeOrderId?: InputMaybe<Scalars['ID']['input']>;\n storeProductId?: InputMaybe<Scalars['ID']['input']>;\n subscriptionPeriodEnd?: InputMaybe<Scalars['DateTime']['input']>;\n subscriptionPeriodStart?: InputMaybe<Scalars['DateTime']['input']>;\n taxAmount?: InputMaybe<Scalars['Float']['input']>;\n taxCountry?: InputMaybe<Scalars['String']['input']>;\n taxRate?: InputMaybe<Scalars['Float']['input']>;\n taxRegion?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type RecordTourAnalyticsInput = {\n /** Operation context for scoping (workspaceId, userId, productId, moduleId, etc.) */\n context?: InputMaybe<TourEventContextInput>;\n deviceType?: InputMaybe<DeviceType>;\n duration?: InputMaybe<Scalars['Int']['input']>;\n eventType: TourAnalyticsEventType;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n moduleId?: InputMaybe<Scalars['String']['input']>;\n pageId?: InputMaybe<Scalars['String']['input']>;\n productId?: InputMaybe<Scalars['String']['input']>;\n sessionId?: InputMaybe<Scalars['String']['input']>;\n stepId?: InputMaybe<Scalars['String']['input']>;\n stepOrder?: InputMaybe<Scalars['Int']['input']>;\n tourId: Scalars['String']['input'];\n userAgent?: InputMaybe<Scalars['String']['input']>;\n userId?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type RecordTourProgressInput = {\n completedSteps?: InputMaybe<Scalars['JSON']['input']>;\n /** Operation context for scoping (workspaceId, userId, productId, moduleId, etc.) */\n context?: InputMaybe<ContextInput>;\n currentStepId?: InputMaybe<Scalars['String']['input']>;\n currentStepOrder?: InputMaybe<Scalars['Int']['input']>;\n deviceType?: InputMaybe<DeviceType>;\n sessionId?: InputMaybe<Scalars['String']['input']>;\n skippedSteps?: InputMaybe<Scalars['JSON']['input']>;\n status?: InputMaybe<TourUserStatus>;\n tourId: Scalars['String']['input'];\n userId: Scalars['String']['input'];\n};\n\nexport type RecordUsageInput = {\n amount: Scalars['String']['input'];\n licenseKey: Scalars['String']['input'];\n metricType: Scalars['String']['input'];\n period?: InputMaybe<LicenseUsagePeriod>;\n};\n\nexport type RecurringBillingPlan = {\n __typename?: 'RecurringBillingPlan';\n amount: Scalars['Float']['output'];\n createdAt: Scalars['String']['output'];\n currency: Scalars['String']['output'];\n description?: Maybe<Scalars['String']['output']>;\n entityId: Scalars['String']['output'];\n entityType: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n interval: Scalars['String']['output'];\n intervalCount: Scalars['Int']['output'];\n isActive: Scalars['Boolean']['output'];\n name: Scalars['String']['output'];\n razorpayPlanId?: Maybe<Scalars['String']['output']>;\n stripePriceId?: Maybe<Scalars['String']['output']>;\n stripeProductId?: Maybe<Scalars['String']['output']>;\n updatedAt: Scalars['String']['output'];\n};\n\nexport type ReferralCode = {\n __typename?: 'ReferralCode';\n code: Scalars['String']['output'];\n coupon?: Maybe<Coupon>;\n createdAt: Scalars['DateTime']['output'];\n createdBy: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n isActive: Scalars['Boolean']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n onBehalfOf: Scalars['String']['output'];\n orgId: Scalars['String']['output'];\n refereeDiscountType?: Maybe<CouponType>;\n refereeDiscountValue?: Maybe<Scalars['Float']['output']>;\n referrerRewardCredits?: Maybe<Scalars['Float']['output']>;\n referrerRewardType: ReferralRewardType;\n referrerRewardValue: Scalars['Float']['output'];\n totalReferrals: Scalars['Int']['output'];\n totalRevenueAmount: Scalars['Float']['output'];\n totalRewardsEarned: Scalars['Float']['output'];\n updatedAt: Scalars['DateTime']['output'];\n userId: Scalars['String']['output'];\n validFrom: Scalars['DateTime']['output'];\n validUntil?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type ReferralCodesListResponse = {\n __typename?: 'ReferralCodesListResponse';\n codes: Array<ReferralCode>;\n hasMore: Scalars['Boolean']['output'];\n total: Scalars['Int']['output'];\n};\n\nexport enum ReferralRewardType {\n Credits = 'CREDITS',\n FixedAmount = 'FIXED_AMOUNT',\n Percentage = 'PERCENTAGE'\n}\n\nexport type ReferralUsage = {\n __typename?: 'ReferralUsage';\n convertedAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy: Scalars['String']['output'];\n currency: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n onBehalfOf: Scalars['String']['output'];\n orderAmount: Scalars['Float']['output'];\n orderId?: Maybe<Scalars['String']['output']>;\n refereeDiscountAmount: Scalars['Float']['output'];\n referralCode: ReferralCode;\n referredAt: Scalars['DateTime']['output'];\n referredUserId: Scalars['String']['output'];\n referrerRewardAmount: Scalars['Float']['output'];\n referrerUserId: Scalars['String']['output'];\n rewardPaid: Scalars['Boolean']['output'];\n rewardPaidAt?: Maybe<Scalars['DateTime']['output']>;\n transactionId?: Maybe<Scalars['String']['output']>;\n};\n\nexport type Refund = {\n __typename?: 'Refund';\n amount: Scalars['Float']['output'];\n charge: Charge;\n chargeId: Scalars['String']['output'];\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n currency: Scalars['String']['output'];\n gatewayRefundId?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n processedAt?: Maybe<Scalars['DateTime']['output']>;\n provider?: Maybe<Scalars['String']['output']>;\n reason?: Maybe<Scalars['String']['output']>;\n status: RefundStatus;\n updatedAt: Scalars['DateTime']['output'];\n};\n\n/** Refund record - tracks all refunds (manual and from failed webhooks) */\nexport type RefundRecord = {\n __typename?: 'RefundRecord';\n amount: Scalars['Float']['output'];\n billingAccountId?: Maybe<Scalars['String']['output']>;\n createdAt: Scalars['DateTime']['output'];\n currency: Scalars['String']['output'];\n errorMessage?: Maybe<Scalars['String']['output']>;\n gatewayOrderId?: Maybe<Scalars['String']['output']>;\n gatewayPaymentId: Scalars['String']['output'];\n gatewayRefundId?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n notes?: Maybe<Scalars['String']['output']>;\n orgId: Scalars['String']['output'];\n processedAt?: Maybe<Scalars['DateTime']['output']>;\n processedBy?: Maybe<Scalars['String']['output']>;\n provider: Scalars['String']['output'];\n purchaseDetail?: Maybe<Scalars['String']['output']>;\n purchaseType?: Maybe<Scalars['String']['output']>;\n reason?: Maybe<Scalars['String']['output']>;\n retryCount: Scalars['Int']['output'];\n source: RefundSource;\n status: RefundRecordStatus;\n transaction?: Maybe<Transaction>;\n transactionId?: Maybe<Scalars['String']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n webhookLog?: Maybe<BillingWebhookLog>;\n webhookLogId?: Maybe<Scalars['String']['output']>;\n};\n\n/** Status of a refund record (for tracking refund requests) */\nexport enum RefundRecordStatus {\n Completed = 'COMPLETED',\n Failed = 'FAILED',\n Pending = 'PENDING',\n Processing = 'PROCESSING',\n Skipped = 'SKIPPED'\n}\n\n/** Source of a refund request */\nexport enum RefundSource {\n DuplicatePayment = 'DUPLICATE_PAYMENT',\n Manual = 'MANUAL',\n SubscriptionCancel = 'SUBSCRIPTION_CANCEL',\n WebhookRecovery = 'WEBHOOK_RECOVERY'\n}\n\n/** Refund statistics */\nexport type RefundStats = {\n __typename?: 'RefundStats';\n completed: Scalars['Int']['output'];\n failed: Scalars['Int']['output'];\n pending: Scalars['Int']['output'];\n processing: Scalars['Int']['output'];\n skipped: Scalars['Int']['output'];\n totalCompletedAmount: Scalars['Float']['output'];\n totalPendingAmount: Scalars['Float']['output'];\n};\n\nexport enum RefundStatus {\n Canceled = 'CANCELED',\n Failed = 'FAILED',\n Pending = 'PENDING',\n Succeeded = 'SUCCEEDED'\n}\n\nexport type RegisterProductAssetInput = {\n caption?: InputMaybe<Scalars['String']['input']>;\n fileName?: InputMaybe<Scalars['String']['input']>;\n fileType: ProductAssetType;\n /** 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. */\n filesSvcId: Scalars['ID']['input'];\n locale?: InputMaybe<Scalars['String']['input']>;\n /** 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). */\n makeCurrent?: InputMaybe<Scalars['Boolean']['input']>;\n mimeType?: InputMaybe<Scalars['String']['input']>;\n orderIndex?: InputMaybe<Scalars['Int']['input']>;\n productId: Scalars['ID']['input'];\n version?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type RegisterPublisherInput = {\n bio?: InputMaybe<Scalars['String']['input']>;\n contactEmail?: InputMaybe<Scalars['String']['input']>;\n contactPhone?: InputMaybe<Scalars['String']['input']>;\n country?: InputMaybe<Scalars['String']['input']>;\n email: Scalars['String']['input'];\n legalName?: InputMaybe<Scalars['String']['input']>;\n logoUrl?: InputMaybe<Scalars['String']['input']>;\n name: Scalars['String']['input'];\n organizationId?: InputMaybe<Scalars['ID']['input']>;\n supportUrl?: InputMaybe<Scalars['String']['input']>;\n tier?: InputMaybe<PublisherTier>;\n websiteUrl?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Input for registering a resource with custom RBAC configurations */\nexport type RegisterResourceInput = {\n identifier: Scalars['String']['input'];\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n ownerId?: InputMaybe<Scalars['String']['input']>;\n ownerType?: InputMaybe<ActorType>;\n parentResourceId?: InputMaybe<Scalars['String']['input']>;\n resourceType: Scalars['String']['input'];\n scopeId: Scalars['String']['input'];\n};\n\nexport type RegisterSupportAttachmentPartInput = {\n etag: Scalars['String']['input'];\n partNumber: Scalars['Int']['input'];\n sessionId: Scalars['ID']['input'];\n ticketId: Scalars['ID']['input'];\n};\n\nexport type RejectWaitlistInput = {\n id: Scalars['ID']['input'];\n reason?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum ReleaseStatus {\n Draft = 'DRAFT',\n Halted = 'HALTED',\n Live = 'LIVE',\n Ready = 'READY',\n Rejected = 'REJECTED',\n Reviewing = 'REVIEWING',\n RolledBack = 'ROLLED_BACK',\n RollingOut = 'ROLLING_OUT'\n}\n\nexport type ReleaseSuppressionInput = {\n channel: SuppressionChannel;\n identifier: Scalars['String']['input'];\n identifierType: Scalars['String']['input'];\n};\n\nexport type ReleaseTrack = {\n __typename?: 'ReleaseTrack';\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n name: Scalars['String']['output'];\n productId: Scalars['ID']['output'];\n type: ReleaseTrackType;\n};\n\nexport enum ReleaseTrackType {\n ClosedTesting = 'CLOSED_TESTING',\n Internal = 'INTERNAL',\n OpenTesting = 'OPEN_TESTING',\n Production = 'PRODUCTION'\n}\n\nexport type ReleaseTrackUser = {\n __typename?: 'ReleaseTrackUser';\n addedAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n removedAt?: Maybe<Scalars['DateTime']['output']>;\n trackId: Scalars['ID']['output'];\n userId: Scalars['String']['output'];\n};\n\nexport type RemoveTagFromApplicationInput = {\n applicationId: Scalars['ID']['input'];\n tagId: Scalars['ID']['input'];\n};\n\nexport type ReplaceApplicationTagsInput = {\n applicationId: Scalars['ID']['input'];\n tagIds: Array<Scalars['ID']['input']>;\n};\n\nexport type ReplaceChannelConnectionTagsInput = {\n entityId: Scalars['ID']['input'];\n tagIds: Array<Scalars['ID']['input']>;\n};\n\nexport type ReplaceChannelTagsInput = {\n entityId: Scalars['ID']['input'];\n tagIds: Array<Scalars['ID']['input']>;\n};\n\nexport type ReplaceStoreProductTagsInput = {\n entityId: Scalars['ID']['input'];\n tagIds: Array<Scalars['ID']['input']>;\n};\n\nexport type RequestCreditWithdrawalInput = {\n billingAccountId: Scalars['ID']['input'];\n creditAmount: Scalars['Float']['input'];\n currency?: InputMaybe<Scalars['String']['input']>;\n notes?: InputMaybe<Scalars['String']['input']>;\n payoutAccountId: Scalars['ID']['input'];\n};\n\n/** Input for requesting a return */\nexport type RequestOrderReturnInput = {\n notes?: InputMaybe<Scalars['String']['input']>;\n orderId: Scalars['ID']['input'];\n reason: Scalars['String']['input'];\n};\n\nexport type RequestPayoutInput = {\n amount: Scalars['Float']['input'];\n billingAccountId: Scalars['ID']['input'];\n currency: Scalars['String']['input'];\n notes?: InputMaybe<Scalars['String']['input']>;\n payoutAccountId: Scalars['ID']['input'];\n};\n\nexport type RescheduleNotificationInput = {\n scheduledFor: Scalars['DateTime']['input'];\n scheduledNotificationId: Scalars['ID']['input'];\n timezone?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type ResendVerificationResult = {\n __typename?: 'ResendVerificationResult';\n message: Scalars['String']['output'];\n success: Scalars['Boolean']['output'];\n};\n\n/** 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. */\nexport type ResolveBillingAccountInput = {\n /** Opaque org id that anchors the billing account. When present the org's default billing account is resolved-or-created. */\n orgId?: InputMaybe<Scalars['ID']['input']>;\n /** 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). */\n ownerUserId?: InputMaybe<Scalars['ID']['input']>;\n /** 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. */\n workspaceId?: InputMaybe<Scalars['ID']['input']>;\n};\n\nexport type ResolveContextWidgetConversationInput = {\n description?: InputMaybe<Scalars['String']['input']>;\n sourceContext: WidgetConversationSourceContextInput;\n title?: InputMaybe<Scalars['String']['input']>;\n workspaceId: Scalars['ID']['input'];\n};\n\n/** Registered resource with custom permission configurations. Resources are only registered when they have non-default permissions (overrides, visibility rules, or scoped assignments). */\nexport type Resource = {\n __typename?: 'Resource';\n children: Array<Resource>;\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n identifier: Scalars['String']['output'];\n isActive: Scalars['Boolean']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n ownerId?: Maybe<Scalars['String']['output']>;\n ownerType?: Maybe<ActorType>;\n parent?: Maybe<Resource>;\n parentResourceId?: Maybe<Scalars['String']['output']>;\n resourceType: Scalars['String']['output'];\n scopeId: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n visibilityRules: Array<VisibilityRule>;\n};\n\n/** Filter for querying resources */\nexport type ResourceFilterInput = {\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n ownerId?: InputMaybe<Scalars['String']['input']>;\n resourceType?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** 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\"). */\nexport type ResourceTypeProductInfo = {\n __typename?: 'ResourceTypeProductInfo';\n /** Product slugs (PlatformProduct.slug) this resource type is relevant to. */\n products: Array<Scalars['String']['output']>;\n resourceType: Scalars['String']['output'];\n};\n\nexport type RetryBillingOrderCallbackResponse = {\n __typename?: 'RetryBillingOrderCallbackResponse';\n error?: Maybe<Scalars['String']['output']>;\n order?: Maybe<BillingOrder>;\n success: Scalars['Boolean']['output'];\n};\n\nexport type RetrySyncOutboxResult = {\n __typename?: 'RetrySyncOutboxResult';\n entry?: Maybe<SyncOutboxEntry>;\n message?: Maybe<Scalars['String']['output']>;\n success: Scalars['Boolean']['output'];\n};\n\n/** Revenue summary for dashboard */\nexport type RevenueSummary = {\n __typename?: 'RevenueSummary';\n nextPayoutAmount?: Maybe<Scalars['Float']['output']>;\n nextPayoutDate?: Maybe<Scalars['DateTime']['output']>;\n pendingBalance: Scalars['Float']['output'];\n period: Scalars['String']['output'];\n revenueByGeo?: Maybe<Scalars['JSON']['output']>;\n revenueByPricingModel?: Maybe<Scalars['JSON']['output']>;\n topApps: Array<AppRevenueSummary>;\n totalGrossRevenue: Scalars['Float']['output'];\n totalNetRevenue: Scalars['Float']['output'];\n totalNewCustomers: Scalars['Int']['output'];\n totalPlatformFees: Scalars['Float']['output'];\n totalRefunds: Scalars['Float']['output'];\n totalRefundsCount: Scalars['Int']['output'];\n totalSales: Scalars['Int']['output'];\n};\n\nexport enum ReviewStatus {\n Approved = 'APPROVED',\n ChangesRequested = 'CHANGES_REQUESTED',\n InProgress = 'IN_PROGRESS',\n Pending = 'PENDING',\n Rejected = 'REJECTED'\n}\n\n/** Review summary for an application */\nexport type ReviewSummary = {\n __typename?: 'ReviewSummary';\n applicationId: Scalars['ID']['output'];\n averageRating: Scalars['Float']['output'];\n featuredReviewsCount: Scalars['Int']['output'];\n ratingDistribution: AppRatingDistribution;\n totalReviews: Scalars['Int']['output'];\n verifiedPurchaseCount: Scalars['Int']['output'];\n};\n\n/** Result of revoking all sessions */\nexport type RevokeAllSessionsResult = {\n __typename?: 'RevokeAllSessionsResult';\n /** Number of sessions that were revoked */\n revokedCount: Scalars['Int']['output'];\n success: Scalars['Boolean']['output'];\n};\n\nexport type RevokeAppWorkspaceAccessInput = {\n appId: Scalars['ID']['input'];\n reason?: InputMaybe<Scalars['String']['input']>;\n workspaceId: Scalars['ID']['input'];\n};\n\n/** Role - Convention-based with resource type mappings */\nexport type Role = {\n __typename?: 'Role';\n /** Actors assigned this role */\n actorAssignments: Array<ActorRoleAssignment>;\n /** Child roles in hierarchy */\n children: Array<Role>;\n createdAt: Scalars['DateTime']['output'];\n createdBy: Scalars['String']['output'];\n /** Default permission levels per resource type */\n defaultPermissions: Array<RoleDefaultPermission>;\n description?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n isSystem: Scalars['Boolean']['output'];\n name: Scalars['String']['output'];\n onBehalfOf?: Maybe<Scalars['String']['output']>;\n /** Parent role in hierarchy */\n parent?: Maybe<Role>;\n /** Role-level permission overrides */\n permissionOverrides: Array<RolePermissionOverride>;\n priority: Scalars['Int']['output'];\n /** Product this role belongs to (PlatformProduct.slug). Null = cross-product / platform role (e.g. Tenant Owner, Editor, Viewer) shown under every product. */\n productSlug?: Maybe<Scalars['String']['output']>;\n scopeId: Scalars['String']['output'];\n scopeType: Scalars['String']['output'];\n /** Stable read-only identity of a managed role template and its clones. Null for custom roles. */\n templateKey?: Maybe<Scalars['String']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n};\n\n/** Maps role to default permission level per resource type */\nexport type RoleDefaultPermission = {\n __typename?: 'RoleDefaultPermission';\n createdAt: Scalars['DateTime']['output'];\n createdBy: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n level: RoleLevel;\n onBehalfOf?: Maybe<Scalars['String']['output']>;\n resourceType: Scalars['String']['output'];\n roleId: Scalars['String']['output'];\n};\n\n/** 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. */\nexport type RoleFilterInput = {\n /** Whether to include cross-product/platform roles (productSlug = null) when a product filter is applied. Defaults to true. Ignored when product is unset. */\n includePlatformRoles?: InputMaybe<Scalars['Boolean']['input']>;\n includeSystem?: InputMaybe<Scalars['Boolean']['input']>;\n parentId?: InputMaybe<Scalars['ID']['input']>;\n /** 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. */\n product?: InputMaybe<Scalars['String']['input']>;\n /** @deprecated Ignored — role reads are bound to the authorized top-level scopeId argument (BOFF-2749/RBAC-001). */\n scopeId?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Basic role information */\nexport type RoleInfo = {\n __typename?: 'RoleInfo';\n id: Scalars['ID']['output'];\n name: Scalars['String']['output'];\n priority: Scalars['Int']['output'];\n};\n\n/** Role permission levels for resource types */\nexport enum RoleLevel {\n /** Full access to resource type */\n Admin = 'ADMIN',\n /** Read + Write access */\n Editor = 'EDITOR',\n /** No default access (must be explicitly granted) */\n None = 'NONE',\n /** Read-only access */\n Viewer = 'VIEWER'\n}\n\n/** Role-level permission override for specific resources */\nexport type RolePermissionOverride = {\n __typename?: 'RolePermissionOverride';\n action: Scalars['String']['output'];\n createdAt: Scalars['DateTime']['output'];\n createdBy: Scalars['String']['output'];\n expiresAt?: Maybe<Scalars['DateTime']['output']>;\n id: Scalars['ID']['output'];\n onBehalfOf?: Maybe<Scalars['String']['output']>;\n overrideType: OverrideType;\n priority: Scalars['Int']['output'];\n reason?: Maybe<Scalars['String']['output']>;\n /** Optional: Scope to specific resource instance */\n resourceId?: Maybe<Scalars['String']['output']>;\n resourceType: Scalars['String']['output'];\n /** The role this override applies to */\n role: Role;\n roleId: Scalars['String']['output'];\n scopeId: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n validFrom?: Maybe<Scalars['DateTime']['output']>;\n validUntil?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type SamlInput = {\n relayState?: InputMaybe<Scalars['String']['input']>;\n samlResponse: Scalars['String']['input'];\n tenantId?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type SamlRequestResult = {\n __typename?: 'SAMLRequestResult';\n requestId: Scalars['String']['output'];\n samlRequest: Scalars['String']['output'];\n ssoUrl: Scalars['String']['output'];\n};\n\nexport enum SlaBreachStatus {\n Breached = 'BREACHED',\n None = 'NONE',\n Warning_50 = 'WARNING_50',\n Warning_75 = 'WARNING_75',\n Warning_90 = 'WARNING_90'\n}\n\nexport type SlaPolicy = {\n __typename?: 'SLAPolicy';\n businessHours?: Maybe<Scalars['JSON']['output']>;\n categoryId?: Maybe<Scalars['String']['output']>;\n context?: Maybe<SupportContext>;\n createdAt: Scalars['DateTime']['output'];\n description?: Maybe<Scalars['String']['output']>;\n escalationRules?: Maybe<Scalars['JSON']['output']>;\n firstResponseMinutes: Scalars['Int']['output'];\n holidays?: Maybe<Scalars['JSON']['output']>;\n id: Scalars['ID']['output'];\n isActive: Scalars['Boolean']['output'];\n isDefault: Scalars['Boolean']['output'];\n name: Scalars['String']['output'];\n priority: SupportTicketPriority;\n resolutionMinutes: Scalars['Int']['output'];\n tenantId?: Maybe<Scalars['String']['output']>;\n timezone: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type SlaPolicyConnection = {\n __typename?: 'SLAPolicyConnection';\n hasMore: Scalars['Boolean']['output'];\n nodes: Array<SlaPolicy>;\n totalCount: Scalars['Int']['output'];\n};\n\nexport type SlaPolicyFilterInput = {\n categoryId?: InputMaybe<Scalars['String']['input']>;\n context?: InputMaybe<SupportContextFilterInput>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n isDefault?: InputMaybe<Scalars['Boolean']['input']>;\n priority?: InputMaybe<SupportTicketPriority>;\n};\n\nexport type SlaPriorityBreakdown = {\n __typename?: 'SLAPriorityBreakdown';\n averageFirstResponseMinutes?: Maybe<Scalars['Float']['output']>;\n averageResolutionMinutes?: Maybe<Scalars['Float']['output']>;\n firstResponseCompliance: Scalars['Float']['output'];\n priority: SupportTicketPriority;\n resolutionCompliance: Scalars['Float']['output'];\n totalTickets: Scalars['Int']['output'];\n};\n\nexport type SlaReport = {\n __typename?: 'SLAReport';\n averageFirstResponseMinutes?: Maybe<Scalars['Float']['output']>;\n averageResolutionMinutes?: Maybe<Scalars['Float']['output']>;\n breachRate: Scalars['Float']['output'];\n byPriority: Array<SlaPriorityBreakdown>;\n endDate: Scalars['DateTime']['output'];\n firstResponseCompliance: Scalars['Float']['output'];\n period: TimePeriod;\n resolutionCompliance: Scalars['Float']['output'];\n startDate: Scalars['DateTime']['output'];\n ticketsWithSLA: Scalars['Int']['output'];\n totalBreaches: Scalars['Int']['output'];\n totalTickets: Scalars['Int']['output'];\n};\n\nexport type SlaReportFilterInput = {\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n period?: InputMaybe<TimePeriod>;\n priority?: InputMaybe<SupportTicketPriority>;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n workspaceId?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type SlaStatus = {\n __typename?: 'SLAStatus';\n breachStatus: SlaBreachStatus;\n escalationLevel: Scalars['Int']['output'];\n firstResponseAt?: Maybe<Scalars['DateTime']['output']>;\n firstResponseDue?: Maybe<Scalars['DateTime']['output']>;\n firstResponseMet?: Maybe<Scalars['Boolean']['output']>;\n firstResponseTimeRemaining?: Maybe<Scalars['Int']['output']>;\n isPaused: Scalars['Boolean']['output'];\n pausedAt?: Maybe<Scalars['DateTime']['output']>;\n policy?: Maybe<SlaPolicy>;\n policyId?: Maybe<Scalars['String']['output']>;\n resolutionDue?: Maybe<Scalars['DateTime']['output']>;\n resolutionMet?: Maybe<Scalars['Boolean']['output']>;\n resolutionTimeRemaining?: Maybe<Scalars['Int']['output']>;\n resolvedAt?: Maybe<Scalars['DateTime']['output']>;\n ticketId: Scalars['String']['output'];\n totalPausedSeconds: Scalars['Int']['output'];\n};\n\n/** SSO/SAML Configuration */\nexport type SsoConfig = {\n __typename?: 'SSOConfig';\n certificate: Scalars['String']['output'];\n createdAt: Scalars['DateTime']['output'];\n enabled: Scalars['Boolean']['output'];\n entityId: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n identifier: Scalars['String']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n sloUrl?: Maybe<Scalars['String']['output']>;\n ssoUrl: Scalars['String']['output'];\n tenantId: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n};\n\n/** Input for creating or updating SSO/SAML configuration */\nexport type SsoConfigInput = {\n certificate: Scalars['String']['input'];\n enabled?: InputMaybe<Scalars['Boolean']['input']>;\n entityId: Scalars['String']['input'];\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n sloUrl?: InputMaybe<Scalars['String']['input']>;\n ssoUrl: Scalars['String']['input'];\n};\n\nexport enum SaleStatus {\n Cancelled = 'CANCELLED',\n Chargeback = 'CHARGEBACK',\n Completed = 'COMPLETED',\n Disputed = 'DISPUTED',\n PartialRefund = 'PARTIAL_REFUND',\n Pending = 'PENDING',\n Refunded = 'REFUNDED'\n}\n\nexport type SatisfactionMetrics = {\n __typename?: 'SatisfactionMetrics';\n averageRating?: Maybe<Scalars['Float']['output']>;\n csatScore?: Maybe<Scalars['Float']['output']>;\n endDate: Scalars['DateTime']['output'];\n feedbackBreakdown: Array<FeedbackBreakdown>;\n npsScore?: Maybe<Scalars['Float']['output']>;\n period: TimePeriod;\n ratingDistribution: Array<RatingDistribution>;\n responseRate: Scalars['Float']['output'];\n startDate: Scalars['DateTime']['output'];\n totalResponses: Scalars['Int']['output'];\n totalSurveysSent: Scalars['Int']['output'];\n trendData: Array<SatisfactionTrend>;\n};\n\nexport type SatisfactionMetricsFilterInput = {\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n groupBy?: InputMaybe<TrendGroupBy>;\n period?: InputMaybe<TimePeriod>;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n workspaceId?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type SatisfactionTrend = {\n __typename?: 'SatisfactionTrend';\n averageRating?: Maybe<Scalars['Float']['output']>;\n csatScore?: Maybe<Scalars['Float']['output']>;\n date: Scalars['DateTime']['output'];\n responseCount: Scalars['Int']['output'];\n};\n\nexport type SaveTourAsTemplateInput = {\n category?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n isPublic?: InputMaybe<Scalars['Boolean']['input']>;\n name: Scalars['String']['input'];\n};\n\nexport type ScheduleNotificationInput = {\n /** Or create a new notification to schedule */\n notification?: InputMaybe<CreateNotificationInput>;\n /** ID of an existing notification to schedule */\n notificationId?: InputMaybe<Scalars['ID']['input']>;\n /** When to trigger the notification */\n scheduledFor: Scalars['DateTime']['input'];\n /** Timezone for scheduling (e.g., 'America/New_York') */\n timezone?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type SchedulePreview = {\n __typename?: 'SchedulePreview';\n count: Scalars['Int']['output'];\n endDate: Scalars['DateTime']['output'];\n nextExecutions: Array<Scalars['DateTime']['output']>;\n startDate: Scalars['DateTime']['output'];\n};\n\nexport enum SchedulePriority {\n Critical = 'CRITICAL',\n High = 'HIGH',\n Low = 'LOW',\n Normal = 'NORMAL'\n}\n\nexport type ScheduleTemplate = {\n __typename?: 'ScheduleTemplate';\n businessCalendarId?: Maybe<Scalars['String']['output']>;\n category?: Maybe<Scalars['String']['output']>;\n circuitBreaker?: Maybe<Scalars['JSON']['output']>;\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n createdBy: Scalars['String']['output'];\n description?: Maybe<Scalars['String']['output']>;\n executorConfig: Scalars['JSON']['output'];\n executorType: ExecutorType;\n failurePolicy?: Maybe<Scalars['JSON']['output']>;\n id: Scalars['ID']['output'];\n isPublic: Scalars['Boolean']['output'];\n name: Scalars['String']['output'];\n organizationId: Scalars['String']['output'];\n payloadTemplate?: Maybe<Scalars['JSON']['output']>;\n retryPolicy?: Maybe<Scalars['JSON']['output']>;\n scheduleConfig: Scalars['JSON']['output'];\n scheduleType: ScheduleType;\n updatedAt: Scalars['DateTime']['output'];\n usageCount: Scalars['Int']['output'];\n};\n\nexport type ScheduleTemplateConnection = {\n __typename?: 'ScheduleTemplateConnection';\n hasMore: Scalars['Boolean']['output'];\n templates: Array<ScheduleTemplate>;\n total: Scalars['Int']['output'];\n};\n\nexport type ScheduleTemplateFilterInput = {\n category?: InputMaybe<Scalars['String']['input']>;\n createdBy?: InputMaybe<Scalars['String']['input']>;\n executorType?: InputMaybe<ExecutorType>;\n isPublic?: InputMaybe<Scalars['Boolean']['input']>;\n scheduleType?: InputMaybe<ScheduleType>;\n search?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum ScheduleType {\n Cron = 'CRON',\n FixedInterval = 'FIXED_INTERVAL',\n OneTime = 'ONE_TIME',\n Rrule = 'RRULE',\n Windowed = 'WINDOWED'\n}\n\nexport type ScheduleVersion = {\n __typename?: 'ScheduleVersion';\n changeReason?: Maybe<Scalars['String']['output']>;\n changedBy: Scalars['String']['output'];\n changedFields: Array<Scalars['String']['output']>;\n config: Scalars['JSON']['output'];\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n executions: JobExecutionConnection;\n id: Scalars['ID']['output'];\n schedule?: Maybe<ScheduledJob>;\n scheduleId: Scalars['String']['output'];\n version: Scalars['Int']['output'];\n};\n\n\nexport type ScheduleVersionExecutionsArgs = {\n pagination?: InputMaybe<SchedulerPaginationInput>;\n};\n\nexport type ScheduledJob = {\n __typename?: 'ScheduledJob';\n actionId?: Maybe<Scalars['String']['output']>;\n archivedAt?: Maybe<Scalars['DateTime']['output']>;\n autoDisableAfter?: Maybe<Scalars['Int']['output']>;\n backoffStrategy: BackoffStrategy;\n businessCalendarId?: Maybe<Scalars['String']['output']>;\n circuitBreaker?: Maybe<Scalars['JSON']['output']>;\n consecutiveFailures: Scalars['Int']['output'];\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n createdBy: Scalars['String']['output'];\n cronExpression?: Maybe<Scalars['String']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n endDate?: Maybe<Scalars['DateTime']['output']>;\n executions: JobExecutionConnection;\n executorConfig?: Maybe<Scalars['JSON']['output']>;\n executorType?: Maybe<ExecutorType>;\n failurePolicy?: Maybe<Scalars['JSON']['output']>;\n id: Scalars['ID']['output'];\n interval?: Maybe<Scalars['JSON']['output']>;\n lastExecutionAt?: Maybe<Scalars['DateTime']['output']>;\n lastFailureAt?: Maybe<Scalars['DateTime']['output']>;\n maxOccurrences?: Maybe<Scalars['Int']['output']>;\n maxRetries: Scalars['Int']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n misfirePolicy: MisfirePolicy;\n misfireThreshold: Scalars['Int']['output'];\n name?: Maybe<Scalars['String']['output']>;\n nextExecutionAt?: Maybe<Scalars['DateTime']['output']>;\n organizationId: Scalars['String']['output'];\n payloadTemplate?: Maybe<Scalars['JSON']['output']>;\n priority: SchedulePriority;\n retryCount: Scalars['Int']['output'];\n retryDelay: Scalars['Int']['output'];\n retryPolicy: Scalars['JSON']['output'];\n rrule?: Maybe<Scalars['String']['output']>;\n scheduleType: ScheduleType;\n scheduledAt?: Maybe<Scalars['DateTime']['output']>;\n secrets?: Maybe<Scalars['JSON']['output']>;\n startDate?: Maybe<Scalars['DateTime']['output']>;\n status: JobStatus;\n tags: Array<Scalars['String']['output']>;\n timeWindows?: Maybe<Scalars['JSON']['output']>;\n timezone: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n version: Scalars['Int']['output'];\n versions: Array<ScheduleVersion>;\n};\n\n\nexport type ScheduledJobExecutionsArgs = {\n pagination?: InputMaybe<SchedulerPaginationInput>;\n};\n\nexport type ScheduledJobConnection = {\n __typename?: 'ScheduledJobConnection';\n hasMore: Scalars['Boolean']['output'];\n jobs: Array<ScheduledJob>;\n total: Scalars['Int']['output'];\n};\n\nexport type ScheduledNotification = {\n __typename?: 'ScheduledNotification';\n createdAt: Scalars['DateTime']['output'];\n errorMessage?: Maybe<Scalars['String']['output']>;\n failedAt?: Maybe<Scalars['DateTime']['output']>;\n id: Scalars['ID']['output'];\n maxRetries: Scalars['Int']['output'];\n notification: Notification;\n notificationId: Scalars['ID']['output'];\n retryCount: Scalars['Int']['output'];\n scheduledFor: Scalars['DateTime']['output'];\n status: ScheduledNotificationStatus;\n timezone?: Maybe<Scalars['String']['output']>;\n triggeredAt?: Maybe<Scalars['DateTime']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type ScheduledNotificationFilterInput = {\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n status?: InputMaybe<ScheduledNotificationStatus>;\n userId?: InputMaybe<Scalars['ID']['input']>;\n};\n\nexport type ScheduledNotificationList = {\n __typename?: 'ScheduledNotificationList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<ScheduledNotification>;\n total: Scalars['Int']['output'];\n};\n\nexport enum ScheduledNotificationStatus {\n Cancelled = 'CANCELLED',\n Failed = 'FAILED',\n Pending = 'PENDING',\n Triggered = 'TRIGGERED'\n}\n\nexport type SchedulerBulkOperationError = {\n __typename?: 'SchedulerBulkOperationError';\n error: Scalars['String']['output'];\n scheduleId: Scalars['String']['output'];\n};\n\nexport type SchedulerBulkOperationResult = {\n __typename?: 'SchedulerBulkOperationResult';\n affected: Scalars['Int']['output'];\n errors: Array<SchedulerBulkOperationError>;\n scheduleIds: Array<Scalars['String']['output']>;\n};\n\nexport type SchedulerMetrics = {\n __typename?: 'SchedulerMetrics';\n avgExecutionDuration: Scalars['Float']['output'];\n avgScanDuration?: Maybe<Scalars['Float']['output']>;\n circuitBreakerStates: Scalars['JSON']['output'];\n dlqByStatus: Scalars['JSON']['output'];\n dlqEntries: Scalars['Int']['output'];\n dueJobs: Scalars['Int']['output'];\n executionSuccessRate: Scalars['Float']['output'];\n failedExecutions: Scalars['Int']['output'];\n healthScore: Scalars['Float']['output'];\n lastScanTime?: Maybe<Scalars['DateTime']['output']>;\n maxExecutionDuration: Scalars['Float']['output'];\n minExecutionDuration: Scalars['Float']['output'];\n overdueJobs: Scalars['Int']['output'];\n pendingJobs: Scalars['Int']['output'];\n queueDepth: Scalars['Int']['output'];\n runningJobs: Scalars['Int']['output'];\n schedulesByExecutor: Scalars['JSON']['output'];\n schedulesByStatus: Scalars['JSON']['output'];\n schedulesByType: Scalars['JSON']['output'];\n successfulExecutions: Scalars['Int']['output'];\n totalExecutions: Scalars['Int']['output'];\n totalSchedules: Scalars['Int']['output'];\n uptime: Scalars['Float']['output'];\n workerMetrics: Scalars['JSON']['output'];\n};\n\nexport type SchedulerMetricsUpdate = {\n __typename?: 'SchedulerMetricsUpdate';\n activeSchedules: Scalars['Int']['output'];\n averageScanDuration: Scalars['Float']['output'];\n completedToday: Scalars['Int']['output'];\n failedToday: Scalars['Int']['output'];\n lastScanAt?: Maybe<Scalars['DateTime']['output']>;\n pendingSchedules: Scalars['Int']['output'];\n runningSchedules: Scalars['Int']['output'];\n timestamp: Scalars['DateTime']['output'];\n totalSchedules: Scalars['Int']['output'];\n};\n\nexport type SchedulerPaginationInput = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n/** 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. */\nexport type ScimTokenResult = {\n __typename?: 'ScimTokenResult';\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n label: Scalars['String']['output'];\n token: Scalars['String']['output'];\n tokenPrefix: Scalars['String']['output'];\n workspaceId: Scalars['String']['output'];\n};\n\n/** Metadata about a previously-minted SCIM token. Never exposes the plaintext or the token hash. */\nexport type ScimTokenSummary = {\n __typename?: 'ScimTokenSummary';\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n label: Scalars['String']['output'];\n lastUsedAt?: Maybe<Scalars['DateTime']['output']>;\n revokedAt?: Maybe<Scalars['DateTime']['output']>;\n tokenPrefix: Scalars['String']['output'];\n workspaceId: Scalars['String']['output'];\n};\n\n/** Search suggestion for autocomplete */\nexport type SearchSuggestion = {\n __typename?: 'SearchSuggestion';\n /** Number of matching products */\n count: Scalars['Int']['output'];\n /** Highlighted term with match markers */\n highlight?: Maybe<Scalars['String']['output']>;\n /** Suggested search term */\n term: Scalars['String']['output'];\n /** Type of suggestion (product_name, tag, category, author) */\n type: Scalars['String']['output'];\n};\n\nexport type SeedAtheleteBridgeUserToursResult = {\n __typename?: 'SeedAtheleteBridgeUserToursResult';\n createdCount: Scalars['Int']['output'];\n productId: Scalars['String']['output'];\n totalCount: Scalars['Int']['output'];\n tours: Array<SeededUserTourResult>;\n updatedCount: Scalars['Int']['output'];\n workspaceId: Scalars['String']['output'];\n};\n\nexport type SeedBuildmyiqUserToursResult = {\n __typename?: 'SeedBuildmyiqUserToursResult';\n createdCount: Scalars['Int']['output'];\n productId: Scalars['String']['output'];\n totalCount: Scalars['Int']['output'];\n tours: Array<SeededUserTourResult>;\n updatedCount: Scalars['Int']['output'];\n workspaceId: Scalars['String']['output'];\n};\n\nexport type SeedCollabkinUserToursResult = {\n __typename?: 'SeedCollabkinUserToursResult';\n createdCount: Scalars['Int']['output'];\n productId: Scalars['String']['output'];\n totalCount: Scalars['Int']['output'];\n tours: Array<SeededUserTourResult>;\n updatedCount: Scalars['Int']['output'];\n workspaceId: Scalars['String']['output'];\n};\n\nexport type SeedCoolAndLovelyUserToursResult = {\n __typename?: 'SeedCoolAndLovelyUserToursResult';\n createdCount: Scalars['Int']['output'];\n productId: Scalars['String']['output'];\n totalCount: Scalars['Int']['output'];\n tours: Array<SeededUserTourResult>;\n updatedCount: Scalars['Int']['output'];\n workspaceId: Scalars['String']['output'];\n};\n\nexport type SeedFluidgridsUserToursResult = {\n __typename?: 'SeedFluidgridsUserToursResult';\n createdCount: Scalars['Int']['output'];\n productId: Scalars['String']['output'];\n totalCount: Scalars['Int']['output'];\n tours: Array<SeededUserTourResult>;\n updatedCount: Scalars['Int']['output'];\n workspaceId: Scalars['String']['output'];\n};\n\nexport type SeedIntelWatchtowerUserToursResult = {\n __typename?: 'SeedIntelWatchtowerUserToursResult';\n createdCount: Scalars['Int']['output'];\n productId: Scalars['String']['output'];\n totalCount: Scalars['Int']['output'];\n tours: Array<SeededUserTourResult>;\n updatedCount: Scalars['Int']['output'];\n workspaceId: Scalars['String']['output'];\n};\n\nexport type SeedTheCulturePostUserToursResult = {\n __typename?: 'SeedTheCulturePostUserToursResult';\n createdCount: Scalars['Int']['output'];\n productId: Scalars['String']['output'];\n totalCount: Scalars['Int']['output'];\n tours: Array<SeededUserTourResult>;\n updatedCount: Scalars['Int']['output'];\n workspaceId: Scalars['String']['output'];\n};\n\nexport enum SeedTourAction {\n Created = 'created',\n Updated = 'updated'\n}\n\nexport type SeedVibeControlsUserToursResult = {\n __typename?: 'SeedVibeControlsUserToursResult';\n createdCount: Scalars['Int']['output'];\n productId: Scalars['String']['output'];\n totalCount: Scalars['Int']['output'];\n tours: Array<SeededUserTourResult>;\n updatedCount: Scalars['Int']['output'];\n workspaceId: Scalars['String']['output'];\n};\n\nexport type SeededUserTourResult = {\n __typename?: 'SeededUserTourResult';\n action: SeedTourAction;\n name: Scalars['String']['output'];\n slug: Scalars['String']['output'];\n stepCount: Scalars['Int']['output'];\n tourId: Scalars['ID']['output'];\n};\n\nexport type SendContextWidgetMessageInput = {\n attachments?: InputMaybe<Array<WidgetMessageAttachmentInput>>;\n content: Scalars['JSON']['input'];\n expiresAt?: InputMaybe<Scalars['DateTime']['input']>;\n isAnonymous?: InputMaybe<Scalars['Boolean']['input']>;\n mentionUserIds?: InputMaybe<Array<Scalars['ID']['input']>>;\n parentMessageId?: InputMaybe<Scalars['ID']['input']>;\n sourceContext: WidgetConversationSourceContextInput;\n type?: InputMaybe<Scalars['String']['input']>;\n workspaceId: Scalars['ID']['input'];\n};\n\nexport type SendContextWidgetMessagePayload = {\n __typename?: 'SendContextWidgetMessagePayload';\n conversationId?: Maybe<Scalars['ID']['output']>;\n error?: Maybe<Scalars['String']['output']>;\n messageId?: Maybe<Scalars['ID']['output']>;\n success: Scalars['Boolean']['output'];\n};\n\nexport type SendExploreMessageInput = {\n /** 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. */\n attachments?: InputMaybe<Array<ExploreAttachmentInput>>;\n /** Omit to start a new conversation. The result's `conversation.token` is the secret to send back on every following turn. */\n conversationToken?: InputMaybe<Scalars['String']['input']>;\n /** BCP-47 locale of the page (e.g. \"en-US\"). */\n locale?: InputMaybe<Scalars['String']['input']>;\n /** The visitor's question. */\n message: Scalars['String']['input'];\n /** Absolute URL of the page the visitor asked from. */\n pageUrl?: InputMaybe<Scalars['String']['input']>;\n /** Slug of the product website the visitor is on (a soft hint for the agent). */\n productSlug?: InputMaybe<Scalars['String']['input']>;\n /** reCAPTCHA v3 token — required only when `exploreCatalog.captchaRequired`. */\n recaptchaToken?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type SendExploreMessageResult = {\n __typename?: 'SendExploreMessageResult';\n /** Poll THIS id via `exploreMessage(conversationToken, id)` until `status` is COMPLETED or FAILED. */\n assistantMessage: ExploreMessage;\n conversation: ExploreConversation;\n /** Messages left for this IP in the current window, when known. */\n remainingToday?: Maybe<Scalars['Int']['output']>;\n userMessage: ExploreMessage;\n};\n\n/** Input for sending a message to a channel (for bot conversations) */\nexport type SendMessageInput = {\n /** Attachments (images, files, etc.) */\n attachments?: InputMaybe<Array<MessageAttachmentInput>>;\n /** Channel ID (the bot channel to send through) */\n channelId: Scalars['ID']['input'];\n /** Message content (text, markdown, etc.) */\n content: Scalars['String']['input'];\n /** Operation context for scoping */\n context?: InputMaybe<ContextInput>;\n /** Message format (text, markdown, html) */\n format?: InputMaybe<Scalars['String']['input']>;\n /** Organization ID (for multi-tenant context) */\n organizationId: Scalars['ID']['input'];\n /** Platform-specific options (Slack blocks, Teams adaptive cards, etc.) */\n platformOptions?: InputMaybe<Scalars['JSON']['input']>;\n /** Recipient (platform-specific conversation/channel ID - e.g., Slack DM conversation ID) */\n recipient: Scalars['String']['input'];\n /** Thread ID (for threaded replies in Slack, Teams, etc.) */\n threadId?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type SendRoundMessageToCandidateInput = {\n message: Scalars['String']['input'];\n roundId: Scalars['ID']['input'];\n};\n\n/** 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. */\nexport type ServicePayoutStatus = {\n __typename?: 'ServicePayoutStatus';\n approvedCount: Scalars['Int']['output'];\n billingAccountId: Scalars['ID']['output'];\n canceledCount: Scalars['Int']['output'];\n failedCount: Scalars['Int']['output'];\n ownerUserId?: Maybe<Scalars['String']['output']>;\n paidCount: Scalars['Int']['output'];\n pendingPayoutCount: Scalars['Int']['output'];\n processingCount: Scalars['Int']['output'];\n rejectedCount: Scalars['Int']['output'];\n requestedCount: Scalars['Int']['output'];\n summary: EarningsSummary;\n};\n\nexport type ServiceRecordEarningInput = {\n amount: Scalars['Float']['input'];\n availableAt?: InputMaybe<Scalars['DateTime']['input']>;\n /** Explicit billing account the earning is booked against (from resolveBillingAccount). */\n billingAccountId: Scalars['ID']['input'];\n currency: Scalars['String']['input'];\n description?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n /** Opaque user id that owns this earning (used later to reserve funds on payout). */\n ownerUserId?: InputMaybe<Scalars['String']['input']>;\n sourceCategory: EarningsSourceCategory;\n sourceEventId?: InputMaybe<Scalars['String']['input']>;\n /** Optional idempotency key for the source event that produced this earning (e.g. \"store:sale:<saleId>\", \"devportal:payoutRun:<runId>\"). 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. */\n sourceIdempotencyKey?: InputMaybe<Scalars['String']['input']>;\n sourceReferenceId?: InputMaybe<Scalars['String']['input']>;\n sourceSubcategory?: InputMaybe<Scalars['String']['input']>;\n unitType?: InputMaybe<EarningUnitType>;\n};\n\nexport type ServiceRequestPayoutInput = {\n amount: Scalars['Float']['input'];\n /** Explicit billing account the payout is drawn from. */\n billingAccountId: Scalars['ID']['input'];\n currency: Scalars['String']['input'];\n notes?: InputMaybe<Scalars['String']['input']>;\n /** Opaque user id whose AVAILABLE earnings are reserved for this payout. */\n ownerUserId: Scalars['String']['input'];\n /** 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. */\n payoutAccountId: Scalars['ID']['input'];\n /** Optional idempotency key for the source event that produced this payout (e.g. \"store:payoutRun:<runId>\", \"devportal:payoutRun:<runId>\"). 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. */\n sourceIdempotencyKey?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** 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. */\nexport type ServiceResolvePayoutAccountInput = {\n /** Explicit billing account the payout account belongs to (from resolveBillingAccount). */\n billingAccountId: Scalars['ID']['input'];\n /** Country hint used for provider routing on a newly-created placeholder account. */\n country?: InputMaybe<Scalars['String']['input']>;\n /** Currency for a newly-created placeholder account. Defaults to the billing account currency when omitted. Ignored when an account already exists. */\n currency?: InputMaybe<Scalars['String']['input']>;\n /** Human-readable label for a newly-created placeholder account. */\n label?: InputMaybe<Scalars['String']['input']>;\n /** Opaque user id that owns the payout destination (publisher / developer org owner). */\n ownerUserId: Scalars['String']['input'];\n /** Destination type for a newly-created placeholder account (defaults to BANK_ACCOUNT). */\n type?: InputMaybe<PayoutAccountType>;\n};\n\nexport type ServiceSyncPayoutStatusInput = {\n externalReference?: InputMaybe<Scalars['String']['input']>;\n failureReason?: InputMaybe<Scalars['String']['input']>;\n /** The billing PayoutRequest's sourceIdempotencyKey, formatted \"devportal:payout:<DeveloperOrgPayout id>\" — the id segment identifies which local payout row to update. */\n sourceIdempotencyKey: Scalars['String']['input'];\n /** The billing PayoutRequestStatus after the change (e.g. APPROVED, REJECTED, PAID, FAILED). */\n status: Scalars['String']['input'];\n};\n\n/** An active user session (login instance) */\nexport type Session = {\n __typename?: 'Session';\n createdAt: Scalars['DateTime']['output'];\n expiresAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n ipAddress?: Maybe<Scalars['String']['output']>;\n /** Whether this session is the one making the current request */\n isCurrent: Scalars['Boolean']['output'];\n lastActivityAt: Scalars['DateTime']['output'];\n location?: Maybe<Scalars['String']['output']>;\n status: SessionStatus;\n userAgent?: Maybe<Scalars['String']['output']>;\n};\n\n/** Paginated list of sessions */\nexport type SessionConnection = {\n __typename?: 'SessionConnection';\n hasMore: Scalars['Boolean']['output'];\n sessions: Array<Session>;\n totalCount: Scalars['Int']['output'];\n};\n\nexport enum SessionStatus {\n Active = 'ACTIVE',\n Expired = 'EXPIRED',\n Revoked = 'REVOKED'\n}\n\nexport type SetBillingAddressInput = {\n /** Billing account ID to associate with */\n billingAccountId: Scalars['ID']['input'];\n /** City */\n city: Scalars['String']['input'];\n /** Country */\n country: Scalars['String']['input'];\n /** Address line 1 */\n line1: Scalars['String']['input'];\n /** Address line 2 */\n line2?: InputMaybe<Scalars['String']['input']>;\n /** Additional metadata */\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n /** Postal/ZIP code */\n postalCode: Scalars['String']['input'];\n /** State/Province */\n state?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type SetNotificationTopicSubscriptionInput = {\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n subscribed: Scalars['Boolean']['input'];\n topicId: Scalars['ID']['input'];\n};\n\n/** Input for setting role default permission */\nexport type SetRoleDefaultPermissionInput = {\n level: RoleLevel;\n resourceType: Scalars['String']['input'];\n roleId: Scalars['ID']['input'];\n};\n\n/** 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. */\nexport type SetStoreOrderShippingInput = {\n /** Store order to attach shipping to */\n orderId: Scalars['ID']['input'];\n /** Selected ShippingAddress ID (from myShippingAddresses or a freshly createdShippingAddress). Must belong to the order's buyer. */\n shippingAddressId: Scalars['ID']['input'];\n /** Selected ShippingMethod ID (from the shippingMethods query). NOTE: a ShippingMethod, NOT a ShippingRate — only ShippingMethod is wired to the quote engine. */\n shippingMethodId: Scalars['ID']['input'];\n};\n\nexport type SetUserFeatureFlagPreferenceInput = {\n enabled: Scalars['Boolean']['input'];\n featureFlagId: Scalars['String']['input'];\n workspaceId: Scalars['String']['input'];\n};\n\nexport type SetUserLanguagePreferenceInput = {\n /** ISO 3166-1 alpha-2 country code (e.g., IN, US, DE) */\n country?: InputMaybe<Scalars['String']['input']>;\n /** ISO 4217 currency code (e.g., INR, USD, EUR) */\n currency?: InputMaybe<Scalars['String']['input']>;\n dateFormat?: InputMaybe<Scalars['String']['input']>;\n languageCode: Scalars['String']['input'];\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n numberFormat?: InputMaybe<Scalars['String']['input']>;\n tenantId?: InputMaybe<Scalars['String']['input']>;\n timeFormat?: InputMaybe<Scalars['String']['input']>;\n timezone?: InputMaybe<Scalars['String']['input']>;\n userId: Scalars['ID']['input'];\n};\n\nexport type SetWorkspaceFeatureFlagOverrideInput = {\n allowUserOptIn?: InputMaybe<Scalars['Boolean']['input']>;\n enabled: Scalars['Boolean']['input'];\n featureFlagId: Scalars['String']['input'];\n workspaceId: Scalars['String']['input'];\n};\n\n/** 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. */\nexport type SharedWorkflow = {\n __typename?: 'SharedWorkflow';\n appType: AppType;\n category?: Maybe<Scalars['String']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n developerName?: Maybe<Scalars['String']['output']>;\n iconUrl?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n manifest: Scalars['JSON']['output'];\n name: Scalars['String']['output'];\n sharedAt: Scalars['DateTime']['output'];\n shortDescription?: Maybe<Scalars['String']['output']>;\n tags: Array<Scalars['String']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n};\n\n/** Shipping address for physical product delivery */\nexport type ShippingAddress = {\n __typename?: 'ShippingAddress';\n /** Street address line 1 */\n addressLine1: Scalars['String']['output'];\n /** Street address line 2 (apt, suite, etc.) */\n addressLine2?: Maybe<Scalars['String']['output']>;\n /** City name */\n city: Scalars['String']['output'];\n context?: Maybe<Scalars['JSON']['output']>;\n /** Country ISO 3166-1 alpha-2 code (e.g., \"US\", \"IN\") */\n country: Scalars['String']['output'];\n createdAt: Scalars['DateTime']['output'];\n /** Contact email */\n email?: Maybe<Scalars['String']['output']>;\n /** Recipient full name */\n fullName: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n /** Delivery instructions */\n instructions?: Maybe<Scalars['String']['output']>;\n /** Whether this is the user's default address */\n isDefault: Scalars['Boolean']['output'];\n /** Whether the address has been validated */\n isVerified: Scalars['Boolean']['output'];\n /** Address label (e.g., \"Home\", \"Office\") */\n label?: Maybe<Scalars['String']['output']>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n /** Contact phone number */\n phone?: Maybe<Scalars['String']['output']>;\n /** Postal/ZIP code */\n postalCode: Scalars['String']['output'];\n /** State/Province/Region */\n state?: Maybe<Scalars['String']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n userId: Scalars['String']['output'];\n};\n\n/** Available shipping method */\nexport type ShippingMethod = {\n __typename?: 'ShippingMethod';\n /** Countries where this method is available (ISO codes) */\n availableCountries: Array<Scalars['String']['output']>;\n /** Base shipping cost */\n baseCost: Scalars['Float']['output'];\n /** Carrier name (e.g., \"FedEx\", \"UPS\") */\n carrier?: Maybe<Scalars['String']['output']>;\n /** Carrier's internal service ID */\n carrierServiceId?: Maybe<Scalars['String']['output']>;\n /** Unique code (e.g., \"standard\", \"express\") */\n code: Scalars['String']['output'];\n context?: Maybe<Scalars['JSON']['output']>;\n /** Additional cost per item */\n costPerItem?: Maybe<Scalars['Float']['output']>;\n /** Additional cost per kilogram */\n costPerKg?: Maybe<Scalars['Float']['output']>;\n createdAt: Scalars['DateTime']['output'];\n /** Currency for the cost */\n currency: Scalars['String']['output'];\n /** Description of the shipping method */\n description?: Maybe<Scalars['String']['output']>;\n /** Display order */\n displayOrder: Scalars['Int']['output'];\n /** Maximum estimated delivery days */\n estimatedMaxDays?: Maybe<Scalars['Int']['output']>;\n /** Minimum estimated delivery days */\n estimatedMinDays?: Maybe<Scalars['Int']['output']>;\n /** Countries excluded from this method (ISO codes) */\n excludedCountries: Array<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n /** Whether this method is currently available */\n isActive: Scalars['Boolean']['output'];\n /** Maximum dimensions as JSON */\n maxDimensions?: Maybe<Scalars['JSON']['output']>;\n /** Maximum package weight in kg */\n maxWeight?: Maybe<Scalars['Float']['output']>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n /** Display name (e.g., \"Standard Shipping\") */\n name: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n};\n\n/** Shipping rate within a zone */\nexport type ShippingRate = {\n __typename?: 'ShippingRate';\n /** Base cost for this rate */\n baseCost: Scalars['Float']['output'];\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n /** Currency for the rate */\n currency: Scalars['String']['output'];\n /** Display order */\n displayOrder: Scalars['Int']['output'];\n /** Maximum estimated delivery days */\n estimatedMaxDays?: Maybe<Scalars['Int']['output']>;\n /** Minimum estimated delivery days */\n estimatedMinDays?: Maybe<Scalars['Int']['output']>;\n /** Minimum order amount for free shipping */\n freeShippingMinOrderAmount?: Maybe<Scalars['Float']['output']>;\n id: Scalars['ID']['output'];\n /** Whether this rate is active */\n isActive: Scalars['Boolean']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n /** Rate name (e.g., \"Standard\", \"Express\") */\n name: Scalars['String']['output'];\n shippingZone?: Maybe<ShippingZone>;\n shippingZoneId: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n /** Weight-based pricing tiers as JSON */\n weightTiers?: Maybe<Scalars['JSON']['output']>;\n};\n\n/** Shipping zone for rate calculation */\nexport type ShippingZone = {\n __typename?: 'ShippingZone';\n context?: Maybe<Scalars['JSON']['output']>;\n /** Countries in this zone (ISO codes) */\n countries: Array<Scalars['String']['output']>;\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n /** Whether this zone is active */\n isActive: Scalars['Boolean']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n /** Zone name (e.g., \"Domestic\", \"International\") */\n name: Scalars['String']['output'];\n /** Shipping rates for this zone */\n rates: Array<ShippingRate>;\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type SideloadAppInput = {\n manifest: Scalars['JSON']['input'];\n organizationId?: InputMaybe<Scalars['String']['input']>;\n productId: Scalars['String']['input'];\n source?: InputMaybe<Scalars['String']['input']>;\n version?: InputMaybe<Scalars['String']['input']>;\n workspaceId: Scalars['String']['input'];\n workspaceName?: InputMaybe<Scalars['String']['input']>;\n workspaceType?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type SignInInput = {\n email?: InputMaybe<Scalars['String']['input']>;\n password: Scalars['String']['input'];\n recaptchaToken?: InputMaybe<Scalars['String']['input']>;\n rememberMe?: InputMaybe<Scalars['Boolean']['input']>;\n username?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type SignUpInput = {\n email: Scalars['String']['input'];\n firstName?: InputMaybe<Scalars['String']['input']>;\n lastName?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n password: Scalars['String']['input'];\n phoneNumber?: InputMaybe<Scalars['String']['input']>;\n /** 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. */\n productSlug?: InputMaybe<Scalars['String']['input']>;\n recaptchaToken?: InputMaybe<Scalars['String']['input']>;\n username: Scalars['String']['input'];\n};\n\nexport type SignedCookieResult = {\n __typename?: 'SignedCookieResult';\n cookieName: Scalars['String']['output'];\n cookieValue: Scalars['String']['output'];\n httpOnly: Scalars['Boolean']['output'];\n maxAge: Scalars['Int']['output'];\n path: Scalars['String']['output'];\n sameSite: Scalars['String']['output'];\n secure: Scalars['Boolean']['output'];\n};\n\nexport type SignedCookieValidation = {\n __typename?: 'SignedCookieValidation';\n error?: Maybe<Scalars['String']['output']>;\n expiresAt?: Maybe<Scalars['DateTime']['output']>;\n sessionId?: Maybe<Scalars['ID']['output']>;\n userId?: Maybe<Scalars['ID']['output']>;\n valid: Scalars['Boolean']['output'];\n};\n\n/** Common sort input */\nexport type SortInput = {\n /** Field to sort by */\n field: Scalars['String']['input'];\n /** Sort direction */\n order?: InputMaybe<SortOrder>;\n};\n\n/** Sort order for queries */\nexport enum SortOrder {\n Asc = 'ASC',\n Desc = 'DESC'\n}\n\nexport type SourceBreakdown = {\n __typename?: 'SourceBreakdown';\n count: Scalars['Int']['output'];\n percentage: Scalars['Float']['output'];\n source: TicketSource;\n};\n\n/** Private offer visible only to its publisher and the owning buyer. */\nexport type SourcingOffer = {\n __typename?: 'SourcingOffer';\n acceptedAt?: Maybe<Scalars['DateTime']['output']>;\n createdAt: Scalars['DateTime']['output'];\n currency: Scalars['String']['output'];\n deliveryDate: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n message?: Maybe<Scalars['String']['output']>;\n order?: Maybe<SourcingOrderSummary>;\n publisher?: Maybe<SourcingPublisherSummary>;\n publisherId: Scalars['ID']['output'];\n quantity: Scalars['Int']['output'];\n rejectedAt?: Maybe<Scalars['DateTime']['output']>;\n request?: Maybe<SourcingOpportunity>;\n requestId: Scalars['ID']['output'];\n status: SourcingOfferStatus;\n storeProductId?: Maybe<Scalars['ID']['output']>;\n unit: SourcingUnit;\n unitPrice: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport enum SourcingOfferStatus {\n Accepted = 'ACCEPTED',\n Active = 'ACTIVE',\n Rejected = 'REJECTED'\n}\n\n/** Sanitized OPEN request projection discoverable by eligible active publishers. */\nexport type SourcingOpportunity = {\n __typename?: 'SourcingOpportunity';\n category: Scalars['String']['output'];\n createdAt: Scalars['DateTime']['output'];\n deliveryCity?: Maybe<Scalars['String']['output']>;\n deliveryCountry: Scalars['String']['output'];\n deliveryRegion?: Maybe<Scalars['String']['output']>;\n deliveryWindowEnd: Scalars['DateTime']['output'];\n deliveryWindowStart: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n productName: Scalars['String']['output'];\n quantity: Scalars['Int']['output'];\n summary?: Maybe<Scalars['String']['output']>;\n targetCurrency?: Maybe<Scalars['String']['output']>;\n targetUnitPrice?: Maybe<Scalars['String']['output']>;\n unit: SourcingUnit;\n};\n\n/** Sourcing-safe projection of the accepted StoreOrder visible to its buyer and publisher. */\nexport type SourcingOrderSummary = {\n __typename?: 'SourcingOrderSummary';\n createdAt: Scalars['DateTime']['output'];\n currency: Scalars['String']['output'];\n fulfillment?: Maybe<OrderFulfillment>;\n id: Scalars['ID']['output'];\n lineItems: Scalars['JSON']['output'];\n status: OrderStatus;\n total: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n};\n\n/** Narrow publisher identity visible to a request owner. */\nexport type SourcingPublisherSummary = {\n __typename?: 'SourcingPublisherSummary';\n id: Scalars['ID']['output'];\n isVerified: Scalars['Boolean']['output'];\n logoUrl?: Maybe<Scalars['String']['output']>;\n name: Scalars['String']['output'];\n};\n\n/** Buyer-owned request view. Buyer and organization identity are never accepted as arguments. */\nexport type SourcingRequest = {\n __typename?: 'SourcingRequest';\n acceptedOrder?: Maybe<SourcingOrderSummary>;\n canceledAt?: Maybe<Scalars['DateTime']['output']>;\n category: Scalars['String']['output'];\n createdAt: Scalars['DateTime']['output'];\n deliveryCity?: Maybe<Scalars['String']['output']>;\n deliveryCountry: Scalars['String']['output'];\n deliveryRegion?: Maybe<Scalars['String']['output']>;\n deliveryWindowEnd: Scalars['DateTime']['output'];\n deliveryWindowStart: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n matchedAt?: Maybe<Scalars['DateTime']['output']>;\n offers: Array<SourcingOffer>;\n productName: Scalars['String']['output'];\n quantity: Scalars['Int']['output'];\n status: SourcingRequestStatus;\n summary?: Maybe<Scalars['String']['output']>;\n targetCurrency?: Maybe<Scalars['String']['output']>;\n targetUnitPrice?: Maybe<Scalars['String']['output']>;\n unit: SourcingUnit;\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport enum SourcingRequestStatus {\n Canceled = 'CANCELED',\n Matched = 'MATCHED',\n Open = 'OPEN'\n}\n\nexport enum SourcingUnit {\n Bag = 'BAG',\n Box = 'BOX',\n Gram = 'GRAM',\n Kilogram = 'KILOGRAM',\n Liter = 'LITER',\n MetricTon = 'METRIC_TON',\n Milliliter = 'MILLILITER',\n Pallet = 'PALLET',\n Unit = 'UNIT'\n}\n\nexport type SpendCreditResponse = {\n __typename?: 'SpendCreditResponse';\n creditTransactionID: Scalars['String']['output'];\n};\n\nexport type SpendCreditsInput = {\n addOnIds?: InputMaybe<Array<InputMaybe<AddOnInputPayment>>>;\n billingAccountId: Scalars['String']['input'];\n /** 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. */\n downgradeFromSubscriptionId?: InputMaybe<Scalars['String']['input']>;\n isAnnual?: InputMaybe<Scalars['Boolean']['input']>;\n /** Order ID to purchase using credits (for store orders, etc.) */\n orderId?: InputMaybe<Scalars['String']['input']>;\n planId?: InputMaybe<Scalars['String']['input']>;\n /** 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. */\n seatCount?: InputMaybe<Scalars['Int']['input']>;\n /** 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. */\n subscriptionId?: InputMaybe<Scalars['String']['input']>;\n /** For plan upgrades - the subscription ID to upgrade from. Old quotas will be moved to the new subscription. */\n upgradeFromSubscriptionId?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** 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) */\nexport type StorageLimit = {\n __typename?: 'StorageLimit';\n /** Resolved storage cap in bytes. BigInt encoded as String. */\n limitBytes: Scalars['String']['output'];\n /** Plan ID providing the limit (null when fallback was used). */\n planId?: Maybe<Scalars['ID']['output']>;\n /** Plan name providing the limit (\"Free\" when fallback was used). */\n planName: Scalars['String']['output'];\n /** Source of the limit: PLAN_FIELD | PLAN_QUOTA | DEFAULT_FREE | DEFAULT_PAID. */\n source: Scalars['String']['output'];\n};\n\nexport type Store = {\n __typename?: 'Store';\n allowUnverifiedPublishers: Scalars['Boolean']['output'];\n createdAt: Scalars['DateTime']['output'];\n currency: Scalars['String']['output'];\n description?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n isPublic: Scalars['Boolean']['output'];\n logoUrl?: Maybe<Scalars['String']['output']>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n name: Scalars['String']['output'];\n requiresApproval: Scalars['Boolean']['output'];\n slug: Scalars['String']['output'];\n tenantId?: Maybe<Scalars['ID']['output']>;\n type: StoreType;\n updatedAt: Scalars['DateTime']['output'];\n websiteUrl?: Maybe<Scalars['String']['output']>;\n};\n\nexport type StoreAppInstallation = {\n __typename?: 'StoreAppInstallation';\n context?: Maybe<Scalars['JSON']['output']>;\n grantedPermissions?: Maybe<Scalars['JSON']['output']>;\n id: Scalars['ID']['output'];\n installedAt: Scalars['DateTime']['output'];\n installedById: Scalars['String']['output'];\n manifest?: Maybe<Scalars['JSON']['output']>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n organizationId?: Maybe<Scalars['String']['output']>;\n productIcon?: Maybe<Scalars['String']['output']>;\n productId: Scalars['String']['output'];\n productName?: Maybe<Scalars['String']['output']>;\n productStatus?: Maybe<Scalars['String']['output']>;\n productType?: Maybe<Scalars['String']['output']>;\n status: StoreInstallationStatus;\n uninstalledAt?: Maybe<Scalars['DateTime']['output']>;\n uninstalledById?: Maybe<Scalars['String']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n version?: Maybe<Scalars['String']['output']>;\n workspaceId: Scalars['String']['output'];\n workspaceName?: Maybe<Scalars['String']['output']>;\n workspaceType?: Maybe<Scalars['String']['output']>;\n};\n\nexport type StoreAppInstallationConnection = {\n __typename?: 'StoreAppInstallationConnection';\n hasMore: Scalars['Boolean']['output'];\n items: Array<StoreAppInstallation>;\n total: Scalars['Int']['output'];\n};\n\n/** Filter facets for UI refinement options */\nexport type StoreFacets = {\n __typename?: 'StoreFacets';\n /** Available categories with counts */\n categories: Array<FacetCount>;\n /** Available licenses with counts */\n licenses: Array<FacetCount>;\n /** Price range in results */\n priceRange?: Maybe<PriceRange>;\n /** Available pricing models with counts */\n pricingModels: Array<FacetCount>;\n /** Rating distribution */\n ratingDistribution?: Maybe<ProductRatingDistribution>;\n /** Available subtypes with counts */\n subTypes: Array<FacetCount>;\n /** Available types with counts */\n types: Array<FacetCount>;\n};\n\n/** Unified filter input for browsing/searching store products. All filters combine with AND logic - search is treated as a filter. */\nexport type StoreFilterInput = {\n /** Filter by author name (partial match) */\n authorName?: InputMaybe<Scalars['String']['input']>;\n /** Filter by brand (physical products) */\n brand?: InputMaybe<Scalars['String']['input']>;\n /** Filter by multiple categories (OR within this filter) */\n categories?: InputMaybe<Array<Scalars['String']['input']>>;\n /** Filter by exact category match (e.g., \"Customer Support\", \"Notification\") */\n category?: InputMaybe<Scalars['String']['input']>;\n /** Filter by compatible product (e.g., \"workspaces\", \"fluidgrids\", \"bigconsole\") Products must be compatible with this product. */\n compatibleWith?: InputMaybe<Scalars['String']['input']>;\n /** Filter only featured products */\n featured?: InputMaybe<Scalars['Boolean']['input']>;\n /** Filter products that are in stock (physical products) */\n inStock?: InputMaybe<Scalars['Boolean']['input']>;\n /** Filter by license type (e.g., \"MIT\", \"Apache-2.0\") */\n license?: InputMaybe<Scalars['String']['input']>;\n /** Filter by multiple licenses (OR within this filter) */\n licenses?: InputMaybe<Array<Scalars['String']['input']>>;\n /** Filter by maximum price (inclusive) */\n maxPrice?: InputMaybe<Scalars['Float']['input']>;\n /** Filter by minimum download count */\n minDownloads?: InputMaybe<Scalars['Int']['input']>;\n /** Filter by minimum platform version compatibility */\n minPlatformVersion?: InputMaybe<Scalars['String']['input']>;\n /** Filter by minimum price (inclusive) */\n minPrice?: InputMaybe<Scalars['Float']['input']>;\n /** Filter by minimum rating (1.0 - 5.0, inclusive) */\n minRating?: InputMaybe<Scalars['Float']['input']>;\n /** Filter by nature: DIGITAL or PHYSICAL */\n nature?: InputMaybe<ProductNature>;\n /** Filter by pricing model (FREE, PAID_ONETIME, SUBSCRIPTION) */\n pricingModel?: InputMaybe<PricingModel>;\n /** Filter by multiple pricing models (OR within this filter) */\n pricingModels?: InputMaybe<Array<PricingModel>>;\n /** Filter by publisher ID */\n publisherId?: InputMaybe<Scalars['String']['input']>;\n /** Filter products that require shipping */\n requiresShipping?: InputMaybe<Scalars['Boolean']['input']>;\n /** Full-text search query. Searches across: - name (highest priority) - description - tags - authorName, category (lowest priority) Uses PostgreSQL tsvector with weighted ranking. */\n search?: InputMaybe<Scalars['String']['input']>;\n /** Filter by product status (defaults to PUBLISHED for consumer queries) */\n status?: InputMaybe<ProductStatus>;\n /** Filter by type-specific subtype. Examples: - For AGENT: \"task_automation\", \"conversational\", \"research\" - For NODE: \"action\", \"trigger\", \"integration\", \"ai\" - For WIDGET: \"chart\", \"metric\", \"table\", \"map\" */\n subType?: InputMaybe<Scalars['String']['input']>;\n /** Filter by multiple subtypes (OR within this filter) */\n subTypes?: InputMaybe<Array<Scalars['String']['input']>>;\n /** Filter by tags - products must have ALL specified tags (AND logic) */\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n /** Filter by tags - products must have ANY of specified tags (OR logic) */\n tagsAny?: InputMaybe<Array<Scalars['String']['input']>>;\n /** Filter by product type (AGENT, NODE, WIDGET, WORKFLOW, etc.) */\n type?: InputMaybe<ProductType>;\n /** Filter by multiple product types (OR within this filter) */\n types?: InputMaybe<Array<ProductType>>;\n /** Filter by required integration (e.g., \"slack\", \"sendgrid\") */\n usesIntegration?: InputMaybe<Scalars['String']['input']>;\n /** Filter by multiple integrations - must use ALL (AND logic) */\n usesIntegrations?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\nexport enum StoreInstallationStatus {\n Active = 'ACTIVE',\n Failed = 'FAILED',\n Inactive = 'INACTIVE',\n Installing = 'INSTALLING',\n Pending = 'PENDING',\n Uninstalled = 'UNINSTALLED'\n}\n\n/** 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. */\nexport type StoreItem = {\n __typename?: 'StoreItem';\n /** The unique identifier for the store item */\n id: Scalars['ID']['output'];\n};\n\n/** Line item representing a single product in an order */\nexport type StoreLineItemInput = {\n /**\n * Item type is derived from the catalog product nature.\n * @deprecated The server derives itemType from product nature\n */\n itemType?: InputMaybe<Scalars['String']['input']>;\n /**\n * Product name is retained only for backwards-compatible clients. The store resolves the authoritative name from productId and variantId.\n * @deprecated The server resolves product and variant names\n */\n name?: InputMaybe<Scalars['String']['input']>;\n /**\n * Pricing model is derived from the catalog.\n * @deprecated The server derives pricingModel from the catalog\n */\n pricingModel?: InputMaybe<Scalars['String']['input']>;\n /** Store product ID */\n productId: Scalars['String']['input'];\n /** Quantity of this item */\n quantity: Scalars['Int']['input'];\n /**\n * Subtotal is calculated by the server.\n * @deprecated The server calculates subtotal\n */\n subtotal?: InputMaybe<Scalars['Float']['input']>;\n /**\n * Unit price is derived from the catalog or variant price.\n * @deprecated The server resolves unitPrice from the catalog\n */\n unitPrice?: InputMaybe<Scalars['Float']['input']>;\n /** Product variant ID if applicable */\n variantId?: InputMaybe<Scalars['String']['input']>;\n /** Product version is retained as display metadata only. */\n version?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** 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 */\nexport type StoreOrder = {\n __typename?: 'StoreOrder';\n appliedEntitlementId?: Maybe<Scalars['String']['output']>;\n /** Billing account for payment */\n billingAccountId: Scalars['String']['output'];\n /** Billing order ID (link to billing service order) */\n billingOrderId?: Maybe<Scalars['String']['output']>;\n /** Context JSON (must include workspace_id) */\n context: Scalars['JSON']['output'];\n createdAt: Scalars['DateTime']['output'];\n /** 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. */\n currency: Scalars['String']['output'];\n /** Fulfillment tracking for physical orders */\n fulfillment?: Maybe<OrderFulfillment>;\n id: Scalars['ID']['output'];\n /** Array of line items in this order */\n lineItems: Scalars['JSON']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n /** When order was fulfilled (null if not yet processed) */\n processedAt?: Maybe<Scalars['DateTime']['output']>;\n /** When payment was completed (null if still pending) */\n purchasedAt?: Maybe<Scalars['DateTime']['output']>;\n /** Resolved shipping destination address (physical orders) */\n shippingAddress?: Maybe<ShippingAddress>;\n /** Selected shipping address ID (physical orders) */\n shippingAddressId?: Maybe<Scalars['ID']['output']>;\n /** Server-computed shipping cost, in the order currency. SEPARATE from `total` (which is product-cost-only); billing must add this to the payable amount. */\n shippingCost?: Maybe<Scalars['Float']['output']>;\n /** Currency of the shipping cost quote */\n shippingCurrency?: Maybe<Scalars['String']['output']>;\n /** Resolved shipping method (physical orders) */\n shippingMethod?: Maybe<ShippingMethod>;\n /** Selected shipping method ID (physical orders) */\n shippingMethodId?: Maybe<Scalars['ID']['output']>;\n /** 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. */\n shippingSnapshot?: Maybe<Scalars['JSON']['output']>;\n status: OrderStatus;\n /** Total product cost (sum of line items) Note: Currency, tax, and final billing amount handled by billing service */\n total: Scalars['Float']['output'];\n transaction?: Maybe<Transaction>;\n /** Transaction ID from billing service (set after payment) */\n transactionId?: Maybe<Scalars['String']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n /** User who made the purchase */\n userId: Scalars['String']['output'];\n};\n\n/** Paginated store orders result */\nexport type StoreOrdersResult = {\n __typename?: 'StoreOrdersResult';\n orders: Array<StoreOrder>;\n total: Scalars['Int']['output'];\n};\n\n/** Pagination input for store queries */\nexport type StorePaginationInput = {\n /** Cursor for cursor-based pagination (alternative to offset) */\n cursor?: InputMaybe<Scalars['String']['input']>;\n /** Number of items to return (default: 20, max: 100) */\n limit?: InputMaybe<Scalars['Int']['input']>;\n /** Number of items to skip (for offset pagination) */\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n/** External entity stub for StoreProduct from store-svc. Federation gateway will resolve full StoreProduct data from store-svc. Used by: SubscriptionEntitlement.storeProduct */\nexport type StoreProduct = {\n __typename?: 'StoreProduct';\n /** Allow orders when out of stock (physical products) */\n allowBackorder?: Maybe<Scalars['Boolean']['output']>;\n /** Author/publisher display name (from manifest.author.name) */\n authorName?: Maybe<Scalars['String']['output']>;\n bannerUrl?: Maybe<Scalars['String']['output']>;\n /** Brand name (physical products) */\n brand?: Maybe<Scalars['String']['output']>;\n category?: Maybe<Scalars['String']['output']>;\n /** Compatible products (from manifest.compatibility.products) Examples: [\"fluidgrids\", \"workspaces\", \"bigconsole\", \"botlit\"] */\n compatibleProducts: Array<Scalars['String']['output']>;\n content?: Maybe<Scalars['JSON']['output']>;\n context?: Maybe<Scalars['JSON']['output']>;\n /** Country of origin ISO code (physical products) */\n countryOfOrigin?: Maybe<Scalars['String']['output']>;\n createdAt: Scalars['DateTime']['output'];\n currency: Scalars['String']['output'];\n description?: Maybe<Scalars['String']['output']>;\n /** Dimension unit (CENTIMETER, INCH, METER) */\n dimensionUnit?: Maybe<DimensionUnit>;\n documentationUrl?: Maybe<Scalars['String']['output']>;\n downloads: Scalars['Int']['output'];\n entitlements: Array<ProductEntitlement>;\n featured: Scalars['Boolean']['output'];\n /** Product height (physical products) */\n height?: Maybe<Scalars['Float']['output']>;\n icon?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n /** Integration dependencies (from manifest.dependencies.integrations) Examples: [\"slack\", \"sendgrid\", \"zendesk\", \"salesforce\"] */\n integrationDeps: Array<Scalars['String']['output']>;\n /** Whether this product is already purchased by the current billing account. Computed field based on billingAccountId context. */\n isPurchased?: Maybe<Scalars['Boolean']['output']>;\n /** Product length (physical products) */\n length?: Maybe<Scalars['Float']['output']>;\n /** License type (from manifest.license, e.g., \"MIT\", \"Apache-2.0\") */\n license?: Maybe<Scalars['String']['output']>;\n longDescription?: Maybe<Scalars['String']['output']>;\n /** Alert threshold for low stock (physical products) */\n lowStockThreshold?: Maybe<Scalars['Int']['output']>;\n /** Complete manifest.json stored as JSON (source of truth from DevPortal) */\n manifest?: Maybe<Scalars['JSON']['output']>;\n /** Manifest schema version (e.g., \"1.0\") */\n manifestVersion?: Maybe<Scalars['String']['output']>;\n /** Manufacturer name (physical products) */\n manufacturer?: Maybe<Scalars['String']['output']>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n /** Minimum platform version required (from manifest.compatibility.minVersion) */\n minPlatformVersion?: Maybe<Scalars['String']['output']>;\n name: Scalars['String']['output'];\n /** Nature of the product - DIGITAL (downloadable) or PHYSICAL (requires shipping) */\n nature: ProductNature;\n orders: Array<StoreOrder>;\n price: Scalars['Float']['output'];\n pricingModel: PricingModel;\n productId?: Maybe<Scalars['String']['output']>;\n publishedAt?: Maybe<Scalars['DateTime']['output']>;\n publisher?: Maybe<Publisher>;\n publisherId: Scalars['String']['output'];\n rating?: Maybe<Scalars['Float']['output']>;\n rejectedReason?: Maybe<Scalars['String']['output']>;\n repositoryUrl?: Maybe<Scalars['String']['output']>;\n /** Required permissions (from manifest.permissions) Examples: [\"network.outbound\", \"database.write\", \"notification.email\"] */\n requiredPermissions: Array<Scalars['String']['output']>;\n /** Whether this product requires shipping (physical products) */\n requiresShipping?: Maybe<Scalars['Boolean']['output']>;\n /** Return policy details (physical products) */\n returnPolicy?: Maybe<Scalars['String']['output']>;\n reviewCount: Scalars['Int']['output'];\n reviewNotes?: Maybe<Scalars['String']['output']>;\n reviewedAt?: Maybe<Scalars['DateTime']['output']>;\n reviewedBy?: Maybe<Scalars['String']['output']>;\n reviews: Array<ProductReview>;\n screenshots: Array<Scalars['String']['output']>;\n /** Stock Keeping Unit - unique identifier for inventory (physical products) */\n sku?: Maybe<Scalars['String']['output']>;\n slug: Scalars['String']['output'];\n status: ProductStatus;\n /** Current stock quantity (physical products) */\n stockQuantity?: Maybe<Scalars['Int']['output']>;\n storeId?: Maybe<Scalars['ID']['output']>;\n /** 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 */\n subType?: Maybe<Scalars['String']['output']>;\n submittedAt?: Maybe<Scalars['DateTime']['output']>;\n submittedBy?: Maybe<Scalars['String']['output']>;\n subscriptionEntitlements: Array<StoreSubscriptionEntitlement>;\n /** Structured tag assignments via wspace-tags-svc */\n tagAssignments: Array<StoreProductTagAssignment>;\n tags: Array<Scalars['String']['output']>;\n /** Whether to track inventory levels (physical products) */\n trackInventory?: Maybe<Scalars['Boolean']['output']>;\n type: ProductType;\n updatedAt: Scalars['DateTime']['output'];\n /** Product variants (for physical products with size/color options) */\n variants: Array<ProductVariant>;\n videoUrls: Array<Scalars['String']['output']>;\n viewCount: Scalars['Int']['output'];\n /** Warranty information (physical products) */\n warrantyInfo?: Maybe<Scalars['String']['output']>;\n /** Product weight (physical products) */\n weight?: Maybe<Scalars['Float']['output']>;\n /** Weight unit (GRAM, KILOGRAM, OUNCE, POUND) */\n weightUnit?: Maybe<WeightUnit>;\n /** Product width (physical products) */\n width?: Maybe<Scalars['Float']['output']>;\n zipFileUrl?: Maybe<Scalars['String']['output']>;\n};\n\n/** Input for fetching store product details */\nexport type StoreProductDetailsInput = {\n /** Product ID (required if slug not provided) */\n id?: InputMaybe<Scalars['ID']['input']>;\n /** Include related products (default: true) */\n includeRelated?: InputMaybe<Scalars['Boolean']['input']>;\n /** Include reviews in response (default: true) */\n includeReviews?: InputMaybe<Scalars['Boolean']['input']>;\n /** Include version history (default: true) */\n includeVersions?: InputMaybe<Scalars['Boolean']['input']>;\n /** Maximum number of related products (default: 6) */\n relatedLimit?: InputMaybe<Scalars['Int']['input']>;\n /** Maximum number of reviews to return (default: 10) */\n reviewsLimit?: InputMaybe<Scalars['Int']['input']>;\n /** Product slug (required if id not provided) */\n slug?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Comprehensive result for product details page */\nexport type StoreProductDetailsResult = {\n __typename?: 'StoreProductDetailsResult';\n /** Whether current user has purchased this product */\n isPurchased: Scalars['Boolean']['output'];\n /** The store product with all details */\n product: StoreProduct;\n /** Publisher/author information */\n publisher?: Maybe<Publisher>;\n /** Rating breakdown by stars */\n ratingDistribution?: Maybe<ProductRatingDistribution>;\n /** Related products based on category and tags */\n relatedProducts: Array<StoreProduct>;\n /** Product reviews (sorted by helpful count, then date) */\n reviews: Array<ProductReview>;\n /** Total number of reviews for pagination */\n reviewsCount: Scalars['Int']['output'];\n /** Current user's entitlement (if any) */\n userEntitlement?: Maybe<ProductEntitlement>;\n /** Current user's review (if any) */\n userReview?: Maybe<ProductReview>;\n};\n\n/** Tag assignment for a store product (backed by wspace-tags-svc) */\nexport type StoreProductTagAssignment = {\n __typename?: 'StoreProductTagAssignment';\n assignedAt?: Maybe<Scalars['DateTime']['output']>;\n assignedBy?: Maybe<Scalars['ID']['output']>;\n entityId: Scalars['ID']['output'];\n entityType: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n source: Scalars['String']['output'];\n tag?: Maybe<UniversalTag>;\n tagId: Scalars['ID']['output'];\n validFrom?: Maybe<Scalars['DateTime']['output']>;\n validTo?: Maybe<Scalars['DateTime']['output']>;\n};\n\n/** Sort options for store products */\nexport enum StoreSortBy {\n Downloads = 'DOWNLOADS',\n Featured = 'FEATURED',\n NameAsc = 'NAME_ASC',\n NameDesc = 'NAME_DESC',\n Newest = 'NEWEST',\n Oldest = 'OLDEST',\n PriceHigh = 'PRICE_HIGH',\n PriceLow = 'PRICE_LOW',\n Rating = 'RATING',\n Relevance = 'RELEVANCE'\n}\n\n/** Links a store product to a subscription plan for entitlements */\nexport type StoreSubscriptionEntitlement = {\n __typename?: 'StoreSubscriptionEntitlement';\n accessType: EntitlementAccessType;\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n discountPercentage?: Maybe<Scalars['Float']['output']>;\n id: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n planId: Scalars['String']['output'];\n storeProduct?: Maybe<StoreProduct>;\n storeProductId: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type StoreSubscriptionEntitlementInput = {\n accessType: EntitlementAccessType;\n discountPercentage?: InputMaybe<Scalars['Float']['input']>;\n planId: Scalars['String']['input'];\n};\n\nexport enum StoreType {\n Enterprise = 'ENTERPRISE',\n Private = 'PRIVATE',\n Public = 'PUBLIC'\n}\n\n/** Publisher submission status change event payload */\nexport type SubmissionStatusUpdatedEvent = {\n __typename?: 'SubmissionStatusUpdatedEvent';\n productId: Scalars['ID']['output'];\n publisherId: Scalars['ID']['output'];\n status: Scalars['String']['output'];\n submissionId: Scalars['ID']['output'];\n updatedAt: Scalars['String']['output'];\n};\n\n/** 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). */\nexport type SubmitAssignmentResponseInput = {\n /** Email the candidate applied with (matched case-insensitively). */\n email: Scalars['String']['input'];\n /** Job posting the application belongs to (preferred matcher when provided). */\n jobPostingId?: InputMaybe<Scalars['ID']['input']>;\n /** Candidate name (display only — matching is by email). */\n name?: InputMaybe<Scalars['String']['input']>;\n /** Optional notes from the candidate. */\n notes?: InputMaybe<Scalars['String']['input']>;\n /** Position applied for (case-insensitive contains match when no posting ID). */\n position?: InputMaybe<Scalars['String']['input']>;\n /** reCAPTCHA token, verified server-side when CAPTCHA_ENABLED=true. */\n recaptchaToken: Scalars['String']['input'];\n /** GitHub repository link for the assignment (https only). */\n repoUrl: Scalars['String']['input'];\n /** Jam/Loom demo video link for the assignment (https only). */\n videoUrl: Scalars['String']['input'];\n};\n\nexport type SubmitAssignmentResponsePayload = {\n __typename?: 'SubmitAssignmentResponsePayload';\n applicationId?: Maybe<Scalars['ID']['output']>;\n message: Scalars['String']['output'];\n roundId?: Maybe<Scalars['ID']['output']>;\n success: Scalars['Boolean']['output'];\n};\n\n/** Input for submitting a contact inquiry from a public website. reCAPTCHA token is required only when CAPTCHA_ENABLED=true. */\nexport type SubmitContactInquiryInput = {\n /** 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. */\n category?: InputMaybe<Scalars['String']['input']>;\n /** Company name (optional) */\n company?: InputMaybe<Scalars['String']['input']>;\n /** Email address for follow-up */\n email: Scalars['String']['input'];\n /** Detailed message */\n message: Scalars['String']['input'];\n /** Extra metadata (browser info, referrer URL, etc.) */\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n /** Full name of the person submitting the inquiry */\n name: Scalars['String']['input'];\n /** Platform product ID (identifies which product website the form was submitted from) */\n productId?: InputMaybe<Scalars['String']['input']>;\n /** reCAPTCHA token for bot protection (verified server-side when CAPTCHA_ENABLED=true) */\n recaptchaToken?: InputMaybe<Scalars['String']['input']>;\n /** Subject of the inquiry */\n subject: Scalars['String']['input'];\n};\n\nexport type SubmitContactInquiryResult = {\n __typename?: 'SubmitContactInquiryResult';\n /** The created inquiry (if successful) */\n inquiry?: Maybe<ContactInquiry>;\n /** Error message (if failed) */\n message?: Maybe<Scalars['String']['output']>;\n /** Whether the submission was successful */\n success: Scalars['Boolean']['output'];\n};\n\nexport type SubmitInterviewFeedbackInput = {\n internalNotes?: InputMaybe<Scalars['String']['input']>;\n interviewerId: Scalars['ID']['input'];\n rating?: InputMaybe<Scalars['Int']['input']>;\n roundId: Scalars['ID']['input'];\n verdict?: InputMaybe<InterviewVerdict>;\n};\n\n/** 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. */\nexport type SubmitJobApplicationInput = {\n coverLetter?: InputMaybe<Scalars['String']['input']>;\n department?: InputMaybe<Scalars['String']['input']>;\n email: Scalars['String']['input'];\n firstName: Scalars['String']['input'];\n /** Job posting being applied to (must exist and be OPEN when provided). */\n jobPostingId?: InputMaybe<Scalars['ID']['input']>;\n lastName: Scalars['String']['input'];\n linkedinUrl?: InputMaybe<Scalars['String']['input']>;\n /** Extra metadata (browser info, referrer URL, etc.). */\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n phone?: InputMaybe<Scalars['String']['input']>;\n portfolioUrl?: InputMaybe<Scalars['String']['input']>;\n /** Role the applicant is applying for (the careers site owns the list). */\n position: Scalars['String']['input'];\n /** Platform product ID (identifies which careers site the form came from). */\n productId?: InputMaybe<Scalars['String']['input']>;\n /** reCAPTCHA token, verified server-side when CAPTCHA_ENABLED=true. */\n recaptchaToken?: InputMaybe<Scalars['String']['input']>;\n /** Base64-encoded resume bytes (a `data:` URL prefix is tolerated). */\n resumeBase64: Scalars['String']['input'];\n /** MIME type — must be PDF, DOC, or DOCX. */\n resumeContentType: Scalars['String']['input'];\n resumeFileName: Scalars['String']['input'];\n};\n\nexport type SubmitJobApplicationResult = {\n __typename?: 'SubmitJobApplicationResult';\n application?: Maybe<JobApplication>;\n message?: Maybe<Scalars['String']['output']>;\n success: Scalars['Boolean']['output'];\n};\n\nexport type SubmitPublisherVerificationInput = {\n contactEmail: Scalars['String']['input'];\n contactPhone?: InputMaybe<Scalars['String']['input']>;\n country: Scalars['String']['input'];\n documents: Array<PublisherVerificationDocumentInput>;\n legalName: Scalars['String']['input'];\n supportUrl?: InputMaybe<Scalars['String']['input']>;\n taxId: Scalars['String']['input'];\n websiteUrl?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type SubmitSatisfactionSurveyInput = {\n comment?: InputMaybe<Scalars['String']['input']>;\n feedbackType?: InputMaybe<FeedbackCategory>;\n rating: Scalars['Int']['input'];\n surveyId: Scalars['ID']['input'];\n};\n\nexport type Subprocessor = {\n __typename?: 'Subprocessor';\n activatedAt?: Maybe<Scalars['DateTime']['output']>;\n category: SubprocessorCategory;\n contactEmail?: Maybe<Scalars['String']['output']>;\n countriesOfTransfer: Array<Scalars['String']['output']>;\n createdAt: Scalars['DateTime']['output'];\n dataCategories: Array<Scalars['String']['output']>;\n dpaSignedAt?: Maybe<Scalars['DateTime']['output']>;\n dpaUrl?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n legalEntity: Scalars['String']['output'];\n name: Scalars['String']['output'];\n notes?: Maybe<Scalars['String']['output']>;\n privacyPolicyUrl?: Maybe<Scalars['String']['output']>;\n proposedAt?: Maybe<Scalars['DateTime']['output']>;\n purpose: Scalars['String']['output'];\n region: Scalars['String']['output'];\n retiredAt?: Maybe<Scalars['DateTime']['output']>;\n securityMeasures?: Maybe<Scalars['String']['output']>;\n status: SubprocessorStatus;\n updatedAt: Scalars['DateTime']['output'];\n websiteUrl?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum SubprocessorCategory {\n AiProvider = 'AI_PROVIDER',\n Analytics = 'ANALYTICS',\n Cdn = 'CDN',\n CloudInfrastructure = 'CLOUD_INFRASTRUCTURE',\n CustomerSupport = 'CUSTOMER_SUPPORT',\n EmailDelivery = 'EMAIL_DELIVERY',\n Monitoring = 'MONITORING',\n Other = 'OTHER',\n Payment = 'PAYMENT',\n Storage = 'STORAGE'\n}\n\nexport type SubprocessorConnection = {\n __typename?: 'SubprocessorConnection';\n hasMore: Scalars['Boolean']['output'];\n nodes: Array<Subprocessor>;\n total: Scalars['Int']['output'];\n};\n\nexport type SubprocessorFilter = {\n category?: InputMaybe<SubprocessorCategory>;\n region?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<SubprocessorStatus>;\n};\n\nexport type SubprocessorInput = {\n category: SubprocessorCategory;\n contactEmail?: InputMaybe<Scalars['String']['input']>;\n countriesOfTransfer: Array<Scalars['String']['input']>;\n dataCategories: Array<Scalars['String']['input']>;\n dpaSignedAt?: InputMaybe<Scalars['DateTime']['input']>;\n dpaUrl?: InputMaybe<Scalars['String']['input']>;\n legalEntity: Scalars['String']['input'];\n name: Scalars['String']['input'];\n notes?: InputMaybe<Scalars['String']['input']>;\n privacyPolicyUrl?: InputMaybe<Scalars['String']['input']>;\n purpose: Scalars['String']['input'];\n region: Scalars['String']['input'];\n securityMeasures?: InputMaybe<Scalars['String']['input']>;\n websiteUrl?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum SubprocessorStatus {\n Active = 'ACTIVE',\n Proposed = 'PROPOSED',\n Retired = 'RETIRED'\n}\n\nexport type SubprocessorUpdateInput = {\n category?: InputMaybe<SubprocessorCategory>;\n contactEmail?: InputMaybe<Scalars['String']['input']>;\n countriesOfTransfer?: InputMaybe<Array<Scalars['String']['input']>>;\n dataCategories?: InputMaybe<Array<Scalars['String']['input']>>;\n dpaSignedAt?: InputMaybe<Scalars['DateTime']['input']>;\n dpaUrl?: InputMaybe<Scalars['String']['input']>;\n legalEntity?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n notes?: InputMaybe<Scalars['String']['input']>;\n privacyPolicyUrl?: InputMaybe<Scalars['String']['input']>;\n purpose?: InputMaybe<Scalars['String']['input']>;\n region?: InputMaybe<Scalars['String']['input']>;\n securityMeasures?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<SubprocessorStatus>;\n websiteUrl?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type SubscribeInput = {\n /** Newsletter context for scoping (workspaceId, userId, productId, tenantId, etc.) */\n context?: InputMaybe<NewsletterContextInput>;\n email: Scalars['String']['input'];\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n platformProductId: Scalars['String']['input'];\n userId?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Root subscription type */\nexport type Subscription = {\n __typename?: 'Subscription';\n /** Placeholder for extending subscriptions in other modules */\n _empty?: Maybe<Scalars['String']['output']>;\n _emptyBilling?: Maybe<Scalars['String']['output']>;\n _emptyDevportal?: Maybe<Scalars['String']['output']>;\n _emptyI18n?: Maybe<Scalars['String']['output']>;\n /** Placeholder field to allow empty Subscription type extension. Each module has a unique placeholder to avoid naming conflicts across subgraphs. */\n _emptyNewsletter?: Maybe<Scalars['String']['output']>;\n _emptyNotification?: Maybe<Scalars['String']['output']>;\n /** Placeholder field to allow empty Subscription type extension. Each module has a unique placeholder to avoid naming conflicts across subgraphs. */\n _emptySupport?: Maybe<Scalars['String']['output']>;\n _emptyTours?: Maybe<Scalars['String']['output']>;\n /** Placeholder subscription (extended by modules) @rbac(public: true, scopeType: \"global\") */\n _placeholder?: Maybe<Scalars['String']['output']>;\n agentStatusChanged: AgentProfile;\n /** Fires whenever the AppReview lifecycle changes for a given application (submission -> moderation -> publish/reject). */\n appReviewStatusChanged: AppReview;\n /** Fires when a store admin approves or rejects a developer's submitted application. Subscribe with the applicationId returned from submitApplicationForReview. */\n applicationStoreStatusChanged: ApplicationStoreStatus;\n /** 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 */\n channelHealthChanged: ChannelHealthUpdate;\n /** 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). */\n connectionStatusChanged: ConnectionStatusChangedEvent;\n /** Emits the deleted content-page id. */\n contentPageDeleted: Scalars['ID']['output'];\n /** Notifies clients when a content page is created or updated. */\n contentPageUpdated: ProductContentPage;\n coverageChanged: CoverageChangeEvent;\n /** Subscribe to delivery status updates for a channel. Emits when a message delivery attempt changes status (SENDING, SENT, FAILED, etc.) */\n deliveryUpdated: DeliveryUpdatedEvent;\n dependencyTriggered: DependencyTriggeredUpdate;\n executionUpdated: ExecutionUpdate;\n /** Notifies clients when a feature flag definition is created or updated. Subscribers can pass `flagKey` to receive only matching events. */\n featureFlagChanged: FeatureFlag;\n /** Emits the deleted feature-flag id so clients can drop it from their cache. */\n featureFlagDeleted: Scalars['ID']['output'];\n importJobProgress: ImportJobProgressEvent;\n /** 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. */\n installationStatusUpdated?: Maybe<InstallationStatusUpdatedEvent>;\n jobStatusUpdated: JobStatusUpdate;\n /** Notifies clients when a keyboard shortcut is created, updated, or toggled. Subscribers can pass `productId` to scope the stream to a single product. */\n keyboardShortcutChanged: KeyboardShortcut;\n /** Emits the deleted shortcut id so clients can drop it from their cache. */\n keyboardShortcutDeleted: Scalars['ID']['output'];\n /** Subscribe to license entitlement status changes. */\n licenseStatusUpdated?: Maybe<LicenseStatusUpdatedEvent>;\n metricsUpdated: SchedulerMetricsUpdate;\n /** 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. */\n myUnreadNotificationCountStream: Scalars['Int']['output'];\n newTicketInQueue: SupportTicket;\n /** Subscribe to new notifications for the authenticated user */\n notificationReceived?: Maybe<Notification>;\n /** Subscribe to delivery status updates for a notification. Useful for real-time tracking of delivery progress. */\n onDeliveryStatusUpdate: ChannelDeliveryStatusUpdate;\n /** Subscribe to order status changes for a specific order or workspace. */\n orderStatusUpdated?: Maybe<OrderStatusUpdatedEvent>;\n /** Emits the deleted product id so clients can drop it from their cache. */\n productDeleted: Scalars['ID']['output'];\n /** Notifies clients when a platform product is created or updated. Fires on create + update mutations; deletes are reported via `productDeleted`. */\n productUpdated: PlatformProduct;\n /** Fires when the per-organization revenue rollup recomputes (currently every cron tick or after a settled sale). */\n revenueUpdated: DeveloperOrgRevenueAnalytics;\n /** Subscribe to publisher submission status changes. */\n submissionStatusUpdated?: Maybe<SubmissionStatusUpdatedEvent>;\n /** Stream of soft-deleted tenant ids. */\n tenantDeleted: Scalars['ID']['output'];\n /** 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. */\n tenantUpdated: Tenant;\n ticketMessageAdded: SupportMessage;\n ticketUpdated: SupportTicket;\n translationStatusChanged: TranslationStatusEvent;\n translationUpdated: TranslationUpdateEvent;\n /** Subscribe to unread count changes for the authenticated user */\n unreadCountUpdated?: Maybe<Scalars['Int']['output']>;\n /** Fires on every WebhookDelivery state transition for the given webhook (PENDING -> DELIVERING -> DELIVERED|FAILED|RETRYING). */\n webhookDeliveryUpdated: WebhookDelivery;\n /** 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. */\n webhookReceived: WebhookReceivedEvent;\n};\n\n\n/** Root subscription type */\nexport type SubscriptionAppReviewStatusChangedArgs = {\n applicationId: Scalars['ID']['input'];\n};\n\n\n/** Root subscription type */\nexport type SubscriptionApplicationStoreStatusChangedArgs = {\n applicationId: Scalars['ID']['input'];\n};\n\n\n/** Root subscription type */\nexport type SubscriptionChannelHealthChangedArgs = {\n organizationId: Scalars['ID']['input'];\n};\n\n\n/** Root subscription type */\nexport type SubscriptionConnectionStatusChangedArgs = {\n channelId?: InputMaybe<Scalars['ID']['input']>;\n organizationId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\n/** Root subscription type */\nexport type SubscriptionContentPageUpdatedArgs = {\n productId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\n/** Root subscription type */\nexport type SubscriptionCoverageChangedArgs = {\n productCode: Scalars['String']['input'];\n};\n\n\n/** Root subscription type */\nexport type SubscriptionDeliveryUpdatedArgs = {\n channelId: Scalars['ID']['input'];\n};\n\n\n/** Root subscription type */\nexport type SubscriptionDependencyTriggeredArgs = {\n scheduleId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\n/** Root subscription type */\nexport type SubscriptionExecutionUpdatedArgs = {\n executionId?: InputMaybe<Scalars['ID']['input']>;\n scheduleId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\n/** Root subscription type */\nexport type SubscriptionFeatureFlagChangedArgs = {\n flagKey?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root subscription type */\nexport type SubscriptionImportJobProgressArgs = {\n jobId: Scalars['ID']['input'];\n};\n\n\n/** Root subscription type */\nexport type SubscriptionInstallationStatusUpdatedArgs = {\n workspaceId: Scalars['ID']['input'];\n};\n\n\n/** Root subscription type */\nexport type SubscriptionJobStatusUpdatedArgs = {\n scheduleId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\n/** Root subscription type */\nexport type SubscriptionKeyboardShortcutChangedArgs = {\n productId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\n/** Root subscription type */\nexport type SubscriptionLicenseStatusUpdatedArgs = {\n workspaceId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\n/** Root subscription type */\nexport type SubscriptionMyUnreadNotificationCountStreamArgs = {\n filter?: InputMaybe<NotificationFilterInput>;\n};\n\n\n/** Root subscription type */\nexport type SubscriptionNewTicketInQueueArgs = {\n priority?: InputMaybe<SupportTicketPriority>;\n};\n\n\n/** Root subscription type */\nexport type SubscriptionNotificationReceivedArgs = {\n userId: Scalars['ID']['input'];\n};\n\n\n/** Root subscription type */\nexport type SubscriptionOnDeliveryStatusUpdateArgs = {\n notificationId: Scalars['ID']['input'];\n organizationId: Scalars['ID']['input'];\n};\n\n\n/** Root subscription type */\nexport type SubscriptionOrderStatusUpdatedArgs = {\n orderId?: InputMaybe<Scalars['ID']['input']>;\n workspaceId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\n/** Root subscription type */\nexport type SubscriptionProductUpdatedArgs = {\n productId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\n/** Root subscription type */\nexport type SubscriptionRevenueUpdatedArgs = {\n organizationId: Scalars['ID']['input'];\n};\n\n\n/** Root subscription type */\nexport type SubscriptionSubmissionStatusUpdatedArgs = {\n publisherId: Scalars['ID']['input'];\n};\n\n\n/** Root subscription type */\nexport type SubscriptionTenantUpdatedArgs = {\n tenantId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n\n/** Root subscription type */\nexport type SubscriptionTicketMessageAddedArgs = {\n ticketId: Scalars['ID']['input'];\n};\n\n\n/** Root subscription type */\nexport type SubscriptionTicketUpdatedArgs = {\n ticketId: Scalars['ID']['input'];\n};\n\n\n/** Root subscription type */\nexport type SubscriptionTranslationStatusChangedArgs = {\n productCode?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root subscription type */\nexport type SubscriptionTranslationUpdatedArgs = {\n languageCode?: InputMaybe<Scalars['String']['input']>;\n moduleCode?: InputMaybe<Scalars['String']['input']>;\n namespaceCode?: InputMaybe<Scalars['String']['input']>;\n productCode?: InputMaybe<Scalars['String']['input']>;\n};\n\n\n/** Root subscription type */\nexport type SubscriptionUnreadCountUpdatedArgs = {\n userId: Scalars['ID']['input'];\n};\n\n\n/** Root subscription type */\nexport type SubscriptionWebhookDeliveryUpdatedArgs = {\n webhookId: Scalars['ID']['input'];\n};\n\n\n/** Root subscription type */\nexport type SubscriptionWebhookReceivedArgs = {\n channelId: Scalars['ID']['input'];\n};\n\n/** SubscriptionEntitlement defines what store items a plan grants access to. This allows plans to provide discounts or free access to store items. */\nexport type SubscriptionEntitlement = {\n __typename?: 'SubscriptionEntitlement';\n /** The type of access granted (FREE_ACCESS or DISCOUNT) */\n accessType: EntitlementAccessType;\n /** Additional context */\n context?: Maybe<Scalars['JSON']['output']>;\n /** When the entitlement was created */\n createdAt: Scalars['DateTime']['output'];\n /** Discount percentage if accessType is DISCOUNT (0-100) */\n discountPercentage?: Maybe<Scalars['Float']['output']>;\n /** Unique identifier */\n id: Scalars['ID']['output'];\n /** Reference to the store item entity (resolved via Federation) */\n item?: Maybe<StoreItem>;\n /** Reference to the store item (external entity from Store service) Resolved via Federation 2 Gateway */\n itemId: Scalars['String']['output'];\n /** The plan that grants this entitlement */\n plan: Plan;\n /** Reference to the plan that grants this entitlement */\n planId: Scalars['String']['output'];\n /** When the entitlement was last updated */\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type SubscriptionFeatures = {\n __typename?: 'SubscriptionFeatures';\n addon?: Maybe<Addon>;\n addonId?: Maybe<Scalars['ID']['output']>;\n context?: Maybe<Scalars['JSON']['output']>;\n id?: Maybe<Scalars['ID']['output']>;\n plan?: Maybe<Plan>;\n planId?: Maybe<Scalars['ID']['output']>;\n /** 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. */\n quantity?: Maybe<Scalars['Float']['output']>;\n quota?: Maybe<Quota>;\n quotaId?: Maybe<Scalars['ID']['output']>;\n};\n\nexport type SubscriptionHistory = {\n __typename?: 'SubscriptionHistory';\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n fromStatus: SubscriptionStatus;\n id: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n reason?: Maybe<Scalars['String']['output']>;\n subscription: BillingSubscription;\n subscriptionId: Scalars['ID']['output'];\n toStatus: SubscriptionStatus;\n};\n\nexport enum SubscriptionInterval {\n Daily = 'DAILY',\n Monthly = 'MONTHLY',\n Weekly = 'WEEKLY',\n Yearly = 'YEARLY'\n}\n\nexport type SubscriptionQuotaUsageWithFilter = {\n __typename?: 'SubscriptionQuotaUsageWithFilter';\n page: Scalars['Int']['output'];\n pageSize: Scalars['Int']['output'];\n totalCount: Scalars['Int']['output'];\n totalPages: Scalars['Int']['output'];\n usages: Array<Usage>;\n};\n\nexport enum SubscriptionStatus {\n Active = 'active',\n Canceled = 'canceled',\n Completed = 'completed',\n Downgraded = 'downgraded',\n Expired = 'expired',\n Incomplete = 'incomplete',\n IncompleteExpired = 'incomplete_expired',\n PastDue = 'past_due',\n Paused = 'paused',\n Trialing = 'trialing',\n Upgraded = 'upgraded'\n}\n\nexport type SubscriptionWithQuotas = {\n __typename?: 'SubscriptionWithQuotas';\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['String']['output'];\n /** Name of the subscription's plan (e.g. \"VibeControls - Free\"). */\n planName?: Maybe<Scalars['String']['output']>;\n /** Product the subscription's plan belongs to (e.g. \"vibecontrols\"). */\n productId?: Maybe<Scalars['String']['output']>;\n quotas: Array<QuotaAssignmentSummary>;\n status: SubscriptionStatus;\n};\n\nexport type SupportAnalytics = {\n __typename?: 'SupportAnalytics';\n categoryBreakdown: Array<CategoryBreakdown>;\n priorityBreakdown: Array<PriorityBreakdown>;\n sourceBreakdown: Array<SourceBreakdown>;\n stats: SupportStats;\n ticketTrends: Array<TicketTrend>;\n};\n\nexport type SupportAttachmentFile = {\n __typename?: 'SupportAttachmentFile';\n downloadUrl: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n mimeType: Scalars['String']['output'];\n name: Scalars['String']['output'];\n size: Scalars['BigInt']['output'];\n};\n\nexport type SupportAttachmentPresignedPart = {\n __typename?: 'SupportAttachmentPresignedPart';\n partNumber: Scalars['Int']['output'];\n url: Scalars['String']['output'];\n};\n\nexport type SupportAttachmentUploadSession = {\n __typename?: 'SupportAttachmentUploadSession';\n attachmentId: Scalars['ID']['output'];\n partSize: Scalars['Int']['output'];\n presignedUrls: Array<SupportAttachmentPresignedPart>;\n sessionId: Scalars['ID']['output'];\n totalParts: Scalars['Int']['output'];\n uploadType: Scalars['String']['output'];\n uploadUrl?: Maybe<Scalars['String']['output']>;\n};\n\n/** 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. */\nexport type SupportAuthor = {\n __typename?: 'SupportAuthor';\n avatar: Scalars['String']['output'];\n displayName: Scalars['String']['output'];\n /** 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. */\n id: Scalars['ID']['output'];\n /** 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. */\n isAnonymized: Scalars['Boolean']['output'];\n /** AGENT | CUSTOMER | SYSTEM — drives UI styling without leaking identity. */\n kind: SupportAuthorKind;\n};\n\nexport enum SupportAuthorKind {\n Agent = 'AGENT',\n Customer = 'CUSTOMER',\n System = 'SYSTEM'\n}\n\n/** Support-specific context output type. Returns the stored context for each record. Uses a unique type name to avoid federation conflicts with other services. */\nexport type SupportContext = {\n __typename?: 'SupportContext';\n custom?: Maybe<Scalars['JSON']['output']>;\n organizationId?: Maybe<Scalars['ID']['output']>;\n productId?: Maybe<Scalars['ID']['output']>;\n projectId?: Maybe<Scalars['ID']['output']>;\n tenantId?: Maybe<Scalars['ID']['output']>;\n userId?: Maybe<Scalars['ID']['output']>;\n workspaceId?: Maybe<Scalars['ID']['output']>;\n};\n\n/** 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. */\nexport type SupportContextFilterInput = {\n organizationId?: InputMaybe<Scalars['ID']['input']>;\n productId?: InputMaybe<Scalars['ID']['input']>;\n projectId?: InputMaybe<Scalars['ID']['input']>;\n userId?: InputMaybe<Scalars['ID']['input']>;\n workspaceId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n/** 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. */\nexport type SupportContextInput = {\n custom?: InputMaybe<Scalars['JSON']['input']>;\n organizationId?: InputMaybe<Scalars['ID']['input']>;\n productId?: InputMaybe<Scalars['ID']['input']>;\n projectId?: InputMaybe<Scalars['ID']['input']>;\n userId?: InputMaybe<Scalars['ID']['input']>;\n workspaceId?: InputMaybe<Scalars['ID']['input']>;\n};\n\nexport type SupportEraseResult = {\n __typename?: 'SupportEraseResult';\n anonymised: Scalars['Int']['output'];\n dryRun: Scalars['Boolean']['output'];\n notes?: Maybe<Scalars['String']['output']>;\n purged: Scalars['Int']['output'];\n retainedForLegalReason?: Maybe<Scalars['String']['output']>;\n service: Scalars['String']['output'];\n};\n\nexport enum SupportExportFormat {\n Csv = 'CSV',\n Json = 'JSON',\n Po = 'PO',\n Xliff = 'XLIFF',\n Xlsx = 'XLSX'\n}\n\nexport type SupportMessage = {\n __typename?: 'SupportMessage';\n attachmentCount: Scalars['Int']['output'];\n attachments: Array<Scalars['String']['output']>;\n /** Privacy-aware author projection. Returns the anonymized alias + avatar for end-users; admin app (super_admin / service) sees the real identity. */\n author: SupportAuthor;\n authorId: Scalars['String']['output'];\n /** Contextual IDs for filtering and scoping (workspaceId, userId, projectId, etc.) */\n context?: Maybe<SupportContext>;\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n isInternal: Scalars['Boolean']['output'];\n message: Scalars['String']['output'];\n ticket: SupportTicket;\n ticketId: Scalars['String']['output'];\n type: MessageType;\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type SupportPaginationInput = {\n cursor?: InputMaybe<Scalars['String']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type SupportStats = {\n __typename?: 'SupportStats';\n averageFirstResponseTimeHours?: Maybe<Scalars['Float']['output']>;\n averageResolutionTimeHours?: Maybe<Scalars['Float']['output']>;\n closedTickets: Scalars['Int']['output'];\n inProgressTickets: Scalars['Int']['output'];\n newTickets: Scalars['Int']['output'];\n openTickets: Scalars['Int']['output'];\n reopenedTickets: Scalars['Int']['output'];\n resolvedTickets: Scalars['Int']['output'];\n slaComplianceRate?: Maybe<Scalars['Float']['output']>;\n totalTickets: Scalars['Int']['output'];\n waitingOnCustomerTickets: Scalars['Int']['output'];\n};\n\nexport type SupportTicket = {\n __typename?: 'SupportTicket';\n assignedTo?: Maybe<Scalars['String']['output']>;\n category?: Maybe<SupportTicketCategory>;\n categoryId?: Maybe<Scalars['String']['output']>;\n closedAt?: Maybe<Scalars['DateTime']['output']>;\n /** Contextual IDs for filtering and scoping (workspaceId, userId, projectId, etc.) */\n context?: Maybe<SupportContext>;\n createdAt: Scalars['DateTime']['output'];\n customFields?: Maybe<Scalars['JSON']['output']>;\n description: Scalars['String']['output'];\n dueAt?: Maybe<Scalars['DateTime']['output']>;\n escalationLevel: Scalars['Int']['output'];\n firstResponseAt?: Maybe<Scalars['DateTime']['output']>;\n firstResponseDue?: Maybe<Scalars['DateTime']['output']>;\n id: Scalars['ID']['output'];\n linkedTickets: Array<TicketLink>;\n messages: Array<SupportMessage>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n priority: SupportTicketPriority;\n reopenedAt?: Maybe<Scalars['DateTime']['output']>;\n resolutionDue?: Maybe<Scalars['DateTime']['output']>;\n resolvedAt?: Maybe<Scalars['DateTime']['output']>;\n slaBreachStatus: SlaBreachStatus;\n slaPausedAt?: Maybe<Scalars['DateTime']['output']>;\n slaPausedSeconds: Scalars['Int']['output'];\n slaPolicy?: Maybe<SlaPolicy>;\n slaPolicyId?: Maybe<Scalars['String']['output']>;\n source: TicketSource;\n status: SupportTicketStatus;\n subject: Scalars['String']['output'];\n surveys: Array<CustomerSatisfactionSurvey>;\n tags: Array<Scalars['String']['output']>;\n tenantId?: Maybe<Scalars['String']['output']>;\n ticketCategory?: Maybe<TicketCategory>;\n ticketNumber: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n user: User;\n userId: Scalars['String']['output'];\n workspaceId?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum SupportTicketCategory {\n BillingAccount = 'BILLING_ACCOUNT',\n BugReport = 'BUG_REPORT',\n FeatureRequest = 'FEATURE_REQUEST',\n GeneralSupport = 'GENERAL_SUPPORT',\n TechnicalSupport = 'TECHNICAL_SUPPORT'\n}\n\nexport type SupportTicketConnection = {\n __typename?: 'SupportTicketConnection';\n hasMore: Scalars['Boolean']['output'];\n nodes: Array<SupportTicket>;\n totalCount: Scalars['Int']['output'];\n};\n\nexport type SupportTicketFilterInput = {\n assignedTo?: InputMaybe<Scalars['String']['input']>;\n category?: InputMaybe<SupportTicketCategory>;\n categoryId?: InputMaybe<Scalars['String']['input']>;\n /** Filter by operation context (workspaceId, userId, projectId, etc.) */\n context?: InputMaybe<SupportContextFilterInput>;\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n priorities?: InputMaybe<Array<SupportTicketPriority>>;\n priority?: InputMaybe<SupportTicketPriority>;\n slaBreachStatus?: InputMaybe<SlaBreachStatus>;\n source?: InputMaybe<TicketSource>;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n status?: InputMaybe<SupportTicketStatus>;\n statuses?: InputMaybe<Array<SupportTicketStatus>>;\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n userId?: InputMaybe<Scalars['String']['input']>;\n workspaceId?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum SupportTicketPriority {\n Critical = 'CRITICAL',\n High = 'HIGH',\n Low = 'LOW',\n Normal = 'NORMAL'\n}\n\nexport enum SupportTicketStatus {\n Closed = 'CLOSED',\n InProgress = 'IN_PROGRESS',\n New = 'NEW',\n Reopened = 'REOPENED',\n Resolved = 'RESOLVED',\n WaitingCustomer = 'WAITING_CUSTOMER'\n}\n\nexport type SuppressIdentifierInput = {\n channel: SuppressionChannel;\n expiresAt?: InputMaybe<Scalars['DateTime']['input']>;\n identifier: Scalars['String']['input'];\n identifierType: Scalars['String']['input'];\n reason: SuppressionReason;\n reasonNote?: InputMaybe<Scalars['String']['input']>;\n source: Scalars['String']['input'];\n};\n\nexport enum SuppressionChannel {\n All = 'ALL',\n Email = 'EMAIL',\n InApp = 'IN_APP',\n Push = 'PUSH',\n Sms = 'SMS',\n Whatsapp = 'WHATSAPP'\n}\n\nexport type SuppressionCheckResult = {\n __typename?: 'SuppressionCheckResult';\n matchedEntry?: Maybe<SuppressionEntry>;\n suppressed: Scalars['Boolean']['output'];\n};\n\nexport type SuppressionEntry = {\n __typename?: 'SuppressionEntry';\n channel: SuppressionChannel;\n createdAt: Scalars['DateTime']['output'];\n createdBy?: Maybe<Scalars['ID']['output']>;\n expiresAt?: Maybe<Scalars['DateTime']['output']>;\n id: Scalars['ID']['output'];\n identifier: Scalars['String']['output'];\n identifierType: Scalars['String']['output'];\n reason: SuppressionReason;\n reasonNote?: Maybe<Scalars['String']['output']>;\n releasedAt?: Maybe<Scalars['DateTime']['output']>;\n source: Scalars['String']['output'];\n suppressedAt: Scalars['DateTime']['output'];\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type SuppressionEntryConnection = {\n __typename?: 'SuppressionEntryConnection';\n hasMore: Scalars['Boolean']['output'];\n nodes: Array<SuppressionEntry>;\n total: Scalars['Int']['output'];\n};\n\nexport type SuppressionFilter = {\n active?: InputMaybe<Scalars['Boolean']['input']>;\n channel?: InputMaybe<SuppressionChannel>;\n identifier?: InputMaybe<Scalars['String']['input']>;\n identifierType?: InputMaybe<Scalars['String']['input']>;\n reason?: InputMaybe<SuppressionReason>;\n};\n\nexport type SuppressionFilterInput = {\n email?: InputMaybe<Scalars['String']['input']>;\n platformProductId?: InputMaybe<Scalars['String']['input']>;\n reason?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum SuppressionReason {\n AdminAction = 'ADMIN_ACTION',\n ComplianceHold = 'COMPLIANCE_HOLD',\n GdprErasure = 'GDPR_ERASURE',\n HardBounce = 'HARD_BOUNCE',\n SpamComplaint = 'SPAM_COMPLAINT',\n UserRequest = 'USER_REQUEST',\n UserUnsubscribe = 'USER_UNSUBSCRIBE'\n}\n\n/** Input for syncing channel users */\nexport type SyncChannelUsersInput = {\n /** Channel ID */\n channelId: Scalars['ID']['input'];\n /** Operation context for scoping */\n context?: InputMaybe<ContextInput>;\n /** Force refresh (ignore cache) */\n forceRefresh?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\n/** A recorded cross-layer sync attempt (global-tenant-svc → wspace layer). */\nexport type SyncOutboxEntry = {\n __typename?: 'SyncOutboxEntry';\n attempts: Scalars['Int']['output'];\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n lastAttemptAt?: Maybe<Scalars['DateTime']['output']>;\n lastError?: Maybe<Scalars['String']['output']>;\n maxAttempts: Scalars['Int']['output'];\n nextRetryAt?: Maybe<Scalars['DateTime']['output']>;\n operation: Scalars['String']['output'];\n /** 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. */\n payload?: Maybe<Scalars['JSON']['output']>;\n status: SyncOutboxStatus;\n updatedAt: Scalars['DateTime']['output'];\n workspaceId: Scalars['String']['output'];\n};\n\nexport type SyncOutboxEntryList = {\n __typename?: 'SyncOutboxEntryList';\n items: Array<SyncOutboxEntry>;\n total: Scalars['Int']['output'];\n};\n\nexport type SyncOutboxFilterInput = {\n /** Filter by sync operation (e.g. SYNC_WORKSPACE, ADD_MEMBER, REMOVE_MEMBER). */\n operation?: InputMaybe<Scalars['String']['input']>;\n /** Filter to one or more statuses. If omitted, all statuses are returned. */\n statuses?: InputMaybe<Array<SyncOutboxStatus>>;\n /** Filter by the workspace the sync targets. */\n workspaceId?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type SyncOutboxStats = {\n __typename?: 'SyncOutboxStats';\n pending: Scalars['Int']['output'];\n permanentlyFailed: Scalars['Int']['output'];\n retrying: Scalars['Int']['output'];\n successful: Scalars['Int']['output'];\n};\n\nexport enum SyncOutboxStatus {\n Pending = 'PENDING',\n PermanentlyFailed = 'PERMANENTLY_FAILED',\n Retrying = 'RETRYING',\n Success = 'SUCCESS'\n}\n\nexport type SyncStoreSubmissionInput = {\n rejectedReason?: InputMaybe<Scalars['String']['input']>;\n reviewNotes?: InputMaybe<Scalars['String']['input']>;\n status: Scalars['String']['input'];\n storeProductId: Scalars['ID']['input'];\n};\n\nexport type SyncTourStepInput = {\n actions?: InputMaybe<Scalars['JSON']['input']>;\n content: Scalars['String']['input'];\n /** Operation context for scoping (workspaceId, userId, productId, moduleId, etc.) */\n context?: InputMaybe<ContextInput>;\n customData?: InputMaybe<Scalars['JSON']['input']>;\n id?: InputMaybe<Scalars['ID']['input']>;\n placement: TourStepPlacement;\n requireInteraction?: InputMaybe<Scalars['Boolean']['input']>;\n skipConditions?: InputMaybe<Scalars['JSON']['input']>;\n stepOrder: Scalars['Int']['input'];\n targetSelector: Scalars['String']['input'];\n targetSelectorDesktop?: InputMaybe<Scalars['String']['input']>;\n targetSelectorMobile?: InputMaybe<Scalars['String']['input']>;\n targetSelectorTablet?: InputMaybe<Scalars['String']['input']>;\n title: Scalars['String']['input'];\n waitForEvent?: InputMaybe<Scalars['String']['input']>;\n waitForSelector?: InputMaybe<Scalars['String']['input']>;\n waitForTimeout?: InputMaybe<Scalars['Int']['input']>;\n};\n\n/** Input for syncing workspace from workspace layer to global layer Called by wspace-workspace-svc after creating a workspace directly */\nexport type SyncWorkspaceFromWspaceInput = {\n /** Workspace name */\n name: Scalars['String']['input'];\n /** Organization ID */\n organizationId: Scalars['String']['input'];\n /** User ID of workspace creator/owner */\n ownerId: Scalars['String']['input'];\n /** Tenant ID */\n tenantId: Scalars['String']['input'];\n /** Workspace type (maps to PERSONAL, TEAM, ENTERPRISE) */\n type?: InputMaybe<Scalars['String']['input']>;\n /** Workspace ID (must match the ID from workspace layer) */\n workspaceId: Scalars['ID']['input'];\n};\n\n/** Response for syncWorkspaceFromWspace mutation */\nexport type SyncWorkspaceFromWspaceResponse = {\n __typename?: 'SyncWorkspaceFromWspaceResponse';\n message?: Maybe<Scalars['String']['output']>;\n success: Scalars['Boolean']['output'];\n workspaceId?: Maybe<Scalars['String']['output']>;\n};\n\nexport type TagChannelConnectionInput = {\n entityId: Scalars['ID']['input'];\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n source?: InputMaybe<Scalars['String']['input']>;\n tagId: Scalars['ID']['input'];\n};\n\nexport type TagChannelInput = {\n entityId: Scalars['ID']['input'];\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n source?: InputMaybe<Scalars['String']['input']>;\n tagId: Scalars['ID']['input'];\n};\n\nexport type TagStoreProductInput = {\n entityId: Scalars['ID']['input'];\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n source?: InputMaybe<Scalars['String']['input']>;\n tagId: Scalars['ID']['input'];\n validFrom?: InputMaybe<Scalars['DateTime']['input']>;\n validTo?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\nexport type TagsAndResourceTypes = {\n __typename?: 'TagsAndResourceTypes';\n /** Available resource types from usage records */\n resourceTypes: Array<Scalars['String']['output']>;\n /** Available tags from usage records */\n tags: Array<Scalars['String']['output']>;\n};\n\n/** Result of tax calculation */\nexport type TaxCalculationResult = {\n __typename?: 'TaxCalculationResult';\n /** Jurisdiction code (IN, US, EU, etc.) */\n jurisdiction: Scalars['String']['output'];\n /** Original amount before tax */\n subtotal: Scalars['Float']['output'];\n /** Calculated tax amount (in target currency) */\n taxAmount: Scalars['Float']['output'];\n /** Tax breakdown (e.g., IGST, CGST+SGST) */\n taxBreakdown?: Maybe<Scalars['JSON']['output']>;\n /** Tax rate as decimal (e.g., 0.18 for 18%) */\n taxRate: Scalars['Float']['output'];\n /** Tax type (GST, VAT, SALES_TAX, NONE) */\n taxType: Scalars['String']['output'];\n /** Total amount including tax */\n total: Scalars['Float']['output'];\n};\n\nexport type TaxRate = {\n __typename?: 'TaxRate';\n active: Scalars['Boolean']['output'];\n context?: Maybe<Scalars['JSON']['output']>;\n country: Scalars['String']['output'];\n createdAt: Scalars['DateTime']['output'];\n description?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n rate: Scalars['Float']['output'];\n state?: Maybe<Scalars['String']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type TemplateFilterInput = {\n enabled?: InputMaybe<Scalars['Boolean']['input']>;\n locale?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<NotificationType>;\n};\n\nexport type TemplateNotificationResult = {\n __typename?: 'TemplateNotificationResult';\n /** The created notification objects */\n notifications: Array<Notification>;\n /** Number of notifications that failed */\n totalFailed: Scalars['Int']['output'];\n /** Total number of recipients requested */\n totalRequested: Scalars['Int']['output'];\n /** Number of notifications successfully triggered */\n totalTriggered: Scalars['Int']['output'];\n};\n\n/** Tenant type stub - represents a tenant entity from the tenant service This service doesn't own the Tenant model, but references it */\nexport type Tenant = {\n __typename?: 'Tenant';\n config?: Maybe<TenantConfig>;\n createdAt: Scalars['DateTime']['output'];\n customDomain?: Maybe<Scalars['String']['output']>;\n /** 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 */\n endpoint?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n name: Scalars['String']['output'];\n /** Organizations belonging to this tenant */\n organizations: Array<Organization>;\n slug: Scalars['String']['output'];\n status: TenantStatus;\n type: TenantType;\n updatedAt: Scalars['DateTime']['output'];\n /** Workspaces belonging to this tenant */\n workspaces: Array<Workspace>;\n};\n\n/** Tenant configuration for regional settings, branding, and features */\nexport type TenantConfig = {\n __typename?: 'TenantConfig';\n complianceRegion?: Maybe<Scalars['String']['output']>;\n customBranding?: Maybe<Scalars['JSON']['output']>;\n dataResidency?: Maybe<Scalars['String']['output']>;\n features?: Maybe<Scalars['JSON']['output']>;\n region?: Maybe<Scalars['String']['output']>;\n};\n\n/** 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. */\nexport type TenantExport = {\n __typename?: 'TenantExport';\n csv: Scalars['String']['output'];\n format: Scalars['String']['output'];\n generatedAt: Scalars['DateTime']['output'];\n rowCount: Scalars['Int']['output'];\n truncated: Scalars['Boolean']['output'];\n};\n\n/** Filter input for querying tenants */\nexport type TenantFilterInput = {\n search?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<TenantStatus>;\n type?: InputMaybe<TenantType>;\n};\n\n/** Paginated list of tenants */\nexport type TenantList = {\n __typename?: 'TenantList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<Tenant>;\n limit: Scalars['Int']['output'];\n offset: Scalars['Int']['output'];\n total: Scalars['Int']['output'];\n};\n\n/** 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) */\nexport type TenantMember = {\n __typename?: 'TenantMember';\n /** userId of the super_admin (or service identity) that granted this row. */\n addedBy: Scalars['String']['output'];\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n role: TenantMemberRole;\n tenant: Tenant;\n tenantId: Scalars['ID']['output'];\n updatedAt: Scalars['DateTime']['output'];\n userId: Scalars['ID']['output'];\n};\n\n/** Paginated list of explicit tenant-member grants. */\nexport type TenantMemberList = {\n __typename?: 'TenantMemberList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<TenantMember>;\n limit: Scalars['Int']['output'];\n offset: Scalars['Int']['output'];\n total: Scalars['Int']['output'];\n};\n\n/** 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. */\nexport enum TenantMemberRole {\n Admin = 'ADMIN',\n Member = 'MEMBER'\n}\n\n/** Lightweight tenant routing info used by gateways to decide whether to proxy requests to a dedicated tenant endpoint. */\nexport type TenantRoutingInfo = {\n __typename?: 'TenantRoutingInfo';\n endpoint?: Maybe<Scalars['String']['output']>;\n status: TenantStatus;\n tenantId: Scalars['ID']['output'];\n type: TenantType;\n};\n\n/** Tenant status for lifecycle management */\nexport enum TenantStatus {\n Active = 'ACTIVE',\n Deleted = 'DELETED',\n Provisioning = 'PROVISIONING',\n Suspended = 'SUSPENDED'\n}\n\nexport type TenantStructureProvisioningFailure = {\n __typename?: 'TenantStructureProvisioningFailure';\n message: Scalars['String']['output'];\n recordedAt: Scalars['DateTime']['output'];\n step: Scalars['String']['output'];\n};\n\nexport type TenantStructureProvisioningState = {\n __typename?: 'TenantStructureProvisioningState';\n failures: Array<TenantStructureProvisioningFailure>;\n status: ProvisioningStatus;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\n/** Multi-tenancy tenant type - determines isolation model */\nexport enum TenantType {\n Dedicated = 'DEDICATED',\n Shared = 'SHARED'\n}\n\nexport type TestNewsletterResult = {\n __typename?: 'TestNewsletterResult';\n sentCount: Scalars['Int']['output'];\n sentTo: Array<Scalars['String']['output']>;\n success: Scalars['Boolean']['output'];\n};\n\nexport type TicketCategory = {\n __typename?: 'TicketCategory';\n articleCount: Scalars['Int']['output'];\n articles: Array<KnowledgeBaseArticle>;\n children: Array<TicketCategory>;\n color?: Maybe<Scalars['String']['output']>;\n context?: Maybe<SupportContext>;\n createdAt: Scalars['DateTime']['output'];\n description?: Maybe<Scalars['String']['output']>;\n displayOrder: Scalars['Int']['output'];\n icon?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n isActive: Scalars['Boolean']['output'];\n name: Scalars['String']['output'];\n parent?: Maybe<TicketCategory>;\n parentId?: Maybe<Scalars['String']['output']>;\n slaOverride?: Maybe<Scalars['JSON']['output']>;\n slug: Scalars['String']['output'];\n tenantId?: Maybe<Scalars['String']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type TicketCategoryConnection = {\n __typename?: 'TicketCategoryConnection';\n hasMore: Scalars['Boolean']['output'];\n nodes: Array<TicketCategory>;\n totalCount: Scalars['Int']['output'];\n};\n\nexport type TicketCategoryFilterInput = {\n context?: InputMaybe<SupportContextFilterInput>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n parentId?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type TicketLink = {\n __typename?: 'TicketLink';\n createdAt: Scalars['DateTime']['output'];\n createdBy: Scalars['String']['output'];\n fromTicket: SupportTicket;\n fromTicketId: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n linkType: LinkType;\n toTicket: SupportTicket;\n toTicketId: Scalars['String']['output'];\n};\n\nexport enum TicketSource {\n Api = 'API',\n Email = 'EMAIL',\n Import = 'IMPORT',\n InApp = 'IN_APP',\n Phone = 'PHONE',\n Website = 'WEBSITE'\n}\n\nexport type TicketTemplate = {\n __typename?: 'TicketTemplate';\n body: Scalars['String']['output'];\n category: SupportTicketCategory;\n context?: Maybe<SupportContext>;\n createdAt: Scalars['DateTime']['output'];\n createdBy: Scalars['String']['output'];\n description?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n isActive: Scalars['Boolean']['output'];\n name: Scalars['String']['output'];\n priority: SupportTicketPriority;\n subject: Scalars['String']['output'];\n tags: Array<Scalars['String']['output']>;\n tenantId?: Maybe<Scalars['String']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type TicketTemplateConnection = {\n __typename?: 'TicketTemplateConnection';\n hasMore: Scalars['Boolean']['output'];\n nodes: Array<TicketTemplate>;\n totalCount: Scalars['Int']['output'];\n};\n\nexport type TicketTemplateFilterInput = {\n category?: InputMaybe<SupportTicketCategory>;\n context?: InputMaybe<SupportContextFilterInput>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n priority?: InputMaybe<SupportTicketPriority>;\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\nexport type TicketTrend = {\n __typename?: 'TicketTrend';\n count: Scalars['Int']['output'];\n date: Scalars['DateTime']['output'];\n groupBy: TrendGroupBy;\n};\n\nexport enum TimePeriod {\n Custom = 'CUSTOM',\n Last_7Days = 'LAST_7_DAYS',\n Last_30Days = 'LAST_30_DAYS',\n Last_90Days = 'LAST_90_DAYS',\n LastYear = 'LAST_YEAR'\n}\n\nexport type TokenValidationError = {\n __typename?: 'TokenValidationError';\n code: Scalars['String']['output'];\n message: Scalars['String']['output'];\n};\n\nexport type TokenValidationResponse = {\n __typename?: 'TokenValidationResponse';\n allowedWorkspaceIds?: Maybe<Array<Scalars['String']['output']>>;\n appId?: Maybe<Scalars['String']['output']>;\n delegationId?: Maybe<Scalars['String']['output']>;\n email?: Maybe<Scalars['String']['output']>;\n error?: Maybe<TokenValidationError>;\n expiresAt?: Maybe<Scalars['Int']['output']>;\n role?: Maybe<Scalars['String']['output']>;\n scopes?: Maybe<Array<Scalars['String']['output']>>;\n tokenType?: Maybe<Scalars['String']['output']>;\n userId?: Maybe<Scalars['String']['output']>;\n valid: Scalars['Boolean']['output'];\n};\n\nexport type TopChartsInput = {\n category?: InputMaybe<Scalars['String']['input']>;\n chart: ChartType;\n country?: InputMaybe<Scalars['String']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n window?: InputMaybe<ChartWindow>;\n};\n\nexport type Tour = {\n __typename?: 'Tour';\n analytics?: Maybe<Array<TourAnalytics>>;\n completionCount: Scalars['Int']['output'];\n /** Contextual IDs for filtering and scoping (workspaceId, userId, productId, moduleId, etc.) */\n context?: Maybe<ToursContext>;\n createdAt: Scalars['DateTime']['output'];\n createdBy?: Maybe<Scalars['String']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n desktopConfig?: Maybe<Scalars['JSON']['output']>;\n displayOrder: Scalars['Int']['output'];\n endDate?: Maybe<Scalars['DateTime']['output']>;\n id: Scalars['ID']['output'];\n isActive: Scalars['Boolean']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n mobileConfig?: Maybe<Scalars['JSON']['output']>;\n moduleId?: Maybe<Scalars['String']['output']>;\n /** 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. */\n myProgress?: Maybe<TourUserProgress>;\n name: Scalars['String']['output'];\n pageId?: Maybe<Scalars['String']['output']>;\n priority: Scalars['Int']['output'];\n productId: Scalars['String']['output'];\n schedules?: Maybe<Array<TourSchedule>>;\n skipCount: Scalars['Int']['output'];\n slug: Scalars['String']['output'];\n startDate?: Maybe<Scalars['DateTime']['output']>;\n status: TourStatus;\n steps: Array<TourStep>;\n tabletConfig?: Maybe<Scalars['JSON']['output']>;\n triggerConfig?: Maybe<Scalars['JSON']['output']>;\n triggerType: TourTriggerType;\n updatedAt: Scalars['DateTime']['output'];\n updatedBy?: Maybe<Scalars['String']['output']>;\n userProgress?: Maybe<Array<TourUserProgress>>;\n version: Scalars['Int']['output'];\n viewCount: Scalars['Int']['output'];\n};\n\nexport type TourAnalytics = {\n __typename?: 'TourAnalytics';\n /** Contextual IDs for filtering and scoping (workspaceId, userId, productId, moduleId, etc.) */\n context?: Maybe<ToursContext>;\n deviceType?: Maybe<DeviceType>;\n duration?: Maybe<Scalars['Int']['output']>;\n eventType: TourAnalyticsEventType;\n id: Scalars['ID']['output'];\n ipHash?: Maybe<Scalars['String']['output']>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n moduleId?: Maybe<Scalars['String']['output']>;\n pageId?: Maybe<Scalars['String']['output']>;\n productId?: Maybe<Scalars['String']['output']>;\n sessionId?: Maybe<Scalars['String']['output']>;\n stepId?: Maybe<Scalars['String']['output']>;\n stepOrder?: Maybe<Scalars['Int']['output']>;\n timestamp: Scalars['DateTime']['output'];\n tour: Tour;\n tourId: Scalars['String']['output'];\n userAgent?: Maybe<Scalars['String']['output']>;\n userId?: Maybe<Scalars['String']['output']>;\n};\n\nexport type TourAnalyticsAggregation = {\n __typename?: 'TourAnalyticsAggregation';\n averageCompletionRate: Scalars['Float']['output'];\n averageDuration: Scalars['Float']['output'];\n byDeviceType: Array<DeviceTypeStats>;\n byEventType: Array<TourEventTypeStats>;\n totalCompletions: Scalars['Int']['output'];\n totalSkips: Scalars['Int']['output'];\n totalViews: Scalars['Int']['output'];\n};\n\nexport enum TourAnalyticsEventType {\n Interaction = 'INTERACTION',\n StepCompleted = 'STEP_COMPLETED',\n StepSkipped = 'STEP_SKIPPED',\n StepViewed = 'STEP_VIEWED',\n TourCompleted = 'TOUR_COMPLETED',\n TourDismissed = 'TOUR_DISMISSED',\n TourSkipped = 'TOUR_SKIPPED',\n TourStarted = 'TOUR_STARTED'\n}\n\nexport type TourBatchAnalyticsResult = {\n __typename?: 'TourBatchAnalyticsResult';\n events: Array<TourAnalytics>;\n failedCount: Scalars['Int']['output'];\n successCount: Scalars['Int']['output'];\n};\n\nexport type TourContextInput = {\n deviceType?: InputMaybe<DeviceType>;\n moduleId?: InputMaybe<Scalars['String']['input']>;\n pageId?: InputMaybe<Scalars['String']['input']>;\n productId: Scalars['String']['input'];\n workspaceId?: InputMaybe<Scalars['ID']['input']>;\n};\n\n/** 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. */\nexport type TourEventContextInput = {\n custom?: InputMaybe<Scalars['JSON']['input']>;\n moduleId?: InputMaybe<Scalars['ID']['input']>;\n organizationId?: InputMaybe<Scalars['ID']['input']>;\n pageId?: InputMaybe<Scalars['ID']['input']>;\n productId?: InputMaybe<Scalars['ID']['input']>;\n projectId?: InputMaybe<Scalars['ID']['input']>;\n userId?: InputMaybe<Scalars['ID']['input']>;\n workspaceId?: InputMaybe<Scalars['ID']['input']>;\n};\n\nexport type TourEventTypeStats = {\n __typename?: 'TourEventTypeStats';\n count: Scalars['Int']['output'];\n eventType: TourAnalyticsEventType;\n};\n\nexport type TourFilters = {\n /** Filter by operation context (workspaceId, userId, productId, moduleId, etc.) */\n context?: InputMaybe<ContextFilterInput>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n moduleId?: InputMaybe<Scalars['String']['input']>;\n pageId?: InputMaybe<Scalars['String']['input']>;\n productId?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<TourStatus>;\n triggerType?: InputMaybe<TourTriggerType>;\n};\n\nexport type TourMedia = {\n __typename?: 'TourMedia';\n altText?: Maybe<Scalars['String']['output']>;\n caption?: Maybe<Scalars['String']['output']>;\n cdnUrl?: Maybe<Scalars['String']['output']>;\n /** Contextual IDs for filtering and scoping (workspaceId, userId, productId, moduleId, etc.) */\n context?: Maybe<ToursContext>;\n createdAt: Scalars['DateTime']['output'];\n description?: Maybe<Scalars['String']['output']>;\n duration?: Maybe<Scalars['Int']['output']>;\n height?: Maybe<Scalars['Int']['output']>;\n id: Scalars['ID']['output'];\n isPublic: Scalars['Boolean']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n mimeType: Scalars['String']['output'];\n name: Scalars['String']['output'];\n size: Scalars['Int']['output'];\n storagePath: Scalars['String']['output'];\n storageUrl: Scalars['String']['output'];\n tourSteps?: Maybe<Array<TourStepMedia>>;\n transcript?: Maybe<Scalars['String']['output']>;\n type: TourMediaType;\n updatedAt: Scalars['DateTime']['output'];\n uploadedBy?: Maybe<Scalars['String']['output']>;\n width?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum TourMediaType {\n Audio = 'AUDIO',\n Document = 'DOCUMENT',\n Image = 'IMAGE',\n Video = 'VIDEO'\n}\n\nexport type TourPagination = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type TourSchedule = {\n __typename?: 'TourSchedule';\n /** Contextual IDs for filtering and scoping (workspaceId, userId, productId, moduleId, etc.) */\n context?: Maybe<ToursContext>;\n createdAt: Scalars['DateTime']['output'];\n endDate?: Maybe<Scalars['DateTime']['output']>;\n executionCount: Scalars['Int']['output'];\n id: Scalars['ID']['output'];\n isActive: Scalars['Boolean']['output'];\n lastExecutedAt?: Maybe<Scalars['DateTime']['output']>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n nextExecutionAt?: Maybe<Scalars['DateTime']['output']>;\n recurrenceRule?: Maybe<Scalars['String']['output']>;\n startDate: Scalars['DateTime']['output'];\n timezone: Scalars['String']['output'];\n tour: Tour;\n tourId: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport type TourStatSummary = {\n __typename?: 'TourStatSummary';\n completionCount: Scalars['Int']['output'];\n completionRate: Scalars['Float']['output'];\n skipCount: Scalars['Int']['output'];\n tourId: Scalars['String']['output'];\n tourName: Scalars['String']['output'];\n viewCount: Scalars['Int']['output'];\n};\n\nexport enum TourStatus {\n Archived = 'ARCHIVED',\n Draft = 'DRAFT',\n Published = 'PUBLISHED',\n Scheduled = 'SCHEDULED'\n}\n\nexport type TourStep = {\n __typename?: 'TourStep';\n actions?: Maybe<Scalars['JSON']['output']>;\n content: Scalars['String']['output'];\n /** Contextual IDs for filtering and scoping (workspaceId, userId, productId, moduleId, etc.) */\n context?: Maybe<ToursContext>;\n createdAt: Scalars['DateTime']['output'];\n customData?: Maybe<Scalars['JSON']['output']>;\n id: Scalars['ID']['output'];\n media?: Maybe<Array<TourStepMedia>>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n placement: TourStepPlacement;\n requireInteraction: Scalars['Boolean']['output'];\n skipConditions?: Maybe<Scalars['JSON']['output']>;\n stepOrder: Scalars['Int']['output'];\n targetSelector?: Maybe<Scalars['String']['output']>;\n targetSelectorDesktop?: Maybe<Scalars['String']['output']>;\n targetSelectorMobile?: Maybe<Scalars['String']['output']>;\n targetSelectorTablet?: Maybe<Scalars['String']['output']>;\n title: Scalars['String']['output'];\n tour: Tour;\n tourId: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n waitForEvent?: Maybe<Scalars['String']['output']>;\n waitForSelector?: Maybe<Scalars['String']['output']>;\n waitForTimeout?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type TourStepAnalytics = {\n __typename?: 'TourStepAnalytics';\n averageDuration: Scalars['Float']['output'];\n completionCount: Scalars['Int']['output'];\n skipCount: Scalars['Int']['output'];\n stepId: Scalars['String']['output'];\n viewCount: Scalars['Int']['output'];\n};\n\nexport type TourStepMedia = {\n __typename?: 'TourStepMedia';\n /** Contextual IDs for filtering and scoping (workspaceId, userId, productId, moduleId, etc.) */\n context?: Maybe<ToursContext>;\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n media: TourMedia;\n mediaId: Scalars['String']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n position: MediaPosition;\n tourStep: TourStep;\n tourStepId: Scalars['String']['output'];\n};\n\nexport enum TourStepPlacement {\n Auto = 'AUTO',\n Bottom = 'BOTTOM',\n Center = 'CENTER',\n Left = 'LEFT',\n Right = 'RIGHT',\n Top = 'TOP'\n}\n\nexport type TourTemplate = {\n __typename?: 'TourTemplate';\n category?: Maybe<Scalars['String']['output']>;\n config: Scalars['JSON']['output'];\n /** Contextual IDs for filtering and scoping (workspaceId, userId, productId, moduleId, etc.) */\n context?: Maybe<ToursContext>;\n createdAt: Scalars['DateTime']['output'];\n createdBy?: Maybe<Scalars['String']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n isPremium: Scalars['Boolean']['output'];\n isPublic: Scalars['Boolean']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n name: Scalars['String']['output'];\n slug: Scalars['String']['output'];\n tags: Array<Scalars['String']['output']>;\n thumbnail?: Maybe<Scalars['String']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n useCount: Scalars['Int']['output'];\n};\n\nexport enum TourTriggerType {\n AutoAlways = 'AUTO_ALWAYS',\n AutoFirstVisit = 'AUTO_FIRST_VISIT',\n Manual = 'MANUAL',\n OnEvent = 'ON_EVENT',\n Scheduled = 'SCHEDULED'\n}\n\nexport type TourUserProgress = {\n __typename?: 'TourUserProgress';\n completedAt?: Maybe<Scalars['DateTime']['output']>;\n completedSteps?: Maybe<Scalars['JSON']['output']>;\n /** Contextual IDs for filtering and scoping (workspaceId, userId, productId, moduleId, etc.) */\n context?: Maybe<ToursContext>;\n createdAt: Scalars['DateTime']['output'];\n currentStepId?: Maybe<Scalars['String']['output']>;\n currentStepOrder?: Maybe<Scalars['Int']['output']>;\n deviceType?: Maybe<DeviceType>;\n id: Scalars['ID']['output'];\n lastViewedAt?: Maybe<Scalars['DateTime']['output']>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n sessionId?: Maybe<Scalars['String']['output']>;\n skippedSteps?: Maybe<Scalars['JSON']['output']>;\n startedAt?: Maybe<Scalars['DateTime']['output']>;\n status: TourUserStatus;\n tour: Tour;\n tourId: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n userId: Scalars['String']['output'];\n};\n\nexport enum TourUserStatus {\n Completed = 'COMPLETED',\n Dismissed = 'DISMISSED',\n InProgress = 'IN_PROGRESS',\n NotStarted = 'NOT_STARTED',\n Skipped = 'SKIPPED'\n}\n\n/** 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. */\nexport type ToursContext = {\n __typename?: 'ToursContext';\n /** Additional custom context as JSON */\n custom?: Maybe<Scalars['JSON']['output']>;\n /** Module ID for module-level scoping */\n moduleId?: Maybe<Scalars['ID']['output']>;\n /** Organization ID for organization-level scoping */\n organizationId?: Maybe<Scalars['ID']['output']>;\n /** Page ID for page-level scoping */\n pageId?: Maybe<Scalars['ID']['output']>;\n /** Product ID for product-level scoping */\n productId?: Maybe<Scalars['ID']['output']>;\n /** Project ID for project-level scoping */\n projectId?: Maybe<Scalars['ID']['output']>;\n /** User ID for user-level scoping */\n userId?: Maybe<Scalars['ID']['output']>;\n /** Workspace ID for workspace-level scoping */\n workspaceId?: Maybe<Scalars['ID']['output']>;\n};\n\nexport type ToursPaginationInput = {\n cursor?: InputMaybe<Scalars['String']['input']>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n /** Page number for page-based pagination */\n page?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type ToursResponse = {\n __typename?: 'ToursResponse';\n hasMore: Scalars['Boolean']['output'];\n total: Scalars['Int']['output'];\n tours: Array<Tour>;\n};\n\n/** Transaction entity - resolvable via Federation Gateway. Other services (e.g., store-svc) can reference Transaction by id. */\nexport type Transaction = {\n __typename?: 'Transaction';\n amount: Scalars['Float']['output'];\n billingAccountId: Scalars['ID']['output'];\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n currency: Scalars['String']['output'];\n description?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n razorpayPaymentId?: Maybe<Scalars['String']['output']>;\n status: TransactionStatus;\n stripePaymentId?: Maybe<Scalars['String']['output']>;\n type: TransactionType;\n updatedAt: Scalars['DateTime']['output'];\n};\n\nexport enum TransactionStatus {\n Failed = 'failed',\n Pending = 'pending',\n Success = 'success'\n}\n\nexport enum TransactionType {\n Adjustment = 'adjustment',\n Payment = 'payment',\n Refund = 'refund'\n}\n\nexport type TransferLicenseInput = {\n entitlementId: Scalars['ID']['input'];\n notes?: InputMaybe<Scalars['String']['input']>;\n reason: LicenseTransferReason;\n toUserId: Scalars['String']['input'];\n toWorkspaceId: Scalars['String']['input'];\n};\n\nexport type Translation = {\n __typename?: 'Translation';\n createdAt: Scalars['DateTime']['output'];\n createdBy?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n key: TranslationKey;\n keyId: Scalars['String']['output'];\n language: Language;\n languageCode: Scalars['String']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n notes?: Maybe<Scalars['String']['output']>;\n pluralForms?: Maybe<Scalars['JSON']['output']>;\n publishedAt?: Maybe<Scalars['DateTime']['output']>;\n publishedBy?: Maybe<Scalars['String']['output']>;\n reviewedAt?: Maybe<Scalars['DateTime']['output']>;\n reviewedBy?: Maybe<Scalars['String']['output']>;\n status: TranslationStatus;\n tenantId?: Maybe<Scalars['String']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n updatedBy?: Maybe<Scalars['String']['output']>;\n value: Scalars['String']['output'];\n versions: Array<TranslationVersion>;\n};\n\nexport type TranslationAudit = {\n __typename?: 'TranslationAudit';\n action: Scalars['String']['output'];\n changes: Scalars['JSON']['output'];\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n ipAddress?: Maybe<Scalars['String']['output']>;\n key: TranslationKey;\n keyId: Scalars['String']['output'];\n languageCode?: Maybe<Scalars['String']['output']>;\n metadata?: Maybe<Scalars['JSON']['output']>;\n tenantId?: Maybe<Scalars['String']['output']>;\n userAgent?: Maybe<Scalars['String']['output']>;\n userId: Scalars['String']['output'];\n};\n\nexport type TranslationAuditList = {\n __typename?: 'TranslationAuditList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<TranslationAudit>;\n total: Scalars['Int']['output'];\n};\n\nexport type TranslationCoverage = {\n __typename?: 'TranslationCoverage';\n coverage: Scalars['Float']['output'];\n languageCode: Scalars['String']['output'];\n missingKeys: Array<Scalars['String']['output']>;\n totalKeys: Scalars['Int']['output'];\n translatedKeys: Scalars['Int']['output'];\n};\n\nexport type TranslationFilterInput = {\n keyId?: InputMaybe<Scalars['String']['input']>;\n languageCode?: InputMaybe<Scalars['String']['input']>;\n search?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<TranslationStatus>;\n tenantId?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type TranslationKey = {\n __typename?: 'TranslationKey';\n characterLimit?: Maybe<Scalars['Int']['output']>;\n context?: Maybe<Scalars['String']['output']>;\n createdAt: Scalars['DateTime']['output'];\n createdBy?: Maybe<Scalars['String']['output']>;\n defaultValue?: Maybe<Scalars['String']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n isPlural: Scalars['Boolean']['output'];\n key: Scalars['String']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n namespace?: Maybe<I18nNamespace>;\n namespaceId?: Maybe<Scalars['String']['output']>;\n placeholders?: Maybe<Scalars['JSON']['output']>;\n product: I18nProduct;\n productId: Scalars['String']['output'];\n status: TranslationKeyStatus;\n tags: Array<Scalars['String']['output']>;\n translations: Array<Translation>;\n updatedAt: Scalars['DateTime']['output'];\n updatedBy?: Maybe<Scalars['String']['output']>;\n versions: Array<TranslationVersion>;\n};\n\nexport type TranslationKeyFilterInput = {\n namespaceId?: InputMaybe<Scalars['String']['input']>;\n productId?: InputMaybe<Scalars['String']['input']>;\n search?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<TranslationKeyStatus>;\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\nexport type TranslationKeyList = {\n __typename?: 'TranslationKeyList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<TranslationKey>;\n total: Scalars['Int']['output'];\n};\n\nexport enum TranslationKeyStatus {\n Active = 'ACTIVE',\n Deleted = 'DELETED',\n Deprecated = 'DEPRECATED'\n}\n\nexport type TranslationList = {\n __typename?: 'TranslationList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<Translation>;\n total: Scalars['Int']['output'];\n};\n\nexport enum TranslationStatus {\n Approved = 'APPROVED',\n Draft = 'DRAFT',\n PendingReview = 'PENDING_REVIEW',\n Published = 'PUBLISHED'\n}\n\nexport type TranslationStatusEvent = {\n __typename?: 'TranslationStatusEvent';\n newStatus: TranslationStatus;\n previousStatus: TranslationStatus;\n timestamp: Scalars['DateTime']['output'];\n translation: Translation;\n userId?: Maybe<Scalars['String']['output']>;\n};\n\nexport type TranslationUpdateEvent = {\n __typename?: 'TranslationUpdateEvent';\n action: Scalars['String']['output'];\n timestamp: Scalars['DateTime']['output'];\n translation: Translation;\n userId?: Maybe<Scalars['String']['output']>;\n};\n\nexport type TranslationVersion = {\n __typename?: 'TranslationVersion';\n changeReason?: Maybe<Scalars['String']['output']>;\n createdAt: Scalars['DateTime']['output'];\n createdBy?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n key: TranslationKey;\n keyId: Scalars['String']['output'];\n languageCode: Scalars['String']['output'];\n pluralForms?: Maybe<Scalars['JSON']['output']>;\n translation?: Maybe<Translation>;\n translationId?: Maybe<Scalars['String']['output']>;\n value: Scalars['String']['output'];\n version: Scalars['Int']['output'];\n};\n\nexport type TranslationsExport = {\n __typename?: 'TranslationsExport';\n expiresAt: Scalars['DateTime']['output'];\n format: Scalars['String']['output'];\n url: Scalars['String']['output'];\n};\n\nexport enum TrendGroupBy {\n Day = 'DAY',\n Hour = 'HOUR',\n Month = 'MONTH',\n Week = 'WEEK'\n}\n\nexport type TriggerBatchNotificationsInput = {\n /** Size of each batch */\n batchSize?: InputMaybe<Scalars['Int']['input']>;\n /** Delay between batches in milliseconds */\n delayBetweenBatches?: InputMaybe<Scalars['Int']['input']>;\n /** List of notification IDs to trigger */\n notificationIds?: InputMaybe<Array<Scalars['ID']['input']>>;\n /** Or list of new notifications to create and trigger */\n notifications?: InputMaybe<Array<CreateNotificationInput>>;\n /** Default priority for batch */\n priority?: InputMaybe<NotificationPriority>;\n /** Optionally schedule all notifications instead of sending immediately */\n scheduledFor?: InputMaybe<Scalars['DateTime']['input']>;\n timezone?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type TriggerNotificationInput = {\n /** Specific channel instance ID from channel service (takes precedence) */\n channelId?: InputMaybe<Scalars['ID']['input']>;\n /** Also deliver as in-app notification alongside the primary platform */\n includeInApp?: InputMaybe<Scalars['Boolean']['input']>;\n /** Or create and trigger a new notification */\n notification?: InputMaybe<CreateNotificationInput>;\n /** ID of an existing notification to trigger */\n notificationId?: InputMaybe<Scalars['ID']['input']>;\n /** Platform type for auto-failover (EMAIL, SMS, etc.) */\n platform?: InputMaybe<NotificationChannel>;\n /** User IDs for in-app notifications (required when includeInApp is true) */\n userIds?: InputMaybe<Array<Scalars['ID']['input']>>;\n};\n\nexport type TriggerNotificationWithTemplateInput = {\n actions?: InputMaybe<Array<NotificationActionInput>>;\n /** Specific channel instance ID from channel service (takes precedence) */\n channelId?: InputMaybe<Scalars['ID']['input']>;\n expiresAt?: InputMaybe<Scalars['DateTime']['input']>;\n /** Also deliver as in-app notification alongside the primary platform */\n includeInApp?: InputMaybe<Scalars['Boolean']['input']>;\n media?: InputMaybe<Array<NotificationMediaInput>>;\n /** Platform type for auto-failover (EMAIL, SMS, etc.) - used if channelId not provided */\n platform?: InputMaybe<NotificationChannel>;\n priority?: InputMaybe<NotificationPriority>;\n /** Single recipient (use this OR recipients, not both) */\n recipient?: InputMaybe<RecipientInput>;\n /** Multiple recipients for bulk delivery (use this OR recipient, not both) */\n recipients?: InputMaybe<Array<RecipientInput>>;\n redirectUrl?: InputMaybe<Scalars['String']['input']>;\n /** Optionally schedule for later delivery */\n scheduledFor?: InputMaybe<Scalars['DateTime']['input']>;\n templateSlug: Scalars['String']['input'];\n timezone?: InputMaybe<Scalars['String']['input']>;\n topicId?: InputMaybe<Scalars['ID']['input']>;\n trackClicks?: InputMaybe<Scalars['Boolean']['input']>;\n trackOpens?: InputMaybe<Scalars['Boolean']['input']>;\n /** User IDs for in-app notifications (required when includeInApp is true) */\n userIds?: InputMaybe<Array<Scalars['ID']['input']>>;\n variables: Scalars['JSON']['input'];\n};\n\nexport enum TriggerStatus {\n Cancelled = 'CANCELLED',\n Failed = 'FAILED',\n Pending = 'PENDING',\n Triggered = 'TRIGGERED'\n}\n\nexport type UniversalTag = {\n __typename?: 'UniversalTag';\n id: Scalars['ID']['output'];\n};\n\nexport type UnreadCountResult = {\n __typename?: 'UnreadCountResult';\n count: Scalars['Int']['output'];\n userId: Scalars['ID']['output'];\n};\n\nexport type UntagChannelConnectionInput = {\n entityId: Scalars['ID']['input'];\n tagId: Scalars['ID']['input'];\n};\n\nexport type UntagChannelInput = {\n entityId: Scalars['ID']['input'];\n tagId: Scalars['ID']['input'];\n};\n\nexport type UntagStoreProductInput = {\n entityId: Scalars['ID']['input'];\n tagId: Scalars['ID']['input'];\n};\n\nexport type UpdateApiKeyInput = {\n expiresAt?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n scope?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\nexport type UpdateAffiliateCodeInput = {\n description?: InputMaybe<Scalars['String']['input']>;\n destinationUrl?: InputMaybe<Scalars['String']['input']>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n label?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n};\n\nexport type UpdateAgentProfileInput = {\n autoAssign?: InputMaybe<Scalars['Boolean']['input']>;\n context?: InputMaybe<SupportContextInput>;\n maxChats?: InputMaybe<Scalars['Int']['input']>;\n maxTickets?: InputMaybe<Scalars['Int']['input']>;\n skills?: InputMaybe<Array<Scalars['String']['input']>>;\n teams?: InputMaybe<Array<Scalars['String']['input']>>;\n timezone?: InputMaybe<Scalars['String']['input']>;\n workingHours?: InputMaybe<Scalars['JSON']['input']>;\n};\n\nexport type UpdateAgentStatusInput = {\n status: AgentStatus;\n statusMessage?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateAppCollectionInput = {\n bannerUrl?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n displayOrder?: InputMaybe<Scalars['Int']['input']>;\n endsAt?: InputMaybe<Scalars['DateTime']['input']>;\n iconUrl?: InputMaybe<Scalars['String']['input']>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n isFeatured?: InputMaybe<Scalars['Boolean']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n startsAt?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\nexport type UpdateAppInput = {\n description?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n redirectUris?: InputMaybe<Array<Scalars['String']['input']>>;\n scopes?: InputMaybe<Array<Scalars['String']['input']>>;\n status?: InputMaybe<AppOwnerStatus>;\n};\n\nexport type UpdateAppInstallationInput = {\n autoUpdate?: InputMaybe<Scalars['Boolean']['input']>;\n config?: InputMaybe<Scalars['JSON']['input']>;\n consentedPermissions?: InputMaybe<Array<Scalars['String']['input']>>;\n currentVersion?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateAppReviewInput = {\n body?: InputMaybe<Scalars['String']['input']>;\n rating?: InputMaybe<Scalars['Int']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateApplicationInput = {\n /** Opaque reference to auth-svc App ID (links this application to an OAuth app) */\n appId?: InputMaybe<Scalars['ID']['input']>;\n appType?: InputMaybe<AppType>;\n bannerUrl?: InputMaybe<Scalars['String']['input']>;\n category?: InputMaybe<Scalars['String']['input']>;\n /** Which products this item is compatible with (e.g. \"fluidgrids\", \"workspaces\"). Stored in manifest.compatibility.products and extracted to the store on publish. */\n compatibleProducts?: InputMaybe<Array<Scalars['String']['input']>>;\n config?: InputMaybe<Scalars['JSON']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n developerOrganizationId?: InputMaybe<Scalars['ID']['input']>;\n documentationUrl?: InputMaybe<Scalars['String']['input']>;\n githubUrl?: InputMaybe<Scalars['String']['input']>;\n iconUrl?: InputMaybe<Scalars['String']['input']>;\n keywords?: InputMaybe<Array<Scalars['String']['input']>>;\n manifest?: InputMaybe<Scalars['JSON']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n oauthAuthUrl?: InputMaybe<Scalars['String']['input']>;\n oauthRevokeUrl?: InputMaybe<Scalars['String']['input']>;\n oauthTokenUrl?: InputMaybe<Scalars['String']['input']>;\n pricingDetails?: InputMaybe<Scalars['JSON']['input']>;\n pricingType?: InputMaybe<Scalars['String']['input']>;\n privacyPolicyUrl?: InputMaybe<Scalars['String']['input']>;\n requiresApproval?: InputMaybe<Scalars['Boolean']['input']>;\n screenshots?: InputMaybe<Scalars['JSON']['input']>;\n shortDescription?: InputMaybe<Scalars['String']['input']>;\n slug?: InputMaybe<Scalars['String']['input']>;\n supportUrl?: InputMaybe<Scalars['String']['input']>;\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n termsOfServiceUrl?: InputMaybe<Scalars['String']['input']>;\n videoUrl?: InputMaybe<Scalars['String']['input']>;\n visibility?: InputMaybe<AppVisibility>;\n websiteUrl?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateApplicationVersionInput = {\n changelog?: InputMaybe<Scalars['String']['input']>;\n /** Immutable once status is pending_review or published. */\n manifest?: InputMaybe<Scalars['JSON']['input']>;\n maxPlatformVersion?: InputMaybe<Scalars['String']['input']>;\n minPlatformVersion?: InputMaybe<Scalars['String']['input']>;\n /** Immutable once status is pending_review or published. */\n packageHash?: InputMaybe<Scalars['String']['input']>;\n /** Immutable once status is pending_review or published. */\n packageSize?: InputMaybe<Scalars['String']['input']>;\n /** Immutable once status is pending_review or published. */\n packageUrl?: InputMaybe<Scalars['String']['input']>;\n releaseNotes?: InputMaybe<Scalars['String']['input']>;\n /** Immutable once status is pending_review or published. */\n requiredScopes?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\nexport type UpdateAutomationInput = {\n context?: InputMaybe<NewsletterContextInput>;\n description?: InputMaybe<Scalars['String']['input']>;\n enabled?: InputMaybe<Scalars['Boolean']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n trigger?: InputMaybe<Scalars['JSON']['input']>;\n};\n\nexport type UpdateAutomationStepInput = {\n config?: InputMaybe<Scalars['JSON']['input']>;\n stepType?: InputMaybe<AutomationStepType>;\n};\n\nexport type UpdateBillingAccountInput = {\n /** Billing-specific email */\n billingEmail?: InputMaybe<Scalars['String']['input']>;\n /** Contact phone number */\n contactNumber?: InputMaybe<Scalars['String']['input']>;\n /** Default currency */\n currency?: InputMaybe<Scalars['String']['input']>;\n /** Contact email */\n email?: InputMaybe<Scalars['String']['input']>;\n /** ID of the billing account to update */\n id: Scalars['ID']['input'];\n /** Whether the billing account is active */\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n /** Additional metadata */\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n /** Name of the billing account */\n name?: InputMaybe<Scalars['String']['input']>;\n /** Tax ID / VAT number */\n taxId?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateCampaignStatsInput = {\n bounceCount?: InputMaybe<Scalars['Int']['input']>;\n clickCount?: InputMaybe<Scalars['Int']['input']>;\n /** Newsletter context for scoping (workspaceId, userId, productId, tenantId, etc.) */\n context?: InputMaybe<NewsletterContextInput>;\n openCount?: InputMaybe<Scalars['Int']['input']>;\n sentCount?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type UpdateCannedResponseInput = {\n category?: InputMaybe<Scalars['String']['input']>;\n content?: InputMaybe<Scalars['String']['input']>;\n context?: InputMaybe<SupportContextInput>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n shortcut?: InputMaybe<Scalars['String']['input']>;\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n title?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Input for updating a cart item */\nexport type UpdateCartItemInput = {\n /** Cart item ID to update */\n cartItemId: Scalars['String']['input'];\n /** New quantity */\n quantity?: InputMaybe<Scalars['Int']['input']>;\n /** New target workspace (for digital products) */\n workspaceId?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateCategoryInput = {\n description?: InputMaybe<Scalars['String']['input']>;\n icon?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n parentId?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Input for updating an existing channel */\nexport type UpdateChannelInput = {\n /** Specific adapter type */\n adapterType?: InputMaybe<AdapterType>;\n /** Operation context for scoping */\n context?: InputMaybe<ContextInput>;\n /** Description */\n description?: InputMaybe<Scalars['String']['input']>;\n /** Channel name */\n name?: InputMaybe<Scalars['String']['input']>;\n /** Platform configuration */\n platformConfig?: InputMaybe<Scalars['JSON']['input']>;\n /** Priority for fallback ordering (lower = higher priority) */\n priority?: InputMaybe<Scalars['Int']['input']>;\n /** Channel status */\n status?: InputMaybe<ChannelStatus>;\n};\n\n/** Input for updating a connection (credentials, metadata, etc.) */\nexport type UpdateConnectionInput = {\n /** Operation context for scoping */\n context?: InputMaybe<ContextInput>;\n /** Platform-specific credentials (API keys, tokens, etc.) Will be encrypted before storage. */\n credentials?: InputMaybe<Scalars['JSON']['input']>;\n /** Connection status */\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n /** Platform-specific metadata (non-sensitive) */\n platformMetadata?: InputMaybe<Scalars['JSON']['input']>;\n};\n\nexport type UpdateContactInquiryStatusInput = {\n /** If converting to ticket, the ticket ID */\n convertedTicketId?: InputMaybe<Scalars['String']['input']>;\n /** New status for the inquiry */\n status: ContactInquiryStatus;\n};\n\nexport type UpdateContentPageInput = {\n author?: InputMaybe<Scalars['String']['input']>;\n category?: InputMaybe<Scalars['String']['input']>;\n content?: InputMaybe<Scalars['String']['input']>;\n contentFormat?: InputMaybe<Scalars['String']['input']>;\n excerpt?: InputMaybe<Scalars['String']['input']>;\n featured?: InputMaybe<Scalars['Boolean']['input']>;\n isPublished?: InputMaybe<Scalars['Boolean']['input']>;\n publishedAt?: InputMaybe<Scalars['DateTime']['input']>;\n readingTime?: InputMaybe<Scalars['Int']['input']>;\n seoDescription?: InputMaybe<Scalars['String']['input']>;\n seoKeywords?: InputMaybe<Scalars['String']['input']>;\n seoTitle?: InputMaybe<Scalars['String']['input']>;\n sortOrder?: InputMaybe<Scalars['Int']['input']>;\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n thumbnail?: InputMaybe<Scalars['String']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n visibility?: InputMaybe<ContentVisibility>;\n};\n\nexport type UpdateCouponInput = {\n description?: InputMaybe<Scalars['String']['input']>;\n maxTotalUses?: InputMaybe<Scalars['Int']['input']>;\n maxUsesPerUser?: InputMaybe<Scalars['Int']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<CouponStatus>;\n validUntil?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\nexport type UpdateDsarStatusInput = {\n notes?: InputMaybe<Scalars['String']['input']>;\n rejectionReason?: InputMaybe<Scalars['String']['input']>;\n status: DsarStatus;\n};\n\n/** Input for updating dashboard layout preferences. */\nexport type UpdateDashboardPreferencesInput = {\n /** Complete list of widget configurations */\n widgets: Array<DashboardWidgetInput>;\n};\n\nexport type UpdateDelegationInput = {\n expiresAt?: InputMaybe<Scalars['DateTime']['input']>;\n scopes?: InputMaybe<Array<Scalars['String']['input']>>;\n workspaceIds?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\nexport type UpdateDeveloperOrganizationInput = {\n bannerUrl?: InputMaybe<Scalars['String']['input']>;\n contactEmail?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n logoUrl?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n /** 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. */\n pickupPostalCode?: InputMaybe<Scalars['String']['input']>;\n settings?: InputMaybe<Scalars['JSON']['input']>;\n supportEmail?: InputMaybe<Scalars['String']['input']>;\n websiteUrl?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateDeveloperProfileInput = {\n bio?: InputMaybe<Scalars['String']['input']>;\n companyName?: InputMaybe<Scalars['String']['input']>;\n emailNotifications?: InputMaybe<Scalars['Boolean']['input']>;\n githubUsername?: InputMaybe<Scalars['String']['input']>;\n linkedinUrl?: InputMaybe<Scalars['String']['input']>;\n marketingEmails?: InputMaybe<Scalars['Boolean']['input']>;\n twitterUsername?: InputMaybe<Scalars['String']['input']>;\n website?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Input for updating a subscription entitlement */\nexport type UpdateEntitlementInput = {\n /** The type of access (FREE_ACCESS or DISCOUNT) */\n accessType?: InputMaybe<EntitlementAccessType>;\n /** Discount percentage (0-100) */\n discountPercentage?: InputMaybe<Scalars['Float']['input']>;\n /** The entitlement ID to update */\n id: Scalars['ID']['input'];\n};\n\nexport type UpdateFaqInput = {\n answer?: InputMaybe<Scalars['String']['input']>;\n category?: InputMaybe<FaqCategory>;\n context?: InputMaybe<SupportContextInput>;\n displayOrder?: InputMaybe<Scalars['Int']['input']>;\n isPublished?: InputMaybe<Scalars['Boolean']['input']>;\n question?: InputMaybe<Scalars['String']['input']>;\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\nexport type UpdateFeatureFlagInput = {\n category?: InputMaybe<Scalars['String']['input']>;\n defaultValue?: InputMaybe<Scalars['JSON']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n flagType?: InputMaybe<FeatureFlagType>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n previewable?: InputMaybe<Scalars['Boolean']['input']>;\n productId?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<FeatureFlagStatus>;\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\nexport type UpdateI18nModuleInput = {\n description?: InputMaybe<Scalars['String']['input']>;\n displayName?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n status?: InputMaybe<I18nModuleStatus>;\n};\n\nexport type UpdateI18nNamespaceInput = {\n description?: InputMaybe<Scalars['String']['input']>;\n displayName?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n status?: InputMaybe<I18nNamespaceStatus>;\n};\n\nexport type UpdateI18nProductInput = {\n description?: InputMaybe<Scalars['String']['input']>;\n displayName?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n status?: InputMaybe<I18nProductStatus>;\n};\n\nexport type UpdateInterviewFeedbackInput = {\n internalNotes?: InputMaybe<Scalars['String']['input']>;\n rating?: InputMaybe<Scalars['Int']['input']>;\n verdict?: InputMaybe<InterviewVerdict>;\n};\n\nexport type UpdateInterviewRoundConfigInput = {\n context?: InputMaybe<Scalars['JSON']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n isAssignmentRound?: InputMaybe<Scalars['Boolean']['input']>;\n isRequired?: InputMaybe<Scalars['Boolean']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n roundType?: InputMaybe<InterviewRoundType>;\n};\n\nexport type UpdateInterviewRoundInput = {\n assignmentId?: InputMaybe<Scalars['ID']['input']>;\n candidateMessage?: InputMaybe<Scalars['String']['input']>;\n context?: InputMaybe<Scalars['JSON']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n notes?: InputMaybe<Scalars['String']['input']>;\n roundType?: InputMaybe<InterviewRoundType>;\n scheduledAt?: InputMaybe<Scalars['DateTime']['input']>;\n status?: InputMaybe<InterviewRoundStatus>;\n};\n\nexport type UpdateInterviewerInput = {\n context?: InputMaybe<Scalars['JSON']['input']>;\n department?: InputMaybe<Scalars['String']['input']>;\n email?: InputMaybe<Scalars['String']['input']>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n notes?: InputMaybe<Scalars['String']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n userId?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateJobApplicationStatusInput = {\n status: JobApplicationStatus;\n};\n\nexport type UpdateJobAssignmentInput = {\n context?: InputMaybe<Scalars['JSON']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n difficulty?: InputMaybe<Scalars['String']['input']>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n /** Optional attribution — who authored/owns this assignment. Pass empty string to clear. */\n ownerEmail?: InputMaybe<Scalars['String']['input']>;\n problemStatement?: InputMaybe<Scalars['String']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateJobPostingInput = {\n context?: InputMaybe<Scalars['JSON']['input']>;\n department?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n employmentType?: InputMaybe<EmploymentType>;\n learnings?: InputMaybe<Array<Scalars['String']['input']>>;\n location?: InputMaybe<Scalars['String']['input']>;\n openings?: InputMaybe<Scalars['Int']['input']>;\n overview?: InputMaybe<Scalars['String']['input']>;\n productId?: InputMaybe<Scalars['String']['input']>;\n qualifications?: InputMaybe<Array<Scalars['String']['input']>>;\n responsibilities?: InputMaybe<Array<Scalars['String']['input']>>;\n slug?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<JobPostingStatus>;\n title?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateKeyboardShortcutInput = {\n /** Category for grouping */\n category?: InputMaybe<Scalars['String']['input']>;\n /** Extended description */\n description?: InputMaybe<Scalars['String']['input']>;\n /** Event name to emit */\n eventName?: InputMaybe<Scalars['String']['input']>;\n /** Whether shortcut is enabled */\n isEnabled?: InputMaybe<Scalars['Boolean']['input']>;\n /** Whether this is a key sequence */\n isSequence?: InputMaybe<Scalars['Boolean']['input']>;\n /** Display label */\n label?: InputMaybe<Scalars['String']['input']>;\n /** Mac-specific key override */\n macKey?: InputMaybe<Scalars['String']['input']>;\n /** Key combination */\n shortcutKey?: InputMaybe<Scalars['String']['input']>;\n /** Display order */\n sortOrder?: InputMaybe<Scalars['Int']['input']>;\n /** Windows/Linux-specific key override */\n windowsKey?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateKnowledgeBaseArticleInput = {\n categoryId?: InputMaybe<Scalars['String']['input']>;\n content?: InputMaybe<Scalars['String']['input']>;\n context?: InputMaybe<SupportContextInput>;\n excerpt?: InputMaybe<Scalars['String']['input']>;\n metaDescription?: InputMaybe<Scalars['String']['input']>;\n slug?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<ArticleStatus>;\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n title?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateLanguageInput = {\n dateFormat?: InputMaybe<Scalars['String']['input']>;\n direction?: InputMaybe<LanguageDirection>;\n fallbackCode?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n nativeName?: InputMaybe<Scalars['String']['input']>;\n pluralRules?: InputMaybe<Scalars['JSON']['input']>;\n region?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<LanguageStatus>;\n timeFormat?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateNewsletterInput = {\n content?: InputMaybe<Scalars['String']['input']>;\n /** Newsletter context for scoping (workspaceId, userId, productId, tenantId, etc.) */\n context?: InputMaybe<NewsletterContextInput>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n plans?: InputMaybe<Scalars['JSON']['input']>;\n previewText?: InputMaybe<Scalars['String']['input']>;\n products?: InputMaybe<Scalars['JSON']['input']>;\n recipientType?: InputMaybe<NewsletterRecipientType>;\n scheduledFor?: InputMaybe<Scalars['DateTime']['input']>;\n segmentConfig?: InputMaybe<Scalars['JSON']['input']>;\n subject?: InputMaybe<Scalars['String']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateNewsletterListInput = {\n context?: InputMaybe<NewsletterContextInput>;\n description?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateNewsletterTemplateInput = {\n category?: InputMaybe<Scalars['String']['input']>;\n context?: InputMaybe<NewsletterContextInput>;\n description?: InputMaybe<Scalars['String']['input']>;\n html?: InputMaybe<Scalars['String']['input']>;\n isPublic?: InputMaybe<Scalars['Boolean']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n thumbnail?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateNotificationHistoryInput = {\n channelServiceEventId?: InputMaybe<Scalars['String']['input']>;\n deliveryStatus?: InputMaybe<NotificationDeliveryStatus>;\n details?: InputMaybe<Scalars['JSON']['input']>;\n eventType?: InputMaybe<NotificationEventType>;\n externalId?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n timestamp?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\nexport type UpdateNotificationInput = {\n actions?: InputMaybe<Array<NotificationActionInput>>;\n appName?: InputMaybe<Scalars['String']['input']>;\n body?: InputMaybe<Scalars['String']['input']>;\n data?: InputMaybe<Scalars['JSON']['input']>;\n expiresAt?: InputMaybe<Scalars['DateTime']['input']>;\n htmlBody?: InputMaybe<Scalars['String']['input']>;\n media?: InputMaybe<Array<NotificationMediaInput>>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n priority?: InputMaybe<NotificationPriority>;\n recipient?: InputMaybe<RecipientInput>;\n redirectUrl?: InputMaybe<Scalars['String']['input']>;\n subject?: InputMaybe<Scalars['String']['input']>;\n topicId?: InputMaybe<Scalars['ID']['input']>;\n trackClicks?: InputMaybe<Scalars['Boolean']['input']>;\n trackOpens?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type UpdateNotificationPreferenceInput = {\n channel?: InputMaybe<NotificationChannel>;\n enabled?: InputMaybe<Scalars['Boolean']['input']>;\n frequency?: InputMaybe<NotificationPreferenceFrequency>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n quietHoursEnd?: InputMaybe<Scalars['String']['input']>;\n quietHoursStart?: InputMaybe<Scalars['String']['input']>;\n scope?: InputMaybe<NotificationPreferenceScope>;\n timezone?: InputMaybe<Scalars['String']['input']>;\n topicId?: InputMaybe<Scalars['ID']['input']>;\n type?: InputMaybe<NotificationType>;\n};\n\nexport type UpdateNotificationTopicInput = {\n description?: InputMaybe<Scalars['String']['input']>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n slug?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<NotificationType>;\n};\n\nexport type UpdateOrgLegalInfoInput = {\n legalAddress?: InputMaybe<Scalars['JSON']['input']>;\n legalEntityName?: InputMaybe<Scalars['String']['input']>;\n legalEntityType?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateOrgTaxInfoInput = {\n taxCountry?: InputMaybe<Scalars['String']['input']>;\n taxFormType?: InputMaybe<Scalars['String']['input']>;\n taxId?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Input for updating an existing organization */\nexport type UpdateOrganizationInput = {\n description?: InputMaybe<Scalars['String']['input']>;\n logo?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n settings?: InputMaybe<Scalars['JSON']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n website?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Input for updating an organization member's role */\nexport type UpdateOrganizationMemberInput = {\n role: UserRole;\n};\n\nexport type UpdatePaymentMethodInput = {\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n isDefault?: InputMaybe<Scalars['Boolean']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdatePayoutAccountInput = {\n accountHolderName?: InputMaybe<Scalars['String']['input']>;\n accountNumber?: InputMaybe<Scalars['String']['input']>;\n bankName?: InputMaybe<Scalars['String']['input']>;\n country?: InputMaybe<Scalars['String']['input']>;\n currency?: InputMaybe<Scalars['String']['input']>;\n iban?: InputMaybe<Scalars['String']['input']>;\n ifsc?: InputMaybe<Scalars['String']['input']>;\n label?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n providerPreference?: InputMaybe<PayoutProvider>;\n routingNumber?: InputMaybe<Scalars['String']['input']>;\n swift?: InputMaybe<Scalars['String']['input']>;\n upiId?: InputMaybe<Scalars['String']['input']>;\n walletHandle?: InputMaybe<Scalars['String']['input']>;\n walletProvider?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdatePhysicalProductInput = {\n allowBackorder?: InputMaybe<Scalars['Boolean']['input']>;\n brand?: InputMaybe<Scalars['String']['input']>;\n category?: InputMaybe<Scalars['String']['input']>;\n countryOfOrigin?: InputMaybe<Scalars['String']['input']>;\n currency?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n dimensionUnit?: InputMaybe<DimensionUnit>;\n height?: InputMaybe<Scalars['Float']['input']>;\n icon?: InputMaybe<Scalars['String']['input']>;\n length?: InputMaybe<Scalars['Float']['input']>;\n longDescription?: InputMaybe<Scalars['String']['input']>;\n lowStockThreshold?: InputMaybe<Scalars['Int']['input']>;\n manufacturer?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n price?: InputMaybe<Scalars['Float']['input']>;\n requiresShipping?: InputMaybe<Scalars['Boolean']['input']>;\n returnPolicy?: InputMaybe<Scalars['String']['input']>;\n screenshots?: InputMaybe<Array<Scalars['String']['input']>>;\n sku?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<ProductStatus>;\n stockQuantity?: InputMaybe<Scalars['Int']['input']>;\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n trackInventory?: InputMaybe<Scalars['Boolean']['input']>;\n warrantyInfo?: InputMaybe<Scalars['String']['input']>;\n weight?: InputMaybe<Scalars['Float']['input']>;\n weightUnit?: InputMaybe<WeightUnit>;\n width?: InputMaybe<Scalars['Float']['input']>;\n};\n\nexport type UpdatePlatformProductInput = {\n /** Number of active users */\n activeUsers?: InputMaybe<Scalars['Int']['input']>;\n /** Total API calls */\n apiCalls?: InputMaybe<Scalars['Int']['input']>;\n appStoreUrl?: InputMaybe<Scalars['String']['input']>;\n /** Application URL */\n appUrl?: InputMaybe<Scalars['String']['input']>;\n contactAddress?: InputMaybe<Scalars['String']['input']>;\n contactEmail?: InputMaybe<Scalars['String']['input']>;\n contactPhone?: InputMaybe<Scalars['String']['input']>;\n /** Product description */\n description?: InputMaybe<Scalars['String']['input']>;\n /** Documentation URL */\n docsUrl?: InputMaybe<Scalars['String']['input']>;\n /** GitHub repository URL */\n githubUrl?: InputMaybe<Scalars['String']['input']>;\n /** Optional product launch/release date */\n launchDate?: InputMaybe<Scalars['DateTime']['input']>;\n /** Logo URL */\n logoUrl?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n /** Product name */\n name?: InputMaybe<Scalars['String']['input']>;\n notificationEmail?: InputMaybe<Scalars['String']['input']>;\n ogImage?: InputMaybe<Scalars['String']['input']>;\n playStoreUrl?: InputMaybe<Scalars['String']['input']>;\n recaptchaSecretKey?: InputMaybe<Scalars['String']['input']>;\n recaptchaSiteKey?: InputMaybe<Scalars['String']['input']>;\n resourceLinks?: InputMaybe<Scalars['JSON']['input']>;\n rybbitSiteId?: InputMaybe<Scalars['String']['input']>;\n seoDescription?: InputMaybe<Scalars['String']['input']>;\n seoKeywords?: InputMaybe<Scalars['String']['input']>;\n seoTitle?: InputMaybe<Scalars['String']['input']>;\n socialLinks?: InputMaybe<Scalars['JSON']['input']>;\n /** Product status */\n status?: InputMaybe<PlatformProductStatus>;\n /** Status page URL */\n statusPageUrl?: InputMaybe<Scalars['String']['input']>;\n /** Storage in GB */\n storageGB?: InputMaybe<Scalars['Float']['input']>;\n supportEmail?: InputMaybe<Scalars['String']['input']>;\n /** Tags to set (replaces all existing tags) */\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n /** Number of tenants */\n tenantCount?: InputMaybe<Scalars['Int']['input']>;\n /** Uptime percentage */\n uptime?: InputMaybe<Scalars['Float']['input']>;\n /** Website URL */\n website?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdatePolicyReferenceInput = {\n action?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n opaPackage?: InputMaybe<Scalars['String']['input']>;\n priority?: InputMaybe<Scalars['Int']['input']>;\n resourceType?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdatePressKitAssetInput = {\n category?: InputMaybe<PressKitAssetCategory>;\n description?: InputMaybe<Scalars['String']['input']>;\n fileName?: InputMaybe<Scalars['String']['input']>;\n fileSize?: InputMaybe<Scalars['Int']['input']>;\n fileUrl?: InputMaybe<Scalars['String']['input']>;\n mimeType?: InputMaybe<Scalars['String']['input']>;\n sortOrder?: InputMaybe<Scalars['Int']['input']>;\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n thumbnailUrl?: InputMaybe<Scalars['String']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n version?: InputMaybe<Scalars['String']['input']>;\n visibility?: InputMaybe<ContentVisibility>;\n};\n\nexport type UpdateProductInput = {\n bannerUrl?: InputMaybe<Scalars['String']['input']>;\n category?: InputMaybe<Scalars['String']['input']>;\n /** Which products this item is compatible with (e.g. \"fluidgrids\", \"workspaces\"). When provided without a manifest, updates the field directly. */\n compatibleProducts?: InputMaybe<Array<Scalars['String']['input']>>;\n content?: InputMaybe<Scalars['JSON']['input']>;\n currency?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n documentationUrl?: InputMaybe<Scalars['String']['input']>;\n icon?: InputMaybe<Scalars['String']['input']>;\n id: Scalars['ID']['input'];\n longDescription?: InputMaybe<Scalars['String']['input']>;\n manifest?: InputMaybe<Scalars['JSON']['input']>;\n manifestVersion?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n price?: InputMaybe<Scalars['Float']['input']>;\n pricingModel?: InputMaybe<PricingModel>;\n productId?: InputMaybe<Scalars['String']['input']>;\n repositoryUrl?: InputMaybe<Scalars['String']['input']>;\n screenshots?: InputMaybe<Array<Scalars['String']['input']>>;\n slug?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<ProductStatus>;\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n videoUrls?: InputMaybe<Array<Scalars['String']['input']>>;\n zipFileUrl?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateProductVariantInput = {\n compareAtPrice?: InputMaybe<Scalars['Float']['input']>;\n displayOrder?: InputMaybe<Scalars['Int']['input']>;\n imageUrls?: InputMaybe<Array<Scalars['String']['input']>>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n lowStockThreshold?: InputMaybe<Scalars['Int']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n options?: InputMaybe<Scalars['JSON']['input']>;\n price?: InputMaybe<Scalars['Float']['input']>;\n sku?: InputMaybe<Scalars['String']['input']>;\n stockQuantity?: InputMaybe<Scalars['Int']['input']>;\n weight?: InputMaybe<Scalars['Float']['input']>;\n weightUnit?: InputMaybe<WeightUnit>;\n};\n\nexport type UpdatePromotionInput = {\n description?: InputMaybe<Scalars['String']['input']>;\n expiresAt?: InputMaybe<Scalars['DateTime']['input']>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n maxRedemptions?: InputMaybe<Scalars['Int']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdatePublisherInput = {\n bio?: InputMaybe<Scalars['String']['input']>;\n logoUrl?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n organizationId?: InputMaybe<Scalars['ID']['input']>;\n websiteUrl?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Input for updating RBAC configuration */\nexport type UpdateRbacConfigInput = {\n description?: InputMaybe<Scalars['String']['input']>;\n key: Scalars['String']['input'];\n scopeId: Scalars['String']['input'];\n value: Scalars['String']['input'];\n valueType?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateRecurringBillingInput = {\n description?: InputMaybe<Scalars['String']['input']>;\n id: Scalars['ID']['input'];\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Input for updating a registered resource */\nexport type UpdateResourceInput = {\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n ownerId?: InputMaybe<Scalars['String']['input']>;\n ownerType?: InputMaybe<ActorType>;\n parentResourceId?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateReviewInput = {\n comment?: InputMaybe<Scalars['String']['input']>;\n rating?: InputMaybe<Scalars['Int']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Input for updating a role */\nexport type UpdateRoleInput = {\n description?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n parentId?: InputMaybe<Scalars['ID']['input']>;\n priority?: InputMaybe<Scalars['Int']['input']>;\n /** Product this role belongs to (PlatformProduct.slug). Set to null only from admin-app flows that intentionally manage cross-product platform roles. */\n productSlug?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateSlaPolicyInput = {\n businessHours?: InputMaybe<Scalars['JSON']['input']>;\n categoryId?: InputMaybe<Scalars['String']['input']>;\n context?: InputMaybe<SupportContextInput>;\n description?: InputMaybe<Scalars['String']['input']>;\n escalationRules?: InputMaybe<Scalars['JSON']['input']>;\n firstResponseMinutes?: InputMaybe<Scalars['Int']['input']>;\n holidays?: InputMaybe<Scalars['JSON']['input']>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n isDefault?: InputMaybe<Scalars['Boolean']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n priority?: InputMaybe<SupportTicketPriority>;\n resolutionMinutes?: InputMaybe<Scalars['Int']['input']>;\n timezone?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateScheduleTemplateInput = {\n businessCalendarId?: InputMaybe<Scalars['String']['input']>;\n category?: InputMaybe<Scalars['String']['input']>;\n circuitBreaker?: InputMaybe<Scalars['JSON']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n executorConfig?: InputMaybe<Scalars['JSON']['input']>;\n failurePolicy?: InputMaybe<Scalars['JSON']['input']>;\n isPublic?: InputMaybe<Scalars['Boolean']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n payloadTemplate?: InputMaybe<Scalars['JSON']['input']>;\n retryPolicy?: InputMaybe<Scalars['JSON']['input']>;\n scheduleConfig?: InputMaybe<Scalars['JSON']['input']>;\n};\n\nexport type UpdateScheduledJobInput = {\n actionId?: InputMaybe<Scalars['String']['input']>;\n autoDisableAfter?: InputMaybe<Scalars['Int']['input']>;\n businessCalendarId?: InputMaybe<Scalars['String']['input']>;\n changeReason?: InputMaybe<Scalars['String']['input']>;\n circuitBreaker?: InputMaybe<Scalars['JSON']['input']>;\n cronExpression?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n executorConfig?: InputMaybe<Scalars['JSON']['input']>;\n executorType?: InputMaybe<ExecutorType>;\n failurePolicy?: InputMaybe<Scalars['JSON']['input']>;\n interval?: InputMaybe<Scalars['Int']['input']>;\n intervalUnit?: InputMaybe<Scalars['String']['input']>;\n maxOccurrences?: InputMaybe<Scalars['Int']['input']>;\n maxRetries?: InputMaybe<Scalars['Int']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n misfirePolicy?: InputMaybe<MisfirePolicy>;\n misfireThreshold?: InputMaybe<Scalars['Int']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n payloadTemplate?: InputMaybe<Scalars['JSON']['input']>;\n priority?: InputMaybe<SchedulePriority>;\n retryDelay?: InputMaybe<Scalars['Int']['input']>;\n retryPolicy?: InputMaybe<Scalars['JSON']['input']>;\n rrule?: InputMaybe<Scalars['String']['input']>;\n scheduledAt?: InputMaybe<Scalars['DateTime']['input']>;\n secrets?: InputMaybe<Scalars['JSON']['input']>;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n status?: InputMaybe<JobStatus>;\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n timeWindows?: InputMaybe<Scalars['JSON']['input']>;\n timezone?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateShippingAddressInput = {\n addressLine1?: InputMaybe<Scalars['String']['input']>;\n addressLine2?: InputMaybe<Scalars['String']['input']>;\n city?: InputMaybe<Scalars['String']['input']>;\n country?: InputMaybe<Scalars['String']['input']>;\n email?: InputMaybe<Scalars['String']['input']>;\n fullName?: InputMaybe<Scalars['String']['input']>;\n instructions?: InputMaybe<Scalars['String']['input']>;\n isDefault?: InputMaybe<Scalars['Boolean']['input']>;\n label?: InputMaybe<Scalars['String']['input']>;\n phone?: InputMaybe<Scalars['String']['input']>;\n postalCode?: InputMaybe<Scalars['String']['input']>;\n state?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateShippingMethodInput = {\n availableCountries?: InputMaybe<Array<Scalars['String']['input']>>;\n baseCost?: InputMaybe<Scalars['Float']['input']>;\n carrier?: InputMaybe<Scalars['String']['input']>;\n carrierServiceId?: InputMaybe<Scalars['String']['input']>;\n costPerItem?: InputMaybe<Scalars['Float']['input']>;\n costPerKg?: InputMaybe<Scalars['Float']['input']>;\n currency?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n displayOrder?: InputMaybe<Scalars['Int']['input']>;\n estimatedMaxDays?: InputMaybe<Scalars['Int']['input']>;\n estimatedMinDays?: InputMaybe<Scalars['Int']['input']>;\n excludedCountries?: InputMaybe<Array<Scalars['String']['input']>>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n maxDimensions?: InputMaybe<Scalars['JSON']['input']>;\n maxWeight?: InputMaybe<Scalars['Float']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateStoreInput = {\n allowUnverifiedPublishers?: InputMaybe<Scalars['Boolean']['input']>;\n currency?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n isPublic?: InputMaybe<Scalars['Boolean']['input']>;\n logoUrl?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n requiresApproval?: InputMaybe<Scalars['Boolean']['input']>;\n websiteUrl?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Response for updateStoreOrderPaymentStatus callback */\nexport type UpdateStoreOrderPaymentStatusResponse = {\n __typename?: 'UpdateStoreOrderPaymentStatusResponse';\n /** Message describing the result */\n message: Scalars['String']['output'];\n /** Whether the update was successful */\n success: Scalars['Boolean']['output'];\n};\n\nexport type UpdateSubscriberInput = {\n /** Optional operation context overrides for admin-managed subscriber updates */\n context?: InputMaybe<NewsletterContextInput>;\n email?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n userId?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateSubscriptionEntitlementInput = {\n accessType?: InputMaybe<EntitlementAccessType>;\n discountPercentage?: InputMaybe<Scalars['Float']['input']>;\n};\n\nexport type UpdateSubscriptionInput = {\n planId?: InputMaybe<Scalars['ID']['input']>;\n planName?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateSubscriptionSeatsInput = {\n /** Billing account that owns this subscription. */\n billingAccountId: Scalars['ID']['input'];\n /** 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). */\n seatCount: Scalars['Int']['input'];\n subscriptionId: Scalars['ID']['input'];\n};\n\nexport type UpdateSupportTicketInput = {\n assignedTo?: InputMaybe<Scalars['String']['input']>;\n category?: InputMaybe<SupportTicketCategory>;\n categoryId?: InputMaybe<Scalars['String']['input']>;\n /** Operation context for scoping (workspaceId, userId, projectId, etc.) */\n context?: InputMaybe<SupportContextInput>;\n customFields?: InputMaybe<Scalars['JSON']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n priority?: InputMaybe<SupportTicketPriority>;\n subject?: InputMaybe<Scalars['String']['input']>;\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\nexport type UpdateTemplateInput = {\n bodyTemplate?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n enabled?: InputMaybe<Scalars['Boolean']['input']>;\n htmlTemplate?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n subject?: InputMaybe<Scalars['String']['input']>;\n variables?: InputMaybe<Scalars['JSON']['input']>;\n};\n\n/** Input for updating an existing tenant */\nexport type UpdateTenantInput = {\n config?: InputMaybe<Scalars['JSON']['input']>;\n customDomain?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateTicketCategoryInput = {\n color?: InputMaybe<Scalars['String']['input']>;\n context?: InputMaybe<SupportContextInput>;\n description?: InputMaybe<Scalars['String']['input']>;\n displayOrder?: InputMaybe<Scalars['Int']['input']>;\n icon?: InputMaybe<Scalars['String']['input']>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n parentId?: InputMaybe<Scalars['String']['input']>;\n slaOverride?: InputMaybe<Scalars['JSON']['input']>;\n slug?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateTicketTemplateInput = {\n body?: InputMaybe<Scalars['String']['input']>;\n category?: InputMaybe<SupportTicketCategory>;\n context?: InputMaybe<SupportContextInput>;\n description?: InputMaybe<Scalars['String']['input']>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n priority?: InputMaybe<SupportTicketPriority>;\n subject?: InputMaybe<Scalars['String']['input']>;\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\nexport type UpdateTourInput = {\n /** Operation context for scoping (workspaceId, userId, productId, moduleId, etc.) */\n context?: InputMaybe<ContextInput>;\n description?: InputMaybe<Scalars['String']['input']>;\n desktopConfig?: InputMaybe<Scalars['JSON']['input']>;\n displayOrder?: InputMaybe<Scalars['Int']['input']>;\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n mobileConfig?: InputMaybe<Scalars['JSON']['input']>;\n moduleId?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n pageId?: InputMaybe<Scalars['String']['input']>;\n priority?: InputMaybe<Scalars['Int']['input']>;\n productId?: InputMaybe<Scalars['String']['input']>;\n slug?: InputMaybe<Scalars['String']['input']>;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n status?: InputMaybe<TourStatus>;\n tabletConfig?: InputMaybe<Scalars['JSON']['input']>;\n triggerConfig?: InputMaybe<Scalars['JSON']['input']>;\n triggerType?: InputMaybe<TourTriggerType>;\n};\n\nexport type UpdateTourMediaInput = {\n altText?: InputMaybe<Scalars['String']['input']>;\n caption?: InputMaybe<Scalars['String']['input']>;\n cdnUrl?: InputMaybe<Scalars['String']['input']>;\n /** Operation context for scoping (workspaceId, userId, productId, moduleId, etc.) */\n context?: InputMaybe<ContextInput>;\n description?: InputMaybe<Scalars['String']['input']>;\n isPublic?: InputMaybe<Scalars['Boolean']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n transcript?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<TourMediaType>;\n};\n\nexport type UpdateTourScheduleInput = {\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n recurrenceRule?: InputMaybe<Scalars['String']['input']>;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n timezone?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateTourStepInput = {\n actions?: InputMaybe<Scalars['JSON']['input']>;\n content?: InputMaybe<Scalars['String']['input']>;\n /** Operation context for scoping (workspaceId, userId, productId, moduleId, etc.) */\n context?: InputMaybe<ContextInput>;\n customData?: InputMaybe<Scalars['JSON']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n placement?: InputMaybe<TourStepPlacement>;\n requireInteraction?: InputMaybe<Scalars['Boolean']['input']>;\n skipConditions?: InputMaybe<Scalars['JSON']['input']>;\n stepOrder?: InputMaybe<Scalars['Int']['input']>;\n targetSelector?: InputMaybe<Scalars['String']['input']>;\n targetSelectorDesktop?: InputMaybe<Scalars['String']['input']>;\n targetSelectorMobile?: InputMaybe<Scalars['String']['input']>;\n targetSelectorTablet?: InputMaybe<Scalars['String']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n waitForEvent?: InputMaybe<Scalars['String']['input']>;\n waitForSelector?: InputMaybe<Scalars['String']['input']>;\n waitForTimeout?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type UpdateTourTemplateInput = {\n category?: InputMaybe<Scalars['String']['input']>;\n config?: InputMaybe<Scalars['JSON']['input']>;\n /** Operation context for scoping (workspaceId, userId, productId, moduleId, etc.) */\n context?: InputMaybe<ContextInput>;\n description?: InputMaybe<Scalars['String']['input']>;\n isPremium?: InputMaybe<Scalars['Boolean']['input']>;\n isPublic?: InputMaybe<Scalars['Boolean']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n slug?: InputMaybe<Scalars['String']['input']>;\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n thumbnail?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateTranslationInput = {\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n notes?: InputMaybe<Scalars['String']['input']>;\n pluralForms?: InputMaybe<Scalars['JSON']['input']>;\n status?: InputMaybe<TranslationStatus>;\n value?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateTranslationKeyInput = {\n characterLimit?: InputMaybe<Scalars['Int']['input']>;\n context?: InputMaybe<Scalars['String']['input']>;\n defaultValue?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n isPlural?: InputMaybe<Scalars['Boolean']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n placeholders?: InputMaybe<Scalars['JSON']['input']>;\n status?: InputMaybe<TranslationKeyStatus>;\n tags?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\n/** Input for updating user profile information */\nexport type UpdateUserInput = {\n avatar?: InputMaybe<Scalars['String']['input']>;\n firstName?: InputMaybe<Scalars['String']['input']>;\n language?: InputMaybe<Scalars['String']['input']>;\n lastName?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n phoneNumber?: InputMaybe<Scalars['String']['input']>;\n timezone?: InputMaybe<Scalars['String']['input']>;\n username?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateVariantInput = {\n content?: InputMaybe<Scalars['String']['input']>;\n percentage?: InputMaybe<Scalars['Int']['input']>;\n subject?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateVariantStatsInput = {\n clickCount?: InputMaybe<Scalars['Int']['input']>;\n openCount?: InputMaybe<Scalars['Int']['input']>;\n sentCount?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type UpdateWebhookInput = {\n description?: InputMaybe<Scalars['String']['input']>;\n events?: InputMaybe<Array<Scalars['String']['input']>>;\n filters?: InputMaybe<Scalars['JSON']['input']>;\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n maxRetries?: InputMaybe<Scalars['Int']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n retryEnabled?: InputMaybe<Scalars['Boolean']['input']>;\n url?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Input for updating an existing workspace */\nexport type UpdateWorkspaceInput = {\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Input for updating a workspace member's role */\nexport type UpdateWorkspaceMemberInput = {\n role: UserRole;\n};\n\nexport type UpsertComplianceSettingsInput = {\n allowResubscribe?: InputMaybe<Scalars['Boolean']['input']>;\n analyticsRetention?: InputMaybe<Scalars['Int']['input']>;\n collectReasons?: InputMaybe<Scalars['Boolean']['input']>;\n doubleOptIn?: InputMaybe<Scalars['Boolean']['input']>;\n inactiveCleanup?: InputMaybe<Scalars['Int']['input']>;\n physicalAddress?: InputMaybe<Scalars['String']['input']>;\n privacyPolicyUrl?: InputMaybe<Scalars['String']['input']>;\n unsubscribeUrl?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Input for upserting fulfillment details */\nexport type UpsertOrderFulfillmentInput = {\n carrier?: InputMaybe<Scalars['String']['input']>;\n context?: InputMaybe<Scalars['JSON']['input']>;\n estimatedDeliveryDate?: InputMaybe<Scalars['DateTime']['input']>;\n failureReason?: InputMaybe<Scalars['String']['input']>;\n labelUrl?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n notes?: InputMaybe<Scalars['String']['input']>;\n packageHeight?: InputMaybe<Scalars['Float']['input']>;\n packageLength?: InputMaybe<Scalars['Float']['input']>;\n packageWeight?: InputMaybe<Scalars['Float']['input']>;\n packageWidth?: InputMaybe<Scalars['Float']['input']>;\n returnReason?: InputMaybe<Scalars['String']['input']>;\n signatureRequired?: InputMaybe<Scalars['Boolean']['input']>;\n signatureUrl?: InputMaybe<Scalars['String']['input']>;\n signedBy?: InputMaybe<Scalars['String']['input']>;\n status: FulfillmentStatus;\n trackingNumber?: InputMaybe<Scalars['String']['input']>;\n trackingUrl?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Input for upserting a passively-observed (SEEN) user from a webhook event */\nexport type UpsertSeenUserInput = {\n /** Channel ID this event was received on */\n channelId: Scalars['ID']['input'];\n /** Operation context */\n context?: InputMaybe<ContextInput>;\n /** Platform avatar URL */\n externalAvatarUrl?: InputMaybe<Scalars['String']['input']>;\n /** Platform display name */\n externalDisplayName?: InputMaybe<Scalars['String']['input']>;\n /** Platform email */\n externalEmail?: InputMaybe<Scalars['String']['input']>;\n /** Extra platform metadata */\n externalMetadata?: InputMaybe<Scalars['JSON']['input']>;\n /** Platform-specific user ID */\n externalUserId: Scalars['String']['input'];\n /** Platform username / handle */\n externalUsername?: InputMaybe<Scalars['String']['input']>;\n /** Organization ID */\n organizationId: Scalars['ID']['input'];\n /** Platform the event came from */\n platform: ChannelPlatform;\n};\n\nexport type UpsertSourcingOfferInput = {\n /** Store sourcing settlement currency. Currently USD only. */\n currency: Scalars['String']['input'];\n deliveryDate: Scalars['DateTime']['input'];\n message?: InputMaybe<Scalars['String']['input']>;\n quantity: Scalars['Int']['input'];\n requestId: Scalars['ID']['input'];\n /** Optional published Store product owned by the current publisher. */\n storeProductId?: InputMaybe<Scalars['ID']['input']>;\n unit: SourcingUnit;\n /** Exact decimal string with at most two fractional digits. */\n unitPrice: Scalars['String']['input'];\n};\n\n/** 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). */\nexport type UpsertUserShippingAddressInput = {\n addressLine1: Scalars['String']['input'];\n addressLine2?: InputMaybe<Scalars['String']['input']>;\n city: Scalars['String']['input'];\n country: Scalars['String']['input'];\n email?: InputMaybe<Scalars['String']['input']>;\n fullName: Scalars['String']['input'];\n /** Existing ShippingAddress id to update. Omit to create a new address. When provided, the row must already belong to `userId` (else NOT_FOUND). */\n id?: InputMaybe<Scalars['ID']['input']>;\n instructions?: InputMaybe<Scalars['String']['input']>;\n isDefault?: InputMaybe<Scalars['Boolean']['input']>;\n label?: InputMaybe<Scalars['String']['input']>;\n phone?: InputMaybe<Scalars['String']['input']>;\n postalCode: Scalars['String']['input'];\n state?: InputMaybe<Scalars['String']['input']>;\n /** Opaque id of the user who owns this address. */\n userId: Scalars['String']['input'];\n};\n\nexport type Usage = {\n __typename?: 'Usage';\n /** The amount of the resource that has been consumed. */\n amount?: Maybe<Scalars['Float']['output']>;\n /** Additional context */\n context?: Maybe<Scalars['JSON']['output']>;\n /** The description of the resource that has been consumed. */\n description?: Maybe<Scalars['String']['output']>;\n /** The unique identifier for the Usage, automatically generated as a UUID. */\n id?: Maybe<Scalars['ID']['output']>;\n /** The timestamp when the usage was last updated. */\n lastUpdated?: Maybe<Scalars['DateTime']['output']>;\n /** The unique identifier for the product associated with this usage. */\n productId?: Maybe<Scalars['String']['output']>;\n /** The quota assignment being tracked by this usage record. */\n quotaAssignment?: Maybe<QuotaAssignment>;\n /** The unique identifier for the associated quota assignment. */\n quotaAssignmentId?: Maybe<Scalars['ID']['output']>;\n /** tags to filter the usage ! */\n tags?: Maybe<Scalars['JSON']['output']>;\n /** The timestamp for when this usage record was created. */\n timestamp?: Maybe<Scalars['DateTime']['output']>;\n /** The user who created this usage record. */\n user?: Maybe<User>;\n /** The unique identifier for the user who created this usage record. */\n userId?: Maybe<Scalars['ID']['output']>;\n};\n\nexport type UsageActivity = {\n __typename?: 'UsageActivity';\n amount: Scalars['Float']['output'];\n description: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n quotaName: Scalars['String']['output'];\n tags?: Maybe<Scalars['JSON']['output']>;\n timestamp: Scalars['DateTime']['output'];\n};\n\nexport type UsageByType = {\n __typename?: 'UsageByType';\n count: Scalars['Int']['output'];\n percentage: Scalars['Float']['output'];\n resourceType: Scalars['String']['output'];\n usage: Scalars['Float']['output'];\n};\n\nexport type UsageDashboard = {\n __typename?: 'UsageDashboard';\n activeQuotas: Scalars['Int']['output'];\n criticalQuotas: Scalars['Int']['output'];\n exhaustedQuotas: Scalars['Int']['output'];\n /** Health overview */\n healthyQuotas: Scalars['Int']['output'];\n /** Usage trends */\n overallTrends: UsageTrends;\n /** Recent activities */\n recentActivities: Array<UsageActivity>;\n /** Top usage categories */\n topUsageByQuota: Array<QuotaUsageSummary>;\n totalQuotas: Scalars['Int']['output'];\n /** Overall usage statistics */\n totalUsage: Scalars['Float']['output'];\n warningQuotas: Scalars['Int']['output'];\n};\n\nexport enum UsageMetricType {\n ApiCalls = 'API_CALLS',\n Bandwidth = 'BANDWIDTH',\n ComputeHours = 'COMPUTE_HOURS',\n Custom = 'CUSTOM',\n Requests = 'REQUESTS',\n Storage = 'STORAGE',\n Transactions = 'TRANSACTIONS',\n Users = 'USERS'\n}\n\nexport type UsageRecord = {\n __typename?: 'UsageRecord';\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n metricType: UsageMetricType;\n orgId: Scalars['String']['output'];\n quantity: Scalars['Int']['output'];\n subscriptionId?: Maybe<Scalars['String']['output']>;\n timestamp: Scalars['DateTime']['output'];\n totalCost?: Maybe<Scalars['Float']['output']>;\n unitCost?: Maybe<Scalars['Float']['output']>;\n};\n\nexport type UsageTrends = {\n __typename?: 'UsageTrends';\n /** Average daily usage */\n averageDailyUsage?: Maybe<Scalars['Float']['output']>;\n /** Growth rate percentage over last period */\n growthRate?: Maybe<Scalars['Float']['output']>;\n /** Predicted usage for next period */\n predictedUsage?: Maybe<Scalars['Float']['output']>;\n};\n\n/** 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. */\nexport type User = {\n __typename?: 'User';\n /** Tickets assigned to this user (if support agent) */\n assignedTickets: SupportTicketConnection;\n avatar?: Maybe<Scalars['String']['output']>;\n createdAt: Scalars['DateTime']['output'];\n defaultWorkspaceId?: Maybe<Scalars['String']['output']>;\n email: Scalars['String']['output'];\n emailVerified: Scalars['Boolean']['output'];\n firstName?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n isAdmin: Scalars['Boolean']['output'];\n /** Whether this user is a support agent */\n isSupportAgent: Scalars['Boolean']['output'];\n lastLoginAt?: Maybe<Scalars['DateTime']['output']>;\n lastName?: Maybe<Scalars['String']['output']>;\n mfaEnabled: Scalars['Boolean']['output'];\n name?: Maybe<Scalars['String']['output']>;\n notifications: Array<Notification>;\n phoneNumber?: Maybe<Scalars['String']['output']>;\n role: Scalars['String']['output'];\n status: Scalars['String']['output'];\n tenantId?: Maybe<Scalars['String']['output']>;\n /** Tickets created by this user */\n tickets: SupportTicketConnection;\n updatedAt: Scalars['DateTime']['output'];\n username: Scalars['String']['output'];\n};\n\n\n/** 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. */\nexport type UserAssignedTicketsArgs = {\n filter?: InputMaybe<SupportTicketFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** 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. */\nexport type UserTicketsArgs = {\n filter?: InputMaybe<SupportTicketFilterInput>;\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n/** 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. */\nexport type UserBillingPlan = {\n __typename?: 'UserBillingPlan';\n /** Convenience flag — true when tier is \"paid\". */\n isPaid: Scalars['Boolean']['output'];\n /** Active plan id; null when no active paid subscription. */\n planId?: Maybe<Scalars['ID']['output']>;\n /** Plan name; \"Free\" when no active paid subscription. */\n planName: Scalars['String']['output'];\n /** Per-plan cap overrides JSON map (resource → integer). Null/empty = SDK defaults. */\n resourceCaps?: Maybe<Scalars['JSON']['output']>;\n /** Tier the SDK uses to choose between free and paid defaults: \"free\" | \"paid\". */\n tier: Scalars['String']['output'];\n /** User whose plan this is. */\n userId: Scalars['ID']['output'];\n};\n\n/** Paginated list of users */\nexport type UserConnection = {\n __typename?: 'UserConnection';\n hasMore: Scalars['Boolean']['output'];\n totalCount: Scalars['Int']['output'];\n users: Array<User>;\n};\n\n/** User's opt-in/out preference for a previewable feature flag in a workspace. */\nexport type UserFeatureFlagPreference = {\n __typename?: 'UserFeatureFlagPreference';\n createdAt: Scalars['DateTime']['output'];\n createdBy: Scalars['String']['output'];\n enabled: Scalars['Boolean']['output'];\n featureFlag: FeatureFlag;\n featureFlagId: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n updatedAt: Scalars['DateTime']['output'];\n updatedBy?: Maybe<Scalars['String']['output']>;\n userId: Scalars['String']['output'];\n workspaceId: Scalars['String']['output'];\n};\n\n/** Filter input for listing users */\nexport type UserFilterInput = {\n email?: InputMaybe<Scalars['String']['input']>;\n role?: InputMaybe<UserRole>;\n search?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<UserStatus>;\n username?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UserLanguagePreference = {\n __typename?: 'UserLanguagePreference';\n /** ISO 3166-1 alpha-2 country code (e.g., IN, US, DE) */\n country?: Maybe<Scalars['String']['output']>;\n createdAt: Scalars['DateTime']['output'];\n /** ISO 4217 currency code (e.g., INR, USD, EUR) */\n currency?: Maybe<Scalars['String']['output']>;\n dateFormat?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n language?: Maybe<Language>;\n languageCode: Scalars['String']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n numberFormat?: Maybe<Scalars['String']['output']>;\n tenantId?: Maybe<Scalars['String']['output']>;\n timeFormat?: Maybe<Scalars['String']['output']>;\n timezone?: Maybe<Scalars['String']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n userId: Scalars['String']['output'];\n};\n\n/** 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. */\nexport type UserPlatformConnection = {\n __typename?: 'UserPlatformConnection';\n /** Whether the user has a valid DM conversation target (dmAllowed = true AND dmConversationId is set) */\n canReceiveDm: Scalars['Boolean']['output'];\n /** Associated channel */\n channel: Channel;\n /** Associated channel ID */\n channelId: Scalars['ID']['output'];\n /** When the user explicitly connected (OAuth / pairing approval) */\n connectedAt?: Maybe<Scalars['DateTime']['output']>;\n /** Operation context */\n context?: Maybe<OperationContext>;\n /** Creation timestamp */\n createdAt: Scalars['DateTime']['output'];\n /** Custom status message (if set by user) */\n customStatus?: Maybe<Scalars['String']['output']>;\n /** When this record was soft-deleted (null = active) */\n deletedAt?: Maybe<Scalars['DateTime']['output']>;\n /** Whether DMs to/from this user are allowed. Only true when source = OAUTH or PAIRED; never for SEEN. */\n dmAllowed: Scalars['Boolean']['output'];\n /** Platform-specific DM conversation ID. Slack: D0A1B2C3 | Teams: conversation reference JSON | WhatsApp: JID | Discord: N/A | Google Chat: space name */\n dmConversationId?: Maybe<Scalars['String']['output']>;\n /** Platform avatar URL */\n externalAvatarUrl?: Maybe<Scalars['String']['output']>;\n /** Platform display name */\n externalDisplayName?: Maybe<Scalars['String']['output']>;\n /** Platform email address */\n externalEmail?: Maybe<Scalars['String']['output']>;\n /** Extra platform-specific user data */\n externalMetadata?: Maybe<Scalars['JSON']['output']>;\n /** Platform-specific user ID (Slack: U12345, WhatsApp: +15551234567, etc.) */\n externalUserId: Scalars['String']['output'];\n /** Platform username / handle (@username) */\n externalUsername?: Maybe<Scalars['String']['output']>;\n /** Unique connection ID */\n id: Scalars['ID']['output'];\n /** 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. */\n integrationConnectionId?: Maybe<Scalars['ID']['output']>;\n /** Internal Botlit user ID (opaque reference) */\n internalUserId?: Maybe<Scalars['ID']['output']>;\n /** Whether this connection record is active (not soft-deleted) */\n isActive: Scalars['Boolean']['output'];\n /** Whether the user's OAuth token has expired */\n isTokenExpired: Scalars['Boolean']['output'];\n /** Last time the user was seen active */\n lastActiveAt?: Maybe<Scalars['DateTime']['output']>;\n /** Last time this record was synced from the platform */\n lastSyncedAt: Scalars['DateTime']['output'];\n /** Whether outbound notifications are enabled for this user */\n notificationsEnabled: Scalars['Boolean']['output'];\n /** Organization ID */\n organizationId: Scalars['ID']['output'];\n /** When pairing was approved */\n pairingApprovedAt?: Maybe<Scalars['DateTime']['output']>;\n /** 8-character pairing code (WhatsApp / Discord only). Only present when pairingStatus = PENDING. */\n pairingCode?: Maybe<Scalars['String']['output']>;\n /** When the pairing code expires (1-hour TTL from generation) */\n pairingCodeExpiresAt?: Maybe<Scalars['DateTime']['output']>;\n /** Current pairing status */\n pairingStatus?: Maybe<PairingStatus>;\n /** Platform permissions for this user */\n permissions: Array<Scalars['String']['output']>;\n /** Communication platform */\n platform: ChannelPlatform;\n /** Current presence status on the platform */\n presenceStatus: UserPresenceStatus;\n /** Platform roles assigned to this user */\n roles: Array<Scalars['String']['output']>;\n /** How the connection was established */\n source: UserPlatformSource;\n /** Last update timestamp */\n updatedAt: Scalars['DateTime']['output'];\n /** 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. */\n userTokenExpiresAt?: Maybe<Scalars['DateTime']['output']>;\n /** Scopes granted by the user's personal OAuth token */\n userTokenScope?: Maybe<Scalars['String']['output']>;\n};\n\n/** Filter input for querying user platform connections */\nexport type UserPlatformConnectionFilterInput = {\n /** Filter by operation context */\n context?: InputMaybe<ContextFilterInput>;\n /** Only return connections where dmAllowed = true */\n dmAllowed?: InputMaybe<Scalars['Boolean']['input']>;\n /** Filter by active status */\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n /** Only return connections where notificationsEnabled = true */\n notificationsEnabled?: InputMaybe<Scalars['Boolean']['input']>;\n /** Filter by platform */\n platform?: InputMaybe<ChannelPlatform>;\n /** Filter by presence status */\n presenceStatus?: InputMaybe<UserPresenceStatus>;\n /** Search by display name, username, or email */\n search?: InputMaybe<Scalars['String']['input']>;\n /** Filter by connection source */\n source?: InputMaybe<UserPlatformSource>;\n};\n\n/** Paginated list of user platform connections with cursor support. Pass `nextCursor` from a previous response as `cursor` in the next call. */\nexport type UserPlatformConnectionList = {\n __typename?: 'UserPlatformConnectionList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<UserPlatformConnection>;\n nextCursor?: Maybe<Scalars['String']['output']>;\n total: Scalars['Int']['output'];\n};\n\n/** How a UserPlatformConnection was established. Controls whether dmAllowed can be set to true. */\nexport enum UserPlatformSource {\n /** Bulk-imported user record (e.g. from CSV or directory sync). */\n Import = 'IMPORT',\n /** Admin manually added the user (back-office operation). */\n Manual = 'MANUAL',\n /** Connected via dashboard OAuth flow (Slack, Teams, Google Chat). Grants dmAllowed = true immediately after token exchange. */\n Oauth = 'OAUTH',\n /** Connected via pairing code (WhatsApp, Discord). Grants dmAllowed = true once the user approves the pairing code in the dashboard. */\n Paired = 'PAIRED',\n /** Passively observed from an inbound webhook event. Never grants dmAllowed = true automatically. */\n Seen = 'SEEN'\n}\n\n/** User preference record storing theme, notification settings, dashboard customization, and other user-specific configuration. */\nexport type UserPreference = {\n __typename?: 'UserPreference';\n accessibility?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n notifications?: Maybe<Scalars['JSON']['output']>;\n preferences?: Maybe<Scalars['JSON']['output']>;\n privacy?: Maybe<Scalars['JSON']['output']>;\n theme: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n userId: Scalars['String']['output'];\n};\n\n/** User presence status on the communication platform. Synced from platform webhooks or periodic polling. */\nexport enum UserPresenceStatus {\n /** User is away or idle */\n Away = 'AWAY',\n /** User is in Do Not Disturb mode */\n Dnd = 'DND',\n /** User is offline */\n Offline = 'OFFLINE',\n /** User is currently online and active */\n Online = 'ONLINE'\n}\n\n/** 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. */\nexport type UserPushDeliveryInput = {\n /** Notification content. `title` becomes the push title, `text` the body, and `data` is passed through to the device as the FCM data payload. */\n content: ChannelDeliveryContentInput;\n /** Optional lower cap on how many devices to fan out to. Never raises the service-level cap (PUSH_MAX_DEVICES_PER_TRIGGER). */\n maxDevices?: InputMaybe<Scalars['Int']['input']>;\n /** Optional reference to originating notification in notification-svc */\n notificationId?: InputMaybe<Scalars['ID']['input']>;\n /** Delivery options (priority, TTL, retry policy) */\n options?: InputMaybe<ChannelDeliveryOptionsInput>;\n /** Organization ID for multi-tenancy */\n organizationId: Scalars['ID']['input'];\n /** Product slug whose app shell minted the tokens (e.g. \"vibecontrols\"). Determines which of the user's devices are in scope. */\n productSlug: Scalars['String']['input'];\n /** Subject user. The device registry is queried for exactly this actor. */\n userId: Scalars['ID']['input'];\n};\n\n/** Aggregated result of a user-targeted push fan-out. */\nexport type UserPushDeliveryResult = {\n __typename?: 'UserPushDeliveryResult';\n /** Devices a send was actually attempted for. */\n attemptedDevices: Scalars['Int']['output'];\n /** Devices retired in the registry because the provider reported their token permanently dead. */\n deactivatedCount: Scalars['Int']['output'];\n /** Devices the notification did not reach, for any reason. */\n failedCount: Scalars['Int']['output'];\n /** Per-device outcomes, one entry per device considered. */\n results: Array<PushDeviceDeliveryResult>;\n /** Devices the notification reached. */\n successCount: Scalars['Int']['output'];\n /** Devices the registry returned, including any the service refused to send to. */\n totalDevices: Scalars['Int']['output'];\n};\n\n/** User role for access control across the platform */\nexport enum UserRole {\n Guest = 'GUEST',\n Member = 'MEMBER',\n OrgAdmin = 'ORG_ADMIN',\n SuperAdmin = 'SUPER_ADMIN',\n TenantAdmin = 'TENANT_ADMIN',\n WorkspaceAdmin = 'WORKSPACE_ADMIN'\n}\n\nexport enum UserStatus {\n Active = 'ACTIVE',\n Deleted = 'DELETED',\n Inactive = 'INACTIVE',\n Suspended = 'SUSPENDED'\n}\n\nexport type UserStoreSubscription = {\n __typename?: 'UserStoreSubscription';\n id: Scalars['ID']['output'];\n role: Scalars['String']['output'];\n store: Store;\n storeId: Scalars['ID']['output'];\n subscribedAt: Scalars['DateTime']['output'];\n userId: Scalars['ID']['output'];\n};\n\nexport type UserWishlist = {\n __typename?: 'UserWishlist';\n addedAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n notes?: Maybe<Scalars['String']['output']>;\n productId: Scalars['ID']['output'];\n userId: Scalars['String']['output'];\n};\n\nexport type ValidateCouponInput = {\n /** Order amount before discount */\n amount: Scalars['Float']['input'];\n /** Coupon code to validate */\n code: Scalars['String']['input'];\n /** Currency */\n currency: Scalars['String']['input'];\n /** Optional: product IDs being purchased */\n productIds?: InputMaybe<Array<Scalars['String']['input']>>;\n /** Optional: service IDs being purchased */\n serviceIds?: InputMaybe<Array<Scalars['String']['input']>>;\n /** User email — checked alongside userId for USER_SPECIFIC coupons whose restrictedToUserIds were populated with email addresses */\n userEmail?: InputMaybe<Scalars['String']['input']>;\n /** User ID (UUID) trying to use the coupon */\n userId: Scalars['String']['input'];\n};\n\nexport type ValidateCouponResponse = {\n __typename?: 'ValidateCouponResponse';\n /** The coupon details if valid */\n coupon?: Maybe<Coupon>;\n /** Calculated discount amount for the given order amount */\n discountAmount?: Maybe<Scalars['Float']['output']>;\n /** Error message if invalid */\n error?: Maybe<Scalars['String']['output']>;\n /** Final amount after discount */\n finalAmount?: Maybe<Scalars['Float']['output']>;\n /** Detailed validation messages */\n messages: Array<Scalars['String']['output']>;\n /** Whether the coupon is valid and can be applied */\n valid: Scalars['Boolean']['output'];\n};\n\nexport type ValidateTokensInput = {\n apiKey?: InputMaybe<Scalars['String']['input']>;\n authToken: Scalars['String']['input'];\n};\n\nexport type VariantComparisonResult = {\n __typename?: 'VariantComparisonResult';\n confidence?: Maybe<Scalars['Float']['output']>;\n significant: Scalars['Boolean']['output'];\n variants: Array<NewsletterVariant>;\n winner?: Maybe<NewsletterVariant>;\n};\n\n/** Predefined variant option types (e.g., Size, Color, Material) */\nexport type VariantOptionType = {\n __typename?: 'VariantOptionType';\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n /** Display label (e.g., \"Size\", \"Color\") */\n displayName: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n /** Internal name (e.g., \"size\", \"color\") */\n name: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n /** Available values for this option type */\n values: Array<Scalars['String']['output']>;\n};\n\n/** Input for verifying a payment method with a small charge */\nexport type VerifyPaymentMethodInput = {\n /** Billing account ID to associate the payment method with */\n billingAccountId: Scalars['ID']['input'];\n /** Currency for verification charge (INR, USD, EUR) */\n currency: Scalars['String']['input'];\n /** Additional metadata */\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n /** Payment provider (STRIPE or RAZORPAY) */\n provider?: InputMaybe<PaymentProviderPreference>;\n /** Set as default payment method after verification */\n setAsDefault?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\n/** Response from payment method verification */\nexport type VerifyPaymentMethodResponse = {\n __typename?: 'VerifyPaymentMethodResponse';\n /** Verification amount (e.g., 1 for ₹1) */\n amount: Scalars['Float']['output'];\n /** Stripe client secret (for Stripe Elements) */\n clientSecret?: Maybe<Scalars['String']['output']>;\n /** Currency (INR, USD, EUR) */\n currency: Scalars['String']['output'];\n /** Error message if failed */\n error?: Maybe<Scalars['String']['output']>;\n /** Razorpay order ID (for Razorpay SDK) */\n orderId?: Maybe<Scalars['String']['output']>;\n /** Customer phone/contact for payment form prefill */\n prefillContact?: Maybe<Scalars['String']['output']>;\n /** Customer email for payment form prefill */\n prefillEmail?: Maybe<Scalars['String']['output']>;\n /** Customer name for payment form prefill */\n prefillName?: Maybe<Scalars['String']['output']>;\n /** Payment provider used (STRIPE or RAZORPAY) */\n provider: Scalars['String']['output'];\n /** Razorpay customer ID (for showing saved cards) */\n razorpayCustomerId?: Maybe<Scalars['String']['output']>;\n /** Razorpay key ID for frontend integration */\n razorpayKeyId?: Maybe<Scalars['String']['output']>;\n /** Whether the verification was initiated successfully */\n success: Scalars['Boolean']['output'];\n};\n\n/** Input for checking resource visibility */\nexport type VisibilityCheckInput = {\n actorId: Scalars['String']['input'];\n actorType: ActorType;\n resourceIdentifier: Scalars['String']['input'];\n resourceType: Scalars['String']['input'];\n scopeId: Scalars['String']['input'];\n};\n\n/** Visibility check result */\nexport type VisibilityCheckResult = {\n __typename?: 'VisibilityCheckResult';\n reason: Scalars['String']['output'];\n visible: Scalars['Boolean']['output'];\n};\n\n/** Visibility rule controlling who can see a resource */\nexport type VisibilityRule = {\n __typename?: 'VisibilityRule';\n conditions?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n isActive: Scalars['Boolean']['output'];\n priority: Scalars['Int']['output'];\n resourceId: Scalars['String']['output'];\n resourceType: Scalars['String']['output'];\n scopeId: Scalars['String']['output'];\n targetId?: Maybe<Scalars['String']['output']>;\n targetType?: Maybe<Scalars['String']['output']>;\n updatedAt: Scalars['DateTime']['output'];\n visibilityType: VisibilityType;\n};\n\n/** Types of visibility rules for resources */\nexport enum VisibilityType {\n /** Custom conditions (JSON-based) */\n Custom = 'CUSTOM',\n /** Visible to specific group members */\n Group = 'GROUP',\n /** Visible only to owner */\n Private = 'PRIVATE',\n /** Visible to all tenant members */\n Public = 'PUBLIC',\n /** Visible to actors with specific role */\n Role = 'ROLE'\n}\n\nexport type WaitlistFilterInput = {\n platformProductId?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<NewsletterWaitlistStatus>;\n};\n\nexport type WalletAuthResult = {\n __typename?: 'WalletAuthResult';\n accessToken?: Maybe<Scalars['String']['output']>;\n expiresIn?: Maybe<Scalars['Int']['output']>;\n isNewUser?: Maybe<Scalars['Boolean']['output']>;\n refreshToken?: Maybe<Scalars['String']['output']>;\n success: Scalars['Boolean']['output'];\n user?: Maybe<User>;\n walletAddress: Scalars['String']['output'];\n};\n\nexport type WalletChallengeResult = {\n __typename?: 'WalletChallengeResult';\n expiresAt: Scalars['DateTime']['output'];\n message: Scalars['String']['output'];\n nonce: Scalars['String']['output'];\n};\n\nexport type WalletInfo = {\n __typename?: 'WalletInfo';\n chain: Scalars['String']['output'];\n createdAt: Scalars['DateTime']['output'];\n id: Scalars['ID']['output'];\n lastUsedAt?: Maybe<Scalars['DateTime']['output']>;\n verified: Scalars['Boolean']['output'];\n walletAddress: Scalars['String']['output'];\n};\n\nexport type Webhook = {\n __typename?: 'Webhook';\n application: Application;\n applicationId: Scalars['ID']['output'];\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n deliveries: Array<WebhookDelivery>;\n description?: Maybe<Scalars['String']['output']>;\n events: Array<Scalars['String']['output']>;\n failureCount: Scalars['Int']['output'];\n filters?: Maybe<Scalars['JSON']['output']>;\n id: Scalars['ID']['output'];\n isActive: Scalars['Boolean']['output'];\n lastFailureAt?: Maybe<Scalars['DateTime']['output']>;\n lastFailureReason?: Maybe<Scalars['String']['output']>;\n lastSuccessAt?: Maybe<Scalars['DateTime']['output']>;\n lastTriggeredAt?: Maybe<Scalars['DateTime']['output']>;\n maxRetries: Scalars['Int']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n name: Scalars['String']['output'];\n retryDelay: Scalars['Int']['output'];\n retryEnabled: Scalars['Boolean']['output'];\n status: WebhookStatus;\n successCount: Scalars['Int']['output'];\n updatedAt: Scalars['DateTime']['output'];\n url: Scalars['String']['output'];\n};\n\n/** Returned once by createWebhook. The secret field is only present here — never in subsequent webhook queries. */\nexport type WebhookCreated = {\n __typename?: 'WebhookCreated';\n secret: Scalars['String']['output'];\n webhook: Webhook;\n};\n\nexport type WebhookDelivery = {\n __typename?: 'WebhookDelivery';\n attemptNumber: Scalars['Int']['output'];\n context?: Maybe<Scalars['JSON']['output']>;\n createdAt: Scalars['DateTime']['output'];\n deliveredAt?: Maybe<Scalars['DateTime']['output']>;\n errorCode?: Maybe<Scalars['String']['output']>;\n errorMessage?: Maybe<Scalars['String']['output']>;\n eventId: Scalars['String']['output'];\n eventType: Scalars['String']['output'];\n failedAt?: Maybe<Scalars['DateTime']['output']>;\n id: Scalars['ID']['output'];\n metadata?: Maybe<Scalars['JSON']['output']>;\n nextRetryAt?: Maybe<Scalars['DateTime']['output']>;\n payload: Scalars['JSON']['output'];\n requestBody?: Maybe<Scalars['JSON']['output']>;\n requestHeaders?: Maybe<Scalars['JSON']['output']>;\n responseBody?: Maybe<Scalars['String']['output']>;\n responseHeaders?: Maybe<Scalars['JSON']['output']>;\n responseStatus?: Maybe<Scalars['Int']['output']>;\n status: WebhookDeliveryStatus;\n updatedAt: Scalars['DateTime']['output'];\n webhook: Webhook;\n webhookId: Scalars['ID']['output'];\n};\n\nexport type WebhookDeliveryConnection = {\n __typename?: 'WebhookDeliveryConnection';\n edges: Array<WebhookDeliveryEdge>;\n pageInfo: PageInfo;\n totalCount: Scalars['Int']['output'];\n};\n\nexport type WebhookDeliveryEdge = {\n __typename?: 'WebhookDeliveryEdge';\n cursor: Scalars['String']['output'];\n node: WebhookDelivery;\n};\n\nexport enum WebhookDeliveryStatus {\n Delivered = 'DELIVERED',\n Delivering = 'DELIVERING',\n Failed = 'FAILED',\n Pending = 'PENDING',\n Retrying = 'RETRYING'\n}\n\n/** WebhookEvent represents a received webhook (transient, 7-day TTL) Used for debugging and monitoring only */\nexport type WebhookEvent = {\n __typename?: 'WebhookEvent';\n /** Associated channel */\n channel: Channel;\n /** Associated channel ID */\n channelId: Scalars['ID']['output'];\n /** Operation context (tenantId, userId, etc.) */\n context?: Maybe<OperationContext>;\n /** Creation timestamp (when webhook was received) */\n createdAt: Scalars['DateTime']['output'];\n /** Error message (if failed) */\n errorMessage?: Maybe<Scalars['String']['output']>;\n /** Platform event type (message.channels, reaction_added, etc.) */\n eventType: Scalars['String']['output'];\n /** Expiration timestamp (7 days from creation) */\n expiresAt: Scalars['DateTime']['output'];\n /** Unique webhook event ID */\n id: Scalars['ID']['output'];\n /** Whether this is a duplicate event */\n isDuplicate: Scalars['Boolean']['output'];\n /** Original webhook event ID (if duplicate) */\n originalEventId?: Maybe<Scalars['ID']['output']>;\n /** Raw webhook payload */\n payload: Scalars['JSON']['output'];\n /** Processed at timestamp */\n processedAt?: Maybe<Scalars['DateTime']['output']>;\n /** Processing result */\n processingResult?: Maybe<Scalars['JSON']['output']>;\n /** Webhook signature (for verification) */\n signature?: Maybe<Scalars['String']['output']>;\n /** Processing status */\n status: WebhookProcessingStatus;\n /** Last update timestamp */\n updatedAt: Scalars['DateTime']['output'];\n};\n\n/** Paginated list of webhook events with cursor support. Pass `nextCursor` from a previous response as `cursor` in the next call. */\nexport type WebhookEventList = {\n __typename?: 'WebhookEventList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<WebhookEvent>;\n nextCursor?: Maybe<Scalars['String']['output']>;\n total: Scalars['Int']['output'];\n};\n\n/** Webhook processing result */\nexport type WebhookProcessingResult = {\n __typename?: 'WebhookProcessingResult';\n /** Error message (if failed) */\n error?: Maybe<Scalars['String']['output']>;\n /** Webhook event ID */\n eventId: Scalars['ID']['output'];\n /** Processing time (ms) */\n processingTimeMs?: Maybe<Scalars['Int']['output']>;\n /** Processing status */\n status: WebhookProcessingStatus;\n /** Whether processing was successful */\n success: Scalars['Boolean']['output'];\n /** Number of workflow triggers executed */\n triggersExecuted: Scalars['Int']['output'];\n};\n\n/** Webhook event processing status */\nexport enum WebhookProcessingStatus {\n /** Successfully processed */\n Completed = 'COMPLETED',\n /** Processing failed */\n Failed = 'FAILED',\n /** Webhook ignored (duplicate, invalid signature) */\n Ignored = 'IGNORED',\n /** Webhook received, pending processing */\n Pending = 'PENDING',\n /** Currently processing */\n Processing = 'PROCESSING'\n}\n\n/** Webhook received event payload. */\nexport type WebhookReceivedEvent = {\n __typename?: 'WebhookReceivedEvent';\n channelId: Scalars['ID']['output'];\n organizationId: Scalars['ID']['output'];\n platform: Scalars['String']['output'];\n processingStatus: Scalars['String']['output'];\n receivedAt: Scalars['DateTime']['output'];\n webhookEventId: Scalars['ID']['output'];\n};\n\n/** Webhook statistics */\nexport type WebhookStats = {\n __typename?: 'WebhookStats';\n /** Average processing time (ms) */\n avgProcessingTimeMs: Scalars['Int']['output'];\n /** Channel ID */\n channelId: Scalars['ID']['output'];\n /** Date range end */\n endDate: Scalars['DateTime']['output'];\n /** Failed processing */\n failedProcessing: Scalars['Int']['output'];\n /** Ignored (duplicate, invalid signature) */\n ignored: Scalars['Int']['output'];\n /** Date range start */\n startDate: Scalars['DateTime']['output'];\n /** Successfully processed */\n successfullyProcessed: Scalars['Int']['output'];\n /** Total webhooks received */\n totalReceived: Scalars['Int']['output'];\n};\n\nexport enum WebhookStatus {\n Active = 'ACTIVE',\n Disabled = 'DISABLED',\n Failed = 'FAILED',\n Paused = 'PAUSED'\n}\n\nexport type WebhookTestResult = {\n __typename?: 'WebhookTestResult';\n error?: Maybe<Scalars['String']['output']>;\n response?: Maybe<Scalars['String']['output']>;\n statusCode?: Maybe<Scalars['Int']['output']>;\n success: Scalars['Boolean']['output'];\n};\n\nexport enum WeightUnit {\n Gram = 'GRAM',\n Kilogram = 'KILOGRAM',\n Ounce = 'OUNCE',\n Pound = 'POUND'\n}\n\nexport type WidgetConversationSourceContextInput = {\n activeTab?: InputMaybe<Scalars['String']['input']>;\n contextHref: Scalars['String']['input'];\n contextTitle?: InputMaybe<Scalars['String']['input']>;\n entityId?: InputMaybe<Scalars['ID']['input']>;\n entityType?: InputMaybe<Scalars['String']['input']>;\n metadata?: InputMaybe<Scalars['JSON']['input']>;\n pagePath: Scalars['String']['input'];\n product: Scalars['String']['input'];\n threadKey: Scalars['String']['input'];\n widgetKey: Scalars['String']['input'];\n};\n\nexport type WidgetMessageAttachmentInput = {\n downloadUrl?: InputMaybe<Scalars['String']['input']>;\n duration?: InputMaybe<Scalars['Int']['input']>;\n fileId: Scalars['ID']['input'];\n fileName?: InputMaybe<Scalars['String']['input']>;\n fileSize?: InputMaybe<Scalars['Int']['input']>;\n height?: InputMaybe<Scalars['Int']['input']>;\n mimeType?: InputMaybe<Scalars['String']['input']>;\n thumbnail?: InputMaybe<Scalars['String']['input']>;\n width?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type WithdrawConsentInput = {\n purpose: ConsentPurpose;\n source: Scalars['String']['input'];\n subjectId: Scalars['ID']['input'];\n subjectType: Scalars['String']['input'];\n};\n\n/** Workspace type stub - represents a workspace entity from the workspace service This service doesn't own the Workspace model, but references it */\nexport type Workspace = {\n __typename?: 'Workspace';\n createdAt: Scalars['DateTime']['output'];\n /** 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 */\n endpoint?: Maybe<Scalars['String']['output']>;\n id: Scalars['ID']['output'];\n /** Member count */\n memberCount: Scalars['Int']['output'];\n /** 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. */\n members: Array<WorkspaceMember>;\n /** 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. */\n membersConnection: WorkspaceMemberList;\n /** Routing metadata only (NOT workspace internals) */\n metadata?: Maybe<Scalars['JSON']['output']>;\n name: Scalars['String']['output'];\n organization?: Maybe<Organization>;\n organizationId?: Maybe<Scalars['String']['output']>;\n /** Data residency region for compliance */\n region?: Maybe<Scalars['String']['output']>;\n slug: Scalars['String']['output'];\n status: WorkspaceStatus;\n tenant: Tenant;\n tenantId: Scalars['String']['output'];\n type: WorkspaceType;\n updatedAt: Scalars['DateTime']['output'];\n};\n\n\n/** Workspace type stub - represents a workspace entity from the workspace service This service doesn't own the Workspace model, but references it */\nexport type WorkspaceMembersArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n\n/** Workspace type stub - represents a workspace entity from the workspace service This service doesn't own the Workspace model, but references it */\nexport type WorkspaceMembersConnectionArgs = {\n limit?: InputMaybe<Scalars['Int']['input']>;\n offset?: InputMaybe<Scalars['Int']['input']>;\n};\n\n/** Per-workspace outcome within a activateSubscriptionForWorkspaces call. */\nexport type WorkspaceActivationOutcome = {\n __typename?: 'WorkspaceActivationOutcome';\n assignedQuotas: Scalars['Int']['output'];\n skippedQuotas: Scalars['Int']['output'];\n workspaceId: Scalars['ID']['output'];\n};\n\n/** Workspace-level override for a feature flag. Workspace admins can disable flags or control user opt-in for their workspace. */\nexport type WorkspaceFeatureFlagOverride = {\n __typename?: 'WorkspaceFeatureFlagOverride';\n allowUserOptIn: Scalars['Boolean']['output'];\n createdAt: Scalars['DateTime']['output'];\n createdBy: Scalars['String']['output'];\n enabled: Scalars['Boolean']['output'];\n featureFlag: FeatureFlag;\n featureFlagId: Scalars['String']['output'];\n id: Scalars['ID']['output'];\n updatedAt: Scalars['DateTime']['output'];\n updatedBy?: Maybe<Scalars['String']['output']>;\n workspaceId: Scalars['String']['output'];\n};\n\n/** Filter input for querying workspaces */\nexport type WorkspaceFilterInput = {\n organizationId?: InputMaybe<Scalars['String']['input']>;\n search?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<WorkspaceStatus>;\n tenantId?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<WorkspaceType>;\n};\n\n/** Paginated list of workspaces */\nexport type WorkspaceList = {\n __typename?: 'WorkspaceList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<Workspace>;\n limit: Scalars['Int']['output'];\n offset: Scalars['Int']['output'];\n total: Scalars['Int']['output'];\n};\n\n/** Workspace member with role and join information */\nexport type WorkspaceMember = {\n __typename?: 'WorkspaceMember';\n id: Scalars['ID']['output'];\n invitedBy?: Maybe<Scalars['String']['output']>;\n joinedAt: Scalars['DateTime']['output'];\n role: UserRole;\n userId: Scalars['String']['output'];\n workspace: Workspace;\n workspaceId: Scalars['String']['output'];\n};\n\n/** Paginated list of workspace members */\nexport type WorkspaceMemberList = {\n __typename?: 'WorkspaceMemberList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<WorkspaceMember>;\n limit: Scalars['Int']['output'];\n offset: Scalars['Int']['output'];\n total: Scalars['Int']['output'];\n};\n\n/** Public workspace details available to authorized actors */\nexport type WorkspacePublicDetails = {\n __typename?: 'WorkspacePublicDetails';\n id: Scalars['ID']['output'];\n name: Scalars['String']['output'];\n publicUrl: Scalars['String']['output'];\n slug: Scalars['String']['output'];\n status: WorkspaceStatus;\n type: WorkspaceType;\n};\n\n/** Workspace routing information for API gateway routing */\nexport type WorkspaceRouting = {\n __typename?: 'WorkspaceRouting';\n name: Scalars['String']['output'];\n publicUrl: Scalars['String']['output'];\n region?: Maybe<Scalars['String']['output']>;\n tenantId: Scalars['String']['output'];\n workspaceId: Scalars['ID']['output'];\n};\n\n/** Paginated list of workspace routing info */\nexport type WorkspaceRoutingList = {\n __typename?: 'WorkspaceRoutingList';\n hasMore: Scalars['Boolean']['output'];\n items: Array<WorkspaceRouting>;\n total: Scalars['Int']['output'];\n};\n\n/** Workspace status for lifecycle management */\nexport enum WorkspaceStatus {\n Active = 'ACTIVE',\n Archived = 'ARCHIVED',\n Deleted = 'DELETED',\n Suspended = 'SUSPENDED'\n}\n\nexport type WorkspaceTourAnalyticsSummary = {\n __typename?: 'WorkspaceTourAnalyticsSummary';\n overallCompletionRate: Scalars['Float']['output'];\n publishedTours: Scalars['Int']['output'];\n totalCompletions: Scalars['Int']['output'];\n totalTours: Scalars['Int']['output'];\n totalViews: Scalars['Int']['output'];\n};\n\n/** Workspace type determines the workspace tier and capabilities */\nexport enum WorkspaceType {\n Enterprise = 'ENTERPRISE',\n Personal = 'PERSONAL',\n Team = 'TEAM'\n}\n\nexport type AddonQuotaInput = {\n quantity: Scalars['Float']['input'];\n quotaId: Scalars['ID']['input'];\n};\n\nexport type CreateAddOnsInput = {\n currency: Scalars['String']['input'];\n currencyPriceOverrides?: InputMaybe<Array<CurrencyPriceOverrideInput>>;\n duration: PlanDuration;\n geoPricingOverrides?: InputMaybe<Array<GeoPricingOverrideInput>>;\n name: Scalars['String']['input'];\n price: Scalars['Float']['input'];\n productId: Scalars['String']['input'];\n quotas: Array<AddonQuotaInput>;\n};\n\nexport type CreatePlanInput = {\n currency?: InputMaybe<Scalars['String']['input']>;\n currencyPriceOverrides?: InputMaybe<Array<CurrencyPriceOverrideInput>>;\n /** Default USD */\n duration: PlanDuration;\n geoPricingOverrides?: InputMaybe<Array<GeoPricingOverrideInput>>;\n /** Set to false for enterprise / contact-us plans. Defaults to true. */\n isPurchasable?: InputMaybe<Scalars['Boolean']['input']>;\n maxSeats?: InputMaybe<Scalars['Int']['input']>;\n /** 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). */\n maxWorkspaces?: InputMaybe<Scalars['Int']['input']>;\n minSeats?: InputMaybe<Scalars['Int']['input']>;\n name: Scalars['String']['input'];\n price: Scalars['Float']['input'];\n pricePerSeat?: InputMaybe<Scalars['Float']['input']>;\n pricingModel?: InputMaybe<PlanPricingModel>;\n productId?: InputMaybe<Scalars['String']['input']>;\n quotas: Array<PlanQuotaInput>;\n};\n\nexport type CreateQuotaInput = {\n context?: InputMaybe<Scalars['JSON']['input']>;\n limits: Scalars['JSON']['input'];\n name: Scalars['String']['input'];\n quotaType?: InputMaybe<QuotaType>;\n resetPeriod?: InputMaybe<QuotaResetPeriod>;\n reusable: Scalars['Boolean']['input'];\n};\n\nexport type UpdateAddOnsInput = {\n currency?: InputMaybe<Scalars['String']['input']>;\n currencyPriceOverrides?: InputMaybe<Array<CurrencyPriceOverrideInput>>;\n duration?: InputMaybe<PlanDuration>;\n geoPricingOverrides?: InputMaybe<Array<GeoPricingOverrideInput>>;\n id: Scalars['String']['input'];\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n price?: InputMaybe<Scalars['Float']['input']>;\n quotas: Array<AddonQuotaInput>;\n};\n\nexport type UpdatePlanInput = {\n /** Immutable once set — see `price`. Throws CURRENCY_CHANGE_NOT_ALLOWED on an actual change. */\n currency?: InputMaybe<Scalars['String']['input']>;\n /** 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). */\n currencyPriceOverrides?: InputMaybe<Array<CurrencyPriceOverrideInput>>;\n /** Default USD. Immutable once set — see `price`. Throws DURATION_CHANGE_NOT_ALLOWED on an actual change. */\n duration?: InputMaybe<PlanDuration>;\n geoPricingOverrides?: InputMaybe<Array<GeoPricingOverrideInput>>;\n id: Scalars['String']['input'];\n isActive?: InputMaybe<Scalars['Boolean']['input']>;\n isPurchasable?: InputMaybe<Scalars['Boolean']['input']>;\n maxSeats?: InputMaybe<Scalars['Int']['input']>;\n maxWorkspaces?: InputMaybe<Scalars['Int']['input']>;\n minSeats?: InputMaybe<Scalars['Int']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n /** 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. */\n price?: InputMaybe<Scalars['Float']['input']>;\n /** Immutable once set — see `price`. Throws PRICE_CHANGE_NOT_ALLOWED on an actual change. */\n pricePerSeat?: InputMaybe<Scalars['Float']['input']>;\n pricingModel?: InputMaybe<PlanPricingModel>;\n quotas: Array<PlanQuotaInput>;\n};\n\nexport type UpdateQuotaInput = {\n context?: InputMaybe<Scalars['JSON']['input']>;\n id: Scalars['String']['input'];\n isActive: Scalars['Boolean']['input'];\n limits?: InputMaybe<Scalars['JSON']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n resetPeriod?: InputMaybe<QuotaResetPeriod>;\n reusable?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type UserRegisterInput = {\n email: Scalars['String']['input'];\n name: Scalars['String']['input'];\n password: Scalars['String']['input'];\n phoneNumber?: InputMaybe<Scalars['String']['input']>;\n username: Scalars['String']['input'];\n};\n"],"mappings":";AAolKA,IAAY,IAAL,yBAAA,GAAA;QACL,EAAA,cAAA,gBACA,EAAA,QAAA,SACA,EAAA,SAAA,UACA,EAAA,gBAAA,kBACA,EAAA,OAAA;KACD"}
|