@crowdedkingdomstudios/crowdyjs 5.1.0 → 5.2.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/MIGRATION.md +64 -0
- package/README.md +19 -0
- package/dist/client.d.ts +98 -5
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +74 -5
- package/dist/crowdy-client.d.ts +31 -0
- package/dist/crowdy-client.d.ts.map +1 -1
- package/dist/crowdy-client.js +8 -0
- package/dist/domains/actors.d.ts +88 -5
- package/dist/domains/actors.d.ts.map +1 -1
- package/dist/domains/actors.js +89 -6
- package/dist/domains/apps.d.ts +95 -41
- package/dist/domains/apps.d.ts.map +1 -1
- package/dist/domains/apps.js +80 -33
- package/dist/domains/auth.d.ts +139 -19
- package/dist/domains/auth.d.ts.map +1 -1
- package/dist/domains/auth.js +137 -17
- package/dist/domains/channels.d.ts +264 -5
- package/dist/domains/channels.d.ts.map +1 -1
- package/dist/domains/channels.js +264 -5
- package/dist/domains/chunks.d.ts +116 -3
- package/dist/domains/chunks.d.ts.map +1 -1
- package/dist/domains/chunks.js +116 -3
- package/dist/domains/gameModel.d.ts +412 -6
- package/dist/domains/gameModel.d.ts.map +1 -1
- package/dist/domains/gameModel.js +412 -6
- package/dist/domains/platform.d.ts +36 -20
- package/dist/domains/platform.d.ts.map +1 -1
- package/dist/domains/platform.js +29 -18
- package/dist/domains/serverStatus.d.ts +74 -6
- package/dist/domains/serverStatus.d.ts.map +1 -1
- package/dist/domains/serverStatus.js +74 -6
- package/dist/domains/state.d.ts +50 -2
- package/dist/domains/state.d.ts.map +1 -1
- package/dist/domains/state.js +50 -2
- package/dist/domains/teams.d.ts +265 -7
- package/dist/domains/teams.d.ts.map +1 -1
- package/dist/domains/teams.js +267 -9
- package/dist/domains/teleport.d.ts +30 -2
- package/dist/domains/teleport.d.ts.map +1 -1
- package/dist/domains/teleport.js +30 -2
- package/dist/domains/udp.d.ts +341 -5
- package/dist/domains/udp.d.ts.map +1 -1
- package/dist/domains/udp.js +341 -5
- package/dist/domains/users.d.ts +42 -11
- package/dist/domains/users.d.ts.map +1 -1
- package/dist/domains/users.js +41 -10
- package/dist/domains/voxels.d.ts +107 -2
- package/dist/domains/voxels.d.ts.map +1 -1
- package/dist/domains/voxels.js +107 -2
- package/dist/errors.d.ts +116 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +100 -0
- package/dist/generated/graphql.d.ts +1787 -110
- package/dist/generated/graphql.d.ts.map +1 -1
- package/dist/generated/graphql.js +75 -9
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/realtime.d.ts +226 -0
- package/dist/realtime.d.ts.map +1 -1
- package/dist/realtime.js +90 -0
- package/dist/session.d.ts +46 -0
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +35 -0
- package/dist/types.d.ts +429 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +53 -0
- package/dist/utils.d.ts +86 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +86 -0
- package/dist/world.d.ts +192 -0
- package/dist/world.d.ts.map +1 -1
- package/dist/world.js +170 -0
- package/package.json +1 -1
|
@@ -42,7 +42,7 @@ export type Scalars = {
|
|
|
42
42
|
input: number;
|
|
43
43
|
output: number;
|
|
44
44
|
};
|
|
45
|
-
/**
|
|
45
|
+
/** Arbitrary-precision signed integer (used for 64-bit ids and chunk coordinates such as appId, userId and chunk x/y/z). ALWAYS transmitted as a base-10 decimal STRING in BOTH directions — send it quoted (e.g. "1024", "-5") and read it back as a string; never use a raw JSON number, because large values overflow IEEE-754 doubles. The server rejects any value that is not a valid integer string. */
|
|
46
46
|
BigInt: {
|
|
47
47
|
input: string;
|
|
48
48
|
output: string;
|
|
@@ -55,20 +55,41 @@ export type Scalars = {
|
|
|
55
55
|
};
|
|
56
56
|
export type Actor = {
|
|
57
57
|
__typename?: 'Actor';
|
|
58
|
+
/** App (game) this actor belongs to. BigInt serialized as a decimal string. */
|
|
58
59
|
appId: Scalars['BigInt']['output'];
|
|
60
|
+
/** Avatar this actor is using, or null. BigInt serialized as a decimal string. */
|
|
59
61
|
avatarId: Maybe<Scalars['BigInt']['output']>;
|
|
62
|
+
/** Chunk-grid coordinates (x, y, z as int64 BigInt decimal strings) locating the actor in the world. */
|
|
60
63
|
chunk: ChunkCoordinates;
|
|
64
|
+
/** Server timestamp (ISO-8601) when the actor row was created. Used as the primary ordering key for host election (oldest fresh actor wins). */
|
|
61
65
|
createdAt: Scalars['DateTime']['output'];
|
|
66
|
+
/** Owner-only private state blob, base64-encoded binary. Stripped (returned null) for non-owners and in public/batch reads such as `batchLookupActors`. */
|
|
62
67
|
privateState: Maybe<Scalars['String']['output']>;
|
|
68
|
+
/** Public state blob, base64-encoded binary; visible to all viewers. */
|
|
63
69
|
publicState: Maybe<Scalars['String']['output']>;
|
|
70
|
+
/** Liveness timestamp (ISO-8601), refreshed by the `actorHeartbeat` mutation. Host election treats actors with a recent `updatedAt` as fresh; stale rows age out of eligibility. */
|
|
64
71
|
updatedAt: Scalars['DateTime']['output'];
|
|
72
|
+
/** Owner user id. BigInt serialized as a decimal string. Ownership gates writes and access to `privateState`. */
|
|
65
73
|
userId: Scalars['BigInt']['output'];
|
|
74
|
+
/** Actor id and primary key: a 32-character ASCII identifier (exactly 32 ASCII characters / 32 raw octets on the UDP wire). This is NOT a hyphenated RFC-4122 UUID. This is the value accepted by all actor `uuid` arguments. */
|
|
66
75
|
uuid: Scalars['ID']['output'];
|
|
67
76
|
};
|
|
77
|
+
/** An edge in a Actor connection. */
|
|
78
|
+
export type ActorEdge = {
|
|
79
|
+
__typename?: 'ActorEdge';
|
|
80
|
+
/** Opaque cursor for this edge. */
|
|
81
|
+
cursor: Scalars['String']['output'];
|
|
82
|
+
/** The node at the end of this edge. */
|
|
83
|
+
node: Actor;
|
|
84
|
+
};
|
|
68
85
|
export type ActorFilterInput = {
|
|
86
|
+
/** Restrict to actors in this app. BigInt sent as a decimal string. */
|
|
69
87
|
appId?: InputMaybe<Scalars['BigInt']['input']>;
|
|
88
|
+
/** Restrict to actors using this avatar. BigInt sent as a decimal string. */
|
|
70
89
|
avatarId?: InputMaybe<Scalars['BigInt']['input']>;
|
|
90
|
+
/** Restrict to actors in this chunk (x, y, z as int64 BigInt decimal strings). */
|
|
71
91
|
chunk?: InputMaybe<ChunkCoordinatesInput>;
|
|
92
|
+
/** Restrict to a single actor by its 32-character ASCII actor id (the UDP-wire id, not a hyphenated UUID). */
|
|
72
93
|
uuid?: InputMaybe<Scalars['String']['input']>;
|
|
73
94
|
};
|
|
74
95
|
/** Notification received when an actor (player or NPC) state is updated by another client or the server. Received via the udpNotifications subscription. */
|
|
@@ -105,7 +126,7 @@ export type ActorUpdateRequestInput = {
|
|
|
105
126
|
decayRate?: InputMaybe<Scalars['Int']['input']>;
|
|
106
127
|
/** Chunk replication distance (0-8). Defaults to 8 for actor updates. Clamped to 0-8. */
|
|
107
128
|
distance?: InputMaybe<Scalars['Int']['input']>;
|
|
108
|
-
/** Client
|
|
129
|
+
/** Client-assigned correlation id for this datagram: a uint8 (0-255) that wraps at gameClientBootstrap.sequenceNumberModulo (256); defaults to 0 if omitted. For CORRELATION ONLY — it is NOT an idempotency key and the server does not dedupe replays. Echoed on the matching response and on any GenericErrorResponse for this send, both delivered on the udpNotifications subscription. */
|
|
109
130
|
sequenceNumber?: InputMaybe<Scalars['Int']['input']>;
|
|
110
131
|
/** The actor state data, base64-encoded. May be an empty string for registration-only updates (no state payload). */
|
|
111
132
|
state: Scalars['String']['input'];
|
|
@@ -129,220 +150,430 @@ export type ActorUpdateResponse = {
|
|
|
129
150
|
distance: Scalars['Int']['output'];
|
|
130
151
|
/** Server-generated epoch milliseconds timestamp. */
|
|
131
152
|
epochMillis: Scalars['BigInt']['output'];
|
|
132
|
-
/** The
|
|
153
|
+
/** The sequenceNumber echoed back from the originating sendActorUpdate request (a uint8, 0-255, wrapping at modulo 256). Use it to correlate this response with that send. Correlation only — not an idempotency key. */
|
|
133
154
|
sequenceNumber: Scalars['Int']['output'];
|
|
134
155
|
/** The unique identifier of the actor that was updated. */
|
|
135
156
|
uuid: Scalars['String']['output'];
|
|
136
157
|
};
|
|
158
|
+
/** Relay-style cursor-paginated connection over the caller’s actors (Actor). Page with `first`/`after`; cursors are opaque. */
|
|
159
|
+
export type ActorsConnection = {
|
|
160
|
+
__typename?: 'ActorsConnection';
|
|
161
|
+
/** Edges on this page. */
|
|
162
|
+
edges: Array<ActorEdge>;
|
|
163
|
+
/** Pagination metadata. */
|
|
164
|
+
pageInfo: ConnectionPageInfo;
|
|
165
|
+
/** Total matching records across all pages, when known (null for sources that do not compute a total). */
|
|
166
|
+
totalCount: Maybe<Scalars['Int']['output']>;
|
|
167
|
+
};
|
|
168
|
+
/** Create a directed edge between two containers. */
|
|
137
169
|
export type AddEdgeInput = {
|
|
170
|
+
/** The app (tenant) that owns the containers. */
|
|
138
171
|
appId: Scalars['BigInt']['input'];
|
|
172
|
+
/** Source container id. */
|
|
139
173
|
fromContainerId: Scalars['String']['input'];
|
|
174
|
+
/** JSON object of edge metadata. */
|
|
140
175
|
metadataJson?: InputMaybe<Scalars['String']['input']>;
|
|
176
|
+
/** The relationship type label. */
|
|
141
177
|
relationshipType: Scalars['String']['input'];
|
|
178
|
+
/** Target container id. */
|
|
142
179
|
toContainerId: Scalars['String']['input'];
|
|
180
|
+
/** Optional edge weight. */
|
|
143
181
|
weight?: InputMaybe<Scalars['Float']['input']>;
|
|
144
182
|
};
|
|
183
|
+
/** A publishable application (game/experience) owned by an organization. Its discoverability is controlled by visibility and its lifecycle by status. */
|
|
145
184
|
export type App = {
|
|
146
185
|
__typename?: 'App';
|
|
186
|
+
/** Unique numeric identifier of the app (primary key). */
|
|
147
187
|
appId: Scalars['BigInt']['output'];
|
|
188
|
+
/** Timestamp when the app was created. */
|
|
148
189
|
createdAt: Scalars['DateTime']['output'];
|
|
190
|
+
/** Numeric user id of the account that created the app. */
|
|
149
191
|
createdBy: Scalars['BigInt']['output'];
|
|
192
|
+
/** Where the app runs: "none" (draft / not deployed), "shared" (the shared game-api), or "dedicated" (a provisioned per-tenant environment). */
|
|
150
193
|
deploymentTarget: Scalars['String']['output'];
|
|
194
|
+
/** Short plain-text description shown in listings; also matched by the marketplace free-text filter. */
|
|
151
195
|
description: Maybe<Scalars['String']['output']>;
|
|
196
|
+
/** Resolved game-api base URL for SDK/runtime calls: the per-tenant URL for dedicated apps, or the shared platform URL for shared apps. Null for legacy or not-yet-deployed apps. */
|
|
152
197
|
gameApiUrl: Maybe<Scalars['String']['output']>;
|
|
198
|
+
/** Opaque JSON-encoded string of marketplace media (cover image URL, screenshots, long description, etc.). Stored internally as JSONB; clients must JSON.parse on read and JSON.stringify on write. Null/"{}" when unset. */
|
|
153
199
|
metadata: Maybe<Scalars['String']['output']>;
|
|
200
|
+
/** Human-readable display name of the app. */
|
|
154
201
|
name: Scalars['String']['output'];
|
|
202
|
+
/** The organization that owns this app. Null if the owning org cannot be found. */
|
|
155
203
|
org: Maybe<Organization>;
|
|
204
|
+
/** Numeric id of the organization that owns this app. */
|
|
156
205
|
orgId: Scalars['BigInt']['output'];
|
|
206
|
+
/** When runtimeStatus is not "active", why the runtime is gated: "free_allowance", "insufficient_funds", "spend_cap", or "subscription_lapsed". Null when active. */
|
|
157
207
|
runtimeDenialReason: Maybe<Scalars['String']['output']>;
|
|
208
|
+
/** Shared-environment runtime gate, mirrored to the game DB and enforced by game-api + Buddy: "active", "grace", "denied", or "suspended". */
|
|
158
209
|
runtimeStatus: Scalars['String']['output'];
|
|
210
|
+
/** URL-safe slug, unique within the org; combined with the org slug to form the marketplace path. May be null for legacy rows. */
|
|
159
211
|
slug: Maybe<Scalars['String']['output']>;
|
|
212
|
+
/** True when this app's runtime data lives in a dedicated per-tenant game-api database (rather than the shared game-api). Used together with gameApiUrl to route gameplay calls. */
|
|
160
213
|
splitMode: Scalars['Boolean']['output'];
|
|
214
|
+
/** Base64-encoded binary blob of the app's persisted runtime/world state; opaque to clients and potentially large. Null when no state has been saved. */
|
|
161
215
|
state: Maybe<Scalars['String']['output']>;
|
|
216
|
+
/** Lifecycle state (DRAFT/LIVE/ARCHIVED). See AppStatus. */
|
|
162
217
|
status: AppStatus;
|
|
218
|
+
/** Timestamp when the app was last updated. */
|
|
163
219
|
updatedAt: Scalars['DateTime']['output'];
|
|
220
|
+
/** Marketplace discoverability (PUBLIC/UNLISTED/PRIVATE). See AppVisibility. */
|
|
164
221
|
visibility: AppVisibility;
|
|
165
222
|
};
|
|
223
|
+
/** A free or purchasable access tier for an app, bundling a price and the set of runtime permission keys that granted users receive. */
|
|
166
224
|
export type AppAccessTier = {
|
|
167
225
|
__typename?: 'AppAccessTier';
|
|
226
|
+
/** Numeric id of the app this tier belongs to. */
|
|
168
227
|
appId: Scalars['BigInt']['output'];
|
|
228
|
+
/** Billing cadence for recurring tiers (e.g. "month", "year"); null for one-time or free tiers. */
|
|
169
229
|
billingPeriod: Maybe<Scalars['String']['output']>;
|
|
230
|
+
/** Timestamp when the tier was created. */
|
|
170
231
|
createdAt: Scalars['DateTime']['output'];
|
|
232
|
+
/** ISO 4217 currency code for priceCents (e.g. "usd"); defaults to "usd". */
|
|
171
233
|
currency: Maybe<Scalars['String']['output']>;
|
|
234
|
+
/** Optional marketing description of what the tier includes. */
|
|
172
235
|
description: Maybe<Scalars['String']['output']>;
|
|
236
|
+
/** True if this is the app default tier (used for open-by-default / self-service grants). At most one default per app is expected. */
|
|
173
237
|
isDefault: Scalars['Boolean']['output'];
|
|
238
|
+
/** True if the tier has no purchase cost. */
|
|
174
239
|
isFree: Scalars['Boolean']['output'];
|
|
240
|
+
/** Display name of the tier (e.g. "Free", "Pro"). */
|
|
175
241
|
name: Scalars['String']['output'];
|
|
242
|
+
/** Runtime permission keys granted to users on this tier (a subset of runtimePermissions), e.g. "access", "teleport", "update_voxel_data", "use_voice_chat". */
|
|
176
243
|
permissionKeys: Array<Scalars['String']['output']>;
|
|
244
|
+
/** Price in the smallest currency unit (cents) for paid tiers; null for free tiers. */
|
|
177
245
|
priceCents: Maybe<Scalars['BigInt']['output']>;
|
|
246
|
+
/** Tier lifecycle: "active" or "archived" (soft-deleted via archiveAccessTier). Defaults to "active". */
|
|
178
247
|
status: Scalars['String']['output'];
|
|
248
|
+
/** Unique numeric id of the tier (primary key). */
|
|
179
249
|
tierId: Scalars['BigInt']['output'];
|
|
250
|
+
/** Sort order for displaying tiers (ascending); lower values appear first. */
|
|
180
251
|
tierOrder: Scalars['Float']['output'];
|
|
252
|
+
/** Timestamp when the tier was last updated. */
|
|
181
253
|
updatedAt: Scalars['DateTime']['output'];
|
|
182
254
|
};
|
|
183
255
|
export type AppAvatarState = {
|
|
184
256
|
__typename?: 'AppAvatarState';
|
|
257
|
+
/** App (game) id this state is scoped to. BigInt serialized as a decimal string. */
|
|
185
258
|
appId: Scalars['BigInt']['output'];
|
|
259
|
+
/** Avatar id this state belongs to. BigInt serialized as a decimal string. */
|
|
186
260
|
avatarId: Scalars['BigInt']['output'];
|
|
261
|
+
/** Row creation timestamp (ISO-8601). */
|
|
187
262
|
createdAt: Scalars['DateTime']['output'];
|
|
263
|
+
/** Per-app avatar state blob, base64-encoded binary; null when cleared. Owner-exclusive write, public read. */
|
|
188
264
|
state: Maybe<Scalars['String']['output']>;
|
|
265
|
+
/** Last-update timestamp (ISO-8601). */
|
|
189
266
|
updatedAt: Scalars['DateTime']['output'];
|
|
190
267
|
};
|
|
191
268
|
export type AppBudget = {
|
|
192
269
|
__typename?: 'AppBudget';
|
|
270
|
+
/** Unique app-budget id (BigInt as a decimal string). */
|
|
193
271
|
appBudgetId: Scalars['BigInt']['output'];
|
|
272
|
+
/** App this budget applies to (BigInt as a decimal string). */
|
|
194
273
|
appId: Scalars['BigInt']['output'];
|
|
274
|
+
/** When the budget was first created (ISO-8601 UTC timestamp). */
|
|
195
275
|
createdAt: Scalars['DateTime']['output'];
|
|
276
|
+
/** Spend so far in the current monthly period, in minor currency units (cents) as a BigInt decimal string. Resets when `periodStart` rolls over to a new month. */
|
|
196
277
|
currentMonthUsageCents: Scalars['BigInt']['output'];
|
|
278
|
+
/** Monthly spend cap in minor currency units (cents) as a BigInt decimal string; null means no cap is configured (unlimited). */
|
|
197
279
|
monthlyLimitCents: Maybe<Scalars['BigInt']['output']>;
|
|
280
|
+
/** Organization that owns the app (BigInt as a decimal string). */
|
|
198
281
|
orgId: Scalars['BigInt']['output'];
|
|
282
|
+
/** Start of the current monthly budget period (ISO-8601 UTC timestamp), truncated to the first day of the month. */
|
|
199
283
|
periodStart: Scalars['DateTime']['output'];
|
|
284
|
+
/** When the budget was last updated (ISO-8601 UTC timestamp). */
|
|
200
285
|
updatedAt: Scalars['DateTime']['output'];
|
|
201
286
|
};
|
|
202
287
|
/** Where an app runs: none (draft), shared (the shared game-api), or dedicated (a provisioned environment). */
|
|
203
288
|
export declare enum AppDeploymentTarget {
|
|
289
|
+
/** Runs on a dedicated, org-provisioned environment. */
|
|
204
290
|
Dedicated = "DEDICATED",
|
|
291
|
+
/** Draft / unpublished: the app is not deployed to any runtime. */
|
|
205
292
|
None = "NONE",
|
|
293
|
+
/** Runs on the multi-tenant shared game-api (publishAppToShared). */
|
|
206
294
|
Shared = "SHARED"
|
|
207
295
|
}
|
|
296
|
+
/** An edge in a App connection. */
|
|
297
|
+
export type AppEdge = {
|
|
298
|
+
__typename?: 'AppEdge';
|
|
299
|
+
/** Opaque cursor for this edge. */
|
|
300
|
+
cursor: Scalars['String']['output'];
|
|
301
|
+
/** The node at the end of this edge. */
|
|
302
|
+
node: App;
|
|
303
|
+
};
|
|
304
|
+
/** Org member eligible for app access grants. Scoped to the app org; requires manage_access_tiers. */
|
|
305
|
+
export type AppGrantMemberCandidate = {
|
|
306
|
+
__typename?: 'AppGrantMemberCandidate';
|
|
307
|
+
/** Email of the candidate, if known. */
|
|
308
|
+
email: Maybe<Scalars['String']['output']>;
|
|
309
|
+
/** Gamertag / display handle of the candidate, if set. */
|
|
310
|
+
gamertag: Maybe<Scalars['String']['output']>;
|
|
311
|
+
/** Numeric id of the candidate user (use with grantAppAccess). */
|
|
312
|
+
userId: Scalars['BigInt']['output'];
|
|
313
|
+
};
|
|
314
|
+
/** Per-app, per-type policy controlling who may create groups of a type and the default membership policy of new groups. */
|
|
208
315
|
export type AppGroupPolicy = {
|
|
209
316
|
__typename?: 'AppGroupPolicy';
|
|
317
|
+
/** The app (tenant) the policy applies to. */
|
|
210
318
|
appId: Scalars['BigInt']['output'];
|
|
211
319
|
/** admin | member | anyone */
|
|
212
320
|
creationPolicy: Scalars['String']['output'];
|
|
213
321
|
/** open | request | invite | admin */
|
|
214
322
|
defaultMembershipPolicy: Scalars['String']['output'];
|
|
323
|
+
/** The group type the policy governs: 'team' | 'channel' | 'grid'. */
|
|
215
324
|
groupType: Scalars['String']['output'];
|
|
325
|
+
/** Optional cap on groups of this type a user may belong to (null = unlimited). */
|
|
216
326
|
maxGroupsPerUser: Maybe<Scalars['Int']['output']>;
|
|
327
|
+
/** Optional cap on members per group (null = unlimited). */
|
|
217
328
|
maxMembers: Maybe<Scalars['Int']['output']>;
|
|
218
329
|
};
|
|
330
|
+
/** Optional filters for the public marketplace apps listing. */
|
|
219
331
|
export type AppMarketplaceFilterInput = {
|
|
332
|
+
/** Restrict results to a single organization by its slug (storefront view). Omit to search across all orgs. */
|
|
220
333
|
orgSlug?: InputMaybe<Scalars['String']['input']>;
|
|
334
|
+
/** Free-text search applied to app name and description (case-insensitive substring match). Omit for no text filter. */
|
|
221
335
|
query?: InputMaybe<Scalars['String']['input']>;
|
|
222
336
|
};
|
|
223
337
|
/** The shared-environment runtime gate + current billing-window usage for an app. */
|
|
224
338
|
export type AppRuntimeState = {
|
|
225
339
|
__typename?: 'AppRuntimeState';
|
|
340
|
+
/** App id (BigInt). */
|
|
226
341
|
appId: Scalars['BigInt']['output'];
|
|
342
|
+
/** Spend so far in the current day window, in cents. */
|
|
227
343
|
currentDayUsageCents: Scalars['BigInt']['output'];
|
|
344
|
+
/** Spend so far in the current hour window, in cents. */
|
|
228
345
|
currentHourUsageCents: Scalars['BigInt']['output'];
|
|
346
|
+
/** Per-app daily spend cap in cents (set via setAppSpendCaps). Null = no cap. */
|
|
229
347
|
dailyLimitCents: Maybe<Scalars['BigInt']['output']>;
|
|
348
|
+
/** Where the app runs (none / shared / dedicated). */
|
|
230
349
|
deploymentTarget: AppDeploymentTarget;
|
|
350
|
+
/** Per-app hourly spend cap in cents (set via setAppSpendCaps). Null = no cap. */
|
|
231
351
|
hourlyLimitCents: Maybe<Scalars['BigInt']['output']>;
|
|
232
352
|
/** free_allowance | insufficient_funds | spend_cap | subscription_lapsed when not active. */
|
|
233
353
|
runtimeDenialReason: Maybe<Scalars['String']['output']>;
|
|
354
|
+
/** Current runtime gate decision (active / grace / denied / suspended). */
|
|
234
355
|
runtimeStatus: AppRuntimeStatus;
|
|
356
|
+
/** Owning org wallet balance, in cents. */
|
|
235
357
|
walletBalanceCents: Scalars['BigInt']['output'];
|
|
236
358
|
};
|
|
237
|
-
/** The per-app runtime gate game-api + Buddy enforce
|
|
359
|
+
/** The per-app runtime gate game-api + Buddy enforce. See runtimeDenialReason when not active. */
|
|
238
360
|
export declare enum AppRuntimeStatus {
|
|
361
|
+
/** Allowed to run; clients may connect. */
|
|
239
362
|
Active = "ACTIVE",
|
|
363
|
+
/** Blocked from running now (e.g. insufficient funds, spend cap hit, or free allowance exhausted); recoverable once the cause clears. */
|
|
240
364
|
Denied = "DENIED",
|
|
365
|
+
/** Still running on a temporary allowance (e.g. low funds) but at risk of being denied soon. */
|
|
241
366
|
Grace = "GRACE",
|
|
367
|
+
/** Hard-stopped (e.g. lapsed subscription); requires action to restore. */
|
|
242
368
|
Suspended = "SUSPENDED"
|
|
243
369
|
}
|
|
370
|
+
/** An app's paid shared-environment subscription. Null (from appSharedSubscription) when the app has none / is on the free quota. */
|
|
244
371
|
export type AppSharedSubscription = {
|
|
245
372
|
__typename?: 'AppSharedSubscription';
|
|
373
|
+
/** App id (BigInt). */
|
|
246
374
|
appId: Scalars['BigInt']['output'];
|
|
375
|
+
/** End of the current paid period (when access lapses if not renewed). */
|
|
247
376
|
currentPeriodEnd: Maybe<Scalars['DateTime']['output']>;
|
|
377
|
+
/** Owning organization id (BigInt). */
|
|
248
378
|
orgId: Scalars['BigInt']['output'];
|
|
379
|
+
/** Subscribed plan id (BigInt). Null when not on a paid plan. */
|
|
249
380
|
planId: Maybe<Scalars['BigInt']['output']>;
|
|
381
|
+
/** Payment provider backing the subscription, e.g. 'stripe'. */
|
|
250
382
|
provider: Maybe<Scalars['String']['output']>;
|
|
383
|
+
/** Subscription status, e.g. 'active', 'past_due', or 'canceled'. */
|
|
251
384
|
status: Scalars['String']['output'];
|
|
252
385
|
};
|
|
253
|
-
/**
|
|
386
|
+
/** Lifecycle state of an app. Independent of AppVisibility; the public marketplace requires status=LIVE. */
|
|
254
387
|
export declare enum AppStatus {
|
|
388
|
+
/** Soft-deleted via archiveApp: retained but read-only and excluded from the marketplace. Reversible by setting status back to DRAFT or LIVE. */
|
|
255
389
|
Archived = "ARCHIVED",
|
|
390
|
+
/** Work-in-progress: invisible to non-members and never listed in the marketplace. Default for newly created apps. */
|
|
256
391
|
Draft = "DRAFT",
|
|
392
|
+
/** Published and purchasable/playable; eligible for the public marketplace when visibility=PUBLIC. */
|
|
257
393
|
Live = "LIVE"
|
|
258
394
|
}
|
|
395
|
+
/** Aggregate byte totals for one app over the requested window. All *Bytes fields are string counters (may exceed Int range). */
|
|
259
396
|
export type AppUsageRollupRow = {
|
|
260
397
|
__typename?: 'AppUsageRollupRow';
|
|
398
|
+
/** App id (as a string). */
|
|
261
399
|
appId: Scalars['String']['output'];
|
|
400
|
+
/** App display name. */
|
|
262
401
|
appName: Scalars['String']['output'];
|
|
402
|
+
/** App slug. */
|
|
263
403
|
appSlug: Scalars['String']['output'];
|
|
404
|
+
/** Total GraphQL bytes received (string counter). */
|
|
264
405
|
graphqlRecvBytes: Scalars['String']['output'];
|
|
406
|
+
/** Total GraphQL bytes sent (string counter). */
|
|
265
407
|
graphqlSendBytes: Scalars['String']['output'];
|
|
408
|
+
/** Total replication bytes received (string counter). */
|
|
266
409
|
replicationRecvBytes: Scalars['String']['output'];
|
|
410
|
+
/** Total replication bytes sent (string counter). */
|
|
267
411
|
replicationSendBytes: Scalars['String']['output'];
|
|
268
412
|
};
|
|
413
|
+
/** Aggregate byte totals plus the top GraphQL operations for one app over the window. */
|
|
269
414
|
export type AppUsageSummary = {
|
|
270
415
|
__typename?: 'AppUsageSummary';
|
|
416
|
+
/** App id (as a string). */
|
|
271
417
|
appId: Scalars['String']['output'];
|
|
418
|
+
/** Total GraphQL bytes received (string counter). */
|
|
272
419
|
graphqlRecvBytes: Scalars['String']['output'];
|
|
420
|
+
/** Total GraphQL bytes sent (string counter). */
|
|
273
421
|
graphqlSendBytes: Scalars['String']['output'];
|
|
422
|
+
/** Total replication bytes received (string counter). */
|
|
274
423
|
replicationRecvBytes: Scalars['String']['output'];
|
|
424
|
+
/** Total replication bytes sent (string counter). */
|
|
275
425
|
replicationSendBytes: Scalars['String']['output'];
|
|
426
|
+
/** Top GraphQL operations by bytes (capped by operationLimit). */
|
|
276
427
|
topGraphqlOperations: Array<GraphqlOperationUsageRow>;
|
|
277
428
|
};
|
|
429
|
+
/** A user's entitlement to a specific app: whether (and via which tier) they may access it. At most one row per (app, user). */
|
|
278
430
|
export type AppUserAccess = {
|
|
279
431
|
__typename?: 'AppUserAccess';
|
|
432
|
+
/** Numeric id of the app this access applies to. */
|
|
280
433
|
appId: Scalars['BigInt']['output'];
|
|
434
|
+
/** Unique numeric id of this access record (primary key). */
|
|
281
435
|
appUserAccessId: Scalars['BigInt']['output'];
|
|
436
|
+
/** Timestamp when the access record was first created. */
|
|
282
437
|
createdAt: Scalars['DateTime']['output'];
|
|
438
|
+
/** Optional expiry timestamp; access is treated as inactive once it has passed. Null means the grant does not expire. */
|
|
283
439
|
expiresAt: Maybe<Scalars['DateTime']['output']>;
|
|
440
|
+
/** Who granted this access: the granting admin's numeric user id (as a string), or "system" for automatic/free-tier grants. */
|
|
284
441
|
grantedBy: Scalars['String']['output'];
|
|
442
|
+
/** Entitlement lifecycle: "active" (currently entitled) or "revoked" (access removed). Only active, non-expired rows grant runtime access. Defaults to "active". */
|
|
285
443
|
status: Scalars['String']['output'];
|
|
444
|
+
/** External billing subscription id (e.g. Stripe/PayPal) backing a paid grant; null for free or manual grants. */
|
|
286
445
|
subscriptionId: Maybe<Scalars['String']['output']>;
|
|
446
|
+
/** The access tier granted by this record. Null if no tier is associated (tierId is null) or the tier could not be loaded. */
|
|
447
|
+
tier: Maybe<AppAccessTier>;
|
|
448
|
+
/** Numeric id of the access tier granting this access; null if access was granted without a specific tier. */
|
|
287
449
|
tierId: Maybe<Scalars['BigInt']['output']>;
|
|
450
|
+
/** Timestamp when the access record was last updated (e.g. re-granted or revoked). */
|
|
288
451
|
updatedAt: Scalars['DateTime']['output'];
|
|
452
|
+
/** The user this access record belongs to. Null if the user could not be loaded. */
|
|
453
|
+
user: Maybe<User>;
|
|
454
|
+
/** Numeric id of the user this access belongs to. */
|
|
289
455
|
userId: Scalars['BigInt']['output'];
|
|
290
456
|
};
|
|
291
|
-
/**
|
|
457
|
+
/** A Relay cursor connection over AppUserAccess records. Page with first/after; pass pageInfo.endCursor back as after for the next page. */
|
|
458
|
+
export type AppUserAccessConnection = {
|
|
459
|
+
__typename?: 'AppUserAccessConnection';
|
|
460
|
+
/** Edges on this page. */
|
|
461
|
+
edges: Array<AppUserAccessEdge>;
|
|
462
|
+
/** Pagination metadata. */
|
|
463
|
+
pageInfo: ConnectionPageInfo;
|
|
464
|
+
/** Total matching records across all pages, when known (null for sources that do not compute a total). */
|
|
465
|
+
totalCount: Maybe<Scalars['Int']['output']>;
|
|
466
|
+
};
|
|
467
|
+
/** An edge in a AppUserAccess connection. */
|
|
468
|
+
export type AppUserAccessEdge = {
|
|
469
|
+
__typename?: 'AppUserAccessEdge';
|
|
470
|
+
/** Opaque cursor for this edge. */
|
|
471
|
+
cursor: Scalars['String']['output'];
|
|
472
|
+
/** The node at the end of this edge. */
|
|
473
|
+
node: AppUserAccess;
|
|
474
|
+
};
|
|
475
|
+
/** Controls where an app can be discovered. Independent of AppStatus (the marketplace additionally requires status=LIVE). */
|
|
292
476
|
export declare enum AppVisibility {
|
|
477
|
+
/** Hidden from the marketplace; visible only to org members and users with an access grant. */
|
|
293
478
|
Private = "PRIVATE",
|
|
479
|
+
/** Listed in the public marketplace (when status=LIVE) and resolvable by slug. */
|
|
294
480
|
Public = "PUBLIC",
|
|
481
|
+
/** Hidden from marketplace listings but accessible to anyone who knows the direct org/app slug link. */
|
|
295
482
|
Unlisted = "UNLISTED"
|
|
296
483
|
}
|
|
484
|
+
/** A Relay cursor connection over App records. Page with first/after; pass pageInfo.endCursor back as after for the next page. */
|
|
485
|
+
export type AppsConnection = {
|
|
486
|
+
__typename?: 'AppsConnection';
|
|
487
|
+
/** Edges on this page. */
|
|
488
|
+
edges: Array<AppEdge>;
|
|
489
|
+
/** Pagination metadata. */
|
|
490
|
+
pageInfo: ConnectionPageInfo;
|
|
491
|
+
/** Total matching records across all pages, when known (null for sources that do not compute a total). */
|
|
492
|
+
totalCount: Maybe<Scalars['Int']['output']>;
|
|
493
|
+
};
|
|
494
|
+
/** A paginated page of apps returned by the marketplace listing. */
|
|
297
495
|
export type AppsPage = {
|
|
298
496
|
__typename?: 'AppsPage';
|
|
497
|
+
/** The apps on this page, ordered newest-first. */
|
|
299
498
|
items: Array<App>;
|
|
499
|
+
/** Pagination metadata: totalCount (total matches ignoring limit/offset) plus the applied limit and offset. */
|
|
300
500
|
pageInfo: PageInfo;
|
|
301
501
|
};
|
|
502
|
+
/** Grant runtime permission keys to a group (optionally one role) on a grid (writes the grid_group_grants input table). */
|
|
302
503
|
export type AssignGroupToGridInput = {
|
|
504
|
+
/** The app (tenant) that owns the grid. */
|
|
303
505
|
appId: Scalars['BigInt']['input'];
|
|
506
|
+
/** Optional expiry; after this time the grant stops contributing to the effective ACL. Null/omitted means it never expires. */
|
|
304
507
|
expiresAt?: InputMaybe<Scalars['DateTime']['input']>;
|
|
508
|
+
/** The grid to grant on. */
|
|
305
509
|
gridId: Scalars['BigInt']['input'];
|
|
510
|
+
/** The group whose members receive the grant. Must belong to the same app. */
|
|
306
511
|
groupId: Scalars['BigInt']['input'];
|
|
307
512
|
/** Optional: scope the grant to members holding this group role. Omit to grant to all members of the group. */
|
|
308
513
|
groupRoleId?: InputMaybe<Scalars['BigInt']['input']>;
|
|
514
|
+
/** Runtime permission key strings to grant to the group/role. Each must be a known key in runtime_permissions, unique, and at most 64 chars. */
|
|
309
515
|
permissionKeys: Array<Scalars['String']['input']>;
|
|
310
516
|
};
|
|
517
|
+
/** Result of a successful login or registration: a session token plus the authenticated user. */
|
|
311
518
|
export type AuthResponse = {
|
|
312
519
|
__typename?: 'AuthResponse';
|
|
520
|
+
/** Identifier of the underlying session (game_token) row, as a String. */
|
|
313
521
|
gameTokenId: Scalars['String']['output'];
|
|
522
|
+
/** Opaque session token. Send it on subsequent requests as the `Authorization: Bearer <token>` header. */
|
|
314
523
|
token: Scalars['String']['output'];
|
|
524
|
+
/** The authenticated user. */
|
|
315
525
|
user: User;
|
|
316
526
|
};
|
|
317
527
|
export type Avatar = {
|
|
318
528
|
__typename?: 'Avatar';
|
|
529
|
+
/** Avatar id and primary key (auto-increment). Serialized as a GraphQL ID (a numeric string). */
|
|
319
530
|
avatarId: Scalars['ID']['output'];
|
|
531
|
+
/** Server timestamp (ISO-8601) when the avatar was created. */
|
|
320
532
|
createdAt: Scalars['DateTime']['output'];
|
|
533
|
+
/** Human-readable avatar name. */
|
|
321
534
|
name: Scalars['String']['output'];
|
|
535
|
+
/** Owner-only private state blob, base64-encoded binary. Stripped (returned null) for non-owners (e.g. via `userAvatars`/`avatar` when the caller is not the owner). */
|
|
322
536
|
privateState: Maybe<Scalars['String']['output']>;
|
|
537
|
+
/** Public state blob, base64-encoded binary; visible to all viewers. */
|
|
323
538
|
publicState: Maybe<Scalars['String']['output']>;
|
|
539
|
+
/** Owner user id. BigInt serialized as a decimal string. NOTE: the AvatarDTO returned by `myAvatars` exposes this same value typed as a GraphQL ID instead of BigInt. */
|
|
324
540
|
userId: Scalars['BigInt']['output'];
|
|
325
541
|
};
|
|
326
542
|
export type AvatarDto = {
|
|
327
543
|
__typename?: 'AvatarDTO';
|
|
544
|
+
/** Avatar id, serialized as a GraphQL ID (a numeric string). */
|
|
328
545
|
avatarId: Scalars['ID']['output'];
|
|
546
|
+
/** Server timestamp (ISO-8601) when the avatar was created. */
|
|
329
547
|
createdAt: Scalars['DateTime']['output'];
|
|
548
|
+
/** Human-readable avatar name. */
|
|
330
549
|
name: Scalars['String']['output'];
|
|
550
|
+
/** Owner-only private state blob, base64-encoded binary. Returned by `myAvatars` (caller is the owner); stripped to null for non-owners on other queries. */
|
|
331
551
|
privateState: Maybe<Scalars['String']['output']>;
|
|
552
|
+
/** Public state blob, base64-encoded binary; visible to all viewers. */
|
|
332
553
|
publicState: Maybe<Scalars['String']['output']>;
|
|
554
|
+
/** Owner user id, serialized as a GraphQL ID (a numeric string). Same underlying value as Avatar.userId, which is typed as BigInt. */
|
|
333
555
|
userId: Scalars['ID']['output'];
|
|
334
556
|
};
|
|
335
557
|
export type BatchActorLookupInput = {
|
|
558
|
+
/** Actor ids to look up. Each is exactly 32 ASCII characters (the UDP-wire actor id), NOT a hyphenated RFC-4122 UUID. Must be non-empty; unknown ids are silently omitted from the result. */
|
|
336
559
|
uuids: Array<Scalars['String']['input']>;
|
|
337
560
|
};
|
|
561
|
+
/** Live (most recent heartbeat) Buddy UDP throughput rates. */
|
|
338
562
|
export type BuddyLiveRates = {
|
|
339
563
|
__typename?: 'BuddyLiveRates';
|
|
564
|
+
/** Megabits per second received from clients. */
|
|
340
565
|
clientRecvMbitPerSec: Scalars['Float']['output'];
|
|
566
|
+
/** Messages per second received from clients. */
|
|
341
567
|
clientRecvMsgsPerSec: Scalars['Float']['output'];
|
|
568
|
+
/** Megabits per second sent to clients. */
|
|
342
569
|
clientSendMbitPerSec: Scalars['Float']['output'];
|
|
570
|
+
/** Messages per second sent to clients. */
|
|
343
571
|
clientSendMsgsPerSec: Scalars['Float']['output'];
|
|
572
|
+
/** Currently connected client count. */
|
|
344
573
|
clients: Scalars['Float']['output'];
|
|
574
|
+
/** Buddy/runtime server id reporting these rates. */
|
|
345
575
|
serverId: Scalars['String']['output'];
|
|
576
|
+
/** Timestamp of the heartbeat these rates came from. */
|
|
346
577
|
updatedAt: Scalars['DateTime']['output'];
|
|
347
578
|
};
|
|
348
579
|
/** Input for publishing a message to a channel. Delivered to every active member of the channel (regardless of location), not chunk-routed. The sender must have the channel send_messages permission. */
|
|
@@ -351,7 +582,7 @@ export type ChannelMessageInput = {
|
|
|
351
582
|
channelId: Scalars['BigInt']['input'];
|
|
352
583
|
/** The message payload, base64-encoded. Opaque to the server; decode per your application protocol. Max 1024 bytes. */
|
|
353
584
|
payload: Scalars['String']['input'];
|
|
354
|
-
/** Client
|
|
585
|
+
/** Client-assigned correlation id for this datagram: a uint8 (0-255) that wraps at gameClientBootstrap.sequenceNumberModulo (256); defaults to 0 if omitted. For CORRELATION ONLY — it is NOT an idempotency key and the server does not dedupe replays. Echoed on any GenericErrorResponse for this send, delivered on the udpNotifications subscription. */
|
|
355
586
|
sequenceNumber?: InputMaybe<Scalars['Int']['input']>;
|
|
356
587
|
/** The sender's actor UUID (your own actor's UUID). Must be exactly 32 bytes when encoded as UTF-8. */
|
|
357
588
|
uuid: Scalars['String']['input'];
|
|
@@ -372,125 +603,229 @@ export type ChannelMessageNotification = {
|
|
|
372
603
|
};
|
|
373
604
|
export type Checkout = {
|
|
374
605
|
__typename?: 'Checkout';
|
|
606
|
+
/** Charge amount in minor currency units (cents) of `currency`, as a BigInt decimal string; null when the purpose carries no amount. */
|
|
375
607
|
amountCents: Maybe<Scalars['BigInt']['output']>;
|
|
608
|
+
/** Target app for the purpose (BigInt as a decimal string); null when not applicable. */
|
|
376
609
|
appId: Maybe<Scalars['BigInt']['output']>;
|
|
610
|
+
/** Unique checkout id (BigInt as a decimal string). */
|
|
377
611
|
checkoutId: Scalars['BigInt']['output'];
|
|
612
|
+
/** When the checkout reached COMPLETED (ISO-8601 UTC timestamp); null until then. */
|
|
378
613
|
completedAt: Maybe<Scalars['DateTime']['output']>;
|
|
614
|
+
/** When the checkout was created (ISO-8601 UTC timestamp). */
|
|
379
615
|
createdAt: Scalars['DateTime']['output'];
|
|
616
|
+
/** ISO-4217 currency code for `amountCents`, lowercase (e.g. "usd"); null when no amount applies. */
|
|
380
617
|
currency: Maybe<Scalars['String']['output']>;
|
|
618
|
+
/** Failure reason when `status` is FAILED; null otherwise. */
|
|
381
619
|
error: Maybe<Scalars['String']['output']>;
|
|
620
|
+
/** When the provider session expires if still unpaid (ISO-8601 UTC timestamp); null if there is no expiry. */
|
|
382
621
|
expiresAt: Maybe<Scalars['DateTime']['output']>;
|
|
383
|
-
/** Stripe Checkout Session id, PayPal Order id
|
|
622
|
+
/** Identifier of the session/order in the provider (e.g. Stripe Checkout Session id, PayPal Order id). */
|
|
384
623
|
externalId: Scalars['String']['output'];
|
|
385
|
-
/** URL to redirect the user to. */
|
|
624
|
+
/** Provider-hosted URL to redirect the user to in order to complete payment. */
|
|
386
625
|
externalUrl: Scalars['String']['output'];
|
|
626
|
+
/** Target organization for the purpose (BigInt as a decimal string); null when not applicable. */
|
|
387
627
|
orgId: Maybe<Scalars['BigInt']['output']>;
|
|
628
|
+
/** Payment processor handling this checkout. */
|
|
388
629
|
provider: PaymentProvider;
|
|
630
|
+
/** Why the checkout was created; determines the side effect applied on completion. */
|
|
389
631
|
purpose: CheckoutPurpose;
|
|
632
|
+
/** Current lifecycle state, updated by webhook reconciliation (not by the redirect). */
|
|
390
633
|
status: CheckoutStatus;
|
|
634
|
+
/** Access tier being purchased (BigInt as a decimal string); set for APP_ACCESS_PURCHASE, otherwise null. */
|
|
391
635
|
tierId: Maybe<Scalars['BigInt']['output']>;
|
|
636
|
+
/** User who initiated the checkout (BigInt as a decimal string). */
|
|
392
637
|
userId: Scalars['BigInt']['output'];
|
|
393
638
|
};
|
|
639
|
+
/** An edge in a Checkout connection. */
|
|
640
|
+
export type CheckoutEdge = {
|
|
641
|
+
__typename?: 'CheckoutEdge';
|
|
642
|
+
/** Opaque cursor for this edge. */
|
|
643
|
+
cursor: Scalars['String']['output'];
|
|
644
|
+
/** The node at the end of this edge. */
|
|
645
|
+
node: Checkout;
|
|
646
|
+
};
|
|
394
647
|
export type CheckoutFilterInput = {
|
|
648
|
+
/** Only return checkouts targeting this app (BigInt as a decimal string). */
|
|
395
649
|
appId?: InputMaybe<Scalars['BigInt']['input']>;
|
|
650
|
+
/** Only return checkouts targeting this organization (BigInt as a decimal string). */
|
|
396
651
|
orgId?: InputMaybe<Scalars['BigInt']['input']>;
|
|
652
|
+
/** Only return checkouts using this payment provider. */
|
|
397
653
|
provider?: InputMaybe<PaymentProvider>;
|
|
654
|
+
/** Only return checkouts created for this purpose. */
|
|
398
655
|
purpose?: InputMaybe<CheckoutPurpose>;
|
|
656
|
+
/** Only return checkouts in this lifecycle status. */
|
|
399
657
|
status?: InputMaybe<CheckoutStatus>;
|
|
658
|
+
/** Only return checkouts created by this user (BigInt as a decimal string). */
|
|
400
659
|
userId?: InputMaybe<Scalars['BigInt']['input']>;
|
|
401
660
|
};
|
|
402
661
|
/** Why the checkout exists. Drives which side effect runs on webhook completion: ORG_WALLET_TOPUP credits an org_wallet; APP_ACCESS_PURCHASE upserts app_user_access; DONATION inserts donations; PROPERTY_TOKENS credits property_tokens; SHARED_APP_SUBSCRIPTION activates a paid shared-environment app slot. */
|
|
403
662
|
export declare enum CheckoutPurpose {
|
|
663
|
+
/** Purchase a user's access to an app at a given tier. Requires appId and tierId. Upserts app_user_access on completion. */
|
|
404
664
|
AppAccessPurchase = "APP_ACCESS_PURCHASE",
|
|
665
|
+
/**
|
|
666
|
+
* Deprecated. Historically a one-off donation to an app. No longer purchasable and rejected at runtime by createCheckout.
|
|
667
|
+
* @deprecated No longer purchasable; use ORG_WALLET_TOPUP or APP_ACCESS_PURCHASE. Retained for historical checkouts.
|
|
668
|
+
*/
|
|
405
669
|
Donation = "DONATION",
|
|
670
|
+
/** Add funds to an organization wallet. Requires orgId and amountCents, and the caller must hold the org "manage_billing" permission. Credits the org wallet on completion. */
|
|
406
671
|
OrgWalletTopup = "ORG_WALLET_TOPUP",
|
|
672
|
+
/**
|
|
673
|
+
* Deprecated. Historically a purchase of in-world property tokens. No longer purchasable and rejected at runtime by createCheckout.
|
|
674
|
+
* @deprecated No longer purchasable; use ORG_WALLET_TOPUP or APP_ACCESS_PURCHASE. Retained for historical checkouts.
|
|
675
|
+
*/
|
|
407
676
|
PropertyTokens = "PROPERTY_TOKENS",
|
|
677
|
+
/** Recurring subscription for a paid app slot on the shared environment, beyond the org's free app quota. Requires appId and planId (a shared_env_plans.plan_id). Activates the paid slot on completion. */
|
|
408
678
|
SharedAppSubscription = "SHARED_APP_SUBSCRIPTION"
|
|
409
679
|
}
|
|
410
680
|
/** Lifecycle state of a Checkout. Updated by webhook reconciliation, not by the redirect URL. */
|
|
411
681
|
export declare enum CheckoutStatus {
|
|
682
|
+
/** The user abandoned or canceled the checkout before completion. Terminal state. */
|
|
412
683
|
Canceled = "CANCELED",
|
|
684
|
+
/** Payment succeeded and the purpose side effect was applied (e.g. wallet credited). Terminal success state. */
|
|
413
685
|
Completed = "COMPLETED",
|
|
686
|
+
/** The provider session expired before payment completed (see `expiresAt`). Terminal state. */
|
|
414
687
|
Expired = "EXPIRED",
|
|
688
|
+
/** Payment attempt failed or was declined; see the checkout `error` field for details. Terminal failure state. */
|
|
415
689
|
Failed = "FAILED",
|
|
690
|
+
/** Created and awaiting payment. Initial state right after createCheckout; the user has not finished paying yet. */
|
|
416
691
|
Pending = "PENDING"
|
|
417
692
|
}
|
|
693
|
+
/** A Relay cursor connection over Checkout records. Page with first/after; pass pageInfo.endCursor back as after for the next page. */
|
|
694
|
+
export type CheckoutsConnection = {
|
|
695
|
+
__typename?: 'CheckoutsConnection';
|
|
696
|
+
/** Edges on this page. */
|
|
697
|
+
edges: Array<CheckoutEdge>;
|
|
698
|
+
/** Pagination metadata. */
|
|
699
|
+
pageInfo: ConnectionPageInfo;
|
|
700
|
+
/** Total matching records across all pages, when known (null for sources that do not compute a total). */
|
|
701
|
+
totalCount: Maybe<Scalars['Int']['output']>;
|
|
702
|
+
};
|
|
703
|
+
/** A page of checkouts with offset/limit pagination metadata. */
|
|
418
704
|
export type CheckoutsPage = {
|
|
419
705
|
__typename?: 'CheckoutsPage';
|
|
706
|
+
/** The checkouts on this page, ordered newest first. */
|
|
420
707
|
items: Array<Checkout>;
|
|
708
|
+
/** Offset/limit pagination metadata (totalCount, limit, offset) for this result set. */
|
|
421
709
|
pageInfo: PageInfo;
|
|
422
710
|
};
|
|
711
|
+
/** A persisted 16x16x16-voxel chunk (4096 voxels) of an app's voxel world. Holds the packed voxel-type grid (`voxels`), sparse per-voxel state overrides (`voxelStates`), an optional opaque chunk-level state blob (`chunkState`), and level-of-detail meshes (`lods`). Returned by getChunk/getChunksByDistance and written by updateChunk/updateChunkState/updateChunkLods. */
|
|
423
712
|
export type Chunk = {
|
|
424
713
|
__typename?: 'Chunk';
|
|
714
|
+
/** Id of the app that owns this chunk (decimal string). */
|
|
425
715
|
appId: Scalars['ID']['output'];
|
|
716
|
+
/** Timestamp the chunk's binary (d2.bin) was last synced to the CDN/S3, or null if it has never been uploaded. */
|
|
426
717
|
cdnUploadedAt: Maybe<Scalars['DateTime']['output']>;
|
|
718
|
+
/** Server-assigned unique chunk id (decimal string). */
|
|
427
719
|
chunkId: Scalars['ID']['output'];
|
|
720
|
+
/** BASE64-encoded opaque binary blob holding chunk-LEVEL state (distinct from per-voxel state). Decode from base64; null when unset. Written only via updateChunkState and preserved by updateChunk/updateChunkLods. */
|
|
428
721
|
chunkState: Maybe<Scalars['String']['output']>;
|
|
722
|
+
/** This chunk's address in the app's world grid. */
|
|
429
723
|
coordinates: ChunkCoordinates;
|
|
724
|
+
/** Timestamp when this chunk row was first created. */
|
|
430
725
|
createdAt: Scalars['DateTime']['output'];
|
|
726
|
+
/** Level-of-detail (LOD) entries for this chunk (coarser sampled representations), or null if none. Each entry is keyed by integer level (0 = finest) and carries a base64-encoded binary blob. */
|
|
431
727
|
lods: Maybe<Array<LodData>>;
|
|
728
|
+
/** User id (decimal string) of the last writer of this chunk, or null if unknown. */
|
|
432
729
|
owner: Maybe<Scalars['ID']['output']>;
|
|
730
|
+
/** Timestamp of the most recent write to this chunk. */
|
|
433
731
|
updatedAt: Scalars['DateTime']['output'];
|
|
732
|
+
/** Sparse list of per-voxel state overrides (e.g. rotation, atlas, flags) for voxels that need more than a plain type byte. Empty when no voxel carries extra state. */
|
|
434
733
|
voxelStates: Array<VoxelState>;
|
|
734
|
+
/** BASE64-encoded binary blob of the dense voxel-type grid. When present, the DECODED buffer is exactly 4096 bytes: one unsigned byte (voxel type 0-255) per voxel, indexed as x + y*16 + z*256 with x,y,z in 0-15. Null when the chunk has no voxel grid yet. Decode from base64 before reading. */
|
|
435
735
|
voxels: Maybe<Scalars['String']['output']>;
|
|
436
736
|
};
|
|
737
|
+
/** Integer (x, y, z) address of a 16x16x16-voxel chunk within an app's world grid. Each unit step moves one whole chunk (16 voxels) along that axis. Components are signed 64-bit integers serialized as decimal strings (see the BigInt scalar). */
|
|
437
738
|
export type ChunkCoordinates = {
|
|
438
739
|
__typename?: 'ChunkCoordinates';
|
|
740
|
+
/** Chunk index along X as a decimal string; +1 = one chunk (16 voxels) further along X. */
|
|
439
741
|
x: Scalars['BigInt']['output'];
|
|
742
|
+
/** Chunk index along Y as a decimal string; +1 = one chunk (16 voxels) further along Y. */
|
|
440
743
|
y: Scalars['BigInt']['output'];
|
|
744
|
+
/** Chunk index along Z as a decimal string; +1 = one chunk (16 voxels) further along Z. */
|
|
441
745
|
z: Scalars['BigInt']['output'];
|
|
442
746
|
};
|
|
747
|
+
/** Input form of a chunk address (see ChunkCoordinates). Each component is a signed 64-bit integer passed as a decimal string (see the BigInt scalar); all three are required. */
|
|
443
748
|
export type ChunkCoordinatesInput = {
|
|
749
|
+
/** Chunk index along X as a decimal string (required). */
|
|
444
750
|
x: Scalars['BigInt']['input'];
|
|
751
|
+
/** Chunk index along Y as a decimal string (required). */
|
|
445
752
|
y: Scalars['BigInt']['input'];
|
|
753
|
+
/** Chunk index along Z as a decimal string (required). */
|
|
446
754
|
z: Scalars['BigInt']['input'];
|
|
447
755
|
};
|
|
756
|
+
/** Result of getChunkLods: identifying info for a chunk plus the LOD levels that were requested. */
|
|
448
757
|
export type ChunkLodsResponse = {
|
|
449
758
|
__typename?: 'ChunkLodsResponse';
|
|
759
|
+
/** Owning app id (decimal string). */
|
|
450
760
|
appId: Scalars['ID']['output'];
|
|
761
|
+
/** Chunk id (decimal string). */
|
|
451
762
|
chunkId: Scalars['ID']['output'];
|
|
763
|
+
/** Address of the chunk. */
|
|
452
764
|
coordinates: ChunkCoordinates;
|
|
765
|
+
/** The requested LOD levels for the chunk. */
|
|
453
766
|
lods: Array<LodData>;
|
|
767
|
+
/** Timestamp when the chunk was last updated. */
|
|
454
768
|
updatedAt: Scalars['DateTime']['output'];
|
|
455
769
|
};
|
|
770
|
+
/** Payload for updateChunk: upserts a chunk's dense voxel grid and/or per-voxel states and logs each provided state as an individual voxel update. Does NOT modify chunkState or LODs. */
|
|
456
771
|
export type ChunkUpdateInput = {
|
|
772
|
+
/** Id of the app that owns the chunk (decimal string). */
|
|
457
773
|
appId: Scalars['BigInt']['input'];
|
|
774
|
+
/** Address of the chunk to create or update. */
|
|
458
775
|
coordinates: ChunkCoordinatesInput;
|
|
776
|
+
/** Optional per-voxel state overrides to write; each entry is also recorded as an individual voxel update. Omit to leave existing states unchanged. */
|
|
459
777
|
voxelStates?: InputMaybe<Array<VoxelStateInput>>;
|
|
778
|
+
/** Optional BASE64-encoded dense voxel grid. The DECODED buffer must be exactly 4096 bytes: one voxel-type byte (0-255) per voxel, indexed x + y*16 + z*256 (x,y,z in 0-15). Omit to leave the existing grid unchanged. */
|
|
460
779
|
voxels?: InputMaybe<Scalars['String']['input']>;
|
|
461
780
|
};
|
|
781
|
+
/** Result of getVoxelList: the queried chunk address together with its recorded voxel edits. */
|
|
462
782
|
export type ChunkVoxelResponse = {
|
|
463
783
|
__typename?: 'ChunkVoxelResponse';
|
|
784
|
+
/** Address of the chunk the voxel edits belong to. */
|
|
464
785
|
coordinates: ChunkCoordinates;
|
|
786
|
+
/** Recorded voxel edits for the chunk, newest first. */
|
|
465
787
|
voxels: Array<Voxel>;
|
|
466
788
|
};
|
|
789
|
+
/** Recorded voxel edits for a single chunk within a distance query, newest first. */
|
|
467
790
|
export type ChunkVoxelUpdatesResponse = {
|
|
468
791
|
__typename?: 'ChunkVoxelUpdatesResponse';
|
|
792
|
+
/** Address of the chunk these voxel edits belong to. */
|
|
469
793
|
coordinates: ChunkCoordinates;
|
|
794
|
+
/** Voxel edits for this chunk, newest first. */
|
|
470
795
|
voxels: Array<Voxel>;
|
|
471
796
|
};
|
|
797
|
+
/** Paginated result of getChunksByDistance: the chunks found within the search cube plus an echo of the pagination applied. */
|
|
472
798
|
export type ChunksByDistanceResponse = {
|
|
473
799
|
__typename?: 'ChunksByDistanceResponse';
|
|
800
|
+
/** Chunks found within the search cube. */
|
|
474
801
|
chunks: Array<Chunk>;
|
|
802
|
+
/** Echo of the `limit` applied to this page, or null if none was supplied. */
|
|
475
803
|
limit: Maybe<Scalars['Int']['output']>;
|
|
804
|
+
/** Echo of the `skip` applied to this page, or null if none was supplied. */
|
|
476
805
|
skip: Maybe<Scalars['Int']['output']>;
|
|
477
806
|
};
|
|
478
807
|
export type CksBuddyHealth = {
|
|
479
808
|
__typename?: 'CksBuddyHealth';
|
|
809
|
+
/** UDP port clients connect to on the Buddy server. */
|
|
480
810
|
clientPort: Maybe<Scalars['Int']['output']>;
|
|
811
|
+
/** Currently connected client count reported by Buddy. */
|
|
481
812
|
clients: Maybe<Scalars['Int']['output']>;
|
|
482
813
|
/** Seconds since server_status.updated_at (game DB heartbeat). */
|
|
483
814
|
heartbeatAgeSec: Maybe<Scalars['Float']['output']>;
|
|
815
|
+
/** Public IPv4 of the Buddy UDP runtime VM, if registered. */
|
|
484
816
|
ip4: Maybe<Scalars['String']['output']>;
|
|
485
817
|
/** True when heartbeat is missing or older than the staleness threshold (~30s). Game-api rejects assignment when age > ~11s. */
|
|
486
818
|
isStale: Scalars['Boolean']['output'];
|
|
487
819
|
/** False when no server_status row exists for this environment. */
|
|
488
820
|
registered: Scalars['Boolean']['output'];
|
|
821
|
+
/** Buddy-reported server state from server_status (e.g. 'ReadyForClients'). */
|
|
489
822
|
status: Maybe<Scalars['String']['output']>;
|
|
490
823
|
/** Operator-facing hint when multiplayer assignment may fail. */
|
|
491
824
|
troubleshootingHint: Scalars['String']['output'];
|
|
825
|
+
/** Timestamp of the last server_status heartbeat (game DB). */
|
|
492
826
|
updatedAt: Maybe<Scalars['DateTime']['output']>;
|
|
493
827
|
};
|
|
828
|
+
/** Live progress for the active (or most recent failed) deploy/destroy change order, with per-task counts and a retry hint. */
|
|
494
829
|
export type CksDeployProgress = {
|
|
495
830
|
__typename?: 'CksDeployProgress';
|
|
496
831
|
/** Redeploy is allowed (failed deploy or stuck order cleared) */
|
|
@@ -512,6 +847,7 @@ export type CksDeployProgress = {
|
|
|
512
847
|
tasksSucceeded: Scalars['Int']['output'];
|
|
513
848
|
tasksTotal: Scalars['Int']['output'];
|
|
514
849
|
};
|
|
850
|
+
/** A single step within a deploy/destroy task, with its retry attempt and any error. */
|
|
515
851
|
export type CksDeployProgressStep = {
|
|
516
852
|
__typename?: 'CksDeployProgressStep';
|
|
517
853
|
attempt: Scalars['Int']['output'];
|
|
@@ -522,6 +858,7 @@ export type CksDeployProgressStep = {
|
|
|
522
858
|
label: Scalars['String']['output'];
|
|
523
859
|
status: Scalars['String']['output'];
|
|
524
860
|
};
|
|
861
|
+
/** A task in a deploy/destroy pipeline, containing ordered steps. */
|
|
525
862
|
export type CksDeployProgressTask = {
|
|
526
863
|
__typename?: 'CksDeployProgressTask';
|
|
527
864
|
error: Maybe<Scalars['String']['output']>;
|
|
@@ -531,13 +868,17 @@ export type CksDeployProgressTask = {
|
|
|
531
868
|
status: Scalars['String']['output'];
|
|
532
869
|
steps: Array<CksDeployProgressStep>;
|
|
533
870
|
};
|
|
871
|
+
/** A provisioned (or provisioning/destroyed) tenant environment. status tracks provisioning lifecycle; billingStatus tracks payment lifecycle — they are independent. */
|
|
534
872
|
export type CksEnvironment = {
|
|
535
873
|
__typename?: 'CksEnvironment';
|
|
874
|
+
/** When billingStatus = grace, the deadline to add funds before suspension (~24h after the failed charge). Null otherwise. */
|
|
536
875
|
billingGraceDeadline: Maybe<Scalars['DateTime']['output']>;
|
|
876
|
+
/** Payment lifecycle (NOT provisioning): active; grace (a charge failed — funds must be added before billingGraceDeadline); suspension_queued -> suspended (runtime stopped for non-payment); resume_queued -> active after payment (resume_failed on error). Recover with resumeEnvironment. */
|
|
537
877
|
billingStatus: Scalars['String']['output'];
|
|
538
878
|
caddyFlavor: Maybe<Scalars['String']['output']>;
|
|
539
879
|
createdAt: Scalars['DateTime']['output'];
|
|
540
880
|
databaseFlavor: Maybe<Scalars['String']['output']>;
|
|
881
|
+
/** Environment release version the platform is driving toward (target/desired state). */
|
|
541
882
|
desiredEnvironmentVersion: Maybe<Scalars['String']['output']>;
|
|
542
883
|
displayName: Scalars['String']['output'];
|
|
543
884
|
/** 'dedicated' (multi-VM) or 'dev_single' (one dev-only VM). */
|
|
@@ -545,23 +886,33 @@ export type CksEnvironment = {
|
|
|
545
886
|
gameApiFlavor: Maybe<Scalars['String']['output']>;
|
|
546
887
|
gameApiMaxServers: Scalars['Int']['output'];
|
|
547
888
|
gameApiMinServers: Scalars['Int']['output'];
|
|
889
|
+
/** Opaque environment UUID (cks_environments.id). */
|
|
548
890
|
id: Scalars['String']['output'];
|
|
549
891
|
loadBalancerCount: Scalars['Int']['output'];
|
|
892
|
+
/** Release version actually observed running. Lags desiredEnvironmentVersion while a deploy is in progress. */
|
|
550
893
|
observedEnvironmentVersion: Maybe<Scalars['String']['output']>;
|
|
894
|
+
/** Owning organization id (BigInt). */
|
|
551
895
|
orgId: Scalars['BigInt']['output'];
|
|
896
|
+
/** Cloud provider, e.g. 'ovh'. */
|
|
552
897
|
primaryCloud: Scalars['String']['output'];
|
|
898
|
+
/** Primary datacenter/region code, e.g. 'GRA11'. */
|
|
553
899
|
primaryRegion: Scalars['String']['output'];
|
|
554
900
|
/** Single VM flavor when environmentClass = 'dev_single'. */
|
|
555
901
|
singleBoxFlavor: Maybe<Scalars['String']['output']>;
|
|
902
|
+
/** URL-safe environment identifier, stable for the environment's lifetime. Auto-generated as 'e-<12 chars>' unless a custom slug was supplied at creation. */
|
|
556
903
|
slug: Scalars['String']['output'];
|
|
904
|
+
/** Provisioning lifecycle (NOT billing): deploy_requested -> provisioning -> active; deploy_failed on error; destroy_requested -> destroyed (destroy_failed on error). See billingStatus for payment state. */
|
|
557
905
|
status: Scalars['String']['output'];
|
|
906
|
+
/** Subdomain handle used to build the environment public URLs. Null until assigned. */
|
|
558
907
|
subdomainHandle: Maybe<Scalars['String']['output']>;
|
|
908
|
+
/** When the environment was suspended for non-payment. Null unless suspended. */
|
|
559
909
|
suspendedAt: Maybe<Scalars['DateTime']['output']>;
|
|
560
910
|
udpBuddyFlavor: Maybe<Scalars['String']['output']>;
|
|
561
911
|
udpBuddyMaxServers: Scalars['Int']['output'];
|
|
562
912
|
udpBuddyMinServers: Scalars['Int']['output'];
|
|
563
913
|
updatedAt: Scalars['DateTime']['output'];
|
|
564
914
|
};
|
|
915
|
+
/** Audit-log entry recording an environment lifecycle action. */
|
|
565
916
|
export type CksEnvironmentAudit = {
|
|
566
917
|
__typename?: 'CksEnvironmentAudit';
|
|
567
918
|
action: Scalars['String']['output'];
|
|
@@ -570,10 +921,12 @@ export type CksEnvironmentAudit = {
|
|
|
570
921
|
id: Scalars['String']['output'];
|
|
571
922
|
payloadJson: Maybe<Scalars['String']['output']>;
|
|
572
923
|
};
|
|
924
|
+
/** A billable cloud resource attributed to the environment, with its customer hourly price. */
|
|
573
925
|
export type CksEnvironmentBillingResource = {
|
|
574
926
|
__typename?: 'CksEnvironmentBillingResource';
|
|
575
927
|
componentKind: Scalars['String']['output'];
|
|
576
928
|
currency: Scalars['String']['output'];
|
|
929
|
+
/** Customer hourly price billed for this resource, in cents. */
|
|
577
930
|
customerHourlyPriceCents: Maybe<Scalars['BigInt']['output']>;
|
|
578
931
|
environmentId: Scalars['String']['output'];
|
|
579
932
|
flavorName: Maybe<Scalars['String']['output']>;
|
|
@@ -585,6 +938,7 @@ export type CksEnvironmentBillingResource = {
|
|
|
585
938
|
resourceName: Maybe<Scalars['String']['output']>;
|
|
586
939
|
status: Scalars['String']['output'];
|
|
587
940
|
};
|
|
941
|
+
/** An asynchronous change order tracking a deploy / destroy / scaling pipeline for an environment. Returned by mutations so callers can poll completion. */
|
|
588
942
|
export type CksEnvironmentChangeOrder = {
|
|
589
943
|
__typename?: 'CksEnvironmentChangeOrder';
|
|
590
944
|
claimedAt: Maybe<Scalars['DateTime']['output']>;
|
|
@@ -593,13 +947,19 @@ export type CksEnvironmentChangeOrder = {
|
|
|
593
947
|
environmentId: Scalars['String']['output'];
|
|
594
948
|
error: Maybe<Scalars['String']['output']>;
|
|
595
949
|
finishedAt: Maybe<Scalars['DateTime']['output']>;
|
|
950
|
+
/** Change order UUID. */
|
|
596
951
|
id: Scalars['String']['output'];
|
|
952
|
+
/** Pipeline kind, e.g. 'deploy_environment_version', 'game_api_environment_destroy', or 'postgres_citus_destroy'. */
|
|
597
953
|
kind: Scalars['String']['output'];
|
|
954
|
+
/** JSON-encoded change order payload. */
|
|
598
955
|
payloadJson: Scalars['String']['output'];
|
|
956
|
+
/** User id (BigInt) that requested the change order. */
|
|
599
957
|
requestedBy: Maybe<Scalars['BigInt']['output']>;
|
|
958
|
+
/** Execution status: pending, claimed/in_progress, succeeded, failed, or cancelled. */
|
|
600
959
|
status: Scalars['String']['output'];
|
|
601
960
|
updatedAt: Scalars['DateTime']['output'];
|
|
602
961
|
};
|
|
962
|
+
/** One provisioned component of an environment (DNS, database VM, game-api, Buddy, load balancer, etc.) with its desired vs. observed version and spec. */
|
|
603
963
|
export type CksEnvironmentComponent = {
|
|
604
964
|
__typename?: 'CksEnvironmentComponent';
|
|
605
965
|
desiredSpecJson: Maybe<Scalars['String']['output']>;
|
|
@@ -612,6 +972,7 @@ export type CksEnvironmentComponent = {
|
|
|
612
972
|
observedVersion: Maybe<Scalars['String']['output']>;
|
|
613
973
|
status: Maybe<Scalars['String']['output']>;
|
|
614
974
|
};
|
|
975
|
+
/** Full environment detail returned by orgEnvironment: the environment plus its components, change orders, audit, secrets, outputs, billing resources, live deploy/destroy progress, and Buddy health. */
|
|
615
976
|
export type CksEnvironmentDetail = {
|
|
616
977
|
__typename?: 'CksEnvironmentDetail';
|
|
617
978
|
audit: Array<CksEnvironmentAudit>;
|
|
@@ -628,6 +989,7 @@ export type CksEnvironmentDetail = {
|
|
|
628
989
|
outputs: Array<CksEnvironmentOutput>;
|
|
629
990
|
secrets: Array<CksEnvironmentSecretValue>;
|
|
630
991
|
};
|
|
992
|
+
/** A published output value from a provisioned component (e.g. URLs, handles, connection details). */
|
|
631
993
|
export type CksEnvironmentOutput = {
|
|
632
994
|
__typename?: 'CksEnvironmentOutput';
|
|
633
995
|
componentKind: Scalars['String']['output'];
|
|
@@ -638,25 +1000,33 @@ export type CksEnvironmentOutput = {
|
|
|
638
1000
|
value: Scalars['String']['output'];
|
|
639
1001
|
valueKind: Scalars['String']['output'];
|
|
640
1002
|
};
|
|
1003
|
+
/** Pricing quote for a proposed environment selection plus the org wallet balance, used to gate createEnvironment. All *Cents fields are in minor currency units (cents). */
|
|
641
1004
|
export type CksEnvironmentQuote = {
|
|
642
1005
|
__typename?: 'CksEnvironmentQuote';
|
|
1006
|
+
/** Wallet balance still available after existing reservations, in cents. Compared against firstDayReserveCents. */
|
|
643
1007
|
availableBalanceCents: Scalars['BigInt']['output'];
|
|
644
1008
|
caddyFlavor: Scalars['String']['output'];
|
|
1009
|
+
/** True when availableBalanceCents ≥ firstDayReserveCents. createEnvironment fails when false. */
|
|
645
1010
|
canCreate: Scalars['Boolean']['output'];
|
|
1011
|
+
/** ISO-4217 currency of the *Cents fields, e.g. 'USD'. */
|
|
646
1012
|
currency: Scalars['String']['output'];
|
|
647
1013
|
databaseFlavor: Scalars['String']['output'];
|
|
648
1014
|
datacenter: Scalars['String']['output'];
|
|
1015
|
+
/** Up-front wallet reserve required to create (≈ first day of runtime), in cents. */
|
|
649
1016
|
firstDayReserveCents: Scalars['BigInt']['output'];
|
|
650
1017
|
gameApiFlavor: Scalars['String']['output'];
|
|
651
1018
|
gameApiMaxServers: Scalars['Int']['output'];
|
|
652
1019
|
gameApiMinServers: Scalars['Int']['output'];
|
|
1020
|
+
/** Total hourly price of the full selection, in cents. */
|
|
653
1021
|
hourlyCostCents: Scalars['BigInt']['output'];
|
|
654
1022
|
loadBalancerCount: Scalars['Int']['output'];
|
|
655
1023
|
udpBuddyFlavor: Scalars['String']['output'];
|
|
656
1024
|
udpBuddyMaxServers: Scalars['Int']['output'];
|
|
657
1025
|
udpBuddyMinServers: Scalars['Int']['output'];
|
|
1026
|
+
/** Org wallet balance, in cents. */
|
|
658
1027
|
walletBalanceCents: Scalars['BigInt']['output'];
|
|
659
1028
|
};
|
|
1029
|
+
/** A sealed environment secret. Exposes ciphertext only (sealedCiphertextBase64) — never the plaintext. */
|
|
660
1030
|
export type CksEnvironmentSecretValue = {
|
|
661
1031
|
__typename?: 'CksEnvironmentSecretValue';
|
|
662
1032
|
createdAt: Scalars['DateTime']['output'];
|
|
@@ -667,45 +1037,61 @@ export type CksEnvironmentSecretValue = {
|
|
|
667
1037
|
sealedCiphertextBase64: Scalars['String']['output'];
|
|
668
1038
|
updatedAt: Scalars['DateTime']['output'];
|
|
669
1039
|
};
|
|
1040
|
+
/** An environment release version in the deployable catalog. */
|
|
670
1041
|
export type CksEnvironmentVersion = {
|
|
671
1042
|
__typename?: 'CksEnvironmentVersion';
|
|
672
1043
|
/** Pinned cks-game-api git tag from the ingested manifest. */
|
|
673
1044
|
gameApiGitTag: Maybe<Scalars['String']['output']>;
|
|
674
1045
|
notes: Maybe<Scalars['String']['output']>;
|
|
675
1046
|
releasedAt: Scalars['DateTime']['output'];
|
|
1047
|
+
/** Release status, e.g. 'available' (deployable) or 'yanked' (withdrawn). */
|
|
676
1048
|
status: Scalars['String']['output'];
|
|
1049
|
+
/** Semantic version, e.g. 'v0.1.4'. */
|
|
677
1050
|
version: Scalars['String']['output'];
|
|
678
1051
|
};
|
|
1052
|
+
/** An OVH datacenter offered for environment placement. Only datacenters with at least one customer-selectable flavor are returned by environmentDatacenters. */
|
|
679
1053
|
export type CksOvhDatacenter = {
|
|
680
1054
|
__typename?: 'CksOvhDatacenter';
|
|
681
1055
|
city: Maybe<Scalars['String']['output']>;
|
|
682
1056
|
continent: Maybe<Scalars['String']['output']>;
|
|
1057
|
+
/** True when the datacenter is currently accepting new instances. */
|
|
683
1058
|
isAvailable: Scalars['Boolean']['output'];
|
|
684
1059
|
name: Maybe<Scalars['String']['output']>;
|
|
1060
|
+
/** Region/datacenter code used as the datacenter arg, e.g. 'GRA11'. */
|
|
685
1061
|
region: Scalars['String']['output'];
|
|
686
1062
|
/** Number of customer-selectable instances in this datacenter after availability, pricing, and admin visibility filters. */
|
|
687
1063
|
selectableInstanceCount: Scalars['Int']['output'];
|
|
1064
|
+
/** Provider availability status string, e.g. 'UP'. */
|
|
688
1065
|
status: Scalars['String']['output'];
|
|
689
1066
|
syncedAt: Scalars['DateTime']['output'];
|
|
690
1067
|
};
|
|
691
1068
|
/** Customer-selectable catalog instance flavor. Hidden, unavailable, or unpriced rows are omitted from environmentFlavors. */
|
|
692
1069
|
export type CksOvhFlavor = {
|
|
693
1070
|
__typename?: 'CksOvhFlavor';
|
|
1071
|
+
/** Catalog availability for this flavor, e.g. 'available'. */
|
|
694
1072
|
availabilityStatus: Scalars['String']['output'];
|
|
1073
|
+
/** ISO-4217 currency for the price fields, e.g. 'USD'. */
|
|
695
1074
|
currency: Scalars['String']['output'];
|
|
696
1075
|
/** Customer hourly price in cents. Non-null for every flavor returned from environmentFlavors. */
|
|
697
1076
|
customerHourlyPriceCents: Scalars['BigInt']['output'];
|
|
698
1077
|
/** Customer monthly reference price in cents. Display-only until monthly billing is implemented. */
|
|
699
1078
|
customerMonthlyPriceCents: Maybe<Scalars['BigInt']['output']>;
|
|
1079
|
+
/** Local disk in gigabytes. */
|
|
700
1080
|
diskGb: Maybe<Scalars['Int']['output']>;
|
|
701
1081
|
flavorName: Scalars['String']['output'];
|
|
702
1082
|
flavorType: Maybe<Scalars['String']['output']>;
|
|
1083
|
+
/** How the customer price was derived (e.g. fixed vs. markup mode). */
|
|
703
1084
|
pricingMode: Scalars['String']['output'];
|
|
1085
|
+
/** Where the customer price came from (pricing pipeline source). */
|
|
704
1086
|
pricingSource: Maybe<Scalars['String']['output']>;
|
|
1087
|
+
/** Remaining instances of this flavor the project may launch in the datacenter (OVH quota headroom). */
|
|
705
1088
|
quotaAvailable: Maybe<Scalars['Int']['output']>;
|
|
1089
|
+
/** RAM in megabytes. */
|
|
706
1090
|
ramMb: Maybe<Scalars['Int']['output']>;
|
|
1091
|
+
/** Raw OVH provider hourly cost in cents (pre-markup). Internal reference; bill against customerHourlyPriceCents. */
|
|
707
1092
|
rawHourlyCostCents: Maybe<Scalars['BigInt']['output']>;
|
|
708
1093
|
syncedAt: Scalars['DateTime']['output'];
|
|
1094
|
+
/** Virtual CPU count. */
|
|
709
1095
|
vcpus: Maybe<Scalars['Int']['output']>;
|
|
710
1096
|
};
|
|
711
1097
|
/** Notification received when another client sends an audio packet (voice chat). Received via the udpNotifications subscription. */
|
|
@@ -744,7 +1130,7 @@ export type ClientAudioPacketInput = {
|
|
|
744
1130
|
decayRate?: InputMaybe<Scalars['Int']['input']>;
|
|
745
1131
|
/** Chunk replication distance (0-8). Defaults to 1 for audio packets. Clamped to 0-8. */
|
|
746
1132
|
distance?: InputMaybe<Scalars['Int']['input']>;
|
|
747
|
-
/** Client
|
|
1133
|
+
/** Client-assigned correlation id for this datagram: a uint8 (0-255) that wraps at gameClientBootstrap.sequenceNumberModulo (256); defaults to 0 if omitted. For CORRELATION ONLY — it is NOT an idempotency key and the server does not dedupe replays. Echoed on any GenericErrorResponse for this send, delivered on the udpNotifications subscription. */
|
|
748
1134
|
sequenceNumber?: InputMaybe<Scalars['Int']['input']>;
|
|
749
1135
|
/** A unique identifier for the audio source (typically the player UUID). Must be exactly 32 bytes when encoded as UTF-8. */
|
|
750
1136
|
uuid: Scalars['String']['input'];
|
|
@@ -787,7 +1173,7 @@ export type ClientEventNotificationInput = {
|
|
|
787
1173
|
distance?: InputMaybe<Scalars['Int']['input']>;
|
|
788
1174
|
/** The event type ID (uint16, 0-65535). This is a client-defined enum that determines how the event should be processed. */
|
|
789
1175
|
eventType: Scalars['Int']['input'];
|
|
790
|
-
/** Client
|
|
1176
|
+
/** Client-assigned correlation id for this datagram: a uint8 (0-255) that wraps at gameClientBootstrap.sequenceNumberModulo (256); defaults to 0 if omitted. For CORRELATION ONLY — it is NOT an idempotency key and the server does not dedupe replays. Echoed on any GenericErrorResponse for this send, delivered on the udpNotifications subscription. */
|
|
791
1177
|
sequenceNumber?: InputMaybe<Scalars['Int']['input']>;
|
|
792
1178
|
/** The event state data, base64-encoded. The format is defined by the event type and is currently only processed by clients. */
|
|
793
1179
|
state: Scalars['String']['input'];
|
|
@@ -828,17 +1214,30 @@ export type ClientTextPacketInput = {
|
|
|
828
1214
|
decayRate?: InputMaybe<Scalars['Int']['input']>;
|
|
829
1215
|
/** Chunk replication distance (0-8). Defaults to 8 for text packets. Clamped to 0-8. */
|
|
830
1216
|
distance?: InputMaybe<Scalars['Int']['input']>;
|
|
831
|
-
/** Client
|
|
1217
|
+
/** Client-assigned correlation id for this datagram: a uint8 (0-255) that wraps at gameClientBootstrap.sequenceNumberModulo (256); defaults to 0 if omitted. For CORRELATION ONLY — it is NOT an idempotency key and the server does not dedupe replays. Echoed on any GenericErrorResponse for this send, delivered on the udpNotifications subscription. */
|
|
832
1218
|
sequenceNumber?: InputMaybe<Scalars['Int']['input']>;
|
|
833
1219
|
/** The text message content, encoded as UTF-8. This will be displayed to nearby players. */
|
|
834
1220
|
text: Scalars['String']['input'];
|
|
835
1221
|
/** A unique identifier for the text source (typically the player UUID). Must be exactly 32 bytes when encoded as UTF-8. */
|
|
836
1222
|
uuid: Scalars['String']['input'];
|
|
837
1223
|
};
|
|
1224
|
+
/** Relay-style pagination metadata for a connection. */
|
|
1225
|
+
export type ConnectionPageInfo = {
|
|
1226
|
+
__typename?: 'ConnectionPageInfo';
|
|
1227
|
+
/** Opaque cursor of the last edge in this page; pass as `after`. */
|
|
1228
|
+
endCursor: Maybe<Scalars['String']['output']>;
|
|
1229
|
+
/** True if more edges exist after `endCursor`. */
|
|
1230
|
+
hasNextPage: Scalars['Boolean']['output'];
|
|
1231
|
+
/** True if edges exist before `startCursor`. */
|
|
1232
|
+
hasPreviousPage: Scalars['Boolean']['output'];
|
|
1233
|
+
/** Opaque cursor of the first edge in this page. */
|
|
1234
|
+
startCursor: Maybe<Scalars['String']['output']>;
|
|
1235
|
+
};
|
|
838
1236
|
/** Operator-facing view of cks_environments. */
|
|
839
1237
|
export type CpAdminEnvironment = {
|
|
840
1238
|
__typename?: 'CpAdminEnvironment';
|
|
841
1239
|
createdAt: Scalars['DateTime']['output'];
|
|
1240
|
+
/** When true, purgeEnvironment is blocked. Toggle via setEnvironmentDeletionProtection. */
|
|
842
1241
|
deletionProtectionEnabled: Scalars['Boolean']['output'];
|
|
843
1242
|
deletionProtectionSetAt: Maybe<Scalars['DateTime']['output']>;
|
|
844
1243
|
deletionProtectionSetByEmail: Maybe<Scalars['String']['output']>;
|
|
@@ -848,15 +1247,21 @@ export type CpAdminEnvironment = {
|
|
|
848
1247
|
primaryCloud: Scalars['String']['output'];
|
|
849
1248
|
primaryRegion: Scalars['String']['output'];
|
|
850
1249
|
slug: Scalars['String']['output'];
|
|
1250
|
+
/** Provisioning lifecycle: deploy_requested -> provisioning -> active; deploy_failed; destroy_requested -> destroyed (destroy_failed on error). */
|
|
851
1251
|
status: Scalars['String']['output'];
|
|
852
1252
|
subdomainHandle: Maybe<Scalars['String']['output']>;
|
|
853
1253
|
updatedAt: Scalars['DateTime']['output'];
|
|
854
1254
|
};
|
|
1255
|
+
/** One page of operator environment rows. Paging is 1-based: page 1 is the first page. */
|
|
855
1256
|
export type CpAdminEnvironmentsPage = {
|
|
856
1257
|
__typename?: 'CpAdminEnvironmentsPage';
|
|
1258
|
+
/** Current 1-based page number. */
|
|
857
1259
|
page: Scalars['Int']['output'];
|
|
1260
|
+
/** Requested page size (max rows per page). */
|
|
858
1261
|
pageSize: Scalars['Int']['output'];
|
|
1262
|
+
/** Environment rows on this page. */
|
|
859
1263
|
rows: Array<CpAdminEnvironment>;
|
|
1264
|
+
/** Total rows across all pages (not just this page). */
|
|
860
1265
|
total: Scalars['Int']['output'];
|
|
861
1266
|
};
|
|
862
1267
|
export type CpAuditEntry = {
|
|
@@ -890,9 +1295,11 @@ export type CpChangeOrder = {
|
|
|
890
1295
|
error: Maybe<Scalars['String']['output']>;
|
|
891
1296
|
finishedAt: Maybe<Scalars['DateTime']['output']>;
|
|
892
1297
|
id: Scalars['ID']['output'];
|
|
1298
|
+
/** Pipeline kind (e.g. deploy_environment_version, *_destroy). */
|
|
893
1299
|
kind: Scalars['String']['output'];
|
|
894
1300
|
/** JSON-encoded payload */
|
|
895
1301
|
payloadJson: Maybe<Scalars['String']['output']>;
|
|
1302
|
+
/** Execution status: pending, claimed/in_progress, succeeded, failed, or cancelled. */
|
|
896
1303
|
status: Scalars['String']['output'];
|
|
897
1304
|
updatedAt: Scalars['DateTime']['output'];
|
|
898
1305
|
};
|
|
@@ -902,11 +1309,16 @@ export type CpChangeOrderDetail = {
|
|
|
902
1309
|
steps: Array<CpStepRow>;
|
|
903
1310
|
tasks: Array<CpTaskRow>;
|
|
904
1311
|
};
|
|
1312
|
+
/** One page of operator change-order rows. Paging is 1-based: page 1 is the first page. */
|
|
905
1313
|
export type CpChangeOrdersPage = {
|
|
906
1314
|
__typename?: 'CpChangeOrdersPage';
|
|
1315
|
+
/** Current 1-based page number. */
|
|
907
1316
|
page: Scalars['Int']['output'];
|
|
1317
|
+
/** Requested page size (max rows per page). */
|
|
908
1318
|
pageSize: Scalars['Int']['output'];
|
|
1319
|
+
/** Change-order rows on this page. */
|
|
909
1320
|
rows: Array<CpChangeOrder>;
|
|
1321
|
+
/** Total rows across all pages (not just this page). */
|
|
910
1322
|
total: Scalars['Int']['output'];
|
|
911
1323
|
};
|
|
912
1324
|
export type CpEnvSecretRow = {
|
|
@@ -946,23 +1358,29 @@ export type CpEnvironmentVersionsPage = {
|
|
|
946
1358
|
latestAvailableVersion: Maybe<Scalars['String']['output']>;
|
|
947
1359
|
rows: Array<CpEnvironmentVersionRow>;
|
|
948
1360
|
};
|
|
1361
|
+
/** A user with operator and/or super-admin privileges. */
|
|
949
1362
|
export type CpOperatorUser = {
|
|
950
1363
|
__typename?: 'CpOperatorUser';
|
|
951
1364
|
createdAt: Scalars['DateTime']['output'];
|
|
952
1365
|
email: Maybe<Scalars['String']['output']>;
|
|
953
1366
|
gamertag: Maybe<Scalars['String']['output']>;
|
|
1367
|
+
/** True when users.is_operator is set (operator surface access). */
|
|
954
1368
|
isOperator: Scalars['Boolean']['output'];
|
|
1369
|
+
/** True when users.is_super_admin is set (implies operator access). */
|
|
955
1370
|
isSuperAdmin: Scalars['Boolean']['output'];
|
|
956
1371
|
userId: Scalars['ID']['output'];
|
|
957
1372
|
};
|
|
958
1373
|
export type CpOvhCatalogRow = {
|
|
959
1374
|
__typename?: 'CpOvhCatalogRow';
|
|
1375
|
+
/** Customer-facing hourly price in cents, as a string. */
|
|
960
1376
|
customerHourlyPriceCents: Maybe<Scalars['String']['output']>;
|
|
1377
|
+
/** How the customer price was derived (e.g. fixed vs. markup). */
|
|
961
1378
|
customerPricingMode: Scalars['String']['output'];
|
|
962
1379
|
diskGb: Maybe<Scalars['Int']['output']>;
|
|
963
1380
|
flavorName: Scalars['String']['output'];
|
|
964
1381
|
inboundBandwidth: Maybe<Scalars['Int']['output']>;
|
|
965
1382
|
outboundBandwidth: Maybe<Scalars['Int']['output']>;
|
|
1383
|
+
/** Raw OVH provider hourly cost in cents, as a string. Internal reference. */
|
|
966
1384
|
ovhHourlyPriceCents: Maybe<Scalars['String']['output']>;
|
|
967
1385
|
quotaAvailable: Maybe<Scalars['Int']['output']>;
|
|
968
1386
|
ramMb: Maybe<Scalars['Int']['output']>;
|
|
@@ -1071,74 +1489,125 @@ export type CpUsageSummary = {
|
|
|
1071
1489
|
replication: Array<CpUsageMinuteRow>;
|
|
1072
1490
|
replicationRates: CpUsageRatePeaks;
|
|
1073
1491
|
};
|
|
1492
|
+
/** Input for creating a new app access tier. */
|
|
1074
1493
|
export type CreateAccessTierInput = {
|
|
1494
|
+
/** Numeric id of the app the tier belongs to. The caller must hold manage_access_tiers on this app. */
|
|
1075
1495
|
appId: Scalars['BigInt']['input'];
|
|
1496
|
+
/** Optional marketing description of the tier. */
|
|
1076
1497
|
description?: InputMaybe<Scalars['String']['input']>;
|
|
1498
|
+
/** Optional; whether this is the app's default tier. Defaults to false. */
|
|
1077
1499
|
isDefault?: InputMaybe<Scalars['Boolean']['input']>;
|
|
1500
|
+
/** Optional; whether the tier is free. Defaults to false. */
|
|
1078
1501
|
isFree?: InputMaybe<Scalars['Boolean']['input']>;
|
|
1502
|
+
/** Tier display name (max 128 chars). */
|
|
1079
1503
|
name: Scalars['String']['input'];
|
|
1504
|
+
/** Optional runtime permission keys to grant on this tier (must be valid runtimePermissions). Defaults to ["access"] when omitted. */
|
|
1080
1505
|
permissionKeys?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
1506
|
+
/** Optional sort order (ascending). Defaults to 0. */
|
|
1081
1507
|
tierOrder?: InputMaybe<Scalars['Int']['input']>;
|
|
1082
1508
|
};
|
|
1083
1509
|
export type CreateActorInput = {
|
|
1510
|
+
/** App (game) the actor belongs to. Required. BigInt sent as a decimal string. */
|
|
1084
1511
|
appId: Scalars['BigInt']['input'];
|
|
1512
|
+
/** Optional avatar to attach; if provided it must be owned by the caller. BigInt sent as a decimal string. */
|
|
1085
1513
|
avatarId?: InputMaybe<Scalars['BigInt']['input']>;
|
|
1514
|
+
/** Initial chunk-grid coordinates (x, y, z as int64 BigInt decimal strings). Required. */
|
|
1086
1515
|
chunk: ChunkCoordinatesInput;
|
|
1516
|
+
/** Optional owner-only private state blob, base64-encoded binary. */
|
|
1087
1517
|
privateState?: InputMaybe<Scalars['String']['input']>;
|
|
1518
|
+
/** Optional public state blob, base64-encoded binary. */
|
|
1088
1519
|
publicState?: InputMaybe<Scalars['String']['input']>;
|
|
1520
|
+
/** Actor id: exactly 32 ASCII characters (the UDP-wire actor id), NOT a hyphenated RFC-4122 UUID. Required and must be unique. */
|
|
1089
1521
|
uuid: Scalars['String']['input'];
|
|
1090
1522
|
};
|
|
1523
|
+
/** Input payload for creating a new app. */
|
|
1091
1524
|
export type CreateAppInput = {
|
|
1525
|
+
/** Optional short plain-text description for listings. */
|
|
1092
1526
|
description?: InputMaybe<Scalars['String']['input']>;
|
|
1527
|
+
/** Optional JSON-encoded marketplace metadata string (see App.metadata). Defaults to an empty object when omitted. */
|
|
1093
1528
|
metadata?: InputMaybe<Scalars['String']['input']>;
|
|
1529
|
+
/** Display name of the app (1-256 characters). */
|
|
1094
1530
|
name: Scalars['String']['input'];
|
|
1531
|
+
/** Numeric id of the organization that will own the app. The caller must hold the manage_apps permission on this org. */
|
|
1095
1532
|
orgId: Scalars['BigInt']['input'];
|
|
1533
|
+
/** URL-safe slug (1-128 chars, lowercase letters, numbers and dashes only). Must be unique within the org. */
|
|
1096
1534
|
slug: Scalars['String']['input'];
|
|
1535
|
+
/** Optional initial lifecycle status. Defaults to DRAFT when omitted. */
|
|
1097
1536
|
status?: InputMaybe<AppStatus>;
|
|
1537
|
+
/** Optional initial visibility. Defaults to PUBLIC when omitted. */
|
|
1098
1538
|
visibility?: InputMaybe<AppVisibility>;
|
|
1099
1539
|
};
|
|
1100
1540
|
export type CreateAvatarInput = {
|
|
1541
|
+
/** Optional avatar name; defaults to "Default Avatar" when omitted. */
|
|
1101
1542
|
name?: InputMaybe<Scalars['String']['input']>;
|
|
1102
1543
|
};
|
|
1544
|
+
/** Create a channel in an app. */
|
|
1103
1545
|
export type CreateChannelInput = {
|
|
1546
|
+
/** The app (tenant) the channel belongs to. */
|
|
1104
1547
|
appId: Scalars['BigInt']['input'];
|
|
1548
|
+
/** Optional free-text description of the channel. */
|
|
1105
1549
|
description?: InputMaybe<Scalars['String']['input']>;
|
|
1106
1550
|
/** When true (default), new members are auto-granted send_messages so they can post (open chat channel). When false, only roles you grant may post (announce/read-only channel). */
|
|
1107
1551
|
membersCanSend?: InputMaybe<Scalars['Boolean']['input']>;
|
|
1108
1552
|
/** open | request | invite | admin. Defaults to the app policy. */
|
|
1109
1553
|
membershipPolicy?: InputMaybe<Scalars['String']['input']>;
|
|
1554
|
+
/** Display name for the channel (max 128 chars; unique per app+type). */
|
|
1110
1555
|
name: Scalars['String']['input'];
|
|
1111
1556
|
};
|
|
1112
1557
|
export type CreateCheckoutInput = {
|
|
1558
|
+
/** Charge amount in minor currency units (cents) of `currency`, as a BigInt decimal string. Required for ORG_WALLET_TOPUP. */
|
|
1113
1559
|
amountCents?: InputMaybe<Scalars['BigInt']['input']>;
|
|
1560
|
+
/** Target app (BigInt as a decimal string). Required for APP_ACCESS_PURCHASE and SHARED_APP_SUBSCRIPTION. */
|
|
1114
1561
|
appId?: InputMaybe<Scalars['BigInt']['input']>;
|
|
1562
|
+
/** Absolute URL the provider redirects to if the user cancels. Optional; a server default is used if omitted. */
|
|
1115
1563
|
cancelUrl?: InputMaybe<Scalars['String']['input']>;
|
|
1564
|
+
/** ISO-4217 currency code, lowercase (e.g. "usd"). Defaults to "usd". */
|
|
1116
1565
|
currency?: InputMaybe<Scalars['String']['input']>;
|
|
1566
|
+
/** Optional idempotency key. Recommended for retries: replaying with the same key and identical input returns the first checkout instead of opening a second provider session; the same key with different input returns IDEMPOTENCY_CONFLICT. Keys expire after 24h. */
|
|
1567
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
1568
|
+
/** Target organization (BigInt as a decimal string). Required for ORG_WALLET_TOPUP; ignored for other purposes. */
|
|
1117
1569
|
orgId?: InputMaybe<Scalars['BigInt']['input']>;
|
|
1570
|
+
/** Shared-environment plan id (a shared_env_plans.plan_id, BigInt as a decimal string). Required for SHARED_APP_SUBSCRIPTION. */
|
|
1118
1571
|
planId?: InputMaybe<Scalars['BigInt']['input']>;
|
|
1572
|
+
/** Payment processor to use for this checkout (STRIPE or PAYPAL). */
|
|
1119
1573
|
provider: PaymentProvider;
|
|
1574
|
+
/** What the checkout is for; determines which other fields are required and the side effect applied on completion. DONATION and PROPERTY_TOKENS are rejected. */
|
|
1120
1575
|
purpose: CheckoutPurpose;
|
|
1576
|
+
/** Absolute URL the provider redirects to after a successful payment. Optional; a server default is used if omitted. */
|
|
1121
1577
|
successUrl?: InputMaybe<Scalars['String']['input']>;
|
|
1578
|
+
/** Access tier to purchase (BigInt as a decimal string). Required for APP_ACCESS_PURCHASE. */
|
|
1122
1579
|
tierId?: InputMaybe<Scalars['BigInt']['input']>;
|
|
1123
1580
|
};
|
|
1581
|
+
/** Instantiate a container (runtime entity). */
|
|
1124
1582
|
export type CreateContainerInput = {
|
|
1583
|
+
/** The app (tenant) the container belongs to. */
|
|
1125
1584
|
appId: Scalars['BigInt']['input'];
|
|
1585
|
+
/** Optional description. */
|
|
1126
1586
|
description?: InputMaybe<Scalars['String']['input']>;
|
|
1587
|
+
/** Human-friendly display name. */
|
|
1127
1588
|
displayName: Scalars['String']['input'];
|
|
1589
|
+
/** JSON object of metadata. */
|
|
1128
1590
|
metadataJson?: InputMaybe<Scalars['String']['input']>;
|
|
1129
1591
|
/** Owner user id; defaults to the caller for member/owner instantiation. */
|
|
1130
1592
|
ownerUserId?: InputMaybe<Scalars['BigInt']['input']>;
|
|
1593
|
+
/** Initial property values for the container. */
|
|
1131
1594
|
properties?: InputMaybe<Array<SeedPropertyInput>>;
|
|
1595
|
+
/** Optional session to create the container in (omit for app-global). */
|
|
1132
1596
|
sessionId?: InputMaybe<Scalars['String']['input']>;
|
|
1597
|
+
/** The container type to instantiate. */
|
|
1133
1598
|
typeName: Scalars['String']['input'];
|
|
1134
1599
|
};
|
|
1600
|
+
/** Input for createEnvironment. For dedicated (default) supply the four per-role flavors plus scaling counts; for dev_single supply a single flavor and the per-role/count fields are ignored. */
|
|
1135
1601
|
export type CreateEnvironmentInput = {
|
|
1602
|
+
/** Optional app ids to link to the new environment at creation. Each must be unique; omit or pass an empty list to link none. */
|
|
1136
1603
|
appIds?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
1137
1604
|
/** Flavor name from environmentFlavors(datacenter) for the Caddy LB VMs in front of the game-api fleet; must have a published hourly price. Required for dedicated. */
|
|
1138
1605
|
caddyFlavor?: InputMaybe<Scalars['String']['input']>;
|
|
1139
1606
|
/** Flavor name from environmentFlavors(datacenter); must have a published hourly price. Required for dedicated. */
|
|
1140
1607
|
databaseFlavor?: InputMaybe<Scalars['String']['input']>;
|
|
1608
|
+
/** OVH datacenter/region code from environmentDatacenters (e.g. 'GRA11'). */
|
|
1141
1609
|
datacenter: Scalars['String']['input'];
|
|
1610
|
+
/** Human-readable environment name (max 80 chars). */
|
|
1142
1611
|
displayName: Scalars['String']['input'];
|
|
1143
1612
|
/** Deployment class: 'dedicated' (default, multi-VM) or 'dev_single' (one cheap dev-only VM running Postgres + management-api + game-api + Buddy). dev_single is not for production. */
|
|
1144
1613
|
environmentClass?: InputMaybe<Scalars['String']['input']>;
|
|
@@ -1146,81 +1615,129 @@ export type CreateEnvironmentInput = {
|
|
|
1146
1615
|
flavor?: InputMaybe<Scalars['String']['input']>;
|
|
1147
1616
|
/** Flavor name from environmentFlavors(datacenter) for per-tenant game-api VMs; must have a published hourly price. Required for dedicated. */
|
|
1148
1617
|
gameApiFlavor?: InputMaybe<Scalars['String']['input']>;
|
|
1618
|
+
/** Autoscaling ceiling for game-api servers (min 1, ≥ gameApiMinServers). Required for dedicated; ignored for dev_single. */
|
|
1149
1619
|
gameApiMaxServers?: InputMaybe<Scalars['Int']['input']>;
|
|
1620
|
+
/** Autoscaling floor for game-api servers (min 1). Required for dedicated; ignored for dev_single. */
|
|
1150
1621
|
gameApiMinServers?: InputMaybe<Scalars['Int']['input']>;
|
|
1622
|
+
/** Number of Caddy load-balancer VMs in front of the game-api fleet (min 1). Required for dedicated; ignored for dev_single. */
|
|
1151
1623
|
loadBalancerCount?: InputMaybe<Scalars['Int']['input']>;
|
|
1624
|
+
/** Organization id (BigInt) that will own and be billed for the environment. */
|
|
1152
1625
|
orgId: Scalars['BigInt']['input'];
|
|
1153
1626
|
/** Optional explicit slug for scripts/E2E. When omitted, the API generates an opaque e-{12} slug. */
|
|
1154
1627
|
slug?: InputMaybe<Scalars['String']['input']>;
|
|
1155
1628
|
/** Flavor name from environmentFlavors(datacenter); must have a published hourly price. Required for dedicated. */
|
|
1156
1629
|
udpBuddyFlavor?: InputMaybe<Scalars['String']['input']>;
|
|
1630
|
+
/** Autoscaling ceiling for Buddy UDP servers (min 1, ≥ udpBuddyMinServers). Required for dedicated; ignored for dev_single. */
|
|
1157
1631
|
udpBuddyMaxServers?: InputMaybe<Scalars['Int']['input']>;
|
|
1632
|
+
/** Autoscaling floor for Buddy UDP servers (min 1). Required for dedicated; ignored for dev_single. */
|
|
1158
1633
|
udpBuddyMinServers?: InputMaybe<Scalars['Int']['input']>;
|
|
1634
|
+
/** Base64-encoded 32-byte X25519 public key used to seal this environment’s secrets. Must decode to exactly 32 bytes. */
|
|
1159
1635
|
x25519PublicKeyBase64: Scalars['String']['input'];
|
|
1160
1636
|
};
|
|
1637
|
+
/** Defines a new grid by its app and two opposite corner chunks. The corners are normalized server-side into a low/high chunk box, so corner order is irrelevant and a single chunk (corner1 == corner2) is allowed. */
|
|
1161
1638
|
export type CreateGridInput = {
|
|
1639
|
+
/** The app (tenant) the grid belongs to. */
|
|
1162
1640
|
appId: Scalars['BigInt']['input'];
|
|
1641
|
+
/** One corner of the grid box, in chunk coordinates. */
|
|
1163
1642
|
corner1: ChunkCoordinatesInput;
|
|
1643
|
+
/** The opposite corner of the grid box, in chunk coordinates. May equal corner1 for a single-chunk grid. */
|
|
1164
1644
|
corner2: ChunkCoordinatesInput;
|
|
1165
1645
|
};
|
|
1646
|
+
/** Result of createGrid. This is a hybrid result rather than a thrown error: inspect `error` first. When `error` is NO_ERROR the call succeeded and `grid` is populated; otherwise `grid` is null and `error` explains why. */
|
|
1166
1647
|
export type CreateGridResponse = {
|
|
1167
1648
|
__typename?: 'CreateGridResponse';
|
|
1649
|
+
/** A UDP-style error code (the same ErrorType enum the realtime/UDP servers use). NO_ERROR (0) means success; non-zero values describe the failure, e.g. NO_MATCHING_GRID_ASSIGNMENT, GRID_OUTSIDE_ASSIGNMENT, GRID_OVERLAPS_EXISTING, GRID_ALREADY_EXISTS, or UNKNOWN_ERROR. */
|
|
1168
1650
|
error: UdpErrorCode;
|
|
1651
|
+
/** The created grid on success; null when `error` is non-zero. */
|
|
1169
1652
|
grid: Maybe<Grid>;
|
|
1170
1653
|
};
|
|
1654
|
+
/** Create a custom role within a group (team or channel), granting group permission keys. */
|
|
1171
1655
|
export type CreateGroupRoleInput = {
|
|
1656
|
+
/** The group (team/channel) the role belongs to. */
|
|
1172
1657
|
groupId: Scalars['BigInt']['input'];
|
|
1658
|
+
/** Group permission key strings this role grants (e.g. manage_members, manage_roles, manage_group, send_messages). Must be valid keys for the group type; each max 64 chars, unique. Defaults to none. */
|
|
1173
1659
|
permissions?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
1660
|
+
/** Sort/precedence rank (higher = more senior). Defaults to 0. */
|
|
1174
1661
|
rank?: InputMaybe<Scalars['Int']['input']>;
|
|
1662
|
+
/** Role display name (max 128 chars; unique within the group). */
|
|
1175
1663
|
roleName: Scalars['String']['input'];
|
|
1176
1664
|
};
|
|
1177
1665
|
export type CreateOrgRoleInput = {
|
|
1666
|
+
/** Optional human-readable description. */
|
|
1178
1667
|
description?: InputMaybe<Scalars['String']['input']>;
|
|
1668
|
+
/** Organization to create the role in (BigInt as string). */
|
|
1179
1669
|
orgId: Scalars['BigInt']['input'];
|
|
1670
|
+
/** Permission keys (from orgPermissions) to grant. Unknown keys are silently dropped. */
|
|
1180
1671
|
permissions: Array<Scalars['String']['input']>;
|
|
1672
|
+
/** Role name (max 128 characters). */
|
|
1181
1673
|
roleName: Scalars['String']['input'];
|
|
1182
1674
|
};
|
|
1183
1675
|
export type CreateOrgTokenInput = {
|
|
1676
|
+
/** Optional expiry timestamp; omit for a non-expiring token. */
|
|
1184
1677
|
expiresAt?: InputMaybe<Scalars['DateTime']['input']>;
|
|
1678
|
+
/** Optional human-readable label (max 256 characters). */
|
|
1185
1679
|
label?: InputMaybe<Scalars['String']['input']>;
|
|
1680
|
+
/** Organization to mint the token for (BigInt as string). */
|
|
1186
1681
|
orgId: Scalars['BigInt']['input'];
|
|
1187
1682
|
};
|
|
1188
1683
|
export type CreateOrganizationInput = {
|
|
1684
|
+
/** Organization display name (1-256 characters). */
|
|
1189
1685
|
name: Scalars['String']['input'];
|
|
1686
|
+
/** Unique URL slug; lowercase letters, numbers, and dashes only (1-128 characters). */
|
|
1190
1687
|
slug: Scalars['String']['input'];
|
|
1191
1688
|
};
|
|
1689
|
+
/** Create a runtime session. */
|
|
1192
1690
|
export type CreateSessionInput = {
|
|
1691
|
+
/** The app (tenant) the session belongs to. */
|
|
1193
1692
|
appId: Scalars['BigInt']['input'];
|
|
1693
|
+
/** JSON object of session metadata. */
|
|
1194
1694
|
metadataJson?: InputMaybe<Scalars['String']['input']>;
|
|
1695
|
+
/** Optional session name. */
|
|
1195
1696
|
name?: InputMaybe<Scalars['String']['input']>;
|
|
1196
1697
|
/** Initial participants besides the creator. */
|
|
1197
1698
|
participantUserIds?: InputMaybe<Array<Scalars['BigInt']['input']>>;
|
|
1198
1699
|
};
|
|
1700
|
+
/** Create a team in an app. */
|
|
1199
1701
|
export type CreateTeamInput = {
|
|
1702
|
+
/** The app (tenant) the team belongs to. */
|
|
1200
1703
|
appId: Scalars['BigInt']['input'];
|
|
1704
|
+
/** Optional free-text description of the team. */
|
|
1201
1705
|
description?: InputMaybe<Scalars['String']['input']>;
|
|
1202
1706
|
/** open | request | invite | admin. Defaults to the app policy. */
|
|
1203
1707
|
membershipPolicy?: InputMaybe<Scalars['String']['input']>;
|
|
1708
|
+
/** Display name for the team (max 128 chars; unique per app+type). */
|
|
1204
1709
|
name: Scalars['String']['input'];
|
|
1205
1710
|
};
|
|
1206
1711
|
export type CreateUserAppStateInput = {
|
|
1712
|
+
/** App (game) id to scope the state to. Required. BigInt sent as a decimal string. */
|
|
1207
1713
|
appId: Scalars['BigInt']['input'];
|
|
1714
|
+
/** Per-app user state as base64-encoded binary. Omit or send null to clear it. */
|
|
1208
1715
|
state?: InputMaybe<Scalars['String']['input']>;
|
|
1209
1716
|
};
|
|
1717
|
+
/** Define an app feature key. */
|
|
1210
1718
|
export type DefineAppFeatureInput = {
|
|
1719
|
+
/** The app (tenant) defining the feature. */
|
|
1211
1720
|
appId: Scalars['BigInt']['input'];
|
|
1721
|
+
/** Optional description of the feature. */
|
|
1212
1722
|
description?: InputMaybe<Scalars['String']['input']>;
|
|
1723
|
+
/** The feature key (referenced by tier_feature authority rules). */
|
|
1213
1724
|
featureKey: Scalars['String']['input'];
|
|
1214
1725
|
};
|
|
1215
1726
|
export type DestroyEnvironmentInput = {
|
|
1727
|
+
/** Optional idempotency key. Recommended for retries: replaying with the same key and identical input returns the first result instead of re-applying; the same key with different input returns IDEMPOTENCY_CONFLICT. Keys expire after 24h. */
|
|
1728
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
1729
|
+
/** Organization id (BigInt) that owns the environment. */
|
|
1216
1730
|
orgId: Scalars['BigInt']['input'];
|
|
1731
|
+
/** Slug of the environment to destroy (all cloud resources are torn down). */
|
|
1217
1732
|
slug: Scalars['String']['input'];
|
|
1218
1733
|
};
|
|
1734
|
+
/** Input for environmentQuote. Mirrors CreateEnvironmentInput’s class/flavor shape: dedicated needs the four per-role flavors + counts; dev_single needs only the single flavor. */
|
|
1219
1735
|
export type EnvironmentQuoteInput = {
|
|
1220
1736
|
/** Flavor name from environmentFlavors(datacenter) for the Caddy LB VMs in front of the game-api fleet; must have a published hourly price. Required for dedicated. */
|
|
1221
1737
|
caddyFlavor?: InputMaybe<Scalars['String']['input']>;
|
|
1222
1738
|
/** Flavor name from environmentFlavors(datacenter); must have a published hourly price. Required for dedicated. */
|
|
1223
1739
|
databaseFlavor?: InputMaybe<Scalars['String']['input']>;
|
|
1740
|
+
/** OVH datacenter/region code from environmentDatacenters (e.g. 'GRA11'). */
|
|
1224
1741
|
datacenter: Scalars['String']['input'];
|
|
1225
1742
|
/** Deployment class: 'dedicated' (default) or 'dev_single'. */
|
|
1226
1743
|
environmentClass?: InputMaybe<Scalars['String']['input']>;
|
|
@@ -1231,76 +1748,117 @@ export type EnvironmentQuoteInput = {
|
|
|
1231
1748
|
gameApiMaxServers?: InputMaybe<Scalars['Int']['input']>;
|
|
1232
1749
|
gameApiMinServers?: InputMaybe<Scalars['Int']['input']>;
|
|
1233
1750
|
loadBalancerCount?: InputMaybe<Scalars['Int']['input']>;
|
|
1751
|
+
/** Organization id (BigInt) to quote against (uses its wallet balance). */
|
|
1234
1752
|
orgId: Scalars['BigInt']['input'];
|
|
1235
1753
|
/** Flavor name from environmentFlavors(datacenter); must have a published hourly price. Required for dedicated. */
|
|
1236
1754
|
udpBuddyFlavor?: InputMaybe<Scalars['String']['input']>;
|
|
1237
1755
|
udpBuddyMaxServers?: InputMaybe<Scalars['Int']['input']>;
|
|
1238
1756
|
udpBuddyMinServers?: InputMaybe<Scalars['Int']['input']>;
|
|
1239
1757
|
};
|
|
1758
|
+
/** Aggregate byte totals for one environment over the requested window. All *Bytes fields are string counters (may exceed Int range). */
|
|
1240
1759
|
export type EnvironmentUsageRollupRow = {
|
|
1241
1760
|
__typename?: 'EnvironmentUsageRollupRow';
|
|
1761
|
+
/** Environment display name. */
|
|
1242
1762
|
displayName: Scalars['String']['output'];
|
|
1763
|
+
/** Environment UUID (as a string). */
|
|
1243
1764
|
environmentId: Scalars['String']['output'];
|
|
1765
|
+
/** Environment slug. */
|
|
1244
1766
|
environmentSlug: Scalars['String']['output'];
|
|
1767
|
+
/** Total GraphQL bytes received (string counter). */
|
|
1245
1768
|
graphqlRecvBytes: Scalars['String']['output'];
|
|
1769
|
+
/** Total GraphQL bytes sent (string counter). */
|
|
1246
1770
|
graphqlSendBytes: Scalars['String']['output'];
|
|
1771
|
+
/** Total replication bytes received (string counter). */
|
|
1247
1772
|
replicationRecvBytes: Scalars['String']['output'];
|
|
1773
|
+
/** Total replication bytes sent (string counter). */
|
|
1248
1774
|
replicationSendBytes: Scalars['String']['output'];
|
|
1249
1775
|
};
|
|
1776
|
+
/** Per-minute replication and GraphQL usage time series for an environment, with rate peaks and live Buddy rates. */
|
|
1250
1777
|
export type EnvironmentUsageSummary = {
|
|
1251
1778
|
__typename?: 'EnvironmentUsageSummary';
|
|
1779
|
+
/** Live Buddy UDP rates, or null when no live server is reporting. */
|
|
1252
1780
|
buddyLive: Maybe<BuddyLiveRates>;
|
|
1781
|
+
/** Environment UUID (as a string). */
|
|
1253
1782
|
environmentId: Scalars['String']['output'];
|
|
1783
|
+
/** Environment slug. */
|
|
1254
1784
|
environmentSlug: Scalars['String']['output'];
|
|
1785
|
+
/** GraphQL API usage, one row per minute. */
|
|
1255
1786
|
graphql: Array<UsageMinuteRow>;
|
|
1787
|
+
/** Owning organization id (as a string). */
|
|
1256
1788
|
orgId: Scalars['String']['output'];
|
|
1789
|
+
/** Replication (game state sync) usage, one row per minute. */
|
|
1257
1790
|
replication: Array<UsageMinuteRow>;
|
|
1791
|
+
/** Peak/average replication send rates. */
|
|
1258
1792
|
replicationRates: UsageRatePeaks;
|
|
1259
1793
|
};
|
|
1260
1794
|
/** An org's free shared app slot quota usage. */
|
|
1261
1795
|
export type FreeAppQuota = {
|
|
1262
1796
|
__typename?: 'FreeAppQuota';
|
|
1797
|
+
/** Organization id (BigInt). */
|
|
1263
1798
|
orgId: Scalars['BigInt']['output'];
|
|
1799
|
+
/** Apps on a paid subscription (do not consume free slots). */
|
|
1264
1800
|
paidApps: Scalars['Int']['output'];
|
|
1801
|
+
/** Total free shared app slots granted to the org. */
|
|
1265
1802
|
quota: Scalars['Int']['output'];
|
|
1803
|
+
/** Free slots still available (quota − usedFree); 0 means a paid plan is required. */
|
|
1266
1804
|
remainingFree: Scalars['Int']['output'];
|
|
1805
|
+
/** Free slots currently in use. */
|
|
1267
1806
|
usedFree: Scalars['Int']['output'];
|
|
1268
1807
|
};
|
|
1808
|
+
/** Status of the recurring free-play window during which gameplay is open without entitlement. */
|
|
1269
1809
|
export type FreePlayWindowInfo = {
|
|
1270
1810
|
__typename?: 'FreePlayWindowInfo';
|
|
1811
|
+
/** Human-readable description of the free-play schedule. */
|
|
1271
1812
|
description: Scalars['String']['output'];
|
|
1813
|
+
/** True if a free-play window is active right now. */
|
|
1272
1814
|
isCurrentlyActive: Scalars['Boolean']['output'];
|
|
1815
|
+
/** ISO-8601 start time of the next free-play window, or null if none. */
|
|
1273
1816
|
nextWindowStart: Maybe<Scalars['String']['output']>;
|
|
1274
1817
|
};
|
|
1818
|
+
/** One property write a function performs. */
|
|
1275
1819
|
export type FunctionMutationInput = {
|
|
1276
1820
|
/** Expression string (compiled to AST server-side). */
|
|
1277
1821
|
expression: Scalars['String']['input'];
|
|
1822
|
+
/** The property key to write. */
|
|
1278
1823
|
property: Scalars['String']['input'];
|
|
1279
1824
|
/** Container target: self | ref("uuid") | ref($param). */
|
|
1280
1825
|
target: Scalars['String']['input'];
|
|
1281
1826
|
};
|
|
1827
|
+
/** A typed parameter declaration for a function. */
|
|
1282
1828
|
export type FunctionParamInput = {
|
|
1283
1829
|
/** JSON-encoded default value. */
|
|
1284
1830
|
defaultValueJson?: InputMaybe<Scalars['String']['input']>;
|
|
1831
|
+
/** Optional description of the parameter. */
|
|
1285
1832
|
description?: InputMaybe<Scalars['String']['input']>;
|
|
1833
|
+
/** Parameter name (referenced as $name in expressions). */
|
|
1286
1834
|
name: Scalars['String']['input'];
|
|
1835
|
+
/** Whether the parameter is required. Defaults to true. */
|
|
1287
1836
|
required?: InputMaybe<Scalars['Boolean']['input']>;
|
|
1837
|
+
/** Display/order index. Defaults to 0. */
|
|
1288
1838
|
sortOrder?: InputMaybe<Scalars['Int']['input']>;
|
|
1839
|
+
/** int | float | string | bool | array | object | container_ref */
|
|
1289
1840
|
valueType: Scalars['String']['input'];
|
|
1290
1841
|
};
|
|
1291
1842
|
/** Startup contract for browser game clients. Fetch this after login to initialize protocol/version checks and UDP proxy state in one round trip. */
|
|
1292
1843
|
export type GameClientBootstrap = {
|
|
1293
1844
|
__typename?: 'GameClientBootstrap';
|
|
1845
|
+
/** The app (game) this bootstrap was requested for, echoed back. A BigInt as a decimal string. Reuse this exact appId to scope the udpNotifications subscription and on every spatial send for this play session. */
|
|
1294
1846
|
appId: Scalars['BigInt']['output'];
|
|
1847
|
+
/** Maximum allowed value for the `decayRate` (named attenuation algorithm id) field on spatial sends. Currently 5; the server clamps send `decayRate` to 0..this. decayRate selects how the message attenuates with distance (0 = none). */
|
|
1295
1848
|
maxDecayRate: Scalars['Int']['output'];
|
|
1849
|
+
/** Maximum allowed value for the `distance` (chunk fan-out radius) field on spatial sends. Currently 8; the server clamps send `distance` to 0..this. distance is the number of chunks outward the message is replicated. */
|
|
1296
1850
|
maxReplicationDistance: Scalars['Int']['output'];
|
|
1851
|
+
/** The authenticated user resolved from the bearer game token on the request. Use this for the local player identity instead of a separate `me` call. */
|
|
1297
1852
|
me: User;
|
|
1298
1853
|
/** GraphQL WebSocket subprotocol expected by udpNotifications. */
|
|
1299
1854
|
realtimeProtocol: Scalars['String']['output'];
|
|
1855
|
+
/** The modulus the per-message sequenceNumber wraps at (256), i.e. sequenceNumber is a uint8 in 0-255. sequenceNumber exists ONLY to correlate asynchronous responses/errors (delivered on udpNotifications) with the send that produced them — it is NOT an idempotency key, and the server does not dedupe replays. */
|
|
1300
1856
|
sequenceNumberModulo: Scalars['Int']['output'];
|
|
1301
1857
|
/** GraphQL subscription field that carries UDP proxy notifications. */
|
|
1302
1858
|
subscriptionName: Scalars['String']['output'];
|
|
1859
|
+
/** UDP proxy session status for this game token at bootstrap time. connected is false until you open a session (via connectUdpProxy, any send* mutation, or subscribing to udpNotifications); fetching the bootstrap does not open one. */
|
|
1303
1860
|
udpProxyConnectionStatus: UdpProxyConnectionStatus;
|
|
1861
|
+
/** Current server version and the minimum client version the server accepts. Compare your build against minimumClientVersion before connecting; prompt the player to update if it is too old. */
|
|
1304
1862
|
versionInfo: ServerVersionInfo;
|
|
1305
1863
|
};
|
|
1306
1864
|
/** The elected host user of a game (app). Election is deterministic across all cks-game-api replicas: among actors that are still fresh (recently heartbeated), the user whose earliest actor was created first wins, with a uuid tiebreaker. Row lifecycle is owned by Buddy (cks-udp-api); liveness (updated_at) is owned by game-api's actorHeartbeat mutation. */
|
|
@@ -1313,96 +1871,166 @@ export type GameHost = {
|
|
|
1313
1871
|
/** The user_id of the elected host. Stable while this user has at least one fresh row in `actors` for the app; the next-oldest user takes over automatically once the current host stops heartbeating (its rows age past HOST_ACTOR_FRESHNESS_SECONDS) or Buddy idle-evicts its last row. */
|
|
1314
1872
|
hostUserId: Scalars['BigInt']['output'];
|
|
1315
1873
|
};
|
|
1316
|
-
/**
|
|
1874
|
+
/** Relay-style cursor-paginated connection over the function-invocation event log (GmEvent). Page with `first`/`after`; cursors are opaque. */
|
|
1875
|
+
export type GameModelEventsConnection = {
|
|
1876
|
+
__typename?: 'GameModelEventsConnection';
|
|
1877
|
+
/** Edges on this page. */
|
|
1878
|
+
edges: Array<GmEventEdge>;
|
|
1879
|
+
/** Pagination metadata. */
|
|
1880
|
+
pageInfo: ConnectionPageInfo;
|
|
1881
|
+
/** Total matching records across all pages, when known (null for sources that do not compute a total). */
|
|
1882
|
+
totalCount: Maybe<Scalars['Int']['output']>;
|
|
1883
|
+
};
|
|
1884
|
+
/** Asynchronous error from the UDP game server for a previously sent datagram (e.g. a send* mutation). Delivered as a member of the udpNotifications union, NOT as a GraphQL error on the mutation (which only reports whether the datagram was accepted for sending). Match it to the originating send via sequenceNumber and read errorCode for the reason. Note: not every failure produces one — some auth failures are dropped silently (see UdpErrorCode). */
|
|
1317
1885
|
export type GenericErrorResponse = {
|
|
1318
1886
|
__typename?: 'GenericErrorResponse';
|
|
1319
1887
|
/** Error code indicating the reason for the failure. */
|
|
1320
1888
|
errorCode: UdpErrorCode;
|
|
1321
|
-
/**
|
|
1889
|
+
/** Echoes the sequenceNumber of the request that failed (a uint8, 0-255, wrapping at modulo 256) so you can correlate this error with the send* mutation that produced it. Correlation only — it is not an idempotency key. */
|
|
1322
1890
|
sequenceNumber: Scalars['Int']['output'];
|
|
1323
1891
|
};
|
|
1892
|
+
/** Arguments for getChunk: selects a single chunk by app id and chunk coordinates, with optional LOD filtering. */
|
|
1324
1893
|
export type GetChunkInput = {
|
|
1894
|
+
/** Id of the app that owns the chunk (decimal string). */
|
|
1325
1895
|
appId: Scalars['BigInt']['input'];
|
|
1896
|
+
/** Address of the chunk to fetch. */
|
|
1326
1897
|
coordinates: ChunkCoordinatesInput;
|
|
1898
|
+
/** When true, return all available LODs and ignore `requestedLodLevels`. */
|
|
1327
1899
|
includeAllLods?: InputMaybe<Scalars['Boolean']['input']>;
|
|
1900
|
+
/** Optional list of LOD levels (each >= 0) to include in the returned chunk's `lods`. Ignored when `includeAllLods` is true. Omit to apply no LOD filtering. */
|
|
1328
1901
|
requestedLodLevels?: InputMaybe<Array<Scalars['Int']['input']>>;
|
|
1329
1902
|
};
|
|
1903
|
+
/** Arguments for getChunkLods: selects the LOD meshes for one chunk and returns only the requested levels. */
|
|
1330
1904
|
export type GetChunkLodsInput = {
|
|
1905
|
+
/** Id of the app that owns the chunk (decimal string). */
|
|
1331
1906
|
appId: Scalars['BigInt']['input'];
|
|
1907
|
+
/** Address of the chunk whose LODs to fetch. */
|
|
1332
1908
|
coordinates: ChunkCoordinatesInput;
|
|
1909
|
+
/** LOD levels to return (each >= 0; 0 is the finest). Only matching levels are included in the response. */
|
|
1333
1910
|
lodLevels: Array<Scalars['Int']['input']>;
|
|
1334
1911
|
};
|
|
1912
|
+
/** Arguments for getChunksByDistance: selects chunks within a cubic (Chebyshev-distance) radius around a center chunk, with pagination. */
|
|
1335
1913
|
export type GetChunksByDistanceInput = {
|
|
1914
|
+
/** Id of the app whose chunks to search (decimal string). */
|
|
1336
1915
|
appId: Scalars['BigInt']['input'];
|
|
1916
|
+
/** Center chunk of the search cube. */
|
|
1337
1917
|
centerCoordinate: ChunkCoordinatesInput;
|
|
1918
|
+
/** Maximum number of chunks to return. Defaults to 1000 when omitted. Must be >= 0. */
|
|
1338
1919
|
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
1920
|
+
/** Cube 'radius' in chunks measured as Chebyshev distance: matches chunks whose x, y and z each differ from the center by at most this many chunks (a (2*maxDistance+1)^3 cube). Integer, 1-8 inclusive. */
|
|
1339
1921
|
maxDistance: Scalars['Int']['input'];
|
|
1922
|
+
/** Number of chunks to skip for pagination. Defaults to 0 when omitted. Must be >= 0. */
|
|
1340
1923
|
skip?: InputMaybe<Scalars['Int']['input']>;
|
|
1341
1924
|
};
|
|
1925
|
+
/** Arguments for getVoxelList: selects all recorded voxel edits for one chunk by app id and chunk coordinates. */
|
|
1342
1926
|
export type GetVoxelListInput = {
|
|
1927
|
+
/** Id of the app that owns the chunk (decimal string). */
|
|
1343
1928
|
appId: Scalars['BigInt']['input'];
|
|
1929
|
+
/** Address of the chunk whose voxel edits to list. */
|
|
1344
1930
|
coordinates: ChunkCoordinatesInput;
|
|
1345
1931
|
};
|
|
1932
|
+
/** An app feature key that functions can gate on and tiers can grant. */
|
|
1346
1933
|
export type GmAppFeature = {
|
|
1347
1934
|
__typename?: 'GmAppFeature';
|
|
1935
|
+
/** The app (tenant) that defines the feature. */
|
|
1348
1936
|
appId: Scalars['BigInt']['output'];
|
|
1937
|
+
/** Optional description of the feature. */
|
|
1349
1938
|
description: Maybe<Scalars['String']['output']>;
|
|
1939
|
+
/** The feature key (referenced by tier_feature authority rules). */
|
|
1350
1940
|
featureKey: Scalars['String']['output'];
|
|
1351
1941
|
};
|
|
1942
|
+
/** The app's game-model runtime policy. */
|
|
1352
1943
|
export type GmAppPolicy = {
|
|
1353
1944
|
__typename?: 'GmAppPolicy';
|
|
1945
|
+
/** The app (tenant) the policy applies to. */
|
|
1354
1946
|
appId: Scalars['BigInt']['output'];
|
|
1947
|
+
/** Default role assigned to new session participants. */
|
|
1355
1948
|
defaultParticipantRole: Scalars['String']['output'];
|
|
1949
|
+
/** Who may create sessions: admin | member | anyone. */
|
|
1356
1950
|
sessionCreationPolicy: Scalars['String']['output'];
|
|
1357
1951
|
};
|
|
1952
|
+
/** A container: a runtime instance of a container type (optionally scoped to a session). */
|
|
1358
1953
|
export type GmContainer = {
|
|
1359
1954
|
__typename?: 'GmContainer';
|
|
1955
|
+
/** The app (tenant) that owns the container. */
|
|
1360
1956
|
appId: Scalars['BigInt']['output'];
|
|
1957
|
+
/** Unique container id (UUID). */
|
|
1361
1958
|
containerId: Scalars['String']['output'];
|
|
1959
|
+
/** Optional description. */
|
|
1362
1960
|
description: Maybe<Scalars['String']['output']>;
|
|
1961
|
+
/** Human-friendly display name. */
|
|
1363
1962
|
displayName: Scalars['String']['output'];
|
|
1364
1963
|
/** JSON object of developer metadata. */
|
|
1365
1964
|
metadataJson: Scalars['String']['output'];
|
|
1965
|
+
/** The owning user, or null if unowned. */
|
|
1366
1966
|
ownerUserId: Maybe<Scalars['BigInt']['output']>;
|
|
1967
|
+
/** Owning session id, or null for an app-global container. */
|
|
1367
1968
|
sessionId: Maybe<Scalars['String']['output']>;
|
|
1969
|
+
/** The container type name. */
|
|
1368
1970
|
typeName: Scalars['String']['output'];
|
|
1369
1971
|
};
|
|
1972
|
+
/** A container plus its property values filtered to what the requesting caller is allowed to see. */
|
|
1370
1973
|
export type GmContainerState = {
|
|
1371
1974
|
__typename?: 'GmContainerState';
|
|
1975
|
+
/** The app (tenant) that owns the container. */
|
|
1372
1976
|
appId: Scalars['BigInt']['output'];
|
|
1977
|
+
/** The container id (UUID). */
|
|
1373
1978
|
containerId: Scalars['String']['output'];
|
|
1979
|
+
/** Human-friendly display name. */
|
|
1374
1980
|
displayName: Scalars['String']['output'];
|
|
1981
|
+
/** The owning user, or null if unowned. */
|
|
1375
1982
|
ownerUserId: Maybe<Scalars['BigInt']['output']>;
|
|
1376
1983
|
/** JSON object of visible properties (filtered by the caller). */
|
|
1377
1984
|
propertiesJson: Scalars['String']['output'];
|
|
1985
|
+
/** Owning session id, or null if app-global. */
|
|
1378
1986
|
sessionId: Maybe<Scalars['String']['output']>;
|
|
1987
|
+
/** The container type name. */
|
|
1379
1988
|
typeName: Scalars['String']['output'];
|
|
1380
1989
|
};
|
|
1990
|
+
/** A studio-defined container type: the schema for a kind of runtime entity (like a class). */
|
|
1381
1991
|
export type GmContainerType = {
|
|
1382
1992
|
__typename?: 'GmContainerType';
|
|
1993
|
+
/** The app (tenant) that owns the type. */
|
|
1383
1994
|
appId: Scalars['BigInt']['output'];
|
|
1995
|
+
/** Default visibility for this type's properties: public | owner | hidden. */
|
|
1384
1996
|
defaultPropertyVisibility: Scalars['String']['output'];
|
|
1997
|
+
/** Optional description of the type. */
|
|
1385
1998
|
description: Maybe<Scalars['String']['output']>;
|
|
1999
|
+
/** Human-friendly display name. */
|
|
1386
2000
|
displayName: Scalars['String']['output'];
|
|
2001
|
+
/** Who may instantiate this type: admin | member | owner. */
|
|
1387
2002
|
instantiableBy: Scalars['String']['output'];
|
|
1388
2003
|
/** JSON object of developer metadata. */
|
|
1389
2004
|
metadataJson: Scalars['String']['output'];
|
|
2005
|
+
/** Stable type name (unique per app); used to reference the type. */
|
|
1390
2006
|
typeName: Scalars['String']['output'];
|
|
1391
2007
|
};
|
|
2008
|
+
/** A directed relationship edge between two containers. */
|
|
1392
2009
|
export type GmEdge = {
|
|
1393
2010
|
__typename?: 'GmEdge';
|
|
2011
|
+
/** Unique edge id (UUID). */
|
|
1394
2012
|
edgeId: Scalars['String']['output'];
|
|
2013
|
+
/** Source container id. */
|
|
1395
2014
|
fromContainerId: Scalars['String']['output'];
|
|
2015
|
+
/** The relationship type label. */
|
|
1396
2016
|
relationshipType: Scalars['String']['output'];
|
|
2017
|
+
/** Target container id. */
|
|
1397
2018
|
toContainerId: Scalars['String']['output'];
|
|
2019
|
+
/** Optional edge weight. */
|
|
1398
2020
|
weight: Maybe<Scalars['Float']['output']>;
|
|
1399
2021
|
};
|
|
2022
|
+
/** An audit-log entry recording one function invocation and its outcome. */
|
|
1400
2023
|
export type GmEvent = {
|
|
1401
2024
|
__typename?: 'GmEvent';
|
|
2025
|
+
/** The user who invoked the function. */
|
|
1402
2026
|
callerUserId: Maybe<Scalars['BigInt']['output']>;
|
|
2027
|
+
/** Error message when the invocation failed. */
|
|
1403
2028
|
errorMessage: Maybe<Scalars['String']['output']>;
|
|
2029
|
+
/** Unique event id. */
|
|
1404
2030
|
eventId: Scalars['String']['output'];
|
|
2031
|
+
/** When the invocation executed. */
|
|
1405
2032
|
executedAt: Scalars['DateTime']['output'];
|
|
2033
|
+
/** The function that was invoked. */
|
|
1406
2034
|
functionName: Scalars['String']['output'];
|
|
1407
2035
|
/** JSON array of applied mutations. */
|
|
1408
2036
|
mutationsAppliedJson: Scalars['String']['output'];
|
|
@@ -1410,484 +2038,776 @@ export type GmEvent = {
|
|
|
1410
2038
|
paramsJson: Scalars['String']['output'];
|
|
1411
2039
|
/** JSON-encoded return value. */
|
|
1412
2040
|
returnValueJson: Maybe<Scalars['String']['output']>;
|
|
2041
|
+
/** The self container id the function ran against. */
|
|
1413
2042
|
selfContainerId: Maybe<Scalars['String']['output']>;
|
|
2043
|
+
/** The session the invocation ran in, if any. */
|
|
1414
2044
|
sessionId: Maybe<Scalars['String']['output']>;
|
|
2045
|
+
/** True if the invocation succeeded. */
|
|
1415
2046
|
success: Scalars['Boolean']['output'];
|
|
1416
2047
|
};
|
|
2048
|
+
/** An edge in a GmEvent connection. */
|
|
2049
|
+
export type GmEventEdge = {
|
|
2050
|
+
__typename?: 'GmEventEdge';
|
|
2051
|
+
/** Opaque cursor for this edge. */
|
|
2052
|
+
cursor: Scalars['String']['output'];
|
|
2053
|
+
/** The node at the end of this edge. */
|
|
2054
|
+
node: GmEvent;
|
|
2055
|
+
};
|
|
2056
|
+
/** A studio-defined function: a named, sandboxed behavior over containers (parameters, declared mutations, optional return, and an authority invoke policy). */
|
|
1417
2057
|
export type GmFunction = {
|
|
1418
2058
|
__typename?: 'GmFunction';
|
|
2059
|
+
/** The app (tenant) that owns the function. */
|
|
1419
2060
|
appId: Scalars['BigInt']['output'];
|
|
2061
|
+
/** Optional container type this function is bound to (null = global). */
|
|
1420
2062
|
containerTypeName: Maybe<Scalars['String']['output']>;
|
|
2063
|
+
/** Optional description of the function. */
|
|
1421
2064
|
description: Maybe<Scalars['String']['output']>;
|
|
2065
|
+
/** Unique function id (UUID). */
|
|
1422
2066
|
functionId: Scalars['String']['output'];
|
|
1423
2067
|
/** JSON-encoded invoke policy rule tree. */
|
|
1424
2068
|
invokePolicyJson: Maybe<Scalars['String']['output']>;
|
|
2069
|
+
/** Who may invoke and in what context: player | server | internal. */
|
|
1425
2070
|
invokeScope: Scalars['String']['output'];
|
|
2071
|
+
/** The property writes the function performs when invoked. */
|
|
1426
2072
|
mutations: Array<GmFunctionMutation>;
|
|
2073
|
+
/** Function name (unique per app); used to invoke it. */
|
|
1427
2074
|
name: Scalars['String']['output'];
|
|
2075
|
+
/** Typed parameters the function accepts. */
|
|
1428
2076
|
parameters: Array<GmFunctionParam>;
|
|
2077
|
+
/** Optional expression whose value becomes the invoke result. */
|
|
1429
2078
|
returnExpression: Maybe<Scalars['String']['output']>;
|
|
2079
|
+
/** Optional declared return value type. */
|
|
1430
2080
|
returnType: Maybe<Scalars['String']['output']>;
|
|
1431
2081
|
/** Non-fatal static-analysis warnings from the last upload. */
|
|
1432
2082
|
warnings: Array<Scalars['String']['output']>;
|
|
1433
2083
|
};
|
|
2084
|
+
/** One declared write a function performs: set `property` on `target` to `expression`. */
|
|
1434
2085
|
export type GmFunctionMutation = {
|
|
1435
2086
|
__typename?: 'GmFunctionMutation';
|
|
2087
|
+
/** The expression (source) evaluated to produce the new value. */
|
|
1436
2088
|
expression: Scalars['String']['output'];
|
|
2089
|
+
/** The property key being written. */
|
|
1437
2090
|
property: Scalars['String']['output'];
|
|
1438
2091
|
/** Container reference target: self | ref("uuid") | ref($param). */
|
|
1439
2092
|
target: Scalars['String']['output'];
|
|
1440
2093
|
};
|
|
2094
|
+
/** A typed parameter of a studio-defined function. */
|
|
1441
2095
|
export type GmFunctionParam = {
|
|
1442
2096
|
__typename?: 'GmFunctionParam';
|
|
1443
2097
|
/** JSON-encoded default value. */
|
|
1444
2098
|
defaultValueJson: Maybe<Scalars['String']['output']>;
|
|
2099
|
+
/** Optional description of the parameter. */
|
|
1445
2100
|
description: Maybe<Scalars['String']['output']>;
|
|
2101
|
+
/** Parameter name (referenced as $name in expressions). */
|
|
1446
2102
|
name: Scalars['String']['output'];
|
|
2103
|
+
/** Whether the parameter is required at invoke time. */
|
|
1447
2104
|
required: Scalars['Boolean']['output'];
|
|
2105
|
+
/** Display/order index of the parameter. */
|
|
1448
2106
|
sortOrder: Scalars['Int']['output'];
|
|
2107
|
+
/** Value type: int | float | string | bool | array | object | container_ref. */
|
|
1449
2108
|
valueType: Scalars['String']['output'];
|
|
1450
2109
|
};
|
|
2110
|
+
/** The outcome of a gameModelInvoke call (return value, applied writes, and any error). */
|
|
1451
2111
|
export type GmInvokeResult = {
|
|
1452
2112
|
__typename?: 'GmInvokeResult';
|
|
2113
|
+
/** Error message when success is false (e.g. authority denied or evaluation error). */
|
|
1453
2114
|
errorMessage: Maybe<Scalars['String']['output']>;
|
|
2115
|
+
/** The id of the event logged for this invocation. */
|
|
1454
2116
|
eventId: Scalars['String']['output'];
|
|
2117
|
+
/** The function that was invoked. */
|
|
1455
2118
|
functionName: Scalars['String']['output'];
|
|
2119
|
+
/** The property writes that were applied (empty if none / on failure). */
|
|
1456
2120
|
mutationsApplied: Array<GmMutationApplied>;
|
|
1457
2121
|
/** JSON-encoded return value. */
|
|
1458
2122
|
returnValueJson: Maybe<Scalars['String']['output']>;
|
|
2123
|
+
/** True if the invocation succeeded; false if it was rejected or errored. */
|
|
1459
2124
|
success: Scalars['Boolean']['output'];
|
|
1460
2125
|
};
|
|
2126
|
+
/** One property write applied during a function invocation (with before/after values). */
|
|
1461
2127
|
export type GmMutationApplied = {
|
|
1462
2128
|
__typename?: 'GmMutationApplied';
|
|
2129
|
+
/** The container that was written. */
|
|
1463
2130
|
containerId: Scalars['String']['output'];
|
|
2131
|
+
/** The property key written. */
|
|
1464
2132
|
key: Scalars['String']['output'];
|
|
2133
|
+
/** JSON-encoded value after the write. */
|
|
1465
2134
|
newValueJson: Maybe<Scalars['String']['output']>;
|
|
2135
|
+
/** JSON-encoded value before the write. */
|
|
1466
2136
|
oldValueJson: Maybe<Scalars['String']['output']>;
|
|
2137
|
+
/** The value type written. */
|
|
1467
2138
|
valueType: Scalars['String']['output'];
|
|
1468
2139
|
};
|
|
2140
|
+
/** A typed property (field) defined on a container type. */
|
|
1469
2141
|
export type GmPropertyDef = {
|
|
1470
2142
|
__typename?: 'GmPropertyDef';
|
|
2143
|
+
/** The app (tenant) that owns the type. */
|
|
1471
2144
|
appId: Scalars['BigInt']['output'];
|
|
2145
|
+
/** The container type this property belongs to. */
|
|
1472
2146
|
containerTypeName: Scalars['String']['output'];
|
|
1473
2147
|
/** JSON-encoded default value. */
|
|
1474
2148
|
defaultValueJson: Maybe<Scalars['String']['output']>;
|
|
2149
|
+
/** Optional description of the property. */
|
|
1475
2150
|
description: Maybe<Scalars['String']['output']>;
|
|
2151
|
+
/** Property key (unique within the type). */
|
|
1476
2152
|
key: Scalars['String']['output'];
|
|
2153
|
+
/** Value type: int | float | string | bool | array | object | container_ref. */
|
|
1477
2154
|
valueType: Scalars['String']['output'];
|
|
2155
|
+
/** Read visibility: public | owner | hidden. */
|
|
1478
2156
|
visibility: Scalars['String']['output'];
|
|
2157
|
+
/** Who may write the property: function | owner | admin. */
|
|
1479
2158
|
writable: Scalars['String']['output'];
|
|
1480
2159
|
};
|
|
2160
|
+
/** Summary of what a gameModelSeed call created. */
|
|
1481
2161
|
export type GmSeedResult = {
|
|
1482
2162
|
__typename?: 'GmSeedResult';
|
|
2163
|
+
/** Number of container types created. */
|
|
1483
2164
|
containerTypesCreated: Scalars['Int']['output'];
|
|
2165
|
+
/** Number of containers (instances) created. */
|
|
1484
2166
|
containersCreated: Scalars['Int']['output'];
|
|
2167
|
+
/** Number of edges created. */
|
|
1485
2168
|
edgesCreated: Scalars['Int']['output'];
|
|
2169
|
+
/** Number of functions created. */
|
|
1486
2170
|
functionsCreated: Scalars['Int']['output'];
|
|
1487
2171
|
/** JSON object mapping seed temp_id -> created container UUID. */
|
|
1488
2172
|
idMapJson: Scalars['String']['output'];
|
|
2173
|
+
/** Number of property definitions created. */
|
|
1489
2174
|
propertyDefinitionsCreated: Scalars['Int']['output'];
|
|
2175
|
+
/** Non-fatal warnings produced while seeding. */
|
|
1490
2176
|
warnings: Array<Scalars['String']['output']>;
|
|
1491
2177
|
};
|
|
2178
|
+
/** A runtime session: an isolated instance scope (e.g. a match or room) for containers. */
|
|
1492
2179
|
export type GmSession = {
|
|
1493
2180
|
__typename?: 'GmSession';
|
|
2181
|
+
/** The app (tenant) that owns the session. */
|
|
1494
2182
|
appId: Scalars['BigInt']['output'];
|
|
2183
|
+
/** The user who created the session. */
|
|
1495
2184
|
createdByUserId: Maybe<Scalars['BigInt']['output']>;
|
|
2185
|
+
/** The user whose turn it currently is (turn-based play), or null. */
|
|
1496
2186
|
currentTurnUserId: Maybe<Scalars['BigInt']['output']>;
|
|
1497
2187
|
/** JSON object of developer metadata. */
|
|
1498
2188
|
metadataJson: Scalars['String']['output'];
|
|
2189
|
+
/** Optional session name. */
|
|
1499
2190
|
name: Maybe<Scalars['String']['output']>;
|
|
2191
|
+
/** Unique session id. */
|
|
1500
2192
|
sessionId: Scalars['String']['output'];
|
|
2193
|
+
/** Lifecycle status (e.g. active). */
|
|
1501
2194
|
status: Scalars['String']['output'];
|
|
1502
2195
|
};
|
|
2196
|
+
/** A user's participation in a session. */
|
|
1503
2197
|
export type GmSessionParticipant = {
|
|
1504
2198
|
__typename?: 'GmSessionParticipant';
|
|
2199
|
+
/** The participant role within the session. */
|
|
1505
2200
|
role: Scalars['String']['output'];
|
|
2201
|
+
/** The session id. */
|
|
1506
2202
|
sessionId: Scalars['String']['output'];
|
|
2203
|
+
/** The participant user id. */
|
|
1507
2204
|
userId: Scalars['BigInt']['output'];
|
|
1508
2205
|
};
|
|
2206
|
+
/** A grant of a feature key to an access tier. */
|
|
1509
2207
|
export type GmTierFeature = {
|
|
1510
2208
|
__typename?: 'GmTierFeature';
|
|
2209
|
+
/** The app (tenant). */
|
|
1511
2210
|
appId: Scalars['BigInt']['output'];
|
|
2211
|
+
/** The feature key granted to the tier. */
|
|
1512
2212
|
featureKey: Scalars['String']['output'];
|
|
2213
|
+
/** The access tier the feature is granted to. */
|
|
1513
2214
|
tierId: Scalars['BigInt']['output'];
|
|
1514
2215
|
};
|
|
2216
|
+
/** The result of a graph traversal: the reachable container nodes and the edges between them. */
|
|
1515
2217
|
export type GmTraverseResult = {
|
|
1516
2218
|
__typename?: 'GmTraverseResult';
|
|
2219
|
+
/** Edges traversed, of the requested relationship type. */
|
|
1517
2220
|
edges: Array<GmEdge>;
|
|
2221
|
+
/** Containers reached within the requested depth. */
|
|
1518
2222
|
nodes: Array<GmContainer>;
|
|
2223
|
+
/** The root container the traversal started from. */
|
|
1519
2224
|
rootId: Scalars['String']['output'];
|
|
1520
2225
|
};
|
|
2226
|
+
/** A container type's complete schema: its property definitions and available functions. */
|
|
1521
2227
|
export type GmTypeSchema = {
|
|
1522
2228
|
__typename?: 'GmTypeSchema';
|
|
2229
|
+
/** The functions available on the type. */
|
|
1523
2230
|
functions: Array<GmFunction>;
|
|
2231
|
+
/** The type's property definitions. */
|
|
1524
2232
|
propertyDefinitions: Array<GmPropertyDef>;
|
|
2233
|
+
/** The container type name. */
|
|
1525
2234
|
typeName: Scalars['String']['output'];
|
|
1526
2235
|
};
|
|
2236
|
+
/** Input for granting a user access to an app, optionally on a specific tier. */
|
|
1527
2237
|
export type GrantAppAccessInput = {
|
|
2238
|
+
/** Numeric id of the app to grant access to. The caller must hold manage_access_tiers on this app. */
|
|
1528
2239
|
appId: Scalars['BigInt']['input'];
|
|
2240
|
+
/** Optional audit override for who granted access; defaults to the calling user id. Service grants use "system". */
|
|
1529
2241
|
grantedBy?: InputMaybe<Scalars['String']['input']>;
|
|
2242
|
+
/** Optional idempotency key. Recommended for retries: replaying with the same key and identical input returns the first result instead of re-applying; the same key with different input returns IDEMPOTENCY_CONFLICT. Keys expire after 24h. */
|
|
2243
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
2244
|
+
/** Optional tier to grant. When omitted, an existing grant keeps its current tier (no tier change). */
|
|
1530
2245
|
tierId?: InputMaybe<Scalars['BigInt']['input']>;
|
|
2246
|
+
/** Numeric id of the user who should receive access. */
|
|
1531
2247
|
userId: Scalars['BigInt']['input'];
|
|
1532
2248
|
};
|
|
2249
|
+
/** Grant runtime permission keys directly to one user on one grid (writes the grid_user_direct_grants input table). */
|
|
1533
2250
|
export type GrantGridPermissionsInput = {
|
|
2251
|
+
/** The app (tenant) that owns the grid. */
|
|
1534
2252
|
appId: Scalars['BigInt']['input'];
|
|
2253
|
+
/** Optional expiry; after this time the grant stops contributing to the effective ACL. Null/omitted means it never expires. */
|
|
1535
2254
|
expiresAt?: InputMaybe<Scalars['DateTime']['input']>;
|
|
2255
|
+
/** The grid to grant on. */
|
|
1536
2256
|
gridId: Scalars['BigInt']['input'];
|
|
2257
|
+
/** Runtime permission key strings to grant (e.g. update_voxel_data). Each must be a known key in runtime_permissions, unique, and at most 64 chars. */
|
|
1537
2258
|
permissionKeys: Array<Scalars['String']['input']>;
|
|
2259
|
+
/** The user receiving the grant. Must already have active app access for this app. */
|
|
1538
2260
|
userId: Scalars['BigInt']['input'];
|
|
1539
2261
|
};
|
|
2262
|
+
/** Grant or revoke a feature key for an access tier. */
|
|
1540
2263
|
export type GrantTierFeatureInput = {
|
|
2264
|
+
/** The app (tenant). */
|
|
1541
2265
|
appId: Scalars['BigInt']['input'];
|
|
2266
|
+
/** The feature key to grant to (or revoke from) the tier. */
|
|
1542
2267
|
featureKey: Scalars['String']['input'];
|
|
2268
|
+
/** The access tier id. */
|
|
1543
2269
|
tierId: Scalars['BigInt']['input'];
|
|
1544
2270
|
};
|
|
2271
|
+
/** A registered GraphQL API server instance in the fleet (either a management-api or a game-api, see `kind`), with reachability addresses and basic host telemetry. Returned by graphqlServers (all) and activeGraphQLServers (only ReadyForClients). Use this for service discovery; realtime/UDP play still goes through the game-api UDP proxy. */
|
|
1545
2272
|
export type GraphQlServer = {
|
|
1546
2273
|
__typename?: 'GraphQLServer';
|
|
2274
|
+
/** TCP port the GraphQL/HTTP API listens on (default 4000). */
|
|
1547
2275
|
apiPort: Scalars['Int']['output'];
|
|
2276
|
+
/** Current CPU utilization percentage (0-100) of the host, if reported. */
|
|
1548
2277
|
cpuUsagePct: Maybe<Scalars['Float']['output']>;
|
|
2278
|
+
/** When this server was first registered in the fleet. */
|
|
1549
2279
|
createdAt: Scalars['DateTime']['output'];
|
|
2280
|
+
/** Unique id of this GraphQL server registration. */
|
|
1550
2281
|
graphqlServerId: Scalars['ID']['output'];
|
|
2282
|
+
/** Internal/private IPv4 address of this server. Use publicIp4 for external reachability. */
|
|
1551
2283
|
ip4: Maybe<Scalars['String']['output']>;
|
|
2284
|
+
/** Internal/private IPv6 address of this server. Use publicIp6 for external reachability. */
|
|
1552
2285
|
ip6: Maybe<Scalars['String']['output']>;
|
|
1553
2286
|
/** Logical kind of GraphQL service: 'management-api' or 'game-api'. */
|
|
1554
2287
|
kind: Maybe<Scalars['String']['output']>;
|
|
2288
|
+
/** 1-minute load average of the host, if reported. */
|
|
1555
2289
|
loadAverage1m: Maybe<Scalars['Float']['output']>;
|
|
2290
|
+
/** Current memory utilization percentage (0-100) of the host, if reported. */
|
|
1556
2291
|
memoryUsagePct: Maybe<Scalars['Float']['output']>;
|
|
2292
|
+
/** Cloud provider instance id of the underlying host, if known. */
|
|
1557
2293
|
providerInstanceId: Maybe<Scalars['String']['output']>;
|
|
2294
|
+
/** Public IPv4 address clients use to reach this server, if assigned. */
|
|
1558
2295
|
publicIp4: Maybe<Scalars['String']['output']>;
|
|
2296
|
+
/** Public IPv6 address clients use to reach this server, if assigned. */
|
|
1559
2297
|
publicIp6: Maybe<Scalars['String']['output']>;
|
|
2298
|
+
/** UUID of the runtime/Buddy (cks-udp-api) instance this API server is paired with, if any. */
|
|
1560
2299
|
runtimeServerId: Maybe<Scalars['String']['output']>;
|
|
2300
|
+
/** Current lifecycle state (see ServerState). activeGraphQLServers returns only ReadyForClients. */
|
|
1561
2301
|
status: ServerState;
|
|
2302
|
+
/** When this server row was last updated (heartbeat). Use to judge freshness. */
|
|
1562
2303
|
updatedAt: Scalars['DateTime']['output'];
|
|
1563
2304
|
};
|
|
2305
|
+
/** Usage totals for a single GraphQL operation over the window. */
|
|
1564
2306
|
export type GraphqlOperationUsageRow = {
|
|
1565
2307
|
__typename?: 'GraphqlOperationUsageRow';
|
|
2308
|
+
/** GraphQL operation name (or '(anonymous)'). */
|
|
1566
2309
|
operationName: Scalars['String']['output'];
|
|
2310
|
+
/** Total bytes received for this operation (string counter). */
|
|
1567
2311
|
recvBytes: Scalars['String']['output'];
|
|
2312
|
+
/** Total bytes sent for this operation (string counter). */
|
|
1568
2313
|
sendBytes: Scalars['String']['output'];
|
|
2314
|
+
/** Total invocation count (string counter). */
|
|
1569
2315
|
totalOps: Scalars['String']['output'];
|
|
1570
2316
|
};
|
|
2317
|
+
/** A grid: a 3D box of chunks within an app that runtime/world (voxel) permissions are scoped to. Its bounds lie inside one of the app's grid assignments and never overlap another grid. */
|
|
1571
2318
|
export type Grid = {
|
|
1572
2319
|
__typename?: 'Grid';
|
|
2320
|
+
/** The app (tenant) that owns the grid. */
|
|
1573
2321
|
app_id: Scalars['BigInt']['output'];
|
|
2322
|
+
/** When the grid was created. */
|
|
1574
2323
|
created_at: Scalars['DateTime']['output'];
|
|
2324
|
+
/** Unique grid id. */
|
|
1575
2325
|
grid_id: Scalars['BigInt']['output'];
|
|
2326
|
+
/** High (maximum x/y/z) corner chunk of the box. */
|
|
1576
2327
|
high_chunk: ChunkCoordinates;
|
|
2328
|
+
/** Low (minimum x/y/z) corner chunk of the box. */
|
|
1577
2329
|
low_chunk: ChunkCoordinates;
|
|
1578
2330
|
};
|
|
2331
|
+
/** A single group/role -> permission-key grant on a grid (one row of the grid_group_grants input table). */
|
|
1579
2332
|
export type GridGroupGrant = {
|
|
1580
2333
|
__typename?: 'GridGroupGrant';
|
|
2334
|
+
/** The app (tenant) that owns the grid. */
|
|
1581
2335
|
appId: Scalars['BigInt']['output'];
|
|
2336
|
+
/** When the grant expires; null means it never expires. */
|
|
1582
2337
|
expiresAt: Maybe<Scalars['DateTime']['output']>;
|
|
2338
|
+
/** The grid this grant applies to. */
|
|
1583
2339
|
gridId: Scalars['BigInt']['output'];
|
|
2340
|
+
/** The group this grant is for. */
|
|
1584
2341
|
groupId: Scalars['BigInt']['output'];
|
|
1585
2342
|
/** Null means the grant applies to all members of the group. */
|
|
1586
2343
|
groupRoleId: Maybe<Scalars['BigInt']['output']>;
|
|
2344
|
+
/** The runtime permission key string granted to the group/role. */
|
|
1587
2345
|
permissionKey: Scalars['String']['output'];
|
|
1588
2346
|
};
|
|
2347
|
+
/** The permission-key whitelist configured for a grid (the grid_permission_limits input table). */
|
|
1589
2348
|
export type GridPermissionLimits = {
|
|
1590
2349
|
__typename?: 'GridPermissionLimits';
|
|
2350
|
+
/** The app (tenant) that owns the grid. */
|
|
1591
2351
|
appId: Scalars['BigInt']['output'];
|
|
2352
|
+
/** The grid the limits apply to. */
|
|
1592
2353
|
gridId: Scalars['BigInt']['output'];
|
|
1593
2354
|
/** The permission keys this grid is limited to. Empty means no limit (every active grid permission is allowed). */
|
|
1594
2355
|
permissionKeys: Array<Scalars['String']['output']>;
|
|
1595
2356
|
};
|
|
2357
|
+
/** A user's effective (materialized) runtime permissions on one grid: the flattened union of direct + group grants, with expired grants excluded, that Buddy enforces. */
|
|
1596
2358
|
export type GridUserPermissions = {
|
|
1597
2359
|
__typename?: 'GridUserPermissions';
|
|
2360
|
+
/** The app (tenant) that owns the grid. */
|
|
1598
2361
|
appId: Scalars['BigInt']['output'];
|
|
2362
|
+
/** The grid these permissions apply to. */
|
|
1599
2363
|
gridId: Scalars['BigInt']['output'];
|
|
2364
|
+
/** The effective runtime permission key strings the user currently holds on this grid. */
|
|
1600
2365
|
permissionKeys: Array<Scalars['String']['output']>;
|
|
2366
|
+
/** The user these permissions belong to. */
|
|
1601
2367
|
userId: Scalars['BigInt']['output'];
|
|
1602
2368
|
};
|
|
2369
|
+
/** A generic group. `groupType` discriminates teams ('team'), channels ('channel'), and grid-access groups ('grid'). */
|
|
1603
2370
|
export type Group = {
|
|
1604
2371
|
__typename?: 'Group';
|
|
2372
|
+
/** The app (tenant) the group belongs to. */
|
|
1605
2373
|
appId: Scalars['BigInt']['output'];
|
|
2374
|
+
/** When the group was created. */
|
|
1606
2375
|
createdAt: Scalars['DateTime']['output'];
|
|
1607
2376
|
/** Optional role auto-assigned to every new member (e.g. a channel "member" role granting send_messages). Null means new members get no role by default. */
|
|
1608
2377
|
defaultRoleId: Maybe<Scalars['BigInt']['output']>;
|
|
2378
|
+
/** Optional free-text description. */
|
|
1609
2379
|
description: Maybe<Scalars['String']['output']>;
|
|
2380
|
+
/** Unique group id. */
|
|
1610
2381
|
groupId: Scalars['BigInt']['output'];
|
|
2382
|
+
/** Discriminator: 'team' | 'channel' | 'grid'. */
|
|
1611
2383
|
groupType: Scalars['String']['output'];
|
|
2384
|
+
/** How users may join: open (join immediately) | request (pending approval) | invite | admin. */
|
|
1612
2385
|
membershipPolicy: Scalars['String']['output'];
|
|
2386
|
+
/** Display name (unique per app + group type). */
|
|
1613
2387
|
name: Scalars['String']['output'];
|
|
2388
|
+
/** The user who created/owns the group (holds the system 'leader' role). */
|
|
1614
2389
|
ownerUserId: Maybe<Scalars['BigInt']['output']>;
|
|
2390
|
+
/** Lifecycle status, e.g. 'active'. */
|
|
1615
2391
|
status: Scalars['String']['output'];
|
|
1616
2392
|
};
|
|
2393
|
+
/** A user's membership in a group, including the roles assigned to them. */
|
|
1617
2394
|
export type GroupMember = {
|
|
1618
2395
|
__typename?: 'GroupMember';
|
|
2396
|
+
/** When the membership row was created. */
|
|
1619
2397
|
createdAt: Scalars['DateTime']['output'];
|
|
2398
|
+
/** The group this membership is in. */
|
|
1620
2399
|
groupId: Scalars['BigInt']['output'];
|
|
2400
|
+
/** Unique membership id. */
|
|
1621
2401
|
groupMemberId: Scalars['BigInt']['output'];
|
|
2402
|
+
/** Roles assigned to this member. */
|
|
1622
2403
|
roles: Array<GroupRole>;
|
|
2404
|
+
/** Membership status: 'active' | 'pending' (awaiting approval) | 'banned'. */
|
|
1623
2405
|
status: Scalars['String']['output'];
|
|
2406
|
+
/** The member user id. */
|
|
1624
2407
|
userId: Scalars['BigInt']['output'];
|
|
1625
2408
|
};
|
|
2409
|
+
/** The caller's view of a group they belong to: the group, their roles, and their effective group permission keys. */
|
|
1626
2410
|
export type GroupMembership = {
|
|
1627
2411
|
__typename?: 'GroupMembership';
|
|
2412
|
+
/** The group the caller belongs to. */
|
|
1628
2413
|
group: Group;
|
|
2414
|
+
/** When the caller joined the group. */
|
|
1629
2415
|
joinedAt: Scalars['DateTime']['output'];
|
|
2416
|
+
/** The caller's effective group permission key strings (union across their roles). */
|
|
1630
2417
|
permissions: Array<Scalars['String']['output']>;
|
|
2418
|
+
/** The caller's roles in this group. */
|
|
1631
2419
|
roles: Array<GroupRole>;
|
|
1632
2420
|
};
|
|
2421
|
+
/** A role within a group (team/channel). Carries the group-management permission keys it grants (e.g. manage_members), NOT world/runtime grid permissions. */
|
|
1633
2422
|
export type GroupRole = {
|
|
1634
2423
|
__typename?: 'GroupRole';
|
|
2424
|
+
/** When the role was created. */
|
|
1635
2425
|
createdAt: Scalars['DateTime']['output'];
|
|
2426
|
+
/** The group this role belongs to. */
|
|
1636
2427
|
groupId: Scalars['BigInt']['output'];
|
|
2428
|
+
/** Unique role id. */
|
|
1637
2429
|
groupRoleId: Scalars['BigInt']['output'];
|
|
2430
|
+
/** True for built-in roles (e.g. 'leader') that cannot be renamed, re-ranked, or deleted. */
|
|
1638
2431
|
isSystem: Scalars['Boolean']['output'];
|
|
2432
|
+
/** Group permission key strings this role grants (e.g. manage_members, manage_roles, manage_group, send_messages). */
|
|
1639
2433
|
permissions: Array<Scalars['String']['output']>;
|
|
2434
|
+
/** Sort/precedence rank; higher is more senior. */
|
|
1640
2435
|
rank: Scalars['Int']['output'];
|
|
2436
|
+
/** Role display name (unique within the group). */
|
|
1641
2437
|
roleName: Scalars['String']['output'];
|
|
1642
2438
|
};
|
|
1643
2439
|
export type IngestEnvironmentVersionInput = {
|
|
2440
|
+
/** Overwrite an existing version row if one already exists (default false). */
|
|
1644
2441
|
force?: Scalars['Boolean']['input'];
|
|
2442
|
+
/** Override the release notes. Defaults to the manifest value. */
|
|
1645
2443
|
notes?: InputMaybe<Scalars['String']['input']>;
|
|
2444
|
+
/** Override the manifest status (e.g. 'available'). Defaults to the manifest value. */
|
|
1646
2445
|
status?: InputMaybe<Scalars['String']['input']>;
|
|
2446
|
+
/** Environment release version to ingest, e.g. 'v0.1.4'. */
|
|
1647
2447
|
version: Scalars['String']['input'];
|
|
1648
2448
|
};
|
|
1649
2449
|
export type InviteOrgMemberInput = {
|
|
2450
|
+
/** Organization to add the user to (BigInt as string). */
|
|
1650
2451
|
orgId: Scalars['BigInt']['input'];
|
|
2452
|
+
/** user_id of the user to add (BigInt as string). */
|
|
1651
2453
|
userId: Scalars['BigInt']['input'];
|
|
1652
2454
|
};
|
|
2455
|
+
/** Invoke a studio-defined function against a self container. */
|
|
1653
2456
|
export type InvokeFunctionInput = {
|
|
2457
|
+
/** The app (tenant) that owns the function. */
|
|
1654
2458
|
appId: Scalars['BigInt']['input'];
|
|
2459
|
+
/** The function name to invoke. */
|
|
1655
2460
|
functionName: Scalars['String']['input'];
|
|
1656
2461
|
/** JSON object of params. */
|
|
1657
2462
|
paramsJson?: InputMaybe<Scalars['String']['input']>;
|
|
2463
|
+
/** The 'self' container the function runs against (referenced as self in expressions). */
|
|
1658
2464
|
selfContainerId: Scalars['String']['input'];
|
|
2465
|
+
/** Optional session context for the invocation. */
|
|
1659
2466
|
sessionId?: InputMaybe<Scalars['String']['input']>;
|
|
1660
2467
|
};
|
|
2468
|
+
/** Join an existing session. */
|
|
1661
2469
|
export type JoinSessionInput = {
|
|
2470
|
+
/** The app (tenant) that owns the session. */
|
|
1662
2471
|
appId: Scalars['BigInt']['input'];
|
|
2472
|
+
/** Optional participant role to join as. */
|
|
1663
2473
|
role?: InputMaybe<Scalars['String']['input']>;
|
|
2474
|
+
/** The session id to join. */
|
|
1664
2475
|
sessionId: Scalars['String']['input'];
|
|
1665
2476
|
};
|
|
1666
2477
|
export type LinkAppToEnvironmentInput = {
|
|
2478
|
+
/** App id (BigInt) to link. Must be unlinked and not a shared app. */
|
|
1667
2479
|
appId: Scalars['BigInt']['input'];
|
|
1668
2480
|
/** Environment slug (cks_environments.slug) to link the app to. */
|
|
1669
2481
|
environmentSlug: Scalars['String']['input'];
|
|
2482
|
+
/** Organization id (BigInt) that owns both the app and the environment. */
|
|
1670
2483
|
orgId: Scalars['BigInt']['input'];
|
|
1671
2484
|
};
|
|
2485
|
+
/** Arguments for listVoxelUpdatesByDistance: selects recorded voxel edits across chunks within a cubic (Chebyshev) radius of a center chunk, grouped per chunk and ordered by increasing distance. */
|
|
1672
2486
|
export type ListVoxelUpdatesByDistanceInput = {
|
|
2487
|
+
/** Id of the app whose voxel edits to search (decimal string). */
|
|
1673
2488
|
appId: Scalars['BigInt']['input'];
|
|
2489
|
+
/** Center chunk of the search cube. */
|
|
1674
2490
|
centerCoordinate: ChunkCoordinatesInput;
|
|
2491
|
+
/** Maximum number of CHUNKS (not voxels) to include. Defaults to 1000 when omitted. Must be >= 0. */
|
|
1675
2492
|
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
2493
|
+
/** Cube radius in chunks measured as Chebyshev distance: matches chunks whose x, y and z each differ from the center by at most this many chunks. Integer, 1-8 inclusive. */
|
|
1676
2494
|
maxDistance: Scalars['Int']['input'];
|
|
2495
|
+
/** Optional inclusive lower time bound; only edits with createdAt >= this timestamp are returned. */
|
|
1677
2496
|
since?: InputMaybe<Scalars['DateTime']['input']>;
|
|
2497
|
+
/** Number of chunks to skip for pagination. Defaults to 0 when omitted. Must be >= 0. */
|
|
1678
2498
|
skip?: InputMaybe<Scalars['Int']['input']>;
|
|
1679
2499
|
};
|
|
2500
|
+
/** Arguments for listVoxels: selects recorded voxel edits for one chunk, optionally only those at/after a timestamp. */
|
|
1680
2501
|
export type ListVoxelsInput = {
|
|
2502
|
+
/** Id of the app that owns the chunk (decimal string). */
|
|
1681
2503
|
appId: Scalars['BigInt']['input'];
|
|
2504
|
+
/** Address of the chunk whose voxel edits to list. */
|
|
1682
2505
|
coordinates: ChunkCoordinatesInput;
|
|
2506
|
+
/** Optional inclusive lower time bound. When set, only voxel edits with createdAt >= this timestamp are returned. */
|
|
1683
2507
|
since?: InputMaybe<Scalars['DateTime']['input']>;
|
|
1684
2508
|
};
|
|
2509
|
+
/** A single level-of-detail (LOD) representation of a chunk. */
|
|
1685
2510
|
export type LodData = {
|
|
1686
2511
|
__typename?: 'LodData';
|
|
2512
|
+
/** BASE64-encoded binary LOD data (decode from base64). */
|
|
1687
2513
|
data: Scalars['String']['output'];
|
|
2514
|
+
/** LOD level (0 is the finest; higher numbers are coarser). */
|
|
1688
2515
|
level: Scalars['Int']['output'];
|
|
1689
2516
|
};
|
|
2517
|
+
/** A single LOD level and its encoded data for a chunk. */
|
|
1690
2518
|
export type LodDataInput = {
|
|
2519
|
+
/** BASE64-encoded binary LOD data for this level. */
|
|
1691
2520
|
data: Scalars['String']['input'];
|
|
2521
|
+
/** LOD level (>= 0; 0 is the finest / highest detail). */
|
|
1692
2522
|
level: Scalars['Int']['input'];
|
|
1693
2523
|
};
|
|
1694
2524
|
export type LoginUserInput = {
|
|
2525
|
+
/** Account email address. */
|
|
1695
2526
|
email: Scalars['String']['input'];
|
|
2527
|
+
/** Account password (min 8 characters). */
|
|
1696
2528
|
password: Scalars['String']['input'];
|
|
1697
2529
|
};
|
|
1698
2530
|
export type Mutation = {
|
|
1699
2531
|
__typename?: 'Mutation';
|
|
1700
2532
|
/** Liveness heartbeat for the authenticated user's actors in an app. Refreshes actors.updated_at for every actor row the user owns so the user stays host-eligible, then returns the freshly-elected host (same shape as the gameHost query) so a client can fold its poll and heartbeat into one round-trip. Call on an interval shorter than HOST_ACTOR_FRESHNESS_SECONDS. Only refreshes rows that already exist (created by Buddy on chunk entry); returns null when no fresh actors exist for the app. */
|
|
1701
2533
|
actorHeartbeat: Maybe<GameHost>;
|
|
1702
|
-
/** Add a user to a channel or approve
|
|
2534
|
+
/** Add a user to a channel, or approve their pending join request (upsert to active). Requires the 'manage_members' channel permission (app admins bypass). Auto-assigns the default role if configured and notifies Buddy with the member's effective send permission. */
|
|
1703
2535
|
addChannelMember: GroupMember;
|
|
1704
|
-
/** Add a user to a team or approve
|
|
2536
|
+
/** Add a user to a team, or approve their pending join request (upsert to active). Requires the 'manage_members' team permission (app admins bypass). Auto-assigns the team's default role if configured. */
|
|
1705
2537
|
addTeamMember: GroupMember;
|
|
2538
|
+
/** Soft-delete an access tier by setting its status to 'archived' (the row is retained, NOT hard-deleted) and notifies the game API. Requires the 'manage_access_tiers' permission on the app that owns the tier; super admins bypass. Existing user grants on this tier are NOT automatically revoked. Throws if the tier is not found. */
|
|
1706
2539
|
archiveAccessTier: AppAccessTier;
|
|
2540
|
+
/** Soft-delete an app by setting status=ARCHIVED. The row is retained (NOT hard-deleted) and is excluded from the public marketplace. REVERSIBLE: call updateApp to set status back to DRAFT or LIVE. Requires the 'manage_apps' permission on the app; super admins bypass. Throws if the app id does not exist. */
|
|
1707
2541
|
archiveApp: App;
|
|
2542
|
+
/** Grant runtime permission keys to a group (optionally scoped to a single group role) on a grid by writing the `grid_group_grants` input table, then recompute the materialized effective ACL so every affected member gains the keys. Requires app-admin ('manage_apps'). Returns the grid's current group grants for the group. Use `grantGridPermissions` for per-user grants instead. */
|
|
1708
2543
|
assignGroupToGrid: Array<GridGroupGrant>;
|
|
2544
|
+
/** DESTRUCTIVE. Cancels an app's paid shared-environment subscription. The app loses its paid shared slot (typically at currentPeriodEnd) and may be denied runtime once the period lapses unless a free slot covers it. Returns the updated subscription. Requires the 'manage_billing' permission on the app's org. */
|
|
1709
2545
|
cancelSharedSubscription: AppSharedSubscription;
|
|
1710
|
-
/** Captures an approved PayPal order after the hosted checkout redirects back.
|
|
2546
|
+
/** Captures an approved PayPal order after the hosted checkout redirects back, and returns the updated Checkout. The resulting wallet credit / access grant still reconciles through PayPal webhooks. Requires an authenticated user who owns the checkout. */
|
|
1711
2547
|
capturePaypalCheckout: Checkout;
|
|
2548
|
+
/** Changes the authenticated user's password after verifying the current password. Requires a valid session token. Returns true on success; throws if the current password is wrong. Existing sessions are not revoked. */
|
|
1712
2549
|
changePassword: Scalars['Boolean']['output'];
|
|
2550
|
+
/** Self-service: the authenticated caller claims access to an app via its free, open-by-default tier. Requires authentication only (no org membership needed). ENTITLEMENT CHANGE: grants the free default tier as a 'system' grant and notifies the game API. Idempotent: returns the existing row if already granted, and never overrides a prior revoke. Errors if the app has no free default tier or is archived. */
|
|
2551
|
+
claimFreeAppAccess: AppUserAccess;
|
|
2552
|
+
/** Confirms a user email address using the token from the confirmation email. Returns true on success, false if the token is invalid or expired. Public (the token authorizes the call). */
|
|
1713
2553
|
confirmEmail: Scalars['Boolean']['output'];
|
|
1714
2554
|
/** Open the UDP proxy session for this game token (idempotent: returns the existing status if one is already open). Binds a socket and selects the game server with the fewest clients on first open. Optional: send mutations and udpNotifications also create a session lazily when none exists. To force a fresh socket, call disconnectUdpProxy first. */
|
|
1715
2555
|
connectUdpProxy: UdpProxyConnectionStatus;
|
|
2556
|
+
/** Create a new access tier (a free/paid bundle of runtime permissions) for an app. Requires the 'manage_access_tiers' permission on the app (input.appId); super admins bypass. SIDE EFFECTS: validates the tier's permission keys against runtimePermissions and notifies the game API so Buddy sees the new tier. Does NOT grant the tier to any user. */
|
|
1716
2557
|
createAccessTier: AppAccessTier;
|
|
2558
|
+
/** Creates an actor (a player’s presence/instance in an app world) owned by the authenticated user and returns the persisted row (including the server-set `createdAt`). Requires a valid game token. If `input.avatarId` is set it must reference an avatar the caller owns (throws Unauthorized otherwise). `input.uuid` must be the 32-character ASCII actor id used on the UDP wire (NOT a hyphenated RFC-4122 UUID). */
|
|
1717
2559
|
createActor: Actor;
|
|
2560
|
+
/** Create a new app within an organization. Requires the 'manage_apps' permission on the target org (input.orgId); super admins bypass. SIDE EFFECTS: also provisions a free, open-by-default "Default" access tier granting full runtime permissions, and notifies the game API. Slug must be unique within the org (a duplicate slug fails). New apps default to visibility=PUBLIC and status=DRAFT unless overridden in the input. */
|
|
1718
2561
|
createApp: App;
|
|
2562
|
+
/** Creates a new avatar owned by the authenticated user and returns it. Requires a valid game token; the new avatar is always owned by the caller. `input.name` is optional and defaults to "Default Avatar". */
|
|
1719
2563
|
createAvatar: Avatar;
|
|
1720
|
-
/** Create a channel.
|
|
2564
|
+
/** Create a channel. Whether the caller may create one is governed by the per-app channel policy (app_group_policies: admin | member | anyone). The caller becomes the owner with a system 'leader' role. When membersCanSend is true (default) a default 'member' role granting send_messages is created and auto-assigned to joiners (open chat channel); when false only roles you grant may post (announce/read-only channel). */
|
|
1721
2565
|
createChannel: Group;
|
|
1722
|
-
/** Create a channel role (manage_roles). */
|
|
2566
|
+
/** Create a custom (non-system) channel role granting the given channel permission keys (e.g. send_messages for posting rights). Requires the 'manage_roles' channel permission (app admins bypass). */
|
|
1723
2567
|
createChannelRole: GroupRole;
|
|
1724
|
-
/** Creates a Checkout row, opens the provider
|
|
2568
|
+
/** Creates a Checkout row, opens a hosted payment session with the selected provider, and returns the row with `externalUrl` set — redirect the user there to pay. Status starts PENDING and is reconciled to COMPLETED/FAILED later via provider webhooks (this call does not itself capture funds). The side effect applied on completion depends on `purpose` (e.g. ORG_WALLET_TOPUP credits the org wallet, APP_ACCESS_PURCHASE grants app access). Requires an authenticated user; ORG_WALLET_TOPUP additionally requires the 'manage_billing' org permission. Purposes DONATION and PROPERTY_TOKENS are rejected. Pass `input.idempotencyKey` to make retries safe (a replay returns the first checkout instead of opening a second provider session). */
|
|
1725
2569
|
createCheckout: Checkout;
|
|
1726
|
-
/**
|
|
2570
|
+
/** Provisions a new environment. SIDE EFFECTS / COST: creates billable cloud infrastructure (OVH VMs + DNS) and starts hourly wallet charges; fails if the wallet's available balance is below the first-day reserve (see environmentQuote.canCreate). Each selected flavor must be available and customer-priced (use environmentFlavors / environmentDatacenters). When input.slug is omitted the slug is auto-generated as 'e-<12 chars>'. Returns immediately with status 'deploy_requested'; poll orgEnvironment for deploy progress. Requires the 'manage_environments' org permission. */
|
|
1727
2571
|
createEnvironment: CksEnvironmentDetail;
|
|
2572
|
+
/** Create a grid: a named 3D box of chunks that runtime/world (voxel) permissions are scoped to. The box must fit entirely within one of the app's existing grid assignments and must not overlap another grid. Requires app-admin ('manage_apps'). Returns a hybrid response — on success `grid` is populated and `error` is NO_ERROR; on failure `grid` is null and `error` is a UDP-style error code (e.g. NO_MATCHING_GRID_ASSIGNMENT, GRID_OUTSIDE_ASSIGNMENT, GRID_OVERLAPS_EXISTING, GRID_ALREADY_EXISTS). */
|
|
1728
2573
|
createGrid: CreateGridResponse;
|
|
2574
|
+
/** Creates a custom role in an organization with a name, optional description, and permission keys. Requires the 'manage_members' permission on the org (super admins bypass). */
|
|
1729
2575
|
createOrgRole: OrgRole;
|
|
1730
|
-
/**
|
|
2576
|
+
/** Mints a new org API token and returns the plaintext token exactly once - save it, since subsequent queries only show metadata. Requires the 'manage_tokens' permission on the target org (super admins bypass). */
|
|
1731
2577
|
createOrgToken: OrgTokenWithSecret;
|
|
2578
|
+
/** Creates a new organization and makes the authenticated caller its owner (with full permissions). Requires a valid session token. */
|
|
1732
2579
|
createOrganization: Organization;
|
|
1733
|
-
/** Create a team.
|
|
2580
|
+
/** Create a team. Whether the caller may create one is governed by the per-app team policy (app_group_policies: admin | member | anyone). The caller becomes the owner and is granted a system 'leader' role holding every team permission. New teams default to the app's default membership policy unless overridden. */
|
|
1734
2581
|
createTeam: Group;
|
|
1735
|
-
/** Create a team role (
|
|
2582
|
+
/** Create a custom (non-system) team role granting the given team permission keys. Requires the 'manage_roles' team permission (app admins bypass). Permission keys must be valid team permission keys (group_permission_defs). */
|
|
1736
2583
|
createTeamRole: GroupRole;
|
|
2584
|
+
/** DESTRUCTIVE: permanently deletes the actor identified by `uuid` and returns a copy of the now-deleted row. OWNER-EXCLUSIVE: only the owner may delete (throws Unauthorized otherwise). Requires a valid game token. `uuid` is the 32-character ASCII actor id. */
|
|
1737
2585
|
deleteActor: Actor;
|
|
2586
|
+
/** DESTRUCTIVE: permanently deletes the avatar and returns a copy of the now-deleted row. OWNER-EXCLUSIVE: only the owner may delete (throws Unauthorized otherwise). Requires a valid game token. */
|
|
1738
2587
|
deleteAvatar: Avatar;
|
|
1739
|
-
/** Delete a channel (
|
|
2588
|
+
/** Delete a channel. Requires the 'manage_group' channel permission (app admins bypass). DESTRUCTIVE: cascades to members and roles and notifies Buddy servers to tear down message routing for the channel. Returns true on success. */
|
|
1740
2589
|
deleteChannel: Scalars['Boolean']['output'];
|
|
1741
|
-
/** Delete a non-system channel role (
|
|
2590
|
+
/** Delete a non-system channel role. Requires the 'manage_roles' channel permission (app admins bypass). The system 'leader' role cannot be deleted. DESTRUCTIVE: removes the role from members. Returns true if a role was deleted. */
|
|
1742
2591
|
deleteChannelRole: Scalars['Boolean']['output'];
|
|
2592
|
+
/** Operator only (is_operator). Deletes a control-plane secret by environment + name and writes an audit entry. Returns true when a secret was removed. */
|
|
1743
2593
|
deleteCpSecret: Scalars['Boolean']['output'];
|
|
1744
|
-
/**
|
|
2594
|
+
/** DESTRUCTIVE self-service: soft-deletes the authenticated caller's OWN account — anonymizes PII and revokes all sessions; wallet, voxel, and donation history stay intact via FK. Acts only on the caller (no target argument). Requires a valid game token. NOTE: the users table is management-owned, so in cks-game-api this throws ForbiddenException — call cks-management-api instead. */
|
|
1745
2595
|
deleteMyAccount: Scalars['Boolean']['output'];
|
|
2596
|
+
/** Deletes an organization role. Requires the 'manage_members' permission on the role's org (super admins bypass). DESTRUCTIVE: removes the role and unassigns it from all members. Returns false if the role does not exist. */
|
|
1746
2597
|
deleteOrgRole: Scalars['Boolean']['output'];
|
|
2598
|
+
/** Permanently deletes a quota enforcement rule by id. Returns true if a rule was removed, or false if no quota with that id exists. Destructive and not reversible: once removed, the metric falls back to the next-most-specific rule or the free-tier default. Requires the 'manage_quotas' permission on the same scope (app or org) the quota belongs to, or super admin for global quotas. */
|
|
1747
2599
|
deleteQuota: Scalars['Boolean']['output'];
|
|
1748
|
-
/** Delete a team (
|
|
2600
|
+
/** Delete a team. Requires the 'manage_group' team permission (app admins bypass). DESTRUCTIVE: cascades to members, roles, and any grid grants the team conferred, and recomputes the effective grid ACL for affected grids. Returns true on success. */
|
|
1749
2601
|
deleteTeam: Scalars['Boolean']['output'];
|
|
1750
|
-
/** Delete a non-system team role (
|
|
2602
|
+
/** Delete a non-system team role. Requires the 'manage_roles' team permission (app admins bypass). The system 'leader' role cannot be deleted. DESTRUCTIVE: removes the role from members and recomputes any grid ACLs the role granted on. Returns true if a role was deleted. */
|
|
1751
2603
|
deleteTeamRole: Scalars['Boolean']['output'];
|
|
2604
|
+
/** DESTRUCTIVE: deletes the authenticated user’s per-app state row for `appId` and returns the deleted row. Requires a valid game token; acts only on the caller’s own state. Throws NotFound when no row exists. */
|
|
1752
2605
|
deleteUserAppState: UserAppState;
|
|
2606
|
+
/** DESTRUCTIVE and IRREVERSIBLE. Tears down all cloud resources for the environment (per-tenant Postgres, game-api, Buddy, and load-balancer VMs plus DNS records) and revokes its service tokens; all tenant data is lost. Sets status to 'destroy_requested' and returns the tracking change order — poll orgEnvironment.destroyProgress. Fails if a destroy is already queued. After it reaches 'destroyed', call purgeEnvironment to remove the record. Requires the 'manage_environments' org permission. */
|
|
1753
2607
|
destroyEnvironment: CksEnvironmentChangeOrder;
|
|
1754
2608
|
/** Close the UDP proxy session and socket for this game token. Unsubscribing from udpNotifications does not disconnect; use this mutation (or rely on server inactivity timeout). */
|
|
1755
2609
|
disconnectUdpProxy: Scalars['Boolean']['output'];
|
|
2610
|
+
/** ADMIN/DESTRUCTIVE: revokes ALL of the target user’s sessions by deleting every game_token row, forcing re-authentication on every device. Returns true if at least one session was revoked. Requires a super-admin bearer game token (and the management API enabled). NOTE: management-owned in cks-game-api (throws ForbiddenException) — use cks-management-api. */
|
|
1756
2611
|
forceLogoutUser: Scalars['Boolean']['output'];
|
|
2612
|
+
/** Create a directed relationship edge between two containers (the game model is a graph), with a relationship type and optional weight. Requires a valid token. */
|
|
1757
2613
|
gameModelAddEdge: GmEdge;
|
|
2614
|
+
/** Instantiate a container (a runtime entity of a given type), optionally within a session, with an owner and initial properties. Subject to the type's instantiableBy rule (admin | member | owner). Requires a valid token. */
|
|
1758
2615
|
gameModelCreateContainer: GmContainer;
|
|
2616
|
+
/** Create a runtime session: an isolated instance scope for containers (e.g. a match, room, or save). Subject to the app's session creation policy. The caller becomes the creator and a participant. Requires a valid token. */
|
|
1759
2617
|
gameModelCreateSession: GmSession;
|
|
2618
|
+
/** Define an app feature key that functions can gate on (via a tier_feature authority rule) and that access tiers can be granted. Idempotent on (app, featureKey). Requires app-admin ('manage_apps'). */
|
|
1760
2619
|
gameModelDefineFeature: GmAppFeature;
|
|
2620
|
+
/** Delete a studio-defined function by name. Requires app-admin ('manage_apps'). DESTRUCTIVE. Returns true if a function was deleted. */
|
|
1761
2621
|
gameModelDeleteFunction: Scalars['Boolean']['output'];
|
|
2622
|
+
/** Grant a feature key to an access tier, so users on that tier satisfy tier_feature authority checks for it. Requires app-admin ('manage_apps'). */
|
|
1762
2623
|
gameModelGrantTierFeature: GmTierFeature;
|
|
2624
|
+
/** Invoke a studio-defined function against a 'self' container with JSON params. The server enforces the function's invoke policy (authority rule tree: owner_of_self / is_host / is_current_turn / is_participant / tier_feature / group_permission / grid_permission / condition), evaluates its expressions, atomically applies its declared property mutations, logs an event, and returns the result (return value + mutations applied, or success=false with an error message). This is the primary, safe way for players to mutate game state. Requires a valid token; only player-scope functions are invocable here. */
|
|
1763
2625
|
gameModelInvoke: GmInvokeResult;
|
|
2626
|
+
/** Join an existing session as a participant, optionally with a role. Requires a valid token and app access. */
|
|
1764
2627
|
gameModelJoinSession: GmSessionParticipant;
|
|
2628
|
+
/** Revoke a feature key from an access tier. Requires app-admin ('manage_apps'). Returns true if a grant was removed. */
|
|
1765
2629
|
gameModelRevokeTierFeature: Scalars['Boolean']['output'];
|
|
2630
|
+
/** Bulk-create game-model definitions (container types, property defs, functions) and optionally instances (containers + edges) in one transaction — used to initialize or import a model. Requires app-admin ('manage_apps'). Returns counts created, warnings, and a map of seed temp_id -> created container UUID. */
|
|
1766
2631
|
gameModelSeed: GmSeedResult;
|
|
2632
|
+
/** Set the app's game-model runtime policy: who may create sessions (admin | member | anyone) and the default participant role. Requires app-admin ('manage_apps'). */
|
|
1767
2633
|
gameModelSetPolicy: GmAppPolicy;
|
|
2634
|
+
/** Set a single property value on a container directly (outside a function). Allowed only when the property's writability (function | owner | admin) permits the caller. The value is JSON-encoded and coerced to the property's value type. Requires a valid token. For game-logic changes prefer gameModelInvoke. */
|
|
1768
2635
|
gameModelSetProperty: GmContainer;
|
|
2636
|
+
/** Set or clear the session's current-turn user, for turn-based play (authority enforced by the service). Pass userId null to clear the turn. Requires a valid token. */
|
|
1769
2637
|
gameModelSetSessionTurn: GmSession;
|
|
2638
|
+
/** Create or update a container type: the studio-defined schema for a kind of runtime entity (like a class). Idempotent on (app, typeName). Requires app-admin ('manage_apps'). */
|
|
1770
2639
|
gameModelUpsertContainerType: GmContainerType;
|
|
2640
|
+
/** Create or update a studio-defined function: a named, sandboxed behavior with typed parameters, declared property mutations (expressions compiled to an AST server-side, never eval'd), an optional return expression, an invoke scope, and an invoke policy (authority rule tree). Idempotent on (app, name). Requires app-admin ('manage_apps'). Returns the function plus any non-fatal static-analysis warnings. */
|
|
1771
2641
|
gameModelUpsertFunction: GmFunction;
|
|
2642
|
+
/** Create or update a property definition on a container type (a typed field with default value, visibility, and writability). Idempotent on (app, containerTypeName, key). Requires app-admin ('manage_apps'). */
|
|
1772
2643
|
gameModelUpsertPropertyDef: GmPropertyDef;
|
|
2644
|
+
/** Grant (or re-activate) a user's access to an app, optionally on a specific tier. Requires the 'manage_access_tiers' permission on the app (input.appId); super admins bypass. ENTITLEMENT CHANGE: upserts an active app_user_access row and notifies the game API, so the target user immediately gains that tier's runtime permissions in Buddy. Idempotent per (app,user): re-granting updates the tier and sets status back to active. */
|
|
1773
2645
|
grantAppAccess: AppUserAccess;
|
|
2646
|
+
/** Grant one or more runtime permission keys directly to a single user on a grid (writes the `grid_user_direct_grants` input table), then recompute that user's materialized effective ACL on the grid. The target user must already have active app access (otherwise this fails). Requires app-admin ('manage_apps'). Returns the user's full effective permission-key set on the grid. To grant by group/role instead of per-user, use `assignGroupToGrid`. */
|
|
1774
2647
|
grantGridPermissions: GridUserPermissions;
|
|
2648
|
+
/** Org dashboard shortcut: the authenticated caller grants themselves access to an app using its default active tier. Requires that the caller is an active member of the app's owning org OR holds the 'manage_access_tiers' permission on the app. ENTITLEMENT CHANGE: upserts an active grant and notifies the game API. Errors if the app has no active tier, or the caller is neither a member nor a manager. */
|
|
2649
|
+
grantMyAppAccess: AppUserAccess;
|
|
2650
|
+
/** Operator only (is_operator). Ingests a release manifest into cks_environment_versions, making the version deployable, and writes an audit entry. Use force to overwrite an existing row. */
|
|
1775
2651
|
ingestEnvironmentVersion: CpEnvironmentVersionRow;
|
|
2652
|
+
/** Adds a user to an organization as a member. Requires the 'manage_members' permission on the target org (super admins bypass). */
|
|
1776
2653
|
inviteOrgMember: OrgMember;
|
|
1777
|
-
/** Join a channel. Honors the channel membership policy
|
|
2654
|
+
/** Join a channel as the caller (subscribe to it). Honors the channel membership policy: open -> active immediately, request -> pending (a manager must approve), invite/admin -> rejected. On becoming active, Buddy is notified with the caller's effective send permission so routing starts. */
|
|
1778
2655
|
joinChannel: GroupMember;
|
|
1779
|
-
/** Join a team. Honors the team membership policy
|
|
2656
|
+
/** Join a team as the caller. Honors the team membership policy: open -> active immediately, request -> pending (a manager must approve), invite/admin -> rejected. Banned users are rejected. No special permission required. */
|
|
1780
2657
|
joinTeam: GroupMember;
|
|
1781
|
-
/** Leave a channel. */
|
|
2658
|
+
/** Leave a channel (unsubscribe the caller). Notifies Buddy to stop routing messages to the caller. Returns true if a membership was removed. */
|
|
1782
2659
|
leaveChannel: Scalars['Boolean']['output'];
|
|
1783
|
-
/** Leave a team. */
|
|
2660
|
+
/** Leave a team (removes the caller's own membership). Returns true if a membership was removed. */
|
|
1784
2661
|
leaveTeam: Scalars['Boolean']['output'];
|
|
1785
|
-
/** Links an unlinked app to an existing environment for split-mode routing. Refuses shared apps and apps already linked elsewhere. */
|
|
2662
|
+
/** Links an unlinked app to an existing environment for split-mode routing. Refuses shared apps and apps already linked elsewhere. Requires the 'manage_environments' org permission. */
|
|
1786
2663
|
linkAppToEnvironment: App;
|
|
2664
|
+
/** Authenticates with email + password and starts a new session. Returns an AuthResponse whose `token` must be sent on subsequent requests as `Authorization: Bearer <token>`. Public (no auth required); throws on invalid credentials. */
|
|
1787
2665
|
login: AuthResponse;
|
|
2666
|
+
/** Single-device logout: revokes the game token that authenticated this request by deleting its game_tokens row. Returns true if a token was revoked, false if the request had no game token. Other devices/tokens are unaffected (use the Management API to revoke all devices). After this, the bearer token is rejected and any open UDP proxy session will no longer authorize new traffic. */
|
|
1788
2667
|
logout: Scalars['Boolean']['output'];
|
|
2668
|
+
/** Ends every active session for the authenticated user (deletes all their game_tokens and records revocations). Requires a valid session token. Use logout to end only the current session. */
|
|
1789
2669
|
logoutAllDevices: Scalars['Boolean']['output'];
|
|
1790
|
-
/**
|
|
2670
|
+
/** Publishes an app to the shared game-api environment. Free under the org's quota (result.free = true, no charge); otherwise pass a planId to start a paid subscription — SIDE EFFECT: returns a checkout the caller must complete, which creates a recurring subscription and charges the org. Requires the 'manage_apps' permission on the app's org; currently limited to super admins (preview). */
|
|
1791
2671
|
publishAppToShared: PublishAppResult;
|
|
2672
|
+
/** Operator only (is_operator). Cuts a new environment release from a cks-game-api git tag: ingests it as available and commits the manifest to the git ref. SIDE EFFECT: makes the version the new redeploy target and writes to GitHub. Use force to overwrite. Writes an audit entry. */
|
|
1792
2673
|
publishEnvironmentReleaseFromGameApiTag: CpPublishEnvironmentReleaseResult;
|
|
1793
|
-
/** Permanently deletes a destroyed environment record from the platform.
|
|
2674
|
+
/** DESTRUCTIVE. Permanently deletes a destroyed environment's record and all cascaded metadata from the platform; returns true on success. The environment must already be in status 'destroyed' (run destroyEnvironment first) and must not have deletion protection enabled, otherwise this fails. Does not touch cloud resources. Requires the 'manage_environments' org permission. */
|
|
1794
2675
|
purgeEnvironment: Scalars['Boolean']['output'];
|
|
2676
|
+
/** Operator only (is_operator). Creates or overwrites an environment-delivered secret (injected into the tenant runtime) and writes an audit entry. SENSITIVE: plaintext is write-only and never returned. */
|
|
1795
2677
|
putCpEnvSecret: CpEnvSecretRow;
|
|
2678
|
+
/** Operator only (is_operator). Creates or overwrites a control-plane secret (encrypted at rest) and writes an audit entry. SENSITIVE: plaintext is write-only and never returned by cpSecrets. */
|
|
1796
2679
|
putCpSecret: CpSecretRow;
|
|
1797
|
-
/** Redeploys the environment to
|
|
2680
|
+
/** Redeploys the environment to a target release version (input.version) or, when omitted, the latest available version for its class, reusing its current flavors/scaling and linked apps. Preserves the environment URLs. No-op-safe: re-running when already at latest still redeploys. If a prior deploy failed but stayed in_progress, it is abandoned first so the redeploy can proceed. Requires the 'manage_environments' org permission. */
|
|
1798
2681
|
redeployEnvironment: CksEnvironmentChangeOrder;
|
|
2682
|
+
/** Creates a new (initially unconfirmed) account, sends a confirmation email, and returns an AuthResponse with a session `token` for immediate login (send as `Authorization: Bearer <token>`). Public; throws if the email already exists. */
|
|
1799
2683
|
register: AuthResponse;
|
|
1800
|
-
/** Remove a member from a channel
|
|
2684
|
+
/** Remove a member from a channel. Requires the 'manage_members' channel permission, except that any member may remove themselves. Notifies Buddy to stop routing to the removed member. Returns true if a membership was removed. */
|
|
1801
2685
|
removeChannelMember: Scalars['Boolean']['output'];
|
|
2686
|
+
/** Removes a user from an organization. Requires the 'manage_members' permission on the org (super admins bypass). DESTRUCTIVE: revokes the user's membership and role assignments in that org. Returns false if the user was not a member. */
|
|
1802
2687
|
removeOrgMember: Scalars['Boolean']['output'];
|
|
2688
|
+
/** Removes a saved (vaulted) off-session payment method from the org; returns true on success. If it was the method backing auto-billing, recharges will fail until another is set up. Requires the 'manage_billing' org permission. */
|
|
1803
2689
|
removeSharedPaymentMethod: Scalars['Boolean']['output'];
|
|
1804
|
-
/** Remove a member from a team
|
|
2690
|
+
/** Remove a member from a team. Requires the 'manage_members' team permission, except that any member may remove themselves. DESTRUCTIVE: drops the membership and its roles. Returns true if a membership was removed. */
|
|
1805
2691
|
removeTeamMember: Scalars['Boolean']['output'];
|
|
2692
|
+
/** Starts the password-reset flow by emailing a reset link to the address. Always returns true regardless of whether the email exists or is confirmed (prevents account enumeration). Public. */
|
|
1806
2693
|
requestPasswordReset: Scalars['Boolean']['output'];
|
|
1807
|
-
/** Request to join a request-only channel (creates a pending membership a manager can approve). */
|
|
2694
|
+
/** Request to join a request-only channel (creates a pending membership a manager can approve via addChannelMember). Behaves identically to joinChannel; named for request-policy UIs. */
|
|
1808
2695
|
requestToJoinChannel: GroupMember;
|
|
1809
|
-
/** Request to join a request-only team (creates a pending membership a manager can approve). */
|
|
2696
|
+
/** Request to join a request-only team (creates a pending membership a manager can approve via addTeamMember). Behaves identically to joinTeam; named for request-policy UIs. */
|
|
1810
2697
|
requestToJoinTeam: GroupMember;
|
|
2698
|
+
/** Re-sends the email-confirmation link. Always returns true regardless of whether the account exists or is already confirmed (prevents enumeration); the email is only sent for existing unconfirmed accounts. Public. */
|
|
1811
2699
|
resendConfirmationEmail: Scalars['Boolean']['output'];
|
|
2700
|
+
/** Completes a password reset using the reset token and a new password. Returns true on success; throws if the token is invalid or expired. Public (the token authorizes the call). Existing sessions are not revoked. */
|
|
1812
2701
|
resetPassword: Scalars['Boolean']['output'];
|
|
1813
|
-
/** SSH-restarts the Buddy systemd service on the active UDP runtime VM. Symptom relief when server_status heartbeat is stale; does not replace cks-udp-api pool fixes. */
|
|
2702
|
+
/** SSH-restarts the Buddy systemd service on the active UDP runtime VM. Symptom relief when server_status heartbeat is stale (see CksBuddyHealth.isStale); does not replace cks-udp-api pool fixes. Requires the 'manage_environments' org permission. */
|
|
1814
2703
|
restartEnvironmentServices: CksEnvironmentChangeOrder;
|
|
2704
|
+
/** Resumes a payment-suspended environment, queuing a change order and moving billingStatus to 'resume_queued' (and restarting runtime once it settles). Only valid when billingStatus is grace, suspension_queued, suspended, or resume_failed; otherwise fails. Resumes billable hourly charges. Requires the 'manage_environments' org permission. */
|
|
1815
2705
|
resumeEnvironment: CksEnvironmentChangeOrder;
|
|
2706
|
+
/** Revoke a user's access to an app by setting their app_user_access status to 'revoked', and notifies the game API so the user immediately loses runtime access in Buddy. Requires the 'manage_access_tiers' permission on the app; super admins bypass. The row is retained for audit (not deleted); REVERSIBLE via grantAppAccess. */
|
|
1816
2707
|
revokeAppAccess: AppUserAccess;
|
|
2708
|
+
/** Revoke a user's direct grants on a grid (deletes from the `grid_user_direct_grants` input table) and recompute their materialized effective ACL. Omit `permissionKeys` to remove ALL of the user's direct grants on the grid; pass a subset to remove only those keys. Does not affect permissions the user receives via group grants. Requires app-admin ('manage_apps'). DESTRUCTIVE for the targeted grants. Returns the user's remaining effective permission keys on the grid. */
|
|
1817
2709
|
revokeGridPermissions: GridUserPermissions;
|
|
2710
|
+
/** Revoke group/role grants on a grid (deletes from the `grid_group_grants` input table) and recompute the materialized effective ACL. Omit `permissionKeys` to revoke ALL of the group/role's grants on the grid; pass a subset to revoke only those keys. Requires app-admin ('manage_apps'). DESTRUCTIVE: removes the granted permissions from every affected member. Returns the group's remaining grants on the grid. */
|
|
1818
2711
|
revokeGroupFromGrid: Array<GridGroupGrant>;
|
|
2712
|
+
/** Permanently deactivates an org token so it can no longer authenticate. Requires the 'manage_tokens' permission on the token's org (super admins bypass). DESTRUCTIVE and irreversible; the secret cannot be reactivated. Returns false if the token does not exist. */
|
|
1819
2713
|
revokeOrgToken: Scalars['Boolean']['output'];
|
|
1820
|
-
/** Reverts every voxel edit by `userId` in `appId` between `from` and `to
|
|
2714
|
+
/** Reverts every voxel edit made by `userId` in `appId` between `from` and `to`, returning one RollbackVoxelEventResult per affected voxel (`applied` tells you whether each was actually changed). DEFAULTS to dryRun=true, which only PREVIEWS the planned reversions without writing; pass dryRun=false to actually apply them (DESTRUCTIVE — mutates world state). Requires a valid bearer token AND the `manage_apps` permission on the org that owns `appId` (super admins bypass). */
|
|
1821
2715
|
rollbackVoxelUpdates: Array<RollbackVoxelEventResult>;
|
|
1822
|
-
/** Send an actor update to
|
|
2716
|
+
/** Send an actor (player/NPC) state update for spatial replication to nearby chunks. Requires a bearer game token; opens a UDP proxy session automatically if none exists. Returns Boolean! that is true only when the datagram was ACCEPTED FOR SENDING to the game server — it does NOT confirm the world applied the update. The applied echo (ActorUpdateResponse) and any failure (GenericErrorResponse) arrive ASYNCHRONOUSLY on the udpNotifications subscription, correlated by the request sequenceNumber (correlation only — not an idempotency key; the server does not dedupe replays). Subscribe to udpNotifications before sending so the reply is not missed. */
|
|
1823
2717
|
sendActorUpdate: Scalars['Boolean']['output'];
|
|
1824
|
-
/** Send a voice
|
|
2718
|
+
/** Send a spatial voice/audio packet, fanned out to nearby actors as a ClientAudioNotification. Requires a bearer game token; voice may additionally be gated by a runtime/grid permission for the region — if the caller lacks it the game server responds asynchronously with a GenericErrorResponse (errorCode UNAUTHORIZED). Opens a UDP proxy session automatically if none exists. Returns Boolean! that is true only when the datagram was ACCEPTED FOR SENDING — NOT that it was delivered; the sender receives no echo, only errors (GenericErrorResponse, correlated by sequenceNumber) on udpNotifications. sequenceNumber is correlation only, not an idempotency key. */
|
|
1825
2719
|
sendAudioPacket: Scalars['Boolean']['output'];
|
|
1826
|
-
/** Publish a message to a channel
|
|
2720
|
+
/** Publish a message to a channel, delivered to every active member of the channel (not chunk-routed) as a ChannelMessageNotification on udpNotifications. Requires a bearer game token and the channel send_messages permission; lacking the permission the server drops the message. Opens a UDP proxy session automatically if none exists. The sender receives no echo. Returns Boolean! that is true only when the datagram was ACCEPTED FOR SENDING — NOT confirmation of delivery; failures arrive ASYNCHRONOUSLY as GenericErrorResponse on udpNotifications, correlated by the request sequenceNumber (correlation only — not an idempotency key; the server does not dedupe replays). */
|
|
1827
2721
|
sendChannelMessage: Scalars['Boolean']['output'];
|
|
1828
|
-
/** Send a client event to
|
|
2722
|
+
/** Send a custom, app-defined client event (identified by eventType, a uint16) for spatial replication to nearby chunks; nearby actors receive it as a ClientEventNotification. Requires a bearer game token; opens a UDP proxy session automatically if none exists. Returns Boolean! that is true only when the datagram was ACCEPTED FOR SENDING — NOT that the world processed it. Failures arrive ASYNCHRONOUSLY as GenericErrorResponse on udpNotifications, correlated by the request sequenceNumber (correlation only — not an idempotency key; the server does not dedupe replays). */
|
|
1829
2723
|
sendClientEvent: Scalars['Boolean']['output'];
|
|
1830
|
-
/** Send a direct actor-to-actor message, delivered only to the actor identified by targetUuid (
|
|
2724
|
+
/** Send a direct actor-to-actor message, delivered only to the actor identified by targetUuid (NOT broadcast to nearby actors). The sender must know the destination actor’s current chunk. Requires a bearer game token; opens a UDP proxy session automatically if none exists. The target receives a SingleActorMessageNotification on udpNotifications; the sender receives no echo. Returns Boolean! that is true only when the datagram was ACCEPTED FOR SENDING — NOT confirmation of delivery; failures arrive ASYNCHRONOUSLY as GenericErrorResponse on udpNotifications, correlated by the request sequenceNumber (correlation only — not an idempotency key; the server does not dedupe replays). */
|
|
1831
2725
|
sendSingleActorMessage: Scalars['Boolean']['output'];
|
|
1832
|
-
/** Send a text
|
|
2726
|
+
/** Send a spatial text/chat packet, fanned out to nearby actors as a ClientTextNotification. Requires a bearer game token; opens a UDP proxy session automatically if none exists. Returns Boolean! that is true only when the datagram was ACCEPTED FOR SENDING to the game server — NOT confirmation of delivery. The sender receives no echo; failures arrive ASYNCHRONOUSLY as GenericErrorResponse on udpNotifications, correlated by the request sequenceNumber (correlation only — not an idempotency key; the server does not dedupe replays). */
|
|
1833
2727
|
sendTextPacket: Scalars['Boolean']['output'];
|
|
1834
|
-
/** Send a voxel update to
|
|
2728
|
+
/** Send a single voxel (block) update for spatial replication to nearby chunks. Requires a bearer game token; opens a UDP proxy session automatically if none exists. Returns Boolean! that is true only when the datagram was ACCEPTED FOR SENDING to the game server — NOT confirmation that the world applied the change. The applied echo (VoxelUpdateResponse) and any failure (GenericErrorResponse) arrive ASYNCHRONOUSLY on udpNotifications, correlated by the request sequenceNumber (correlation only — not an idempotency key; the server does not dedupe replays). */
|
|
1835
2729
|
sendVoxelUpdate: Scalars['Boolean']['output'];
|
|
2730
|
+
/** Creates or updates an app's monthly spend cap (idempotent upsert keyed by org + app) and returns the resulting budget. This only records the cap used to monitor/limit overspend; it does not move money, charge a card, or alter the wallet balance. Requires the 'manage_billing' app permission. */
|
|
1836
2731
|
setAppBudget: AppBudget;
|
|
1837
|
-
/**
|
|
2732
|
+
/** Sets per-app hourly/daily spend caps (in cents) and returns the re-evaluated runtime state. Pass null for a limit to clear that cap. Exceeding a cap denies the app's runtime (runtimeDenialReason = spend_cap). Requires the 'manage_billing' permission on the app's org. */
|
|
1838
2733
|
setAppSpendCaps: AppRuntimeState;
|
|
1839
|
-
/** Super admin only.
|
|
2734
|
+
/** Super admin only (also requires the management API to be enabled for this deployment). Overrides an app visibility platform-wide, e.g. to take down (PRIVATE/UNLISTED) or relist (PUBLIC) an app. Throws ForbiddenException for non-super-admins or when management APIs are disabled. Throws if the app id does not exist. */
|
|
1840
2735
|
setAppVisibility: App;
|
|
1841
|
-
/**
|
|
2736
|
+
/** Enables or disables off-session auto-billing for an org and updates its thresholds. When enabled and the wallet falls to lowWaterThresholdCents, the saved payment method is charged rechargeAmountCents (requires setupSharedPaymentMethod first). Pass limitCents=null for no per-period cap. Requires the 'manage_billing' org permission. */
|
|
1842
2737
|
setAutoBilling: OrgAutoBilling;
|
|
1843
|
-
/** Replace a member's channel roles (manage_roles). Re-pushes the member's effective send permission to Buddy. */
|
|
2738
|
+
/** Replace a member's channel roles with the given set (not additive — roles not listed are removed). Requires the 'manage_roles' channel permission (app admins bypass). Re-pushes the member's effective send permission to Buddy so their ability to post updates immediately. */
|
|
1844
2739
|
setChannelMemberRoles: GroupMember;
|
|
1845
|
-
/** Set who may create channels in an app and the default membership policy for new channels (
|
|
2740
|
+
/** Set who may create channels in an app and the default membership policy for new channels. Requires app-admin ('manage_apps'). Affects future channel creation only, not existing channels. */
|
|
1846
2741
|
setChannelPolicy: AppGroupPolicy;
|
|
2742
|
+
/** Sets the per-user early-access override flag, forcing early access on or off regardless of the global free-play window. Requires a super-admin bearer game token (and the management API enabled). NOTE: management-owned in cks-game-api (throws ForbiddenException) — use cks-management-api. */
|
|
1847
2743
|
setEarlyAccessOverride: User;
|
|
2744
|
+
/** Operator only (is_operator). Toggles deletion protection on an environment (when enabled, purgeEnvironment is blocked) and writes an audit entry. Returns true on success. */
|
|
1848
2745
|
setEnvironmentDeletionProtection: Scalars['Boolean']['output'];
|
|
2746
|
+
/** Replace the whitelist of permission keys allowed on a grid (writes the `grid_permission_limits` input table), then recompute the grid's materialized effective ACL so any keys no longer on the whitelist are dropped for all users. Pass an empty array to remove all limits. Requires app-admin ('manage_apps'). DESTRUCTIVE: narrowing the whitelist can strip effective permissions from existing users on the grid. */
|
|
1849
2747
|
setGridPermissionLimits: GridPermissionLimits;
|
|
1850
2748
|
/** Super-admin only. Flip users.is_operator to grant or revoke control-plane / operator access. */
|
|
1851
2749
|
setOperator: User;
|
|
1852
|
-
/** Super admin only. Used to freeze/unfreeze orgs platform-wide. */
|
|
2750
|
+
/** Super admin only. Used to freeze/unfreeze orgs platform-wide. SIDE EFFECT: sets organizations.status, which gates the org's platform access. */
|
|
1853
2751
|
setOrgStatus: Organization;
|
|
2752
|
+
/** Creates or updates a quota enforcement rule (idempotent upsert keyed by org/app/tier + metric + period) and returns it. Scope is inferred from the input ids: an app-scoped rule requires the 'manage_quotas' app permission, an org-scoped rule requires the 'manage_quotas' org permission, and a global rule (no org/app/tier) requires super admin. Changes which limit `effectiveQuota` resolves for the metric; does not retroactively alter past usage. */
|
|
1854
2753
|
setQuota: ServiceQuota;
|
|
2754
|
+
/** ADMIN PRIVILEGE CHANGE: grants or revokes platform super-admin on the target user, changing their privileges across the whole platform. Requires a super-admin bearer game token (and the management API enabled). NOTE: in cks-game-api super-admin checks always fail and the users table is management-owned — perform this via cks-management-api. */
|
|
1855
2755
|
setSuperAdmin: User;
|
|
1856
|
-
/** Replace a member's roles (manage_roles). */
|
|
2756
|
+
/** Replace a member's roles with the given set (not additive — roles not listed are removed). Requires the 'manage_roles' team permission (app admins bypass). */
|
|
1857
2757
|
setTeamMemberRoles: GroupMember;
|
|
1858
|
-
/** Set who may create teams in an app and the default membership policy for new teams (
|
|
2758
|
+
/** Set who may create teams in an app and the default membership policy for new teams. Requires app-admin ('manage_apps'). Affects future team creation only, not existing teams. */
|
|
1859
2759
|
setTeamPolicy: AppGroupPolicy;
|
|
1860
|
-
/**
|
|
2760
|
+
/** Begins vaulting a card for off-session auto-billing. Returns a Stripe SetupIntent client secret the browser confirms; no charge is made here. Requires the 'manage_billing' org permission. */
|
|
1861
2761
|
setupSharedPaymentMethod: PaymentMethodSetup;
|
|
2762
|
+
/** Checks whether the authenticated user is allowed to teleport an actor to a destination within an app and returns the authorization result. This is an authorization check only — it does NOT itself move the actor; the UDP runtime performs the actual movement. Requires a valid bearer game token plus the app-level "teleport" runtime permission. Returns success=false with errorCode INVALID_APP_ID (non-positive appId), UNAUTHORIZED (reserved sentinel destination -6,-6,-6 or missing permission), or success=true / NO_ERROR when allowed. */
|
|
1862
2763
|
teleportRequest: TeleportResponse;
|
|
2764
|
+
/** Update an existing access tier (name, ordering, pricing, permissions, etc.); only fields present in the input are changed. Requires the 'manage_access_tiers' permission on the app that owns the tier (resolved from tierId); super admins bypass. SIDE EFFECTS: re-syncs the tier's permissions to the game API. Throws if the tier is not found or the caller lacks permission. */
|
|
1863
2765
|
updateAccessTier: AppAccessTier;
|
|
2766
|
+
/** Partially updates an actor (appId, avatarId, chunk, publicState, privateState); fields omitted from `input` are left unchanged. OWNER-EXCLUSIVE: only the actor’s owner may update (throws Unauthorized otherwise). Requires a valid game token. `uuid` is the 32-character ASCII actor id. */
|
|
1864
2767
|
updateActor: Actor;
|
|
2768
|
+
/** Replaces an actor’s `publicState` and/or `privateState` blobs (fields omitted from `input` are left unchanged). OWNER-EXCLUSIVE: only the actor’s owner may write (throws Unauthorized otherwise). Requires a valid game token. `uuid` is the 32-character ASCII actor id; blobs are base64-encoded binary. */
|
|
1865
2769
|
updateActorState: Actor;
|
|
2770
|
+
/** Update mutable fields of an existing app (name, description, visibility, status, metadata); only fields present in the input are changed. Requires the 'manage_apps' permission on the app (resolved via its org); super admins bypass. Use this to publish (status=LIVE), change visibility, or restore an archived app (status back to DRAFT/LIVE). Throws if the app id does not exist. */
|
|
1866
2771
|
updateApp: App;
|
|
2772
|
+
/** Updates an avatar’s mutable fields (currently `name`) and returns it. OWNER-EXCLUSIVE: only the avatar’s owner may call this (throws Unauthorized otherwise). Requires a valid game token. To change state blobs use `updateAvatarState`. */
|
|
1867
2773
|
updateAvatar: Avatar;
|
|
1868
|
-
/**
|
|
2774
|
+
/** Creates or replaces one avatar’s per-app state (upsert keyed by appId+avatarId; bumps updatedAt). OWNER-EXCLUSIVE: only the avatar’s owner may write (throws Unauthorized otherwise); every authenticated user can read it via `avatarAppState`/`avatarAppStates`. Requires a valid game token. `input.state` is base64-encoded binary (null clears it). */
|
|
1869
2775
|
updateAvatarAppState: AppAvatarState;
|
|
2776
|
+
/** Replaces an avatar’s `publicState` and/or `privateState` blobs (fields omitted from `input` are left unchanged). OWNER-EXCLUSIVE: only the owner may write (throws Unauthorized otherwise). Requires a valid game token. Both blobs are base64-encoded binary. */
|
|
1870
2777
|
updateAvatarState: Avatar;
|
|
1871
|
-
/** Update channel name
|
|
2778
|
+
/** Update a channel's name, description, and/or membership policy. Requires the 'manage_group' channel permission (app admins bypass). */
|
|
1872
2779
|
updateChannel: Group;
|
|
1873
|
-
/** Update a channel role (manage_roles). */
|
|
2780
|
+
/** Update a channel role's name, rank, and/or permission keys (system roles cannot be renamed/re-ranked). When permissions are supplied they REPLACE the role's existing keys. Requires the 'manage_roles' channel permission (app admins bypass). Note: changing send_messages here does not re-push Buddy until affected members' roles are re-applied via setChannelMemberRoles. */
|
|
1874
2781
|
updateChannelRole: GroupRole;
|
|
2782
|
+
/** Creates or replaces a chunk's dense voxel grid and/or per-voxel states for the given app and coordinates, records each provided voxel state as an individual voxel update, and asynchronously uploads the chunk to the CDN. WRITES world state. Leaves chunkState and LODs untouched. Requires a valid bearer token (app-scoped tokens are limited to their own app); no additional org/app permission is enforced on this field. */
|
|
1875
2783
|
updateChunk: Chunk;
|
|
2784
|
+
/** Replaces the level-of-detail (LOD) set for a chunk, preserving voxels, per-voxel states, chunk state and owner; returns the updated chunk (or null if it could not be written). WRITES world state. Requires a valid bearer token AND the `manage_apps` permission on the org that owns input.appId (super admins bypass). */
|
|
1876
2785
|
updateChunkLods: Maybe<Chunk>;
|
|
2786
|
+
/** Upserts ONLY the opaque base64 chunk-level state blob for a chunk, preserving its voxels, per-voxel states and LODs; returns the updated chunk (or null if it could not be written). WRITES world state. Requires a valid bearer token AND the `manage_apps` permission on the org that owns input.appId (super admins bypass). */
|
|
1877
2787
|
updateChunkState: Maybe<Chunk>;
|
|
2788
|
+
/** Updates a dedicated environment's autoscaling bounds (game-api / Buddy min & max server counts), load-balancer count, and optionally the Caddy flavor, queuing a change order that redeploys the affected tiers. May change the hourly cost. Rejected for 'dev_single' environments and when another change order is already active. Requires the 'manage_environments' org permission. */
|
|
1878
2789
|
updateEnvironmentScaling: CksEnvironmentChangeOrder;
|
|
2790
|
+
/** Sets the authenticated user’s gamertag and disambiguation and appends a gamertag-history row. Requires a valid game token; only ever updates the caller. Fails if the gamertag+disambiguation pair is already taken. NOTE: the users table is management-owned, so in cks-game-api this throws ForbiddenException — call cks-management-api instead. */
|
|
1879
2791
|
updateGamertag: User;
|
|
2792
|
+
/** Replaces the full set of roles assigned to an org member. Requires the 'manage_members' permission on the org (super admins bypass). Pass the complete desired role list; roles not included are removed. */
|
|
1880
2793
|
updateOrgMemberRoles: OrgMember;
|
|
2794
|
+
/** Updates a role's name, description, and/or permission set. Requires the 'manage_members' permission on the role's org (super admins bypass). If input.permissions is provided it replaces the entire set (empty array clears all); omit to leave permissions unchanged. */
|
|
1881
2795
|
updateOrgRole: OrgRole;
|
|
2796
|
+
/** Updates an org token's metadata (label, expiry, active flag). Requires the 'manage_tokens' permission on the token's org (super admins bypass). Does not rotate the secret value. */
|
|
1882
2797
|
updateOrgToken: OrgToken;
|
|
1883
|
-
/** Update team name
|
|
2798
|
+
/** Update a team's name, description, and/or membership policy. Requires the 'manage_group' team permission (app admins bypass). */
|
|
1884
2799
|
updateTeam: Group;
|
|
1885
|
-
/** Update a team role (manage_roles). */
|
|
2800
|
+
/** Update a team role's name, rank, and/or permission keys (system roles cannot be renamed/re-ranked). When permissions are supplied they REPLACE the role's existing keys. Requires the 'manage_roles' team permission (app admins bypass). */
|
|
1886
2801
|
updateTeamRole: GroupRole;
|
|
2802
|
+
/** Creates or replaces the authenticated user’s per-app state for `input.appId` (upsert keyed by appId+userId). Requires a valid game token; always writes the caller’s own state. `input.state` is base64-encoded binary. */
|
|
1887
2803
|
updateUserAppState: UserAppState;
|
|
2804
|
+
/** Replaces the authenticated user’s top-level `state` blob (base64-encoded binary; omit/null clears it). Requires a valid game token; only ever writes the caller. NOTE: users.state is management-owned, so in cks-game-api this throws ForbiddenException — call cks-management-api instead. */
|
|
1888
2805
|
updateUserState: User;
|
|
2806
|
+
/** Sets the target user’s account `user_type` (e.g. "direct", "deleted"). Requires a super-admin bearer game token (and the management API enabled). NOTE: management-owned in cks-game-api (throws ForbiddenException) — use cks-management-api. */
|
|
1889
2807
|
updateUserType: User;
|
|
2808
|
+
/** Records (upserts) a single voxel edit in the voxel_updates log for one chunk and returns the resulting Voxel. WRITES world state; a background maintenance job later folds these edits into the chunk's packed grid. Requires a valid bearer token AND voxel-edit permission for the target region: the user must have active app access, the `update_voxel_data` tier permission, and (when grids cover the chunk) `update_voxel_data` on a covering grid. */
|
|
1890
2809
|
updateVoxel: Voxel;
|
|
2810
|
+
/** Operator only (is_operator). Yanks (withdraws) an environment version so it can no longer be deployed; existing environments are unaffected. Writes an audit entry. Returns true on success. */
|
|
1891
2811
|
yankEnvironmentVersion: Scalars['Boolean']['output'];
|
|
1892
2812
|
};
|
|
1893
2813
|
export type MutationActorHeartbeatArgs = {
|
|
@@ -1902,24 +2822,31 @@ export type MutationAddTeamMemberArgs = {
|
|
|
1902
2822
|
userId: Scalars['BigInt']['input'];
|
|
1903
2823
|
};
|
|
1904
2824
|
export type MutationArchiveAccessTierArgs = {
|
|
2825
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
1905
2826
|
tierId: Scalars['BigInt']['input'];
|
|
1906
2827
|
};
|
|
1907
2828
|
export type MutationArchiveAppArgs = {
|
|
1908
2829
|
appId: Scalars['BigInt']['input'];
|
|
2830
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
1909
2831
|
};
|
|
1910
2832
|
export type MutationAssignGroupToGridArgs = {
|
|
1911
2833
|
input: AssignGroupToGridInput;
|
|
1912
2834
|
};
|
|
1913
2835
|
export type MutationCancelSharedSubscriptionArgs = {
|
|
1914
2836
|
appId: Scalars['BigInt']['input'];
|
|
2837
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
1915
2838
|
};
|
|
1916
2839
|
export type MutationCapturePaypalCheckoutArgs = {
|
|
2840
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
1917
2841
|
orderId: Scalars['String']['input'];
|
|
1918
2842
|
};
|
|
1919
2843
|
export type MutationChangePasswordArgs = {
|
|
1920
2844
|
currentPassword: Scalars['String']['input'];
|
|
1921
2845
|
newPassword: Scalars['String']['input'];
|
|
1922
2846
|
};
|
|
2847
|
+
export type MutationClaimFreeAppAccessArgs = {
|
|
2848
|
+
appId: Scalars['BigInt']['input'];
|
|
2849
|
+
};
|
|
1923
2850
|
export type MutationConfirmEmailArgs = {
|
|
1924
2851
|
token: Scalars['String']['input'];
|
|
1925
2852
|
};
|
|
@@ -1966,10 +2893,12 @@ export type MutationCreateTeamRoleArgs = {
|
|
|
1966
2893
|
input: CreateGroupRoleInput;
|
|
1967
2894
|
};
|
|
1968
2895
|
export type MutationDeleteActorArgs = {
|
|
2896
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
1969
2897
|
uuid: Scalars['String']['input'];
|
|
1970
2898
|
};
|
|
1971
2899
|
export type MutationDeleteAvatarArgs = {
|
|
1972
2900
|
id: Scalars['BigInt']['input'];
|
|
2901
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
1973
2902
|
};
|
|
1974
2903
|
export type MutationDeleteChannelArgs = {
|
|
1975
2904
|
groupId: Scalars['BigInt']['input'];
|
|
@@ -1982,13 +2911,16 @@ export type MutationDeleteCpSecretArgs = {
|
|
|
1982
2911
|
name: Scalars['String']['input'];
|
|
1983
2912
|
};
|
|
1984
2913
|
export type MutationDeleteOrgRoleArgs = {
|
|
2914
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
1985
2915
|
orgRoleId: Scalars['BigInt']['input'];
|
|
1986
2916
|
};
|
|
1987
2917
|
export type MutationDeleteQuotaArgs = {
|
|
2918
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
1988
2919
|
quotaId: Scalars['BigInt']['input'];
|
|
1989
2920
|
};
|
|
1990
2921
|
export type MutationDeleteTeamArgs = {
|
|
1991
2922
|
groupId: Scalars['BigInt']['input'];
|
|
2923
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
1992
2924
|
};
|
|
1993
2925
|
export type MutationDeleteTeamRoleArgs = {
|
|
1994
2926
|
groupRoleId: Scalars['BigInt']['input'];
|
|
@@ -2057,6 +2989,9 @@ export type MutationGrantAppAccessArgs = {
|
|
|
2057
2989
|
export type MutationGrantGridPermissionsArgs = {
|
|
2058
2990
|
input: GrantGridPermissionsInput;
|
|
2059
2991
|
};
|
|
2992
|
+
export type MutationGrantMyAppAccessArgs = {
|
|
2993
|
+
appId: Scalars['BigInt']['input'];
|
|
2994
|
+
};
|
|
2060
2995
|
export type MutationIngestEnvironmentVersionArgs = {
|
|
2061
2996
|
input: IngestEnvironmentVersionInput;
|
|
2062
2997
|
};
|
|
@@ -2074,6 +3009,7 @@ export type MutationLeaveChannelArgs = {
|
|
|
2074
3009
|
};
|
|
2075
3010
|
export type MutationLeaveTeamArgs = {
|
|
2076
3011
|
groupId: Scalars['BigInt']['input'];
|
|
3012
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
2077
3013
|
};
|
|
2078
3014
|
export type MutationLinkAppToEnvironmentArgs = {
|
|
2079
3015
|
input: LinkAppToEnvironmentInput;
|
|
@@ -2084,6 +3020,7 @@ export type MutationLoginArgs = {
|
|
|
2084
3020
|
export type MutationPublishAppToSharedArgs = {
|
|
2085
3021
|
appId: Scalars['BigInt']['input'];
|
|
2086
3022
|
cancelUrl?: InputMaybe<Scalars['String']['input']>;
|
|
3023
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
2087
3024
|
planId?: InputMaybe<Scalars['BigInt']['input']>;
|
|
2088
3025
|
provider?: InputMaybe<PaymentProvider>;
|
|
2089
3026
|
successUrl?: InputMaybe<Scalars['String']['input']>;
|
|
@@ -2117,10 +3054,12 @@ export type MutationRemoveChannelMemberArgs = {
|
|
|
2117
3054
|
userId: Scalars['BigInt']['input'];
|
|
2118
3055
|
};
|
|
2119
3056
|
export type MutationRemoveOrgMemberArgs = {
|
|
3057
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
2120
3058
|
orgId: Scalars['BigInt']['input'];
|
|
2121
3059
|
userId: Scalars['BigInt']['input'];
|
|
2122
3060
|
};
|
|
2123
3061
|
export type MutationRemoveSharedPaymentMethodArgs = {
|
|
3062
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
2124
3063
|
orgId: Scalars['BigInt']['input'];
|
|
2125
3064
|
paymentMethodId: Scalars['BigInt']['input'];
|
|
2126
3065
|
};
|
|
@@ -2151,6 +3090,7 @@ export type MutationResumeEnvironmentArgs = {
|
|
|
2151
3090
|
};
|
|
2152
3091
|
export type MutationRevokeAppAccessArgs = {
|
|
2153
3092
|
appId: Scalars['BigInt']['input'];
|
|
3093
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
2154
3094
|
userId: Scalars['BigInt']['input'];
|
|
2155
3095
|
};
|
|
2156
3096
|
export type MutationRevokeGridPermissionsArgs = {
|
|
@@ -2160,6 +3100,7 @@ export type MutationRevokeGroupFromGridArgs = {
|
|
|
2160
3100
|
input: RevokeGroupFromGridInput;
|
|
2161
3101
|
};
|
|
2162
3102
|
export type MutationRevokeOrgTokenArgs = {
|
|
3103
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
2163
3104
|
orgTokenId: Scalars['BigInt']['input'];
|
|
2164
3105
|
};
|
|
2165
3106
|
export type MutationRollbackVoxelUpdatesArgs = {
|
|
@@ -2188,6 +3129,7 @@ export type MutationSendVoxelUpdateArgs = {
|
|
|
2188
3129
|
};
|
|
2189
3130
|
export type MutationSetAppBudgetArgs = {
|
|
2190
3131
|
appId: Scalars['BigInt']['input'];
|
|
3132
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
2191
3133
|
monthlyLimitCents: Scalars['BigInt']['input'];
|
|
2192
3134
|
orgId: Scalars['BigInt']['input'];
|
|
2193
3135
|
};
|
|
@@ -2202,6 +3144,7 @@ export type MutationSetAppVisibilityArgs = {
|
|
|
2202
3144
|
};
|
|
2203
3145
|
export type MutationSetAutoBillingArgs = {
|
|
2204
3146
|
enabled: Scalars['Boolean']['input'];
|
|
3147
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
2205
3148
|
limitCents?: InputMaybe<Scalars['BigInt']['input']>;
|
|
2206
3149
|
lowWaterThresholdCents?: InputMaybe<Scalars['BigInt']['input']>;
|
|
2207
3150
|
orgId: Scalars['BigInt']['input'];
|
|
@@ -2246,6 +3189,7 @@ export type MutationSetTeamPolicyArgs = {
|
|
|
2246
3189
|
input: SetTeamPolicyInput;
|
|
2247
3190
|
};
|
|
2248
3191
|
export type MutationSetupSharedPaymentMethodArgs = {
|
|
3192
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
2249
3193
|
orgId: Scalars['BigInt']['input'];
|
|
2250
3194
|
};
|
|
2251
3195
|
export type MutationTeleportRequestArgs = {
|
|
@@ -2334,145 +3278,254 @@ export type MutationUpdateVoxelArgs = {
|
|
|
2334
3278
|
export type MutationYankEnvironmentVersionArgs = {
|
|
2335
3279
|
version: Scalars['String']['input'];
|
|
2336
3280
|
};
|
|
3281
|
+
/** A grid overlapping a scanned region, plus a user's effective permission keys on it (returned by nearbyGridPermissions). */
|
|
2337
3282
|
export type NearbyGridPermissions = {
|
|
2338
3283
|
__typename?: 'NearbyGridPermissions';
|
|
3284
|
+
/** The app (tenant) that owns the grid. */
|
|
2339
3285
|
appId: Scalars['BigInt']['output'];
|
|
3286
|
+
/** The grid id. */
|
|
2340
3287
|
gridId: Scalars['BigInt']['output'];
|
|
3288
|
+
/** High (maximum) corner chunk of the grid box. */
|
|
2341
3289
|
highChunk: ChunkCoordinates;
|
|
3290
|
+
/** Low (minimum) corner chunk of the grid box. */
|
|
2342
3291
|
lowChunk: ChunkCoordinates;
|
|
3292
|
+
/** The user's effective runtime permission key strings on this grid. */
|
|
2343
3293
|
permissionKeys: Array<Scalars['String']['output']>;
|
|
3294
|
+
/** The user the permissions were computed for. */
|
|
2344
3295
|
userId: Scalars['BigInt']['output'];
|
|
2345
3296
|
};
|
|
3297
|
+
/** Scan a region for grids and report a user's effective permissions on each. */
|
|
2346
3298
|
export type NearbyGridPermissionsInput = {
|
|
3299
|
+
/** The app (tenant) to scan within. */
|
|
2347
3300
|
appId: Scalars['BigInt']['input'];
|
|
3301
|
+
/** High corner of the region to scan, in chunk coordinates (normalized). */
|
|
2348
3302
|
highChunk: ChunkCoordinatesInput;
|
|
3303
|
+
/** Low corner of the region to scan, in chunk coordinates (normalized). */
|
|
2349
3304
|
lowChunk: ChunkCoordinatesInput;
|
|
3305
|
+
/** The user whose effective permissions to report per grid. */
|
|
2350
3306
|
userId: Scalars['BigInt']['input'];
|
|
2351
3307
|
};
|
|
2352
3308
|
/** Org off-session auto-billing configuration. */
|
|
2353
3309
|
export type OrgAutoBilling = {
|
|
2354
3310
|
__typename?: 'OrgAutoBilling';
|
|
3311
|
+
/** Amount already auto-billed in the current period, in cents. */
|
|
2355
3312
|
autoBilledThisPeriodCents: Scalars['BigInt']['output'];
|
|
3313
|
+
/** Whether off-session auto-billing is enabled. */
|
|
2356
3314
|
enabled: Scalars['Boolean']['output'];
|
|
3315
|
+
/** True when a vaulted payment method exists to charge off-session. */
|
|
2357
3316
|
hasPaymentMethod: Scalars['Boolean']['output'];
|
|
3317
|
+
/** Most recent auto-billing failure message, if any. */
|
|
2358
3318
|
lastError: Maybe<Scalars['String']['output']>;
|
|
2359
3319
|
/** Max auto-billed per period in cents. Null = no limit. */
|
|
2360
3320
|
limitCents: Maybe<Scalars['BigInt']['output']>;
|
|
3321
|
+
/** Wallet balance at or below which an auto-recharge is triggered, in cents. */
|
|
2361
3322
|
lowWaterThresholdCents: Scalars['BigInt']['output'];
|
|
3323
|
+
/** Organization id (BigInt). */
|
|
2362
3324
|
orgId: Scalars['BigInt']['output'];
|
|
3325
|
+
/** Reset window for the per-period auto-billed total, e.g. 'month'. */
|
|
2363
3326
|
period: Scalars['String']['output'];
|
|
3327
|
+
/** Amount to top up the wallet by on each auto-recharge, in cents. */
|
|
2364
3328
|
rechargeAmountCents: Scalars['BigInt']['output'];
|
|
2365
3329
|
};
|
|
2366
3330
|
export type OrgMember = {
|
|
2367
3331
|
__typename?: 'OrgMember';
|
|
3332
|
+
/** When the membership was created. */
|
|
2368
3333
|
createdAt: Scalars['DateTime']['output'];
|
|
3334
|
+
/** Organization this membership belongs to (BigInt as string). */
|
|
2369
3335
|
orgId: Scalars['BigInt']['output'];
|
|
3336
|
+
/** Unique membership id (primary key, BigInt as string). Distinct from userId. */
|
|
2370
3337
|
orgMemberId: Scalars['BigInt']['output'];
|
|
3338
|
+
/** Membership status. Only 'active' members count for permission checks; other values (e.g. 'invited' or 'removed') grant no permissions. */
|
|
2371
3339
|
status: Scalars['String']['output'];
|
|
3340
|
+
/** When the membership was last updated. */
|
|
2372
3341
|
updatedAt: Scalars['DateTime']['output'];
|
|
3342
|
+
/** The member's user_id (BigInt as string). */
|
|
2373
3343
|
userId: Scalars['BigInt']['output'];
|
|
2374
3344
|
};
|
|
2375
3345
|
/** Represents one user's membership in one organization. Bundles the org, the union of permissions across the user's assigned roles, and the role list itself - so the UI can render an org dashboard without a follow-up round trip. */
|
|
2376
3346
|
export type OrgMembership = {
|
|
2377
3347
|
__typename?: 'OrgMembership';
|
|
3348
|
+
/** When the user joined the organization. */
|
|
2378
3349
|
joinedAt: Scalars['DateTime']['output'];
|
|
3350
|
+
/** The organization. */
|
|
2379
3351
|
org: Organization;
|
|
3352
|
+
/** Effective permission keys the user holds in this org (union across assigned roles; full set for super admins). */
|
|
2380
3353
|
permissions: Array<Scalars['String']['output']>;
|
|
3354
|
+
/** Roles assigned to the user in this org. */
|
|
2381
3355
|
roles: Array<OrgRole>;
|
|
2382
3356
|
};
|
|
2383
3357
|
export type OrgPermission = {
|
|
2384
3358
|
__typename?: 'OrgPermission';
|
|
3359
|
+
/** Optional grouping category for UI display. */
|
|
2385
3360
|
category: Maybe<Scalars['String']['output']>;
|
|
3361
|
+
/** Human-readable explanation of what the permission allows. */
|
|
2386
3362
|
description: Maybe<Scalars['String']['output']>;
|
|
3363
|
+
/** Stable permission key used in role grants (e.g. 'manage_members', 'manage_tokens'). */
|
|
2387
3364
|
permissionKey: Scalars['ID']['output'];
|
|
2388
3365
|
};
|
|
2389
3366
|
export type OrgRole = {
|
|
2390
3367
|
__typename?: 'OrgRole';
|
|
3368
|
+
/** When the role was created. */
|
|
2391
3369
|
createdAt: Scalars['DateTime']['output'];
|
|
3370
|
+
/** Optional human-readable description of the role. */
|
|
2392
3371
|
description: Maybe<Scalars['String']['output']>;
|
|
3372
|
+
/** True for built-in / seeded roles managed by the platform; typically not editable. */
|
|
2393
3373
|
isSystem: Scalars['Boolean']['output'];
|
|
3374
|
+
/** Organization this role belongs to (BigInt as string). */
|
|
2394
3375
|
orgId: Scalars['BigInt']['output'];
|
|
3376
|
+
/** Unique role id (primary key, BigInt as string). */
|
|
2395
3377
|
orgRoleId: Scalars['BigInt']['output'];
|
|
3378
|
+
/** Permission keys granted by this role (resolved from org_role_permissions). */
|
|
2396
3379
|
permissions: Array<Scalars['String']['output']>;
|
|
3380
|
+
/** Display name of the role. */
|
|
2397
3381
|
roleName: Scalars['String']['output'];
|
|
2398
3382
|
};
|
|
2399
3383
|
export type OrgToken = {
|
|
2400
3384
|
__typename?: 'OrgToken';
|
|
3385
|
+
/** When the token was created. */
|
|
2401
3386
|
createdAt: Scalars['DateTime']['output'];
|
|
3387
|
+
/** For 'service' tokens, the environment id (UUID) the token is scoped to; null for user-minted tokens. */
|
|
2402
3388
|
environmentId: Maybe<Scalars['String']['output']>;
|
|
3389
|
+
/** Optional expiry timestamp; null means the token never expires. */
|
|
2403
3390
|
expiresAt: Maybe<Scalars['DateTime']['output']>;
|
|
3391
|
+
/** False once revoked; inactive tokens cannot authenticate. */
|
|
2404
3392
|
isActive: Scalars['Boolean']['output'];
|
|
3393
|
+
/** 'user_minted' (human-created) or 'service' (minted by the control plane for per-tenant game-apis). */
|
|
2405
3394
|
kind: Scalars['String']['output'];
|
|
3395
|
+
/** Optional human-readable label. */
|
|
2406
3396
|
label: Maybe<Scalars['String']['output']>;
|
|
3397
|
+
/** When the token last authenticated a request, if ever. */
|
|
2407
3398
|
lastUsedAt: Maybe<Scalars['DateTime']['output']>;
|
|
3399
|
+
/** Organization that owns this token (BigInt as string). */
|
|
2408
3400
|
orgId: Scalars['BigInt']['output'];
|
|
3401
|
+
/** Unique token id (primary key, BigInt as string). */
|
|
2409
3402
|
orgTokenId: Scalars['BigInt']['output'];
|
|
3403
|
+
/** When the token was revoked, if it has been. */
|
|
2410
3404
|
revokedAt: Maybe<Scalars['DateTime']['output']>;
|
|
3405
|
+
/** When the token was last updated. */
|
|
2411
3406
|
updatedAt: Scalars['DateTime']['output'];
|
|
2412
3407
|
};
|
|
2413
3408
|
/** Returned exactly once - on org token creation. The plaintext `token` field is never re-emitted. Future listings show metadata only via the `OrgToken` type. */
|
|
2414
3409
|
export type OrgTokenWithSecret = {
|
|
2415
3410
|
__typename?: 'OrgTokenWithSecret';
|
|
3411
|
+
/** When the token was created. */
|
|
2416
3412
|
createdAt: Scalars['DateTime']['output'];
|
|
3413
|
+
/** Optional expiry timestamp; null means no expiry. */
|
|
2417
3414
|
expiresAt: Maybe<Scalars['DateTime']['output']>;
|
|
3415
|
+
/** Whether the token is active. */
|
|
2418
3416
|
isActive: Scalars['Boolean']['output'];
|
|
3417
|
+
/** Optional human-readable label. */
|
|
2419
3418
|
label: Maybe<Scalars['String']['output']>;
|
|
3419
|
+
/** Organization that owns this token (BigInt as string). */
|
|
2420
3420
|
orgId: Scalars['BigInt']['output'];
|
|
3421
|
+
/** Unique token id (BigInt as string). */
|
|
2421
3422
|
orgTokenId: Scalars['BigInt']['output'];
|
|
2422
3423
|
/** The plaintext token. Save it now; it is not stored. */
|
|
2423
3424
|
token: Scalars['String']['output'];
|
|
2424
3425
|
};
|
|
2425
3426
|
export type OrgWallet = {
|
|
2426
3427
|
__typename?: 'OrgWallet';
|
|
3428
|
+
/** Current wallet balance in minor currency units (cents) of `currency`, as a BigInt decimal string. May be negative if usage was charged against an empty wallet. */
|
|
2427
3429
|
balanceCents: Scalars['BigInt']['output'];
|
|
3430
|
+
/** When the wallet was created (ISO-8601 UTC timestamp). */
|
|
2428
3431
|
createdAt: Scalars['DateTime']['output'];
|
|
3432
|
+
/** ISO-4217 currency code for `balanceCents`, lowercase (e.g. "usd"). Defaults to "usd". */
|
|
2429
3433
|
currency: Scalars['String']['output'];
|
|
3434
|
+
/** Organization that owns this wallet (BigInt as a decimal string). There is exactly one wallet per organization. */
|
|
2430
3435
|
orgId: Scalars['BigInt']['output'];
|
|
3436
|
+
/** When the wallet was last modified, e.g. on balance change (ISO-8601 UTC timestamp). */
|
|
2431
3437
|
updatedAt: Scalars['DateTime']['output'];
|
|
3438
|
+
/** Unique wallet id (BigInt as a decimal string). */
|
|
2432
3439
|
walletId: Scalars['BigInt']['output'];
|
|
2433
3440
|
};
|
|
2434
3441
|
export type Organization = {
|
|
2435
3442
|
__typename?: 'Organization';
|
|
3443
|
+
/** When the organization was created. */
|
|
2436
3444
|
createdAt: Scalars['DateTime']['output'];
|
|
3445
|
+
/** Human-readable organization name. */
|
|
2437
3446
|
name: Scalars['String']['output'];
|
|
3447
|
+
/** Unique organization id (primary key). BigInt as a string. */
|
|
2438
3448
|
orgId: Scalars['BigInt']['output'];
|
|
3449
|
+
/** user_id of the organization owner (BigInt as string). */
|
|
2439
3450
|
ownerUserId: Scalars['BigInt']['output'];
|
|
3451
|
+
/** Unique URL-safe slug (lowercase letters, numbers, and dashes). */
|
|
2440
3452
|
slug: Scalars['String']['output'];
|
|
3453
|
+
/** Lifecycle status, e.g. 'active' or 'frozen'. Set platform-wide via setOrgStatus. */
|
|
2441
3454
|
status: Scalars['String']['output'];
|
|
3455
|
+
/** When the organization was last updated. */
|
|
2442
3456
|
updatedAt: Scalars['DateTime']['output'];
|
|
2443
3457
|
};
|
|
3458
|
+
/** Offset/limit pagination metadata for a paginated list. */
|
|
2444
3459
|
export type PageInfo = {
|
|
2445
3460
|
__typename?: 'PageInfo';
|
|
3461
|
+
/** Maximum number of items returned in this page (the page size that was applied). */
|
|
2446
3462
|
limit: Scalars['Int']['output'];
|
|
3463
|
+
/** Number of items skipped before this page (zero-based offset). */
|
|
2447
3464
|
offset: Scalars['Int']['output'];
|
|
3465
|
+
/** Total number of records matching the query across all pages, ignoring limit and offset. */
|
|
2448
3466
|
totalCount: Scalars['Int']['output'];
|
|
2449
3467
|
};
|
|
3468
|
+
/** A single inbound payment-provider webhook event from the reconciliation audit log. */
|
|
2450
3469
|
export type PaymentEventRecord = {
|
|
2451
3470
|
__typename?: 'PaymentEventRecord';
|
|
3471
|
+
/** Checkout this event was matched to (BigInt as a decimal string); null if it could not be matched. */
|
|
2452
3472
|
checkoutId: Maybe<Scalars['BigInt']['output']>;
|
|
3473
|
+
/** When the event was received (ISO-8601 UTC timestamp). */
|
|
2453
3474
|
createdAt: Scalars['DateTime']['output'];
|
|
3475
|
+
/** Error message if processing this event failed; null on success. */
|
|
2454
3476
|
error: Maybe<Scalars['String']['output']>;
|
|
3477
|
+
/** Unique payment-event id (BigInt as a decimal string). */
|
|
2455
3478
|
eventId: Scalars['BigInt']['output'];
|
|
3479
|
+
/** Provider event type string (e.g. "checkout.session.completed" for Stripe). */
|
|
2456
3480
|
eventType: Scalars['String']['output'];
|
|
3481
|
+
/** Provider-assigned event id, unique per provider; used to make webhook handling idempotent. */
|
|
2457
3482
|
externalEventId: Scalars['String']['output'];
|
|
3483
|
+
/** When the event was successfully processed (ISO-8601 UTC timestamp); null if not yet processed. */
|
|
2458
3484
|
processedAt: Maybe<Scalars['DateTime']['output']>;
|
|
3485
|
+
/** Provider that delivered this webhook event. */
|
|
2459
3486
|
provider: PaymentProvider;
|
|
2460
3487
|
};
|
|
3488
|
+
/** An edge in a PaymentEventRecord connection. */
|
|
3489
|
+
export type PaymentEventRecordEdge = {
|
|
3490
|
+
__typename?: 'PaymentEventRecordEdge';
|
|
3491
|
+
/** Opaque cursor for this edge. */
|
|
3492
|
+
cursor: Scalars['String']['output'];
|
|
3493
|
+
/** The node at the end of this edge. */
|
|
3494
|
+
node: PaymentEventRecord;
|
|
3495
|
+
};
|
|
3496
|
+
/** A Relay cursor connection over PaymentEventRecord rows. Page with first/after; pass pageInfo.endCursor back as after for the next page. */
|
|
3497
|
+
export type PaymentEventsConnection = {
|
|
3498
|
+
__typename?: 'PaymentEventsConnection';
|
|
3499
|
+
/** Edges on this page. */
|
|
3500
|
+
edges: Array<PaymentEventRecordEdge>;
|
|
3501
|
+
/** Pagination metadata. */
|
|
3502
|
+
pageInfo: ConnectionPageInfo;
|
|
3503
|
+
/** Total matching records across all pages, when known (null for sources that do not compute a total). */
|
|
3504
|
+
totalCount: Maybe<Scalars['Int']['output']>;
|
|
3505
|
+
};
|
|
3506
|
+
/** A page of payment webhook events with offset/limit pagination metadata. */
|
|
2461
3507
|
export type PaymentEventsPage = {
|
|
2462
3508
|
__typename?: 'PaymentEventsPage';
|
|
3509
|
+
/** The webhook events on this page, ordered newest first. */
|
|
2463
3510
|
items: Array<PaymentEventRecord>;
|
|
3511
|
+
/** Offset/limit pagination metadata (totalCount, limit, offset) for this result set. */
|
|
2464
3512
|
pageInfo: PageInfo;
|
|
2465
3513
|
};
|
|
2466
3514
|
/** Stripe SetupIntent handle the browser uses to vault a card for auto-billing. */
|
|
2467
3515
|
export type PaymentMethodSetup = {
|
|
2468
3516
|
__typename?: 'PaymentMethodSetup';
|
|
3517
|
+
/** SetupIntent client secret the browser confirms to vault the card. */
|
|
2469
3518
|
clientSecret: Maybe<Scalars['String']['output']>;
|
|
3519
|
+
/** Provider customer id (e.g. Stripe customer) the card is vaulted under. */
|
|
2470
3520
|
externalCustomerId: Scalars['String']['output'];
|
|
3521
|
+
/** Provider publishable key for the browser SDK. */
|
|
2471
3522
|
publishableKey: Maybe<Scalars['String']['output']>;
|
|
2472
3523
|
};
|
|
2473
3524
|
/** External payment processor for a checkout. */
|
|
2474
3525
|
export declare enum PaymentProvider {
|
|
3526
|
+
/** PayPal. Hosted approval flow; the approved order is captured (see capturePaypalCheckout) and confirmed via PayPal webhooks. */
|
|
2475
3527
|
Paypal = "PAYPAL",
|
|
3528
|
+
/** Stripe Checkout. Hosted card payment session; completion is confirmed via Stripe webhooks. */
|
|
2476
3529
|
Stripe = "STRIPE"
|
|
2477
3530
|
}
|
|
2478
3531
|
/** Public platform discovery. Clients/SDKs read the shared game-api URL here to route apps deployed to the shared environment. */
|
|
@@ -2501,172 +3554,281 @@ export type PublishEnvironmentReleaseFromGameApiTagInput = {
|
|
|
2501
3554
|
gameApiTag: Scalars['String']['input'];
|
|
2502
3555
|
};
|
|
2503
3556
|
export type PurgeEnvironmentInput = {
|
|
3557
|
+
/** Optional idempotency key. Recommended for retries: replaying with the same key and identical input returns the first result instead of re-applying; the same key with different input returns IDEMPOTENCY_CONFLICT. Keys expire after 24h. */
|
|
3558
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
3559
|
+
/** Organization id (BigInt) that owns the environment. */
|
|
2504
3560
|
orgId: Scalars['BigInt']['input'];
|
|
3561
|
+
/** Slug of the already-destroyed environment whose record to permanently delete. */
|
|
2505
3562
|
slug: Scalars['String']['input'];
|
|
2506
3563
|
};
|
|
2507
3564
|
export type Query = {
|
|
2508
3565
|
__typename?: 'Query';
|
|
2509
|
-
/**
|
|
3566
|
+
/** List only healthy GraphQL API servers (status = ReadyForClients) for client routing/discovery. No authentication required. */
|
|
2510
3567
|
activeGraphQLServers: Array<GraphQlServer>;
|
|
3568
|
+
/** Fetches a single actor by its 32-character ASCII `uuid`. Requires a valid game token. Owner-aware: the owner receives full state; non-owners receive a public copy with `privateState` stripped (null). Throws NotFound if the uuid does not exist. */
|
|
2511
3569
|
actor: Actor;
|
|
3570
|
+
/** Lists actors owned by the authenticated user, optionally narrowed by `filter` (appId, avatarId, uuid, chunk). Requires a valid game token; only the caller’s own actors are returned (full state included). For other users’ actors use `actor` or `batchLookupActors`. */
|
|
2512
3571
|
actors: Array<Actor>;
|
|
3572
|
+
/** Relay-style cursor-paginated version of `actors`: lists actors owned by the authenticated user, optionally narrowed by `filter` (appId, avatarId, uuid, chunk). Page forward with `first` (default 50, max 200) and `after` (an opaque cursor from a previous page’s `pageInfo.endCursor`); `totalCount` is the full number of matching actors. Requires a valid game token; only the caller’s own actors are returned (full state included). */
|
|
3573
|
+
actorsConnection: ActorsConnection;
|
|
3574
|
+
/** Fetch a single app by its numeric id. Requires authentication (any signed-in user); does NOT enforce org/app permissions, so it can read apps the caller does not own, of any visibility/status. Returns null if the id does not exist. Prefer appBySlug for slug-based marketplace lookups. */
|
|
2513
3575
|
app: Maybe<App>;
|
|
2514
|
-
/** Public listing of access tiers
|
|
3576
|
+
/** Public listing of an app's access tiers (the free/paid bundles of runtime permissions), ordered by tierOrder ascending. PUBLIC: no authentication required. Powers the marketplace app detail / pricing page. Includes tiers of all statuses; inspect AppAccessTier.status to skip archived tiers. */
|
|
2515
3577
|
appAccessTiers: Array<AppAccessTier>;
|
|
3578
|
+
/** Returns the monthly spend cap and current-month usage for a single app, or null if no budget has been configured for it. Requires the 'view_billing' app permission. */
|
|
2516
3579
|
appBudget: Maybe<AppBudget>;
|
|
3580
|
+
/** Lists every app spend-cap budget configured under the organization. Requires the 'view_billing' org permission. */
|
|
2517
3581
|
appBudgets: Array<AppBudget>;
|
|
3582
|
+
/** Look up a single app by its org slug + app slug (the marketplace URL path). PUBLIC: no authentication required, and NOT filtered by visibility/status, so it can resolve unlisted or draft apps when the exact slugs are known. Returns null if no matching app exists. */
|
|
2518
3583
|
appBySlug: Maybe<App>;
|
|
2519
|
-
/**
|
|
3584
|
+
/** Lists org members eligible for a manual app access grant (active members of the app's owning org). Requires the 'manage_access_tiers' permission on the app; super admins bypass. Use the returned user ids with grantAppAccess. */
|
|
3585
|
+
appGrantMemberCandidates: Array<AppGrantMemberCandidate>;
|
|
3586
|
+
/** Top GraphQL operations for an app ranked by bytes over the time range. Read-only reporting; the app must be linked to an environment in the org. Requires the 'view_usage' org permission. */
|
|
2520
3587
|
appGraphqlOperations: Array<GraphqlOperationUsageRow>;
|
|
2521
|
-
/** Shared-environment runtime gate
|
|
3588
|
+
/** Shared-environment runtime gate decision plus current hour/day billing-window usage for an app. Read this to learn why an app is not running (runtimeDenialReason). Caller must be a member of the app's org. */
|
|
2522
3589
|
appRuntimeState: AppRuntimeState;
|
|
3590
|
+
/** An app's paid shared-environment subscription, or null when it has none (e.g. unpublished or on the free quota). Caller must be a member of the app's org. */
|
|
2523
3591
|
appSharedSubscription: Maybe<AppSharedSubscription>;
|
|
2524
|
-
/** Replication and GraphQL totals plus top operations for one app. */
|
|
3592
|
+
/** Replication and GraphQL byte totals plus the top GraphQL operations for one app over the time range. Read-only reporting; the app must be linked to an environment in the org. Requires the 'view_usage' org permission. */
|
|
2525
3593
|
appUsageSummary: AppUsageSummary;
|
|
3594
|
+
/** Admin view of the user access records for an app (who has been granted/revoked access and on which tier). Requires the 'manage_access_tiers' permission on the app; super admins bypass. Ordered by most recently updated. Paginated via limit/offset. */
|
|
2526
3595
|
appUserAccessByApp: Array<AppUserAccess>;
|
|
2527
|
-
/**
|
|
3596
|
+
/** Admin view of the user access records for an app (who has been granted/revoked access and on which tier). Requires the 'manage_access_tiers' permission on the app; super admins bypass. Ordered by most recently updated. Relay cursor connection; prefer this over the offset-based appUserAccessByApp. */
|
|
3597
|
+
appUserAccessConnection: AppUserAccessConnection;
|
|
3598
|
+
/** Public marketplace listing of apps. PUBLIC: no authentication required. Returns ONLY apps with visibility=PUBLIC AND status=LIVE (drafts, unlisted, private, and archived apps are never returned). Use myApps or appsForOrg for caller-visible or org-scoped apps. Results are ordered newest-first and paginated via pageInfo. */
|
|
2528
3599
|
apps: AppsPage;
|
|
3600
|
+
/** Public marketplace listing of apps. PUBLIC: no authentication required. Returns ONLY apps with visibility=PUBLIC AND status=LIVE (drafts, unlisted, private, and archived apps are never returned). Results are ordered newest-first. Relay cursor connection; prefer this over the offset-based apps. */
|
|
3601
|
+
appsConnection: AppsConnection;
|
|
3602
|
+
/** All apps belonging to an organization, identified by the org's slug, regardless of visibility or status (includes drafts and archived). Requires authentication; intended for org dashboards. Ordered newest-first. Returns an empty list for an unknown slug. */
|
|
2529
3603
|
appsForOrg: Array<App>;
|
|
3604
|
+
/** Fetches a single avatar by id. Requires a valid game token. Owner-aware: the owner receives full state; non-owners receive a public copy with `privateState` stripped (null). Throws NotFound if the id does not exist. State blobs are base64-encoded binary. */
|
|
2530
3605
|
avatar: Avatar;
|
|
2531
|
-
/**
|
|
3606
|
+
/** Reads one avatar’s per-app state (keyed by appId+avatarId). PUBLIC READ: any authenticated user may read it. Requires a valid game token. Returns null when no row exists. `state` is base64-encoded binary. */
|
|
2532
3607
|
avatarAppState: Maybe<AppAvatarState>;
|
|
2533
|
-
/** Batch-
|
|
3608
|
+
/** Batch-reads per-app state for many avatars under a single app in one call. PUBLIC READ: any authenticated user may read. Requires a valid game token. Avatars with no row for the app are omitted. `state` blobs are base64-encoded binary. */
|
|
2534
3609
|
avatarAppStates: Array<AppAvatarState>;
|
|
3610
|
+
/** Bulk-fetches actors by a list of 32-character ASCII uuids in one round-trip. Requires a valid game token. PUBLIC-STATE ONLY: `privateState` is stripped (null) for every result regardless of ownership. Unknown uuids are silently omitted. Use this to resolve many actors at once; use `actor` for a single owner-scoped fetch. */
|
|
2535
3611
|
batchLookupActors: Array<Actor>;
|
|
2536
|
-
/** Fetch one channel by id. */
|
|
3612
|
+
/** Fetch one channel by id. Errors if the id is not a channel. */
|
|
2537
3613
|
channel: Group;
|
|
2538
|
-
/** List the members of a channel. */
|
|
3614
|
+
/** List the members of a channel (the subscriber set, including pending requests), each with their status and roles. */
|
|
2539
3615
|
channelMembers: Array<GroupMember>;
|
|
2540
|
-
/** The current channel creation/membership policy for an app. */
|
|
3616
|
+
/** The current channel creation/membership policy for an app (who may create channels and the default membership policy of new channels). Falls back to app defaults when unset. */
|
|
2541
3617
|
channelPolicy: AppGroupPolicy;
|
|
2542
|
-
/** List the roles of a channel. */
|
|
3618
|
+
/** List the roles of a channel, including the system 'leader' role and any default 'member' role (which typically grants send_messages). */
|
|
2543
3619
|
channelRoles: Array<GroupRole>;
|
|
2544
|
-
/** List active channels in an app. */
|
|
3620
|
+
/** List all active channels in an app (not just the caller's). */
|
|
2545
3621
|
channels: Array<Group>;
|
|
2546
|
-
/**
|
|
3622
|
+
/** Cross-tenant payments audit across all users, orgs, and apps (newest first), with optional filtering. Restricted to super admins; requests from non-super-admins are rejected. For a caller's own history use `myCheckouts` instead. */
|
|
2547
3623
|
checkouts: CheckoutsPage;
|
|
3624
|
+
/** Cross-tenant payments audit across all users, orgs, and apps (newest first), with optional filtering. Restricted to super admins; requests from non-super-admins are rejected. For a caller's own history use `myCheckoutsConnection` instead. Relay cursor connection; prefer this over the offset-based checkouts. */
|
|
3625
|
+
checkoutsConnection: CheckoutsConnection;
|
|
3626
|
+
/** Operator only (is_operator). Most recent operator audit entries, newest first, optionally filtered by environment. */
|
|
2548
3627
|
cpAudit: Array<CpAuditEntry>;
|
|
3628
|
+
/** Operator only (is_operator). One change order with its tasks and steps. Null when the id is not found. */
|
|
2549
3629
|
cpChangeOrder: Maybe<CpChangeOrderDetail>;
|
|
3630
|
+
/** Operator only (is_operator). Paginated change orders, optionally filtered by environment. Returns a *Page (rows/total/page/pageSize); page is 1-based. */
|
|
2550
3631
|
cpChangeOrders: CpChangeOrdersPage;
|
|
3632
|
+
/** Operator only (is_operator). Lists environment-delivered secret metadata (names/kinds only, never plaintext) injected into the tenant runtime, optionally filtered by environment. */
|
|
2551
3633
|
cpEnvSecrets: Array<CpEnvSecretRow>;
|
|
3634
|
+
/** Operator only (is_operator). Operator view of one environment by slug, across any org. Null when not found. */
|
|
2552
3635
|
cpEnvironment: Maybe<CpAdminEnvironment>;
|
|
3636
|
+
/** Operator only (is_operator). Environment release manifests merged from git and the database, with the latest available version and git-source availability. Read-only. */
|
|
2553
3637
|
cpEnvironmentVersions: CpEnvironmentVersionsPage;
|
|
3638
|
+
/** Operator only (is_operator). Paginated list of all environments across every org. Returns a *Page (rows/total/page/pageSize); page is 1-based. */
|
|
2554
3639
|
cpEnvironments: CpAdminEnvironmentsPage;
|
|
3640
|
+
/** Operator only (is_operator). OVH flavor catalog with provider vs. customer pricing for cost analysis, optionally filtered by region. Read-only. */
|
|
2555
3641
|
cpOvhCatalogSummary: Array<CpOvhCatalogRow>;
|
|
3642
|
+
/** Operator only (is_operator). Lists control-plane secret metadata (names/kinds only, never plaintext), optionally filtered by environment. */
|
|
2556
3643
|
cpSecrets: Array<CpSecretRow>;
|
|
3644
|
+
/** Operator only (is_operator). cks-game-api git tags not yet pinned by any environment release, each with the version a publish would create. Read-only. */
|
|
2557
3645
|
cpUnreleasedGameApiTags: CpUnreleasedGameApiTagsPage;
|
|
3646
|
+
/** Operator only (is_operator). Per-minute usage summary for any environment by slug (operator equivalent of environmentUsageSummary, not org-scoped). Read-only. */
|
|
2558
3647
|
cpUsageSummary: CpUsageSummary;
|
|
2559
|
-
/**
|
|
3648
|
+
/** Resolves the single most-specific quota that applies to the given (tierId, appId, orgId, metric) by walking tier -> app -> org -> free-tier defaults and returning the first match; its limitValue/period describe the enforced limit. Returns null if no matching rule and no free-tier default exist for the metric. Requires the 'view_usage' permission on the most-specific scope provided: tierId or appId -> 'view_usage' on the (owning) app; orgId -> 'view_usage' on the org. A metric-only query (no scope ids) resolves the platform free-tier default and only requires an authenticated user. */
|
|
2560
3649
|
effectiveQuota: Maybe<ServiceQuota>;
|
|
2561
3650
|
/** OVH datacenters that have at least one customer-priced instance flavor available for customer selection. */
|
|
2562
3651
|
environmentDatacenters: Array<CksOvhDatacenter>;
|
|
2563
3652
|
/** Customer-selectable instance flavors in the datacenter with current availability and customer pricing. */
|
|
2564
3653
|
environmentFlavors: Array<CksOvhFlavor>;
|
|
3654
|
+
/** Release versions a specific environment may upgrade to: available, deployable by its environment class, and not older than the version it currently runs (forward-only — no rollback). Newest first; backs the version picker passed to redeployEnvironment. Requires the 'view_environments' org permission. */
|
|
2565
3655
|
environmentForwardVersions: Array<CksEnvironmentVersion>;
|
|
2566
|
-
/** Pricing quote for the selected flavors. Fails if any flavor is unavailable, hidden, or lacks customer pricing. */
|
|
3656
|
+
/** Pricing quote for the selected flavors plus the org wallet balance and a canCreate gate. Read-only — provisions nothing. Fails if any flavor is unavailable, hidden, or lacks customer pricing. Requires the 'view_billing' org permission. */
|
|
2567
3657
|
environmentQuote: CksEnvironmentQuote;
|
|
2568
|
-
/**
|
|
3658
|
+
/** Aggregate replication/GraphQL byte totals per app for the apps linked to an environment, over the time window. Read-only reporting. Requires the 'view_usage' org permission. */
|
|
2569
3659
|
environmentUsageByApp: Array<AppUsageRollupRow>;
|
|
2570
|
-
/** Per-minute replication and GraphQL usage for apps linked to an environment.
|
|
3660
|
+
/** Per-minute replication and GraphQL byte/message usage time series for the apps linked to an environment, plus replication rate peaks and live Buddy rates. Read-only observability. Requires the 'view_usage' org permission. */
|
|
2571
3661
|
environmentUsageSummary: EnvironmentUsageSummary;
|
|
3662
|
+
/** Catalog of available environment release versions that can be deployed, newest first. Not org-scoped (any authenticated caller). For the versions a specific environment may move to, use environmentForwardVersions. */
|
|
2572
3663
|
environmentVersions: Array<CksEnvironmentVersion>;
|
|
3664
|
+
/** Reports whether a free-play window is active now, a human-readable schedule description, and the ISO-8601 start of the next window. PUBLIC: no authentication required. Takes no arguments; computed from server config and the current clock. */
|
|
2573
3665
|
freePlayWindowInfo: FreePlayWindowInfo;
|
|
2574
|
-
/** Single startup payload for browser game clients:
|
|
3666
|
+
/** Single startup payload for browser game clients: the authenticated user, server/min-client version requirements, current UDP proxy status, realtime protocol details (subprotocol + subscription name), and the spatial send limits/constants (maxReplicationDistance, maxDecayRate, sequenceNumberModulo). Requires a bearer game token. Read-only: does not open a UDP proxy session. Call this once after login to initialize a play session. */
|
|
2575
3667
|
gameClientBootstrap: GameClientBootstrap;
|
|
2576
3668
|
/** Returns the single elected host user for an app (game). Deterministic across all cks-game-api replicas behind the LB: the user whose earliest still-connected actor row was created first wins, with a uuid tiebreaker. Returns null when no actors exist for the app. Stale actors (no recent actorHeartbeat) are excluded once HOST_ACTOR_FRESHNESS_SECONDS is enabled. Clients should poll; there is no host-change subscription in v1. */
|
|
2577
3669
|
gameHost: Maybe<GameHost>;
|
|
3670
|
+
/** Fetch one container (instance) by id. Requires a valid token. */
|
|
2578
3671
|
gameModelContainer: GmContainer;
|
|
3672
|
+
/** Fetch a container with its property values filtered to what the CALLER may see (public always; owner/hidden depend on the caller's relationship to the container). Use this for a player-facing view of an entity. Requires a valid token. */
|
|
2579
3673
|
gameModelContainerState: GmContainerState;
|
|
3674
|
+
/** List all container types defined for an app. Requires app-admin ('manage_apps'). */
|
|
2580
3675
|
gameModelContainerTypes: Array<GmContainerType>;
|
|
3676
|
+
/** List containers in an app, optionally filtered by container type and/or session. Requires a valid token. */
|
|
2581
3677
|
gameModelContainers: Array<GmContainer>;
|
|
3678
|
+
/** Query the function-invocation event log (audit trail) with optional filters and pagination. Useful for debugging functions or showing recent activity. Requires a valid token. */
|
|
2582
3679
|
gameModelEvents: Array<GmEvent>;
|
|
3680
|
+
/** Relay-style cursor-paginated version of `gameModelEvents`: query the function-invocation event log (audit trail) with optional filters. Page forward with `first` (default 50, max 200) and `after` (an opaque cursor from a previous page’s `pageInfo.endCursor`), which replace the legacy `limit`/`offset`. Useful for debugging functions or showing recent activity. Requires a valid token. */
|
|
3681
|
+
gameModelEventsConnection: GameModelEventsConnection;
|
|
3682
|
+
/** List the feature keys defined for an app. Requires app-admin ('manage_apps'). */
|
|
2583
3683
|
gameModelFeatures: Array<GmAppFeature>;
|
|
3684
|
+
/** Fetch one studio-defined function by name. Requires app-admin ('manage_apps'). */
|
|
2584
3685
|
gameModelFunction: GmFunction;
|
|
3686
|
+
/** List studio-defined functions for an app, optionally filtered to those attached to a container type. Requires app-admin ('manage_apps'). */
|
|
2585
3687
|
gameModelFunctions: Array<GmFunction>;
|
|
3688
|
+
/** Read the app's game-model runtime policy (session creation policy + default participant role). Requires app-admin ('manage_apps'). */
|
|
2586
3689
|
gameModelPolicy: GmAppPolicy;
|
|
3690
|
+
/** List the property definitions for a container type. Requires app-admin ('manage_apps'). */
|
|
2587
3691
|
gameModelPropertyDefs: Array<GmPropertyDef>;
|
|
3692
|
+
/** Fetch one session by id. Requires a valid token. */
|
|
2588
3693
|
gameModelSession: GmSession;
|
|
3694
|
+
/** List sessions in an app, optionally filtered by status. Requires a valid token. */
|
|
2589
3695
|
gameModelSessions: Array<GmSession>;
|
|
3696
|
+
/** List tier -> feature grants for an app, optionally filtered to one tier. Requires app-admin ('manage_apps'). */
|
|
2590
3697
|
gameModelTierFeatures: Array<GmTierFeature>;
|
|
3698
|
+
/** Traverse the container graph from a root container along a relationship type up to a depth, returning the reachable nodes and edges. Requires a valid token. */
|
|
2591
3699
|
gameModelTraverse: GmTraverseResult;
|
|
3700
|
+
/** Fetch a container type's full schema: its property definitions plus the functions available on it. Requires app-admin ('manage_apps'). */
|
|
2592
3701
|
gameModelTypeSchema: GmTypeSchema;
|
|
3702
|
+
/** Fetches one chunk (its base64 voxel grid, per-voxel states, chunk state and LODs) by app id and chunk coordinates. Returns null if the chunk does not exist. Use the input's LOD options to limit which LODs come back. Requires a valid bearer token in the Authorization header; a token scoped to an app may only read that app's chunks. Read-only (no world state is changed). */
|
|
2593
3703
|
getChunk: Maybe<Chunk>;
|
|
3704
|
+
/** Fetches only the requested level-of-detail (LOD) meshes for one chunk, identified by app id and coordinates. Returns null if the chunk does not exist. Cheaper than getChunk when you only need LODs. Requires a valid bearer token; app-scoped tokens are limited to their own app. Read-only. */
|
|
2594
3705
|
getChunkLods: Maybe<ChunkLodsResponse>;
|
|
3706
|
+
/** Returns all chunks for an app within a cubic (Chebyshev-distance) radius of a center chunk, paginated. The cube spans center +/- maxDistance chunks on each axis. Use this for bulk region loads; use getChunk for a single chunk. Requires a valid bearer token; app-scoped tokens are limited to their own app. Read-only. */
|
|
2595
3707
|
getChunksByDistance: ChunksByDistanceResponse;
|
|
3708
|
+
/** Returns all recorded voxel edits (the voxel_updates log) for a single chunk, newest first, as a ChunkVoxelResponse. Use getChunk instead when you want the packed voxel grid rather than the individual edit log. Requires a valid bearer token; app-scoped tokens are limited to their own app. Read-only. */
|
|
2596
3709
|
getVoxelList: ChunkVoxelResponse;
|
|
2597
|
-
/**
|
|
3710
|
+
/** List every registered GraphQL API server (both management-api and game-api kinds), regardless of health/state. No authentication required. For service discovery; to route clients, prefer activeGraphQLServers (filters to healthy servers). */
|
|
2598
3711
|
graphqlServers: Array<GraphQlServer>;
|
|
3712
|
+
/** List the group/role -> permission-key grants configured on a grid for one group (rows of the `grid_group_grants` input table). These are inputs to the effective ACL, not the materialized result — use `gridUserPermissions` for a specific user's effective keys. Requires app-admin ('manage_apps'). */
|
|
2599
3713
|
gridGroupGrants: Array<GridGroupGrant>;
|
|
3714
|
+
/** Read the permission-key whitelist configured for a grid. An empty list means there is no limit (every active runtime permission may be granted on the grid). Requires app-admin ('manage_apps'). */
|
|
2600
3715
|
gridPermissionLimits: GridPermissionLimits;
|
|
3716
|
+
/** Read one user's effective (materialized) runtime permission keys on a grid — the flattened union of direct and group-derived grants that Buddy enforces, with expired grants excluded. Use this to see what a user can actually do. To inspect the underlying inputs instead, use `gridGroupGrants` (group grants) and `gridPermissionLimits` (the whitelist). Requires app-admin ('manage_apps'). */
|
|
2601
3717
|
gridUserPermissions: GridUserPermissions;
|
|
3718
|
+
/** Lists recorded voxel edits for all chunks within a cubic (Chebyshev) radius of a center chunk, grouped per chunk and ordered by increasing distance, paginated over chunks. Requires a valid bearer token; app-scoped tokens are limited to their own app. Read-only. */
|
|
2602
3719
|
listVoxelUpdatesByDistance: VoxelUpdatesByDistanceResponse;
|
|
3720
|
+
/** Lists recorded voxel edits for a single chunk (optionally only those at/after `since`), newest first. Requires a valid bearer token; app-scoped tokens are limited to their own app. Read-only. */
|
|
2603
3721
|
listVoxels: Array<Voxel>;
|
|
3722
|
+
/** Returns the authenticated user for the bearer game token on this request, or null if the token is missing/invalid. Use this to validate a token and fetch the current player. The token is issued by the Management API login and sent as `Authorization: Bearer <token>` (and, for the udpNotifications WebSocket, in the graphql-transport-ws connection_init payload as `Authorization`). game-api does not issue tokens. */
|
|
2604
3723
|
me: Maybe<User>;
|
|
3724
|
+
/** Lists the roles assigned to a single org member. Requires a valid session token. */
|
|
2605
3725
|
memberRoles: Array<OrgRole>;
|
|
3726
|
+
/** The authenticated caller's own access record for a given app, or null if they have none. Requires authentication. Use this to check whether the current user is entitled to the app and on which tier; inspect status to distinguish active vs revoked. */
|
|
2606
3727
|
myAppAccess: Maybe<AppUserAccess>;
|
|
2607
|
-
/** Apps the caller can see: org member OR active app_user_access. */
|
|
3728
|
+
/** Apps the authenticated caller can see in their account: those owned by an org they are an active member of, OR those where they hold an active app_user_access grant. Requires authentication. Includes apps of any visibility/status (e.g. drafts the caller can access). Ordered newest-first. */
|
|
2608
3729
|
myApps: Array<App>;
|
|
3730
|
+
/** Lists all avatars owned by the authenticated user, including full `publicState` and `privateState` (the caller is always the owner here). Requires a valid bearer game token; takes no arguments. State blobs are base64-encoded binary. Use `userAvatars` to view another user’s avatars (private state is stripped for non-owners). */
|
|
2609
3731
|
myAvatars: Array<AvatarDto>;
|
|
2610
|
-
/** The caller's channels in an app, with their roles and effective channel permissions. */
|
|
3732
|
+
/** The caller's channels in an app, with their roles and effective channel permissions (e.g. whether they hold send_messages). Use this to discover which channels the current user can read/post in. */
|
|
2611
3733
|
myChannels: Array<GroupMembership>;
|
|
3734
|
+
/** Lists the authenticated caller's own checkouts (newest first), across every org and app. Use this for a self-service payment history; use `checkouts` for the cross-tenant super-admin view. Requires an authenticated user. */
|
|
2612
3735
|
myCheckouts: CheckoutsPage;
|
|
3736
|
+
/** Lists the authenticated caller's own checkouts (newest first), across every org and app. Use this for a self-service payment history; use `checkoutsConnection` for the cross-tenant super-admin view. Requires an authenticated user. Relay cursor connection; prefer this over the offset-based myCheckouts. */
|
|
3737
|
+
myCheckoutsConnection: CheckoutsConnection;
|
|
3738
|
+
/**
|
|
3739
|
+
* Lifetime donation totals for the authenticated user, summed across every app. Requires a valid game token. NOTE: donations are management-owned, so in cks-game-api this throws ForbiddenException — call cks-management-api instead.
|
|
3740
|
+
* @deprecated Legacy donation/property-token data; these products are no longer purchasable. Retained for historical records.
|
|
3741
|
+
*/
|
|
2613
3742
|
myDonationData: UserDonationData;
|
|
3743
|
+
/** Lists the authenticated caller's organization memberships. Each entry bundles the org, the caller's effective permission keys, and assigned roles. Requires a valid session token. */
|
|
2614
3744
|
myOrganizations: Array<OrgMembership>;
|
|
3745
|
+
/**
|
|
3746
|
+
* The authenticated user’s property-token balances (available, in use, total). Requires a valid game token. NOTE: property tokens are management-owned, so in cks-game-api this throws ForbiddenException — call cks-management-api instead.
|
|
3747
|
+
* @deprecated Legacy donation/property-token data; these products are no longer purchasable. Retained for historical records.
|
|
3748
|
+
*/
|
|
2615
3749
|
myPropertyTokens: UserPropertyTokenData;
|
|
2616
|
-
/** The caller's teams in an app, with their roles and effective team permissions. */
|
|
3750
|
+
/** The caller's teams in an app, with their roles and effective team permissions. Use this to discover which teams the current user belongs to and what they may do in each. */
|
|
2617
3751
|
myTeams: Array<GroupMembership>;
|
|
3752
|
+
/** List every grid overlapping a chunk-coordinate bounding box, each with the given user's effective permission keys on it. Useful for previewing what a user can do across a region (e.g. around their current position). Requires app-admin ('manage_apps'). */
|
|
2618
3753
|
nearbyGridPermissions: Array<NearbyGridPermissions>;
|
|
3754
|
+
/** Operator only (is_operator). Lists users with is_operator or is_super_admin set, ordered by user id. Read-only. */
|
|
2619
3755
|
operatorUsers: Array<CpOperatorUser>;
|
|
3756
|
+
/** An org's off-session auto-billing configuration (enabled flag, recharge amount, low-water threshold, per-period cap, and last error). Requires the 'view_billing' org permission. */
|
|
2620
3757
|
orgAutoBilling: OrgAutoBilling;
|
|
3758
|
+
/** Full detail for one environment: the environment row plus components, change orders, audit log, secrets, outputs, billing resources, live deploy/destroy progress, and Buddy UDP health. Returns null when no environment with that slug exists for the org. Requires the 'view_environments' org permission. */
|
|
2621
3759
|
orgEnvironment: Maybe<CksEnvironmentDetail>;
|
|
3760
|
+
/** Lists every environment owned by an organization, in any lifecycle state (including destroyed). Summary rows only — use orgEnvironment(slug) for full detail. Requires the 'view_environments' org permission. */
|
|
2622
3761
|
orgEnvironments: Array<CksEnvironment>;
|
|
3762
|
+
/** An org's free shared-app slot quota and how much of it is used. Use before publishAppToShared to know whether the free path applies or a paid planId is needed. Caller must be a member of the org. */
|
|
2623
3763
|
orgFreeAppQuota: FreeAppQuota;
|
|
3764
|
+
/** Lists the members of an organization. Requires the 'manage_members' permission on the org (super admins bypass). */
|
|
2624
3765
|
orgMembers: Array<OrgMember>;
|
|
3766
|
+
/** Lists the org's saved (vaulted) off-session payment methods. Returns metadata only (brand/last4/status), never card numbers. Requires the 'view_billing' org permission. */
|
|
2625
3767
|
orgPaymentMethods: Array<SavedPaymentMethod>;
|
|
2626
3768
|
/** The full seed list of permission keys. Used by the UI to render role editors. */
|
|
2627
3769
|
orgPermissions: Array<OrgPermission>;
|
|
3770
|
+
/** Lists all roles defined in an organization. Requires the 'manage_members' permission on the org (super admins bypass). */
|
|
2628
3771
|
orgRoles: Array<OrgRole>;
|
|
3772
|
+
/** Lists an organization's API tokens (metadata only; secret values are never returned here). Requires the 'manage_tokens' permission on the org (super admins bypass). */
|
|
2629
3773
|
orgTokens: Array<OrgToken>;
|
|
2630
|
-
/** Aggregate
|
|
3774
|
+
/** Aggregate replication/GraphQL byte totals per environment across the org for the time window. Read-only reporting. Requires the 'view_usage' org permission. */
|
|
2631
3775
|
orgUsageByEnvironment: Array<EnvironmentUsageRollupRow>;
|
|
3776
|
+
/** Fetches an organization by id (BigInt as string). Requires a valid session token. Returns null if no such organization exists. */
|
|
2632
3777
|
organization: Maybe<Organization>;
|
|
3778
|
+
/** Fetches an organization by its unique URL slug. Requires a valid session token. Returns null if not found. Use this when you only have the slug; otherwise prefer organization(id). */
|
|
2633
3779
|
organizationBySlug: Maybe<Organization>;
|
|
2634
|
-
/**
|
|
3780
|
+
/** Audit log of inbound payment-provider webhook events (used for idempotent reconciliation of checkouts), newest first. Restricted to super admins; requests from non-super-admins are rejected. */
|
|
2635
3781
|
paymentEvents: PaymentEventsPage;
|
|
3782
|
+
/** Audit log of inbound payment-provider webhook events (used for idempotent reconciliation of checkouts), newest first. Restricted to super admins; requests from non-super-admins are rejected. Relay cursor connection; prefer this over the offset-based paymentEvents. */
|
|
3783
|
+
paymentEventsConnection: PaymentEventsConnection;
|
|
2636
3784
|
/** Public platform discovery. Returns the shared game-api URL clients use for shared-environment apps. No auth required. */
|
|
2637
3785
|
platformConfig: PlatformConfig;
|
|
3786
|
+
/** Lists the app-scoped quota rules explicitly configured for an app (excludes org-, tier-, and free-tier-default quotas). Use `effectiveQuota` to resolve the limit actually applied for a given metric. Requires the 'view_usage' app permission. */
|
|
2638
3787
|
quotasForApp: Array<ServiceQuota>;
|
|
3788
|
+
/** Lists the org-scoped quota rules explicitly configured for an organization (excludes app-, tier-, and free-tier-default quotas). Use `effectiveQuota` to resolve the limit actually applied for a given metric. Requires the 'view_usage' org permission. */
|
|
2639
3789
|
quotasForOrg: Array<ServiceQuota>;
|
|
2640
|
-
/**
|
|
3790
|
+
/** Lists all valid runtime permission keys (e.g. "access", "teleport", "update_voxel_data", "use_voice_chat") that may be assigned to an access tier permissionKeys. PUBLIC: no authentication required. Ordered by the permission bit index. */
|
|
2641
3791
|
runtimePermissions: Array<Scalars['String']['output']>;
|
|
2642
|
-
/**
|
|
3792
|
+
/** Pick a low-load game server for a native (direct-UDP) client to connect to: returns a random server from the least-loaded ~20% (by client count) of ReadyForClients servers to spread load. Requires a bearer game token; as a side effect it authorizes that token’s P2P session with the chosen Buddy so the native client’s spatial datagrams are accepted. Connect the native client to the returned ip4 and clientPort. Browser clients should instead use the UDP proxy (connectUdpProxy / udpNotifications) and do not need this. */
|
|
2643
3793
|
serverWithLeastClients: ServerStatus;
|
|
2644
3794
|
/** Public catalog of paid shared-environment app-slot subscription plans. */
|
|
2645
3795
|
sharedEnvPlans: Array<SharedEnvPlan>;
|
|
2646
|
-
/** Fetch one team by id. */
|
|
3796
|
+
/** Fetch one team by id. Errors if the id is not a team. */
|
|
2647
3797
|
team: Group;
|
|
2648
|
-
/** List the members of a team. */
|
|
3798
|
+
/** List the members of a team (including pending requests, each with their status and roles). */
|
|
2649
3799
|
teamMembers: Array<GroupMember>;
|
|
2650
|
-
/** The current team creation/membership policy for an app. */
|
|
3800
|
+
/** The current team creation/membership policy for an app (who may create teams and the default membership policy of new teams). Falls back to app defaults when unset. */
|
|
2651
3801
|
teamPolicy: AppGroupPolicy;
|
|
2652
|
-
/** List the roles of a team. */
|
|
3802
|
+
/** List the roles of a team, including the system 'leader' role and the group-management permission keys each role grants. */
|
|
2653
3803
|
teamRoles: Array<GroupRole>;
|
|
2654
|
-
/** List active teams in an app. */
|
|
3804
|
+
/** List all active teams in an app (not just the caller's). */
|
|
2655
3805
|
teams: Array<Group>;
|
|
2656
3806
|
/** UDP proxy session status for the game token on this request. Without a game token, returns connected: false. Does not open a session—use udpNotifications or connectUdpProxy. */
|
|
2657
3807
|
udpProxyConnectionStatus: UdpProxyConnectionStatus;
|
|
3808
|
+
/** Looks up a single user by id. Requires a valid game token. NOTE: the users table is management-owned, so in cks-game-api this throws ForbiddenException directing you to call cks-management-api directly; use that API to read arbitrary users. Use `me` to read the caller’s own profile. */
|
|
2658
3809
|
user: Maybe<User>;
|
|
3810
|
+
/** Reads the authenticated user’s per-app state for `appId` (keyed by appId+userId). Requires a valid game token; only the caller’s own state is returned. Returns null when no row exists. `state` is base64-encoded binary. */
|
|
2659
3811
|
userAppState: Maybe<UserAppState>;
|
|
3812
|
+
/** Lists all per-app state rows for the authenticated user, ordered newest-updated first. Requires a valid game token; only the caller’s own states are returned. `state` blobs are base64-encoded binary. */
|
|
2660
3813
|
userAppStates: Array<UserAppState>;
|
|
2661
|
-
/**
|
|
3814
|
+
/** Lists the avatars owned by `userId`. Requires a valid game token. Owner-aware: when the caller is NOT the owner, each avatar’s `privateState` is stripped (returned null); `publicState` is always included. State blobs are base64-encoded binary. */
|
|
2662
3815
|
userAvatars: Array<Avatar>;
|
|
2663
|
-
/** Super admin only. Paginated user search
|
|
3816
|
+
/** Super admin only. Paginated user search across email, gamertag, disambiguation, and exact user_id. Relay cursor connection; prefer this over the offset-based usersPaginated. */
|
|
3817
|
+
usersConnection: UsersConnection;
|
|
3818
|
+
/** SUPER-ADMIN ONLY paginated user search; replaces the legacy `users`/`usersByGamertag`/`usersByEmail` queries. `query` is ILIKE-prefix matched against email, gamertag, and disambiguation, plus an exact user_id match. Requires a super-admin bearer game token. NOTE: in cks-game-api super-admin checks always fail and the users table is management-owned, so this is effectively served only by cks-management-api. */
|
|
2664
3819
|
usersPaginated: UsersPage;
|
|
2665
|
-
/**
|
|
3820
|
+
/** Current server version and the minimum client version the server accepts. No authentication required. Compare your client build against minimumClientVersion before connecting and prompt an update if it is too old. */
|
|
2666
3821
|
versionInfo: ServerVersionInfo;
|
|
3822
|
+
/** Returns entries from the immutable voxel edit history (voxel_updates_history) for an app, newest first, optionally filtered by user id and a changed-at time window. Returns up to `limit` entries (DEFAULT 500, max 50000) starting at `offset`. Requires a valid bearer token; app-scoped tokens are limited to their own app. Read-only. */
|
|
2667
3823
|
voxelUpdateHistory: Array<VoxelUpdateHistoryEvent>;
|
|
3824
|
+
/** Relay-style cursor-paginated version of `voxelUpdateHistory`: returns entries from the immutable voxel edit history (voxel_updates_history) for an app, newest first, optionally filtered by user id and a changed-at time window. Page forward with `first` (default 50, max 200) and `after` (an opaque cursor from a previous page’s `pageInfo.endCursor`); the legacy `limit`/`offset` args are ignored on this query. Requires a valid bearer token; app-scoped tokens are limited to their own app. Read-only. */
|
|
3825
|
+
voxelUpdateHistoryConnection: VoxelUpdateHistoryConnection;
|
|
3826
|
+
/** Returns the organization's wallet, creating an empty zero-balance wallet on first access if one does not yet exist (so it never returns null). Use it to read the current balance and currency before charging usage or topping up. Requires the 'view_billing' org permission. */
|
|
2668
3827
|
walletBalance: OrgWallet;
|
|
3828
|
+
/** Lists the organization's wallet transactions (credits and debits), ordered newest first. Use it to audit how the balance changed over time. Requires the 'view_billing' org permission. */
|
|
2669
3829
|
walletTransactions: Array<WalletTransaction>;
|
|
3830
|
+
/** Lists the organization's wallet transactions (credits and debits), ordered newest first. Use it to audit how the balance changed over time. Requires the 'view_billing' org permission. Relay cursor connection; prefer this over the offset-based walletTransactions. */
|
|
3831
|
+
walletTransactionsConnection: WalletTransactionsConnection;
|
|
2670
3832
|
};
|
|
2671
3833
|
export type QueryActorArgs = {
|
|
2672
3834
|
uuid: Scalars['String']['input'];
|
|
@@ -2674,6 +3836,11 @@ export type QueryActorArgs = {
|
|
|
2674
3836
|
export type QueryActorsArgs = {
|
|
2675
3837
|
filter?: InputMaybe<ActorFilterInput>;
|
|
2676
3838
|
};
|
|
3839
|
+
export type QueryActorsConnectionArgs = {
|
|
3840
|
+
after?: InputMaybe<Scalars['String']['input']>;
|
|
3841
|
+
filter?: InputMaybe<ActorFilterInput>;
|
|
3842
|
+
first?: InputMaybe<Scalars['Int']['input']>;
|
|
3843
|
+
};
|
|
2677
3844
|
export type QueryAppArgs = {
|
|
2678
3845
|
appId: Scalars['BigInt']['input'];
|
|
2679
3846
|
};
|
|
@@ -2691,6 +3858,9 @@ export type QueryAppBySlugArgs = {
|
|
|
2691
3858
|
appSlug: Scalars['String']['input'];
|
|
2692
3859
|
orgSlug: Scalars['String']['input'];
|
|
2693
3860
|
};
|
|
3861
|
+
export type QueryAppGrantMemberCandidatesArgs = {
|
|
3862
|
+
appId: Scalars['BigInt']['input'];
|
|
3863
|
+
};
|
|
2694
3864
|
export type QueryAppGraphqlOperationsArgs = {
|
|
2695
3865
|
appId: Scalars['BigInt']['input'];
|
|
2696
3866
|
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
@@ -2715,11 +3885,22 @@ export type QueryAppUserAccessByAppArgs = {
|
|
|
2715
3885
|
offset?: InputMaybe<Scalars['Int']['input']>;
|
|
2716
3886
|
status?: InputMaybe<Scalars['String']['input']>;
|
|
2717
3887
|
};
|
|
3888
|
+
export type QueryAppUserAccessConnectionArgs = {
|
|
3889
|
+
after?: InputMaybe<Scalars['String']['input']>;
|
|
3890
|
+
appId: Scalars['BigInt']['input'];
|
|
3891
|
+
first?: InputMaybe<Scalars['Int']['input']>;
|
|
3892
|
+
status?: InputMaybe<Scalars['String']['input']>;
|
|
3893
|
+
};
|
|
2718
3894
|
export type QueryAppsArgs = {
|
|
2719
3895
|
filter?: InputMaybe<AppMarketplaceFilterInput>;
|
|
2720
3896
|
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
2721
3897
|
offset?: InputMaybe<Scalars['Int']['input']>;
|
|
2722
3898
|
};
|
|
3899
|
+
export type QueryAppsConnectionArgs = {
|
|
3900
|
+
after?: InputMaybe<Scalars['String']['input']>;
|
|
3901
|
+
filter?: InputMaybe<AppMarketplaceFilterInput>;
|
|
3902
|
+
first?: InputMaybe<Scalars['Int']['input']>;
|
|
3903
|
+
};
|
|
2723
3904
|
export type QueryAppsForOrgArgs = {
|
|
2724
3905
|
orgSlug: Scalars['String']['input'];
|
|
2725
3906
|
};
|
|
@@ -2757,6 +3938,11 @@ export type QueryCheckoutsArgs = {
|
|
|
2757
3938
|
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
2758
3939
|
offset?: InputMaybe<Scalars['Int']['input']>;
|
|
2759
3940
|
};
|
|
3941
|
+
export type QueryCheckoutsConnectionArgs = {
|
|
3942
|
+
after?: InputMaybe<Scalars['String']['input']>;
|
|
3943
|
+
filter?: InputMaybe<CheckoutFilterInput>;
|
|
3944
|
+
first?: InputMaybe<Scalars['Int']['input']>;
|
|
3945
|
+
};
|
|
2760
3946
|
export type QueryCpAuditArgs = {
|
|
2761
3947
|
environmentId?: InputMaybe<Scalars['String']['input']>;
|
|
2762
3948
|
limit?: Scalars['Int']['input'];
|
|
@@ -2846,6 +4032,15 @@ export type QueryGameModelEventsArgs = {
|
|
|
2846
4032
|
sessionId?: InputMaybe<Scalars['String']['input']>;
|
|
2847
4033
|
success?: InputMaybe<Scalars['Boolean']['input']>;
|
|
2848
4034
|
};
|
|
4035
|
+
export type QueryGameModelEventsConnectionArgs = {
|
|
4036
|
+
after?: InputMaybe<Scalars['String']['input']>;
|
|
4037
|
+
appId: Scalars['BigInt']['input'];
|
|
4038
|
+
first?: InputMaybe<Scalars['Int']['input']>;
|
|
4039
|
+
functionName?: InputMaybe<Scalars['String']['input']>;
|
|
4040
|
+
selfContainerId?: InputMaybe<Scalars['String']['input']>;
|
|
4041
|
+
sessionId?: InputMaybe<Scalars['String']['input']>;
|
|
4042
|
+
success?: InputMaybe<Scalars['Boolean']['input']>;
|
|
4043
|
+
};
|
|
2849
4044
|
export type QueryGameModelFeaturesArgs = {
|
|
2850
4045
|
appId: Scalars['BigInt']['input'];
|
|
2851
4046
|
};
|
|
@@ -2931,6 +4126,10 @@ export type QueryMyCheckoutsArgs = {
|
|
|
2931
4126
|
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
2932
4127
|
offset?: InputMaybe<Scalars['Int']['input']>;
|
|
2933
4128
|
};
|
|
4129
|
+
export type QueryMyCheckoutsConnectionArgs = {
|
|
4130
|
+
after?: InputMaybe<Scalars['String']['input']>;
|
|
4131
|
+
first?: InputMaybe<Scalars['Int']['input']>;
|
|
4132
|
+
};
|
|
2934
4133
|
export type QueryMyTeamsArgs = {
|
|
2935
4134
|
appId: Scalars['BigInt']['input'];
|
|
2936
4135
|
};
|
|
@@ -2976,6 +4175,10 @@ export type QueryPaymentEventsArgs = {
|
|
|
2976
4175
|
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
2977
4176
|
offset?: InputMaybe<Scalars['Int']['input']>;
|
|
2978
4177
|
};
|
|
4178
|
+
export type QueryPaymentEventsConnectionArgs = {
|
|
4179
|
+
after?: InputMaybe<Scalars['String']['input']>;
|
|
4180
|
+
first?: InputMaybe<Scalars['Int']['input']>;
|
|
4181
|
+
};
|
|
2979
4182
|
export type QueryQuotasForAppArgs = {
|
|
2980
4183
|
appId: Scalars['BigInt']['input'];
|
|
2981
4184
|
};
|
|
@@ -3006,6 +4209,11 @@ export type QueryUserAppStateArgs = {
|
|
|
3006
4209
|
export type QueryUserAvatarsArgs = {
|
|
3007
4210
|
userId: Scalars['BigInt']['input'];
|
|
3008
4211
|
};
|
|
4212
|
+
export type QueryUsersConnectionArgs = {
|
|
4213
|
+
after?: InputMaybe<Scalars['String']['input']>;
|
|
4214
|
+
first?: InputMaybe<Scalars['Int']['input']>;
|
|
4215
|
+
query?: InputMaybe<Scalars['String']['input']>;
|
|
4216
|
+
};
|
|
3009
4217
|
export type QueryUsersPaginatedArgs = {
|
|
3010
4218
|
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
3011
4219
|
offset?: InputMaybe<Scalars['Int']['input']>;
|
|
@@ -3019,6 +4227,16 @@ export type QueryVoxelUpdateHistoryArgs = {
|
|
|
3019
4227
|
to?: InputMaybe<Scalars['DateTime']['input']>;
|
|
3020
4228
|
userId?: InputMaybe<Scalars['BigInt']['input']>;
|
|
3021
4229
|
};
|
|
4230
|
+
export type QueryVoxelUpdateHistoryConnectionArgs = {
|
|
4231
|
+
after?: InputMaybe<Scalars['String']['input']>;
|
|
4232
|
+
appId: Scalars['BigInt']['input'];
|
|
4233
|
+
first?: InputMaybe<Scalars['Int']['input']>;
|
|
4234
|
+
from?: InputMaybe<Scalars['DateTime']['input']>;
|
|
4235
|
+
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
4236
|
+
offset?: InputMaybe<Scalars['Int']['input']>;
|
|
4237
|
+
to?: InputMaybe<Scalars['DateTime']['input']>;
|
|
4238
|
+
userId?: InputMaybe<Scalars['BigInt']['input']>;
|
|
4239
|
+
};
|
|
3022
4240
|
export type QueryWalletBalanceArgs = {
|
|
3023
4241
|
orgId: Scalars['BigInt']['input'];
|
|
3024
4242
|
};
|
|
@@ -3027,143 +4245,248 @@ export type QueryWalletTransactionsArgs = {
|
|
|
3027
4245
|
offset?: InputMaybe<Scalars['Int']['input']>;
|
|
3028
4246
|
orgId: Scalars['BigInt']['input'];
|
|
3029
4247
|
};
|
|
3030
|
-
|
|
4248
|
+
export type QueryWalletTransactionsConnectionArgs = {
|
|
4249
|
+
after?: InputMaybe<Scalars['String']['input']>;
|
|
4250
|
+
first?: InputMaybe<Scalars['Int']['input']>;
|
|
4251
|
+
orgId: Scalars['BigInt']['input'];
|
|
4252
|
+
};
|
|
4253
|
+
/** Realtime lifecycle/error event delivered on the udpNotifications subscription when a session cannot be opened or correctly scoped. It is a control frame — it carries no appId, so it is never dropped by the per-app fan-out filter — and it is terminal: the subscription completes immediately after emitting it, so the client must fix the cause and resubscribe. Branch on `code`; use `retryable` to decide whether retrying can succeed. A healthy subscription never emits this type; it yields game-server notifications/responses instead. */
|
|
3031
4254
|
export type RealtimeConnectionEvent = {
|
|
3032
4255
|
__typename?: 'RealtimeConnectionEvent';
|
|
4256
|
+
/** Machine-readable failure reason. Branch on this (not on `message`). Known values: AUTH_REQUIRED — no valid bearer game token was presented on the WS connection_init / request; authenticate via the Management API and resubscribe (not retryable as-is). APP_ID_REQUIRED — the subscription was opened without an appId scope; udpNotifications must be app-scoped (game tokens are app-agnostic and one socket is shared across apps), so pass the app you are playing and resubscribe (not retryable as-is). UDP_PROXY_CONNECTION_FAILED — the proxy could not open or keep a UDP socket to the selected game server (transient/infrastructure); back off and resubscribe (retryable). `message` carries the specific underlying detail for this case. */
|
|
3033
4257
|
code: Scalars['String']['output'];
|
|
4258
|
+
/** Human-readable explanation of the failure, suitable for logs and developer-facing surfaces. Do not parse or branch on this text — branch on `code` instead. */
|
|
3034
4259
|
message: Scalars['String']['output'];
|
|
4260
|
+
/** Whether resubscribing without changing anything may succeed. true for transient failures (e.g. UDP_PROXY_CONNECTION_FAILED) — back off and retry. false for caller errors that must be fixed first (AUTH_REQUIRED needs a fresh/valid game token; APP_ID_REQUIRED needs an appId-scoped subscription). */
|
|
3035
4261
|
retryable: Scalars['Boolean']['output'];
|
|
4262
|
+
/** Lifecycle status of the session attempt. Currently always "failed" — this event is only emitted when udpNotifications could not establish (or had to tear down) the underlying UDP proxy session. */
|
|
3036
4263
|
status: Scalars['String']['output'];
|
|
3037
4264
|
};
|
|
3038
|
-
/**
|
|
4265
|
+
/** How redeployEnvironment rolls out a new version. Omit for automatic routing (services-only when active runtime VMs exist, otherwise full). */
|
|
3039
4266
|
export declare enum RedeployDeployMode {
|
|
4267
|
+
/** Replace the runtime VMs (reprovision game-api / Buddy instances). Slower; use when the box image or infra must change. */
|
|
3040
4268
|
Full = "FULL",
|
|
4269
|
+
/** Update services in place on the existing runtime VMs (no VM replacement). Faster; only valid when active runtime VMs exist. */
|
|
3041
4270
|
Services = "SERVICES"
|
|
3042
4271
|
}
|
|
3043
4272
|
export type RedeployEnvironmentInput = {
|
|
4273
|
+
/** How to roll out the version. When omitted, routes to services-only when active runtime VMs exist, otherwise full. */
|
|
3044
4274
|
deployMode?: InputMaybe<RedeployDeployMode>;
|
|
3045
4275
|
orgId: Scalars['BigInt']['input'];
|
|
3046
4276
|
slug: Scalars['String']['input'];
|
|
4277
|
+
/** Target environment version. When omitted, redeploys to the latest available version for the class. Must be available, deployable by this class, and not older than the current version (forward-only — no rollback). */
|
|
3047
4278
|
version?: InputMaybe<Scalars['String']['input']>;
|
|
3048
4279
|
};
|
|
3049
4280
|
export type RegisterUserInput = {
|
|
4281
|
+
/** Email for the new account; the confirmation email is sent here. */
|
|
3050
4282
|
email: Scalars['String']['input'];
|
|
4283
|
+
/** Optional initial public gamertag (min 3 characters). Can be set later via updateGamertag. */
|
|
3051
4284
|
gamertag?: InputMaybe<Scalars['String']['input']>;
|
|
4285
|
+
/** Password for the new account (min 8 characters). */
|
|
3052
4286
|
password: Scalars['String']['input'];
|
|
3053
4287
|
};
|
|
3054
4288
|
export type ResetPasswordInput = {
|
|
4289
|
+
/** New password to set (min 8 characters). */
|
|
3055
4290
|
newPassword: Scalars['String']['input'];
|
|
4291
|
+
/** Password-reset token from the emailed reset link. */
|
|
3056
4292
|
token: Scalars['String']['input'];
|
|
3057
4293
|
};
|
|
3058
4294
|
export type RestartEnvironmentServicesInput = {
|
|
4295
|
+
/** Organization id (BigInt) that owns the environment. */
|
|
3059
4296
|
orgId: Scalars['BigInt']['input'];
|
|
4297
|
+
/** Slug of the environment whose Buddy service should be SSH-restarted. */
|
|
3060
4298
|
slug: Scalars['String']['input'];
|
|
3061
4299
|
};
|
|
3062
4300
|
export type ResumeEnvironmentInput = {
|
|
4301
|
+
/** Organization id (BigInt) that owns the environment. */
|
|
3063
4302
|
orgId: Scalars['BigInt']['input'];
|
|
4303
|
+
/** Slug of the suspended/grace environment to resume (billingStatus must be grace, suspension_queued, suspended, or resume_failed). */
|
|
3064
4304
|
slug: Scalars['String']['input'];
|
|
3065
4305
|
};
|
|
4306
|
+
/** Revoke a user's direct grants on a grid (deletes from the grid_user_direct_grants input table). */
|
|
3066
4307
|
export type RevokeGridPermissionsInput = {
|
|
4308
|
+
/** The app (tenant) that owns the grid. */
|
|
3067
4309
|
appId: Scalars['BigInt']['input'];
|
|
4310
|
+
/** The grid to revoke on. */
|
|
3068
4311
|
gridId: Scalars['BigInt']['input'];
|
|
4312
|
+
/** Optional idempotency key. Recommended for retries: replaying with the same key and identical input returns the first result instead of re-applying; the same key with different input returns IDEMPOTENCY_CONFLICT. Keys expire after 24h. */
|
|
4313
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
4314
|
+
/** Optional subset of permission key strings to revoke. Omit to revoke ALL of the user's direct grants on this grid. Each key must be a known runtime permission key, unique, and at most 64 chars. */
|
|
3069
4315
|
permissionKeys?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
4316
|
+
/** The user whose direct grants to revoke. */
|
|
3070
4317
|
userId: Scalars['BigInt']['input'];
|
|
3071
4318
|
};
|
|
4319
|
+
/** Revoke a group's (optionally one role's) grants on a grid (deletes from the grid_group_grants input table). */
|
|
3072
4320
|
export type RevokeGroupFromGridInput = {
|
|
4321
|
+
/** The app (tenant) that owns the grid. */
|
|
3073
4322
|
appId: Scalars['BigInt']['input'];
|
|
4323
|
+
/** The grid to revoke on. */
|
|
3074
4324
|
gridId: Scalars['BigInt']['input'];
|
|
4325
|
+
/** The group whose grants to revoke. */
|
|
3075
4326
|
groupId: Scalars['BigInt']['input'];
|
|
4327
|
+
/** Optional role to target. Must match the role the grant was created with (omit to target the group-wide grant, i.e. the grant with no role). */
|
|
3076
4328
|
groupRoleId?: InputMaybe<Scalars['BigInt']['input']>;
|
|
3077
4329
|
/** Optional subset of keys to revoke. Omit to revoke all of the group/role grants on this grid. */
|
|
3078
4330
|
permissionKeys?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
3079
4331
|
};
|
|
4332
|
+
/** Per-voxel outcome of a rollbackVoxelUpdates call. In dry-run mode this describes what WOULD happen; otherwise it reports what was applied. One result is returned per affected voxel. */
|
|
3080
4333
|
export type RollbackVoxelEventResult = {
|
|
3081
4334
|
__typename?: 'RollbackVoxelEventResult';
|
|
4335
|
+
/** Id of the app this result belongs to (decimal string). */
|
|
3082
4336
|
appId: Scalars['BigInt']['output'];
|
|
4337
|
+
/** True if the change was actually written; false in dry-run mode or when the voxel was skipped. */
|
|
3083
4338
|
applied: Scalars['Boolean']['output'];
|
|
4339
|
+
/** Address of the chunk that contains the affected voxel. */
|
|
3084
4340
|
coordinates: ChunkCoordinates;
|
|
4341
|
+
/** Voxel type immediately before the rollback (the current value), or null. */
|
|
3085
4342
|
fromVoxelType: Maybe<Scalars['Int']['output']>;
|
|
4343
|
+
/** Local position of the affected voxel within its chunk. */
|
|
3086
4344
|
location: VoxelCoordinates;
|
|
4345
|
+
/** The action computed for this voxel by the rollback (the revert operation to perform). */
|
|
3087
4346
|
plannedAction: Scalars['String']['output'];
|
|
4347
|
+
/** Human-readable explanation when a voxel is skipped or an action is taken, or null. */
|
|
3088
4348
|
reason: Maybe<Scalars['String']['output']>;
|
|
4349
|
+
/** Voxel type the voxel would be / was reverted to, or null. */
|
|
3089
4350
|
toVoxelType: Maybe<Scalars['Int']['output']>;
|
|
3090
4351
|
};
|
|
4352
|
+
/** Payload for rollbackVoxelUpdates: selects the voxel edits made by one user in one app within a time window to revert. */
|
|
3091
4353
|
export type RollbackVoxelUpdatesInput = {
|
|
4354
|
+
/** Id of the app whose voxels to roll back (decimal string). */
|
|
3092
4355
|
appId: Scalars['BigInt']['input'];
|
|
4356
|
+
/** When true (the DEFAULT), only computes and returns the planned reversions WITHOUT writing anything; set false to actually apply the rollback (DESTRUCTIVE — mutates world state). */
|
|
3093
4357
|
dryRun?: Scalars['Boolean']['input'];
|
|
4358
|
+
/** Inclusive start of the time window of edits to revert. */
|
|
3094
4359
|
from: Scalars['DateTime']['input'];
|
|
4360
|
+
/** Optional idempotency key. Recommended for retries: replaying with the same key and identical input returns the first result instead of re-applying; the same key with different input returns IDEMPOTENCY_CONFLICT. Keys expire after 24h. */
|
|
4361
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
4362
|
+
/** Inclusive end of the time window of edits to revert. */
|
|
3095
4363
|
to: Scalars['DateTime']['input'];
|
|
4364
|
+
/** Id of the user (decimal string) whose edits within the window will be reverted. */
|
|
3096
4365
|
userId: Scalars['BigInt']['input'];
|
|
3097
4366
|
};
|
|
3098
4367
|
/** A saved (vaulted) off-session payment method. */
|
|
3099
4368
|
export type SavedPaymentMethod = {
|
|
3100
4369
|
__typename?: 'SavedPaymentMethod';
|
|
4370
|
+
/** Card brand, e.g. 'visa'. Null for non-card methods. */
|
|
3101
4371
|
brand: Maybe<Scalars['String']['output']>;
|
|
4372
|
+
/** True when this is the org default method charged off-session. */
|
|
3102
4373
|
isDefault: Scalars['Boolean']['output'];
|
|
4374
|
+
/** Last 4 digits of the card, if applicable. */
|
|
3103
4375
|
last4: Maybe<Scalars['String']['output']>;
|
|
4376
|
+
/** Payment method id (BigInt). */
|
|
3104
4377
|
paymentMethodId: Scalars['BigInt']['output'];
|
|
4378
|
+
/** Payment provider, e.g. 'stripe'. */
|
|
3105
4379
|
provider: Scalars['String']['output'];
|
|
4380
|
+
/** Method status, e.g. 'active' or 'expired'. */
|
|
3106
4381
|
status: Scalars['String']['output'];
|
|
3107
4382
|
};
|
|
4383
|
+
/** A container (instance) to create as part of a seed. */
|
|
3108
4384
|
export type SeedContainerInput = {
|
|
4385
|
+
/** Optional description. */
|
|
3109
4386
|
description?: InputMaybe<Scalars['String']['input']>;
|
|
4387
|
+
/** Human-friendly display name. */
|
|
3110
4388
|
displayName: Scalars['String']['input'];
|
|
4389
|
+
/** JSON object of metadata. */
|
|
3111
4390
|
metadataJson?: InputMaybe<Scalars['String']['input']>;
|
|
4391
|
+
/** Optional owning user id. */
|
|
3112
4392
|
ownerUserId?: InputMaybe<Scalars['BigInt']['input']>;
|
|
4393
|
+
/** Initial property values for the container. */
|
|
3113
4394
|
properties?: InputMaybe<Array<SeedPropertyInput>>;
|
|
3114
4395
|
/** Developer-assigned id used only for edge references in this seed. */
|
|
3115
4396
|
tempId: Scalars['String']['input'];
|
|
4397
|
+
/** The container type to instantiate. */
|
|
3116
4398
|
typeName: Scalars['String']['input'];
|
|
3117
4399
|
};
|
|
4400
|
+
/** A container type to create as part of a seed. */
|
|
3118
4401
|
export type SeedContainerTypeInput = {
|
|
4402
|
+
/** public | owner | hidden default for this type's properties. */
|
|
3119
4403
|
defaultPropertyVisibility?: InputMaybe<Scalars['String']['input']>;
|
|
4404
|
+
/** Optional description of the type. */
|
|
3120
4405
|
description?: InputMaybe<Scalars['String']['input']>;
|
|
4406
|
+
/** Human-friendly display name. */
|
|
3121
4407
|
displayName: Scalars['String']['input'];
|
|
4408
|
+
/** admin | member | owner (who may instantiate this type). */
|
|
3122
4409
|
instantiableBy?: InputMaybe<Scalars['String']['input']>;
|
|
4410
|
+
/** JSON object of metadata. */
|
|
3123
4411
|
metadataJson?: InputMaybe<Scalars['String']['input']>;
|
|
4412
|
+
/** Stable type name (unique per app). */
|
|
3124
4413
|
typeName: Scalars['String']['input'];
|
|
3125
4414
|
};
|
|
4415
|
+
/** An edge to create between two seeded containers (by temp id). */
|
|
3126
4416
|
export type SeedEdgeInput = {
|
|
4417
|
+
/** Source container temp_id (from this seed). */
|
|
3127
4418
|
fromTempId: Scalars['String']['input'];
|
|
4419
|
+
/** JSON object of edge metadata. */
|
|
3128
4420
|
metadataJson?: InputMaybe<Scalars['String']['input']>;
|
|
4421
|
+
/** The relationship type label. */
|
|
3129
4422
|
relationshipType: Scalars['String']['input'];
|
|
4423
|
+
/** Target container temp_id (from this seed). */
|
|
3130
4424
|
toTempId: Scalars['String']['input'];
|
|
4425
|
+
/** Optional edge weight. */
|
|
3131
4426
|
weight?: InputMaybe<Scalars['Float']['input']>;
|
|
3132
4427
|
};
|
|
4428
|
+
/** A function to create as part of a seed. */
|
|
3133
4429
|
export type SeedFunctionInput = {
|
|
4430
|
+
/** Optional container type to bind to (omit for a global function). */
|
|
3134
4431
|
containerTypeName?: InputMaybe<Scalars['String']['input']>;
|
|
4432
|
+
/** Optional description of the function. */
|
|
3135
4433
|
description?: InputMaybe<Scalars['String']['input']>;
|
|
4434
|
+
/** JSON-encoded invoke-policy rule tree (authority requirements). */
|
|
3136
4435
|
invokePolicyJson?: InputMaybe<Scalars['String']['input']>;
|
|
4436
|
+
/** player | server | internal */
|
|
3137
4437
|
invokeScope?: InputMaybe<Scalars['String']['input']>;
|
|
4438
|
+
/** The property writes the function performs. */
|
|
3138
4439
|
mutations?: InputMaybe<Array<FunctionMutationInput>>;
|
|
4440
|
+
/** Function name (unique per app). */
|
|
3139
4441
|
name: Scalars['String']['input'];
|
|
4442
|
+
/** Typed parameters the function accepts. */
|
|
3140
4443
|
parameters?: InputMaybe<Array<FunctionParamInput>>;
|
|
4444
|
+
/** Optional expression whose value becomes the invoke result. */
|
|
3141
4445
|
returnExpression?: InputMaybe<Scalars['String']['input']>;
|
|
4446
|
+
/** Optional declared return value type. */
|
|
3142
4447
|
returnType?: InputMaybe<Scalars['String']['input']>;
|
|
3143
4448
|
};
|
|
4449
|
+
/** Bulk-create game-model definitions and optional instances in one transaction (model init/import). */
|
|
3144
4450
|
export type SeedGameModelInput = {
|
|
4451
|
+
/** The app (tenant) to seed into. */
|
|
3145
4452
|
appId: Scalars['BigInt']['input'];
|
|
4453
|
+
/** Container types to create. */
|
|
3146
4454
|
containerTypes?: InputMaybe<Array<SeedContainerTypeInput>>;
|
|
4455
|
+
/** Containers (instances) to create. */
|
|
3147
4456
|
containers?: InputMaybe<Array<SeedContainerInput>>;
|
|
4457
|
+
/** Edges to create between seeded containers. */
|
|
3148
4458
|
edges?: InputMaybe<Array<SeedEdgeInput>>;
|
|
4459
|
+
/** Functions to create. */
|
|
3149
4460
|
functions?: InputMaybe<Array<SeedFunctionInput>>;
|
|
4461
|
+
/** Property definitions to create. */
|
|
3150
4462
|
propertyDefinitions?: InputMaybe<Array<SeedPropertyDefInput>>;
|
|
3151
4463
|
/** Optional session to seed instances into (NULL = app-global). */
|
|
3152
4464
|
sessionId?: InputMaybe<Scalars['String']['input']>;
|
|
3153
4465
|
};
|
|
4466
|
+
/** A property definition to create as part of a seed. */
|
|
3154
4467
|
export type SeedPropertyDefInput = {
|
|
4468
|
+
/** The container type to define the property on. */
|
|
3155
4469
|
containerTypeName: Scalars['String']['input'];
|
|
4470
|
+
/** JSON-encoded default value. */
|
|
3156
4471
|
defaultValueJson?: InputMaybe<Scalars['String']['input']>;
|
|
4472
|
+
/** Optional description of the property. */
|
|
3157
4473
|
description?: InputMaybe<Scalars['String']['input']>;
|
|
4474
|
+
/** Property key (unique within the type). */
|
|
3158
4475
|
key: Scalars['String']['input'];
|
|
4476
|
+
/** int | float | string | bool | array | object | container_ref */
|
|
3159
4477
|
valueType: Scalars['String']['input'];
|
|
4478
|
+
/** public | owner | hidden */
|
|
3160
4479
|
visibility?: InputMaybe<Scalars['String']['input']>;
|
|
4480
|
+
/** function | owner | admin */
|
|
3161
4481
|
writable?: InputMaybe<Scalars['String']['input']>;
|
|
3162
4482
|
};
|
|
4483
|
+
/** An initial property value for a seeded container. */
|
|
3163
4484
|
export type SeedPropertyInput = {
|
|
4485
|
+
/** Property key. */
|
|
3164
4486
|
key: Scalars['String']['input'];
|
|
3165
4487
|
/** JSON-encoded value. */
|
|
3166
4488
|
valueJson: Scalars['String']['input'];
|
|
4489
|
+
/** Value type of the value being set. */
|
|
3167
4490
|
valueType: Scalars['String']['input'];
|
|
3168
4491
|
};
|
|
3169
4492
|
/** Notification received when the server sends a custom event. Received via the udpNotifications subscription. */
|
|
@@ -3192,35 +4515,60 @@ export type ServerEventNotification = {
|
|
|
3192
4515
|
/** The unique identifier of the object controlling this event. */
|
|
3193
4516
|
uuid: Scalars['String']['output'];
|
|
3194
4517
|
};
|
|
3195
|
-
/**
|
|
4518
|
+
/** Lifecycle state of a game/GraphQL server in the fleet. Only ReadyForClients servers should receive new client connections; serverWithLeastClients and activeGraphQLServers already filter to healthy servers. */
|
|
3196
4519
|
export declare enum ServerState {
|
|
4520
|
+
/** Not running or unreachable (e.g. crashed or missed heartbeats). */
|
|
3197
4521
|
Offline = "Offline",
|
|
4522
|
+
/** Healthy and accepting client traffic. The only state safe to route to. */
|
|
3198
4523
|
ReadyForClients = "ReadyForClients",
|
|
4524
|
+
/** Booting / not yet ready: registered but still initializing; do not route client traffic here. */
|
|
3199
4525
|
Starting = "Starting",
|
|
4526
|
+
/** Draining / shutting down: finishing in-flight work; do not send new traffic. */
|
|
3200
4527
|
Stopping = "Stopping"
|
|
3201
4528
|
}
|
|
4529
|
+
/** Live status and load/telemetry for one UDP game server (Buddy) in the fleet. Returned by serverWithLeastClients (which picks a low-load ReadyForClients server). Throughput metrics are per-second samples from the last reporting window and are null until first reported. */
|
|
3202
4530
|
export type ServerStatus = {
|
|
3203
4531
|
__typename?: 'ServerStatus';
|
|
4532
|
+
/** UDP port that native clients send spatial datagrams to (typically 9091). Browser clients do not use this directly — they reach the server through the UDP proxy / udpNotifications. */
|
|
3204
4533
|
clientPort: Scalars['Int']['output'];
|
|
4534
|
+
/** Bytes per second received from clients in the last reporting window. Null until reported. */
|
|
3205
4535
|
clientRecvBytesPerSec: Maybe<Scalars['Float']['output']>;
|
|
4536
|
+
/** Messages per second received from clients in the last reporting window. Null until reported. */
|
|
3206
4537
|
clientRecvMsgsPerSec: Maybe<Scalars['Float']['output']>;
|
|
4538
|
+
/** Bytes per second sent to clients in the last reporting window. Null until reported. */
|
|
3207
4539
|
clientSendBytesPerSec: Maybe<Scalars['Float']['output']>;
|
|
4540
|
+
/** Per-second rate of individually-addressed (single-actor) messages sent to clients in the last window, as opposed to spatial fan-out. Null until reported. */
|
|
3208
4541
|
clientSendIndividualMsgsPerSec: Maybe<Scalars['Float']['output']>;
|
|
4542
|
+
/** Messages per second sent to clients in the last reporting window. Null until reported. */
|
|
3209
4543
|
clientSendMsgsPerSec: Maybe<Scalars['Float']['output']>;
|
|
4544
|
+
/** Number of game clients currently connected to this server. serverWithLeastClients uses this to balance load across the fleet. */
|
|
3210
4545
|
clients: Scalars['Int']['output'];
|
|
4546
|
+
/** Peak CPU utilization percentage (0-100) observed in the last reporting window. Null until reported. */
|
|
3211
4547
|
cpuPeakPct: Maybe<Scalars['Float']['output']>;
|
|
4548
|
+
/** When this server was first registered in the fleet. */
|
|
3212
4549
|
createdAt: Scalars['DateTime']['output'];
|
|
4550
|
+
/** IPv4 address native clients send spatial UDP datagrams to (paired with clientPort). Preferred over ip6 for inter-host UDP in current deployments. */
|
|
3213
4551
|
ip4: Scalars['String']['output'];
|
|
4552
|
+
/** IPv6 address of the UDP game server. Global IPv6 between hosts can be unroutable in some deployments, so native clients generally use ip4 + clientPort. */
|
|
3214
4553
|
ip6: Scalars['String']['output'];
|
|
4554
|
+
/** Bytes per second received from peer servers (server-to-server P2P) in the last reporting window. Null until reported. */
|
|
3215
4555
|
peerRecvBytesPerSec: Maybe<Scalars['Float']['output']>;
|
|
4556
|
+
/** Messages per second received from peer servers (server-to-server P2P) in the last reporting window. Null until reported. */
|
|
3216
4557
|
peerRecvMsgsPerSec: Maybe<Scalars['Float']['output']>;
|
|
4558
|
+
/** Bytes per second sent to peer servers (server-to-server P2P) in the last reporting window. Null until reported. */
|
|
3217
4559
|
peerSendBytesPerSec: Maybe<Scalars['Float']['output']>;
|
|
4560
|
+
/** Messages per second sent to peer servers (server-to-server P2P) in the last reporting window. Null until reported. */
|
|
3218
4561
|
peerSendMsgsPerSec: Maybe<Scalars['Float']['output']>;
|
|
4562
|
+
/** Number of peer (server-to-server P2P) connections this server currently holds. */
|
|
3219
4563
|
peers: Scalars['Int']['output'];
|
|
4564
|
+
/** Unique id of this game-server row in the fleet registry. */
|
|
3220
4565
|
serverId: Scalars['ID']['output'];
|
|
4566
|
+
/** Current lifecycle state of this server (see ServerState). Only ReadyForClients servers accept new clients. */
|
|
3221
4567
|
status: ServerState;
|
|
4568
|
+
/** When this status row was last updated (server heartbeat). Use to judge how fresh the metrics/state are. */
|
|
3222
4569
|
updatedAt: Scalars['DateTime']['output'];
|
|
3223
4570
|
};
|
|
4571
|
+
/** Server version plus the minimum client version the server will accept. A client whose build is older than minimumClientVersion should prompt the user to update before connecting. */
|
|
3224
4572
|
export type ServerVersionInfo = {
|
|
3225
4573
|
__typename?: 'ServerVersionInfo';
|
|
3226
4574
|
/** Minimum accepted client version */
|
|
@@ -3230,84 +4578,137 @@ export type ServerVersionInfo = {
|
|
|
3230
4578
|
};
|
|
3231
4579
|
export type ServiceQuota = {
|
|
3232
4580
|
__typename?: 'ServiceQuota';
|
|
4581
|
+
/** What happens when the limit is exceeded. Free-form string; defaults to "throttle" (typical values: "throttle" to rate-limit, "block" to reject). */
|
|
3233
4582
|
actionOnExceed: Scalars['String']['output'];
|
|
4583
|
+
/** App this rule is scoped to (BigInt as a decimal string); null if not app-scoped. */
|
|
3234
4584
|
appId: Maybe<Scalars['BigInt']['output']>;
|
|
4585
|
+
/** When the rule was created (ISO-8601 UTC timestamp). */
|
|
3235
4586
|
createdAt: Scalars['DateTime']['output'];
|
|
4587
|
+
/** Maximum allowed amount of the metric per `period`, as a BigInt decimal string. */
|
|
3236
4588
|
limitValue: Scalars['BigInt']['output'];
|
|
4589
|
+
/** The metered resource this rule limits (e.g. "api_requests", "storage_bytes"). Free-form metric key, matched exactly. */
|
|
3237
4590
|
metric: Scalars['String']['output'];
|
|
4591
|
+
/** Organization this rule is scoped to (BigInt as a decimal string); null if not org-scoped. */
|
|
3238
4592
|
orgId: Maybe<Scalars['BigInt']['output']>;
|
|
4593
|
+
/** Time window the limit applies over. Free-form string; defaults to "per_minute" (typical values: "per_minute", "per_hour", "per_day"). */
|
|
3239
4594
|
period: Scalars['String']['output'];
|
|
4595
|
+
/** Unique quota rule id (BigInt as a decimal string). */
|
|
3240
4596
|
quotaId: Scalars['BigInt']['output'];
|
|
4597
|
+
/** Access tier this rule is scoped to (BigInt as a decimal string); null if not tier-scoped. */
|
|
3241
4598
|
tierId: Maybe<Scalars['BigInt']['output']>;
|
|
4599
|
+
/** When the rule was last updated (ISO-8601 UTC timestamp). */
|
|
3242
4600
|
updatedAt: Scalars['DateTime']['output'];
|
|
3243
4601
|
};
|
|
4602
|
+
/** Set the per-app channel creation/membership policy (app-admin only). */
|
|
3244
4603
|
export type SetChannelPolicyInput = {
|
|
4604
|
+
/** The app (tenant) whose channel policy to set. */
|
|
3245
4605
|
appId: Scalars['BigInt']['input'];
|
|
3246
4606
|
/** admin | member | anyone. Who may create channels in this app. */
|
|
3247
4607
|
creationPolicy?: InputMaybe<Scalars['String']['input']>;
|
|
3248
4608
|
/** open | request | invite | admin. Default membership policy for new channels. */
|
|
3249
4609
|
defaultMembershipPolicy?: InputMaybe<Scalars['String']['input']>;
|
|
4610
|
+
/** Optional cap on how many channels a single user may belong to (null = unlimited). */
|
|
3250
4611
|
maxGroupsPerUser?: InputMaybe<Scalars['Int']['input']>;
|
|
4612
|
+
/** Optional cap on members per channel (null = unlimited). */
|
|
3251
4613
|
maxMembers?: InputMaybe<Scalars['Int']['input']>;
|
|
3252
4614
|
};
|
|
4615
|
+
/** Set one property value on a container directly. */
|
|
3253
4616
|
export type SetContainerPropertyInput = {
|
|
4617
|
+
/** The app (tenant) that owns the container. */
|
|
3254
4618
|
appId: Scalars['BigInt']['input'];
|
|
4619
|
+
/** The container id to write to. */
|
|
3255
4620
|
containerId: Scalars['String']['input'];
|
|
4621
|
+
/** The property key to write. */
|
|
3256
4622
|
key: Scalars['String']['input'];
|
|
3257
4623
|
/** JSON-encoded value. */
|
|
3258
4624
|
valueJson: Scalars['String']['input'];
|
|
4625
|
+
/** The value type being written (must match the property definition). */
|
|
3259
4626
|
valueType: Scalars['String']['input'];
|
|
3260
4627
|
};
|
|
4628
|
+
/** Set the app's game-model runtime policy. */
|
|
3261
4629
|
export type SetGameModelPolicyInput = {
|
|
4630
|
+
/** The app (tenant) whose policy to set. */
|
|
3262
4631
|
appId: Scalars['BigInt']['input'];
|
|
4632
|
+
/** Default role assigned to new session participants. */
|
|
3263
4633
|
defaultParticipantRole?: InputMaybe<Scalars['String']['input']>;
|
|
3264
4634
|
/** admin | member | anyone */
|
|
3265
4635
|
sessionCreationPolicy?: InputMaybe<Scalars['String']['input']>;
|
|
3266
4636
|
};
|
|
4637
|
+
/** Set the per-grid permission-key whitelist (writes the grid_permission_limits input table). */
|
|
3267
4638
|
export type SetGridPermissionLimitsInput = {
|
|
4639
|
+
/** The app (tenant) that owns the grid. */
|
|
3268
4640
|
appId: Scalars['BigInt']['input'];
|
|
4641
|
+
/** The grid whose whitelist to set. */
|
|
3269
4642
|
gridId: Scalars['BigInt']['input'];
|
|
3270
|
-
/** The whitelist of permission keys allowed on this grid. Empty array removes all limits (every active grid permission becomes grantable again). */
|
|
4643
|
+
/** The whitelist of permission keys allowed on this grid. Empty array removes all limits (every active grid permission becomes grantable again). Each key must be a known runtime permission key, unique, and at most 64 chars. */
|
|
3271
4644
|
permissionKeys: Array<Scalars['String']['input']>;
|
|
3272
4645
|
};
|
|
4646
|
+
/** Replace a member's roles in a group (the listed roles become their full set). */
|
|
3273
4647
|
export type SetMemberRolesInput = {
|
|
4648
|
+
/** The group (team/channel) id. */
|
|
3274
4649
|
groupId: Scalars['BigInt']['input'];
|
|
4650
|
+
/** The complete set of group role ids the member should have. Roles not listed are removed; unknown ids or ids from other groups are ignored. */
|
|
3275
4651
|
roleIds: Array<Scalars['BigInt']['input']>;
|
|
4652
|
+
/** The member (user) whose roles to set. */
|
|
3276
4653
|
userId: Scalars['BigInt']['input'];
|
|
3277
4654
|
};
|
|
3278
4655
|
export type SetQuotaInput = {
|
|
4656
|
+
/** What to do when the limit is exceeded. Optional; defaults to "throttle" (typical values: "throttle" to rate-limit, "block" to reject). */
|
|
3279
4657
|
actionOnExceed?: InputMaybe<Scalars['String']['input']>;
|
|
4658
|
+
/** Scope the rule to this app (BigInt as a decimal string). */
|
|
3280
4659
|
appId?: InputMaybe<Scalars['BigInt']['input']>;
|
|
4660
|
+
/** Optional idempotency key. Recommended for retries: replaying with the same key and identical input returns the first result instead of re-applying; the same key with different input returns IDEMPOTENCY_CONFLICT. Keys expire after 24h. */
|
|
4661
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
4662
|
+
/** Maximum allowed amount of the metric per `period`, as a BigInt decimal string. */
|
|
3281
4663
|
limitValue: Scalars['BigInt']['input'];
|
|
4664
|
+
/** The metered resource key to limit (max 64 characters), e.g. "api_requests". */
|
|
3282
4665
|
metric: Scalars['String']['input'];
|
|
4666
|
+
/** Scope the rule to this organization (BigInt as a decimal string). Provide one of orgId/appId/tierId to choose the scope; omit all three for a global (super-admin) rule. */
|
|
3283
4667
|
orgId?: InputMaybe<Scalars['BigInt']['input']>;
|
|
4668
|
+
/** Time window the limit applies over. Optional; defaults to "per_minute" (typical values: "per_minute", "per_hour", "per_day"). Part of the upsert key, so different periods create separate rules. */
|
|
3284
4669
|
period?: InputMaybe<Scalars['String']['input']>;
|
|
4670
|
+
/** Scope the rule to this access tier (BigInt as a decimal string). */
|
|
3285
4671
|
tierId?: InputMaybe<Scalars['BigInt']['input']>;
|
|
3286
4672
|
};
|
|
4673
|
+
/** Set or clear the current-turn user of a session. */
|
|
3287
4674
|
export type SetSessionTurnInput = {
|
|
4675
|
+
/** The app (tenant) that owns the session. */
|
|
3288
4676
|
appId: Scalars['BigInt']['input'];
|
|
4677
|
+
/** The session id to update. */
|
|
3289
4678
|
sessionId: Scalars['String']['input'];
|
|
3290
4679
|
/** The user whose turn it now is (NULL clears the turn). */
|
|
3291
4680
|
userId?: InputMaybe<Scalars['BigInt']['input']>;
|
|
3292
4681
|
};
|
|
4682
|
+
/** Set the per-app team creation/membership policy (app-admin only). */
|
|
3293
4683
|
export type SetTeamPolicyInput = {
|
|
4684
|
+
/** The app (tenant) whose team policy to set. */
|
|
3294
4685
|
appId: Scalars['BigInt']['input'];
|
|
3295
4686
|
/** admin | member | anyone. Who may create teams in this app. */
|
|
3296
4687
|
creationPolicy?: InputMaybe<Scalars['String']['input']>;
|
|
3297
4688
|
/** open | request | invite | admin. Default membership policy for new teams. */
|
|
3298
4689
|
defaultMembershipPolicy?: InputMaybe<Scalars['String']['input']>;
|
|
4690
|
+
/** Optional cap on how many teams a single user may belong to (null = unlimited). */
|
|
3299
4691
|
maxGroupsPerUser?: InputMaybe<Scalars['Int']['input']>;
|
|
4692
|
+
/** Optional cap on members per team (null = unlimited). */
|
|
3300
4693
|
maxMembers?: InputMaybe<Scalars['Int']['input']>;
|
|
3301
4694
|
};
|
|
4695
|
+
/** A paid shared-environment app-slot subscription plan. Pass planId to publishAppToShared to subscribe. */
|
|
3302
4696
|
export type SharedEnvPlan = {
|
|
3303
4697
|
__typename?: 'SharedEnvPlan';
|
|
4698
|
+
/** Billing cadence, e.g. 'month' or 'year'. */
|
|
3304
4699
|
billingInterval: Scalars['String']['output'];
|
|
4700
|
+
/** Stable machine-readable plan code. */
|
|
3305
4701
|
code: Scalars['String']['output'];
|
|
4702
|
+
/** ISO-4217 currency for priceCents, e.g. 'USD'. */
|
|
3306
4703
|
currency: Scalars['String']['output'];
|
|
3307
4704
|
description: Maybe<Scalars['String']['output']>;
|
|
4705
|
+
/** Human-readable plan name. */
|
|
3308
4706
|
name: Scalars['String']['output'];
|
|
4707
|
+
/** Plan id (BigInt). */
|
|
3309
4708
|
planId: Scalars['BigInt']['output'];
|
|
4709
|
+
/** Recurring price per billing interval, in cents. */
|
|
3310
4710
|
priceCents: Scalars['BigInt']['output'];
|
|
4711
|
+
/** Plan status, e.g. 'active' (offered) or 'archived'. */
|
|
3311
4712
|
status: Scalars['String']['output'];
|
|
3312
4713
|
};
|
|
3313
4714
|
/** Input for sending an actor-to-actor message: a message delivered only to the single actor identified by targetUuid. It is spatially routed (the sender must know the destination actor’s chunk), but unlike normal spatial messages it is NOT broadcast to other nearby actors and has no distance/decay. */
|
|
@@ -3318,7 +4719,7 @@ export type SingleActorMessageInput = {
|
|
|
3318
4719
|
chunk: ChunkCoordinatesInput;
|
|
3319
4720
|
/** The message payload, base64-encoded. Opaque to the server; the sender’s identity (if needed) must be embedded here by the application. */
|
|
3320
4721
|
payload: Scalars['String']['input'];
|
|
3321
|
-
/** Client
|
|
4722
|
+
/** Client-assigned correlation id for this datagram: a uint8 (0-255) that wraps at gameClientBootstrap.sequenceNumberModulo (256); defaults to 0 if omitted. For CORRELATION ONLY — it is NOT an idempotency key and the server does not dedupe replays. Echoed on any GenericErrorResponse for this send, delivered on the udpNotifications subscription. */
|
|
3322
4723
|
sequenceNumber?: InputMaybe<Scalars['Int']['input']>;
|
|
3323
4724
|
/** The DESTINATION actor’s UUID. The message is delivered only to the client that owns this actor. Must be exactly 32 bytes when encoded as UTF-8. */
|
|
3324
4725
|
targetUuid: Scalars['String']['input'];
|
|
@@ -3345,50 +4746,85 @@ export type SingleActorMessageNotification = {
|
|
|
3345
4746
|
};
|
|
3346
4747
|
export type Subscription = {
|
|
3347
4748
|
__typename?: 'Subscription';
|
|
3348
|
-
/**
|
|
4749
|
+
/** Realtime downlink from the game server: spatial notifications and responses, GenericErrorResponse (errors from your sends, correlated by sequenceNumber), and RealtimeConnectionEvent (lifecycle/setup failures). Requires a bearer game token AND an appId-scoped connection — the appId is read from the graphql-transport-ws connection (game tokens are app-agnostic and one UDP socket is shared across apps, so an app-agnostic subscription is rejected with a RealtimeConnectionEvent code APP_ID_REQUIRED, and a missing/invalid token with AUTH_REQUIRED). On subscribe, opens a UDP proxy session if none exists (binds to the least-loaded game server); open/transport failures are delivered as RealtimeConnectionEvent (code UDP_PROXY_CONNECTION_FAILED) and then the stream ends. Only this app’s spatial fan-out is delivered; appId-less control frames always pass. Subscribe before/while sending so async results are not missed. Unsubscribing stops delivery only — it does NOT close the UDP session; call disconnectUdpProxy (or rely on the server inactivity timeout) to release it. */
|
|
3349
4750
|
udpNotifications: Maybe<UdpNotification>;
|
|
3350
4751
|
};
|
|
3351
4752
|
export type TeleportRequestInput = {
|
|
4753
|
+
/** App (game) to teleport within. Must be greater than 0 (a non-positive value yields errorCode INVALID_APP_ID). BigInt sent as a decimal string. */
|
|
3352
4754
|
appId: Scalars['BigInt']['input'];
|
|
4755
|
+
/** Destination chunk-grid coordinates (x, y, z as int64 BigInt decimal strings). The reserved sentinel (-6, -6, -6) is rejected as UNAUTHORIZED. */
|
|
3353
4756
|
chunkAddress: ChunkCoordinatesInput;
|
|
4757
|
+
/** Actor being teleported: exactly 32 ASCII characters (the UDP-wire actor id), NOT a hyphenated RFC-4122 UUID. */
|
|
3354
4758
|
uuid: Scalars['String']['input'];
|
|
4759
|
+
/** Destination voxel coordinates within the chunk (x, y, z as signed 16-bit ints, -32768..32767). */
|
|
3355
4760
|
voxelAddress: VoxelCoordinatesInput;
|
|
3356
4761
|
};
|
|
3357
4762
|
export type TeleportResponse = {
|
|
3358
4763
|
__typename?: 'TeleportResponse';
|
|
4764
|
+
/** ErrorType enum: NO_ERROR on success; INVALID_APP_ID for a non-positive appId; UNAUTHORIZED when the destination is the reserved sentinel (-6,-6,-6) or the user lacks the app "teleport" runtime permission. */
|
|
3359
4765
|
errorCode: UdpErrorCode;
|
|
4766
|
+
/** True when the teleport is authorized/accepted; false otherwise (inspect errorCode for the reason). */
|
|
3360
4767
|
success: Scalars['Boolean']['output'];
|
|
3361
4768
|
};
|
|
3362
|
-
/** Error codes returned by UDP game servers in response
|
|
4769
|
+
/** Error codes returned by UDP game servers (and surfaced on `GenericErrorResponse.errorCode`) in response to a spatial/realtime message. NO_ERROR (0) indicates success; every other value indicates a failure. The numeric value is the byte sent on the wire; GraphQL exposes the name. Note: a failed message does not always produce an error — some auth failures are dropped silently (see the docs). */
|
|
3363
4770
|
export declare enum UdpErrorCode {
|
|
4771
|
+
/** No app matches the supplied appId. */
|
|
3364
4772
|
AppNotFound = "APP_NOT_FOUND",
|
|
4773
|
+
/** The app exists but is not currently loaded/active on this server. */
|
|
3365
4774
|
AppNotLoaded = "APP_NOT_LOADED",
|
|
4775
|
+
/** The password did not match (login validation). */
|
|
3366
4776
|
BadPassword = "BAD_PASSWORD",
|
|
4777
|
+
/** No chunk exists at the referenced coordinates. */
|
|
3367
4778
|
ChunkNotFound = "CHUNK_NOT_FOUND",
|
|
4779
|
+
/** Registration failed because the email is already in use. */
|
|
3368
4780
|
EmailAlreadyExists = "EMAIL_ALREADY_EXISTS",
|
|
4781
|
+
/** Email failed format validation. */
|
|
3369
4782
|
EmailInvalid = "EMAIL_INVALID",
|
|
4783
|
+
/** No account matches the supplied email (login validation). */
|
|
3370
4784
|
EmailNotFound = "EMAIL_NOT_FOUND",
|
|
4785
|
+
/** Email failed maximum-length validation. */
|
|
3371
4786
|
EmailTooLong = "EMAIL_TOO_LONG",
|
|
4787
|
+
/** Email failed minimum-length validation. */
|
|
3372
4788
|
EmailTooShort = "EMAIL_TOO_SHORT",
|
|
4789
|
+
/** The requested gamertag is already taken. */
|
|
3373
4790
|
GamertagAlreadyExists = "GAMERTAG_ALREADY_EXISTS",
|
|
4791
|
+
/** The game token is not the expected length. Use the exact token returned by login (do not trim or re-encode it). */
|
|
3374
4792
|
GameTokenWrongSize = "GAME_TOKEN_WRONG_SIZE",
|
|
4793
|
+
/** A grid already exists at these coordinates. */
|
|
3375
4794
|
GridAlreadyExists = "GRID_ALREADY_EXISTS",
|
|
4795
|
+
/** The target coordinates fall outside any grid assigned to the caller. */
|
|
3376
4796
|
GridOutsideAssignment = "GRID_OUTSIDE_ASSIGNMENT",
|
|
4797
|
+
/** The requested grid overlaps an existing grid. */
|
|
3377
4798
|
GridOverlapsExisting = "GRID_OVERLAPS_EXISTING",
|
|
4799
|
+
/** The appId was missing, zero, or not a valid value. */
|
|
3378
4800
|
InvalidAppId = "INVALID_APP_ID",
|
|
4801
|
+
/** The grid coordinates were invalid. */
|
|
3379
4802
|
InvalidGridCoordinates = "INVALID_GRID_COORDINATES",
|
|
4803
|
+
/** The message was malformed or failed validation. Check the byte layout. */
|
|
3380
4804
|
InvalidRequest = "INVALID_REQUEST",
|
|
4805
|
+
/** The state/payload bytes were invalid for this message type. */
|
|
3381
4806
|
InvalidStateData = "INVALID_STATE_DATA",
|
|
4807
|
+
/** The game token was rejected (expired, malformed, or revoked). Re-authenticate against the Management API to obtain a fresh token. */
|
|
3382
4808
|
InvalidToken = "INVALID_TOKEN",
|
|
4809
|
+
/** The supplied token was not a valid length. */
|
|
3383
4810
|
InvalidTokenLength = "INVALID_TOKEN_LENGTH",
|
|
4811
|
+
/** A supplied name exceeded the maximum length. */
|
|
3384
4812
|
NameTooLong = "NAME_TOO_LONG",
|
|
4813
|
+
/** No error (0). The message was accepted. */
|
|
3385
4814
|
NoError = "NO_ERROR",
|
|
4815
|
+
/** No grid assignment covers the referenced coordinates. */
|
|
3386
4816
|
NoMatchingGridAssignment = "NO_MATCHING_GRID_ASSIGNMENT",
|
|
4817
|
+
/** Password failed maximum-length validation. */
|
|
3387
4818
|
PasswordTooLong = "PASSWORD_TOO_LONG",
|
|
4819
|
+
/** Password failed minimum-length validation. */
|
|
3388
4820
|
PasswordTooShort = "PASSWORD_TOO_SHORT",
|
|
4821
|
+
/** The caller lacks the runtime/grid permission required for this action. Grid permissions can load asynchronously, so the first message to a newly entered region may transiently return this — retry shortly. */
|
|
3389
4822
|
Unauthorized = "UNAUTHORIZED",
|
|
4823
|
+
/** Unspecified server error (1). Retry; if it persists, report it. */
|
|
3390
4824
|
UnknownError = "UNKNOWN_ERROR",
|
|
4825
|
+
/** Requires app-admin privileges (the 'manage_apps' permission). */
|
|
3391
4826
|
UserNotAppAdmin = "USER_NOT_APP_ADMIN",
|
|
4827
|
+
/** This client has no authenticated session on the server. Complete the UDP token handshake (or open the UDP proxy) before sending spatial messages. */
|
|
3392
4828
|
UserNotAuthenticated = "USER_NOT_AUTHENTICATED"
|
|
3393
4829
|
}
|
|
3394
4830
|
/** All game-server messages delivered over the UDP proxy as GraphQL payloads. Subscribe to udpNotifications before or with sending mutations so responses and GenericErrorResponse (correlate via sequenceNumber) are not missed. */
|
|
@@ -3405,145 +4841,239 @@ export type UdpProxyConnectionStatus = {
|
|
|
3405
4841
|
/** The IPv6 address of the UDP game server (only present when connected). */
|
|
3406
4842
|
serverIp6: Maybe<Scalars['String']['output']>;
|
|
3407
4843
|
};
|
|
4844
|
+
/** Fields to update on an access tier. All fields are optional; omitted fields are left unchanged. */
|
|
3408
4845
|
export type UpdateAccessTierInput = {
|
|
4846
|
+
/** New billing cadence (e.g. "month", "year"); null clears it. */
|
|
3409
4847
|
billingPeriod?: InputMaybe<Scalars['String']['input']>;
|
|
4848
|
+
/** New ISO 4217 currency code (e.g. "usd"). */
|
|
3410
4849
|
currency?: InputMaybe<Scalars['String']['input']>;
|
|
4850
|
+
/** New tier description; null clears it. */
|
|
3411
4851
|
description?: InputMaybe<Scalars['String']['input']>;
|
|
4852
|
+
/** Set whether this is the app's default tier. */
|
|
3412
4853
|
isDefault?: InputMaybe<Scalars['Boolean']['input']>;
|
|
4854
|
+
/** Set whether the tier is free. */
|
|
3413
4855
|
isFree?: InputMaybe<Scalars['Boolean']['input']>;
|
|
4856
|
+
/** New tier name (max 128 chars). */
|
|
3414
4857
|
name?: InputMaybe<Scalars['String']['input']>;
|
|
4858
|
+
/** External PayPal plan id to associate (billing integration). */
|
|
3415
4859
|
paypalPlanId?: InputMaybe<Scalars['String']['input']>;
|
|
4860
|
+
/** Replacement set of runtime permission keys for the tier (must be valid runtimePermissions). When provided, replaces the existing set entirely. */
|
|
3416
4861
|
permissionKeys?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
4862
|
+
/** New price in cents; null clears the price (makes the tier unpriced). */
|
|
3417
4863
|
priceCents?: InputMaybe<Scalars['BigInt']['input']>;
|
|
4864
|
+
/** External Stripe price id to associate (billing integration). */
|
|
3418
4865
|
stripePriceId?: InputMaybe<Scalars['String']['input']>;
|
|
4866
|
+
/** New sort order (ascending). */
|
|
3419
4867
|
tierOrder?: InputMaybe<Scalars['Int']['input']>;
|
|
3420
4868
|
};
|
|
3421
4869
|
export type UpdateActorInput = {
|
|
4870
|
+
/** New app id, or omit to leave unchanged. BigInt sent as a decimal string. */
|
|
3422
4871
|
appId?: InputMaybe<Scalars['BigInt']['input']>;
|
|
4872
|
+
/** New avatar id, or omit to leave unchanged. BigInt sent as a decimal string. */
|
|
3423
4873
|
avatarId?: InputMaybe<Scalars['BigInt']['input']>;
|
|
4874
|
+
/** New chunk-grid coordinates (x, y, z as int64 BigInt decimal strings), or omit to leave unchanged. */
|
|
3424
4875
|
chunk?: InputMaybe<ChunkCoordinatesInput>;
|
|
4876
|
+
/** New owner-only private state blob (base64-encoded binary), or omit to leave unchanged. */
|
|
3425
4877
|
privateState?: InputMaybe<Scalars['String']['input']>;
|
|
4878
|
+
/** New public state blob (base64-encoded binary), or omit to leave unchanged. */
|
|
3426
4879
|
publicState?: InputMaybe<Scalars['String']['input']>;
|
|
3427
4880
|
};
|
|
3428
4881
|
export type UpdateActorStateInput = {
|
|
4882
|
+
/** New owner-only private state blob (base64-encoded binary), or omit to leave unchanged. */
|
|
3429
4883
|
privateState?: InputMaybe<Scalars['String']['input']>;
|
|
4884
|
+
/** New public state blob (base64-encoded binary), or omit to leave unchanged. */
|
|
3430
4885
|
publicState?: InputMaybe<Scalars['String']['input']>;
|
|
3431
4886
|
};
|
|
4887
|
+
/** Input payload for updating an app. All fields are optional; only fields that are provided are changed. */
|
|
3432
4888
|
export type UpdateAppInput = {
|
|
4889
|
+
/** New short description. Omit to leave unchanged. */
|
|
3433
4890
|
description?: InputMaybe<Scalars['String']['input']>;
|
|
4891
|
+
/** New JSON-encoded marketplace metadata string, replacing the existing value (see App.metadata). Omit to leave unchanged. */
|
|
3434
4892
|
metadata?: InputMaybe<Scalars['String']['input']>;
|
|
4893
|
+
/** New display name (1-256 chars). Omit to leave unchanged. */
|
|
3435
4894
|
name?: InputMaybe<Scalars['String']['input']>;
|
|
4895
|
+
/** New lifecycle status; set LIVE to publish, or DRAFT/LIVE to restore an archived app. Omit to leave unchanged. */
|
|
3436
4896
|
status?: InputMaybe<AppStatus>;
|
|
4897
|
+
/** New visibility (PUBLIC/UNLISTED/PRIVATE). Omit to leave unchanged. */
|
|
3437
4898
|
visibility?: InputMaybe<AppVisibility>;
|
|
3438
4899
|
};
|
|
3439
4900
|
export type UpdateAvatarAppStateInput = {
|
|
4901
|
+
/** App (game) id the state is scoped to. Required. BigInt sent as a decimal string. */
|
|
3440
4902
|
appId: Scalars['BigInt']['input'];
|
|
4903
|
+
/** Avatar whose per-app state to write; must be owned by the caller. Required. BigInt sent as a decimal string. */
|
|
3441
4904
|
avatarId: Scalars['BigInt']['input'];
|
|
3442
|
-
/**
|
|
4905
|
+
/** Per-app avatar state as base64-encoded binary. Send null (or omit) to clear it. */
|
|
3443
4906
|
state?: InputMaybe<Scalars['String']['input']>;
|
|
3444
4907
|
};
|
|
3445
4908
|
export type UpdateAvatarInput = {
|
|
4909
|
+
/** New avatar name, or omit to leave unchanged. */
|
|
3446
4910
|
name?: InputMaybe<Scalars['String']['input']>;
|
|
3447
4911
|
};
|
|
3448
4912
|
export type UpdateAvatarStateInput = {
|
|
4913
|
+
/** New owner-only private state blob (base64-encoded binary), or omit to leave unchanged. */
|
|
3449
4914
|
privateState?: InputMaybe<Scalars['String']['input']>;
|
|
4915
|
+
/** New public state blob (base64-encoded binary), or omit to leave unchanged. */
|
|
3450
4916
|
publicState?: InputMaybe<Scalars['String']['input']>;
|
|
3451
4917
|
};
|
|
4918
|
+
/** Update an existing channel. Omitted fields are left unchanged. */
|
|
3452
4919
|
export type UpdateChannelInput = {
|
|
4920
|
+
/** New description. Omit to leave unchanged. */
|
|
3453
4921
|
description?: InputMaybe<Scalars['String']['input']>;
|
|
4922
|
+
/** The channel (group) id to update. */
|
|
3454
4923
|
groupId: Scalars['BigInt']['input'];
|
|
4924
|
+
/** open | request | invite | admin. Omit to leave unchanged. */
|
|
3455
4925
|
membershipPolicy?: InputMaybe<Scalars['String']['input']>;
|
|
4926
|
+
/** New channel name (max 128 chars). Omit to leave unchanged. */
|
|
3456
4927
|
name?: InputMaybe<Scalars['String']['input']>;
|
|
3457
4928
|
};
|
|
4929
|
+
/** Payload for updateChunkLods: replaces the chunk's entire LOD set. Only LODs are written; voxels, voxel states, chunk state and owner are preserved. */
|
|
3458
4930
|
export type UpdateChunkLodsInput = {
|
|
4931
|
+
/** Id of the app that owns the chunk (decimal string). */
|
|
3459
4932
|
appId: Scalars['BigInt']['input'];
|
|
4933
|
+
/** Address of the chunk whose LODs to replace. */
|
|
3460
4934
|
coordinates: ChunkCoordinatesInput;
|
|
4935
|
+
/** Full set of LOD levels to store for the chunk; this REPLACES any existing LODs. */
|
|
3461
4936
|
lods: Array<LodDataInput>;
|
|
3462
4937
|
};
|
|
4938
|
+
/** Payload for updateChunkState: upserts ONLY the chunk-level opaque state blob; the voxel grid, per-voxel states and LODs are preserved. */
|
|
3463
4939
|
export type UpdateChunkStateInput = {
|
|
4940
|
+
/** Id of the app that owns the chunk (decimal string). */
|
|
3464
4941
|
appId: Scalars['BigInt']['input'];
|
|
4942
|
+
/** BASE64-encoded binary chunk-level state blob to store. Omit/null to store no chunk state. */
|
|
3465
4943
|
chunkState?: InputMaybe<Scalars['String']['input']>;
|
|
4944
|
+
/** Address of the chunk whose chunk-level state to set. */
|
|
3466
4945
|
coordinates: ChunkCoordinatesInput;
|
|
3467
4946
|
};
|
|
3468
4947
|
export type UpdateEnvironmentScalingInput = {
|
|
3469
4948
|
/** Caddy LB flavor (in front of the game-api fleet). When omitted the existing value is preserved. */
|
|
3470
4949
|
caddyFlavor?: InputMaybe<Scalars['String']['input']>;
|
|
4950
|
+
/** Maximum game-api servers (autoscaling ceiling). Min 1; ≥ gameApiMinServers. */
|
|
3471
4951
|
gameApiMaxServers: Scalars['Int']['input'];
|
|
4952
|
+
/** Minimum game-api servers (autoscaling floor). Min 1; ≤ gameApiMaxServers. */
|
|
3472
4953
|
gameApiMinServers: Scalars['Int']['input'];
|
|
4954
|
+
/** Number of Caddy load-balancer VMs in front of the game-api fleet. Min 1. */
|
|
3473
4955
|
loadBalancerCount: Scalars['Int']['input'];
|
|
4956
|
+
/** Organization id (BigInt) that owns the environment. */
|
|
3474
4957
|
orgId: Scalars['BigInt']['input'];
|
|
4958
|
+
/** Slug of the dedicated environment to rescale (rejected for 'dev_single'). */
|
|
3475
4959
|
slug: Scalars['String']['input'];
|
|
4960
|
+
/** Maximum Buddy UDP servers (autoscaling ceiling). Min 1; ≥ udpBuddyMinServers. */
|
|
3476
4961
|
udpBuddyMaxServers: Scalars['Int']['input'];
|
|
4962
|
+
/** Minimum Buddy UDP servers (autoscaling floor). Min 1; ≤ udpBuddyMaxServers. */
|
|
3477
4963
|
udpBuddyMinServers: Scalars['Int']['input'];
|
|
3478
4964
|
};
|
|
3479
4965
|
export type UpdateGamertagInput = {
|
|
4966
|
+
/** Discriminator paired with `gamertag` (max 128 characters) to form a unique handle. */
|
|
3480
4967
|
disambiguation: Scalars['String']['input'];
|
|
4968
|
+
/** New gamertag (max 64 characters). Must be unique in combination with `disambiguation`. */
|
|
3481
4969
|
gamertag: Scalars['String']['input'];
|
|
3482
4970
|
};
|
|
4971
|
+
/** Update a custom group role. Omitted fields are left unchanged. */
|
|
3483
4972
|
export type UpdateGroupRoleInput = {
|
|
4973
|
+
/** The group role id to update. */
|
|
3484
4974
|
groupRoleId: Scalars['BigInt']['input'];
|
|
4975
|
+
/** When provided, REPLACES the role's permission key strings. Each must be a valid group permission key for the group type (max 64 chars, unique). Omit to leave permissions unchanged. */
|
|
3485
4976
|
permissions?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
4977
|
+
/** New rank (higher = more senior). Ignored for system roles. Omit to leave unchanged. */
|
|
3486
4978
|
rank?: InputMaybe<Scalars['Int']['input']>;
|
|
4979
|
+
/** New role name (max 128 chars). Ignored for system roles. Omit to leave unchanged. */
|
|
3487
4980
|
roleName?: InputMaybe<Scalars['String']['input']>;
|
|
3488
4981
|
};
|
|
3489
4982
|
export type UpdateOrgRoleInput = {
|
|
4983
|
+
/** New description; omit to leave unchanged. */
|
|
3490
4984
|
description?: InputMaybe<Scalars['String']['input']>;
|
|
4985
|
+
/** If provided, replaces the entire permission set (empty array clears all); omit to leave unchanged. */
|
|
3491
4986
|
permissions?: InputMaybe<Array<Scalars['String']['input']>>;
|
|
4987
|
+
/** New role name; omit to leave unchanged. */
|
|
3492
4988
|
roleName?: InputMaybe<Scalars['String']['input']>;
|
|
3493
4989
|
};
|
|
3494
4990
|
export type UpdateOrgTokenInput = {
|
|
4991
|
+
/** New expiry timestamp; omit to leave unchanged. */
|
|
3495
4992
|
expiresAt?: InputMaybe<Scalars['DateTime']['input']>;
|
|
4993
|
+
/** Set false to deactivate the token; omit to leave unchanged. Revoked tokens cannot be re-minted. */
|
|
3496
4994
|
isActive?: InputMaybe<Scalars['Boolean']['input']>;
|
|
4995
|
+
/** New label; omit to leave unchanged. */
|
|
3497
4996
|
label?: InputMaybe<Scalars['String']['input']>;
|
|
3498
4997
|
};
|
|
4998
|
+
/** Update an existing team. Omitted fields are left unchanged. */
|
|
3499
4999
|
export type UpdateTeamInput = {
|
|
5000
|
+
/** New description. Omit to leave unchanged. */
|
|
3500
5001
|
description?: InputMaybe<Scalars['String']['input']>;
|
|
5002
|
+
/** The team (group) id to update. */
|
|
3501
5003
|
groupId: Scalars['BigInt']['input'];
|
|
5004
|
+
/** open | request | invite | admin. Omit to leave unchanged. */
|
|
3502
5005
|
membershipPolicy?: InputMaybe<Scalars['String']['input']>;
|
|
5006
|
+
/** New team name (max 128 chars). Omit to leave unchanged. */
|
|
3503
5007
|
name?: InputMaybe<Scalars['String']['input']>;
|
|
3504
5008
|
};
|
|
3505
5009
|
export type UpdateUserStateInput = {
|
|
5010
|
+
/** New user-level state blob, base64-encoded binary. Omit or send null to clear it. */
|
|
3506
5011
|
state?: InputMaybe<Scalars['String']['input']>;
|
|
3507
5012
|
};
|
|
5013
|
+
/** Payload for updateVoxel: records (upserts) a single voxel edit in the voxel_updates log for one chunk. */
|
|
3508
5014
|
export type UpdateVoxelInput = {
|
|
5015
|
+
/** Id of the app that owns the target chunk (decimal string). */
|
|
3509
5016
|
appId: Scalars['BigInt']['input'];
|
|
5017
|
+
/** Address of the chunk that contains the voxel to edit. */
|
|
3510
5018
|
coordinates: ChunkCoordinatesInput;
|
|
5019
|
+
/** Local voxel position within the chunk (0-15 per axis; validated to the signed 16-bit range). */
|
|
3511
5020
|
location: VoxelCoordinatesInput;
|
|
5021
|
+
/** Optional BASE64-encoded binary state blob for the voxel; omit for none. */
|
|
3512
5022
|
state?: InputMaybe<Scalars['String']['input']>;
|
|
5023
|
+
/** Voxel type id to write (0-255). */
|
|
3513
5024
|
voxelType: Scalars['Float']['input'];
|
|
3514
5025
|
};
|
|
5026
|
+
/** Create or update a container type (schema for a kind of entity). */
|
|
3515
5027
|
export type UpsertContainerTypeInput = {
|
|
5028
|
+
/** The app (tenant) that owns the type. */
|
|
3516
5029
|
appId: Scalars['BigInt']['input'];
|
|
3517
5030
|
/** public | owner | hidden default for this type's properties. */
|
|
3518
5031
|
defaultPropertyVisibility?: InputMaybe<Scalars['String']['input']>;
|
|
5032
|
+
/** Optional description of the type. */
|
|
3519
5033
|
description?: InputMaybe<Scalars['String']['input']>;
|
|
5034
|
+
/** Human-friendly display name. */
|
|
3520
5035
|
displayName: Scalars['String']['input'];
|
|
3521
5036
|
/** admin | member | owner (who may instantiate this type). */
|
|
3522
5037
|
instantiableBy?: InputMaybe<Scalars['String']['input']>;
|
|
3523
5038
|
/** JSON object of metadata. */
|
|
3524
5039
|
metadataJson?: InputMaybe<Scalars['String']['input']>;
|
|
5040
|
+
/** Stable type name (unique per app). Acts as the upsert key. */
|
|
3525
5041
|
typeName: Scalars['String']['input'];
|
|
3526
5042
|
};
|
|
5043
|
+
/** Create or update a studio-defined function. Upsert key is (app, name). */
|
|
3527
5044
|
export type UpsertFunctionInput = {
|
|
5045
|
+
/** The app (tenant) that owns the function. */
|
|
3528
5046
|
appId: Scalars['BigInt']['input'];
|
|
5047
|
+
/** Optional container type to bind the function to (omit for a global function). */
|
|
3529
5048
|
containerTypeName?: InputMaybe<Scalars['String']['input']>;
|
|
5049
|
+
/** Optional description of the function. */
|
|
3530
5050
|
description?: InputMaybe<Scalars['String']['input']>;
|
|
3531
5051
|
/** JSON-encoded invoke-policy rule tree (authority requirements). */
|
|
3532
5052
|
invokePolicyJson?: InputMaybe<Scalars['String']['input']>;
|
|
3533
5053
|
/** player | server | internal */
|
|
3534
5054
|
invokeScope?: InputMaybe<Scalars['String']['input']>;
|
|
5055
|
+
/** The property writes the function performs (applied atomically when invoked). */
|
|
3535
5056
|
mutations?: InputMaybe<Array<FunctionMutationInput>>;
|
|
5057
|
+
/** Function name (unique per app). Used to invoke it. */
|
|
3536
5058
|
name: Scalars['String']['input'];
|
|
5059
|
+
/** Typed parameters the function accepts. */
|
|
3537
5060
|
parameters?: InputMaybe<Array<FunctionParamInput>>;
|
|
5061
|
+
/** Optional expression whose value becomes the invoke result. */
|
|
3538
5062
|
returnExpression?: InputMaybe<Scalars['String']['input']>;
|
|
5063
|
+
/** Optional declared return value type. */
|
|
3539
5064
|
returnType?: InputMaybe<Scalars['String']['input']>;
|
|
3540
5065
|
};
|
|
5066
|
+
/** Create or update a typed property on a container type. */
|
|
3541
5067
|
export type UpsertPropertyDefInput = {
|
|
5068
|
+
/** The app (tenant) that owns the type. */
|
|
3542
5069
|
appId: Scalars['BigInt']['input'];
|
|
5070
|
+
/** The container type to define the property on. */
|
|
3543
5071
|
containerTypeName: Scalars['String']['input'];
|
|
3544
5072
|
/** JSON-encoded default value. */
|
|
3545
5073
|
defaultValueJson?: InputMaybe<Scalars['String']['input']>;
|
|
5074
|
+
/** Optional description of the property. */
|
|
3546
5075
|
description?: InputMaybe<Scalars['String']['input']>;
|
|
5076
|
+
/** Property key (unique within the type). Part of the upsert key. */
|
|
3547
5077
|
key: Scalars['String']['input'];
|
|
3548
5078
|
/** int | float | string | bool | array | object | container_ref */
|
|
3549
5079
|
valueType: Scalars['String']['input'];
|
|
@@ -3552,40 +5082,65 @@ export type UpsertPropertyDefInput = {
|
|
|
3552
5082
|
/** function | owner | admin */
|
|
3553
5083
|
writable?: InputMaybe<Scalars['String']['input']>;
|
|
3554
5084
|
};
|
|
5085
|
+
/** One minute-bucketed usage sample. Byte/message counters are returned as strings because they can exceed the 32-bit Int range. */
|
|
3555
5086
|
export type UsageMinuteRow = {
|
|
3556
5087
|
__typename?: 'UsageMinuteRow';
|
|
5088
|
+
/** Start of the one-minute bucket. */
|
|
3557
5089
|
minute: Scalars['DateTime']['output'];
|
|
5090
|
+
/** Bytes received in the minute (string counter). */
|
|
3558
5091
|
recvBytes: Scalars['String']['output'];
|
|
5092
|
+
/** Messages received in the minute (replication only). */
|
|
3559
5093
|
recvMsgs: Maybe<Scalars['String']['output']>;
|
|
5094
|
+
/** Bytes sent in the minute (string counter). */
|
|
3560
5095
|
sendBytes: Scalars['String']['output'];
|
|
5096
|
+
/** Messages sent in the minute (replication only). */
|
|
3561
5097
|
sendMsgs: Maybe<Scalars['String']['output']>;
|
|
3562
5098
|
};
|
|
5099
|
+
/** Peak and average send rates over the sampled replication window. */
|
|
3563
5100
|
export type UsageRatePeaks = {
|
|
3564
5101
|
__typename?: 'UsageRatePeaks';
|
|
5102
|
+
/** Average sent megabits per second over the window. */
|
|
3565
5103
|
avgSendMbitPerSec: Scalars['Float']['output'];
|
|
5104
|
+
/** Average sent messages per second over the window. */
|
|
3566
5105
|
avgSendMsgsPerSec: Scalars['Float']['output'];
|
|
5106
|
+
/** Highest observed sent megabits per second. */
|
|
3567
5107
|
peakSendMbitPerSec: Scalars['Float']['output'];
|
|
5108
|
+
/** Highest observed sent messages per second. */
|
|
3568
5109
|
peakSendMsgsPerSec: Scalars['Float']['output'];
|
|
5110
|
+
/** Number of minute samples the averages are computed over. */
|
|
3569
5111
|
sampleMinutes: Scalars['Float']['output'];
|
|
3570
5112
|
};
|
|
3571
5113
|
export type User = {
|
|
3572
5114
|
__typename?: 'User';
|
|
5115
|
+
/** Account creation timestamp (ISO-8601). */
|
|
3573
5116
|
createdAt: Scalars['DateTime']['output'];
|
|
5117
|
+
/** Discriminator paired with `gamertag` to form a unique handle; null if unset. */
|
|
3574
5118
|
disambiguation: Maybe<Scalars['String']['output']>;
|
|
5119
|
+
/** Account email; null for anonymized/soft-deleted accounts. */
|
|
3575
5120
|
email: Maybe<Scalars['String']['output']>;
|
|
5121
|
+
/** External identity-provider id for federated accounts, or null. */
|
|
3576
5122
|
externalId: Maybe<Scalars['String']['output']>;
|
|
5123
|
+
/** Public display name; null if unset or anonymized. Unique in combination with `disambiguation`. */
|
|
3577
5124
|
gamertag: Maybe<Scalars['String']['output']>;
|
|
5125
|
+
/** Whether the user qualifies for early access through normal eligibility (the free-play window/rollout). */
|
|
3578
5126
|
grantEarlyAccess: Scalars['Boolean']['output'];
|
|
5127
|
+
/** Admin override forcing early access on/off regardless of normal eligibility (set via `setEarlyAccessOverride`). */
|
|
3579
5128
|
grantEarlyAccessOverride: Scalars['Boolean']['output'];
|
|
5129
|
+
/** Whether the account email has been confirmed. */
|
|
3580
5130
|
isConfirmed: Scalars['Boolean']['output'];
|
|
3581
5131
|
/** Company-employee flag that grants access to control-plane / operator features. Independent from is_super_admin. */
|
|
3582
5132
|
isOperator: Scalars['Boolean']['output'];
|
|
5133
|
+
/** Whether the user holds platform super-admin privileges (toggled via `setSuperAdmin`). */
|
|
3583
5134
|
isSuperAdmin: Scalars['Boolean']['output'];
|
|
5135
|
+
/** Organization the user belongs to, or null. BigInt serialized as a decimal string. */
|
|
3584
5136
|
orgId: Maybe<Scalars['BigInt']['output']>;
|
|
3585
|
-
/** The
|
|
5137
|
+
/** The user's effective permission keys on the given org (empty if not a member; full set if super admin). Requires a valid bearer game token. NOTE: org permissions are management-owned, so in cks-game-api this currently resolves to an empty list — query cks-management-api for authoritative org permissions. */
|
|
3586
5138
|
permissionsForOrg: Array<Scalars['String']['output']>;
|
|
5139
|
+
/** User-level state blob, base64-encoded binary (management-owned). Null when cleared. */
|
|
3587
5140
|
state: Maybe<Scalars['String']['output']>;
|
|
5141
|
+
/** Unique user id and primary key. BigInt serialized as a decimal string. */
|
|
3588
5142
|
userId: Scalars['BigInt']['output'];
|
|
5143
|
+
/** Account type, e.g. "direct" or "deleted". */
|
|
3589
5144
|
userType: Scalars['String']['output'];
|
|
3590
5145
|
};
|
|
3591
5146
|
export type UserPermissionsForOrgArgs = {
|
|
@@ -3593,28 +5148,62 @@ export type UserPermissionsForOrgArgs = {
|
|
|
3593
5148
|
};
|
|
3594
5149
|
export type UserAppState = {
|
|
3595
5150
|
__typename?: 'UserAppState';
|
|
5151
|
+
/** App (game) id this state is scoped to. BigInt serialized as a decimal string. */
|
|
3596
5152
|
appId: Scalars['BigInt']['output'];
|
|
5153
|
+
/** Row creation timestamp (ISO-8601). */
|
|
3597
5154
|
createdAt: Scalars['DateTime']['output'];
|
|
5155
|
+
/** Per-app user state blob, base64-encoded binary; null when cleared. */
|
|
3598
5156
|
state: Maybe<Scalars['String']['output']>;
|
|
5157
|
+
/** Last-update timestamp (ISO-8601). */
|
|
3599
5158
|
updatedAt: Scalars['DateTime']['output'];
|
|
5159
|
+
/** Owner user id. BigInt serialized as a decimal string. */
|
|
3600
5160
|
userId: Scalars['BigInt']['output'];
|
|
3601
5161
|
};
|
|
5162
|
+
/** Aggregated lifetime donation totals for a user. LEGACY: donations are no longer purchasable. Returned by the deprecated myDonationData query. */
|
|
3602
5163
|
export type UserDonationData = {
|
|
3603
5164
|
__typename?: 'UserDonationData';
|
|
5165
|
+
/** ISO currency code for the total, e.g. "usd". */
|
|
3604
5166
|
currency: Scalars['String']['output'];
|
|
5167
|
+
/** Lifetime donation total in minor currency units (cents), as a decimal string. */
|
|
3605
5168
|
totalAmountCents: Scalars['String']['output'];
|
|
3606
5169
|
};
|
|
5170
|
+
/** An edge in a User connection. */
|
|
5171
|
+
export type UserEdge = {
|
|
5172
|
+
__typename?: 'UserEdge';
|
|
5173
|
+
/** Opaque cursor for this edge. */
|
|
5174
|
+
cursor: Scalars['String']['output'];
|
|
5175
|
+
/** The node at the end of this edge. */
|
|
5176
|
+
node: User;
|
|
5177
|
+
};
|
|
5178
|
+
/** Aggregated property-token balances for a user. LEGACY: property tokens are no longer purchasable. Returned by the deprecated myPropertyTokens query. */
|
|
3607
5179
|
export type UserPropertyTokenData = {
|
|
3608
5180
|
__typename?: 'UserPropertyTokenData';
|
|
5181
|
+
/** Property tokens currently available, as a decimal string. */
|
|
3609
5182
|
available: Scalars['String']['output'];
|
|
5183
|
+
/** Property tokens currently in use, as a decimal string. */
|
|
3610
5184
|
inUse: Scalars['String']['output'];
|
|
5185
|
+
/** Sum of available + inUse, as a decimal string. */
|
|
3611
5186
|
total: Scalars['String']['output'];
|
|
3612
5187
|
};
|
|
5188
|
+
/** A Relay cursor connection over User records. Page with first/after; pass pageInfo.endCursor back as after for the next page. */
|
|
5189
|
+
export type UsersConnection = {
|
|
5190
|
+
__typename?: 'UsersConnection';
|
|
5191
|
+
/** Edges on this page. */
|
|
5192
|
+
edges: Array<UserEdge>;
|
|
5193
|
+
/** Pagination metadata. */
|
|
5194
|
+
pageInfo: ConnectionPageInfo;
|
|
5195
|
+
/** Total matching records across all pages, when known (null for sources that do not compute a total). */
|
|
5196
|
+
totalCount: Maybe<Scalars['Int']['output']>;
|
|
5197
|
+
};
|
|
5198
|
+
/** One page of users from usersPaginated, plus pagination metadata. */
|
|
3613
5199
|
export type UsersPage = {
|
|
3614
5200
|
__typename?: 'UsersPage';
|
|
5201
|
+
/** Users on the current page, ordered by ascending user id. */
|
|
3615
5202
|
items: Array<User>;
|
|
5203
|
+
/** Pagination metadata: totalCount, applied limit, and applied offset. */
|
|
3616
5204
|
pageInfo: PageInfo;
|
|
3617
5205
|
};
|
|
5206
|
+
/** A semantic-style version as four integer components (major.minor.patch.build). Compare components in order (major, then minor, then patch, then build). */
|
|
3618
5207
|
export type VersionInfo = {
|
|
3619
5208
|
__typename?: 'VersionInfo';
|
|
3620
5209
|
/** Build number */
|
|
@@ -3626,50 +5215,102 @@ export type VersionInfo = {
|
|
|
3626
5215
|
/** Patch version number */
|
|
3627
5216
|
patch: Scalars['Int']['output'];
|
|
3628
5217
|
};
|
|
5218
|
+
/** A recorded edit to a single voxel (one row of the voxel_updates log): the app/chunk/local-position that changed, the new voxel type, an optional state blob, and who/when. Returned by listVoxels, getVoxelList and listVoxelUpdatesByDistance; created by updateVoxel. A background maintenance job later folds these edits into the chunk grid. */
|
|
3629
5219
|
export type Voxel = {
|
|
3630
5220
|
__typename?: 'Voxel';
|
|
5221
|
+
/** Id of the app this edit belongs to (decimal string). */
|
|
3631
5222
|
appId: Scalars['BigInt']['output'];
|
|
5223
|
+
/** Address of the chunk that contains the edited voxel. */
|
|
3632
5224
|
coordinates: ChunkCoordinates;
|
|
5225
|
+
/** When the edit was recorded; also serves as the last-modified time for the voxel. */
|
|
3633
5226
|
createdAt: Scalars['DateTime']['output'];
|
|
5227
|
+
/** Id of the user that made this edit (decimal string). */
|
|
3634
5228
|
createdBy: Scalars['BigInt']['output'];
|
|
5229
|
+
/** Local position of the edited voxel within its chunk (0-15 per axis). */
|
|
3635
5230
|
location: VoxelCoordinates;
|
|
5231
|
+
/** BASE64-encoded binary state blob for the voxel (decode from base64); null when no state was set. */
|
|
3636
5232
|
state: Maybe<Scalars['String']['output']>;
|
|
5233
|
+
/** New voxel type id written by this edit (0-255). */
|
|
3637
5234
|
voxelType: Scalars['Int']['output'];
|
|
5235
|
+
/** Unique id of this voxel-update row (decimal string). */
|
|
3638
5236
|
voxelUpdateId: Scalars['BigInt']['output'];
|
|
3639
5237
|
};
|
|
5238
|
+
/** Integer (x, y, z) position of a single voxel LOCAL to its chunk (not a world position). Stored as signed 16-bit smallints (-32,768..32,767), but a chunk is 16x16x16 = 4096 voxels, so valid in-bounds positions are 0-15 on each axis. */
|
|
3640
5239
|
export type VoxelCoordinates = {
|
|
3641
5240
|
__typename?: 'VoxelCoordinates';
|
|
5241
|
+
/** Local voxel X within the chunk (0-15 for in-bounds voxels). */
|
|
3642
5242
|
x: Scalars['Int']['output'];
|
|
5243
|
+
/** Local voxel Y within the chunk (0-15 for in-bounds voxels). */
|
|
3643
5244
|
y: Scalars['Int']['output'];
|
|
5245
|
+
/** Local voxel Z within the chunk (0-15 for in-bounds voxels). */
|
|
3644
5246
|
z: Scalars['Int']['output'];
|
|
3645
5247
|
};
|
|
5248
|
+
/** Input form of a voxel position LOCAL to its chunk (see VoxelCoordinates). Signed 16-bit integers; in-bounds positions are 0-15 on each axis for a 16x16x16 chunk. */
|
|
3646
5249
|
export type VoxelCoordinatesInput = {
|
|
5250
|
+
/** Local voxel X within the chunk (0-15 for in-bounds voxels). */
|
|
3647
5251
|
x: Scalars['Int']['input'];
|
|
5252
|
+
/** Local voxel Y within the chunk (0-15 for in-bounds voxels). */
|
|
3648
5253
|
y: Scalars['Int']['input'];
|
|
5254
|
+
/** Local voxel Z within the chunk (0-15 for in-bounds voxels). */
|
|
3649
5255
|
z: Scalars['Int']['input'];
|
|
3650
5256
|
};
|
|
5257
|
+
/** A single voxel's state override stored on a chunk: its local position, its voxel type, and an opaque base64-encoded state blob. */
|
|
3651
5258
|
export type VoxelState = {
|
|
3652
5259
|
__typename?: 'VoxelState';
|
|
5260
|
+
/** BASE64-encoded binary state blob for this voxel (decode from base64); null/empty when the voxel has no extra state. */
|
|
3653
5261
|
state: Maybe<Scalars['String']['output']>;
|
|
5262
|
+
/** Local voxel position within the chunk (0-15 per axis). */
|
|
3654
5263
|
voxelCoord: VoxelCoordinates;
|
|
5264
|
+
/** Voxel type id at this position (0-255). */
|
|
3655
5265
|
voxelType: Scalars['Int']['output'];
|
|
3656
5266
|
};
|
|
5267
|
+
/** One per-voxel state entry to write to a chunk. */
|
|
3657
5268
|
export type VoxelStateInput = {
|
|
5269
|
+
/** BASE64-encoded binary state blob for this voxel; omit/null for no extra state. */
|
|
3658
5270
|
state?: InputMaybe<Scalars['String']['input']>;
|
|
5271
|
+
/** Local voxel position within the chunk (0-15 per axis). */
|
|
3659
5272
|
voxelCoord: VoxelCoordinatesInput;
|
|
5273
|
+
/** Voxel type id to set at this position (0-255). */
|
|
3660
5274
|
voxelType: Scalars['Int']['input'];
|
|
3661
5275
|
};
|
|
5276
|
+
/** Relay-style cursor-paginated connection over voxel edit history entries (VoxelUpdateHistoryEvent). Page with `first`/`after`; cursors are opaque. */
|
|
5277
|
+
export type VoxelUpdateHistoryConnection = {
|
|
5278
|
+
__typename?: 'VoxelUpdateHistoryConnection';
|
|
5279
|
+
/** Edges on this page. */
|
|
5280
|
+
edges: Array<VoxelUpdateHistoryEventEdge>;
|
|
5281
|
+
/** Pagination metadata. */
|
|
5282
|
+
pageInfo: ConnectionPageInfo;
|
|
5283
|
+
/** Total matching records across all pages, when known (null for sources that do not compute a total). */
|
|
5284
|
+
totalCount: Maybe<Scalars['Int']['output']>;
|
|
5285
|
+
};
|
|
5286
|
+
/** One entry in the immutable voxel edit history (voxel_updates_history): a recorded change of a single voxel's type, with who and when. Returned by voxelUpdateHistory, newest first. */
|
|
3662
5287
|
export type VoxelUpdateHistoryEvent = {
|
|
3663
5288
|
__typename?: 'VoxelUpdateHistoryEvent';
|
|
5289
|
+
/** Id of the app this change belongs to (decimal string). */
|
|
3664
5290
|
appId: Scalars['BigInt']['output'];
|
|
5291
|
+
/** Timestamp when the change occurred. */
|
|
3665
5292
|
changedAt: Scalars['DateTime']['output'];
|
|
5293
|
+
/** Id of the user that made the change (decimal string), or null if unknown. */
|
|
3666
5294
|
changedBy: Maybe<Scalars['BigInt']['output']>;
|
|
5295
|
+
/** Address of the chunk that contains the changed voxel. */
|
|
3667
5296
|
coordinates: ChunkCoordinates;
|
|
5297
|
+
/** Unique id of this history entry (decimal string). */
|
|
3668
5298
|
id: Scalars['BigInt']['output'];
|
|
5299
|
+
/** Local position of the changed voxel within its chunk. */
|
|
3669
5300
|
location: VoxelCoordinates;
|
|
5301
|
+
/** Voxel type after the change, or null if the voxel was cleared/removed. */
|
|
3670
5302
|
newVoxelType: Maybe<Scalars['Int']['output']>;
|
|
5303
|
+
/** Voxel type before the change, or null if the voxel did not previously exist. */
|
|
3671
5304
|
oldVoxelType: Maybe<Scalars['Int']['output']>;
|
|
3672
5305
|
};
|
|
5306
|
+
/** An edge in a VoxelUpdateHistoryEvent connection. */
|
|
5307
|
+
export type VoxelUpdateHistoryEventEdge = {
|
|
5308
|
+
__typename?: 'VoxelUpdateHistoryEventEdge';
|
|
5309
|
+
/** Opaque cursor for this edge. */
|
|
5310
|
+
cursor: Scalars['String']['output'];
|
|
5311
|
+
/** The node at the end of this edge. */
|
|
5312
|
+
node: VoxelUpdateHistoryEvent;
|
|
5313
|
+
};
|
|
3673
5314
|
/** Notification received when a voxel (block) is updated by another client or the server. Received via the udpNotifications subscription. */
|
|
3674
5315
|
export type VoxelUpdateNotification = {
|
|
3675
5316
|
__typename?: 'VoxelUpdateNotification';
|
|
@@ -3712,7 +5353,7 @@ export type VoxelUpdateRequestInput = {
|
|
|
3712
5353
|
decayRate?: InputMaybe<Scalars['Int']['input']>;
|
|
3713
5354
|
/** Chunk replication distance (0-8). Defaults to 8 for voxel updates. Clamped to 0-8. */
|
|
3714
5355
|
distance?: InputMaybe<Scalars['Int']['input']>;
|
|
3715
|
-
/** Client
|
|
5356
|
+
/** Client-assigned correlation id for this datagram: a uint8 (0-255) that wraps at gameClientBootstrap.sequenceNumberModulo (256); defaults to 0 if omitted. For CORRELATION ONLY — it is NOT an idempotency key and the server does not dedupe replays. Echoed on the matching response and on any GenericErrorResponse for this send, both delivered on the udpNotifications subscription. */
|
|
3716
5357
|
sequenceNumber?: InputMaybe<Scalars['Int']['input']>;
|
|
3717
5358
|
/** A unique identifier for this voxel update. Must be exactly 32 bytes when encoded as UTF-8. */
|
|
3718
5359
|
uuid: Scalars['String']['input'];
|
|
@@ -3740,31 +5381,64 @@ export type VoxelUpdateResponse = {
|
|
|
3740
5381
|
distance: Scalars['Int']['output'];
|
|
3741
5382
|
/** Server-generated epoch milliseconds timestamp. */
|
|
3742
5383
|
epochMillis: Scalars['BigInt']['output'];
|
|
3743
|
-
/** The
|
|
5384
|
+
/** The sequenceNumber echoed back from the originating sendVoxelUpdate request (a uint8, 0-255, wrapping at modulo 256). Use it to correlate this response with that send. Correlation only — not an idempotency key. */
|
|
3744
5385
|
sequenceNumber: Scalars['Int']['output'];
|
|
3745
5386
|
/** The unique identifier for this voxel update. */
|
|
3746
5387
|
uuid: Scalars['String']['output'];
|
|
3747
5388
|
};
|
|
5389
|
+
/** Result of listVoxelUpdatesByDistance: per-chunk groups of voxel edits ordered by increasing distance from the center, plus an echo of the pagination applied. */
|
|
3748
5390
|
export type VoxelUpdatesByDistanceResponse = {
|
|
3749
5391
|
__typename?: 'VoxelUpdatesByDistanceResponse';
|
|
5392
|
+
/** The center chunk the search was performed around. */
|
|
3750
5393
|
centerCoordinate: ChunkCoordinates;
|
|
5394
|
+
/** Per-chunk groups of voxel edits, ordered by increasing Chebyshev distance from centerCoordinate. */
|
|
3751
5395
|
chunks: Array<ChunkVoxelUpdatesResponse>;
|
|
5396
|
+
/** Echo of the chunk `limit` applied to this page, or null if none was supplied. */
|
|
3752
5397
|
limit: Maybe<Scalars['Int']['output']>;
|
|
5398
|
+
/** Echo of the chunk `skip` applied to this page, or null if none was supplied. */
|
|
3753
5399
|
skip: Maybe<Scalars['Int']['output']>;
|
|
3754
5400
|
};
|
|
3755
5401
|
export type WalletTransaction = {
|
|
3756
5402
|
__typename?: 'WalletTransaction';
|
|
5403
|
+
/** Signed change applied to the wallet in minor currency units (cents), as a BigInt decimal string: positive credits funds, negative debits funds. */
|
|
3757
5404
|
amountCents: Scalars['BigInt']['output'];
|
|
5405
|
+
/** App that incurred the charge (BigInt as a decimal string), set on usage-type transactions; null for org-level credits such as top-ups. */
|
|
3758
5406
|
appId: Maybe<Scalars['BigInt']['output']>;
|
|
5407
|
+
/** Wallet balance in cents immediately after this transaction was applied, as a BigInt decimal string. */
|
|
3759
5408
|
balanceAfter: Scalars['BigInt']['output'];
|
|
5409
|
+
/** When the transaction was recorded (ISO-8601 UTC timestamp). */
|
|
3760
5410
|
createdAt: Scalars['DateTime']['output'];
|
|
5411
|
+
/** Optional human-readable note describing the transaction; null when not set. */
|
|
3761
5412
|
description: Maybe<Scalars['String']['output']>;
|
|
5413
|
+
/** Organization that owns the wallet (BigInt as a decimal string). */
|
|
3762
5414
|
orgId: Scalars['BigInt']['output'];
|
|
5415
|
+
/** Optional external reference (e.g. payment-provider charge id or checkout id) linking this transaction to its source; null when not set. */
|
|
3763
5416
|
referenceId: Maybe<Scalars['String']['output']>;
|
|
5417
|
+
/** Unique transaction id (BigInt as a decimal string). */
|
|
3764
5418
|
transactionId: Scalars['BigInt']['output'];
|
|
5419
|
+
/** What produced this transaction. Known values: "topup" (wallet credit from a checkout/top-up), "usage" (per-app usage charge, negative), "shared_usage" (shared-environment usage charge, negative), "environment_usage" (hourly environment cost, negative), "auto_recharge" (automatic wallet recharge). Other caller-supplied deposit types are possible. */
|
|
3765
5420
|
transactionType: Scalars['String']['output'];
|
|
5421
|
+
/** Wallet this transaction belongs to (BigInt as a decimal string). */
|
|
3766
5422
|
walletId: Scalars['BigInt']['output'];
|
|
3767
5423
|
};
|
|
5424
|
+
/** An edge in a WalletTransaction connection. */
|
|
5425
|
+
export type WalletTransactionEdge = {
|
|
5426
|
+
__typename?: 'WalletTransactionEdge';
|
|
5427
|
+
/** Opaque cursor for this edge. */
|
|
5428
|
+
cursor: Scalars['String']['output'];
|
|
5429
|
+
/** The node at the end of this edge. */
|
|
5430
|
+
node: WalletTransaction;
|
|
5431
|
+
};
|
|
5432
|
+
/** A Relay cursor connection over WalletTransaction records. Page with first/after; pass pageInfo.endCursor back as after for the next page. */
|
|
5433
|
+
export type WalletTransactionsConnection = {
|
|
5434
|
+
__typename?: 'WalletTransactionsConnection';
|
|
5435
|
+
/** Edges on this page. */
|
|
5436
|
+
edges: Array<WalletTransactionEdge>;
|
|
5437
|
+
/** Pagination metadata. */
|
|
5438
|
+
pageInfo: ConnectionPageInfo;
|
|
5439
|
+
/** Total matching records across all pages, when known (null for sources that do not compute a total). */
|
|
5440
|
+
totalCount: Maybe<Scalars['Int']['output']>;
|
|
5441
|
+
};
|
|
3768
5442
|
export type ActorQueryVariables = Exact<{
|
|
3769
5443
|
uuid: Scalars['String']['input'];
|
|
3770
5444
|
}>;
|
|
@@ -3855,6 +5529,7 @@ export type CreateActorMutation = {
|
|
|
3855
5529
|
};
|
|
3856
5530
|
export type DeleteActorMutationVariables = Exact<{
|
|
3857
5531
|
uuid: Scalars['String']['input'];
|
|
5532
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
3858
5533
|
}>;
|
|
3859
5534
|
export type DeleteActorMutation = {
|
|
3860
5535
|
__typename?: 'Mutation';
|
|
@@ -6193,6 +7868,7 @@ export type CreateTeamRoleMutation = {
|
|
|
6193
7868
|
};
|
|
6194
7869
|
export type DeleteTeamMutationVariables = Exact<{
|
|
6195
7870
|
groupId: Scalars['BigInt']['input'];
|
|
7871
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
6196
7872
|
}>;
|
|
6197
7873
|
export type DeleteTeamMutation = {
|
|
6198
7874
|
__typename?: 'Mutation';
|
|
@@ -6229,6 +7905,7 @@ export type JoinTeamMutation = {
|
|
|
6229
7905
|
};
|
|
6230
7906
|
export type LeaveTeamMutationVariables = Exact<{
|
|
6231
7907
|
groupId: Scalars['BigInt']['input'];
|
|
7908
|
+
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
6232
7909
|
}>;
|
|
6233
7910
|
export type LeaveTeamMutation = {
|
|
6234
7911
|
__typename?: 'Mutation';
|