rozod 6.4.2 → 6.5.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.
Files changed (41) hide show
  1. package/README.md +35 -57
  2. package/lib/endpoints/authv1.d.ts +4 -1
  3. package/lib/endpoints/authv1.js +4 -1
  4. package/lib/endpoints/authv2.d.ts +3 -1
  5. package/lib/endpoints/authv2.js +3 -1
  6. package/lib/endpoints/catalogv1.d.ts +1 -0
  7. package/lib/endpoints/catalogv1.js +1 -0
  8. package/lib/endpoints/catalogv2.d.ts +1 -0
  9. package/lib/endpoints/catalogv2.js +1 -0
  10. package/lib/endpoints/friendsv1.d.ts +6 -1
  11. package/lib/endpoints/friendsv1.js +6 -1
  12. package/lib/endpoints/gameinternationalizationv1.d.ts +40 -0
  13. package/lib/endpoints/gameinternationalizationv1.js +42 -1
  14. package/lib/endpoints/gamesv1.d.ts +12 -0
  15. package/lib/endpoints/gamesv1.js +12 -0
  16. package/lib/endpoints/groupsv1.d.ts +8 -1
  17. package/lib/endpoints/groupsv1.js +8 -1
  18. package/lib/endpoints/groupsv2.d.ts +151 -0
  19. package/lib/endpoints/groupsv2.js +147 -1
  20. package/lib/endpoints/itemconfigurationv1.d.ts +6 -164
  21. package/lib/endpoints/itemconfigurationv1.js +7 -165
  22. package/lib/endpoints/twostepverificationv1.d.ts +2 -0
  23. package/lib/endpoints/twostepverificationv1.js +2 -0
  24. package/lib/index.js +1 -1
  25. package/lib/opencloud/v1/asset-permissions.d.ts +7 -7
  26. package/lib/opencloud/v1/asset-permissions.js +1 -1
  27. package/lib/opencloud/v1/assets.d.ts +3 -3
  28. package/lib/opencloud/v1/assets.js +1 -1
  29. package/lib/opencloud/v1/datastores-ordered.d.ts +1 -1
  30. package/lib/opencloud/v1/datastores-ordered.js +1 -1
  31. package/lib/opencloud/v1/developer-products.d.ts +7 -7
  32. package/lib/opencloud/v1/developer-products.js +1 -1
  33. package/lib/opencloud/v1/game-passes.d.ts +6 -6
  34. package/lib/opencloud/v1/game-passes.js +1 -1
  35. package/lib/opencloud/v1/messaging.d.ts +2 -0
  36. package/lib/opencloud/v1/messaging.js +2 -0
  37. package/lib/opencloud/v1/secrets-store.d.ts +6 -6
  38. package/lib/opencloud/v1/secrets-store.js +1 -1
  39. package/lib/opencloud/v2/cloud.d.ts +69 -74
  40. package/lib/opencloud/v2/cloud.js +11 -16
  41. package/package.json +4 -3
@@ -41,6 +41,7 @@ const Roblox_Groups_Api_GroupRoleResponse = zod_1.z.object({
41
41
  description: zod_1.z.string(),
42
42
  rank: zod_1.z.number().int(),
43
43
  memberCount: zod_1.z.number().int(),
44
+ isBase: zod_1.z.boolean(),
44
45
  });
45
46
  const Roblox_Groups_Api_UserGroupRoleResponse = zod_1.z.object({
46
47
  user: Roblox_Groups_Api_Models_Response_UserModel,
@@ -238,6 +239,9 @@ const Roblox_Groups_Api_PayoutRequest = zod_1.z.object({
238
239
  Recipients: zod_1.z.array(Roblox_Groups_Api_PayoutRecipientRequest),
239
240
  IdempotencyKey: zod_1.z.string(),
240
241
  });
242
+ const Roblox_Groups_Api_OneTimePayoutResponse = zod_1.z.object({
243
+ status: zod_1.z.enum(['NotHeld', 'Held']),
244
+ });
241
245
  const Roblox_Groups_Api_GroupRelationshipsResponse = zod_1.z.object({
242
246
  groupId: zod_1.z.number().int(),
243
247
  relationshipType: zod_1.z.enum(['Allies', 'Enemies']),
@@ -454,6 +458,7 @@ const Roblox_Groups_Api_GroupRoleDetailResponse = zod_1.z.object({
454
458
  description: zod_1.z.string(),
455
459
  rank: zod_1.z.number().int(),
456
460
  memberCount: zod_1.z.number().int(),
461
+ isBase: zod_1.z.boolean(),
457
462
  });
458
463
  const Roblox_Web_WebAPI_Models_ApiArrayResponse_Roblox_Groups_Api_GroupRoleDetailResponse_ = zod_1.z.object({
459
464
  data: zod_1.z.array(Roblox_Groups_Api_GroupRoleDetailResponse),
@@ -787,6 +792,8 @@ exports.getGroupsGroupidAuditLog = (0, __1.endpoint)({
787
792
  'LeaveGroup',
788
793
  'UpdateGroupIcon',
789
794
  'UpdateGroupCoverPhoto',
795
+ 'AssignRole',
796
+ 'UnassignRole',
790
797
  ])
791
798
  .optional(),
792
799
  userId: zod_1.z.number().int().optional(),
@@ -1957,7 +1964,7 @@ exports.postGroupsGroupidPayouts = (0, __1.endpoint)({
1957
1964
  groupId: zod_1.z.number().int(),
1958
1965
  },
1959
1966
  body: Roblox_Groups_Api_PayoutRequest,
1960
- response: zod_1.z.object({}),
1967
+ response: Roblox_Groups_Api_OneTimePayoutResponse,
1961
1968
  errors: [
1962
1969
  {
1963
1970
  status: 400,
@@ -142,12 +142,46 @@ const Roblox_Groups_Api_Models_Response_UserModel = z.object({
142
142
  username: z.string(),
143
143
  displayName: z.string(),
144
144
  });
145
+ const Roblox_Groups_Api_ShoutResponse = z.object({
146
+ body: z.string(),
147
+ poster: Roblox_Groups_Api_Models_Response_UserModel,
148
+ created: z.string().datetime({ offset: true }),
149
+ updated: z.string().datetime({ offset: true }),
150
+ });
151
+ const Roblox_Groups_Api_GroupDetailResponse = z.object({
152
+ id: z.number().int(),
153
+ name: z.string(),
154
+ description: z.string(),
155
+ owner: Roblox_Groups_Api_Models_Response_UserModel,
156
+ shout: Roblox_Groups_Api_ShoutResponse,
157
+ memberCount: z.number().int(),
158
+ isBuildersClubOnly: z.boolean(),
159
+ publicEntryAllowed: z.boolean(),
160
+ isLocked: z.boolean(),
161
+ hasVerifiedBadge: z.boolean(),
162
+ hasSocialModules: z.boolean(),
163
+ });
164
+ const Roblox_Web_WebAPI_Models_ApiPageResponse_Roblox_Groups_Api_GroupDetailResponse_ =
165
+ z.object({
166
+ previousPageCursor: z.string(),
167
+ nextPageCursor: z.string(),
168
+ data: z.array(Roblox_Groups_Api_GroupDetailResponse),
169
+ });
170
+ const Roblox_Groups_Api_Models_Response_GroupRelationshipsV2Response = z.object(
171
+ {
172
+ groupId: z.number().int(),
173
+ relationshipType: z.enum(["Allies", "Enemies"]),
174
+ groupResponses:
175
+ Roblox_Web_WebAPI_Models_ApiPageResponse_Roblox_Groups_Api_GroupDetailResponse_,
176
+ }
177
+ );
145
178
  const Roblox_Groups_Api_GroupRoleResponse = z.object({
146
179
  id: z.number().int(),
147
180
  name: z.string(),
148
181
  description: z.string(),
149
182
  rank: z.number().int(),
150
183
  memberCount: z.number().int(),
184
+ isBase: z.boolean(),
151
185
  });
152
186
  const Roblox_Groups_Api_UserGroupRoleResponse = z.object({
153
187
  user: Roblox_Groups_Api_Models_Response_UserModel,
@@ -293,6 +327,123 @@ export const getGroupsGroupidExperiences = endpoint({
293
327
  },
294
328
  ],
295
329
  });
330
+ /**
331
+ * @api GET https://groups.roblox.com/v2/groups/:groupId/relationships/:groupRelationshipType
332
+ * @summary Gets a group's relationships with cursor-based pagination.
333
+ * @param groupId The group Id.
334
+ * @param groupRelationshipType The group relationship type, enemies or allies.
335
+ * @param limit The number of results per request.
336
+ * @param cursor The paging cursor for the previous or next page.
337
+ * @param sortOrder The order the results are sorted in.
338
+ */
339
+ export const getGroupsGroupidRelationshipsGrouprelationshiptype = endpoint({
340
+ method: "GET",
341
+ path: "/v2/groups/:groupId/relationships/:groupRelationshipType",
342
+ baseUrl: "https://groups.roblox.com",
343
+ requestFormat: "json",
344
+ serializationMethod: {
345
+ groupId: {
346
+ style: "simple",
347
+ },
348
+ groupRelationshipType: {
349
+ style: "simple",
350
+ },
351
+ limit: {
352
+ style: "form",
353
+ explode: true,
354
+ },
355
+ cursor: {
356
+ style: "form",
357
+ explode: true,
358
+ },
359
+ sortOrder: {
360
+ style: "form",
361
+ explode: true,
362
+ },
363
+ },
364
+ parameters: {
365
+ groupId: z.number().int(),
366
+ groupRelationshipType: z.string(),
367
+ limit: z
368
+ .union([z.literal(10), z.literal(25), z.literal(50), z.literal(100)])
369
+ .optional()
370
+ .default(10),
371
+ cursor: z.string().optional(),
372
+ sortOrder: z.enum(["Asc", "Desc"]).optional().default("Asc"),
373
+ },
374
+ response: Roblox_Groups_Api_Models_Response_GroupRelationshipsV2Response,
375
+ errors: [
376
+ {
377
+ status: 400,
378
+ description: `1: Group is invalid or does not exist.
379
+ 4: Group relationship type or request type is invalid.
380
+ 8: Invalid or missing pagination parameters`,
381
+ },
382
+ ],
383
+ });
384
+ /**
385
+ * @api GET https://groups.roblox.com/v2/groups/:groupId/relationships/:groupRelationshipType/requests
386
+ * @summary Gets a group's relationship requests with cursor-based pagination.
387
+ * @param groupId The group Id.
388
+ * @param groupRelationshipType The group relationship type of the request, only allies are supported.
389
+ * @param limit The number of results per request.
390
+ * @param cursor The paging cursor for the previous or next page.
391
+ * @param sortOrder The order the results are sorted in.
392
+ */
393
+ export const getGroupsGroupidRelationshipsGrouprelationshiptypeRequests =
394
+ endpoint({
395
+ method: "GET",
396
+ path: "/v2/groups/:groupId/relationships/:groupRelationshipType/requests",
397
+ baseUrl: "https://groups.roblox.com",
398
+ requestFormat: "json",
399
+ serializationMethod: {
400
+ groupId: {
401
+ style: "simple",
402
+ },
403
+ groupRelationshipType: {
404
+ style: "simple",
405
+ },
406
+ limit: {
407
+ style: "form",
408
+ explode: true,
409
+ },
410
+ cursor: {
411
+ style: "form",
412
+ explode: true,
413
+ },
414
+ sortOrder: {
415
+ style: "form",
416
+ explode: true,
417
+ },
418
+ },
419
+ parameters: {
420
+ groupId: z.number().int(),
421
+ groupRelationshipType: z.string(),
422
+ limit: z
423
+ .union([z.literal(10), z.literal(25), z.literal(50), z.literal(100)])
424
+ .optional()
425
+ .default(10),
426
+ cursor: z.string().optional(),
427
+ sortOrder: z.enum(["Asc", "Desc"]).optional().default("Asc"),
428
+ },
429
+ response: Roblox_Groups_Api_Models_Response_GroupRelationshipsV2Response,
430
+ errors: [
431
+ {
432
+ status: 400,
433
+ description: `1: Group is invalid or does not exist.
434
+ 4: Group relationship type or request type is invalid.
435
+ 8: Invalid or missing pagination parameters`,
436
+ },
437
+ {
438
+ status: 401,
439
+ description: `0: Authorization has been denied for this request.`,
440
+ },
441
+ {
442
+ status: 403,
443
+ description: `5: You don't have permission to manage this group's relationships.`,
444
+ },
445
+ ],
446
+ });
296
447
  /**
297
448
  * @api GET https://groups.roblox.com/v2/groups/:groupId/wall/posts
298
449
  * @summary Gets a list of group wall posts.
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getUsersUseridGroupsRoles = exports.postGroupsGroupidWallPosts = exports.getGroupsGroupidWallPosts = exports.getGroupsGroupidExperiences = exports.getGroups = void 0;
3
+ exports.getUsersUseridGroupsRoles = exports.postGroupsGroupidWallPosts = exports.getGroupsGroupidWallPosts = exports.getGroupsGroupidRelationshipsGrouprelationshiptypeRequests = exports.getGroupsGroupidRelationshipsGrouprelationshiptype = exports.getGroupsGroupidExperiences = exports.getGroups = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const __1 = require("..");
6
6
  const Roblox_Web_Responses_RelatedEntityTypeResponse_Roblox_Web_Responses_Groups_GroupOwnerType_ = zod_1.z.object({
@@ -136,12 +136,42 @@ const Roblox_Groups_Api_Models_Response_UserModel = zod_1.z.object({
136
136
  username: zod_1.z.string(),
137
137
  displayName: zod_1.z.string(),
138
138
  });
139
+ const Roblox_Groups_Api_ShoutResponse = zod_1.z.object({
140
+ body: zod_1.z.string(),
141
+ poster: Roblox_Groups_Api_Models_Response_UserModel,
142
+ created: zod_1.z.string().datetime({ offset: true }),
143
+ updated: zod_1.z.string().datetime({ offset: true }),
144
+ });
145
+ const Roblox_Groups_Api_GroupDetailResponse = zod_1.z.object({
146
+ id: zod_1.z.number().int(),
147
+ name: zod_1.z.string(),
148
+ description: zod_1.z.string(),
149
+ owner: Roblox_Groups_Api_Models_Response_UserModel,
150
+ shout: Roblox_Groups_Api_ShoutResponse,
151
+ memberCount: zod_1.z.number().int(),
152
+ isBuildersClubOnly: zod_1.z.boolean(),
153
+ publicEntryAllowed: zod_1.z.boolean(),
154
+ isLocked: zod_1.z.boolean(),
155
+ hasVerifiedBadge: zod_1.z.boolean(),
156
+ hasSocialModules: zod_1.z.boolean(),
157
+ });
158
+ const Roblox_Web_WebAPI_Models_ApiPageResponse_Roblox_Groups_Api_GroupDetailResponse_ = zod_1.z.object({
159
+ previousPageCursor: zod_1.z.string(),
160
+ nextPageCursor: zod_1.z.string(),
161
+ data: zod_1.z.array(Roblox_Groups_Api_GroupDetailResponse),
162
+ });
163
+ const Roblox_Groups_Api_Models_Response_GroupRelationshipsV2Response = zod_1.z.object({
164
+ groupId: zod_1.z.number().int(),
165
+ relationshipType: zod_1.z.enum(['Allies', 'Enemies']),
166
+ groupResponses: Roblox_Web_WebAPI_Models_ApiPageResponse_Roblox_Groups_Api_GroupDetailResponse_,
167
+ });
139
168
  const Roblox_Groups_Api_GroupRoleResponse = zod_1.z.object({
140
169
  id: zod_1.z.number().int(),
141
170
  name: zod_1.z.string(),
142
171
  description: zod_1.z.string(),
143
172
  rank: zod_1.z.number().int(),
144
173
  memberCount: zod_1.z.number().int(),
174
+ isBase: zod_1.z.boolean(),
145
175
  });
146
176
  const Roblox_Groups_Api_UserGroupRoleResponse = zod_1.z.object({
147
177
  user: Roblox_Groups_Api_Models_Response_UserModel,
@@ -282,6 +312,122 @@ exports.getGroupsGroupidExperiences = (0, __1.endpoint)({
282
312
  },
283
313
  ],
284
314
  });
315
+ /**
316
+ * @api GET https://groups.roblox.com/v2/groups/:groupId/relationships/:groupRelationshipType
317
+ * @summary Gets a group's relationships with cursor-based pagination.
318
+ * @param groupId The group Id.
319
+ * @param groupRelationshipType The group relationship type, enemies or allies.
320
+ * @param limit The number of results per request.
321
+ * @param cursor The paging cursor for the previous or next page.
322
+ * @param sortOrder The order the results are sorted in.
323
+ */
324
+ exports.getGroupsGroupidRelationshipsGrouprelationshiptype = (0, __1.endpoint)({
325
+ method: 'GET',
326
+ path: '/v2/groups/:groupId/relationships/:groupRelationshipType',
327
+ baseUrl: 'https://groups.roblox.com',
328
+ requestFormat: 'json',
329
+ serializationMethod: {
330
+ groupId: {
331
+ style: 'simple',
332
+ },
333
+ groupRelationshipType: {
334
+ style: 'simple',
335
+ },
336
+ limit: {
337
+ style: 'form',
338
+ explode: true,
339
+ },
340
+ cursor: {
341
+ style: 'form',
342
+ explode: true,
343
+ },
344
+ sortOrder: {
345
+ style: 'form',
346
+ explode: true,
347
+ },
348
+ },
349
+ parameters: {
350
+ groupId: zod_1.z.number().int(),
351
+ groupRelationshipType: zod_1.z.string(),
352
+ limit: zod_1.z
353
+ .union([zod_1.z.literal(10), zod_1.z.literal(25), zod_1.z.literal(50), zod_1.z.literal(100)])
354
+ .optional()
355
+ .default(10),
356
+ cursor: zod_1.z.string().optional(),
357
+ sortOrder: zod_1.z.enum(['Asc', 'Desc']).optional().default('Asc'),
358
+ },
359
+ response: Roblox_Groups_Api_Models_Response_GroupRelationshipsV2Response,
360
+ errors: [
361
+ {
362
+ status: 400,
363
+ description: `1: Group is invalid or does not exist.
364
+ 4: Group relationship type or request type is invalid.
365
+ 8: Invalid or missing pagination parameters`,
366
+ },
367
+ ],
368
+ });
369
+ /**
370
+ * @api GET https://groups.roblox.com/v2/groups/:groupId/relationships/:groupRelationshipType/requests
371
+ * @summary Gets a group's relationship requests with cursor-based pagination.
372
+ * @param groupId The group Id.
373
+ * @param groupRelationshipType The group relationship type of the request, only allies are supported.
374
+ * @param limit The number of results per request.
375
+ * @param cursor The paging cursor for the previous or next page.
376
+ * @param sortOrder The order the results are sorted in.
377
+ */
378
+ exports.getGroupsGroupidRelationshipsGrouprelationshiptypeRequests = (0, __1.endpoint)({
379
+ method: 'GET',
380
+ path: '/v2/groups/:groupId/relationships/:groupRelationshipType/requests',
381
+ baseUrl: 'https://groups.roblox.com',
382
+ requestFormat: 'json',
383
+ serializationMethod: {
384
+ groupId: {
385
+ style: 'simple',
386
+ },
387
+ groupRelationshipType: {
388
+ style: 'simple',
389
+ },
390
+ limit: {
391
+ style: 'form',
392
+ explode: true,
393
+ },
394
+ cursor: {
395
+ style: 'form',
396
+ explode: true,
397
+ },
398
+ sortOrder: {
399
+ style: 'form',
400
+ explode: true,
401
+ },
402
+ },
403
+ parameters: {
404
+ groupId: zod_1.z.number().int(),
405
+ groupRelationshipType: zod_1.z.string(),
406
+ limit: zod_1.z
407
+ .union([zod_1.z.literal(10), zod_1.z.literal(25), zod_1.z.literal(50), zod_1.z.literal(100)])
408
+ .optional()
409
+ .default(10),
410
+ cursor: zod_1.z.string().optional(),
411
+ sortOrder: zod_1.z.enum(['Asc', 'Desc']).optional().default('Asc'),
412
+ },
413
+ response: Roblox_Groups_Api_Models_Response_GroupRelationshipsV2Response,
414
+ errors: [
415
+ {
416
+ status: 400,
417
+ description: `1: Group is invalid or does not exist.
418
+ 4: Group relationship type or request type is invalid.
419
+ 8: Invalid or missing pagination parameters`,
420
+ },
421
+ {
422
+ status: 401,
423
+ description: `0: Authorization has been denied for this request.`,
424
+ },
425
+ {
426
+ status: 403,
427
+ description: `5: You don't have permission to manage this group's relationships.`,
428
+ },
429
+ ],
430
+ });
285
431
  /**
286
432
  * @api GET https://groups.roblox.com/v2/groups/:groupId/wall/posts
287
433
  * @summary Gets a list of group wall posts.
@@ -11,31 +11,6 @@ const Roblox_Web_WebAPI_Models_ApiPageResponse_Roblox_ItemConfiguration_Api_Asse
11
11
  nextPageCursor: z.string(),
12
12
  data: z.array(Roblox_ItemConfiguration_Api_AssetCreationsResponse),
13
13
  });
14
- const Roblox_ItemConfiguration_Api_TagDetails = z.object({
15
- tagId: z.string(),
16
- name: z.string(),
17
- localizedDisplayName: z.string(),
18
- status: z.enum(["Success", "MissingItem"]),
19
- });
20
- const Roblox_ItemConfiguration_Api_ItemTagDetails = z.object({
21
- id: z.string(),
22
- tag: Roblox_ItemConfiguration_Api_TagDetails,
23
- });
24
- const Roblox_ItemConfiguration_Api_ItemWithTags = z.object({
25
- id: z.string(),
26
- itemTags: z.array(Roblox_ItemConfiguration_Api_ItemTagDetails),
27
- });
28
- const Roblox_Web_WebAPI_Models_ApiArrayResponse_Roblox_ItemConfiguration_Api_ItemWithTags_ =
29
- z.object({ data: z.array(Roblox_ItemConfiguration_Api_ItemWithTags) });
30
- const Roblox_ItemConfiguration_Api_CreateItemTagRequest = z.object({
31
- itemId: z.string(),
32
- tagId: z.string(),
33
- });
34
- const Roblox_ItemConfiguration_Api_ItemTagsMetadataResponse = z.object({
35
- isItemTagsFeatureEnabled: z.boolean(),
36
- enabledAssetTypes: z.array(z.string()),
37
- maximumItemTagsPerItem: z.number().int(),
38
- });
39
14
  const Roblox_ItemConfiguration_Api_AssetCreationsDetailsRequest = z.object({
40
15
  AssetIds: z.array(z.number()),
41
16
  });
@@ -79,7 +54,6 @@ const Roblox_ItemConfiguration_Api_AssetCreationsDetailsResponse = z.object({
79
54
  isDelisted: z.boolean(),
80
55
  isCreatedForBundle: z.boolean(),
81
56
  });
82
- const Roblox_Web_WebAPI_ApiEmptyResponseModel = z.object({});
83
57
 
84
58
  /**
85
59
  * @api POST https://itemconfiguration.roblox.com/v1/creations/get-asset-details
@@ -198,147 +172,15 @@ export const getCreationsGetAssets = endpoint({
198
172
  },
199
173
  ],
200
174
  });
201
- /**
202
- * @api GET https://itemconfiguration.roblox.com/v1/item-tags
203
- * @summary Gets all related item tags for each item id listed.
204
- * @param itemIds
205
- */
206
- export const getItemTags = endpoint({
207
- method: "GET",
208
- path: "/v1/item-tags",
209
- baseUrl: "https://itemconfiguration.roblox.com",
210
- requestFormat: "json",
211
- serializationMethod: {
212
- itemIds: {
213
- style: "form",
214
- },
215
- },
216
- parameters: {
217
- itemIds: z.array(z.string()),
218
- },
219
- response:
220
- Roblox_Web_WebAPI_Models_ApiArrayResponse_Roblox_ItemConfiguration_Api_ItemWithTags_,
221
- errors: [
222
- {
223
- status: 400,
224
- description: `1: No item tag Ids requested
225
- 2: Too many item tag Ids requested
226
- 3: Invalid item id
227
- 6: Invalid item namespace`,
228
- },
229
- {
230
- status: 404,
231
- description: `10: The endpoint was not found`,
232
- },
233
- {
234
- status: 429,
235
- description: `7: Too many requests`,
236
- },
237
- ],
238
- });
239
- /**
240
- * @api POST https://itemconfiguration.roblox.com/v1/item-tags
241
- * @summary Creates a new item tag.
242
- * @param body
243
- */
244
- export const postItemTags = endpoint({
245
- method: "POST",
246
- path: "/v1/item-tags",
247
- baseUrl: "https://itemconfiguration.roblox.com",
248
- requestFormat: "json",
249
- serializationMethod: {
250
- body: {},
251
- },
252
- parameters: {},
253
- body: Roblox_ItemConfiguration_Api_CreateItemTagRequest,
254
- response: Roblox_ItemConfiguration_Api_ItemTagDetails,
255
- errors: [
256
- {
257
- status: 400,
258
- description: `3: Invalid item id
259
- 4: Invalid tag id
260
- 6: Invalid item namespace
261
- 8: The given item is ineligible for item tags
262
- 9: The given item has already reached its maximum item tag count`,
263
- },
264
- {
265
- status: 401,
266
- description: `0: Authorization has been denied for this request.`,
267
- },
268
- {
269
- status: 403,
270
- description: `0: Token Validation Failed
271
- 5: The current user is missing permissions for the endpoint`,
272
- },
273
- {
274
- status: 404,
275
- description: `10: The endpoint was not found`,
276
- },
277
- {
278
- status: 429,
279
- description: `7: Too many requests`,
280
- },
281
- ],
282
- });
283
- /**
284
- * @api DELETE https://itemconfiguration.roblox.com/v1/item-tags/:itemTagId
285
- * @summary Deletes an item tag from an item.
286
- * @param itemTagId
287
- */
288
- export const deleteItemTagsItemtagid = endpoint({
289
- method: "DELETE",
290
- path: "/v1/item-tags/:itemTagId",
291
- baseUrl: "https://itemconfiguration.roblox.com",
292
- requestFormat: "json",
293
- serializationMethod: {
294
- itemTagId: {
295
- style: "simple",
296
- },
297
- },
298
- parameters: {
299
- itemTagId: z.string(),
300
- },
301
- response: z.object({}),
302
- errors: [
303
- {
304
- status: 401,
305
- description: `0: Authorization has been denied for this request.`,
306
- },
307
- {
308
- status: 403,
309
- description: `0: Token Validation Failed
310
- 5: The current user is missing permissions for the endpoint`,
311
- },
312
- {
313
- status: 404,
314
- description: `10: The endpoint was not found`,
315
- },
316
- {
317
- status: 429,
318
- description: `7: Too many requests`,
319
- },
320
- ],
321
- });
322
- /**
323
- * @api GET https://itemconfiguration.roblox.com/v1/item-tags/metadata
324
- * @summary Gets the metadata related to item tags.
325
- */
326
- export const getItemTagsMetadata = endpoint({
327
- method: "GET",
328
- path: "/v1/item-tags/metadata",
329
- baseUrl: "https://itemconfiguration.roblox.com",
330
- requestFormat: "json",
331
- response: Roblox_ItemConfiguration_Api_ItemTagsMetadataResponse,
332
- errors: [
333
- {
334
- status: 404,
335
- description: `10: The endpoint was not found`,
336
- },
337
- ],
338
- });
339
175
 
340
176
  // Patched endpoints removed from Roblox API docs (v6.1.0 compat)
341
177
 
178
+ const Roblox_ItemConfiguration_Api_TagDetails = z.object({
179
+ tagId: z.string(),
180
+ name: z.string(),
181
+ localizedDisplayName: z.string(),
182
+ status: z.enum(['Success', 'MissingItem']),
183
+ });
342
184
  const Patch_ApiArrayResponse_TagDetails = z.object({
343
185
  data: z.array(Roblox_ItemConfiguration_Api_TagDetails),
344
186
  });