rozod 6.7.0 → 6.8.0

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 (70) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +75 -451
  3. package/lib/endpoints/accountinformationv1.d.ts +50 -87
  4. package/lib/endpoints/accountinformationv1.js +46 -90
  5. package/lib/endpoints/assetdeliveryv1.d.ts +39 -0
  6. package/lib/endpoints/assetdeliveryv1.js +39 -0
  7. package/lib/endpoints/assetdeliveryv2.d.ts +27 -0
  8. package/lib/endpoints/assetdeliveryv2.js +27 -0
  9. package/lib/endpoints/authv1.d.ts +71 -3
  10. package/lib/endpoints/authv1.js +70 -4
  11. package/lib/endpoints/authv2.d.ts +22 -1
  12. package/lib/endpoints/authv2.js +23 -2
  13. package/lib/endpoints/avatarv1.d.ts +9 -6
  14. package/lib/endpoints/avatarv1.js +9 -6
  15. package/lib/endpoints/avatarv2.d.ts +11 -5
  16. package/lib/endpoints/avatarv2.js +11 -5
  17. package/lib/endpoints/avatarv3.d.ts +16 -7
  18. package/lib/endpoints/avatarv3.js +16 -7
  19. package/lib/endpoints/badgesv1.d.ts +4 -0
  20. package/lib/endpoints/badgesv1.js +4 -0
  21. package/lib/endpoints/catalogv1.d.ts +25 -3
  22. package/lib/endpoints/catalogv1.js +21 -3
  23. package/lib/endpoints/catalogv2.d.ts +294 -50
  24. package/lib/endpoints/catalogv2.js +256 -24
  25. package/lib/endpoints/clientsettingsv2.d.ts +6 -0
  26. package/lib/endpoints/clientsettingsv2.js +6 -0
  27. package/lib/endpoints/contactsv1.d.ts +18 -22
  28. package/lib/endpoints/contactsv1.js +14 -22
  29. package/lib/endpoints/developv1.d.ts +36 -1
  30. package/lib/endpoints/developv1.js +12 -3
  31. package/lib/endpoints/developv2.d.ts +32 -3
  32. package/lib/endpoints/developv2.js +16 -5
  33. package/lib/endpoints/friendsv1.d.ts +222 -314
  34. package/lib/endpoints/friendsv1.js +213 -313
  35. package/lib/endpoints/gameinternationalizationv1.d.ts +59 -0
  36. package/lib/endpoints/gameinternationalizationv1.js +57 -1
  37. package/lib/endpoints/gamesv1.d.ts +79 -0
  38. package/lib/endpoints/gamesv1.js +70 -97
  39. package/lib/endpoints/gamesv2.d.ts +12 -0
  40. package/lib/endpoints/gamesv2.js +10 -0
  41. package/lib/endpoints/groupsv1.d.ts +49 -4
  42. package/lib/endpoints/groupsv1.js +55 -7
  43. package/lib/endpoints/groupsv2.d.ts +2 -0
  44. package/lib/endpoints/groupsv2.js +2 -0
  45. package/lib/endpoints/inventoryv1.d.ts +3 -1
  46. package/lib/endpoints/inventoryv1.js +3 -1
  47. package/lib/endpoints/inventoryv2.d.ts +70 -0
  48. package/lib/endpoints/inventoryv2.js +68 -1
  49. package/lib/endpoints/localev1.d.ts +27 -0
  50. package/lib/endpoints/localev1.js +28 -1
  51. package/lib/endpoints/publishv1.d.ts +3 -6
  52. package/lib/endpoints/publishv1.js +3 -6
  53. package/lib/endpoints/thumbnailsv1.d.ts +44 -87
  54. package/lib/endpoints/thumbnailsv1.js +25 -0
  55. package/lib/index.d.ts +96 -3
  56. package/lib/index.js +114 -1
  57. package/lib/opencloud/v1/asset-permissions.d.ts +1 -1
  58. package/lib/opencloud/v1/assets.d.ts +9 -9
  59. package/lib/opencloud/v1/datastores-ordered.d.ts +6 -6
  60. package/lib/opencloud/v1/datastores.d.ts +8 -8
  61. package/lib/opencloud/v1/developer-products.d.ts +4 -4
  62. package/lib/opencloud/v1/game-passes.d.ts +4 -4
  63. package/lib/opencloud/v1/messaging.d.ts +1 -1
  64. package/lib/opencloud/v1/open-eval.d.ts +2 -2
  65. package/lib/opencloud/v1/secrets-store.d.ts +5 -5
  66. package/lib/opencloud/v1/toolbox.d.ts +2 -2
  67. package/lib/opencloud/v1/universes.d.ts +1 -1
  68. package/lib/opencloud/v2/cloud.d.ts +197 -87
  69. package/lib/opencloud/v2/cloud.js +68 -15
  70. package/package.json +108 -108
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getSupportedLanguagesGamesGameid = exports.getSourceLanguageGamesGameidLanguageWithLocales = exports.patchSourceLanguageGamesGameid = exports.getSourceLanguageGamesGameid = exports.getNameDescriptionMetadata = exports.postNameDescriptionGamesTranslationHistory = exports.patchNameDescriptionGamesGameid = exports.getNameDescriptionGamesGameid = exports.patchLocalizationtableGametablesGameid = exports.postGameThumbnailsGamesGameidLanguageCodesLanguagecodeImagesOrder = exports.deleteGameThumbnailsGamesGameidLanguageCodesLanguagecodeImagesImageid = exports.postGameThumbnailsGamesGameidLanguageCodesLanguagecodeImage = exports.postGameThumbnailsGamesGameidLanguageCodesLanguagecodeAltText = exports.getGameThumbnailsGamesGameidImages = exports.patchGamePassesGamepassidNameLanguageCodesLanguagecode = exports.patchGamePassesGamepassidNameDescriptionLanguageCodesLanguagecode = exports.deleteGamePassesGamepassidNameDescriptionLanguageCodesLanguagecode = exports.getGamePassesGamepassidNameDescription = exports.deleteGamePassesGamepassidIconsLanguageCodesLanguagecode = exports.postGamePassesGamepassidIconsLanguageCodesLanguagecode = exports.getGamePassesGamepassidIcons = exports.patchGamePassesGamepassidDescriptionLanguageCodesLanguagecode = exports.getGameLocalizationStatusTranslationCountsForLanguageOrLocale = exports.getGameLocalizationStatusGameidTranslationCounts = exports.deleteGameIconGamesGameidLanguageCodesLanguagecode = exports.postGameIconGamesGameidLanguageCodesLanguagecode = exports.getGameIconGamesGameid = exports.patchDeveloperProductsDeveloperproductidNameLanguageCodesLanguagecode = exports.patchDeveloperProductsDeveloperproductidNameDescriptionLanguageCodesLanguagecode = exports.deleteDeveloperProductsDeveloperproductidNameDescriptionLanguageCodesLanguagecode = exports.getDeveloperProductsDeveloperproductidNameDescription = exports.deleteDeveloperProductsDeveloperproductidIconsLanguageCodesLanguagecode = exports.postDeveloperProductsDeveloperproductidIconsLanguageCodesLanguagecode = exports.getDeveloperProductsDeveloperproductidIcons = exports.patchDeveloperProductsDeveloperproductidDescriptionLanguageCodesLanguagecode = exports.patchBadgesBadgeidNameLanguageCodesLanguagecode = exports.patchBadgesBadgeidNameDescriptionLanguageCodesLanguagecode = exports.deleteBadgesBadgeidNameDescriptionLanguageCodesLanguagecode = exports.getBadgesBadgeidNameDescription = exports.deleteBadgesBadgeidIconsLanguageCodesLanguagecode = exports.postBadgesBadgeidIconsLanguageCodesLanguagecode = exports.getBadgesBadgeidIcons = exports.patchBadgesBadgeidDescriptionLanguageCodesLanguagecode = exports.getAutomaticTranslationLanguagesLanguagecodeTargetLanguages = exports.getAutomaticTranslationGamesGameidQuota = exports.getAutomaticTranslationGamesGameidFeatureStatus = exports.getAutolocalizationMetadata = exports.patchAutolocalizationGamesGameidSettings = exports.patchAutolocalizationGamesGameidAutolocalizationtable = exports.postAutolocalizationGamesGameidAutolocalizationtable = void 0;
4
- exports.postUserLocalizationSettingsUniverseUniverseid = exports.getUserLocalizationSettingsUniverseUniverseid = exports.getUserLocalizationSettingsPlayerChoiceUniverseid = exports.getUiConfigurations = exports.getTranslationAnalyticsMetadata = exports.postTranslationAnalyticsGamesGameidRequestTranslationAnalyticsReport = exports.getTranslationAnalyticsGamesGameidDownloadTranslationAnalyticsReport = exports.getSupportedLanguagesMetadata = exports.getSupportedLanguagesGamesGameidUniverseDisplayInfoAutomaticTranslationSettings = exports.patchSupportedLanguagesGamesGameidLanguagesLanguagecodeUniverseDisplayInfoAutomaticTranslationSettings = exports.patchSupportedLanguagesGamesGameidLanguagesLanguagecodeAutomaticTranslationStatus = exports.getSupportedLanguagesGamesGameidInExperienceLanguageSelection = exports.getSupportedLanguagesGamesGameidAutomaticTranslationStatus = exports.patchSupportedLanguagesGamesGameid = void 0;
4
+ exports.postUserLocalizationSettingsUniverseUniverseid = exports.getUserLocalizationSettingsUniverseUniverseid = exports.getUserLocalizationSettingsPlayerChoiceUniverseid = exports.getUiConfigurations = exports.getTranslationAnalyticsMetadata = exports.postTranslationAnalyticsGamesGameidRequestTranslationAnalyticsReport = exports.getTranslationAnalyticsGamesGameidDownloadTranslationAnalyticsReport = exports.getSupportedLanguagesMetadata = exports.getSupportedLanguagesGamesGameidUniverseDisplayInfoAutomaticTranslationSettings = exports.patchSupportedLanguagesGamesGameidLanguagesLanguagecodeUniverseDisplayInfoAutomaticTranslationSettings = exports.patchSupportedLanguagesGamesGameidLanguagesLanguagecodeImageTranslationStatus = exports.patchSupportedLanguagesGamesGameidLanguagesLanguagecodeAutomaticTranslationStatus = exports.getSupportedLanguagesGamesGameidInExperienceLanguageSelection = exports.getSupportedLanguagesGamesGameidAutomaticTranslationStatus = exports.patchSupportedLanguagesGamesGameid = void 0;
5
5
  const zod_1 = require("zod");
6
6
  const __1 = require("..");
7
7
  const Roblox_GameInternationalization_Api_AutoLocalizationMetadataResponse = zod_1.z.object({
@@ -243,6 +243,7 @@ const Roblox_GameInternationalization_Api_LanguageOrLocaleSettings = zod_1.z.obj
243
243
  languageCodeType: zod_1.z.enum(['Language', 'Locale']),
244
244
  languageCode: zod_1.z.string(),
245
245
  isAutomaticTranslationEnabled: zod_1.z.boolean(),
246
+ isImageTranslationEnabled: zod_1.z.boolean(),
246
247
  });
247
248
  const Roblox_Web_WebAPI_Models_ApiArrayResponse_Roblox_GameInternationalization_Api_LanguageOrLocaleSettings_ = zod_1.z.object({
248
249
  data: zod_1.z.array(Roblox_GameInternationalization_Api_LanguageOrLocaleSettings),
@@ -427,6 +428,11 @@ const Roblox_GameInternationalization_Api_EditAutomaticTranslationStatusForGameA
427
428
  languageCode: zod_1.z.string(),
428
429
  isAutomaticTranslationEnabled: zod_1.z.boolean(),
429
430
  });
431
+ const Roblox_GameInternationalization_Api_EditImageTranslationStatusForGameAndLanguageResponse = zod_1.z.object({
432
+ gameId: zod_1.z.number().int(),
433
+ languageCode: zod_1.z.string(),
434
+ isImageTranslationEnabled: zod_1.z.boolean(),
435
+ });
430
436
  const Roblox_GameInternationalization_Api_UpdateUniverseDisplayInfoAutomaticTranslationSettingsResponse = zod_1.z.object({
431
437
  gameId: zod_1.z.number().int(),
432
438
  languageCode: zod_1.z.string(),
@@ -2895,6 +2901,56 @@ exports.patchSupportedLanguagesGamesGameidLanguagesLanguagecodeAutomaticTranslat
2895
2901
  },
2896
2902
  ],
2897
2903
  });
2904
+ /**
2905
+ * @api PATCH https://gameinternationalization.roblox.com/v1/supported-languages/games/:gameId/languages/:languageCode/image-translation-status
2906
+ * @summary Enable or disable image translation for a game and language.
2907
+ * @param body Flag to indicate if image translation should be enabled or disabled.
2908
+ * @param gameId The id of the game.
2909
+ * @param languageCode The language to enable or disable for image translation.
2910
+ */
2911
+ exports.patchSupportedLanguagesGamesGameidLanguagesLanguagecodeImageTranslationStatus = (0, __1.endpoint)({
2912
+ method: 'PATCH',
2913
+ path: '/v1/supported-languages/games/:gameId/languages/:languageCode/image-translation-status',
2914
+ baseUrl: 'https://gameinternationalization.roblox.com',
2915
+ requestFormat: 'json',
2916
+ serializationMethod: {
2917
+ body: {},
2918
+ gameId: {
2919
+ style: 'simple',
2920
+ },
2921
+ languageCode: {
2922
+ style: 'simple',
2923
+ },
2924
+ },
2925
+ parameters: {
2926
+ gameId: zod_1.z.number().int(),
2927
+ languageCode: zod_1.z.string(),
2928
+ },
2929
+ body: zod_1.z.boolean(),
2930
+ response: Roblox_GameInternationalization_Api_EditImageTranslationStatusForGameAndLanguageResponse,
2931
+ errors: [
2932
+ {
2933
+ status: 400,
2934
+ description: `14: Invalid game id
2935
+ 22: Invalid language code
2936
+ 53: Language is not supported for the game.
2937
+ 93: Image translation cannot be enabled for language.`,
2938
+ },
2939
+ {
2940
+ status: 401,
2941
+ description: `0: Authorization has been denied for this request.`,
2942
+ },
2943
+ {
2944
+ status: 403,
2945
+ description: `0: Token Validation Failed
2946
+ 18: You do not have permission to manage this game`,
2947
+ },
2948
+ {
2949
+ status: 503,
2950
+ description: `17: Feature is disabled`,
2951
+ },
2952
+ ],
2953
+ });
2898
2954
  /**
2899
2955
  * @api PATCH https://gameinternationalization.roblox.com/v1/supported-languages/games/:gameId/languages/:languageCode/universe-display-info-automatic-translation-settings
2900
2956
  * @summary Update the switch which controls if the UniverseDisplayInformation should be automatically translated.
@@ -46,6 +46,8 @@ const Roblox_Games_Api_Models_Response_GameDetailResponse = z.object({
46
46
  refundLink: z.string(),
47
47
  localizedFiatPrice: z.string(),
48
48
  refundPolicy: Roblox_Games_Api_Models_Response_RefundPolicy,
49
+ canonicalUrlPath: z.string(),
50
+ isContentRestricted: z.boolean(),
49
51
  });
50
52
  const Roblox_Web_WebAPI_Models_ApiArrayResponse_Roblox_Games_Api_Models_Response_GameDetailResponse_ =
51
53
  z.object({
@@ -148,6 +150,13 @@ const Roblox_Games_Api_Models_Response_PlayableUxTreatment = z.object({
148
150
  treatment: z.string(),
149
151
  data: Roblox_Games_Api_Models_Response_PlayableUxTreatmentData,
150
152
  });
153
+ const Roblox_Games_Api_Models_Response_UpsellUxTreatmentData = z.object({
154
+ bodyText: z.string(),
155
+ });
156
+ const Roblox_Games_Api_Models_Response_UpsellUxTreatment = z.object({
157
+ treatment: z.string(),
158
+ data: Roblox_Games_Api_Models_Response_UpsellUxTreatmentData,
159
+ });
151
160
  const Roblox_Games_Api_Models_Response_PlayabilityStatusResponse = z.object({
152
161
  playabilityStatus: z.enum([
153
162
  "UnplayableOtherReason",
@@ -176,12 +185,25 @@ const Roblox_Games_Api_Models_Response_PlayabilityStatusResponse = z.object({
176
185
  "ContextualPlayabilityUnrated",
177
186
  "ContextualPlayabilityAgeGatedByDescriptor",
178
187
  "ContextualPlayabilityGeneral",
188
+ "ContextualPlayabilityAgeCheckRequired",
189
+ "ContextualPlayabilityRequireParentApproval",
190
+ "ContextualPlayabilityCoreGated",
179
191
  ]),
180
192
  isPlayable: z.boolean(),
181
193
  universeId: z.number().int(),
182
194
  unplayableDisplayText: z.string(),
183
195
  playableUxTreatment: Roblox_Games_Api_Models_Response_PlayableUxTreatment,
196
+ upsellUxTreatment: Roblox_Games_Api_Models_Response_UpsellUxTreatment,
197
+ demoModeAvailable: z.boolean(),
184
198
  });
199
+ const Roblox_Games_Api_Models_Response_GameContentMetadataResponseModel =
200
+ z.object({
201
+ badgePosition: z.string(),
202
+ badgeAnalyticsId: z.string(),
203
+ badgeType: z.string(),
204
+ badgeIcon: z.string(),
205
+ badgeComponentType: z.string(),
206
+ });
185
207
  const Roblox_Games_Api_Models_Response_GameResponseModel = z.object({
186
208
  creatorId: z.number().int(),
187
209
  creatorName: z.string(),
@@ -203,6 +225,8 @@ const Roblox_Games_Api_Models_Response_GameResponseModel = z.object({
203
225
  genre: z.string(),
204
226
  minimumAge: z.number().int(),
205
227
  ageRecommendationDisplayName: z.string(),
228
+ contentMetadata:
229
+ Roblox_Games_Api_Models_Response_GameContentMetadataResponseModel,
206
230
  canonicalUrlPath: z.string(),
207
231
  });
208
232
  const Roblox_Games_Api_Models_Response_GameRecommendationsResponse = z.object({
@@ -214,6 +238,7 @@ const Roblox_Games_Api_Models_Response_GameRecommendationsResponse = z.object({
214
238
  * @api GET https://games.roblox.com/v1/games
215
239
  * @summary Gets a list of games' detail
216
240
  * @param universeIds A list of universe Ids. Cannot exceed a maximum of 50 IDs.
241
+ * @param fields Optional comma-separated list of field names to include in the response. When omitted, all fields are returned.
217
242
  */
218
243
  export const getGames = endpoint({
219
244
  method: "GET",
@@ -224,9 +249,14 @@ export const getGames = endpoint({
224
249
  universeIds: {
225
250
  style: "form",
226
251
  },
252
+ fields: {
253
+ style: "form",
254
+ explode: true,
255
+ },
227
256
  },
228
257
  parameters: {
229
258
  universeIds: z.array(z.number()),
259
+ fields: z.string().optional(),
230
260
  },
231
261
  response:
232
262
  Roblox_Web_WebAPI_Models_ApiArrayResponse_Roblox_Games_Api_Models_Response_GameDetailResponse_,
@@ -915,3 +945,52 @@ export const postGamesVipServersUniverseid = endpoint({
915
945
  { status: 500, description: `16: We are having a problem completing your purchase. Please try again in a few minutes.` },
916
946
  ],
917
947
  });
948
+
949
+ const Patch_GetPrivateServerListResponse = z.object({
950
+ gameJoinRestricted: z.boolean(),
951
+ previousPageCursor: z.string(),
952
+ nextPageCursor: z.string(),
953
+ data: z.array(Roblox_Web_Responses_Games_GameServerResponse),
954
+ });
955
+
956
+ export const getGamesPlaceidPrivateServers = endpoint({
957
+ method: 'GET',
958
+ path: '/v1/games/:placeId/private-servers',
959
+ baseUrl: 'https://games.roblox.com',
960
+ requestFormat: 'json',
961
+ serializationMethod: {
962
+ placeId: { style: 'simple' },
963
+ excludeFriendServers: { style: 'form', explode: true },
964
+ limit: { style: 'form', explode: true },
965
+ cursor: { style: 'form', explode: true },
966
+ sortOrder: { style: 'form', explode: true },
967
+ },
968
+ parameters: {
969
+ placeId: z.number().int(),
970
+ excludeFriendServers: z.boolean().optional(),
971
+ limit: z
972
+ .union([z.literal(10), z.literal(25), z.literal(50), z.literal(100)])
973
+ .optional()
974
+ .default(10),
975
+ cursor: z.string().optional(),
976
+ sortOrder: z.enum(['Asc', 'Desc']).optional().default('Asc'),
977
+ },
978
+ response: Patch_GetPrivateServerListResponse,
979
+ errors: [
980
+ { status: 400, description: `1: The place is invalid.\n7: Guest users are not allowed.` },
981
+ { status: 404, description: `1: The place is invalid.` },
982
+ ],
983
+ });
984
+
985
+ export const getPrivateServersEnabledInUniverseUniverseid = endpoint({
986
+ method: 'GET',
987
+ path: '/v1/private-servers/enabled-in-universe/:universeId',
988
+ baseUrl: 'https://games.roblox.com',
989
+ requestFormat: 'json',
990
+ serializationMethod: { universeId: { style: 'simple' } },
991
+ parameters: { universeId: z.number().int() },
992
+ response: z.object({ privateServersEnabled: z.boolean() }),
993
+ errors: [
994
+ { status: 400, description: `8: The universe IDs specified are invalid.` },
995
+ ],
996
+ });
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.postGamesVipServersUniverseid = exports.patchVipServersIdSubscription = exports.patchVipServersIdPermissions = exports.patchVipServersId = exports.getVipServersId = exports.getVipServerCanInviteUserid = exports.getPrivateServersMyPrivateServers = exports.getGamesVotes = exports.getGamesUniverseidVotesUser = exports.getGamesUniverseidVotes = exports.patchGamesUniverseidUserVotes = exports.getGamesUniverseidGamePasses = exports.getPrivateServersEnabledInUniverseUniverseid = exports.getGamesRecommendationsGameUniverseid = exports.getGamesMultigetPlayabilityStatus = exports.getGamesMultigetPlaceDetails = exports.getGamesGamesProductInfo = exports.getGamesUniverseidMedia = exports.getGamesUniverseidFavoritesCount = exports.postGamesUniverseidFavorites = exports.getGamesUniverseidFavorites = exports.getGamesPlaceidServersServertype = exports.getGamesPlaceidPrivateServers = exports.getGames = void 0;
3
+ exports.getPrivateServersEnabledInUniverseUniverseid = exports.getGamesPlaceidPrivateServers = exports.postGamesVipServersUniverseid = exports.patchVipServersIdSubscription = exports.patchVipServersIdPermissions = exports.patchVipServersId = exports.getVipServersId = exports.getVipServerCanInviteUserid = exports.getPrivateServersMyPrivateServers = exports.getGamesVotes = exports.getGamesUniverseidVotesUser = exports.getGamesUniverseidVotes = exports.patchGamesUniverseidUserVotes = exports.getGamesUniverseidGamePasses = exports.getGamesRecommendationsGameUniverseid = exports.getGamesMultigetPlayabilityStatus = exports.getGamesMultigetPlaceDetails = exports.getGamesGamesProductInfo = exports.getGamesUniverseidMedia = exports.getGamesUniverseidFavoritesCount = exports.postGamesUniverseidFavorites = exports.getGamesUniverseidFavorites = exports.getGamesPlaceidServersServertype = exports.getGames = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const __1 = require("..");
6
6
  const Roblox_Games_Api_Models_Response_GameCreator = zod_1.z.object({
@@ -48,6 +48,8 @@ const Roblox_Games_Api_Models_Response_GameDetailResponse = zod_1.z.object({
48
48
  refundLink: zod_1.z.string(),
49
49
  localizedFiatPrice: zod_1.z.string(),
50
50
  refundPolicy: Roblox_Games_Api_Models_Response_RefundPolicy,
51
+ canonicalUrlPath: zod_1.z.string(),
52
+ isContentRestricted: zod_1.z.boolean(),
51
53
  });
52
54
  const Roblox_Web_WebAPI_Models_ApiArrayResponse_Roblox_Games_Api_Models_Response_GameDetailResponse_ = zod_1.z.object({
53
55
  data: zod_1.z.array(Roblox_Games_Api_Models_Response_GameDetailResponse),
@@ -77,12 +79,6 @@ const Roblox_Web_Responses_Games_GameServerResponse = zod_1.z.object({
77
79
  accessCode: zod_1.z.string().uuid(),
78
80
  owner: Roblox_Games_Api_Models_Response_VerifiedBadgeUserResponse,
79
81
  });
80
- const Roblox_Games_Api_Models_Response_GetPrivateServerListResponse = zod_1.z.object({
81
- gameJoinRestricted: zod_1.z.boolean(),
82
- previousPageCursor: zod_1.z.string(),
83
- nextPageCursor: zod_1.z.string(),
84
- data: zod_1.z.array(Roblox_Web_Responses_Games_GameServerResponse),
85
- });
86
82
  const Roblox_Web_WebAPI_Models_ApiPageResponse_Roblox_Web_Responses_Games_GameServerResponse_ = zod_1.z.object({
87
83
  previousPageCursor: zod_1.z.string(),
88
84
  nextPageCursor: zod_1.z.string(),
@@ -154,6 +150,13 @@ const Roblox_Games_Api_Models_Response_PlayableUxTreatment = zod_1.z.object({
154
150
  treatment: zod_1.z.string(),
155
151
  data: Roblox_Games_Api_Models_Response_PlayableUxTreatmentData,
156
152
  });
153
+ const Roblox_Games_Api_Models_Response_UpsellUxTreatmentData = zod_1.z.object({
154
+ bodyText: zod_1.z.string(),
155
+ });
156
+ const Roblox_Games_Api_Models_Response_UpsellUxTreatment = zod_1.z.object({
157
+ treatment: zod_1.z.string(),
158
+ data: Roblox_Games_Api_Models_Response_UpsellUxTreatmentData,
159
+ });
157
160
  const Roblox_Games_Api_Models_Response_PlayabilityStatusResponse = zod_1.z.object({
158
161
  playabilityStatus: zod_1.z.enum([
159
162
  'UnplayableOtherReason',
@@ -182,11 +185,23 @@ const Roblox_Games_Api_Models_Response_PlayabilityStatusResponse = zod_1.z.objec
182
185
  'ContextualPlayabilityUnrated',
183
186
  'ContextualPlayabilityAgeGatedByDescriptor',
184
187
  'ContextualPlayabilityGeneral',
188
+ 'ContextualPlayabilityAgeCheckRequired',
189
+ 'ContextualPlayabilityRequireParentApproval',
190
+ 'ContextualPlayabilityCoreGated',
185
191
  ]),
186
192
  isPlayable: zod_1.z.boolean(),
187
193
  universeId: zod_1.z.number().int(),
188
194
  unplayableDisplayText: zod_1.z.string(),
189
195
  playableUxTreatment: Roblox_Games_Api_Models_Response_PlayableUxTreatment,
196
+ upsellUxTreatment: Roblox_Games_Api_Models_Response_UpsellUxTreatment,
197
+ demoModeAvailable: zod_1.z.boolean(),
198
+ });
199
+ const Roblox_Games_Api_Models_Response_GameContentMetadataResponseModel = zod_1.z.object({
200
+ badgePosition: zod_1.z.string(),
201
+ badgeAnalyticsId: zod_1.z.string(),
202
+ badgeType: zod_1.z.string(),
203
+ badgeIcon: zod_1.z.string(),
204
+ badgeComponentType: zod_1.z.string(),
190
205
  });
191
206
  const Roblox_Games_Api_Models_Response_GameResponseModel = zod_1.z.object({
192
207
  creatorId: zod_1.z.number().int(),
@@ -209,20 +224,18 @@ const Roblox_Games_Api_Models_Response_GameResponseModel = zod_1.z.object({
209
224
  genre: zod_1.z.string(),
210
225
  minimumAge: zod_1.z.number().int(),
211
226
  ageRecommendationDisplayName: zod_1.z.string(),
227
+ contentMetadata: Roblox_Games_Api_Models_Response_GameContentMetadataResponseModel,
212
228
  canonicalUrlPath: zod_1.z.string(),
213
229
  });
214
230
  const Roblox_Games_Api_Models_Response_GameRecommendationsResponse = zod_1.z.object({
215
231
  games: zod_1.z.array(Roblox_Games_Api_Models_Response_GameResponseModel),
216
232
  nextPaginationKey: zod_1.z.string(),
217
233
  });
218
- const Roblox_Games_Api_Models_Response_PrivateServersEnabledInUniverseResponse = zod_1.z.object({
219
- privateServersEnabled: zod_1.z.boolean(),
220
- });
221
234
  /**
222
235
  * @api GET https://games.roblox.com/v1/games
223
236
  * @summary Gets a list of games' detail
224
237
  * @param universeIds A list of universe Ids. Cannot exceed a maximum of 50 IDs.
225
- * @param languageCode The HTML language code [optional].
238
+ * @param fields Optional comma-separated list of field names to include in the response. When omitted, all fields are returned.
226
239
  */
227
240
  exports.getGames = (0, __1.endpoint)({
228
241
  method: 'GET',
@@ -233,14 +246,14 @@ exports.getGames = (0, __1.endpoint)({
233
246
  universeIds: {
234
247
  style: 'form',
235
248
  },
236
- languageCode: {
249
+ fields: {
237
250
  style: 'form',
238
251
  explode: true,
239
252
  },
240
253
  },
241
254
  parameters: {
242
255
  universeIds: zod_1.z.array(zod_1.z.number()),
243
- languageCode: zod_1.z.string().optional(),
256
+ fields: zod_1.z.string().optional(),
244
257
  },
245
258
  response: Roblox_Web_WebAPI_Models_ApiArrayResponse_Roblox_Games_Api_Models_Response_GameDetailResponse_,
246
259
  errors: [
@@ -255,64 +268,6 @@ exports.getGames = (0, __1.endpoint)({
255
268
  },
256
269
  ],
257
270
  });
258
- /**
259
- * @api GET https://games.roblox.com/v1/games/:placeId/private-servers
260
- * @summary Get list of private servers user can access for given game id.
261
- * @param placeId The Id of the place we are geting the private server list for.
262
- * @param excludeFriendServers
263
- * @param limit The number of results per request.
264
- * @param cursor The paging cursor for the previous or next page.
265
- * @param sortOrder The order the results are sorted in.
266
- */
267
- exports.getGamesPlaceidPrivateServers = (0, __1.endpoint)({
268
- method: 'GET',
269
- path: '/v1/games/:placeId/private-servers',
270
- baseUrl: 'https://games.roblox.com',
271
- requestFormat: 'json',
272
- serializationMethod: {
273
- placeId: {
274
- style: 'simple',
275
- },
276
- excludeFriendServers: {
277
- style: 'form',
278
- explode: true,
279
- },
280
- limit: {
281
- style: 'form',
282
- explode: true,
283
- },
284
- cursor: {
285
- style: 'form',
286
- explode: true,
287
- },
288
- sortOrder: {
289
- style: 'form',
290
- explode: true,
291
- },
292
- },
293
- parameters: {
294
- placeId: zod_1.z.number().int(),
295
- excludeFriendServers: zod_1.z.boolean().optional(),
296
- limit: zod_1.z
297
- .union([zod_1.z.literal(10), zod_1.z.literal(25), zod_1.z.literal(50), zod_1.z.literal(100)])
298
- .optional()
299
- .default(10),
300
- cursor: zod_1.z.string().optional(),
301
- sortOrder: zod_1.z.enum(['Asc', 'Desc']).optional().default('Asc'),
302
- },
303
- response: Roblox_Games_Api_Models_Response_GetPrivateServerListResponse,
304
- errors: [
305
- {
306
- status: 400,
307
- description: `1: The place is invalid.
308
- 7: Guest users are not allowed.`,
309
- },
310
- {
311
- status: 404,
312
- description: `1: The place is invalid.`,
313
- },
314
- ],
315
- });
316
271
  /**
317
272
  * @api GET https://games.roblox.com/v1/games/:placeId/servers/:serverType
318
273
  * @summary Get the game server list
@@ -650,32 +605,6 @@ exports.getGamesRecommendationsGameUniverseid = (0, __1.endpoint)({
650
605
  },
651
606
  ],
652
607
  });
653
- /**
654
- * @api GET https://games.roblox.com/v1/private-servers/enabled-in-universe/:universeId
655
- * @summary Checks if the private servers are enabled in the specified universe.
656
- * @param universeId
657
- */
658
- exports.getPrivateServersEnabledInUniverseUniverseid = (0, __1.endpoint)({
659
- method: 'GET',
660
- path: '/v1/private-servers/enabled-in-universe/:universeId',
661
- baseUrl: 'https://games.roblox.com',
662
- requestFormat: 'json',
663
- serializationMethod: {
664
- universeId: {
665
- style: 'simple',
666
- },
667
- },
668
- parameters: {
669
- universeId: zod_1.z.number().int(),
670
- },
671
- response: zod_1.z.object({ privateServersEnabled: zod_1.z.boolean() }),
672
- errors: [
673
- {
674
- status: 400,
675
- description: `8: The universe IDs specified are invalid.`,
676
- },
677
- ],
678
- });
679
608
  // Patched endpoints removed from Roblox API docs (v6.1.0 compat)
680
609
  const Patch_GamePassResponse = zod_1.z.object({
681
610
  id: zod_1.z.number().int(),
@@ -1043,3 +972,47 @@ exports.postGamesVipServersUniverseid = (0, __1.endpoint)({
1043
972
  },
1044
973
  ],
1045
974
  });
975
+ const Patch_GetPrivateServerListResponse = zod_1.z.object({
976
+ gameJoinRestricted: zod_1.z.boolean(),
977
+ previousPageCursor: zod_1.z.string(),
978
+ nextPageCursor: zod_1.z.string(),
979
+ data: zod_1.z.array(Roblox_Web_Responses_Games_GameServerResponse),
980
+ });
981
+ exports.getGamesPlaceidPrivateServers = (0, __1.endpoint)({
982
+ method: 'GET',
983
+ path: '/v1/games/:placeId/private-servers',
984
+ baseUrl: 'https://games.roblox.com',
985
+ requestFormat: 'json',
986
+ serializationMethod: {
987
+ placeId: { style: 'simple' },
988
+ excludeFriendServers: { style: 'form', explode: true },
989
+ limit: { style: 'form', explode: true },
990
+ cursor: { style: 'form', explode: true },
991
+ sortOrder: { style: 'form', explode: true },
992
+ },
993
+ parameters: {
994
+ placeId: zod_1.z.number().int(),
995
+ excludeFriendServers: zod_1.z.boolean().optional(),
996
+ limit: zod_1.z
997
+ .union([zod_1.z.literal(10), zod_1.z.literal(25), zod_1.z.literal(50), zod_1.z.literal(100)])
998
+ .optional()
999
+ .default(10),
1000
+ cursor: zod_1.z.string().optional(),
1001
+ sortOrder: zod_1.z.enum(['Asc', 'Desc']).optional().default('Asc'),
1002
+ },
1003
+ response: Patch_GetPrivateServerListResponse,
1004
+ errors: [
1005
+ { status: 400, description: `1: The place is invalid.\n7: Guest users are not allowed.` },
1006
+ { status: 404, description: `1: The place is invalid.` },
1007
+ ],
1008
+ });
1009
+ exports.getPrivateServersEnabledInUniverseUniverseid = (0, __1.endpoint)({
1010
+ method: 'GET',
1011
+ path: '/v1/private-servers/enabled-in-universe/:universeId',
1012
+ baseUrl: 'https://games.roblox.com',
1013
+ requestFormat: 'json',
1014
+ serializationMethod: { universeId: { style: 'simple' } },
1015
+ parameters: { universeId: zod_1.z.number().int() },
1016
+ response: zod_1.z.object({ privateServersEnabled: zod_1.z.boolean() }),
1017
+ errors: [{ status: 400, description: `8: The universe IDs specified are invalid.` }],
1018
+ });
@@ -15,6 +15,14 @@ const Roblox_Web_WebAPI_Models_ApiArrayResponse_Roblox_Web_Responses_Games_GameM
15
15
  z.object({
16
16
  data: z.array(Roblox_Web_Responses_Games_GameMediaItemResponseV2),
17
17
  });
18
+ const Roblox_Games_Api_Models_Response_GameContentMetadataResponseModel =
19
+ z.object({
20
+ badgePosition: z.string(),
21
+ badgeAnalyticsId: z.string(),
22
+ badgeType: z.string(),
23
+ badgeIcon: z.string(),
24
+ badgeComponentType: z.string(),
25
+ });
18
26
  const Roblox_Web_Responses_RelatedEntityTypeResponse_Roblox_Platform_Core_CreatorType_ =
19
27
  z.object({
20
28
  id: z.number().int(),
@@ -109,11 +117,15 @@ const Roblox_Web_Responses_RelatedEntityTypeResponse_Roblox_Platform_Assets_Asse
109
117
  "LipMakeup",
110
118
  "EyeMakeup",
111
119
  "VoxelFragment",
120
+ "AvatarBackground",
121
+ "TextDocument",
112
122
  ]),
113
123
  name: z.string(),
114
124
  });
115
125
  const Roblox_Web_Responses_Games_GameFavoriteResponseModel = z.object({
116
126
  price: z.number().int(),
127
+ contentMetadata:
128
+ Roblox_Games_Api_Models_Response_GameContentMetadataResponseModel,
117
129
  id: z.number().int(),
118
130
  name: z.string(),
119
131
  description: z.string(),
@@ -16,6 +16,13 @@ const Roblox_Web_Responses_Games_GameMediaItemResponseV2 = zod_1.z.object({
16
16
  const Roblox_Web_WebAPI_Models_ApiArrayResponse_Roblox_Web_Responses_Games_GameMediaItemResponseV2_ = zod_1.z.object({
17
17
  data: zod_1.z.array(Roblox_Web_Responses_Games_GameMediaItemResponseV2),
18
18
  });
19
+ const Roblox_Games_Api_Models_Response_GameContentMetadataResponseModel = zod_1.z.object({
20
+ badgePosition: zod_1.z.string(),
21
+ badgeAnalyticsId: zod_1.z.string(),
22
+ badgeType: zod_1.z.string(),
23
+ badgeIcon: zod_1.z.string(),
24
+ badgeComponentType: zod_1.z.string(),
25
+ });
19
26
  const Roblox_Web_Responses_RelatedEntityTypeResponse_Roblox_Platform_Core_CreatorType_ = zod_1.z.object({
20
27
  id: zod_1.z.number().int(),
21
28
  type: zod_1.z.enum(['User', 'Group']),
@@ -108,11 +115,14 @@ const Roblox_Web_Responses_RelatedEntityTypeResponse_Roblox_Platform_Assets_Asse
108
115
  'LipMakeup',
109
116
  'EyeMakeup',
110
117
  'VoxelFragment',
118
+ 'AvatarBackground',
119
+ 'TextDocument',
111
120
  ]),
112
121
  name: zod_1.z.string(),
113
122
  });
114
123
  const Roblox_Web_Responses_Games_GameFavoriteResponseModel = zod_1.z.object({
115
124
  price: zod_1.z.number().int(),
125
+ contentMetadata: Roblox_Games_Api_Models_Response_GameContentMetadataResponseModel,
116
126
  id: zod_1.z.number().int(),
117
127
  name: zod_1.z.string(),
118
128
  description: zod_1.z.string(),
@@ -117,6 +117,13 @@ const Roblox_Groups_Client_CreateBlockedKeywordsResponse = z.object({
117
117
  hadModeratedKeywords: z.boolean(),
118
118
  hadDuplicateKeywords: z.boolean(),
119
119
  });
120
+ const Roblox_Groups_Api_CommunityFeatureFreezeStatus = z.object({
121
+ feature: z.string(),
122
+ isDisabled: z.boolean(),
123
+ });
124
+ const Roblox_Groups_Api_GetCommunityFeatureFreezesResponse = z.object({
125
+ features: z.array(Roblox_Groups_Api_CommunityFeatureFreezeStatus),
126
+ });
120
127
  const Roblox_Groups_Api_GroupConfigurationDetailsResponse = z.object({
121
128
  groupId: z.number().int(),
122
129
  emblemId: z.number().int(),
@@ -140,6 +147,8 @@ const Roblox_Groups_Api_GroupFeatureResponse = z.object({
140
147
  "ContentUpload",
141
148
  "GroupOwnershipTransfer",
142
149
  "GameOwnershipTransfer",
150
+ "ForumRead",
151
+ "ForumWrite",
143
152
  ]),
144
153
  isFeatureBlocked: z.boolean(),
145
154
  expiration: z.string().datetime({ offset: true }),
@@ -261,6 +270,7 @@ const Roblox_Groups_Api_GroupMembershipMetadataResponse = z.object({
261
270
  ),
262
271
  isBannedFromGroup: z.boolean(),
263
272
  canViewMemberList: z.boolean(),
273
+ isOwner: z.boolean(),
264
274
  });
265
275
  const Roblox_Groups_Api_Models_Response_GroupNameHistoryResponseItem = z.object(
266
276
  { name: z.string(), created: z.string().datetime({ offset: true }) }
@@ -288,10 +298,17 @@ const Roblox_Groups_Api_PayoutRecipientRequest = z.object({
288
298
  recipientType: z.enum(["User", "Group"]),
289
299
  amount: z.number().int(),
290
300
  });
301
+ const Roblox_Groups_Api_WatermarkContributionRequest = z.object({
302
+ balanceKey: z.enum(["Standard", "O18Boosted"]),
303
+ amount: z.number().int(),
304
+ });
291
305
  const Roblox_Groups_Api_PayoutRequest = z.object({
292
306
  PayoutType: z.enum(["FixedAmount", "Percentage"]),
293
307
  Recipients: z.array(Roblox_Groups_Api_PayoutRecipientRequest),
294
308
  IdempotencyKey: z.string(),
309
+ WatermarkContributions: z.array(
310
+ Roblox_Groups_Api_WatermarkContributionRequest
311
+ ),
295
312
  });
296
313
  const Roblox_Groups_Api_OneTimePayoutResponse = z.object({
297
314
  status: z.enum(["NotHeld", "Held"]),
@@ -349,6 +366,7 @@ const Roblox_Groups_Api_GroupSettingsResponse = z.object({
349
366
  ]),
350
367
  slowmode: z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(3)]),
351
368
  isMemberListVisibleToPublic: z.boolean(),
369
+ isAutoAssignRoleDisabled: z.boolean(),
352
370
  });
353
371
  const Roblox_Groups_Api_UpdateGroupSettingsRequest = z.object({
354
372
  isApprovalRequired: z.boolean(),
@@ -883,6 +901,8 @@ export const getGroupsGroupidAuditLog = endpoint({
883
901
  "UpdateGroupCoverPhoto",
884
902
  "AssignRole",
885
903
  "UnassignRole",
904
+ "PublishAnnouncement",
905
+ "DeleteAnnouncement",
886
906
  ])
887
907
  .optional(),
888
908
  userId: z.number().int().optional(),
@@ -1422,6 +1442,27 @@ export const postGroupsGroupidClaimOwnership = endpoint({
1422
1442
  },
1423
1443
  ],
1424
1444
  });
1445
+ /**
1446
+ * @api GET https://groups.roblox.com/v1/groups/:groupId/community-feature-freezes
1447
+ * @summary Gets the freeze status of the community features for a group.
1448
+ * @param groupId
1449
+ */
1450
+ export const getGroupsGroupidCommunityFeatureFreezes = endpoint({
1451
+ method: "GET",
1452
+ path: "/v1/groups/:groupId/community-feature-freezes",
1453
+ baseUrl: "https://groups.roblox.com",
1454
+ requestFormat: "json",
1455
+ serializationMethod: {
1456
+ groupId: {
1457
+ style: "simple",
1458
+ },
1459
+ },
1460
+ parameters: {
1461
+ groupId: z.number().int(),
1462
+ },
1463
+ response: Roblox_Groups_Api_GetCommunityFeatureFreezesResponse,
1464
+ errors: [],
1465
+ });
1425
1466
  /**
1426
1467
  * @api GET https://groups.roblox.com/v1/groups/:groupId/configuration
1427
1468
  * @summary Gets group configuration information
@@ -1674,7 +1715,8 @@ export const getGroupsGroupidJoinRequests = endpoint({
1674
1715
  errors: [
1675
1716
  {
1676
1717
  status: 400,
1677
- description: `1: The group is invalid or does not exist.`,
1718
+ description: `1: The group is invalid or does not exist.
1719
+ 36: The pagination cursor is invalid.`,
1678
1720
  },
1679
1721
  {
1680
1722
  status: 401,
@@ -2189,7 +2231,8 @@ export const postGroupsGroupidPayouts = endpoint({
2189
2231
  description: `0: Token Validation Failed
2190
2232
  23: Insufficient permissions to complete the request.
2191
2233
  28: Group has paid out too recently. Please wait and try again.
2192
- 35: 2-Step Verification is required to make further transactions. Go to Settings > Security to complete 2-Step Verification.`,
2234
+ 35: 2-Step Verification is required to make further transactions. Go to Settings > Security to complete 2-Step Verification.
2235
+ 52: Group has paid out to this recipient too many times recently. Please try again later.`,
2193
2236
  },
2194
2237
  {
2195
2238
  status: 503,
@@ -2783,7 +2826,8 @@ export const getGroupsGroupidRolesRolesetidUsers = endpoint({
2783
2826
  errors: [
2784
2827
  {
2785
2828
  status: 400,
2786
- description: `1: The group is invalid or does not exist.`,
2829
+ description: `1: The group is invalid or does not exist.
2830
+ 36: The pagination cursor is invalid.`,
2787
2831
  },
2788
2832
  {
2789
2833
  status: 403,
@@ -3345,7 +3389,8 @@ export const getGroupsGroupidUsers = endpoint({
3345
3389
  errors: [
3346
3390
  {
3347
3391
  status: 400,
3348
- description: `1: The group is invalid or does not exist.`,
3392
+ description: `1: The group is invalid or does not exist.
3393
+ 36: The pagination cursor is invalid.`,
3349
3394
  },
3350
3395
  {
3351
3396
  status: 403,