@burdenoff/microfe-store 2026.1013.3 → 2026.1028.1
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/components/ExternalListingBadge.d.ts +15 -0
- package/dist/components/ExternalListingBadge.js +19 -0
- package/dist/components/ExternalListingBadge.js.map +1 -0
- package/dist/generated/global-operations.d.ts +14 -0
- package/dist/generated/global-operations.js +14 -0
- package/dist/generated/global-operations.js.map +1 -1
- package/dist/generated/global-types.d.ts +679 -10
- package/dist/generated/global-types.js.map +1 -1
- package/dist/generated/wspace-types.d.ts +20345 -404
- package/dist/hooks/useStoreGraphQL.d.ts +4 -0
- package/dist/hooks/useStoreGraphQL.js.map +1 -1
- package/dist/pages/MarketplaceHomePage.js +134 -127
- package/dist/pages/MarketplaceHomePage.js.map +1 -1
- package/dist/pages/ProductDetailPage.js +628 -601
- package/dist/pages/ProductDetailPage.js.map +1 -1
- package/dist/translations/en.d.ts +6 -0
- package/dist/translations/en.js +6 -0
- package/dist/translations/en.js.map +1 -1
- package/dist/utils/externalListing.d.ts +35 -0
- package/dist/utils/externalListing.js +34 -0
- package/dist/utils/externalListing.js.map +1 -0
- package/package.json +1 -1
|
@@ -408,6 +408,8 @@ export type Addon = {
|
|
|
408
408
|
isActive?: Maybe<Scalars['Boolean']['output']>;
|
|
409
409
|
/** The name of the addon (e.g., 'Extra Bots', 'Additional Storage'). */
|
|
410
410
|
name?: Maybe<Scalars['String']['output']>;
|
|
411
|
+
/** Apple App Store / Google Play SKU for this addon. */
|
|
412
|
+
nativeProductId?: Maybe<Scalars['String']['output']>;
|
|
411
413
|
/** The price of the addon. */
|
|
412
414
|
price?: Maybe<Scalars['Float']['output']>;
|
|
413
415
|
/** Historical record of price changes for this addon */
|
|
@@ -746,6 +748,8 @@ export declare enum AgentStatus {
|
|
|
746
748
|
/** Per-model LLM token prices (USD per 1M tokens) used to weight AI-credit charges. */
|
|
747
749
|
export type AiModelPrice = {
|
|
748
750
|
__typename?: 'AiModelPrice';
|
|
751
|
+
cacheReadMultiplier: Scalars['Float']['output'];
|
|
752
|
+
cacheWriteMultiplier: Scalars['Float']['output'];
|
|
749
753
|
inputPer1M: Scalars['Float']['output'];
|
|
750
754
|
isActive: Scalars['Boolean']['output'];
|
|
751
755
|
model: Scalars['String']['output'];
|
|
@@ -1361,6 +1365,20 @@ export type AssignedQuota = {
|
|
|
1361
1365
|
scope: QuotaScope;
|
|
1362
1366
|
workspaceId?: Maybe<Scalars['ID']['output']>;
|
|
1363
1367
|
};
|
|
1368
|
+
export type AssistantAccountBudget = {
|
|
1369
|
+
__typename?: 'AssistantAccountBudget';
|
|
1370
|
+
billingAccountId: Scalars['ID']['output'];
|
|
1371
|
+
dailyMicroUsd: Scalars['Int']['output'];
|
|
1372
|
+
dailyTokens: Scalars['Int']['output'];
|
|
1373
|
+
enabled: Scalars['Boolean']['output'];
|
|
1374
|
+
};
|
|
1375
|
+
export type AssistantBudgetReceipt = {
|
|
1376
|
+
__typename?: 'AssistantBudgetReceipt';
|
|
1377
|
+
heldMicroUsd: Scalars['Int']['output'];
|
|
1378
|
+
heldTokens: Scalars['Int']['output'];
|
|
1379
|
+
id: Scalars['ID']['output'];
|
|
1380
|
+
status: Scalars['String']['output'];
|
|
1381
|
+
};
|
|
1364
1382
|
export type AttachMediaToStepInput = {
|
|
1365
1383
|
/** Operation context for scoping (workspaceId, userId, productId, moduleId, etc.) */
|
|
1366
1384
|
context?: InputMaybe<ContextInput>;
|
|
@@ -1550,6 +1568,82 @@ export type AutomationSubscriber = {
|
|
|
1550
1568
|
status: AutomationStatus;
|
|
1551
1569
|
subscriberId: Scalars['String']['output'];
|
|
1552
1570
|
};
|
|
1571
|
+
/** A workspace's avatar credits, in one person's view when actorId is given (contract v2). Whole credits, 0 or more. */
|
|
1572
|
+
export type AvatarMinutesBalance = {
|
|
1573
|
+
__typename?: 'AvatarMinutesBalance';
|
|
1574
|
+
/** Credits left for this person now: carried + free within the person's ceiling + plan. */
|
|
1575
|
+
availableMinutes: Scalars['Int']['output'];
|
|
1576
|
+
/** Carried credits left. */
|
|
1577
|
+
carriedRemaining: Scalars['Int']['output'];
|
|
1578
|
+
/** Always 2. */
|
|
1579
|
+
contractVersion: Scalars['Int']['output'];
|
|
1580
|
+
/** The counted free row's amount; 0 without one. */
|
|
1581
|
+
freeMinutesPerMonth: Scalars['Int']['output'];
|
|
1582
|
+
/** Free credits left in this workspace this month, before the person's ceiling. */
|
|
1583
|
+
freeRemaining: Scalars['Int']['output'];
|
|
1584
|
+
/** This person's own open holds that block them; null without actorId. */
|
|
1585
|
+
heldByActorMinutes?: Maybe<Scalars['Int']['output']>;
|
|
1586
|
+
/** Credits reserved by open sessions in this workspace. */
|
|
1587
|
+
heldMinutes: Scalars['Int']['output'];
|
|
1588
|
+
/** Whether a plan with more credits exists for the product. Display only, never an entitlement. */
|
|
1589
|
+
morePlanCreditsAvailable: Scalars['Boolean']['output'];
|
|
1590
|
+
/** The per-person free ceiling; null when off. */
|
|
1591
|
+
personFreeCeiling?: Maybe<Scalars['Int']['output']>;
|
|
1592
|
+
/** The person's free credits left this UTC month; null when the ceiling is off or without actorId. */
|
|
1593
|
+
personFreeRemaining?: Maybe<Scalars['Int']['output']>;
|
|
1594
|
+
/** The counted plans' amounts, summed. */
|
|
1595
|
+
planMinutesPerMonth: Scalars['Int']['output'];
|
|
1596
|
+
/** Plan credits left in this workspace this month. */
|
|
1597
|
+
planRemaining: Scalars['Int']['output'];
|
|
1598
|
+
reason?: Maybe<AvatarMinutesReason>;
|
|
1599
|
+
/** The next 1st, 00:00 UTC (ISO-8601 with milliseconds). */
|
|
1600
|
+
resetsAt: Scalars['String']['output'];
|
|
1601
|
+
state: AvatarMinutesState;
|
|
1602
|
+
};
|
|
1603
|
+
export declare enum AvatarMinutesEndClass {
|
|
1604
|
+
Exact = "EXACT",
|
|
1605
|
+
None = "NONE",
|
|
1606
|
+
Uncertain = "UNCERTAIN"
|
|
1607
|
+
}
|
|
1608
|
+
export declare enum AvatarMinutesMode {
|
|
1609
|
+
Enforce = "ENFORCE",
|
|
1610
|
+
Observe = "OBSERVE"
|
|
1611
|
+
}
|
|
1612
|
+
export declare enum AvatarMinutesReason {
|
|
1613
|
+
FreeCeiling = "FREE_CEILING",
|
|
1614
|
+
NotIncluded = "NOT_INCLUDED",
|
|
1615
|
+
OwnSession = "OWN_SESSION",
|
|
1616
|
+
ZeroSessionLimit = "ZERO_SESSION_LIMIT"
|
|
1617
|
+
}
|
|
1618
|
+
export type AvatarMinutesReservation = {
|
|
1619
|
+
__typename?: 'AvatarMinutesReservation';
|
|
1620
|
+
chargedMinutes?: Maybe<Scalars['Int']['output']>;
|
|
1621
|
+
/** AVATAR, SWEEPER or SUPERSEDE. */
|
|
1622
|
+
closedBy?: Maybe<Scalars['String']['output']>;
|
|
1623
|
+
reservedMinutes: Scalars['Int']['output'];
|
|
1624
|
+
sessionId: Scalars['ID']['output'];
|
|
1625
|
+
/** RESERVED, ACTIVE, SETTLED, RELEASED or EXPIRED. */
|
|
1626
|
+
state: Scalars['String']['output'];
|
|
1627
|
+
};
|
|
1628
|
+
/** HMAC-SHA256 envelope of a signed avatar-minutes call (DESIGN 3.7): the key id (environment-prefixed), the signing instant (strict ISO-8601 UTC with milliseconds) and the MAC (64 lowercase hex). */
|
|
1629
|
+
export type AvatarMinutesSignature = {
|
|
1630
|
+
issuedAt: Scalars['String']['input'];
|
|
1631
|
+
kid: Scalars['String']['input'];
|
|
1632
|
+
value: Scalars['String']['input'];
|
|
1633
|
+
};
|
|
1634
|
+
export declare enum AvatarMinutesState {
|
|
1635
|
+
Available = "AVAILABLE",
|
|
1636
|
+
Exhausted = "EXHAUSTED",
|
|
1637
|
+
InUse = "IN_USE"
|
|
1638
|
+
}
|
|
1639
|
+
/** The provider's session status at settle, noted once on the SETTLED reservation (P-27). */
|
|
1640
|
+
export declare enum AvatarProviderSessionStatus {
|
|
1641
|
+
Canceled = "CANCELED",
|
|
1642
|
+
Ended = "ENDED",
|
|
1643
|
+
Ending = "ENDING",
|
|
1644
|
+
Failed = "FAILED",
|
|
1645
|
+
Other = "OTHER"
|
|
1646
|
+
}
|
|
1553
1647
|
export declare enum BackoffStrategy {
|
|
1554
1648
|
Exponential = "EXPONENTIAL",
|
|
1555
1649
|
ExponentialWithJitter = "EXPONENTIAL_WITH_JITTER",
|
|
@@ -1781,13 +1875,17 @@ export type BillingSubscription = {
|
|
|
1781
1875
|
};
|
|
1782
1876
|
export type BillingWebhookLog = {
|
|
1783
1877
|
__typename?: 'BillingWebhookLog';
|
|
1878
|
+
attemptCount: Scalars['Int']['output'];
|
|
1784
1879
|
context?: Maybe<Scalars['JSON']['output']>;
|
|
1785
1880
|
createdAt: Scalars['DateTime']['output'];
|
|
1881
|
+
deadLetteredAt?: Maybe<Scalars['DateTime']['output']>;
|
|
1786
1882
|
error?: Maybe<Scalars['String']['output']>;
|
|
1787
1883
|
event: Scalars['String']['output'];
|
|
1788
1884
|
id: Scalars['ID']['output'];
|
|
1885
|
+
nextAttemptAt?: Maybe<Scalars['DateTime']['output']>;
|
|
1789
1886
|
payload: Scalars['JSON']['output'];
|
|
1790
1887
|
processed: Scalars['Boolean']['output'];
|
|
1888
|
+
processingStartedAt?: Maybe<Scalars['DateTime']['output']>;
|
|
1791
1889
|
provider: Scalars['String']['output'];
|
|
1792
1890
|
};
|
|
1793
1891
|
/** 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. */
|
|
@@ -2904,6 +3002,20 @@ export declare enum CircuitState {
|
|
|
2904
3002
|
HalfOpen = "HALF_OPEN",
|
|
2905
3003
|
Open = "OPEN"
|
|
2906
3004
|
}
|
|
3005
|
+
export type CloseAvatarMinutesInput = {
|
|
3006
|
+
/** The decider's wall-clock time; audit only. */
|
|
3007
|
+
decidedAt: Scalars['String']['input'];
|
|
3008
|
+
endClass: AvatarMinutesEndClass;
|
|
3009
|
+
/** Sets the rounding by the exhaustive table in DESIGN 3.1. */
|
|
3010
|
+
endReason: Scalars['String']['input'];
|
|
3011
|
+
ownerDecided: Scalars['Boolean']['input'];
|
|
3012
|
+
/** Anchors the lease; absent for a failed start. */
|
|
3013
|
+
readyAt?: InputMaybe<Scalars['String']['input']>;
|
|
3014
|
+
sessionId: Scalars['ID']['input'];
|
|
3015
|
+
/** The decision's span (DESIGN 3.1), whole milliseconds; 0 when not confirmed. */
|
|
3016
|
+
spanMs: Scalars['Int']['input'];
|
|
3017
|
+
workspaceId: Scalars['ID']['input'];
|
|
3018
|
+
};
|
|
2907
3019
|
export type ComplaintStats = {
|
|
2908
3020
|
__typename?: 'ComplaintStats';
|
|
2909
3021
|
complaintRate: Scalars['Float']['output'];
|
|
@@ -2921,6 +3033,10 @@ export type ComplianceAuditLogEntry = {
|
|
|
2921
3033
|
/** Input for configuring tenant settings */
|
|
2922
3034
|
export type ConfigureTenantInput = {
|
|
2923
3035
|
complianceRegion?: InputMaybe<Scalars['String']['input']>;
|
|
3036
|
+
/**
|
|
3037
|
+
* Ignored and never stored. Burdenoff does no white-labelling: every product keeps its own brand.
|
|
3038
|
+
* @deprecated No white-labelling — products keep their own brand. This setting is ignored.
|
|
3039
|
+
*/
|
|
2924
3040
|
customBranding?: InputMaybe<Scalars['JSON']['input']>;
|
|
2925
3041
|
dataResidency?: InputMaybe<Scalars['String']['input']>;
|
|
2926
3042
|
features?: InputMaybe<Scalars['JSON']['input']>;
|
|
@@ -3142,6 +3258,10 @@ export type ContextWidgetConversationPayload = {
|
|
|
3142
3258
|
};
|
|
3143
3259
|
export type Coupon = {
|
|
3144
3260
|
__typename?: 'Coupon';
|
|
3261
|
+
/** Purchase flows (PLAN / ADD_ON / STORE) this coupon may be redeemed against. Empty = all entity types. */
|
|
3262
|
+
applicableEntityTypes: Array<CouponEntityType>;
|
|
3263
|
+
/** Product slugs (e.g. "vibecontrols", "fluidgrids") this coupon may be redeemed against. Empty = all products. */
|
|
3264
|
+
applicableProductIds: Array<Scalars['String']['output']>;
|
|
3145
3265
|
applicableProducts: Array<Scalars['String']['output']>;
|
|
3146
3266
|
applicableServices: Array<Scalars['String']['output']>;
|
|
3147
3267
|
campaignId?: Maybe<Scalars['String']['output']>;
|
|
@@ -3172,6 +3292,12 @@ export type Coupon = {
|
|
|
3172
3292
|
validUntil?: Maybe<Scalars['DateTime']['output']>;
|
|
3173
3293
|
value: Scalars['Float']['output'];
|
|
3174
3294
|
};
|
|
3295
|
+
/** Which purchase flow a coupon may be redeemed against (BOFF-7391). */
|
|
3296
|
+
export declare enum CouponEntityType {
|
|
3297
|
+
AddOn = "ADD_ON",
|
|
3298
|
+
Plan = "PLAN",
|
|
3299
|
+
Store = "STORE"
|
|
3300
|
+
}
|
|
3175
3301
|
export type CouponFilterInput = {
|
|
3176
3302
|
campaignId?: InputMaybe<Scalars['String']['input']>;
|
|
3177
3303
|
scope?: InputMaybe<CouponScope>;
|
|
@@ -3457,6 +3583,8 @@ export type CreateContentPageInput = {
|
|
|
3457
3583
|
visibility?: InputMaybe<ContentVisibility>;
|
|
3458
3584
|
};
|
|
3459
3585
|
export type CreateCouponInput = {
|
|
3586
|
+
applicableEntityTypes?: InputMaybe<Array<CouponEntityType>>;
|
|
3587
|
+
applicableProductIds?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
3460
3588
|
applicableProducts?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
3461
3589
|
applicableServices?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
3462
3590
|
campaignId?: InputMaybe<Scalars['String']['input']>;
|
|
@@ -5646,6 +5774,25 @@ export type EraseResult = {
|
|
|
5646
5774
|
retainedForLegalReason?: Maybe<Scalars['String']['output']>;
|
|
5647
5775
|
service: Scalars['String']['output'];
|
|
5648
5776
|
};
|
|
5777
|
+
/** A visitor asking for a human, on a conversation they are already in. Anonymous like the rest of explore: the conversation token is the only proof of ownership, and the only thing we ask the visitor for is where to reply. */
|
|
5778
|
+
export type EscalateExploreConversationInput = {
|
|
5779
|
+
/** Bearer secret for the conversation being handed over. */
|
|
5780
|
+
conversationToken: Scalars['String']['input'];
|
|
5781
|
+
/** Where the reply should go. Validated server-side and stored lower-cased; an address we cannot deliver to is refused with `INVALID_EMAIL` rather than accepted into a ticket nobody can answer. */
|
|
5782
|
+
email: Scalars['String']['input'];
|
|
5783
|
+
/** Anything the visitor wants to add in their own words. Optional — the point of the handover is that the conversation already says what the problem is. Capped server-side; the server truncates rather than rejecting. */
|
|
5784
|
+
note?: InputMaybe<Scalars['String']['input']>;
|
|
5785
|
+
/** `PlatformProduct` id of the site the visitor is on, so the handover reaches that product's support inbox instead of the default one. */
|
|
5786
|
+
productId?: InputMaybe<Scalars['String']['input']>;
|
|
5787
|
+
/** reCAPTCHA v3 token — required only when `exploreCatalog.captchaRequired`, and minted with the SAME action as a chat message. */
|
|
5788
|
+
recaptchaToken?: InputMaybe<Scalars['String']['input']>;
|
|
5789
|
+
};
|
|
5790
|
+
export type EscalateExploreConversationResult = {
|
|
5791
|
+
__typename?: 'EscalateExploreConversationResult';
|
|
5792
|
+
/** False when this submit found a handover that already existed — the double-clicked button, the retried request, the reloaded page. Not an error: the conversation is with a human either way. */
|
|
5793
|
+
created: Scalars['Boolean']['output'];
|
|
5794
|
+
escalation: ExploreEscalation;
|
|
5795
|
+
};
|
|
5649
5796
|
export type EvaluateFeatureFlagsInput = {
|
|
5650
5797
|
/** Specific flag keys to evaluate. If empty, evaluates ALL active flags. */
|
|
5651
5798
|
keys?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
@@ -5653,6 +5800,10 @@ export type EvaluateFeatureFlagsInput = {
|
|
|
5653
5800
|
productSlug?: InputMaybe<Scalars['String']['input']>;
|
|
5654
5801
|
workspaceId: Scalars['String']['input'];
|
|
5655
5802
|
};
|
|
5803
|
+
export type ExchangeOwnDelegationInput = {
|
|
5804
|
+
delegationId: Scalars['ID']['input'];
|
|
5805
|
+
scopes?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
5806
|
+
};
|
|
5656
5807
|
export type ExchangeTokenInput = {
|
|
5657
5808
|
appId: Scalars['String']['input'];
|
|
5658
5809
|
scopes?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
@@ -5715,6 +5866,8 @@ export type ExploreAdminFilter = {
|
|
|
5715
5866
|
from?: InputMaybe<Scalars['DateTime']['input']>;
|
|
5716
5867
|
/** Salted IP hash, to group one visitor's sessions. */
|
|
5717
5868
|
ipHash?: InputMaybe<Scalars['String']['input']>;
|
|
5869
|
+
/** Only conversations containing an answer a visitor marked NOT helpful. */
|
|
5870
|
+
notHelpfulOnly?: InputMaybe<Scalars['Boolean']['input']>;
|
|
5718
5871
|
/** Match conversations that started on this product's website. */
|
|
5719
5872
|
productSlug?: InputMaybe<Scalars['String']['input']>;
|
|
5720
5873
|
/** Free-text match against message content. */
|
|
@@ -5735,6 +5888,8 @@ export type ExploreAdminMessage = {
|
|
|
5735
5888
|
createdAt: Scalars['DateTime']['output'];
|
|
5736
5889
|
ctas: Array<ExploreCta>;
|
|
5737
5890
|
errorCode?: Maybe<Scalars['String']['output']>;
|
|
5891
|
+
/** What the visitor said about this answer — rating, reason and comment — or null when they said nothing, which is the ordinary case. `answered` is our own machine verdict on whether we could ground a reply; this is the visitor's, and it is the only one of the two that can say an answer was confidently wrong. */
|
|
5892
|
+
feedback?: Maybe<ExploreFeedback>;
|
|
5738
5893
|
followUps: Array<Scalars['String']['output']>;
|
|
5739
5894
|
id: Scalars['ID']['output'];
|
|
5740
5895
|
references: Array<ExploreReference>;
|
|
@@ -5761,7 +5916,11 @@ export type ExploreAdminStats = {
|
|
|
5761
5916
|
byProduct: Array<ExploreAdminProductStat>;
|
|
5762
5917
|
clicks: Scalars['Int']['output'];
|
|
5763
5918
|
conversations: Scalars['Int']['output'];
|
|
5919
|
+
/** Answers a visitor marked helpful. */
|
|
5920
|
+
helpful: Scalars['Int']['output'];
|
|
5764
5921
|
messages: Scalars['Int']['output'];
|
|
5922
|
+
/** Answers a visitor marked NOT helpful. Read against `unanswered`: those are the gaps we already know about, these are the ones we thought we had covered. */
|
|
5923
|
+
notHelpful: Scalars['Int']['output'];
|
|
5765
5924
|
/** Assistant answers the corpus could not ground. */
|
|
5766
5925
|
unanswered: Scalars['Int']['output'];
|
|
5767
5926
|
};
|
|
@@ -5774,8 +5933,20 @@ export type ExploreAgentActivity = {
|
|
|
5774
5933
|
export type ExploreAgentCatalog = {
|
|
5775
5934
|
__typename?: 'ExploreAgentCatalog';
|
|
5776
5935
|
builtAt: Scalars['DateTime']['output'];
|
|
5936
|
+
/** At most one highlight per product, product-slug ordered, identical on every replica. Empty when the corpus carries no concept pages — never null, never an error. */
|
|
5937
|
+
conceptHighlights: Array<ExploreAgentConcept>;
|
|
5777
5938
|
products: Array<ExploreAgentProduct>;
|
|
5778
5939
|
};
|
|
5940
|
+
/** One product's concept page and the illustration that stands for it — what `/explore` offers a visitor who has not asked anything yet. `imageUrl` is absolute, on the product's own published origin, and drawn from the same allow-list an answer's images come from; `alt` is the illustration's own published alt text. */
|
|
5941
|
+
export type ExploreAgentConcept = {
|
|
5942
|
+
__typename?: 'ExploreAgentConcept';
|
|
5943
|
+
alt: Scalars['String']['output'];
|
|
5944
|
+
imageUrl: Scalars['String']['output'];
|
|
5945
|
+
product: Scalars['String']['output'];
|
|
5946
|
+
productName: Scalars['String']['output'];
|
|
5947
|
+
title: Scalars['String']['output'];
|
|
5948
|
+
url: Scalars['String']['output'];
|
|
5949
|
+
};
|
|
5779
5950
|
export type ExploreAgentCtaSuggestion = {
|
|
5780
5951
|
__typename?: 'ExploreAgentCtaSuggestion';
|
|
5781
5952
|
label: Scalars['String']['output'];
|
|
@@ -5878,6 +6049,8 @@ export type ExploreAttachmentInput = {
|
|
|
5878
6049
|
export type ExploreCatalog = {
|
|
5879
6050
|
__typename?: 'ExploreCatalog';
|
|
5880
6051
|
captchaRequired: Scalars['Boolean']['output'];
|
|
6052
|
+
/** Illustrations for the welcome screen, at most 8. The focused product's highlight (see `exploreCatalog(productSlug:)`) comes first. Empty is ORDINARY, not an error: these are fetched from the agent in a separate best-effort query precisely so that an agent which does not serve them yet — or at all — costs the catalog nothing. A page must render the rest of the catalog unchanged when this is empty, and must never read it as a signal that explore is unavailable. That is `enabled`. */
|
|
6053
|
+
conceptHighlights: Array<ExploreConceptHighlight>;
|
|
5881
6054
|
enabled: Scalars['Boolean']['output'];
|
|
5882
6055
|
examplePrompts: Array<Scalars['String']['output']>;
|
|
5883
6056
|
limits: ExploreLimits;
|
|
@@ -5886,6 +6059,17 @@ export type ExploreCatalog = {
|
|
|
5886
6059
|
welcomeBody: Scalars['String']['output'];
|
|
5887
6060
|
welcomeTitle: Scalars['String']['output'];
|
|
5888
6061
|
};
|
|
6062
|
+
/** One product's concept illustration, passed through from the agent's concept index so the welcome screen has something to SHOW before the first message. `imageUrl` is a mockup, not a screenshot of a running product — the same illustrations the answer path embeds, and the UI must label them the same way. `url` is the concept page the illustration belongs to, which is where a visitor who clicks it should land. At most one per product upstream, so the list reads as a gallery of the fleet rather than as several views of whichever product happened to sort first. */
|
|
6063
|
+
export type ExploreConceptHighlight = {
|
|
6064
|
+
__typename?: 'ExploreConceptHighlight';
|
|
6065
|
+
alt: Scalars['String']['output'];
|
|
6066
|
+
imageUrl: Scalars['String']['output'];
|
|
6067
|
+
/** Product slug, matching `ExploreProduct.slug`. */
|
|
6068
|
+
product: Scalars['String']['output'];
|
|
6069
|
+
productName: Scalars['String']['output'];
|
|
6070
|
+
title: Scalars['String']['output'];
|
|
6071
|
+
url: Scalars['String']['output'];
|
|
6072
|
+
};
|
|
5889
6073
|
/** 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. */
|
|
5890
6074
|
export type ExploreConversation = {
|
|
5891
6075
|
__typename?: 'ExploreConversation';
|
|
@@ -5903,6 +6087,26 @@ export type ExploreCta = {
|
|
|
5903
6087
|
product?: Maybe<Scalars['String']['output']>;
|
|
5904
6088
|
url: Scalars['String']['output'];
|
|
5905
6089
|
};
|
|
6090
|
+
/** What became of the handover. */
|
|
6091
|
+
export type ExploreEscalation = {
|
|
6092
|
+
__typename?: 'ExploreEscalation';
|
|
6093
|
+
createdAt: Scalars['DateTime']['output'];
|
|
6094
|
+
/** The address a human will reply to, as stored. Echoed back so the UI shows the server's view rather than what was typed — and, on a repeat submit, the address the FIRST handover used, which is where the answer is actually going. */
|
|
6095
|
+
email: Scalars['String']['output'];
|
|
6096
|
+
};
|
|
6097
|
+
/** What one visitor thought of one answer. The signal `/explore` did not have. Every question got an answer, so "we answer 100% of questions" was true and told us nothing; this is the only record that a specific answer was wrong, thin or off-topic. At most one per message — a visitor may change their mind, and the new verdict replaces the old one. */
|
|
6098
|
+
export type ExploreFeedback = {
|
|
6099
|
+
__typename?: 'ExploreFeedback';
|
|
6100
|
+
comment?: Maybe<Scalars['String']['output']>;
|
|
6101
|
+
createdAt: Scalars['DateTime']['output'];
|
|
6102
|
+
rating: ExploreFeedbackRating;
|
|
6103
|
+
/** One of INACCURATE INCOMPLETE OFF_TOPIC HARD_TO_FOLLOW OTHER. Null for HELPFUL. */
|
|
6104
|
+
reason?: Maybe<Scalars['String']['output']>;
|
|
6105
|
+
};
|
|
6106
|
+
export declare enum ExploreFeedbackRating {
|
|
6107
|
+
Helpful = "HELPFUL",
|
|
6108
|
+
NotHelpful = "NOT_HELPFUL"
|
|
6109
|
+
}
|
|
5906
6110
|
/** Server-enforced limits, surfaced so the UI can pre-validate instead of discovering them through an error. */
|
|
5907
6111
|
export type ExploreLimits = {
|
|
5908
6112
|
__typename?: 'ExploreLimits';
|
|
@@ -5927,6 +6131,8 @@ export type ExploreMessage = {
|
|
|
5927
6131
|
createdAt: Scalars['DateTime']['output'];
|
|
5928
6132
|
ctas: Array<ExploreCta>;
|
|
5929
6133
|
errorCode?: Maybe<Scalars['String']['output']>;
|
|
6134
|
+
/** What this visitor said about this answer, or null if they said nothing — which is the ordinary case. Never populated for a USER message or for an answer that has not completed: neither is a thing anyone can rate. */
|
|
6135
|
+
feedback?: Maybe<ExploreFeedback>;
|
|
5930
6136
|
/** Suggested next questions, derived from what this answer actually covered. Empty until the turn completes, and empty when nothing useful can be derived. */
|
|
5931
6137
|
followUps: Array<Scalars['String']['output']>;
|
|
5932
6138
|
id: Scalars['ID']['output'];
|
|
@@ -6132,6 +6338,12 @@ export type ExternalOidcConfigurationInput = {
|
|
|
6132
6338
|
redirectUri?: InputMaybe<Scalars['String']['input']>;
|
|
6133
6339
|
scopes?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
6134
6340
|
};
|
|
6341
|
+
export type ExternalRefundResult = {
|
|
6342
|
+
__typename?: 'ExternalRefundResult';
|
|
6343
|
+
alreadyRecorded: Scalars['Boolean']['output'];
|
|
6344
|
+
chargeId: Scalars['ID']['output'];
|
|
6345
|
+
refundId: Scalars['ID']['output'];
|
|
6346
|
+
};
|
|
6135
6347
|
export type ExternalSettlementResult = {
|
|
6136
6348
|
__typename?: 'ExternalSettlementResult';
|
|
6137
6349
|
/** True when the externalRef already had a settlement (idempotent replay). */
|
|
@@ -6384,6 +6596,10 @@ export type GetStoreProductTagsInput = {
|
|
|
6384
6596
|
export type GrantAppDelegationInternalInput = {
|
|
6385
6597
|
/** Client ID of the first-party system app (e.g. burdenoff_integration_core). */
|
|
6386
6598
|
clientId: Scalars['String']['input'];
|
|
6599
|
+
/** Scopes the delegation must keep for other grants that share it (e.g. the user's other integration connections). A retained scope is kept only while the existing delegation is ACTIVE and already holds it, and only while the app still allows it; otherwise it is dropped, never rejected. A grant therefore never restores or adds a scope beyond the requested scopes. */
|
|
6600
|
+
retainedScopes?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
6601
|
+
/** Workspaces the delegation must keep for other grants that share it. Kept only while the existing delegation is ACTIVE and already covers them: restoring a REVOKED or EXPIRED delegation covers only workspaceIds. Ignored when workspaceIds is empty (unrestricted). */
|
|
6602
|
+
retainedWorkspaceIds?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
6387
6603
|
/** Scopes to grant — must be a subset of the app's scopes. */
|
|
6388
6604
|
scopes: Array<Scalars['String']['input']>;
|
|
6389
6605
|
/** The user granting (and target of) the self-delegation. */
|
|
@@ -6393,6 +6609,8 @@ export type GrantAppDelegationInternalInput = {
|
|
|
6393
6609
|
};
|
|
6394
6610
|
export type GrantAppWorkspaceAccessInput = {
|
|
6395
6611
|
appId: Scalars['ID']['input'];
|
|
6612
|
+
/** Restore a REVOKED authorization only if its revokedReason is exactly this value (one conditional write); otherwise behave as create-only. Lets an automated provisioner undo its own withdrawal but never an operator's revocation. Takes precedence over reactivateRevoked. */
|
|
6613
|
+
reactivateIfRevokedReason?: InputMaybe<Scalars['String']['input']>;
|
|
6396
6614
|
/** 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. */
|
|
6397
6615
|
reactivateRevoked?: InputMaybe<Scalars['Boolean']['input']>;
|
|
6398
6616
|
/** Optional subset of the app's global scopes. Empty array means the authorization inherits the app's full scope list. */
|
|
@@ -6718,6 +6936,8 @@ export type InitiatePaymentInput = {
|
|
|
6718
6936
|
quantity?: InputMaybe<Scalars['Int']['input']>;
|
|
6719
6937
|
/** Whether to save the card for future purchases (only for new card payments) */
|
|
6720
6938
|
saveCard?: InputMaybe<Scalars['Boolean']['input']>;
|
|
6939
|
+
/** For PLAN purchase of a PER_SEAT plan: the number of seats to charge for. Clamped server-side to [plan.minSeats, plan.maxSeats]; defaults to plan.minSeats (or 1) when omitted. Ignored for FLAT_RATE plans. */
|
|
6940
|
+
seatCount?: InputMaybe<Scalars['Int']['input']>;
|
|
6721
6941
|
/** 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. */
|
|
6722
6942
|
subscriptionId?: InputMaybe<Scalars['ID']['input']>;
|
|
6723
6943
|
/** For PLAN upgrade: the subscription ID being upgraded from. If provided, this is an upgrade - old quotas will be moved to new subscription. */
|
|
@@ -7114,6 +7334,8 @@ export type IssueAppAsUserTokenInternalInput = {
|
|
|
7114
7334
|
scopes?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
7115
7335
|
/** The user the app will act on behalf of (must have an active delegation). */
|
|
7116
7336
|
targetUserId: Scalars['String']['input'];
|
|
7337
|
+
/** Bind the token to this one workspace instead of every workspace the delegation covers. The delegation must cover it. Callers minting for a single workspace (an integration connection) should always pass it. */
|
|
7338
|
+
workspaceId?: InputMaybe<Scalars['String']['input']>;
|
|
7117
7339
|
};
|
|
7118
7340
|
export type ItemOrder = {
|
|
7119
7341
|
__typename?: 'ItemOrder';
|
|
@@ -7923,6 +8145,8 @@ export type Mutation = {
|
|
|
7923
8145
|
/** Accept an organization invite (must be logged in as the invited user) */
|
|
7924
8146
|
acceptOrganizationInvite: OrganizationMember;
|
|
7925
8147
|
acceptSourcingOffer: SourcingOrderSummary;
|
|
8148
|
+
/** Signed (DESIGN 3.7). The provider is ready: RESERVED to ACTIVE. */
|
|
8149
|
+
activateAvatarMinutes: AvatarMinutesReservation;
|
|
7926
8150
|
/** Activate a channel */
|
|
7927
8151
|
activateChannel: Channel;
|
|
7928
8152
|
/** Activate a connection */
|
|
@@ -8099,6 +8323,8 @@ export type Mutation = {
|
|
|
8099
8323
|
/** Clear all items from the cart */
|
|
8100
8324
|
clearCart: CartPayload;
|
|
8101
8325
|
cloneSchedule: ScheduledJob;
|
|
8326
|
+
/** Signed (DESIGN 3.7). The avatar's end decision: SETTLED with the charge, or RELEASED. */
|
|
8327
|
+
closeAvatarMinutes: AvatarMinutesReservation;
|
|
8102
8328
|
closeSupportTicket: SupportTicket;
|
|
8103
8329
|
/** 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. */
|
|
8104
8330
|
completeAppOAuth: AppInstallation;
|
|
@@ -8109,6 +8335,8 @@ export type Mutation = {
|
|
|
8109
8335
|
completeSupportAttachmentUpload: SupportAttachmentFile;
|
|
8110
8336
|
/** Mark a tour as completed for a user */
|
|
8111
8337
|
completeTour: TourUserProgress;
|
|
8338
|
+
configureAssistantAccountBudget: AssistantAccountBudget;
|
|
8339
|
+
configureAssistantModelPrice: AiModelPrice;
|
|
8112
8340
|
configureEntitlementSeats: ProductEntitlement;
|
|
8113
8341
|
/** Configure Kerberos authentication for a tenant */
|
|
8114
8342
|
configureKerberos: KerberosConfig;
|
|
@@ -8309,6 +8537,8 @@ export type Mutation = {
|
|
|
8309
8537
|
deactivateResource: Scalars['Boolean']['output'];
|
|
8310
8538
|
/** Deactivate a tour schedule */
|
|
8311
8539
|
deactivateTourSchedule: TourSchedule;
|
|
8540
|
+
/** Stops a subject from firing webhooks. The row is kept so a later registration reactivates it. Same ownership rule as registration. */
|
|
8541
|
+
deactivateWebhookEventSubject: WebhookEventSubject;
|
|
8312
8542
|
/** 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. */
|
|
8313
8543
|
decrementQuota: Scalars['Boolean']['output'];
|
|
8314
8544
|
/** Delete current user's account permanently Requires password confirmation */
|
|
@@ -8463,6 +8693,7 @@ export type Mutation = {
|
|
|
8463
8693
|
/** Detach media from a tour step */
|
|
8464
8694
|
detachMediaFromStep: Scalars['Boolean']['output'];
|
|
8465
8695
|
disableAuthMethod: Scalars['Boolean']['output'];
|
|
8696
|
+
/** Disable every MFA method of the caller. When `code` is given (a current TOTP code, or one of the caller's unused backup codes) it must verify against an enabled method before anything is disabled. */
|
|
8466
8697
|
disableMFA: Scalars['Boolean']['output'];
|
|
8467
8698
|
disableMaintenanceMode: MaintenanceModeStatus;
|
|
8468
8699
|
disableSchedule: ScheduledJob;
|
|
@@ -8478,13 +8709,16 @@ export type Mutation = {
|
|
|
8478
8709
|
enableMFA: Scalars['Boolean']['output'];
|
|
8479
8710
|
enableMaintenanceMode: MaintenanceModeStatus;
|
|
8480
8711
|
enrollSubscriberInAutomation: AutomationSubscriber;
|
|
8481
|
-
/** 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. */
|
|
8712
|
+
/** Idempotently ensure a user is an organization member, primarily for the workspace-invite-accept flow where an invitee gains a workspace inside an org they're not yet a member of. Unlike `addOrganizationMember`: * Returns `OrganizationMember` whether the row was inserted or already existed — no CONFLICT on repeat calls (case 1: already a member). * Does NOT overwrite the existing `role` column on a pre-existing row (case 2: don't demote). * Triggers a real-role assignment in global-rbac-svc at scope = orgId only when the actor has NO existing role assignment at that scope (case 3: real role comes from RBAC, not the data-layer string). The `role` arg defaults to `GUEST` — the most restrictive enum value — because invitees arriving via a workspace invite should not gain first-class org membership. The data-layer string column is a coarse classifier; the authoritative permission decision is evaluated by global-rbac-svc against `actor_role_assignments`. See BOFF-2649 + the RBAC guide at `dev/platform/context/identity/rbac/RBAC_GUIDE_FOR_AI_TOOLS.md`. Called from wspace-workspace-svc::acceptInvitation via service-context (`X-Actor-Type: service`), which bypasses the workspace-admin check inside the resolver. Best-effort from the caller's side — failures must NOT block the upstream invite acceptance. */
|
|
8482
8713
|
ensureOrganizationMember: EnsureOrganizationMemberResult;
|
|
8483
8714
|
/** 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. */
|
|
8484
8715
|
ensureStoreOrderBillingOrder: EnsureStoreOrderBillingOrderResponse;
|
|
8485
8716
|
/** 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. */
|
|
8486
8717
|
eraseSubject: EraseResult;
|
|
8718
|
+
/** Hand this conversation to a person, with its transcript attached. The agent answers only from a baked corpus, so the questions it cannot answer are exactly the ones worth a person's time. This turns the dead end into a handover: it files the conversation as a contact inquiry — the same record the website contact form writes, in the same console, with the same emails — so nobody has to ask the visitor to type their problem out a second time. Requires the conversation token and nothing else. A token that does not own a conversation is reported as NOT_FOUND, never FORBIDDEN, exactly as every other token-scoped call reports it: FORBIDDEN would confirm the conversation exists. Unlike `submitExploreFeedback` this is NOT fire-and-forget — it throws rather than reporting a handover that did not happen, because the visitor is about to be told that someone will get back to them. Rate-limited on the same per-IP budget as sending a message and gated by the same reCAPTCHA, because it is the same anonymous visitor making another public write. Idempotent: one handover per conversation, so a double-clicked button returns the first one rather than putting a second ticket in front of support. */
|
|
8719
|
+
escalateExploreConversation: EscalateExploreConversationResult;
|
|
8487
8720
|
escalateSupportTicket: SupportTicket;
|
|
8721
|
+
exchangeOwnDelegation: AppAsUserTokenResponse;
|
|
8488
8722
|
/** Exchange app token for app-as-user token (Token Exchange flow) */
|
|
8489
8723
|
exchangeToken: AppAsUserTokenResponse;
|
|
8490
8724
|
executeJobNow: JobExecution;
|
|
@@ -8566,7 +8800,7 @@ export type Mutation = {
|
|
|
8566
8800
|
initiateNTLMChallenge: NtlmChallengeResult;
|
|
8567
8801
|
/** 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 */
|
|
8568
8802
|
initiatePayment: InitiatePaymentResponse;
|
|
8569
|
-
/** Install an application */
|
|
8803
|
+
/** Install an application. For a workspace-private custom node, installing a newer version published to the organization over an active installation updates it (BOFF-9766); the previous version stays installed in the workspace so workflows pinned to it keep running, and uninstall removes every version. */
|
|
8570
8804
|
installApp: AppInstallation;
|
|
8571
8805
|
/** 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). */
|
|
8572
8806
|
installPurchasedApp: InstallPurchasedAppResult;
|
|
@@ -8613,6 +8847,8 @@ export type Mutation = {
|
|
|
8613
8847
|
newsletterEraseSubject: NewsletterEraseResult;
|
|
8614
8848
|
/** Export the subject's newsletter data: subscriber rows, per-list memberships, consent ledger entries, automation enrolments, waitlist entries. */
|
|
8615
8849
|
newsletterExportSubject: Scalars['JSON']['output'];
|
|
8850
|
+
/** Signed (P-27). The settle owner's provider-status note for the fault list; writes no credits. */
|
|
8851
|
+
noteAvatarSessionProviderStatus: Scalars['Boolean']['output'];
|
|
8616
8852
|
/** 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. */
|
|
8617
8853
|
notifyDuplicateApplicants: DuplicateNoticeResult;
|
|
8618
8854
|
openCircuitBreaker: CircuitBreakerState;
|
|
@@ -8624,6 +8860,8 @@ export type Mutation = {
|
|
|
8624
8860
|
payInvoice: Invoice;
|
|
8625
8861
|
permanentlyDeleteSchedule: Scalars['Boolean']['output'];
|
|
8626
8862
|
placeLegalHold: LegalHold;
|
|
8863
|
+
/** Internal-only: polls "Deploy Devportal Node" GitHub Actions run history and records the result in NodeSandboxBuildCheck — see services/nodeSandboxBuildPoll.ts. Invoked on a schedule by global-scheduler-svc's INTERNAL_API executor; also callable from the admin build-log UI for an on-demand refresh. Returns `skipped: true` (not an error) when NODE_SANDBOX_DISPATCH_TOKEN is unset OR the GitHub call itself fails (e.g. the token lacks Actions:read) — callers must check `skipped` rather than assume a non-error response means it actually polled. */
|
|
8864
|
+
pollNodeSandboxBuildChecks: NodeSandboxBuildPollResult;
|
|
8627
8865
|
prepareSupportAttachmentUpload: SupportAttachmentUploadSession;
|
|
8628
8866
|
/** 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. */
|
|
8629
8867
|
processAppSaleRefund: DeveloperOrgSale;
|
|
@@ -8643,6 +8881,8 @@ export type Mutation = {
|
|
|
8643
8881
|
publishApplication: Application;
|
|
8644
8882
|
/** Developer action: submit a draft (or rejected) version for platform review. Status becomes pending_review. The store is NOT updated until an admin approves. */
|
|
8645
8883
|
publishApplicationVersion: ApplicationVersion;
|
|
8884
|
+
/** Developer-organization admin action (BOFF-9657): publish a draft (or rejected) version of a PRIVATE NODE application straight to the workspaces of your organization, without platform review. The version must carry a package whose validation passed, a READY sandbox image and no failed or running operation smoke test. `workspaceId` is a workspace you administer; its organization becomes the node's owning organization on the first publish, and every later publish must come from that organization. The version is never listed in the public Node Store; it is installable only into workspaces of the owning organization. Authorization is enforced in the resolver: the caller must be an OWNER or ADMIN of the application's developer organization (or own a personal application) and an admin of `workspaceId`. The gateway's organization scope cannot evaluate this today because user sessions carry no verified organization claim, so the directive declares the permission and authenticates the caller. */
|
|
8885
|
+
publishApplicationVersionToOrganization: ApplicationVersion;
|
|
8646
8886
|
/** 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. */
|
|
8647
8887
|
publishCatalogNodeVersion: Scalars['JSON']['output'];
|
|
8648
8888
|
publishFAQ: Faq;
|
|
@@ -8682,6 +8922,8 @@ export type Mutation = {
|
|
|
8682
8922
|
recordEarningEntry: EarningsEntry;
|
|
8683
8923
|
/** 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. */
|
|
8684
8924
|
recordExploreClick: RecordExploreClickResult;
|
|
8925
|
+
/** Record a completed external refund without invoking a payment provider. */
|
|
8926
|
+
recordExternalRefund: ExternalRefundResult;
|
|
8685
8927
|
/** 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. */
|
|
8686
8928
|
recordExternalSettlement: ExternalSettlementResult;
|
|
8687
8929
|
recordFAQView: Faq;
|
|
@@ -8714,6 +8956,8 @@ export type Mutation = {
|
|
|
8714
8956
|
/** Register a resource with custom RBAC configurations. */
|
|
8715
8957
|
registerResource: Resource;
|
|
8716
8958
|
registerSupportAttachmentPart: Scalars['Boolean']['output'];
|
|
8959
|
+
/** Creates or updates subject mappings for a product. Idempotent: a product's service can call it on every deploy. An existing mapping can only be changed by the actor that registered it, or by a super admin. */
|
|
8960
|
+
registerWebhookEventSubjects: Array<WebhookEventSubject>;
|
|
8717
8961
|
reinstatePublisher: Publisher;
|
|
8718
8962
|
rejectApplication: Application;
|
|
8719
8963
|
/** Platform admin only: reject a pending_review version with a reason. The developer can fix their submission and re-submit. */
|
|
@@ -8794,6 +9038,8 @@ export type Mutation = {
|
|
|
8794
9038
|
replaceChannelTags: Array<ChannelTagAssignment>;
|
|
8795
9039
|
/** Replace all tags on a store product */
|
|
8796
9040
|
replaceStoreProductTags: Array<StoreProductTagAssignment>;
|
|
9041
|
+
/** Replay one dead-lettered provider webhook through the durable worker. */
|
|
9042
|
+
replayBillingWebhook?: Maybe<BillingWebhookLog>;
|
|
8797
9043
|
/** 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. */
|
|
8798
9044
|
replyToContactInquiry: ContactInquiryReplyResult;
|
|
8799
9045
|
/** 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. */
|
|
@@ -8831,6 +9077,9 @@ export type Mutation = {
|
|
|
8831
9077
|
resendOrganizationInvite: OrganizationInvite;
|
|
8832
9078
|
resendSurvey: CustomerSatisfactionSurvey;
|
|
8833
9079
|
resendVerificationEmail: ResendVerificationResult;
|
|
9080
|
+
reserveAssistantAccountBudget: AssistantBudgetReceipt;
|
|
9081
|
+
/** Signed (DESIGN 3.7). Reserves credits for a session (ENFORCE) or records its shadow (OBSERVE). */
|
|
9082
|
+
reserveAvatarMinutes: AvatarMinutesReservation;
|
|
8834
9083
|
resetCircuitBreaker: CircuitBreakerState;
|
|
8835
9084
|
/** Reset password using token from email */
|
|
8836
9085
|
resetPassword: Scalars['Boolean']['output'];
|
|
@@ -8852,6 +9101,8 @@ export type Mutation = {
|
|
|
8852
9101
|
restoreChannel: Channel;
|
|
8853
9102
|
restoreScheduleVersion: ScheduledJob;
|
|
8854
9103
|
restoreTemplateVersion: NewsletterTemplate;
|
|
9104
|
+
/** Service-trusted internal REDUCTION of a first-party self-delegation, keyed by the app's client id and the user: used when one of several integration connections that share it is deleted or revoked. It never creates, re-enables or widens a delegation: it returns null when there is none (never granted, or erased), a REVOKED or EXPIRED one unchanged, and otherwise the delegation cut down to the requested scopes and workspaces it already held (REVOKED if none are left). Not blocked by a deactivated app: withdrawing access is always permitted. Gated to internal service / super_admin callers and restricted to first-party system apps. */
|
|
9105
|
+
restrictAppDelegationInternal?: Maybe<AppUserDelegation>;
|
|
8855
9106
|
/** 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. */
|
|
8856
9107
|
resubscribe: NewsletterSubscriber;
|
|
8857
9108
|
/** Resume a paused subscription */
|
|
@@ -8869,6 +9120,8 @@ export type Mutation = {
|
|
|
8869
9120
|
/** 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). */
|
|
8870
9121
|
retryInvoiceGeneration: Invoice;
|
|
8871
9122
|
retryJobExecution: JobExecution;
|
|
9123
|
+
/** Platform admin only: re-dispatch the sandbox image build for a NODE version whose build never completed (stuck PENDING) or failed (FAILED / DISPATCH_FAILED / UNSUPPORTED). Calls the exact same dispatch path a fresh publish uses — it does not create a new version or touch review status, it only re-attempts the build for the existing one. */
|
|
9124
|
+
retryNodeSandboxBuild: Scalars['Boolean']['output'];
|
|
8872
9125
|
/** Retry a failed payout */
|
|
8873
9126
|
retryPayout: DeveloperOrgPayout;
|
|
8874
9127
|
/** Retry a failed refund */
|
|
@@ -8881,7 +9134,9 @@ export type Mutation = {
|
|
|
8881
9134
|
revokeAPIKey: Scalars['Boolean']['output'];
|
|
8882
9135
|
/** Revoke all sessions except the current one. Returns the number of sessions that were revoked. */
|
|
8883
9136
|
revokeAllSessions: RevokeAllSessionsResult;
|
|
8884
|
-
/**
|
|
9137
|
+
/** Service-trusted internal revoke of a first-party self-delegation, keyed by the app's client id and the user — the counterpart of grantAppDelegationInternal, used when the last integration connection that needed it is deleted or revoked. Idempotent: returns true when an ACTIVE delegation was revoked and false when there was none (never granted, already revoked or expired). Gated to internal service / super_admin callers and restricted to first-party system apps. */
|
|
9138
|
+
revokeAppDelegationInternal: Scalars['Boolean']['output'];
|
|
9139
|
+
/** Revoke an app's access to a workspace. Returns false if the row was already REVOKED or never existed. An owner or super_admin revoking an already-REVOKED row replaces the revocation on record (reason, actor, time). */
|
|
8885
9140
|
revokeAppWorkspaceAccess: Scalars['Boolean']['output'];
|
|
8886
9141
|
revokeConsent: NewsletterConsent;
|
|
8887
9142
|
revokeDelegation: Scalars['Boolean']['output'];
|
|
@@ -8907,7 +9162,7 @@ export type Mutation = {
|
|
|
8907
9162
|
rotateConnectionCredentials: ChannelConnection;
|
|
8908
9163
|
/** Run health check on a channel */
|
|
8909
9164
|
runChannelHealthCheck: ChannelHealthCheck;
|
|
8910
|
-
/** 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. */
|
|
9165
|
+
/** 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. `subjectEmail` is optional and additive: it lets the fan-out also reach records that are keyed by email only (e.g. a guest contact-inquiry or a newsletter signup with no account), such as `ContactInquiry`, `NewsletterWaitlist`, and `NewsletterSuppression`. Omit it for a subject who only has account-linked records. */
|
|
8911
9166
|
runDsarRequestForSubject: DsarOrchestrationResult;
|
|
8912
9167
|
runMonthlyPayouts: PayoutRunLog;
|
|
8913
9168
|
/** 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. */
|
|
@@ -8921,6 +9176,8 @@ export type Mutation = {
|
|
|
8921
9176
|
scheduleNotification: ScheduledNotification;
|
|
8922
9177
|
/** Overwrite the built-in AthleteBridge user-facing tours from the service-owned seed file. */
|
|
8923
9178
|
seedAtheleteBridgeUserTours: SeedAtheleteBridgeUserToursResult;
|
|
9179
|
+
/** Overwrite the service-owned BigConsole onboarding tours. Repeated calls update the same slugs. */
|
|
9180
|
+
seedBigconsoleUserTours: SeedBigconsoleUserToursResult;
|
|
8924
9181
|
/** Overwrite the built-in Buildmyiq user-facing dashboard tour from the service-owned seed file. */
|
|
8925
9182
|
seedBuildmyiqUserTours: SeedBuildmyiqUserToursResult;
|
|
8926
9183
|
/** Overwrite the built-in CollabKin user-facing dashboard tour from the service-owned seed file. */
|
|
@@ -8963,6 +9220,8 @@ export type Mutation = {
|
|
|
8963
9220
|
serviceResolvePayoutAccount: PayoutAccount;
|
|
8964
9221
|
/** 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. */
|
|
8965
9222
|
serviceSyncPayoutStatus?: Maybe<DeveloperOrgPayout>;
|
|
9223
|
+
/** M2M: create or update the calling service's catalogue listing for an item that service sells through its own checkout (BOFF-3430), for cross-product discovery. Idempotent on (calling service identity, input.externalId): call it on every change of the source item. The owning service is always the verified service identity of the caller, never an input field. Set status ARCHIVED to take the listing down. A listing an admin has delisted or rejected stays off display until an admin restores it. Service-actor only. */
|
|
9224
|
+
serviceUpsertExternalListing: StoreProduct;
|
|
8966
9225
|
setAgentAway: AgentProfile;
|
|
8967
9226
|
setAgentOffline: AgentProfile;
|
|
8968
9227
|
setAgentOnline: AgentProfile;
|
|
@@ -8992,6 +9251,7 @@ export type Mutation = {
|
|
|
8992
9251
|
setUserLanguagePreference: UserLanguagePreference;
|
|
8993
9252
|
/** Set workspace-level override for a feature flag (super admin or workspace admin). RBAC is scoped to the target workspace via `input.workspaceId`. */
|
|
8994
9253
|
setWorkspaceFeatureFlagOverride: WorkspaceFeatureFlagOverride;
|
|
9254
|
+
settleAssistantAccountBudget: AssistantBudgetReceipt;
|
|
8995
9255
|
setupMFA: MfaSetupResult;
|
|
8996
9256
|
/** 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. */
|
|
8997
9257
|
shareWorkflow: Application;
|
|
@@ -9019,6 +9279,8 @@ export type Mutation = {
|
|
|
9019
9279
|
submitAssignmentResponse: SubmitAssignmentResponsePayload;
|
|
9020
9280
|
/** 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. */
|
|
9021
9281
|
submitContactInquiry: SubmitContactInquiryResult;
|
|
9282
|
+
/** Rate one answer. Same fire-and-forget posture as `recordExploreClick`: a rating that cannot be attributed — an unfinished answer, a USER turn, a token that does not own the message — comes back `recorded: false` rather than as an error, and never as FORBIDDEN, which would confirm that a message id exists. Submitting again REPLACES the previous rating for that message, so changing your mind is an ordinary action rather than a duplicate or a failure. */
|
|
9283
|
+
submitExploreFeedback: SubmitExploreFeedbackResult;
|
|
9022
9284
|
/** Submit feedback for an interview round (admin). */
|
|
9023
9285
|
submitInterviewFeedback: InterviewFeedback;
|
|
9024
9286
|
/** 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. */
|
|
@@ -9049,6 +9311,8 @@ export type Mutation = {
|
|
|
9049
9311
|
syncStoreSubmissionStatus: Scalars['Boolean']['output'];
|
|
9050
9312
|
/** Sync tour steps (smart update in ONE call) Send all desired steps, backend handles: update existing, create new, delete removed */
|
|
9051
9313
|
syncTourSteps: Array<TourStep>;
|
|
9314
|
+
/** Mirror a workspace deletion from the workspace layer to the global layer. Called by wspace-workspace-svc after its deleteWorkspace soft-deletes the workspace, so the global registry (myWorkspaces, the context switcher, routing) stops listing it as ACTIVE. Marks the global row DELETED and keeps it for audit. Idempotent: an unknown or already-deleted workspace succeeds without changes. */
|
|
9315
|
+
syncWorkspaceDeletionFromWspace: SyncWorkspaceFromWspaceResponse;
|
|
9052
9316
|
/** 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. */
|
|
9053
9317
|
syncWorkspaceFromWspace: SyncWorkspaceFromWspaceResponse;
|
|
9054
9318
|
tagChannel: ChannelTagAssignment;
|
|
@@ -9303,7 +9567,6 @@ export type Mutation = {
|
|
|
9303
9567
|
/** 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. */
|
|
9304
9568
|
upsertUserShippingAddress: ShippingAddress;
|
|
9305
9569
|
useCannedResponse: CannedResponse;
|
|
9306
|
-
validateApiKey: TokenValidationResponse;
|
|
9307
9570
|
/** Validate an HMAC signature */
|
|
9308
9571
|
validateHMACSignature: HmacValidationResult;
|
|
9309
9572
|
/** Validate a signed cookie */
|
|
@@ -9344,6 +9607,13 @@ export type MutationAcceptSourcingOfferArgs = {
|
|
|
9344
9607
|
offerId: Scalars['ID']['input'];
|
|
9345
9608
|
};
|
|
9346
9609
|
/** Root mutation type */
|
|
9610
|
+
export type MutationActivateAvatarMinutesArgs = {
|
|
9611
|
+
readyAt: Scalars['String']['input'];
|
|
9612
|
+
sessionId: Scalars['ID']['input'];
|
|
9613
|
+
signature: AvatarMinutesSignature;
|
|
9614
|
+
workspaceId: Scalars['ID']['input'];
|
|
9615
|
+
};
|
|
9616
|
+
/** Root mutation type */
|
|
9347
9617
|
export type MutationActivateChannelArgs = {
|
|
9348
9618
|
id: Scalars['ID']['input'];
|
|
9349
9619
|
};
|
|
@@ -9634,10 +9904,12 @@ export type MutationAttachMediaToStepArgs = {
|
|
|
9634
9904
|
/** Root mutation type */
|
|
9635
9905
|
export type MutationAuthEraseSubjectArgs = {
|
|
9636
9906
|
dryRun?: InputMaybe<Scalars['Boolean']['input']>;
|
|
9907
|
+
subjectEmail?: InputMaybe<Scalars['String']['input']>;
|
|
9637
9908
|
subjectId: Scalars['ID']['input'];
|
|
9638
9909
|
};
|
|
9639
9910
|
/** Root mutation type */
|
|
9640
9911
|
export type MutationAuthExportSubjectArgs = {
|
|
9912
|
+
subjectEmail?: InputMaybe<Scalars['String']['input']>;
|
|
9641
9913
|
subjectId: Scalars['ID']['input'];
|
|
9642
9914
|
};
|
|
9643
9915
|
/** Root mutation type */
|
|
@@ -9855,6 +10127,11 @@ export type MutationCloneScheduleArgs = {
|
|
|
9855
10127
|
sourceId: Scalars['ID']['input'];
|
|
9856
10128
|
};
|
|
9857
10129
|
/** Root mutation type */
|
|
10130
|
+
export type MutationCloseAvatarMinutesArgs = {
|
|
10131
|
+
input: CloseAvatarMinutesInput;
|
|
10132
|
+
signature: AvatarMinutesSignature;
|
|
10133
|
+
};
|
|
10134
|
+
/** Root mutation type */
|
|
9858
10135
|
export type MutationCloseSupportTicketArgs = {
|
|
9859
10136
|
id: Scalars['ID']['input'];
|
|
9860
10137
|
};
|
|
@@ -9888,6 +10165,19 @@ export type MutationCompleteTourArgs = {
|
|
|
9888
10165
|
userId: Scalars['ID']['input'];
|
|
9889
10166
|
};
|
|
9890
10167
|
/** Root mutation type */
|
|
10168
|
+
export type MutationConfigureAssistantAccountBudgetArgs = {
|
|
10169
|
+
billingAccountId: Scalars['ID']['input'];
|
|
10170
|
+
dailyMicroUsd: Scalars['Int']['input'];
|
|
10171
|
+
dailyTokens: Scalars['Int']['input'];
|
|
10172
|
+
enabled: Scalars['Boolean']['input'];
|
|
10173
|
+
};
|
|
10174
|
+
/** Root mutation type */
|
|
10175
|
+
export type MutationConfigureAssistantModelPriceArgs = {
|
|
10176
|
+
inputPer1M: Scalars['String']['input'];
|
|
10177
|
+
model: Scalars['String']['input'];
|
|
10178
|
+
outputPer1M: Scalars['String']['input'];
|
|
10179
|
+
};
|
|
10180
|
+
/** Root mutation type */
|
|
9891
10181
|
export type MutationConfigureEntitlementSeatsArgs = {
|
|
9892
10182
|
entitlementId: Scalars['ID']['input'];
|
|
9893
10183
|
maxSeats: Scalars['Int']['input'];
|
|
@@ -10450,6 +10740,10 @@ export type MutationDeactivateTourScheduleArgs = {
|
|
|
10450
10740
|
id: Scalars['ID']['input'];
|
|
10451
10741
|
};
|
|
10452
10742
|
/** Root mutation type */
|
|
10743
|
+
export type MutationDeactivateWebhookEventSubjectArgs = {
|
|
10744
|
+
subject: Scalars['String']['input'];
|
|
10745
|
+
};
|
|
10746
|
+
/** Root mutation type */
|
|
10453
10747
|
export type MutationDecrementQuotaArgs = {
|
|
10454
10748
|
amount: Scalars['Int']['input'];
|
|
10455
10749
|
billingAccountId: Scalars['ID']['input'];
|
|
@@ -10848,6 +11142,10 @@ export type MutationDisableAuthMethodArgs = {
|
|
|
10848
11142
|
authType: AuthType;
|
|
10849
11143
|
};
|
|
10850
11144
|
/** Root mutation type */
|
|
11145
|
+
export type MutationDisableMfaArgs = {
|
|
11146
|
+
code?: InputMaybe<Scalars['String']['input']>;
|
|
11147
|
+
};
|
|
11148
|
+
/** Root mutation type */
|
|
10851
11149
|
export type MutationDisableScheduleArgs = {
|
|
10852
11150
|
id: Scalars['ID']['input'];
|
|
10853
11151
|
reason?: InputMaybe<Scalars['String']['input']>;
|
|
@@ -10910,15 +11208,24 @@ export type MutationEnsureStoreOrderBillingOrderArgs = {
|
|
|
10910
11208
|
/** Root mutation type */
|
|
10911
11209
|
export type MutationEraseSubjectArgs = {
|
|
10912
11210
|
dryRun?: InputMaybe<Scalars['Boolean']['input']>;
|
|
11211
|
+
subjectEmail?: InputMaybe<Scalars['String']['input']>;
|
|
10913
11212
|
subjectId: Scalars['ID']['input'];
|
|
10914
11213
|
};
|
|
10915
11214
|
/** Root mutation type */
|
|
11215
|
+
export type MutationEscalateExploreConversationArgs = {
|
|
11216
|
+
input: EscalateExploreConversationInput;
|
|
11217
|
+
};
|
|
11218
|
+
/** Root mutation type */
|
|
10916
11219
|
export type MutationEscalateSupportTicketArgs = {
|
|
10917
11220
|
escalateTo?: InputMaybe<Scalars['String']['input']>;
|
|
10918
11221
|
id: Scalars['ID']['input'];
|
|
10919
11222
|
reason: Scalars['String']['input'];
|
|
10920
11223
|
};
|
|
10921
11224
|
/** Root mutation type */
|
|
11225
|
+
export type MutationExchangeOwnDelegationArgs = {
|
|
11226
|
+
input: ExchangeOwnDelegationInput;
|
|
11227
|
+
};
|
|
11228
|
+
/** Root mutation type */
|
|
10922
11229
|
export type MutationExchangeTokenArgs = {
|
|
10923
11230
|
input: ExchangeTokenInput;
|
|
10924
11231
|
};
|
|
@@ -10967,6 +11274,7 @@ export type MutationExportRevenueArgs = {
|
|
|
10967
11274
|
};
|
|
10968
11275
|
/** Root mutation type */
|
|
10969
11276
|
export type MutationExportSubjectArgs = {
|
|
11277
|
+
subjectEmail?: InputMaybe<Scalars['String']['input']>;
|
|
10970
11278
|
subjectId: Scalars['ID']['input'];
|
|
10971
11279
|
};
|
|
10972
11280
|
/** Root mutation type */
|
|
@@ -11254,6 +11562,12 @@ export type MutationNewsletterExportSubjectArgs = {
|
|
|
11254
11562
|
subjectId: Scalars['ID']['input'];
|
|
11255
11563
|
};
|
|
11256
11564
|
/** Root mutation type */
|
|
11565
|
+
export type MutationNoteAvatarSessionProviderStatusArgs = {
|
|
11566
|
+
sessionId: Scalars['ID']['input'];
|
|
11567
|
+
signature: AvatarMinutesSignature;
|
|
11568
|
+
status: AvatarProviderSessionStatus;
|
|
11569
|
+
};
|
|
11570
|
+
/** Root mutation type */
|
|
11257
11571
|
export type MutationNotifyDuplicateApplicantsArgs = {
|
|
11258
11572
|
input: NotifyDuplicateApplicantsInput;
|
|
11259
11573
|
};
|
|
@@ -11338,6 +11652,11 @@ export type MutationPublishApplicationVersionArgs = {
|
|
|
11338
11652
|
id: Scalars['ID']['input'];
|
|
11339
11653
|
};
|
|
11340
11654
|
/** Root mutation type */
|
|
11655
|
+
export type MutationPublishApplicationVersionToOrganizationArgs = {
|
|
11656
|
+
id: Scalars['ID']['input'];
|
|
11657
|
+
workspaceId: Scalars['ID']['input'];
|
|
11658
|
+
};
|
|
11659
|
+
/** Root mutation type */
|
|
11341
11660
|
export type MutationPublishCatalogNodeVersionArgs = {
|
|
11342
11661
|
isFirstPublish?: InputMaybe<Scalars['Boolean']['input']>;
|
|
11343
11662
|
nodeType: Scalars['String']['input'];
|
|
@@ -11469,6 +11788,10 @@ export type MutationRecordExploreClickArgs = {
|
|
|
11469
11788
|
input: RecordExploreClickInput;
|
|
11470
11789
|
};
|
|
11471
11790
|
/** Root mutation type */
|
|
11791
|
+
export type MutationRecordExternalRefundArgs = {
|
|
11792
|
+
input: RecordExternalRefundInput;
|
|
11793
|
+
};
|
|
11794
|
+
/** Root mutation type */
|
|
11472
11795
|
export type MutationRecordExternalSettlementArgs = {
|
|
11473
11796
|
input: RecordExternalSettlementInput;
|
|
11474
11797
|
};
|
|
@@ -11556,6 +11879,10 @@ export type MutationRegisterSupportAttachmentPartArgs = {
|
|
|
11556
11879
|
input: RegisterSupportAttachmentPartInput;
|
|
11557
11880
|
};
|
|
11558
11881
|
/** Root mutation type */
|
|
11882
|
+
export type MutationRegisterWebhookEventSubjectsArgs = {
|
|
11883
|
+
input: RegisterWebhookEventSubjectsInput;
|
|
11884
|
+
};
|
|
11885
|
+
/** Root mutation type */
|
|
11559
11886
|
export type MutationReinstatePublisherArgs = {
|
|
11560
11887
|
id: Scalars['ID']['input'];
|
|
11561
11888
|
};
|
|
@@ -11778,6 +12105,10 @@ export type MutationReplaceStoreProductTagsArgs = {
|
|
|
11778
12105
|
input: ReplaceStoreProductTagsInput;
|
|
11779
12106
|
};
|
|
11780
12107
|
/** Root mutation type */
|
|
12108
|
+
export type MutationReplayBillingWebhookArgs = {
|
|
12109
|
+
logId: Scalars['ID']['input'];
|
|
12110
|
+
};
|
|
12111
|
+
/** Root mutation type */
|
|
11781
12112
|
export type MutationReplyToContactInquiryArgs = {
|
|
11782
12113
|
id: Scalars['ID']['input'];
|
|
11783
12114
|
message: Scalars['String']['input'];
|
|
@@ -11877,6 +12208,15 @@ export type MutationResendVerificationEmailArgs = {
|
|
|
11877
12208
|
email: Scalars['String']['input'];
|
|
11878
12209
|
};
|
|
11879
12210
|
/** Root mutation type */
|
|
12211
|
+
export type MutationReserveAssistantAccountBudgetArgs = {
|
|
12212
|
+
input: ReserveAssistantBudgetInput;
|
|
12213
|
+
};
|
|
12214
|
+
/** Root mutation type */
|
|
12215
|
+
export type MutationReserveAvatarMinutesArgs = {
|
|
12216
|
+
input: ReserveAvatarMinutesInput;
|
|
12217
|
+
signature: AvatarMinutesSignature;
|
|
12218
|
+
};
|
|
12219
|
+
/** Root mutation type */
|
|
11880
12220
|
export type MutationResetCircuitBreakerArgs = {
|
|
11881
12221
|
scope: Scalars['String']['input'];
|
|
11882
12222
|
scopeValue: Scalars['String']['input'];
|
|
@@ -11943,6 +12283,10 @@ export type MutationRestoreTemplateVersionArgs = {
|
|
|
11943
12283
|
version: Scalars['Int']['input'];
|
|
11944
12284
|
};
|
|
11945
12285
|
/** Root mutation type */
|
|
12286
|
+
export type MutationRestrictAppDelegationInternalArgs = {
|
|
12287
|
+
input: RestrictAppDelegationInternalInput;
|
|
12288
|
+
};
|
|
12289
|
+
/** Root mutation type */
|
|
11946
12290
|
export type MutationResubscribeArgs = {
|
|
11947
12291
|
email: Scalars['String']['input'];
|
|
11948
12292
|
platformProductId?: InputMaybe<Scalars['String']['input']>;
|
|
@@ -11992,6 +12336,10 @@ export type MutationRetryJobExecutionArgs = {
|
|
|
11992
12336
|
executionId: Scalars['ID']['input'];
|
|
11993
12337
|
};
|
|
11994
12338
|
/** Root mutation type */
|
|
12339
|
+
export type MutationRetryNodeSandboxBuildArgs = {
|
|
12340
|
+
id: Scalars['ID']['input'];
|
|
12341
|
+
};
|
|
12342
|
+
/** Root mutation type */
|
|
11995
12343
|
export type MutationRetryPayoutArgs = {
|
|
11996
12344
|
id: Scalars['ID']['input'];
|
|
11997
12345
|
};
|
|
@@ -12021,6 +12369,10 @@ export type MutationRevokeApiKeyArgs = {
|
|
|
12021
12369
|
keyId: Scalars['String']['input'];
|
|
12022
12370
|
};
|
|
12023
12371
|
/** Root mutation type */
|
|
12372
|
+
export type MutationRevokeAppDelegationInternalArgs = {
|
|
12373
|
+
input: RevokeAppDelegationInternalInput;
|
|
12374
|
+
};
|
|
12375
|
+
/** Root mutation type */
|
|
12024
12376
|
export type MutationRevokeAppWorkspaceAccessArgs = {
|
|
12025
12377
|
input: RevokeAppWorkspaceAccessInput;
|
|
12026
12378
|
};
|
|
@@ -12098,6 +12450,7 @@ export type MutationRunChannelHealthCheckArgs = {
|
|
|
12098
12450
|
export type MutationRunDsarRequestForSubjectArgs = {
|
|
12099
12451
|
dryRun?: InputMaybe<Scalars['Boolean']['input']>;
|
|
12100
12452
|
mode: DsarMode;
|
|
12453
|
+
subjectEmail?: InputMaybe<Scalars['String']['input']>;
|
|
12101
12454
|
subjectId: Scalars['ID']['input'];
|
|
12102
12455
|
};
|
|
12103
12456
|
/** Root mutation type */
|
|
@@ -12195,6 +12548,10 @@ export type MutationServiceSyncPayoutStatusArgs = {
|
|
|
12195
12548
|
input: ServiceSyncPayoutStatusInput;
|
|
12196
12549
|
};
|
|
12197
12550
|
/** Root mutation type */
|
|
12551
|
+
export type MutationServiceUpsertExternalListingArgs = {
|
|
12552
|
+
input: ServiceUpsertExternalListingInput;
|
|
12553
|
+
};
|
|
12554
|
+
/** Root mutation type */
|
|
12198
12555
|
export type MutationSetAgentAwayArgs = {
|
|
12199
12556
|
message?: InputMaybe<Scalars['String']['input']>;
|
|
12200
12557
|
};
|
|
@@ -12263,6 +12620,13 @@ export type MutationSetWorkspaceFeatureFlagOverrideArgs = {
|
|
|
12263
12620
|
input: SetWorkspaceFeatureFlagOverrideInput;
|
|
12264
12621
|
};
|
|
12265
12622
|
/** Root mutation type */
|
|
12623
|
+
export type MutationSettleAssistantAccountBudgetArgs = {
|
|
12624
|
+
id: Scalars['ID']['input'];
|
|
12625
|
+
inputTokens: Scalars['Int']['input'];
|
|
12626
|
+
outputTokens: Scalars['Int']['input'];
|
|
12627
|
+
workspaceId: Scalars['ID']['input'];
|
|
12628
|
+
};
|
|
12629
|
+
/** Root mutation type */
|
|
12266
12630
|
export type MutationSetupMfaArgs = {
|
|
12267
12631
|
method: MfaMethod;
|
|
12268
12632
|
};
|
|
@@ -12340,6 +12704,10 @@ export type MutationSubmitContactInquiryArgs = {
|
|
|
12340
12704
|
input: SubmitContactInquiryInput;
|
|
12341
12705
|
};
|
|
12342
12706
|
/** Root mutation type */
|
|
12707
|
+
export type MutationSubmitExploreFeedbackArgs = {
|
|
12708
|
+
input: SubmitExploreFeedbackInput;
|
|
12709
|
+
};
|
|
12710
|
+
/** Root mutation type */
|
|
12343
12711
|
export type MutationSubmitInterviewFeedbackArgs = {
|
|
12344
12712
|
input: SubmitInterviewFeedbackInput;
|
|
12345
12713
|
};
|
|
@@ -12371,10 +12739,12 @@ export type MutationSubscribeToStoreArgs = {
|
|
|
12371
12739
|
/** Root mutation type */
|
|
12372
12740
|
export type MutationSupportEraseSubjectArgs = {
|
|
12373
12741
|
dryRun?: InputMaybe<Scalars['Boolean']['input']>;
|
|
12742
|
+
subjectEmail?: InputMaybe<Scalars['String']['input']>;
|
|
12374
12743
|
subjectId: Scalars['ID']['input'];
|
|
12375
12744
|
};
|
|
12376
12745
|
/** Root mutation type */
|
|
12377
12746
|
export type MutationSupportExportSubjectArgs = {
|
|
12747
|
+
subjectEmail?: InputMaybe<Scalars['String']['input']>;
|
|
12378
12748
|
subjectId: Scalars['ID']['input'];
|
|
12379
12749
|
};
|
|
12380
12750
|
/** Root mutation type */
|
|
@@ -12418,6 +12788,10 @@ export type MutationSyncTourStepsArgs = {
|
|
|
12418
12788
|
tourId: Scalars['ID']['input'];
|
|
12419
12789
|
};
|
|
12420
12790
|
/** Root mutation type */
|
|
12791
|
+
export type MutationSyncWorkspaceDeletionFromWspaceArgs = {
|
|
12792
|
+
workspaceId: Scalars['ID']['input'];
|
|
12793
|
+
};
|
|
12794
|
+
/** Root mutation type */
|
|
12421
12795
|
export type MutationSyncWorkspaceFromWspaceArgs = {
|
|
12422
12796
|
input: SyncWorkspaceFromWspaceInput;
|
|
12423
12797
|
};
|
|
@@ -13215,10 +13589,6 @@ export type MutationUseCannedResponseArgs = {
|
|
|
13215
13589
|
id: Scalars['ID']['input'];
|
|
13216
13590
|
};
|
|
13217
13591
|
/** Root mutation type */
|
|
13218
|
-
export type MutationValidateApiKeyArgs = {
|
|
13219
|
-
apiKey: Scalars['String']['input'];
|
|
13220
|
-
};
|
|
13221
|
-
/** Root mutation type */
|
|
13222
13592
|
export type MutationValidateHmacSignatureArgs = {
|
|
13223
13593
|
algorithm?: InputMaybe<Scalars['String']['input']>;
|
|
13224
13594
|
appId: Scalars['ID']['input'];
|
|
@@ -13655,6 +14025,39 @@ export declare enum NewsletterWaitlistStatus {
|
|
|
13655
14025
|
Pending = "PENDING",
|
|
13656
14026
|
Rejected = "REJECTED"
|
|
13657
14027
|
}
|
|
14028
|
+
/** One observed run of the "Deploy Devportal Node" GitHub Actions workflow, polled from run history rather than pushed via callback — see workers/nodeSandboxBuildPoll.ts. applicationVersionId/slug/version are best-effort, parsed from the run's title; null on runs from before the workflow embedded them, or a title that didn't parse. */
|
|
14029
|
+
export type NodeSandboxBuildCheck = {
|
|
14030
|
+
__typename?: 'NodeSandboxBuildCheck';
|
|
14031
|
+
applicationVersionId?: Maybe<Scalars['String']['output']>;
|
|
14032
|
+
checkedAt: Scalars['DateTime']['output'];
|
|
14033
|
+
failureStep?: Maybe<Scalars['String']['output']>;
|
|
14034
|
+
id: Scalars['ID']['output'];
|
|
14035
|
+
runConclusion?: Maybe<Scalars['String']['output']>;
|
|
14036
|
+
runId: Scalars['String']['output'];
|
|
14037
|
+
runStartedAt?: Maybe<Scalars['DateTime']['output']>;
|
|
14038
|
+
runStatus: Scalars['String']['output'];
|
|
14039
|
+
runUpdatedAt?: Maybe<Scalars['DateTime']['output']>;
|
|
14040
|
+
runUrl: Scalars['String']['output'];
|
|
14041
|
+
slug?: Maybe<Scalars['String']['output']>;
|
|
14042
|
+
version?: Maybe<Scalars['String']['output']>;
|
|
14043
|
+
};
|
|
14044
|
+
export type NodeSandboxBuildCheckConnection = {
|
|
14045
|
+
__typename?: 'NodeSandboxBuildCheckConnection';
|
|
14046
|
+
edges: Array<NodeSandboxBuildCheckEdge>;
|
|
14047
|
+
pageInfo: PageInfo;
|
|
14048
|
+
totalCount: Scalars['Int']['output'];
|
|
14049
|
+
};
|
|
14050
|
+
export type NodeSandboxBuildCheckEdge = {
|
|
14051
|
+
__typename?: 'NodeSandboxBuildCheckEdge';
|
|
14052
|
+
cursor: Scalars['String']['output'];
|
|
14053
|
+
node: NodeSandboxBuildCheck;
|
|
14054
|
+
};
|
|
14055
|
+
/** Result of a pollNodeSandboxBuildChecks call. `skipped: true` means no GitHub Actions run history was fetched this call (token unset or the GitHub API call failed) — `recorded` is only meaningful when `skipped` is false. */
|
|
14056
|
+
export type NodeSandboxBuildPollResult = {
|
|
14057
|
+
__typename?: 'NodeSandboxBuildPollResult';
|
|
14058
|
+
recorded: Scalars['Int']['output'];
|
|
14059
|
+
skipped: Scalars['Boolean']['output'];
|
|
14060
|
+
};
|
|
13658
14061
|
export type Notification = {
|
|
13659
14062
|
__typename?: 'Notification';
|
|
13660
14063
|
actions: Array<NotificationAction>;
|
|
@@ -13939,6 +14342,14 @@ export type NotificationReadFilterInput = {
|
|
|
13939
14342
|
type?: InputMaybe<NotificationType>;
|
|
13940
14343
|
userId: Scalars['ID']['input'];
|
|
13941
14344
|
};
|
|
14345
|
+
/** Sender-owned processing status only; provider acknowledgement is not delivery certification. */
|
|
14346
|
+
export type NotificationSendStatus = {
|
|
14347
|
+
__typename?: 'NotificationSendStatus';
|
|
14348
|
+
deliveryStatus?: Maybe<NotificationDeliveryStatus>;
|
|
14349
|
+
id: Scalars['ID']['output'];
|
|
14350
|
+
status: NotificationStatus;
|
|
14351
|
+
triggerStatus: TriggerStatus;
|
|
14352
|
+
};
|
|
13942
14353
|
export type NotificationStats = {
|
|
13943
14354
|
__typename?: 'NotificationStats';
|
|
13944
14355
|
byChannel: Scalars['JSON']['output'];
|
|
@@ -14436,6 +14847,41 @@ export type OrganizationMemberList = {
|
|
|
14436
14847
|
offset: Scalars['Int']['output'];
|
|
14437
14848
|
total: Scalars['Int']['output'];
|
|
14438
14849
|
};
|
|
14850
|
+
/** A workspace-private custom node of a workspace's organization (BOFF-9766). */
|
|
14851
|
+
export type OrganizationPrivateNode = {
|
|
14852
|
+
__typename?: 'OrganizationPrivateNode';
|
|
14853
|
+
applicationId: Scalars['ID']['output'];
|
|
14854
|
+
iconUrl?: Maybe<Scalars['String']['output']>;
|
|
14855
|
+
/** This workspace's active installation. Pass it to uninstallApp to remove the node. */
|
|
14856
|
+
installationId?: Maybe<Scalars['ID']['output']>;
|
|
14857
|
+
/** True when this workspace has an active installation of the node. */
|
|
14858
|
+
installed: Scalars['Boolean']['output'];
|
|
14859
|
+
/** The version this workspace has installed, when installed. */
|
|
14860
|
+
installedVersion?: Maybe<Scalars['String']['output']>;
|
|
14861
|
+
name: Scalars['String']['output'];
|
|
14862
|
+
/** Workflow node type from the version's manifest, e.g. custom/word_counter. */
|
|
14863
|
+
nodeType?: Maybe<Scalars['String']['output']>;
|
|
14864
|
+
nodeVersion?: Maybe<Scalars['String']['output']>;
|
|
14865
|
+
publishedAt?: Maybe<Scalars['DateTime']['output']>;
|
|
14866
|
+
shortDescription?: Maybe<Scalars['String']['output']>;
|
|
14867
|
+
slug: Scalars['String']['output'];
|
|
14868
|
+
/** Installed, and the organization has since published a newer version. */
|
|
14869
|
+
updateAvailable: Scalars['Boolean']['output'];
|
|
14870
|
+
/** Latest version published to the organization. Pass it to installApp. */
|
|
14871
|
+
version: Scalars['String']['output'];
|
|
14872
|
+
/** Id of the latest version published to the organization. */
|
|
14873
|
+
versionId: Scalars['ID']['output'];
|
|
14874
|
+
};
|
|
14875
|
+
/** The private custom nodes a workspace's organization has published, as seen from one workspace (BOFF-9766). */
|
|
14876
|
+
export type OrganizationPrivateNodeListing = {
|
|
14877
|
+
__typename?: 'OrganizationPrivateNodeListing';
|
|
14878
|
+
/** True when the caller administers the workspace and so may install or uninstall. */
|
|
14879
|
+
canManage: Scalars['Boolean']['output'];
|
|
14880
|
+
nodes: Array<OrganizationPrivateNode>;
|
|
14881
|
+
/** Organization the workspace belongs to; null when the caller is not a member or the workspace has no organization. */
|
|
14882
|
+
organizationId?: Maybe<Scalars['ID']['output']>;
|
|
14883
|
+
workspaceId: Scalars['ID']['output'];
|
|
14884
|
+
};
|
|
14439
14885
|
export type OrganizationScheduleQuotas = {
|
|
14440
14886
|
__typename?: 'OrganizationScheduleQuotas';
|
|
14441
14887
|
currentActiveSchedules: Scalars['Int']['output'];
|
|
@@ -14694,6 +15140,8 @@ export declare enum PaymentMethodType {
|
|
|
14694
15140
|
Crypto = "CRYPTO",
|
|
14695
15141
|
DebitCard = "DEBIT_CARD",
|
|
14696
15142
|
Netbanking = "NETBANKING",
|
|
15143
|
+
/** Zero-total purchases (e.g. a 100%-off coupon) — no gateway/method involved. */
|
|
15144
|
+
None = "NONE",
|
|
14697
15145
|
Paypal = "PAYPAL",
|
|
14698
15146
|
Wallet = "WALLET"
|
|
14699
15147
|
}
|
|
@@ -14985,6 +15433,8 @@ export type Plan = {
|
|
|
14985
15433
|
minSeats?: Maybe<Scalars['Int']['output']>;
|
|
14986
15434
|
/** The name of the plan (e.g., 'Basic', 'Pro', 'Enterprise'). */
|
|
14987
15435
|
name?: Maybe<Scalars['String']['output']>;
|
|
15436
|
+
/** Apple App Store / Google Play SKU for this plan. */
|
|
15437
|
+
nativeProductId?: Maybe<Scalars['String']['output']>;
|
|
14988
15438
|
/** The price of the plan. */
|
|
14989
15439
|
price?: Maybe<Scalars['Float']['output']>;
|
|
14990
15440
|
/** Historical record of price changes for this plan */
|
|
@@ -15914,6 +16364,8 @@ export type Query = {
|
|
|
15914
16364
|
agentProfile?: Maybe<AgentProfile>;
|
|
15915
16365
|
agentProfileByUserId?: Maybe<AgentProfile>;
|
|
15916
16366
|
agentProfiles: AgentProfileConnection;
|
|
16367
|
+
/** Schema capability for optional cache counts. Older callers keep input/output-only pricing. */
|
|
16368
|
+
aiCacheTokenPricingSupported: Scalars['Boolean']['output'];
|
|
15917
16369
|
/** Active per-model LLM token prices (USD per 1M tokens) used for AI-credit weighting. */
|
|
15918
16370
|
aiModelPrices: Array<AiModelPrice>;
|
|
15919
16371
|
/** 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. */
|
|
@@ -15963,6 +16415,8 @@ export type Query = {
|
|
|
15963
16415
|
availableAuthMethods: Array<AuthMethod>;
|
|
15964
16416
|
/** 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. */
|
|
15965
16417
|
availableFeaturePreviews: Array<FeatureFlag>;
|
|
16418
|
+
/** Signed (DESIGN 3.7). The workspace's balance, in the person's view when actorId is given. */
|
|
16419
|
+
avatarMinutesForService: AvatarMinutesBalance;
|
|
15966
16420
|
bounceStats: BounceStats;
|
|
15967
16421
|
/** 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 } } } } ``` */
|
|
15968
16422
|
browseStore: BrowseStoreResult;
|
|
@@ -16348,6 +16802,8 @@ export type Query = {
|
|
|
16348
16802
|
/** 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. */
|
|
16349
16803
|
installableApplicationVersions: Array<ApplicationVersion>;
|
|
16350
16804
|
installationPermissions?: Maybe<Scalars['JSON']['output']>;
|
|
16805
|
+
/** Runtime routing metadata for an active node installation in the gateway-authenticated workspace. Candidate node types are ordered, with the requested spelling before compatibility aliases. Legacy installation versions are not treated as node runtime versions. */
|
|
16806
|
+
installedStoreNodeRuntime?: Maybe<StoreInstalledNodeRuntime>;
|
|
16351
16807
|
/** Get a single interview round by ID (admin). */
|
|
16352
16808
|
interviewRound?: Maybe<InterviewRound>;
|
|
16353
16809
|
/** Get a single interviewer by ID (admin). */
|
|
@@ -16441,6 +16897,8 @@ export type Query = {
|
|
|
16441
16897
|
myNotificationCountsByApp: Scalars['JSON']['output'];
|
|
16442
16898
|
/** Get notification counts by channel for authenticated user */
|
|
16443
16899
|
myNotificationCountsByChannel: NotificationChannelCounts;
|
|
16900
|
+
/** Status of a notification created by the authenticated sender in the current tenant. */
|
|
16901
|
+
myNotificationSendStatus: NotificationSendStatus;
|
|
16444
16902
|
/** Get all orders for the authenticated user */
|
|
16445
16903
|
myOrders: Array<StoreOrder>;
|
|
16446
16904
|
/** 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). */
|
|
@@ -16504,6 +16962,8 @@ export type Query = {
|
|
|
16504
16962
|
newsletterVariant?: Maybe<NewsletterVariant>;
|
|
16505
16963
|
newsletterVariants: Array<NewsletterVariant>;
|
|
16506
16964
|
newsletters: Array<Newsletter>;
|
|
16965
|
+
/** Platform admin only: recent observed runs of the node-sandbox build workflow, newest first — see workers/nodeSandboxBuildPoll.ts. Optionally filtered to one version's runs. */
|
|
16966
|
+
nodeSandboxBuildChecks: NodeSandboxBuildCheckConnection;
|
|
16507
16967
|
/** Get a single notification by ID */
|
|
16508
16968
|
notification?: Maybe<Notification>;
|
|
16509
16969
|
/** Get notification events/history for a specific notification */
|
|
@@ -16556,6 +17016,8 @@ export type Query = {
|
|
|
16556
17016
|
organizationMembers: OrganizationMemberList;
|
|
16557
17017
|
/** M2M lookup for global-store-svc's shipping-cost quote pipeline: the org's active pickup postal code — the default DeveloperOrgPickupAddress's postalCode, falling back to the legacy pickupPostalCode scalar for orgs that set one before DeveloperOrgPickupAddress existed, then null (caller falls back to the linked billing account's address, then a platform-wide default). */
|
|
16558
17018
|
organizationPickupPostalCode?: Maybe<Scalars['String']['output']>;
|
|
17019
|
+
/** The workspace-private custom nodes of a workspace's organization (BOFF-9766): every PRIVATE NODE application bound to the organization the workspace belongs to, with its latest version published to that organization and whether this workspace has it installed. Feeds the "Your organization" section of the FluidGrids Node Store, where a workspace admin installs or updates one with `installApp` and removes it with `uninstallApp`. Self-scoped (Type B): the gateway only authenticates the caller. The resolver lists nothing unless the caller is a member of `workspaceId`, and it only ever lists applications bound to that workspace's own organization, so a workspace of another organization sees none of them. */
|
|
17020
|
+
organizationPrivateNodes: OrganizationPrivateNodeListing;
|
|
16559
17021
|
organizationScheduleQuotas: OrganizationScheduleQuotas;
|
|
16560
17022
|
payoutRunHistory: Array<PayoutRunLog>;
|
|
16561
17023
|
pendingDeveloperOrganizationVerifications: DeveloperOrganizationConnection;
|
|
@@ -16822,6 +17284,10 @@ export type Query = {
|
|
|
16822
17284
|
webhook?: Maybe<Webhook>;
|
|
16823
17285
|
webhookDeliveries: WebhookDeliveryConnection;
|
|
16824
17286
|
webhookDelivery?: Maybe<WebhookDelivery>;
|
|
17287
|
+
/** Every webhook event type currently deliverable, for the webhook event picker. Optionally narrowed to one product. */
|
|
17288
|
+
webhookEventCatalog: Array<WebhookEventCatalogEntry>;
|
|
17289
|
+
/** Registered subject mappings. Platform services and super admins only. */
|
|
17290
|
+
webhookEventSubjects: Array<WebhookEventSubject>;
|
|
16825
17291
|
webhooks: Array<Webhook>;
|
|
16826
17292
|
/** Get a single workspace by ID */
|
|
16827
17293
|
workspace?: Maybe<Workspace>;
|
|
@@ -17124,6 +17590,13 @@ export type QueryAvailableFeaturePreviewsArgs = {
|
|
|
17124
17590
|
workspaceId: Scalars['String']['input'];
|
|
17125
17591
|
};
|
|
17126
17592
|
/** Root query type */
|
|
17593
|
+
export type QueryAvatarMinutesForServiceArgs = {
|
|
17594
|
+
actorId?: InputMaybe<Scalars['ID']['input']>;
|
|
17595
|
+
productId: Scalars['String']['input'];
|
|
17596
|
+
signature: AvatarMinutesSignature;
|
|
17597
|
+
workspaceId: Scalars['ID']['input'];
|
|
17598
|
+
};
|
|
17599
|
+
/** Root query type */
|
|
17127
17600
|
export type QueryBounceStatsArgs = {
|
|
17128
17601
|
campaignId: Scalars['ID']['input'];
|
|
17129
17602
|
};
|
|
@@ -18189,6 +18662,11 @@ export type QueryInstallationPermissionsArgs = {
|
|
|
18189
18662
|
installationId: Scalars['ID']['input'];
|
|
18190
18663
|
};
|
|
18191
18664
|
/** Root query type */
|
|
18665
|
+
export type QueryInstalledStoreNodeRuntimeArgs = {
|
|
18666
|
+
nodeTypes: Array<Scalars['String']['input']>;
|
|
18667
|
+
nodeVersion?: InputMaybe<Scalars['String']['input']>;
|
|
18668
|
+
};
|
|
18669
|
+
/** Root query type */
|
|
18192
18670
|
export type QueryInterviewRoundArgs = {
|
|
18193
18671
|
id: Scalars['ID']['input'];
|
|
18194
18672
|
};
|
|
@@ -18435,6 +18913,10 @@ export type QueryMyEntitlementsArgs = {
|
|
|
18435
18913
|
offset?: InputMaybe<Scalars['Int']['input']>;
|
|
18436
18914
|
};
|
|
18437
18915
|
/** Root query type */
|
|
18916
|
+
export type QueryMyNotificationSendStatusArgs = {
|
|
18917
|
+
id: Scalars['ID']['input'];
|
|
18918
|
+
};
|
|
18919
|
+
/** Root query type */
|
|
18438
18920
|
export type QueryMyOrdersArgs = {
|
|
18439
18921
|
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
18440
18922
|
offset?: InputMaybe<Scalars['Int']['input']>;
|
|
@@ -18608,6 +19090,12 @@ export type QueryNewslettersArgs = {
|
|
|
18608
19090
|
offset?: InputMaybe<Scalars['Int']['input']>;
|
|
18609
19091
|
};
|
|
18610
19092
|
/** Root query type */
|
|
19093
|
+
export type QueryNodeSandboxBuildChecksArgs = {
|
|
19094
|
+
applicationVersionId?: InputMaybe<Scalars['ID']['input']>;
|
|
19095
|
+
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
19096
|
+
offset?: InputMaybe<Scalars['Int']['input']>;
|
|
19097
|
+
};
|
|
19098
|
+
/** Root query type */
|
|
18611
19099
|
export type QueryNotificationArgs = {
|
|
18612
19100
|
id: Scalars['ID']['input'];
|
|
18613
19101
|
};
|
|
@@ -18741,6 +19229,10 @@ export type QueryOrganizationPickupPostalCodeArgs = {
|
|
|
18741
19229
|
id: Scalars['ID']['input'];
|
|
18742
19230
|
};
|
|
18743
19231
|
/** Root query type */
|
|
19232
|
+
export type QueryOrganizationPrivateNodesArgs = {
|
|
19233
|
+
workspaceId: Scalars['ID']['input'];
|
|
19234
|
+
};
|
|
19235
|
+
/** Root query type */
|
|
18744
19236
|
export type QueryPendingDeveloperOrganizationVerificationsArgs = {
|
|
18745
19237
|
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
18746
19238
|
offset?: InputMaybe<Scalars['Int']['input']>;
|
|
@@ -18970,6 +19462,8 @@ export type QueryPushDevicesForUserInternalArgs = {
|
|
|
18970
19462
|
};
|
|
18971
19463
|
/** Root query type */
|
|
18972
19464
|
export type QueryQuoteAiCreditsArgs = {
|
|
19465
|
+
cacheReadTokens?: InputMaybe<Scalars['Int']['input']>;
|
|
19466
|
+
cacheWriteTokens?: InputMaybe<Scalars['Int']['input']>;
|
|
18973
19467
|
inputTokens: Scalars['Int']['input'];
|
|
18974
19468
|
model: Scalars['String']['input'];
|
|
18975
19469
|
outputTokens: Scalars['Int']['input'];
|
|
@@ -19553,6 +20047,15 @@ export type QueryWebhookDeliveryArgs = {
|
|
|
19553
20047
|
id: Scalars['ID']['input'];
|
|
19554
20048
|
};
|
|
19555
20049
|
/** Root query type */
|
|
20050
|
+
export type QueryWebhookEventCatalogArgs = {
|
|
20051
|
+
productSlug?: InputMaybe<Scalars['String']['input']>;
|
|
20052
|
+
};
|
|
20053
|
+
/** Root query type */
|
|
20054
|
+
export type QueryWebhookEventSubjectsArgs = {
|
|
20055
|
+
includeInactive?: InputMaybe<Scalars['Boolean']['input']>;
|
|
20056
|
+
productSlug?: InputMaybe<Scalars['String']['input']>;
|
|
20057
|
+
};
|
|
20058
|
+
/** Root query type */
|
|
19556
20059
|
export type QueryWebhooksArgs = {
|
|
19557
20060
|
applicationId: Scalars['ID']['input'];
|
|
19558
20061
|
};
|
|
@@ -20026,6 +20529,15 @@ export type RecordExploreClickResult = {
|
|
|
20026
20529
|
__typename?: 'RecordExploreClickResult';
|
|
20027
20530
|
recorded: Scalars['Boolean']['output'];
|
|
20028
20531
|
};
|
|
20532
|
+
export type RecordExternalRefundInput = {
|
|
20533
|
+
amount: Scalars['Float']['input'];
|
|
20534
|
+
chargeId: Scalars['ID']['input'];
|
|
20535
|
+
currency: Scalars['String']['input'];
|
|
20536
|
+
externalRef: Scalars['String']['input'];
|
|
20537
|
+
orgId: Scalars['ID']['input'];
|
|
20538
|
+
reason?: InputMaybe<Scalars['String']['input']>;
|
|
20539
|
+
workspaceId?: InputMaybe<Scalars['ID']['input']>;
|
|
20540
|
+
};
|
|
20029
20541
|
export type RecordExternalSettlementInput = {
|
|
20030
20542
|
/** Settlement amount in whole currency units (must be > 0). */
|
|
20031
20543
|
amount: Scalars['Float']['input'];
|
|
@@ -20357,6 +20869,12 @@ export type RegisterSupportAttachmentPartInput = {
|
|
|
20357
20869
|
sessionId: Scalars['ID']['input'];
|
|
20358
20870
|
ticketId: Scalars['ID']['input'];
|
|
20359
20871
|
};
|
|
20872
|
+
export type RegisterWebhookEventSubjectsInput = {
|
|
20873
|
+
/** Product slug that owns the subjects (e.g. `vibecontrols`, `fluidgrids`). */
|
|
20874
|
+
productSlug: Scalars['String']['input'];
|
|
20875
|
+
/** Mappings to create or update (at most 100 per call). */
|
|
20876
|
+
subjects: Array<WebhookEventSubjectInput>;
|
|
20877
|
+
};
|
|
20360
20878
|
export type RejectWaitlistInput = {
|
|
20361
20879
|
id: Scalars['ID']['input'];
|
|
20362
20880
|
reason?: InputMaybe<Scalars['String']['input']>;
|
|
@@ -20448,6 +20966,24 @@ export type ResendVerificationResult = {
|
|
|
20448
20966
|
message: Scalars['String']['output'];
|
|
20449
20967
|
success: Scalars['Boolean']['output'];
|
|
20450
20968
|
};
|
|
20969
|
+
export type ReserveAssistantBudgetInput = {
|
|
20970
|
+
id: Scalars['ID']['input'];
|
|
20971
|
+
inputTokens: Scalars['Int']['input'];
|
|
20972
|
+
model: Scalars['String']['input'];
|
|
20973
|
+
outputTokens: Scalars['Int']['input'];
|
|
20974
|
+
workspaceId: Scalars['ID']['input'];
|
|
20975
|
+
};
|
|
20976
|
+
export type ReserveAvatarMinutesInput = {
|
|
20977
|
+
actorId: Scalars['ID']['input'];
|
|
20978
|
+
mode: AvatarMinutesMode;
|
|
20979
|
+
productId: Scalars['String']['input'];
|
|
20980
|
+
/** 1 to 60; billing reserves min(available, requested, AVATAR_MINUTES_MAX_PER_SESSION). */
|
|
20981
|
+
requestedMinutes: Scalars['Int']['input'];
|
|
20982
|
+
sessionId: Scalars['ID']['input'];
|
|
20983
|
+
supersedesSessionId?: InputMaybe<Scalars['ID']['input']>;
|
|
20984
|
+
surface: Scalars['String']['input'];
|
|
20985
|
+
workspaceId: Scalars['ID']['input'];
|
|
20986
|
+
};
|
|
20451
20987
|
/** 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. */
|
|
20452
20988
|
export type ResolveBillingAccountInput = {
|
|
20453
20989
|
/** Opaque org id that anchors the billing account. When present the org's default billing account is resolved-or-created. */
|
|
@@ -20495,6 +21031,17 @@ export type ResourceTypeProductInfo = {
|
|
|
20495
21031
|
products: Array<Scalars['String']['output']>;
|
|
20496
21032
|
resourceType: Scalars['String']['output'];
|
|
20497
21033
|
};
|
|
21034
|
+
/** Input for the service-trusted internal reduction of a first-party self-delegation. */
|
|
21035
|
+
export type RestrictAppDelegationInternalInput = {
|
|
21036
|
+
/** Client ID of the first-party system app (e.g. burdenoff_integration_core). */
|
|
21037
|
+
clientId: Scalars['String']['input'];
|
|
21038
|
+
/** The most the delegation may keep: it keeps only those of these scopes it already holds (and the app still allows), and is revoked if none are left. */
|
|
21039
|
+
scopes: Array<Scalars['String']['input']>;
|
|
21040
|
+
/** The user whose delegation to the app is reduced. */
|
|
21041
|
+
userId: Scalars['String']['input'];
|
|
21042
|
+
/** The most workspaces the delegation may keep: it keeps only those of these it already covers, and is revoked if none are left. Empty = leave the workspaces as they are. */
|
|
21043
|
+
workspaceIds: Array<Scalars['String']['input']>;
|
|
21044
|
+
};
|
|
20498
21045
|
export type RetryBillingOrderCallbackResponse = {
|
|
20499
21046
|
__typename?: 'RetryBillingOrderCallbackResponse';
|
|
20500
21047
|
error?: Maybe<Scalars['String']['output']>;
|
|
@@ -20551,8 +21098,19 @@ export type RevokeAllSessionsResult = {
|
|
|
20551
21098
|
revokedCount: Scalars['Int']['output'];
|
|
20552
21099
|
success: Scalars['Boolean']['output'];
|
|
20553
21100
|
};
|
|
21101
|
+
/** Input for the service-trusted internal revoke of a first-party self-delegation. */
|
|
21102
|
+
export type RevokeAppDelegationInternalInput = {
|
|
21103
|
+
/** Client ID of the first-party system app (e.g. burdenoff_integration_core). */
|
|
21104
|
+
clientId: Scalars['String']['input'];
|
|
21105
|
+
/** Recorded on the delegation and in the audit log. */
|
|
21106
|
+
reason?: InputMaybe<Scalars['String']['input']>;
|
|
21107
|
+
/** The user whose delegation to the app is revoked. */
|
|
21108
|
+
userId: Scalars['String']['input'];
|
|
21109
|
+
};
|
|
20554
21110
|
export type RevokeAppWorkspaceAccessInput = {
|
|
20555
21111
|
appId: Scalars['ID']['input'];
|
|
21112
|
+
/** Withdraw only the calling actor's own grant. The authorization is revoked (true) only when the caller is its sole grantor; when others granted it too, only the caller's share is released and it stays ACTIVE (false); one the caller never granted is left untouched (false). An automated provisioner withdrawing its own grant sets this, so it never revokes access an owner or an app installation gave the app, whichever granted first. */
|
|
21113
|
+
onlyIfGrantedByCaller?: InputMaybe<Scalars['Boolean']['input']>;
|
|
20556
21114
|
reason?: InputMaybe<Scalars['String']['input']>;
|
|
20557
21115
|
workspaceId: Scalars['ID']['input'];
|
|
20558
21116
|
};
|
|
@@ -21089,6 +21647,15 @@ export type SeedAtheleteBridgeUserToursResult = {
|
|
|
21089
21647
|
updatedCount: Scalars['Int']['output'];
|
|
21090
21648
|
workspaceId: Scalars['String']['output'];
|
|
21091
21649
|
};
|
|
21650
|
+
export type SeedBigconsoleUserToursResult = {
|
|
21651
|
+
__typename?: 'SeedBigconsoleUserToursResult';
|
|
21652
|
+
createdCount: Scalars['Int']['output'];
|
|
21653
|
+
productId: Scalars['String']['output'];
|
|
21654
|
+
totalCount: Scalars['Int']['output'];
|
|
21655
|
+
tours: Array<SeededUserTourResult>;
|
|
21656
|
+
updatedCount: Scalars['Int']['output'];
|
|
21657
|
+
workspaceId: Scalars['String']['output'];
|
|
21658
|
+
};
|
|
21092
21659
|
export type SeedBuildmyiqUserToursResult = {
|
|
21093
21660
|
__typename?: 'SeedBuildmyiqUserToursResult';
|
|
21094
21661
|
createdCount: Scalars['Int']['output'];
|
|
@@ -21301,6 +21868,31 @@ export type ServiceSyncPayoutStatusInput = {
|
|
|
21301
21868
|
/** The billing PayoutRequestStatus after the change (e.g. APPROVED, REJECTED, PAID, FAILED). */
|
|
21302
21869
|
status: Scalars['String']['input'];
|
|
21303
21870
|
};
|
|
21871
|
+
/** Input for serviceUpsertExternalListing (BOFF-3430). */
|
|
21872
|
+
export type ServiceUpsertExternalListingInput = {
|
|
21873
|
+
/** Brand or maker shown on the listing. */
|
|
21874
|
+
brand?: InputMaybe<Scalars['String']['input']>;
|
|
21875
|
+
category?: InputMaybe<Scalars['String']['input']>;
|
|
21876
|
+
/** ISO 4217 currency code, upper case. */
|
|
21877
|
+
currency: Scalars['String']['input'];
|
|
21878
|
+
description?: InputMaybe<Scalars['String']['input']>;
|
|
21879
|
+
/** The item's id in the calling service. Together with the caller's service identity it identifies the listing. */
|
|
21880
|
+
externalId: Scalars['String']['input'];
|
|
21881
|
+
/** Absolute https URL of the item's page in the owning product. */
|
|
21882
|
+
externalUrl: Scalars['String']['input'];
|
|
21883
|
+
metadata?: InputMaybe<Scalars['JSON']['input']>;
|
|
21884
|
+
name: Scalars['String']['input'];
|
|
21885
|
+
price: Scalars['Float']['input'];
|
|
21886
|
+
/** Platform product key of the caller (for example "coolandlovely"). Used as the listing's compatible product and as its slug prefix. */
|
|
21887
|
+
productKey: Scalars['String']['input'];
|
|
21888
|
+
/** Display name for the caller's publisher profile, created on its first listing. */
|
|
21889
|
+
publisherName: Scalars['String']['input'];
|
|
21890
|
+
/** PUBLISHED (shown in discovery), UNLISTED (kept but hidden) or ARCHIVED (taken down). */
|
|
21891
|
+
status: ProductStatus;
|
|
21892
|
+
tags?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
21893
|
+
/** A physical product type (MERCHANDISE, HARDWARE, ACCESSORY, BOOK, EQUIPMENT, APPAREL, COLLECTIBLE or CONSUMABLE). */
|
|
21894
|
+
type: ProductType;
|
|
21895
|
+
};
|
|
21304
21896
|
/** An active user session (login instance) */
|
|
21305
21897
|
export type Session = {
|
|
21306
21898
|
__typename?: 'Session';
|
|
@@ -21868,6 +22460,12 @@ export declare enum StoreInstallationStatus {
|
|
|
21868
22460
|
Pending = "PENDING",
|
|
21869
22461
|
Uninstalled = "UNINSTALLED"
|
|
21870
22462
|
}
|
|
22463
|
+
export type StoreInstalledNodeRuntime = {
|
|
22464
|
+
__typename?: 'StoreInstalledNodeRuntime';
|
|
22465
|
+
endpointUrl: Scalars['String']['output'];
|
|
22466
|
+
nodeType: Scalars['String']['output'];
|
|
22467
|
+
nodeVersion?: Maybe<Scalars['String']['output']>;
|
|
22468
|
+
};
|
|
21871
22469
|
/** 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. */
|
|
21872
22470
|
export type StoreItem = {
|
|
21873
22471
|
__typename?: 'StoreItem';
|
|
@@ -21999,6 +22597,12 @@ export type StoreProduct = {
|
|
|
21999
22597
|
documentationUrl?: Maybe<Scalars['String']['output']>;
|
|
22000
22598
|
downloads: Scalars['Int']['output'];
|
|
22001
22599
|
entitlements: Array<ProductEntitlement>;
|
|
22600
|
+
/** The item's id in the owning product backend (only set with externalService). */
|
|
22601
|
+
externalId?: Maybe<Scalars['String']['output']>;
|
|
22602
|
+
/** Service identity of the product backend that owns this listing when the item is sold by that product's own checkout (for example wspace-coolandlovely-svc). Null for products the store sells itself. Such a listing cannot be added to a store cart or ordered here; send buyers to externalUrl instead. */
|
|
22603
|
+
externalService?: Maybe<Scalars['String']['output']>;
|
|
22604
|
+
/** Page in the owning product where the item can be viewed and bought (only set with externalService). */
|
|
22605
|
+
externalUrl?: Maybe<Scalars['String']['output']>;
|
|
22002
22606
|
featured: Scalars['Boolean']['output'];
|
|
22003
22607
|
/** Product height (physical products) */
|
|
22004
22608
|
height?: Maybe<Scalars['Float']['output']>;
|
|
@@ -22240,6 +22844,24 @@ export type SubmitContactInquiryResult = {
|
|
|
22240
22844
|
/** Whether the submission was successful */
|
|
22241
22845
|
success: Scalars['Boolean']['output'];
|
|
22242
22846
|
};
|
|
22847
|
+
/** One visitor's verdict on one answer. Anonymous like the rest of explore: the conversation token is the only proof of ownership, and the visitor is recorded as an `ipHash`, never an IP. */
|
|
22848
|
+
export type SubmitExploreFeedbackInput = {
|
|
22849
|
+
/** Optional free text. Capped server-side; the server truncates rather than rejecting, because a rating is never worth failing over its comment. */
|
|
22850
|
+
comment?: InputMaybe<Scalars['String']['input']>;
|
|
22851
|
+
/** Bearer secret for the conversation the answer belongs to. */
|
|
22852
|
+
conversationToken: Scalars['String']['input'];
|
|
22853
|
+
/** The assistant message being rated. Must be COMPLETED. */
|
|
22854
|
+
messageId: Scalars['ID']['input'];
|
|
22855
|
+
rating: ExploreFeedbackRating;
|
|
22856
|
+
/** Why it was not helpful: one of INACCURATE INCOMPLETE OFF_TOPIC HARD_TO_FOLLOW OTHER. Ignored — and stored as null — for HELPFUL, because "what was wrong with it" is not a question a positive rating answers. */
|
|
22857
|
+
reason?: InputMaybe<Scalars['String']['input']>;
|
|
22858
|
+
};
|
|
22859
|
+
export type SubmitExploreFeedbackResult = {
|
|
22860
|
+
__typename?: 'SubmitExploreFeedbackResult';
|
|
22861
|
+
/** What was actually stored — echoed back so the UI renders the server's view rather than assuming its optimistic one was accepted. Null when `recorded` is false. */
|
|
22862
|
+
feedback?: Maybe<ExploreFeedback>;
|
|
22863
|
+
recorded: Scalars['Boolean']['output'];
|
|
22864
|
+
};
|
|
22243
22865
|
export type SubmitInterviewFeedbackInput = {
|
|
22244
22866
|
internalNotes?: InputMaybe<Scalars['String']['input']>;
|
|
22245
22867
|
interviewerId: Scalars['ID']['input'];
|
|
@@ -23161,10 +23783,14 @@ export type Tenant = {
|
|
|
23161
23783
|
/** Workspaces belonging to this tenant */
|
|
23162
23784
|
workspaces: Array<Workspace>;
|
|
23163
23785
|
};
|
|
23164
|
-
/** Tenant configuration for regional settings,
|
|
23786
|
+
/** Tenant configuration for regional settings, data residency, and features */
|
|
23165
23787
|
export type TenantConfig = {
|
|
23166
23788
|
__typename?: 'TenantConfig';
|
|
23167
23789
|
complianceRegion?: Maybe<Scalars['String']['output']>;
|
|
23790
|
+
/**
|
|
23791
|
+
* Always null. Burdenoff does no white-labelling: every product keeps its own brand, so tenants cannot set a custom logo, colour or favicon.
|
|
23792
|
+
* @deprecated No white-labelling — products keep their own brand. This setting is ignored.
|
|
23793
|
+
*/
|
|
23168
23794
|
customBranding?: Maybe<Scalars['JSON']['output']>;
|
|
23169
23795
|
dataResidency?: Maybe<Scalars['String']['output']>;
|
|
23170
23796
|
features?: Maybe<Scalars['JSON']['output']>;
|
|
@@ -24210,6 +24836,8 @@ export type UpdateContentPageInput = {
|
|
|
24210
24836
|
visibility?: InputMaybe<ContentVisibility>;
|
|
24211
24837
|
};
|
|
24212
24838
|
export type UpdateCouponInput = {
|
|
24839
|
+
applicableEntityTypes?: InputMaybe<Array<CouponEntityType>>;
|
|
24840
|
+
applicableProductIds?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
24213
24841
|
description?: InputMaybe<Scalars['String']['input']>;
|
|
24214
24842
|
maxTotalUses?: InputMaybe<Scalars['Int']['input']>;
|
|
24215
24843
|
maxUsesPerUser?: InputMaybe<Scalars['Int']['input']>;
|
|
@@ -25545,12 +26173,16 @@ export type UserWishlist = {
|
|
|
25545
26173
|
userId: Scalars['String']['output'];
|
|
25546
26174
|
};
|
|
25547
26175
|
export type ValidateCouponInput = {
|
|
26176
|
+
/** Addon being purchased — same purpose as planId, for addon purchases. */
|
|
26177
|
+
addonId?: InputMaybe<Scalars['ID']['input']>;
|
|
25548
26178
|
/** Order amount before discount */
|
|
25549
26179
|
amount: Scalars['Float']['input'];
|
|
25550
26180
|
/** Coupon code to validate */
|
|
25551
26181
|
code: Scalars['String']['input'];
|
|
25552
26182
|
/** Currency */
|
|
25553
26183
|
currency: Scalars['String']['input'];
|
|
26184
|
+
/** Plan being purchased — used to resolve product/entity-type scoping (applicableProductIds/applicableEntityTypes) from the Plan record itself, not from a client-asserted product/entity string. */
|
|
26185
|
+
planId?: InputMaybe<Scalars['ID']['input']>;
|
|
25554
26186
|
/** Optional: product IDs being purchased */
|
|
25555
26187
|
productIds?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
25556
26188
|
/** Optional: service IDs being purchased */
|
|
@@ -25826,6 +26458,16 @@ export type WebhookEvent = {
|
|
|
25826
26458
|
/** Last update timestamp */
|
|
25827
26459
|
updatedAt: Scalars['DateTime']['output'];
|
|
25828
26460
|
};
|
|
26461
|
+
/** A webhook event type a developer application can subscribe a webhook to. */
|
|
26462
|
+
export type WebhookEventCatalogEntry = {
|
|
26463
|
+
__typename?: 'WebhookEventCatalogEntry';
|
|
26464
|
+
description?: Maybe<Scalars['String']['output']>;
|
|
26465
|
+
/** Event type, sent as the X-Event-Type header and the payload `event` field. */
|
|
26466
|
+
eventType: Scalars['String']['output'];
|
|
26467
|
+
/** Product that emits the event (`devportal` for portal lifecycle events). */
|
|
26468
|
+
productSlug: Scalars['String']['output'];
|
|
26469
|
+
source: WebhookEventSource;
|
|
26470
|
+
};
|
|
25829
26471
|
/** Paginated list of webhook events with cursor support. Pass `nextCursor` from a previous response as `cursor` in the next call. */
|
|
25830
26472
|
export type WebhookEventList = {
|
|
25831
26473
|
__typename?: 'WebhookEventList';
|
|
@@ -25834,6 +26476,33 @@ export type WebhookEventList = {
|
|
|
25834
26476
|
nextCursor?: Maybe<Scalars['String']['output']>;
|
|
25835
26477
|
total: Scalars['Int']['output'];
|
|
25836
26478
|
};
|
|
26479
|
+
/** Where a webhook event type originates. */
|
|
26480
|
+
export declare enum WebhookEventSource {
|
|
26481
|
+
/** Fired by the developer portal itself (application and installation lifecycle). */
|
|
26482
|
+
Devportal = "DEVPORTAL",
|
|
26483
|
+
/** Fired from a workspace entity change, through a registered subject mapping. */
|
|
26484
|
+
Workspace = "WORKSPACE"
|
|
26485
|
+
}
|
|
26486
|
+
/** Maps a workspace graph-event subject to the webhook event type it fires. */
|
|
26487
|
+
export type WebhookEventSubject = {
|
|
26488
|
+
__typename?: 'WebhookEventSubject';
|
|
26489
|
+
createdAt: Scalars['DateTime']['output'];
|
|
26490
|
+
description?: Maybe<Scalars['String']['output']>;
|
|
26491
|
+
eventType: Scalars['String']['output'];
|
|
26492
|
+
id: Scalars['ID']['output'];
|
|
26493
|
+
isActive: Scalars['Boolean']['output'];
|
|
26494
|
+
productSlug: Scalars['String']['output'];
|
|
26495
|
+
/** Graph-event subject, `graph.<module>.<Entity>.<action>`. */
|
|
26496
|
+
subject: Scalars['String']['output'];
|
|
26497
|
+
updatedAt: Scalars['DateTime']['output'];
|
|
26498
|
+
};
|
|
26499
|
+
export type WebhookEventSubjectInput = {
|
|
26500
|
+
description?: InputMaybe<Scalars['String']['input']>;
|
|
26501
|
+
/** Dotted lower-case event type, e.g. `vibe.created`. The `application.` and `installation.` namespaces are reserved for the developer portal. */
|
|
26502
|
+
eventType: Scalars['String']['input'];
|
|
26503
|
+
/** Graph-event subject, `graph.<module>.<Entity>.<action>`. */
|
|
26504
|
+
subject: Scalars['String']['input'];
|
|
26505
|
+
};
|
|
25837
26506
|
/** Webhook processing result */
|
|
25838
26507
|
export type WebhookProcessingResult = {
|
|
25839
26508
|
__typename?: 'WebhookProcessingResult';
|