rozod 6.4.0 → 6.4.2

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.
@@ -477,3 +477,25 @@ export const postOutfitsCreate = endpoint({
477
477
  },
478
478
  ],
479
479
  });
480
+
481
+ // Patched endpoints removed from Roblox API docs (v6.1.0 compat)
482
+
483
+ export const postOutfitsUseroutfitidUpdate = endpoint({
484
+ method: 'POST',
485
+ path: '/v2/outfits/:userOutfitId/update',
486
+ baseUrl: 'https://avatar.roblox.com',
487
+ requestFormat: 'json',
488
+ serializationMethod: {
489
+ body: {},
490
+ userOutfitId: { style: 'simple' },
491
+ },
492
+ parameters: { userOutfitId: z.number().int() },
493
+ body: Roblox_Api_Avatar_Models_OutfitUpdateModelV2,
494
+ response: z.object({}),
495
+ errors: [
496
+ { status: 400, description: `1: The specified userOutfit does not exist!\n3: Body colors must be valid BrickColor IDs\n4: Invalid outfit name\n5: Asset is not wearable by you\n7: Invalid assetIds\n8: Invalid Player Avatar Type. Valid types are R6 and R15` },
497
+ { status: 401, description: `0: Authorization has been denied for this request.` },
498
+ { status: 403, description: `0: Token Validation Failed\n2: You don't have permission to update this outfit.` },
499
+ { status: 500, description: `6: An error occurred while trying to update the outfit` },
500
+ ],
501
+ });
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.postOutfitsCreate = exports.patchOutfitsUseroutfitid = exports.getAvatarUsersUseridOutfits = exports.getAvatarUsersUseridAvatar = exports.postAvatarSetWearingAssets = exports.postAvatarSetBodyColors = exports.getAvatarAvatar = void 0;
3
+ exports.postOutfitsUseroutfitidUpdate = exports.postOutfitsCreate = exports.patchOutfitsUseroutfitid = exports.getAvatarUsersUseridOutfits = exports.getAvatarUsersUseridAvatar = exports.postAvatarSetWearingAssets = exports.postAvatarSetBodyColors = exports.getAvatarAvatar = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const __1 = require("..");
6
6
  const Roblox_Web_Responses_Avatar_ScaleModel = zod_1.z.object({
@@ -470,3 +470,26 @@ exports.postOutfitsCreate = (0, __1.endpoint)({
470
470
  },
471
471
  ],
472
472
  });
473
+ // Patched endpoints removed from Roblox API docs (v6.1.0 compat)
474
+ exports.postOutfitsUseroutfitidUpdate = (0, __1.endpoint)({
475
+ method: 'POST',
476
+ path: '/v2/outfits/:userOutfitId/update',
477
+ baseUrl: 'https://avatar.roblox.com',
478
+ requestFormat: 'json',
479
+ serializationMethod: {
480
+ body: {},
481
+ userOutfitId: { style: 'simple' },
482
+ },
483
+ parameters: { userOutfitId: zod_1.z.number().int() },
484
+ body: Roblox_Api_Avatar_Models_OutfitUpdateModelV2,
485
+ response: zod_1.z.object({}),
486
+ errors: [
487
+ {
488
+ status: 400,
489
+ description: `1: The specified userOutfit does not exist!\n3: Body colors must be valid BrickColor IDs\n4: Invalid outfit name\n5: Asset is not wearable by you\n7: Invalid assetIds\n8: Invalid Player Avatar Type. Valid types are R6 and R15`,
490
+ },
491
+ { status: 401, description: `0: Authorization has been denied for this request.` },
492
+ { status: 403, description: `0: Token Validation Failed\n2: You don't have permission to update this outfit.` },
493
+ { status: 500, description: `6: An error occurred while trying to update the outfit` },
494
+ ],
495
+ });
@@ -1249,3 +1249,45 @@ export const getUsersUseridFriendsStatuses = endpoint({
1249
1249
  },
1250
1250
  ],
1251
1251
  });
1252
+
1253
+ // Patched endpoints removed from Roblox API docs (v6.1.0 compat)
1254
+
1255
+ const Patch_TrustedFriendStatusResponse = z.object({
1256
+ status: z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(3), z.literal(4), z.literal(5), z.literal(6)]),
1257
+ });
1258
+ const Patch_MultigetAreTrustedFriendsResponse = z.object({
1259
+ trustedFriendsId: z.array(z.number()),
1260
+ });
1261
+
1262
+ export const getMyTrustedFriendsUseridStatus = endpoint({
1263
+ method: 'GET',
1264
+ path: '/v1/my/trusted-friends/:userId/status',
1265
+ baseUrl: 'https://friends.roblox.com',
1266
+ requestFormat: 'json',
1267
+ serializationMethod: { userId: { style: 'simple' } },
1268
+ parameters: { userId: z.number().int() },
1269
+ response: Patch_TrustedFriendStatusResponse,
1270
+ errors: [
1271
+ { status: 400, description: `1: The target user is invalid or does not exist.` },
1272
+ { status: 401, description: `0: Authorization has been denied for this request.` },
1273
+ ],
1274
+ });
1275
+
1276
+ export const getUserUseridMultigetAreTrustedFriends = endpoint({
1277
+ method: 'GET',
1278
+ path: '/v1/user/:userId/multiget-are-trusted-friends',
1279
+ baseUrl: 'https://friends.roblox.com',
1280
+ requestFormat: 'json',
1281
+ serializationMethod: {
1282
+ userId: { style: 'simple' },
1283
+ userIds: { style: 'form' },
1284
+ },
1285
+ parameters: {
1286
+ userId: z.number().int(),
1287
+ userIds: z.array(z.number()),
1288
+ },
1289
+ response: Patch_MultigetAreTrustedFriendsResponse,
1290
+ errors: [
1291
+ { status: 400, description: `1: The target user is invalid or does not exist.` },
1292
+ ],
1293
+ });
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getUsersUseridFriendsStatuses = exports.getUsersUseridFriendsSearch = exports.getUsersUseridFriendsOnline = exports.getUsersUseridFriendsInactive = exports.getUsersUseridFriendsFind = exports.getUsersUseridFriendsCount = exports.getUsersUseridFriends = exports.postUsersTargetuseridUnfriend = exports.postUsersTargetuseridUnfollow = exports.postUsersTargetuseridRequestFriendship = exports.getUsersTargetuseridFollowingsCount = exports.getUsersTargetuseridFollowings = exports.getUsersTargetuseridFollowersCount = exports.getUsersTargetuseridFollowers = exports.postUsersTargetuseridFollow = exports.postUsersSenderuseridAcceptFriendRequestWithToken = exports.postUsersRequesteruseridDeclineFriendRequest = exports.postUsersRequesteruseridAcceptFriendRequest = exports.postUserFriendRequestsDeclineAll = exports.getUserFriendRequestsCount = exports.postUserFollowingExists = exports.postUserUseridMultigetAreFriends = exports.getMyNewFriendRequestsCount = exports.deleteMyNewFriendRequests = exports.getMyFriendsRequests = exports.postMyFriendsRefreshQrSession = exports.getMyFriendsCount = exports.getMyFriendsUseridCheckQrSession = exports.getMetadata = exports.postContactsTargetcontactidRequestFriendship = void 0;
3
+ exports.getUserUseridMultigetAreTrustedFriends = exports.getMyTrustedFriendsUseridStatus = exports.getUsersUseridFriendsStatuses = exports.getUsersUseridFriendsSearch = exports.getUsersUseridFriendsOnline = exports.getUsersUseridFriendsInactive = exports.getUsersUseridFriendsFind = exports.getUsersUseridFriendsCount = exports.getUsersUseridFriends = exports.postUsersTargetuseridUnfriend = exports.postUsersTargetuseridUnfollow = exports.postUsersTargetuseridRequestFriendship = exports.getUsersTargetuseridFollowingsCount = exports.getUsersTargetuseridFollowings = exports.getUsersTargetuseridFollowersCount = exports.getUsersTargetuseridFollowers = exports.postUsersTargetuseridFollow = exports.postUsersSenderuseridAcceptFriendRequestWithToken = exports.postUsersRequesteruseridDeclineFriendRequest = exports.postUsersRequesteruseridAcceptFriendRequest = exports.postUserFriendRequestsDeclineAll = exports.getUserFriendRequestsCount = exports.postUserFollowingExists = exports.postUserUseridMultigetAreFriends = exports.getMyNewFriendRequestsCount = exports.deleteMyNewFriendRequests = exports.getMyFriendsRequests = exports.postMyFriendsRefreshQrSession = exports.getMyFriendsCount = exports.getMyFriendsUseridCheckQrSession = exports.getMetadata = exports.postContactsTargetcontactidRequestFriendship = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const __1 = require("..");
6
6
  const Roblox_Friends_Api_Models_Response_FriendsPageMetadataResponse = zod_1.z.object({
@@ -1213,3 +1213,39 @@ exports.getUsersUseridFriendsStatuses = (0, __1.endpoint)({
1213
1213
  },
1214
1214
  ],
1215
1215
  });
1216
+ // Patched endpoints removed from Roblox API docs (v6.1.0 compat)
1217
+ const Patch_TrustedFriendStatusResponse = zod_1.z.object({
1218
+ status: zod_1.z.union([zod_1.z.literal(0), zod_1.z.literal(1), zod_1.z.literal(2), zod_1.z.literal(3), zod_1.z.literal(4), zod_1.z.literal(5), zod_1.z.literal(6)]),
1219
+ });
1220
+ const Patch_MultigetAreTrustedFriendsResponse = zod_1.z.object({
1221
+ trustedFriendsId: zod_1.z.array(zod_1.z.number()),
1222
+ });
1223
+ exports.getMyTrustedFriendsUseridStatus = (0, __1.endpoint)({
1224
+ method: 'GET',
1225
+ path: '/v1/my/trusted-friends/:userId/status',
1226
+ baseUrl: 'https://friends.roblox.com',
1227
+ requestFormat: 'json',
1228
+ serializationMethod: { userId: { style: 'simple' } },
1229
+ parameters: { userId: zod_1.z.number().int() },
1230
+ response: Patch_TrustedFriendStatusResponse,
1231
+ errors: [
1232
+ { status: 400, description: `1: The target user is invalid or does not exist.` },
1233
+ { status: 401, description: `0: Authorization has been denied for this request.` },
1234
+ ],
1235
+ });
1236
+ exports.getUserUseridMultigetAreTrustedFriends = (0, __1.endpoint)({
1237
+ method: 'GET',
1238
+ path: '/v1/user/:userId/multiget-are-trusted-friends',
1239
+ baseUrl: 'https://friends.roblox.com',
1240
+ requestFormat: 'json',
1241
+ serializationMethod: {
1242
+ userId: { style: 'simple' },
1243
+ userIds: { style: 'form' },
1244
+ },
1245
+ parameters: {
1246
+ userId: zod_1.z.number().int(),
1247
+ userIds: zod_1.z.array(zod_1.z.number()),
1248
+ },
1249
+ response: Patch_MultigetAreTrustedFriendsResponse,
1250
+ errors: [{ status: 400, description: `1: The target user is invalid or does not exist.` }],
1251
+ });
@@ -668,3 +668,336 @@ export const getPrivateServersEnabledInUniverseUniverseid = endpoint({
668
668
  },
669
669
  ],
670
670
  });
671
+
672
+ // Patched endpoints removed from Roblox API docs (v6.1.0 compat)
673
+
674
+ const Patch_GamePassResponse = z.object({
675
+ id: z.number().int(),
676
+ name: z.string(),
677
+ displayName: z.string(),
678
+ productId: z.number().int(),
679
+ price: z.number().int(),
680
+ sellerName: z.string(),
681
+ sellerId: z.number().int(),
682
+ isOwned: z.boolean(),
683
+ });
684
+ const Patch_ApiPageResponse_GamePassResponse = z.object({
685
+ previousPageCursor: z.string(),
686
+ nextPageCursor: z.string(),
687
+ data: z.array(Patch_GamePassResponse),
688
+ });
689
+ const Patch_GameVoteResponse = z.object({
690
+ id: z.number().int(),
691
+ upVotes: z.number().int(),
692
+ downVotes: z.number().int(),
693
+ });
694
+ const Patch_UserGameVoteResponse = z.object({
695
+ canVote: z.boolean(),
696
+ userVote: z.boolean(),
697
+ reasonForNotVoteable: z.string(),
698
+ });
699
+ const Patch_ApiArrayResponse_GameVoteResponse = z.object({
700
+ data: z.array(Patch_GameVoteResponse),
701
+ });
702
+ const Patch_MyPrivateServersData = z.object({
703
+ active: z.boolean(),
704
+ universeId: z.number().int(),
705
+ placeId: z.number().int(),
706
+ name: z.string(),
707
+ ownerId: z.number().int(),
708
+ ownerName: z.string(),
709
+ priceInRobux: z.number().int(),
710
+ privateServerId: z.number().int(),
711
+ expirationDate: z.string().datetime({ offset: true }),
712
+ willRenew: z.boolean(),
713
+ universeName: z.string(),
714
+ });
715
+ const Patch_MyPrivateServersResponse = z.object({
716
+ nextPageCursor: z.string(),
717
+ previousPageCursor: z.string(),
718
+ data: z.array(Patch_MyPrivateServersData),
719
+ });
720
+ const Patch_VipServerCanInviteResponse = z.object({
721
+ canInvite: z.boolean(),
722
+ doesOwnerPrivacyRestrictJoins: z.boolean(),
723
+ inviteResponseType: z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(3), z.literal(4)]),
724
+ });
725
+ const Patch_PlaceResponse = z.object({
726
+ id: z.number().int(),
727
+ name: z.string(),
728
+ });
729
+ const Patch_GameResponse = z.object({
730
+ id: z.number().int(),
731
+ name: z.string(),
732
+ rootPlace: Patch_PlaceResponse,
733
+ });
734
+ const Patch_VipServerSubscriptionResponse = z.object({
735
+ active: z.boolean(),
736
+ expired: z.boolean(),
737
+ expirationDate: z.string().datetime({ offset: true }),
738
+ price: z.number().int(),
739
+ canRenew: z.boolean(),
740
+ hasInsufficientFunds: z.boolean(),
741
+ hasRecurringProfile: z.boolean(),
742
+ hasPriceChanged: z.boolean(),
743
+ });
744
+ const Patch_SkinnyUserResponse = z.object({
745
+ id: z.number().int(),
746
+ name: z.string(),
747
+ displayName: z.string(),
748
+ });
749
+ const Patch_VipServerPermissionsResponse = z.object({
750
+ clanAllowed: z.boolean(),
751
+ enemyClanId: z.number().int(),
752
+ friendsAllowed: z.boolean(),
753
+ users: z.array(Patch_SkinnyUserResponse),
754
+ });
755
+ const Patch_VipServerVoiceSettingsResponse = z.object({
756
+ enabled: z.boolean(),
757
+ });
758
+ const Patch_VipServerResponse = z.object({
759
+ id: z.number().int(),
760
+ name: z.string(),
761
+ game: Patch_GameResponse,
762
+ joinCode: z.string(),
763
+ active: z.boolean(),
764
+ subscription: Patch_VipServerSubscriptionResponse,
765
+ permissions: Patch_VipServerPermissionsResponse,
766
+ voiceSettings: Patch_VipServerVoiceSettingsResponse,
767
+ link: z.string(),
768
+ });
769
+ const Patch_VipServerUpdateRequest = z.object({
770
+ name: z.string(),
771
+ newJoinCode: z.boolean(),
772
+ active: z.boolean(),
773
+ });
774
+ const Patch_CreateVipServersRequest = z.object({
775
+ name: z.string(),
776
+ expectedPrice: z.number().int(),
777
+ isPurchaseConfirmed: z.boolean(),
778
+ });
779
+ const Patch_VipServerUpdatePermissionsRequest = z.object({
780
+ clanAllowed: z.boolean(),
781
+ enemyClanId: z.number().int(),
782
+ friendsAllowed: z.boolean(),
783
+ usersToAdd: z.array(z.number()),
784
+ usersToRemove: z.array(z.number()),
785
+ });
786
+ const Patch_VipServerUpdateSubscriptionRequest = z.object({
787
+ active: z.boolean(),
788
+ price: z.number().int(),
789
+ });
790
+
791
+ export const getGamesUniverseidGamePasses = endpoint({
792
+ method: 'GET',
793
+ path: '/v1/games/:universeId/game-passes',
794
+ baseUrl: 'https://games.roblox.com',
795
+ requestFormat: 'json',
796
+ serializationMethod: {
797
+ universeId: { style: 'simple' },
798
+ limit: { style: 'form', explode: true },
799
+ sortOrder: { style: 'form', explode: true },
800
+ cursor: { style: 'form', explode: true },
801
+ },
802
+ parameters: {
803
+ universeId: z.number().int(),
804
+ limit: z.number().int(),
805
+ sortOrder: z.union([z.literal(1), z.literal(2)]).optional().default(1),
806
+ cursor: z.string().optional(),
807
+ },
808
+ response: Patch_ApiPageResponse_GamePassResponse,
809
+ errors: [
810
+ { status: 400, description: `2: The universe's root place is invalid.` },
811
+ { status: 404, description: `1: The requested universe does not exist.` },
812
+ ],
813
+ });
814
+
815
+ export const patchGamesUniverseidUserVotes = endpoint({
816
+ method: 'PATCH',
817
+ path: '/v1/games/:universeId/user-votes',
818
+ baseUrl: 'https://games.roblox.com',
819
+ requestFormat: 'json',
820
+ serializationMethod: { body: {}, universeId: { style: 'simple' } },
821
+ parameters: { universeId: z.number().int() },
822
+ body: z.object({ vote: z.boolean() }),
823
+ response: z.object({}),
824
+ errors: [
825
+ { status: 400, description: `2: The universe's root place is invalid.\n3: The asset is not voteable.\n4: The requested vote is invalid.` },
826
+ { status: 401, description: `0: Authorization has been denied for this request.` },
827
+ { status: 403, description: `0: Token Validation Failed\n6: The user needs to play the game before vote.\n7: The user needs additional permission to vote.` },
828
+ { status: 404, description: `1: The requested universe does not exist.` },
829
+ { status: 429, description: `5: Too many attempts to vote. Please try again later.\n10: Internal service busy. Please try again later.` },
830
+ { status: 500, description: `0: An unknown error occurred.` },
831
+ ],
832
+ });
833
+
834
+ export const getGamesUniverseidVotes = endpoint({
835
+ method: 'GET',
836
+ path: '/v1/games/:universeId/votes',
837
+ baseUrl: 'https://games.roblox.com',
838
+ requestFormat: 'json',
839
+ serializationMethod: { universeId: { style: 'simple' } },
840
+ parameters: { universeId: z.number().int() },
841
+ response: Patch_GameVoteResponse,
842
+ errors: [
843
+ { status: 400, description: `2: The universe's root place is invalid.\n3: The asset is not voteable.` },
844
+ { status: 404, description: `1: The requested universe does not exist.` },
845
+ { status: 429, description: `10: Internal service busy. Please try again later.` },
846
+ { status: 500, description: `0: An unknown error occurred.` },
847
+ ],
848
+ });
849
+
850
+ export const getGamesUniverseidVotesUser = endpoint({
851
+ method: 'GET',
852
+ path: '/v1/games/:universeId/votes/user',
853
+ baseUrl: 'https://games.roblox.com',
854
+ requestFormat: 'json',
855
+ serializationMethod: { universeId: { style: 'simple' } },
856
+ parameters: { universeId: z.number().int() },
857
+ response: Patch_UserGameVoteResponse,
858
+ errors: [
859
+ { status: 400, description: `2: The universe's root place is invalid.\n3: The asset is not voteable.` },
860
+ { status: 401, description: `0: Authorization has been denied for this request.` },
861
+ { status: 404, description: `1: The requested universe does not exist.` },
862
+ { status: 429, description: `10: Internal service busy. Please try again later.` },
863
+ { status: 500, description: `0: An unknown error occurred.` },
864
+ ],
865
+ });
866
+
867
+ export const getGamesVotes = endpoint({
868
+ method: 'GET',
869
+ path: '/v1/games/votes',
870
+ baseUrl: 'https://games.roblox.com',
871
+ requestFormat: 'json',
872
+ serializationMethod: { universeIds: { style: 'form' } },
873
+ parameters: { universeIds: z.array(z.number()) },
874
+ response: Patch_ApiArrayResponse_GameVoteResponse,
875
+ errors: [
876
+ { status: 400, description: `3: The asset is not voteable.\n8: No universe IDs were specified.\n9: Too many universe IDs were requested.` },
877
+ { status: 429, description: `10: Internal service busy. Please try again later.` },
878
+ { status: 500, description: `0: An unknown error occurred.` },
879
+ ],
880
+ });
881
+
882
+ export const getPrivateServersMyPrivateServers = endpoint({
883
+ method: 'GET',
884
+ path: '/v1/private-servers/my-private-servers',
885
+ baseUrl: 'https://games.roblox.com',
886
+ requestFormat: 'json',
887
+ serializationMethod: {
888
+ privateServersTab: { style: 'form', explode: true },
889
+ itemsPerPage: { style: 'form', explode: true },
890
+ cursor: { style: 'form', explode: true },
891
+ },
892
+ parameters: {
893
+ privateServersTab: z.union([z.literal(0), z.literal(1)]).optional(),
894
+ itemsPerPage: z.number().int().optional().default(25),
895
+ cursor: z.string().optional(),
896
+ },
897
+ response: Patch_MyPrivateServersResponse,
898
+ errors: [
899
+ { status: 400, description: `39: Invalid cursor provided in the request.` },
900
+ { status: 401, description: `0: Authorization has been denied for this request.` },
901
+ ],
902
+ });
903
+
904
+ export const getVipServerCanInviteUserid = endpoint({
905
+ method: 'GET',
906
+ path: '/v1/vip-server/can-invite/:userId',
907
+ baseUrl: 'https://games.roblox.com',
908
+ requestFormat: 'json',
909
+ serializationMethod: { userId: { style: 'simple' } },
910
+ parameters: { userId: z.number().int() },
911
+ response: Patch_VipServerCanInviteResponse,
912
+ errors: [
913
+ { status: 401, description: `0: Authorization has been denied for this request.` },
914
+ { status: 404, description: `19: The user is does not exist.` },
915
+ ],
916
+ });
917
+
918
+ export const getVipServersId = endpoint({
919
+ method: 'GET',
920
+ path: '/v1/vip-servers/:id',
921
+ baseUrl: 'https://games.roblox.com',
922
+ requestFormat: 'json',
923
+ serializationMethod: { id: { style: 'simple' } },
924
+ parameters: { id: z.number().int() },
925
+ response: Patch_VipServerResponse,
926
+ errors: [
927
+ { status: 400, description: `8: The creator of this game has disabled private servers for this game.` },
928
+ { status: 401, description: `0: Authorization has been denied for this request.` },
929
+ { status: 403, description: `2: You are not the owner of this private server.` },
930
+ { status: 404, description: `1: The private server is invalid or does not exist.\n4: The universe does not exist.` },
931
+ ],
932
+ });
933
+
934
+ export const patchVipServersId = endpoint({
935
+ method: 'PATCH',
936
+ path: '/v1/vip-servers/:id',
937
+ baseUrl: 'https://games.roblox.com',
938
+ requestFormat: 'json',
939
+ serializationMethod: { body: {}, id: { style: 'simple' } },
940
+ parameters: { id: z.number().int() },
941
+ body: Patch_VipServerUpdateRequest,
942
+ response: Patch_VipServerResponse,
943
+ errors: [
944
+ { status: 400, description: `8: The creator of this game has disabled private servers for this game.\n10: The name of the private server is either empty or too long.` },
945
+ { status: 401, description: `0: Authorization has been denied for this request.` },
946
+ { status: 403, description: `0: Token Validation Failed\n2: You are not the owner of this private server.\n11: You cannot activate a cancelled private server.\n12: The game must not be Friends Only to allow private servers.\n13: Join Link can be generated only for active private servers.` },
947
+ { status: 404, description: `1: The private server is invalid or does not exist.\n4: The universe does not exist.` },
948
+ { status: 429, description: `3: Please wait a few minutes before configuring your private server again.` },
949
+ ],
950
+ });
951
+
952
+ export const patchVipServersIdPermissions = endpoint({
953
+ method: 'PATCH',
954
+ path: '/v1/vip-servers/:id/permissions',
955
+ baseUrl: 'https://games.roblox.com',
956
+ requestFormat: 'json',
957
+ serializationMethod: { body: {}, id: { style: 'simple' } },
958
+ parameters: { id: z.number().int() },
959
+ body: Patch_VipServerUpdatePermissionsRequest,
960
+ response: Patch_VipServerPermissionsResponse,
961
+ errors: [
962
+ { status: 400, description: `6: You cannot add so many players to the private server's invite list.\n8: The creator of this game has disabled private servers for this game.\n12: The game must not be Friends Only to allow private servers.\n28: You may only add or remove valid players to your private server's invite list.\n29: You may only add or remove players when your private server is active.` },
963
+ { status: 401, description: `0: Authorization has been denied for this request.` },
964
+ { status: 403, description: `0: Token Validation Failed\n2: You are not the owner of this private server.` },
965
+ { status: 404, description: `1: The private server is invalid or does not exist.\n4: The universe does not exist.` },
966
+ ],
967
+ });
968
+
969
+ export const patchVipServersIdSubscription = endpoint({
970
+ method: 'PATCH',
971
+ path: '/v1/vip-servers/:id/subscription',
972
+ baseUrl: 'https://games.roblox.com',
973
+ requestFormat: 'json',
974
+ serializationMethod: { body: {}, id: { style: 'simple' } },
975
+ parameters: { id: z.number().int() },
976
+ body: Patch_VipServerUpdateSubscriptionRequest,
977
+ response: Patch_VipServerSubscriptionResponse,
978
+ errors: [
979
+ { status: 400, description: `8: The creator of this game has disabled private servers for this game.\n32: You do not have enough funds available to renew the subscription for this private server.` },
980
+ { status: 401, description: `0: Authorization has been denied for this request.` },
981
+ { status: 403, description: `0: Token Validation Failed\n2: You are not the owner of this private server.\n21: You may not configure a cancelled private server. Please renew your subscription before configuring.` },
982
+ { status: 404, description: `1: The private server is invalid or does not exist.\n4: The universe does not exist.` },
983
+ { status: 429, description: `3: Please wait a few minutes before configuring your private server again.` },
984
+ ],
985
+ });
986
+
987
+ export const postGamesVipServersUniverseid = endpoint({
988
+ method: 'POST',
989
+ path: '/v1/games/vip-servers/:universeId',
990
+ baseUrl: 'https://games.roblox.com',
991
+ requestFormat: 'json',
992
+ serializationMethod: { body: {}, universeId: { style: 'simple' } },
993
+ parameters: { universeId: z.number().int() },
994
+ body: Patch_CreateVipServersRequest,
995
+ response: Roblox_Web_Responses_Games_GameServerResponse,
996
+ errors: [
997
+ { status: 400, description: `15: The price for purchasing this private server has changed. Please refresh the page and try again.` },
998
+ { status: 401, description: `0: Authorization has been denied for this request.` },
999
+ { status: 403, description: `0: Token Validation Failed` },
1000
+ { status: 404, description: `4: The universe does not exist.` },
1001
+ { status: 500, description: `16: We are having a problem completing your purchase. Please try again in a few minutes.` },
1002
+ ],
1003
+ });